diff --git a/.prettierrc.json b/.prettierrc.json index 3c53558cd9..f86270f346 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,5 +1,6 @@ { "useTabs": true, + "trailingComma": "none", "overrides": [ { "files": "*.json", diff --git a/Gruntfile.js b/Gruntfile.js index a49b6f0149..ad630f4650 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -2,7 +2,8 @@ const childProcess = require("child_process"); const EOL = require("os").EOL; const path = require("path"); const now = new Date().toISOString(); -const latestVersion = require('latest-version'); +const latestVersion = require('latest-version').default; + const ENVIRONMENTS = { live: "live", diff --git a/lib/commands/add-platform.ts b/lib/commands/add-platform.ts index fdf6b93eb4..20ef5f2746 100644 --- a/lib/commands/add-platform.ts +++ b/lib/commands/add-platform.ts @@ -3,7 +3,7 @@ import { IProjectData } from "../definitions/project"; import { IOptions, IPlatformCommandHelper, - IPlatformValidationService, + IPlatformValidationService } from "../declarations"; import { IPlatformsDataService } from "../definitions/platform"; import { ICommandParameter, ICommand } from "../common/definitions/commands"; diff --git a/lib/commands/apple-login.ts b/lib/commands/apple-login.ts index c6e45c5326..052cb792cf 100644 --- a/lib/commands/apple-login.ts +++ b/lib/commands/apple-login.ts @@ -8,7 +8,7 @@ import { IApplePortalSessionService } from "../services/apple-portal/definitions export class AppleLogin implements ICommand { public allowedParameters: ICommandParameter[] = [ new StringCommandParameter(this.$injector), - new StringCommandParameter(this.$injector), + new StringCommandParameter(this.$injector) ]; constructor( @@ -23,7 +23,7 @@ export class AppleLogin implements ICommand { let username = args[0]; if (!username) { username = await this.$prompter.getString("Apple ID", { - allowEmpty: false, + allowEmpty: false }); } @@ -34,7 +34,7 @@ export class AppleLogin implements ICommand { const user = await this.$applePortalSessionService.createUserSession({ username, - password, + password }); if (!user.areCredentialsValid) { this.$errors.fail( diff --git a/lib/commands/appstore-list.ts b/lib/commands/appstore-list.ts index 910d038b57..310b5b6fc9 100644 --- a/lib/commands/appstore-list.ts +++ b/lib/commands/appstore-list.ts @@ -8,13 +8,13 @@ import { injector } from "../common/yok"; import { IErrors } from "../common/declarations"; import { IApplePortalApplicationService, - IApplePortalSessionService, + IApplePortalSessionService } from "../services/apple-portal/definitions"; export class ListiOSApps implements ICommand { public allowedParameters: ICommandParameter[] = [ new StringCommandParameter(this.$injector), - new StringCommandParameter(this.$injector), + new StringCommandParameter(this.$injector) ]; constructor( @@ -49,7 +49,7 @@ export class ListiOSApps implements ICommand { if (!username) { username = await this.$prompter.getString("Apple ID", { - allowEmpty: false, + allowEmpty: false }); } @@ -60,7 +60,7 @@ export class ListiOSApps implements ICommand { const user = await this.$applePortalSessionService.createUserSession( { username, password }, { - sessionBase64: this.$options.appleSessionBase64, + sessionBase64: this.$options.appleSessionBase64 } ); if (!user.areCredentialsValid) { @@ -69,9 +69,8 @@ export class ListiOSApps implements ICommand { ); } - const applications = await this.$applePortalApplicationService.getApplications( - user - ); + const applications = + await this.$applePortalApplicationService.getApplications(user); if (!applications || !applications.length) { this.$logger.info("Seems you don't have any applications yet."); diff --git a/lib/commands/appstore-upload.ts b/lib/commands/appstore-upload.ts index 1d80a11715..9ce77c9343 100644 --- a/lib/commands/appstore-upload.ts +++ b/lib/commands/appstore-upload.ts @@ -6,7 +6,7 @@ import { IProjectData } from "../definitions/project"; import { IITMSTransporterService, IOptions, - IPlatformValidationService, + IPlatformValidationService } from "../declarations"; import { ICommand, ICommandParameter } from "../common/definitions/commands"; import { IInjector } from "../common/definitions/yok"; @@ -19,7 +19,7 @@ export class PublishIOS implements ICommand { new StringCommandParameter(this.$injector), new StringCommandParameter(this.$injector), new StringCommandParameter(this.$injector), - new StringCommandParameter(this.$injector), + new StringCommandParameter(this.$injector) ]; constructor( @@ -58,7 +58,7 @@ export class PublishIOS implements ICommand { this.$options.appleApplicationSpecificPassword, sessionBase64: this.$options.appleSessionBase64, requireInteractiveConsole: true, - requireApplicationSpecificPassword: true, + requireApplicationSpecificPassword: true } ); if (!user.areCredentialsValid) { @@ -121,7 +121,7 @@ export class PublishIOS implements ICommand { ipaFilePath, shouldExtractIpa: !!this.$options.ipa, verboseLogging: this.$logger.getLevel() === "TRACE", - teamId: this.$options.teamId, + teamId: this.$options.teamId }); } diff --git a/lib/commands/build.ts b/lib/commands/build.ts index d4c6460a1c..ba6c8a6ef9 100644 --- a/lib/commands/build.ts +++ b/lib/commands/build.ts @@ -1,6 +1,6 @@ import { ANDROID_RELEASE_BUILD_ERROR_MESSAGE, - AndroidAppBundleMessages, + AndroidAppBundleMessages } from "../constants"; import { ValidatePlatformCommandBase } from "./command-base"; import { hasValidAndroidSigning } from "../common/helpers"; @@ -8,7 +8,7 @@ import { IProjectData } from "../definitions/project"; import { IOptions, IPlatformValidationService, - IAndroidBundleValidatorHelper, + IAndroidBundleValidatorHelper } from "../declarations"; import { IPlatformsDataService } from "../definitions/platform"; import { IBuildController, IBuildDataService } from "../definitions/build"; @@ -42,9 +42,9 @@ export abstract class BuildCommandBase extends ValidatePlatformCommandBase { watch: { type: OptionType.Boolean, default: false, - hasSensitiveValue: false, + hasSensitiveValue: false }, - hmr: { type: OptionType.Boolean, default: false, hasSensitiveValue: false }, + hmr: { type: OptionType.Boolean, default: false, hasSensitiveValue: false } }; public async executeCore(args: string[]): Promise { @@ -132,7 +132,7 @@ export class BuildIosCommand extends BuildCommandBase implements ICommand { if (!this.$options.force) { await this.$migrateController.validate({ projectDir: this.$projectData.projectDir, - platforms: [platform], + platforms: [platform] }); } @@ -180,7 +180,7 @@ export class BuildAndroidCommand extends BuildCommandBase implements ICommand { public async execute(args: string[]): Promise { await this.executeCore([ - this.$devicePlatformsConstants.Android.toLowerCase(), + this.$devicePlatformsConstants.Android.toLowerCase() ]); if (this.$options.aab) { @@ -201,7 +201,7 @@ export class BuildAndroidCommand extends BuildCommandBase implements ICommand { if (!this.$options.force) { await this.$migrateController.validate({ projectDir: this.$projectData.projectDir, - platforms: [platform], + platforms: [platform] }); } this.$androidBundleValidatorHelper.validateRuntimeVersion( diff --git a/lib/commands/clean.ts b/lib/commands/clean.ts index 8868f59092..65e08de97f 100644 --- a/lib/commands/clean.ts +++ b/lib/commands/clean.ts @@ -6,14 +6,14 @@ import { IProjectCleanupResult, IProjectCleanupService, IProjectConfigService, - IProjectService, + IProjectService } from "../definitions/project"; import type { PromptObject } from "prompts"; import { IOptions, IStaticConfig } from "../declarations"; import { ITerminalSpinner, - ITerminalSpinnerService, + ITerminalSpinnerService } from "../definitions/terminal-spinner-service"; import { IChildProcess } from "../common/declarations"; import * as os from "os"; @@ -97,7 +97,7 @@ export class CleanCommand implements ICommand { const isJSON = this.$options.json ?? false; const spinner = this.$terminalSpinnerService.createSpinner({ - isSilent: isJSON, + isSilent: isJSON }); if (!this.$projectService.isValidNativeScriptProject()) { @@ -110,7 +110,7 @@ export class CleanCommand implements ICommand { constants.HOOKS_DIR_NAME, constants.PLATFORMS_DIR_NAME, constants.NODE_MODULES_FOLDER_NAME, - constants.PACKAGE_LOCK_JSON_FILE_NAME, + constants.PACKAGE_LOCK_JSON_FILE_NAME ]; try { @@ -135,7 +135,7 @@ export class CleanCommand implements ICommand { const res = await this.$projectCleanupService.clean(pathsToClean, { dryRun: isDryRun, silent: isJSON, - stats: isJSON, + stats: isJSON }); if (res.stats && isJSON) { @@ -144,7 +144,7 @@ export class CleanCommand implements ICommand { { ok: res.ok, dryRun: isDryRun, - stats: Object.fromEntries(res.stats.entries()), + stats: Object.fromEntries(res.stats.entries()) }, null, 2 @@ -200,7 +200,7 @@ export class CleanCommand implements ICommand { .exec( `node ${this.$staticConfig.cliBinPath} clean --dry-run --json --disable-analytics`, { - cwd: p, + cwd: p } ) .then((res) => { @@ -254,12 +254,12 @@ export class CleanCommand implements ICommand { return { title: `${p}${color.grey(description)}`, - value: p, + value: p }; }), true, { - optionsPerPage: process.stdout.rows - 6, // 6 lines are taken up by the instructions + optionsPerPage: process.stdout.rows - 6 // 6 lines are taken up by the instructions } as Partial ); this.$logger.clearScreen(); @@ -296,7 +296,7 @@ export class CleanCommand implements ICommand { this.$options.dryRun ? "--dry-run" : "" } --json --disable-analytics`, { - cwd: currentPath, + cwd: currentPath } ) .then((res) => { @@ -346,7 +346,7 @@ export class CleanCommand implements ICommand { } const dirents = await readdir(dir, { withFileTypes: true }).catch( - (err) => { + (err): any[] => { this.$logger.trace( 'Failed to read directory "%s". Error is:', dir, diff --git a/lib/commands/command-base.ts b/lib/commands/command-base.ts index 0f4e1f834c..8018346273 100644 --- a/lib/commands/command-base.ts +++ b/lib/commands/command-base.ts @@ -4,7 +4,7 @@ import { IPlatformsDataService } from "../definitions/platform"; import { ICommandParameter, ICanExecuteCommandOptions, - INotConfiguredEnvOptions, + INotConfiguredEnvOptions } from "../common/definitions/commands"; export abstract class ValidatePlatformCommandBase { diff --git a/lib/commands/create-project.ts b/lib/commands/create-project.ts index c817d1e188..6685946277 100644 --- a/lib/commands/create-project.ts +++ b/lib/commands/create-project.ts @@ -123,7 +123,7 @@ export class CreateProjectCommand implements ICommand { projectName = await this.$projectService.validateProjectName({ projectName: projectName, force: this.$options.force, - pathToProject: this.$options.path, + pathToProject: this.$options.path }); if (!selectedTemplate && isInteractive()) { @@ -141,7 +141,7 @@ export class CreateProjectCommand implements ICommand { pathToProject: this.$options.path, // its already validated above force: true, - ignoreScripts: this.$options.ignoreScripts, + ignoreScripts: this.$options.ignoreScripts }); } @@ -164,33 +164,33 @@ export class CreateProjectCommand implements ICommand { [ { key: constants.NgFlavorName, - description: "Learn more at https://nativescript.org/angular", + description: "Learn more at https://nativescript.org/angular" }, { key: constants.ReactFlavorName, description: - "Learn more at https://github.com/shirakaba/react-nativescript", + "Learn more at https://github.com/shirakaba/react-nativescript" }, { key: constants.VueFlavorName, - description: "Learn more at https://nativescript.org/vue", + description: "Learn more at https://nativescript.org/vue" }, { key: constants.SolidFlavorName, - description: "Learn more at https://www.solidjs.com", + description: "Learn more at https://www.solidjs.com" }, { key: constants.SvelteFlavorName, - description: "Learn more at https://svelte-native.technology", + description: "Learn more at https://svelte-native.technology" }, { key: constants.TsFlavorName, - description: "Learn more at https://nativescript.org/typescript", + description: "Learn more at https://nativescript.org/typescript" }, { key: constants.JsFlavorName, - description: "Use NativeScript without any framework", - }, + description: "Use NativeScript without any framework" + } ] ); return flavorSelection; @@ -271,18 +271,18 @@ can skip this prompt next time using the --template option, or using --ng, --rea { key: CreateProjectCommand.HelloWorldTemplateKey, value: constants.RESERVED_TEMPLATE_NAMES.javascript, - description: CreateProjectCommand.HelloWorldTemplateDescription, + description: CreateProjectCommand.HelloWorldTemplateDescription }, { key: CreateProjectCommand.DrawerTemplateKey, value: "@nativescript/template-drawer-navigation", - description: CreateProjectCommand.DrawerTemplateDescription, + description: CreateProjectCommand.DrawerTemplateDescription }, { key: CreateProjectCommand.TabsTemplateKey, value: "@nativescript/template-tab-navigation", - description: CreateProjectCommand.TabsTemplateDescription, - }, + description: CreateProjectCommand.TabsTemplateDescription + } ]; return templates; @@ -293,23 +293,23 @@ can skip this prompt next time using the --template option, or using --ng, --rea { key: CreateProjectCommand.HelloWorldTemplateKey, value: constants.RESERVED_TEMPLATE_NAMES.typescript, - description: CreateProjectCommand.HelloWorldTemplateDescription, + description: CreateProjectCommand.HelloWorldTemplateDescription }, { key: CreateProjectCommand.DrawerTemplateKey, value: "@nativescript/template-drawer-navigation-ts", - description: CreateProjectCommand.DrawerTemplateDescription, + description: CreateProjectCommand.DrawerTemplateDescription }, { key: CreateProjectCommand.TabsTemplateKey, value: "@nativescript/template-tab-navigation-ts", - description: CreateProjectCommand.TabsTemplateDescription, + description: CreateProjectCommand.TabsTemplateDescription }, { key: CreateProjectCommand.BlankVisionTemplateKey, value: "@nativescript/template-hello-world-ts-vision", - description: CreateProjectCommand.BlankVisionTemplateDescription, - }, + description: CreateProjectCommand.BlankVisionTemplateDescription + } ]; return templates; @@ -320,23 +320,23 @@ can skip this prompt next time using the --template option, or using --ng, --rea { key: CreateProjectCommand.HelloWorldTemplateKey, value: constants.RESERVED_TEMPLATE_NAMES.angular, - description: CreateProjectCommand.HelloWorldTemplateDescription, + description: CreateProjectCommand.HelloWorldTemplateDescription }, { key: CreateProjectCommand.DrawerTemplateKey, value: "@nativescript/template-drawer-navigation-ng", - description: CreateProjectCommand.DrawerTemplateDescription, + description: CreateProjectCommand.DrawerTemplateDescription }, { key: CreateProjectCommand.TabsTemplateKey, value: "@nativescript/template-tab-navigation-ng", - description: CreateProjectCommand.TabsTemplateDescription, + description: CreateProjectCommand.TabsTemplateDescription }, { key: CreateProjectCommand.BlankVisionTemplateKey, value: "@nativescript/template-hello-world-ng-vision", - description: CreateProjectCommand.BlankVisionTemplateDescription, - }, + description: CreateProjectCommand.BlankVisionTemplateDescription + } ]; return templates; @@ -347,13 +347,13 @@ can skip this prompt next time using the --template option, or using --ng, --rea { key: CreateProjectCommand.HelloWorldTemplateKey, value: constants.RESERVED_TEMPLATE_NAMES.react, - description: CreateProjectCommand.HelloWorldTemplateDescription, + description: CreateProjectCommand.HelloWorldTemplateDescription }, { key: CreateProjectCommand.BlankVisionTemplateKey, value: "@nativescript/template-blank-react-vision", - description: CreateProjectCommand.BlankVisionTemplateDescription, - }, + description: CreateProjectCommand.BlankVisionTemplateDescription + } ]; return templates; @@ -364,18 +364,18 @@ can skip this prompt next time using the --template option, or using --ng, --rea { key: CreateProjectCommand.HelloWorldTemplateKey, value: constants.RESERVED_TEMPLATE_NAMES.solid, - description: CreateProjectCommand.HelloWorldTemplateDescription, + description: CreateProjectCommand.HelloWorldTemplateDescription }, { key: `${CreateProjectCommand.HelloWorldTemplateKey} using TypeScript`, value: constants.RESERVED_TEMPLATE_NAMES.solidts, - description: `${CreateProjectCommand.HelloWorldTemplateDescription} using TypeScript`, + description: `${CreateProjectCommand.HelloWorldTemplateDescription} using TypeScript` }, { key: CreateProjectCommand.BlankVisionTemplateKey, value: "@nativescript/template-blank-solid-vision", - description: CreateProjectCommand.BlankVisionTemplateDescription, - }, + description: CreateProjectCommand.BlankVisionTemplateDescription + } ]; return templates; @@ -386,13 +386,13 @@ can skip this prompt next time using the --template option, or using --ng, --rea { key: CreateProjectCommand.HelloWorldTemplateKey, value: constants.RESERVED_TEMPLATE_NAMES.svelte, - description: CreateProjectCommand.HelloWorldTemplateDescription, + description: CreateProjectCommand.HelloWorldTemplateDescription }, { key: CreateProjectCommand.BlankVisionTemplateKey, value: "@nativescript/template-blank-svelte-vision", - description: CreateProjectCommand.BlankVisionTemplateDescription, - }, + description: CreateProjectCommand.BlankVisionTemplateDescription + } ]; return templates; @@ -403,28 +403,28 @@ can skip this prompt next time using the --template option, or using --ng, --rea { key: CreateProjectCommand.BlankTemplateKey, value: "@nativescript/template-blank-vue", - description: CreateProjectCommand.BlankTemplateDescription, + description: CreateProjectCommand.BlankTemplateDescription }, { key: CreateProjectCommand.BlankTsTemplateKey, value: "@nativescript/template-blank-vue-ts", - description: CreateProjectCommand.BlankTsTemplateDescription, + description: CreateProjectCommand.BlankTsTemplateDescription }, { key: CreateProjectCommand.DrawerTemplateKey, value: "@nativescript/template-drawer-navigation-vue", - description: CreateProjectCommand.DrawerTemplateDescription, + description: CreateProjectCommand.DrawerTemplateDescription }, { key: CreateProjectCommand.TabsTemplateKey, value: "@nativescript/template-tab-navigation-vue", - description: CreateProjectCommand.TabsTemplateDescription, + description: CreateProjectCommand.TabsTemplateDescription }, { key: CreateProjectCommand.BlankVisionTemplateKey, value: "@nativescript/template-blank-vue-vision", - description: CreateProjectCommand.BlankVisionTemplateDescription, - }, + description: CreateProjectCommand.BlankVisionTemplateDescription + } ]; return templates; @@ -448,7 +448,7 @@ can skip this prompt next time using the --template option, or using --ng, --rea runDebugNotes = [ `Run the project on Vision Pro with:`, "", - ` ${greyDollarSign} ${color.green("ns run visionos --no-hmr")}`, + ` ${greyDollarSign} ${color.green("ns run visionos --no-hmr")}` ]; } else { runDebugNotes = [ @@ -460,7 +460,7 @@ can skip this prompt next time using the --template option, or using --ng, --rea "Debug the project with Chrome DevTools:", "", ` ${greyDollarSign} ${color.green("ns debug ios")}`, - ` ${greyDollarSign} ${color.green("ns debug android")}`, + ` ${greyDollarSign} ${color.green("ns debug android")}` ]; } this.$logger.info( @@ -468,7 +468,7 @@ can skip this prompt next time using the --template option, or using --ng, --rea [ color.green(`Project`), color.cyan(projectName), - color.green(`was successfully created.`), + color.green(`was successfully created.`) ].join(" "), "", `Now you can navigate to your project with ${color.cyan( @@ -478,7 +478,7 @@ can skip this prompt next time using the --template option, or using --ng, --rea ...runDebugNotes, ``, `For more options consult the docs or run ${color.green("ns --help")}`, - "", + "" ].join("\n") ); // todo: add back ns preview diff --git a/lib/commands/debug.ts b/lib/commands/debug.ts index 031effbbce..7bd030f97b 100644 --- a/lib/commands/debug.ts +++ b/lib/commands/debug.ts @@ -8,7 +8,7 @@ import { IPlatformsDataService } from "../definitions/platform"; import { IDebugDataService, IDebugController, - IDebugOptions, + IDebugOptions } from "../definitions/debug"; import { IMigrateController } from "../definitions/migrate"; import { ICommandParameter, ICommand } from "../common/definitions/commands"; @@ -20,7 +20,8 @@ import * as _ from "lodash"; export class DebugPlatformCommand extends ValidatePlatformCommandBase - implements ICommand { + implements ICommand +{ public allowedParameters: ICommandParameter[] = []; constructor( @@ -52,13 +53,13 @@ export class DebugPlatformCommand platform: this.platform, deviceId: this.$options.device, emulator: this.$options.emulator, - skipDeviceDetectionInterval: true, + skipDeviceDetectionInterval: true }); const selectedDeviceForDebug = await this.$devicesService.pickSingleDevice({ onlyEmulators: this.$options.emulator, onlyDevices: this.$options.forDevice, - deviceId: this.$options.device, + deviceId: this.$options.device }); if (this.$options.start) { @@ -79,10 +80,10 @@ export class DebugPlatformCommand this.platform, { deviceDebugMap: { - [selectedDeviceForDebug.deviceInfo.identifier]: true, + [selectedDeviceForDebug.deviceInfo.identifier]: true }, buildPlatform: undefined, - skipNativePrepare: false, + skipNativePrepare: false } ); } @@ -91,7 +92,7 @@ export class DebugPlatformCommand if (!this.$options.force) { await this.$migrateController.validate({ projectDir: this.$projectData.projectDir, - platforms: [this.platform], + platforms: [this.platform] }); } @@ -113,7 +114,7 @@ export class DebugPlatformCommand } const result = await super.canExecuteCommandBase(this.platform, { - validateOptions: true, + validateOptions: true }); return result; } @@ -123,7 +124,7 @@ export class DebugIOSCommand implements ICommand { @cache() private get debugPlatformCommand(): DebugPlatformCommand { return this.$injector.resolve(DebugPlatformCommand, { - platform: this.platform, + platform: this.platform }); } @@ -213,7 +214,7 @@ export class DebugAndroidCommand implements ICommand { @cache() private get debugPlatformCommand(): DebugPlatformCommand { return this.$injector.resolve(DebugPlatformCommand, { - platform: this.platform, + platform: this.platform }); } diff --git a/lib/commands/deploy.ts b/lib/commands/deploy.ts index a06f6ea46f..828d2d9589 100644 --- a/lib/commands/deploy.ts +++ b/lib/commands/deploy.ts @@ -1,6 +1,6 @@ import { ANDROID_RELEASE_BUILD_ERROR_MESSAGE, - ANDROID_APP_BUNDLE_SIGNING_ERROR_MESSAGE, + ANDROID_APP_BUNDLE_SIGNING_ERROR_MESSAGE } from "../constants"; import { ValidatePlatformCommandBase } from "./command-base"; import { DeployCommandHelper } from "../helpers/deploy-command-helper"; @@ -15,16 +15,17 @@ import { injector } from "../common/yok"; export class DeployOnDeviceCommand extends ValidatePlatformCommandBase - implements ICommand { + implements ICommand +{ public allowedParameters: ICommandParameter[] = []; public dashedOptions = { watch: { type: OptionType.Boolean, default: false, - hasSensitiveValue: false, + hasSensitiveValue: false }, - hmr: { type: OptionType.Boolean, default: false, hasSensitiveValue: false }, + hmr: { type: OptionType.Boolean, default: false, hasSensitiveValue: false } }; constructor( @@ -58,7 +59,7 @@ export class DeployOnDeviceCommand if (!this.$options.force) { await this.$migrateController.validate({ projectDir: this.$projectData.projectDir, - platforms: [platform], + platforms: [platform] }); } @@ -83,7 +84,7 @@ export class DeployOnDeviceCommand } const result = await super.canExecuteCommandBase(platform, { - validateOptions: true, + validateOptions: true }); return result; } diff --git a/lib/commands/fonts.ts b/lib/commands/fonts.ts index bcdf0a996e..304b831ca8 100644 --- a/lib/commands/fonts.ts +++ b/lib/commands/fonts.ts @@ -28,7 +28,7 @@ export class FontsCommand implements ICommand { constants.FONTS_DIR ), path.join(constants.APP_FOLDER_NAME, constants.FONTS_DIR), - path.join(constants.SRC_DIR, constants.FONTS_DIR), + path.join(constants.SRC_DIR, constants.FONTS_DIR) ].map((entry) => path.resolve(this.$projectData.projectDir, entry)); const fontsFolderPath = defaultFontsFolderPaths.find((entry) => @@ -58,7 +58,7 @@ export class FontsCommand implements ICommand { const font = await fontFinder.get(fontsFolderPath + "/" + file.base); table.push([ file.base, - `font-family: "${font.name}", "${file.name}"; font-weight: ${font.weight};`, + `font-family: "${font.name}", "${file.name}"; font-weight: ${font.weight};` ]); } diff --git a/lib/commands/generate-assets.ts b/lib/commands/generate-assets.ts index 5133cea3e0..00c0a75896 100644 --- a/lib/commands/generate-assets.ts +++ b/lib/commands/generate-assets.ts @@ -3,7 +3,7 @@ import { IOptions, IAssetsGenerationService } from "../declarations"; import { ICommand, ICommandParameter, - IStringParameterBuilder, + IStringParameterBuilder } from "../common/definitions/commands"; import { IInjector } from "../common/definitions/yok"; import { injector } from "../common/yok"; @@ -12,7 +12,7 @@ export abstract class GenerateCommandBase implements ICommand { public allowedParameters: ICommandParameter[] = [ this.$stringParameterBuilder.createMandatoryParameter( "You have to provide path to image to generate other images based on it." - ), + ) ]; constructor( @@ -38,7 +38,8 @@ export abstract class GenerateCommandBase implements ICommand { export class GenerateIconsCommand extends GenerateCommandBase - implements ICommand { + implements ICommand +{ constructor( protected $options: IOptions, $injector: IInjector, @@ -62,7 +63,7 @@ export class GenerateIconsCommand await this.$assetsGenerationService.generateIcons({ imagePath, background, - projectDir: this.$projectData.projectDir, + projectDir: this.$projectData.projectDir }); } } @@ -71,7 +72,8 @@ injector.registerCommand("resources|generate|icons", GenerateIconsCommand); export class GenerateSplashScreensCommand extends GenerateCommandBase - implements ICommand { + implements ICommand +{ constructor( protected $options: IOptions, $injector: IInjector, @@ -95,7 +97,7 @@ export class GenerateSplashScreensCommand await this.$assetsGenerationService.generateSplashScreens({ imagePath, background, - projectDir: this.$projectData.projectDir, + projectDir: this.$projectData.projectDir }); } } diff --git a/lib/commands/generate.ts b/lib/commands/generate.ts index 0ab06c32f0..dca3e402c9 100644 --- a/lib/commands/generate.ts +++ b/lib/commands/generate.ts @@ -1,22 +1,25 @@ -import { run, ExecutionOptions } from "@nativescript/schematics-executor"; -import { IOptions } from "../declarations"; +// import { run, ExecutionOptions } from "@nativescript/schematics-executor"; +// import { IOptions } from "../declarations"; import { ICommand, ICommandParameter } from "../common/definitions/commands"; import { IErrors } from "../common/declarations"; import { injector } from "../common/yok"; export class GenerateCommand implements ICommand { public allowedParameters: ICommandParameter[] = []; - private executionOptions: ExecutionOptions; + // private executionOptions: ExecutionOptions; constructor( private $logger: ILogger, - private $options: IOptions, + // private $options: IOptions, private $errors: IErrors ) {} public async execute(_rawArgs: string[]): Promise { try { - await run(this.executionOptions); + this.$logger.info( + "If you have ideas for this command, please discuss at https://nativescript.org/discord" + ); + // await run(this.executionOptions); } catch (error) { this.$errors.fail(error.message); } @@ -30,68 +33,67 @@ export class GenerateCommand implements ICommand { } private validateExecutionOptions() { - if (!this.executionOptions.schematic) { - this.$errors.failWithHelp( - `The generate command requires a schematic name to be specified.` - ); - } + // if (!this.executionOptions.schematic) { + // this.$errors.failWithHelp( + // `The generate command requires a schematic name to be specified.` + // ); + // } } private setExecutionOptions(rawArgs: string[]) { - const options = this.parseRawArgs(rawArgs); - - this.executionOptions = { - ...options, - logger: this.$logger, - directory: process.cwd(), - }; + // const options = this.parseRawArgs(rawArgs); + // this.executionOptions = { + // ...options, + // logger: this.$logger, + // directory: process.cwd(), + // }; } - private parseRawArgs(rawArgs: string[]) { - const collection = this.$options.collection; - const schematic = rawArgs.shift(); - const { options, args } = parseSchematicSettings(rawArgs); + // private parseRawArgs(rawArgs: string[]) { + // const collection = this.$options.collection; + // const schematic = rawArgs.shift(); + // const { options, args } = parseSchematicSettings(rawArgs); - return { - collection, - schematic, - schematicOptions: options, - schematicArgs: args, - }; - } + // return { + // collection, + // schematic, + // schematicOptions: options, + // schematicArgs: args, + // }; + // } } /** * Converts an array of command line arguments to options for the executed schematic. * @param rawArgs The command line arguments. They should be in the format 'key=value' for strings or 'key' for booleans. */ -function parseSchematicSettings(rawArgs: string[]) { - const [optionStrings, args] = partition(rawArgs, (item) => - item.includes("=") - ); - const options = optionStrings - .map((o) => o.split("=")) // split to key and value pairs - .map(([key, ...value]) => [key, value.join("=")]) // concat the value arrays if there are multiple = signs - .reduce((obj, [key, value]) => { - return { ...obj, [key]: value }; - }, {}); +// function parseSchematicSettings(rawArgs: string[]) { +// const [optionStrings, args] = partition(rawArgs, (item) => +// item.includes("=") +// ); +// const options = optionStrings +// .map((o) => o.split("=")) // split to key and value pairs +// .map(([key, ...value]) => [key, value.join("=")]) // concat the value arrays if there are multiple = signs +// .reduce((obj, [key, value]) => { +// return { ...obj, [key]: value }; +// }, {}); - return { options, args }; -} +// return { options, args }; +// } /** * Splits an array into two groups based on a predicate. * @param array The array to split. * @param predicate The condition to be used for splitting. */ -function partition(array: T[], predicate: (item: T) => boolean): T[][] { - return array.reduce( - ([pass, fail], item) => { - return predicate(item) - ? [[...pass, item], fail] - : [pass, [...fail, item]]; - }, - [[], []] - ); -} +// function partition(array: T[], predicate: (item: T) => boolean): T[][] { +// return array.reduce( +// ([pass, fail], item) => { +// return predicate(item) +// ? [[...pass, item], fail] +// : [pass, [...fail, item]]; +// }, +// [[], []] +// ); +// } injector.registerCommand("generate", GenerateCommand); diff --git a/lib/commands/install.ts b/lib/commands/install.ts index 32de375055..a06395ea09 100644 --- a/lib/commands/install.ts +++ b/lib/commands/install.ts @@ -3,7 +3,7 @@ import { IProjectData, IProjectDataService } from "../definitions/project"; import { IOptions, IPlatformCommandHelper, - INodePackageManager, + INodePackageManager } from "../declarations"; import { IPlatformsDataService } from "../definitions/platform"; import { IPluginsService } from "../definitions/plugins"; @@ -91,7 +91,7 @@ export class InstallCommand implements ICommand { disableNpmInstall: this.$options.disableNpmInstall, frameworkPath: this.$options.frameworkPath, ignoreScripts: this.$options.ignoreScripts, - path: this.$options.path, + path: this.$options.path }); } } diff --git a/lib/commands/list-platforms.ts b/lib/commands/list-platforms.ts index 83c56e443c..201fd5f984 100644 --- a/lib/commands/list-platforms.ts +++ b/lib/commands/list-platforms.ts @@ -16,14 +16,12 @@ export class ListPlatformsCommand implements ICommand { } public async execute(args: string[]): Promise { - const installedPlatforms = this.$platformCommandHelper.getInstalledPlatforms( - this.$projectData - ); + const installedPlatforms = + this.$platformCommandHelper.getInstalledPlatforms(this.$projectData); if (installedPlatforms.length > 0) { - const preparedPlatforms = this.$platformCommandHelper.getPreparedPlatforms( - this.$projectData - ); + const preparedPlatforms = + this.$platformCommandHelper.getPreparedPlatforms(this.$projectData); if (preparedPlatforms.length > 0) { this.$logger.info( "The project is prepared for: ", diff --git a/lib/commands/migrate.ts b/lib/commands/migrate.ts index 879f3b5e80..0a65bc0763 100644 --- a/lib/commands/migrate.ts +++ b/lib/commands/migrate.ts @@ -21,12 +21,11 @@ export class MigrateCommand implements ICommand { projectDir: this.$projectData.projectDir, platforms: [ this.$devicePlatformsConstants.Android, - this.$devicePlatformsConstants.iOS, - ], + this.$devicePlatformsConstants.iOS + ] }; - const shouldMigrateResult = await this.$migrateController.shouldMigrate( - migrationData - ); + const shouldMigrateResult = + await this.$migrateController.shouldMigrate(migrationData); if (!shouldMigrateResult) { const cliVersion = this.$staticConfig.version; diff --git a/lib/commands/platform-clean.ts b/lib/commands/platform-clean.ts index 2cce2cd10c..d507dbe3f2 100644 --- a/lib/commands/platform-clean.ts +++ b/lib/commands/platform-clean.ts @@ -3,7 +3,7 @@ import { IProjectData } from "../definitions/project"; import { IOptions, IPlatformCommandHelper, - IPlatformValidationService, + IPlatformValidationService } from "../declarations"; import { IPlatformEnvironmentRequirements } from "../definitions/platform"; import { ICommand, ICommandParameter } from "../common/definitions/commands"; @@ -52,15 +52,16 @@ export class CleanCommand implements ICommand { this.$projectData ); - const currentRuntimeVersion = this.$platformCommandHelper.getCurrentPlatformVersion( - platform, - this.$projectData - ); + const currentRuntimeVersion = + this.$platformCommandHelper.getCurrentPlatformVersion( + platform, + this.$projectData + ); await this.$platformEnvironmentRequirements.checkEnvironmentRequirements({ platform, projectDir: this.$projectData.projectDir, runtimeVersion: currentRuntimeVersion, - options: this.$options, + options: this.$options }); } diff --git a/lib/commands/post-install.ts b/lib/commands/post-install.ts index d02b0d769f..f42836315d 100644 --- a/lib/commands/post-install.ts +++ b/lib/commands/post-install.ts @@ -5,7 +5,7 @@ import { IHelpService, ISettingsService, IAnalyticsService, - IHostInfo, + IHostInfo } from "../common/declarations"; import { injector } from "../common/yok"; import { color } from "../color"; diff --git a/lib/commands/prepare.ts b/lib/commands/prepare.ts index e726b02861..89b6705e76 100644 --- a/lib/commands/prepare.ts +++ b/lib/commands/prepare.ts @@ -19,15 +19,15 @@ export class PrepareCommand watch: { type: OptionType.Boolean, default: false, - hasSensitiveValue: false, + hasSensitiveValue: false }, hmr: { type: OptionType.Boolean, default: false, hasSensitiveValue: false }, whatever: { type: OptionType.Boolean, default: false, - hasSensitiveValue: false, - }, + hasSensitiveValue: false + } }; constructor( @@ -74,7 +74,7 @@ export class PrepareCommand if (!this.$options.force) { await this.$migrateController.validate({ projectDir: this.$projectData.projectDir, - platforms: [platform], + platforms: [platform] }); } diff --git a/lib/commands/preview.ts b/lib/commands/preview.ts index 872267b260..fd2a2df453 100644 --- a/lib/commands/preview.ts +++ b/lib/commands/preview.ts @@ -24,7 +24,7 @@ export class PreviewCommand implements ICommand { private getPreviewCLIPath(): string { return resolvePackagePath(PREVIEW_CLI_PACKAGE, { - paths: [this.$projectData.projectDir], + paths: [this.$projectData.projectDir] }); } @@ -36,7 +36,7 @@ export class PreviewCommand implements ICommand { this.$projectData.projectDir, { "save-dev": true, - "save-exact": true, + "save-exact": true } as any ); } @@ -77,7 +77,7 @@ export class PreviewCommand implements ICommand { "", color.cyan(" ./node_modules/.bin/preview-cli"), "", - "And if you are still having issues, try again - or reach out on Discord/open an issue on GitHub.", + "And if you are still having issues, try again - or reach out on Discord/open an issue on GitHub." ].join("\n") ); @@ -92,7 +92,7 @@ export class PreviewCommand implements ICommand { process.execPath, [previewCLIBinPath, ...commandArgs], { - stdio: "inherit", + stdio: "inherit" } ); } diff --git a/lib/commands/remove-platform.ts b/lib/commands/remove-platform.ts index db5c5cb427..89dc159ece 100644 --- a/lib/commands/remove-platform.ts +++ b/lib/commands/remove-platform.ts @@ -2,7 +2,7 @@ import * as _ from "lodash"; import { IProjectData } from "../definitions/project"; import { IPlatformCommandHelper, - IPlatformValidationService, + IPlatformValidationService } from "../declarations"; import { injector } from "../common/yok"; import { ICommand, ICommandParameter } from "../common/definitions/commands"; diff --git a/lib/commands/run.ts b/lib/commands/run.ts index 8b7e789c1b..b8d2b34794 100644 --- a/lib/commands/run.ts +++ b/lib/commands/run.ts @@ -4,14 +4,14 @@ import { cache } from "../common/decorators"; import { ICommand, ICommandParameter } from "../common/definitions/commands"; import { IKeyCommandHelper, - IKeyCommandPlatform, + IKeyCommandPlatform } from "../common/definitions/key-commands"; import { IInjector } from "../common/definitions/yok"; import { hasValidAndroidSigning } from "../common/helpers"; import { injector } from "../common/yok"; import { ANDROID_APP_BUNDLE_SIGNING_ERROR_MESSAGE, - ANDROID_RELEASE_BUILD_ERROR_MESSAGE, + ANDROID_RELEASE_BUILD_ERROR_MESSAGE } from "../constants"; import { IOptions, IPlatformValidationService } from "../declarations"; import { IMigrateController } from "../definitions/migrate"; @@ -63,13 +63,13 @@ export class RunCommandBase implements ICommand { ? [this.platform] : [ this.$devicePlatformsConstants.Android, - this.$devicePlatformsConstants.iOS, - ]; + this.$devicePlatformsConstants.iOS + ]; if (!this.$options.force) { await this.$migrateController.validate({ projectDir: this.$projectData.projectDir, - platforms, + platforms }); } diff --git a/lib/commands/test-init.ts b/lib/commands/test-init.ts index 32b55ad04c..03b3808978 100644 --- a/lib/commands/test-init.ts +++ b/lib/commands/test-init.ts @@ -4,7 +4,7 @@ import { TESTING_FRAMEWORKS, ProjectTypes } from "../constants"; import { fromWindowsRelativePathToUnix } from "../common/helpers"; import { IProjectData, - ITestInitializationService, + ITestInitializationService } from "../definitions/project"; import { INodePackageManager, IOptions } from "../declarations"; import { IPluginsService } from "../definitions/plugins"; @@ -14,7 +14,7 @@ import { IErrors, IFileSystem, IResourceLoader, - IDependencyInformation, + IDependencyInformation } from "../common/declarations"; import { injector } from "../common/yok"; import { color } from "../color"; @@ -23,7 +23,7 @@ class TestInitCommand implements ICommand { public allowedParameters: ICommandParameter[] = []; private karmaConfigAdditionalFrameworks: IDictionary = { - mocha: ["chai"], + mocha: ["chai"] }; constructor( @@ -64,9 +64,8 @@ class TestInitCommand implements ICommand { let modulesToInstall: IDependencyInformation[] = []; try { - modulesToInstall = this.$testInitializationService.getDependencies( - frameworkToInstall - ); + modulesToInstall = + this.$testInitializationService.getDependencies(frameworkToInstall); } catch (err) { this.$errors.fail( `Unable to install the unit testing dependencies. Error: '${err.message}'` @@ -89,7 +88,7 @@ class TestInitCommand implements ICommand { disableNpmInstall: this.$options.disableNpmInstall, frameworkPath: this.$options.frameworkPath, ignoreScripts: this.$options.ignoreScripts, - path: this.$options.path, + path: this.$options.path }); const modulePath = path.join(projectDir, "node_modules", mod.name); @@ -121,7 +120,7 @@ class TestInitCommand implements ICommand { disableNpmInstall: false, frameworkPath: this.$options.frameworkPath, ignoreScripts: this.$options.ignoreScripts, - path: this.$options.path, + path: this.$options.path } ); } catch (e) { @@ -156,7 +155,7 @@ class TestInitCommand implements ICommand { [ `Note: The "${projectTestsDir}" directory already exists, will not create example tests in the project.`, `You may create "${specFilenamePattern}" files anywhere you'd like.`, - "", + "" ].join("\n") ) ); @@ -176,7 +175,7 @@ class TestInitCommand implements ICommand { const karmaConf = _.template(karmaConfTemplate)({ frameworks, testFiles, - basePath: this.$projectData.getAppDirectoryRelativePath(), + basePath: this.$projectData.getAppDirectoryRelativePath() }); this.$fs.writeFile(path.join(projectDir, "karma.conf.js"), karmaConf); @@ -221,7 +220,7 @@ class TestInitCommand implements ICommand { "test/tsconfig.spec.json" ); const testTsConfig = _.template(testTsConfigTemplate)({ - basePath: this.$projectData.getAppDirectoryRelativePath(), + basePath: this.$projectData.getAppDirectoryRelativePath() }); this.$fs.writeFile( @@ -236,7 +235,7 @@ class TestInitCommand implements ICommand { [ color.green(`Tests using`), color.cyan(frameworkToInstall), - color.green(`were successfully initialized.`), + color.green(`were successfully initialized.`) ].join(" "), "", ...bufferedLogs, @@ -254,7 +253,7 @@ class TestInitCommand implements ICommand { "", ` ${greyDollarSign} ${color.green("ns test ios")}`, ` ${greyDollarSign} ${color.green("ns test android")}`, - "", + "" ].join("\n") ); } diff --git a/lib/commands/test.ts b/lib/commands/test.ts index 2e12127477..1bcf4c85a1 100644 --- a/lib/commands/test.ts +++ b/lib/commands/test.ts @@ -1,7 +1,7 @@ import { hasValidAndroidSigning } from "../common/helpers"; import { ANDROID_RELEASE_BUILD_ERROR_MESSAGE, - ANDROID_APP_BUNDLE_SIGNING_ERROR_MESSAGE, + ANDROID_APP_BUNDLE_SIGNING_ERROR_MESSAGE } from "../constants"; import { IProjectData, ITestExecutionService } from "../definitions/project"; import { IOptions } from "../declarations"; @@ -13,7 +13,7 @@ import { IAnalyticsService, IErrors, IDictionary, - ErrorCodes, + ErrorCodes } from "../common/declarations"; import { ICleanupService } from "../definitions/cleanup-service"; import { injector } from "../common/yok"; @@ -21,7 +21,7 @@ import { injector } from "../common/yok"; abstract class TestCommandBase { public allowedParameters: ICommandParameter[] = []; public dashedOptions = { - hmr: { type: OptionType.Boolean, default: false, hasSensitiveValue: false }, + hmr: { type: OptionType.Boolean, default: false, hasSensitiveValue: false } }; protected abstract platform: string; @@ -44,16 +44,15 @@ abstract class TestCommandBase { deviceId: this.$options.device, emulator: this.$options.emulator, skipInferPlatform: !this.platform, - sdk: this.$options.sdk, + sdk: this.$options.sdk }); - const selectedDeviceForDebug = await this.$devicesService.pickSingleDevice( - { + const selectedDeviceForDebug = + await this.$devicesService.pickSingleDevice({ onlyEmulators: this.$options.emulator, onlyDevices: this.$options.forDevice, - deviceId: this.$options.device, - } - ); + deviceId: this.$options.device + }); devices = [selectedDeviceForDebug]; // const debugData = this.getDebugData(platform, projectData, deployOptions, { device: selectedDeviceForDebug.deviceInfo.identifier }); // await this.$debugService.debug(debugData, this.$options); @@ -78,11 +77,12 @@ abstract class TestCommandBase { (deviceDebugMap[device.deviceInfo.identifier] = this.$options.debugBrk) ); - const deviceDescriptors = await this.$liveSyncCommandHelper.createDeviceDescriptors( - devices, - this.platform, - { deviceDebugMap } - ); + const deviceDescriptors = + await this.$liveSyncCommandHelper.createDeviceDescriptors( + devices, + this.platform, + { deviceDebugMap } + ); await this.$testExecutionService.startKarmaServer( this.platform, @@ -106,7 +106,7 @@ abstract class TestCommandBase { await this.$migrateController.validate({ projectDir: this.$projectData.projectDir, - platforms: [this.platform], + platforms: [this.platform] }); } @@ -118,22 +118,20 @@ abstract class TestCommandBase { this.$options.justlaunch || !this.$options.watch ); - const output = await this.$platformEnvironmentRequirements.checkEnvironmentRequirements( - { + const output = + await this.$platformEnvironmentRequirements.checkEnvironmentRequirements({ platform: this.platform, projectDir: this.$projectData.projectDir, - options: this.$options, - } - ); + options: this.$options + }); - const canStartKarmaServer = await this.$testExecutionService.canStartKarmaServer( - this.$projectData - ); + const canStartKarmaServer = + await this.$testExecutionService.canStartKarmaServer(this.$projectData); if (!canStartKarmaServer) { this.$errors.fail({ formatStr: "Error: In order to run unit tests, your project must already be configured by running $ ns test init.", - errorCode: ErrorCodes.TESTS_INIT_REQUIRED, + errorCode: ErrorCodes.TESTS_INIT_REQUIRED }); } diff --git a/lib/commands/typings.ts b/lib/commands/typings.ts index 67f01cfc62..74c680fba4 100644 --- a/lib/commands/typings.ts +++ b/lib/commands/typings.ts @@ -68,7 +68,7 @@ export class TypingsCommand implements ICommand { const pattern = `${target.replaceAll(":", "/")}/**/*.{jar,aar}`; const res = await glob(pattern, { - cwd: gradleFiles, + cwd: gradleFiles }); if (!res || res.length === 0) { @@ -85,7 +85,7 @@ export class TypingsCommand implements ICommand { version, sha1, file, - path: path.resolve(gradleFiles, item), + path: path.resolve(gradleFiles, item) }; }); @@ -102,7 +102,7 @@ export class TypingsCommand implements ICommand { return a.version.localeCompare(b.version, undefined, { numeric: true, - sensitivity: "base", + sensitivity: "base" }); }) .map((item) => { @@ -112,12 +112,12 @@ export class TypingsCommand implements ICommand { )}:${color.yellow(item.version)} - ${color.cyanBright.bold( item.file )}`, - value: item.id, + value: item.id }; }), true, { - optionsPerPage: process.stdout.rows - 6, // 6 lines are taken up by the instructions + optionsPerPage: process.stdout.rows - 6 // 6 lines are taken up by the instructions } as Partial ); @@ -150,7 +150,7 @@ export class TypingsCommand implements ICommand { [ "No .jar or .aar file specified. Please specify at least one of the following:", " - path to .jar file with --jar ", - " - path to .aar file with --aar ", + " - path to .aar file with --aar " ].join("\n") ); return false; @@ -192,7 +192,7 @@ export class TypingsCommand implements ICommand { const inputs: string[] = [ ...asArray(this.$options.jar), ...asArray(this.$options.aar), - ...paths, + ...paths ]; await this.$childProcess.spawnFromEvent( @@ -203,7 +203,7 @@ export class TypingsCommand implements ICommand { "-input", ...inputs, "-output", - path.resolve(this.$projectData.projectDir, "typings", "android"), + path.resolve(this.$projectData.projectDir, "typings", "android") ], "exit", { stdio: "inherit" } @@ -230,9 +230,9 @@ export class TypingsCommand implements ICommand { this.$projectData.projectDir, "typings", "ios" - ), + ) }, - stdio: "inherit", + stdio: "inherit" } ); } diff --git a/lib/commands/update-platform.ts b/lib/commands/update-platform.ts index da127b4ac5..dee0a21f9f 100644 --- a/lib/commands/update-platform.ts +++ b/lib/commands/update-platform.ts @@ -3,11 +3,11 @@ import { IProjectData } from "../definitions/project"; import { IOptions, IPlatformCommandHelper, - IPlatformValidationService, + IPlatformValidationService } from "../declarations"; import { IPlatformEnvironmentRequirements, - ICheckEnvironmentRequirementsInput, + ICheckEnvironmentRequirementsInput } from "../definitions/platform"; import { ICommand, ICommandParameter } from "../common/definitions/commands"; import { IErrors } from "../common/declarations"; @@ -48,16 +48,18 @@ export class UpdatePlatformCommand implements ICommand { for (const arg of args) { const [platform, versionToBeInstalled] = arg.split("@"); - const checkEnvironmentRequirementsInput: ICheckEnvironmentRequirementsInput = { - platform, - options: this.$options, - }; + const checkEnvironmentRequirementsInput: ICheckEnvironmentRequirementsInput = + { + platform, + options: this.$options + }; // If version is not specified, we know the command will install the latest compatible Android runtime. // The latest compatible Android runtime supports Java version, so we do not need to pass it here. // Passing projectDir to the @nativescript/doctor validation will cause it to check the runtime from the current package.json // So in this case, where we do not want to validate the runtime, just do not pass both projectDir and runtimeVersion. if (versionToBeInstalled) { - checkEnvironmentRequirementsInput.projectDir = this.$projectData.projectDir; + checkEnvironmentRequirementsInput.projectDir = + this.$projectData.projectDir; checkEnvironmentRequirementsInput.runtimeVersion = versionToBeInstalled; } diff --git a/lib/commands/update.ts b/lib/commands/update.ts index 890b0d66bc..f2c3ce9293 100644 --- a/lib/commands/update.ts +++ b/lib/commands/update.ts @@ -30,7 +30,7 @@ export class UpdateCommand implements ICommand { // ns update --markingMode await this.$markingModeService.handleMarkingModeFullDeprecation({ projectDir: this.$projectData.projectDir, - forceSwitch: true, + forceSwitch: true }); return; } @@ -38,7 +38,7 @@ export class UpdateCommand implements ICommand { if ( !(await this.$updateController.shouldUpdate({ projectDir: this.$projectData.projectDir, - version: args[0], + version: args[0] })) ) { this.$logger.printMarkdown( @@ -50,7 +50,7 @@ export class UpdateCommand implements ICommand { await this.$updateController.update({ projectDir: this.$projectData.projectDir, version: args[0], - frameworkPath: this.$options.frameworkPath, + frameworkPath: this.$options.frameworkPath }); } @@ -59,9 +59,9 @@ export class UpdateCommand implements ICommand { projectDir: this.$projectData.projectDir, platforms: [ this.$devicePlatformsConstants.Android, - this.$devicePlatformsConstants.iOS, + this.$devicePlatformsConstants.iOS ], - loose: true, + loose: true }); if (shouldMigrate) { diff --git a/lib/common/child-process.ts b/lib/common/child-process.ts index b97d905c7b..ceb07ca037 100644 --- a/lib/common/child-process.ts +++ b/lib/common/child-process.ts @@ -6,12 +6,15 @@ import { IErrors, IExecOptions, ISpawnFromEventOptions, - ISpawnResult, + ISpawnResult } from "./declarations"; import { injector } from "./yok"; export class ChildProcess extends EventEmitter implements IChildProcess { - constructor(private $logger: ILogger, private $errors: IErrors) { + constructor( + private $logger: ILogger, + private $errors: IErrors + ) { super(); } @@ -139,7 +142,7 @@ export class ChildProcess extends EventEmitter implements IChildProcess { ) { this.emit(spawnFromEventOptions.emitOptions.eventName, { data, - pipe: "stdout", + pipe: "stdout" }); } @@ -156,7 +159,7 @@ export class ChildProcess extends EventEmitter implements IChildProcess { ) { this.emit(spawnFromEventOptions.emitOptions.eventName, { data, - pipe: "stderr", + pipe: "stderr" }); } @@ -169,12 +172,12 @@ export class ChildProcess extends EventEmitter implements IChildProcess { const result = { stdout: capturedOut, stderr: capturedErr, - exitCode: exitCode, + exitCode: exitCode }; const clearKillTimer = () => { if (killTimer) { - clearTimeout(killTimer); + clearTimeout(killTimer as unknown as number); } }; @@ -220,7 +223,7 @@ export class ChildProcess extends EventEmitter implements IChildProcess { const result = { stdout: capturedOut, stderr: err.message, - exitCode: (err).code, + exitCode: (err).code }; isResolved = true; resolve(result); @@ -255,7 +258,7 @@ export class ChildProcess extends EventEmitter implements IChildProcess { return Promise.resolve({ stderr: err && err.message ? err.message : err, stdout: null, - exitCode: -1, + exitCode: -1 }); } } @@ -287,7 +290,7 @@ export class ChildProcess extends EventEmitter implements IChildProcess { ): Promise { try { return this.spawnFromEvent(command, args, event, undefined, { - throwError: false, + throwError: false }); } catch (e) { const message = e.code === "ENOENT" ? errorMessage : e.message; diff --git a/lib/common/command-params.ts b/lib/common/command-params.ts index 94ae68ec4b..9f2c1d1d52 100644 --- a/lib/common/command-params.ts +++ b/lib/common/command-params.ts @@ -1,6 +1,6 @@ import { ICommandParameter, - IStringParameterBuilder, + IStringParameterBuilder } from "./definitions/commands"; import { IInjector } from "./definitions/yok"; import { injector } from "./yok"; diff --git a/lib/common/constants.ts b/lib/common/constants.ts index 447efc7ca0..fe339dab85 100644 --- a/lib/common/constants.ts +++ b/lib/common/constants.ts @@ -63,12 +63,14 @@ export class EmulatorDiscoveryNames { export const DEVICE_LOG_EVENT_NAME = "deviceLogData"; export const IOS_LOG_PREDICATE = 'senderImagePath contains "NativeScript"'; -export const IOS_APP_CRASH_LOG_REG_EXP = /Fatal JavaScript exception \- application has been terminated/; -export const FAIL_LIVESYNC_LOG_REGEX = /Failed to refresh the application with RefreshRequest./; +export const IOS_APP_CRASH_LOG_REG_EXP = + /Fatal JavaScript exception \- application has been terminated/; +export const FAIL_LIVESYNC_LOG_REGEX = + /Failed to refresh the application with RefreshRequest./; export const TARGET_FRAMEWORK_IDENTIFIERS = { Cordova: "Cordova", - NativeScript: "NativeScript", + NativeScript: "NativeScript" }; export class Configurations { @@ -110,13 +112,13 @@ export class HttpStatusCodes { export const HttpProtocolToPort: IDictionary = { "http:": 80, - "https:": 443, + "https:": 443 }; export const enum AnalyticsClients { Cli = "CLI", NonInteractive = "Non-interactive", - Unknown = "Unknown", + Unknown = "Unknown" } export const DEFAULT_CHUNK_SIZE = 100; @@ -125,7 +127,7 @@ export const enum CommandsDelimiters { HierarchicalCommand = "|", DefaultCommandSymbol = "*", DefaultHierarchicalCommand = "|*", - HooksCommand = "-", + HooksCommand = "-" } export const DEBUGGER_PORT_FOUND_EVENT_NAME = "DEBUGGER_PORT_FOUND"; diff --git a/lib/common/declarations.d.ts b/lib/common/declarations.d.ts index 9102cdea65..a6b5274e2e 100644 --- a/lib/common/declarations.d.ts +++ b/lib/common/declarations.d.ts @@ -2,7 +2,7 @@ import { IOptions } from "../declarations"; import { IJsonFileSettingsService } from "./definitions/json-file-settings-service"; import { IEventActionData, - IGoogleAnalyticsData, + IGoogleAnalyticsData } from "./definitions/google-analytics"; import * as child_process from "child_process"; @@ -37,7 +37,7 @@ interface IiTunesConnectApplicationType { */ declare const enum GoogleAnalyticsDataType { Page = "pageview", - Event = "event", + Event = "event" } /** @@ -221,7 +221,7 @@ declare const enum TrackingTypes { * Defines that the broker process should send all the pending information to Analytics. * After that the process should send information it has finished tracking and die gracefully. */ - FinishTracking = "FinishTracking", + FinishTracking = "FinishTracking" } /** @@ -241,7 +241,7 @@ declare const enum AnalyticsStatus { /** * User has not been asked to allow feature and error tracking. */ - notConfirmed = "not confirmed", + notConfirmed = "not confirmed" } /** @@ -267,7 +267,7 @@ declare const enum OptionType { /** * Object option */ - Object = "object", + Object = "object" } /** @@ -546,7 +546,10 @@ interface IFileSystem { enumerateFilesInDirectorySync( directoryPath: string, filterCallback?: (file: string, stat: IFsStats) => boolean, - opts?: { enumerateDirectories?: boolean; includeEmptyDirectories?: boolean } + opts?: { + enumerateDirectories?: boolean; + includeEmptyDirectories?: boolean; + } ): string[]; /** @@ -665,7 +668,7 @@ declare const enum ErrorCodes { UNHANDLED_REJECTION_FAILURE = 131, DELETED_KILL_FILE = 132, TESTS_INIT_REQUIRED = 133, - ALL_DEVICES_DISCONNECTED = 134, + ALL_DEVICES_DISCONNECTED = 134 } interface IFutureDispatcher { diff --git a/lib/common/decorators.ts b/lib/common/decorators.ts index c951fda9f2..d89b81c3ea 100644 --- a/lib/common/decorators.ts +++ b/lib/common/decorators.ts @@ -86,7 +86,7 @@ export function memoize(options: MemoizeOptions): any { DEBUG && console.log({ cacheMapName, - hashKey, + hashKey }); // initialize cache map if not exists @@ -96,14 +96,14 @@ export function memoize(options: MemoizeOptions): any { configurable: false, enumerable: false, writable: false, - value: new Map(), + value: new Map() }); } const cacheMap: Map = this[cacheMapName]; DEBUG && console.log({ - cacheMap, + cacheMap }); // check if has memoized value based on hashFn @@ -198,9 +198,8 @@ export function performanceLog(localInjector?: IInjector): any { const originalMethod = descriptor.value; const className = target.constructor.name; const trackName = `${className}${AnalyticsEventLabelDelimiter}${propertyKey}`; - const performanceService: IPerformanceService = localInjector.resolve( - "performanceService" - ); + const performanceService: IPerformanceService = + localInjector.resolve("performanceService"); //needed for the returned function to have the same name as the original - used in hooks decorator const functionWrapper = { @@ -236,7 +235,7 @@ export function performanceLog(localInjector?: IInjector): any { } return result; - }, + } }; descriptor.value = functionWrapper[originalMethod.name]; diff --git a/lib/common/dispatchers.ts b/lib/common/dispatchers.ts index 1fa9edb065..a49e09c8bd 100644 --- a/lib/common/dispatchers.ts +++ b/lib/common/dispatchers.ts @@ -8,7 +8,7 @@ import { ISysInfo, IFutureDispatcher, IQueue, - IErrors, + IErrors } from "./declarations"; import { IOptions, IPackageManager, IVersionsService } from "../declarations"; import { IInjector } from "./definitions/yok"; @@ -46,7 +46,7 @@ export class CommandDispatcher implements ICommandDispatcher { "..", "..", "package.json" - ), + ) }); this.$logger.trace("System information:"); this.$logger.trace(JSON.stringify(sysInfo, null, 2)); @@ -69,7 +69,7 @@ export class CommandDispatcher implements ICommandDispatcher { ({ commandName, commandArguments, - argv: process.argv, + argv: process.argv } = await this.resolveCommand(commandName, commandArguments, process.argv)); await this.$cancellation.begin("cli"); @@ -141,7 +141,7 @@ export class CommandDispatcher implements ICommandDispatcher { nativescriptCliVersion.currentVersion, nativescriptCliVersion.latestVersion, { - loose: true, + loose: true } ) ) { diff --git a/lib/common/errors.ts b/lib/common/errors.ts index b75c8d759b..87877d232a 100644 --- a/lib/common/errors.ts +++ b/lib/common/errors.ts @@ -55,7 +55,7 @@ async function resolveCallStack(error: Error): Promise { return await SourceMapConsumer.with(mapData, null, (consumer) => { const sourcePos = consumer.originalPositionFor({ line: line, - column: column, + column: column }); if (sourcePos && sourcePos.source) { const source = path.join(path.dirname(fileName), sourcePos.source); @@ -228,8 +228,8 @@ export class Errors implements IErrors { const message = printCallStack ? await resolveCallStack(ex) : isInteractive() - ? `\x1B[31;1m${ex.message}\x1B[0m` - : ex.message; + ? `\x1B[31;1m${ex.message}\x1B[0m` + : ex.message; if (ex.printOnStdout) { logger.info(message); diff --git a/lib/common/file-system.ts b/lib/common/file-system.ts index b9b92372af..efddf7c4b4 100644 --- a/lib/common/file-system.ts +++ b/lib/common/file-system.ts @@ -6,7 +6,7 @@ import { basename, resolve as pathResolve, extname, - normalize, + normalize } from "path"; import * as minimatch from "minimatch"; import * as injector from "./yok"; @@ -15,12 +15,11 @@ import * as shelljs from "shelljs"; import { parseJson } from "./helpers"; import { PACKAGE_JSON_FILE_NAME } from "../constants"; import { EOL } from "os"; -import * as detectNewline from "detect-newline"; +import { detectNewline } from "detect-newline"; import { IFileSystem, IReadFileOptions, IFsStats } from "./declarations"; import { IInjector } from "./definitions/yok"; import { create as createArchiver } from "archiver"; -const stringifyPackage: any = require("stringify-package"); // TODO: Add .d.ts for mkdirp module (or use it from @types repo). const mkdirp = require("mkdirp"); @@ -40,8 +39,8 @@ export class FileSystem implements IFileSystem { const $logger = this.$injector.resolve("logger"); const zip = createArchiver("zip", { zlib: { - level: 9, - }, + level: 9 + } }); const outFile = fs.createWriteStream(zipFile); zip.pipe(outFile); @@ -101,13 +100,13 @@ export class FileSystem implements IFileSystem { zipFile, fileFilters || [], "-d", - destinationDir, + destinationDir ]); const $childProcess = this.$injector.resolve("childProcess"); await $childProcess.spawnFromEvent(proc, args, "close", { stdio: "ignore", - detached: true, + detached: true }); } @@ -118,7 +117,7 @@ export class FileSystem implements IFileSystem { const match = minimatch.match(entries, baseName, { nocase: true, nonegate: true, - nonull: true, + nonull: true })[0]; const result = join(dir, match); return result; @@ -309,7 +308,7 @@ export class FileSystem implements IFileSystem { const existingFile = this.readText(filename); newline = detectNewline(existingFile); } - stringifiedData = stringifyPackage(data, space, newline); + stringifiedData = JSON.stringify(data, null, space).concat(newline); } else { stringifiedData = JSON.stringify(data, null, space); } @@ -445,7 +444,7 @@ export class FileSystem implements IFileSystem { if (!this.$injector.resolve("$hostInfo").isWindows) { const chown = $childProcess.spawn("chown", ["-R", owner, path], { stdio: "ignore", - detached: true, + detached: true }); await this.futureFromEvent(chown, "close"); } diff --git a/lib/common/header.ts b/lib/common/header.ts index 6cc7b0eed8..0390ef7a74 100644 --- a/lib/common/header.ts +++ b/lib/common/header.ts @@ -12,13 +12,13 @@ export function printHeader() { color.dim("│ "), color.cyanBright.bold("{N} NativeScript "), color.whiteBright.bold("CLI"), - color.dim(` [v${version}] `), + color.dim(` [v${version}] `) // color.dim(" │"), ].join(""); const tagLine = [ color.dim("│ "), color.dim(" → "), - color.whiteBright.bold("Empower JavaScript with native APIs "), + color.whiteBright.bold("Empower JavaScript with native APIs ") // color.dim(" │"), ].join(""); diff --git a/lib/common/helpers.ts b/lib/common/helpers.ts index 02bd371a13..91d70afeac 100644 --- a/lib/common/helpers.ts +++ b/lib/common/helpers.ts @@ -11,7 +11,7 @@ import { IDeferPromise, Server, IHooksService, - IProjectFilesConfig, + IProjectFilesConfig } from "./declarations"; import { IAndroidSigningData } from "../definitions/build"; @@ -73,7 +73,7 @@ function isInstallingNativeScriptGloballyWithNpm(): boolean { const isGlobalCommand = doesCurrentNpmCommandMatch([/^--global$/, /^-g$/]); const hasNativeScriptPackage = doesCurrentNpmCommandMatch([ /^nativescript(@.*)?$/, - /nativescript-(.*)\.tgz?$/, + /nativescript-(.*)\.tgz?$/ ]); return isInstallCommand && isGlobalCommand && hasNativeScriptPackage; @@ -85,7 +85,7 @@ function isInstallingNativeScriptGloballyWithYarn(): boolean { const isGlobalCommand = doesCurrentNpmCommandMatch([/^global$/]); const hasNativeScriptPackage = doesCurrentNpmCommandMatch([ /^nativescript(@.*)?$/, - /nativescript-(.*)\.tgz?$/, + /nativescript-(.*)\.tgz?$/ ]); return isInstallCommand && isGlobalCommand && hasNativeScriptPackage; @@ -178,7 +178,7 @@ export function deferPromise(): IDeferPromise { isResolved: () => isResolved, isRejected: () => isRejected, isPending: () => !isResolved && !isRejected, - getResult: () => result, + getResult: () => result }; } @@ -221,7 +221,7 @@ export function settlePromises(promises: Promise[]): Promise { .map((e) => e.message || e) .join(EOL)}` ) - ) + ) : resolve(results); } }) @@ -410,7 +410,7 @@ export async function sleep(ms: number): Promise { export function createTable(headers: string[], data: string[][]): any { const table = new Table({ head: headers, - chars: { mid: "", "left-mid": "", "mid-mid": "", "right-mid": "" }, + chars: { mid: "", "left-mid": "", "mid-mid": "", "right-mid": "" } }); _.forEach(data, (row) => table.push(row)); @@ -710,7 +710,7 @@ export function getProjectFilesConfig(opts: { const projectFilesConfig: IProjectFilesConfig = { configuration: opts.isReleaseBuild ? Configurations.Release.toLowerCase() - : Configurations.Debug.toLowerCase(), + : Configurations.Debug.toLowerCase() }; return projectFilesConfig; } @@ -743,7 +743,7 @@ export function getValueFromNestedObject(obj: any, key: string): any { } const res: any[] = []; - _.forEach(_obj, (v, k) => { + _.forEach(_obj, (v, k: string) => { if ( typeof v === "object" && typeof k === "string" && @@ -769,7 +769,7 @@ export function getWinRegPropertyValue( const Winreg = require("winreg"); const regKey = new Winreg({ hive: Winreg.HKLM, - key: key, + key: key }); regKey.get(propertyName, (err: Error, value: string) => { if (err) { diff --git a/lib/common/host-info.ts b/lib/common/host-info.ts index 3ec7dacbe6..57ee6ecfdc 100644 --- a/lib/common/host-info.ts +++ b/lib/common/host-info.ts @@ -24,7 +24,10 @@ export class HostInfo implements IHostInfo { return this.$injector.resolve("logger"); } - constructor(private $errors: IErrors, private $injector: IInjector) {} + constructor( + private $errors: IErrors, + private $injector: IInjector + ) {} public get isWindows() { return process.platform === HostInfo.WIN32_NAME; @@ -65,11 +68,11 @@ export class HostInfo implements IHostInfo { this.$logger.trace("Trying to get macOS version."); let macOSVersion: string; try { - const systemProfileOutput = await this.$childProcess.exec( - systemProfileCommand - ); + const systemProfileOutput = + await this.$childProcess.exec(systemProfileCommand); - const versionRegExp = /System Version:\s+?macOS\s+?(\d+\.\d+)(\.\d+)?\s+/g; + const versionRegExp = + /System Version:\s+?macOS\s+?(\d+\.\d+)(\.\d+)?\s+/g; const regExpMatchers = versionRegExp.exec(systemProfileOutput); macOSVersion = regExpMatchers && regExpMatchers[1]; if (macOSVersion) { @@ -106,7 +109,7 @@ export class HostInfo implements IHostInfo { const Winreg = require("winreg"); const regKey = new Winreg({ hive: Winreg.HKLM, - key: HostInfo.DOT_NET_REGISTRY_PATH, + key: HostInfo.DOT_NET_REGISTRY_PATH }); regKey.get("Version", (err: Error, value: any) => { if (err) { diff --git a/lib/common/http-client.ts b/lib/common/http-client.ts index 55ac67aa93..55766448bf 100644 --- a/lib/common/http-client.ts +++ b/lib/common/http-client.ts @@ -30,7 +30,7 @@ export class HttpClient implements Server.IHttpClient { return { response: result, body: result.body, - headers: result.headers, + headers: result.headers }; } catch (err) { if ( @@ -49,7 +49,7 @@ export class HttpClient implements Server.IHttpClient { return { response: retryResult, body: retryResult.body, - headers: retryResult.headers, + headers: retryResult.headers }; } @@ -64,7 +64,7 @@ export class HttpClient implements Server.IHttpClient { if (_.isString(options)) { options = { url: options, - method: "GET", + method: "GET" }; } @@ -103,8 +103,8 @@ export class HttpClient implements Server.IHttpClient { agent = tunnel.httpsOverHttp({ proxy: { host: cliProxySettings.hostname, - port: parseInt(cliProxySettings.port), - }, + port: parseInt(cliProxySettings.port) + } }); } const result = await axios({ @@ -113,7 +113,7 @@ export class HttpClient implements Server.IHttpClient { method: options.method, proxy: false, httpAgent: agent, - data: options.body, + data: options.body }).catch((err) => { this.$logger.trace("An error occurred while sending the request:", err); if (err.response) { @@ -143,7 +143,7 @@ export class HttpClient implements Server.IHttpClient { return { response: result, body: JSON.stringify(result.data), - headers: result.headers, + headers: result.headers }; } } diff --git a/lib/common/logger/logger.ts b/lib/common/logger/logger.ts index 33b1d6136b..d0cb1ccd88 100644 --- a/lib/common/logger/logger.ts +++ b/lib/common/logger/logger.ts @@ -14,11 +14,12 @@ import { import { IDictionary } from "../declarations"; import { injector } from "../yok"; import { color } from "../../color"; -const TerminalRenderer = require("marked-terminal"); +import { markedTerminal } from "marked-terminal"; export class Logger implements ILogger { private log4jsLogger: log4js.Logger = null; - private passwordRegex = /(password=).*?(['&,]|$)|(password["']?\s*:\s*["']).*?(["'])/i; + private passwordRegex = + /(password=).*?(['&,]|$)|(password["']?\s*:\s*["']).*?(["'])/i; private passwordReplacement = "$1$3*******$2$4"; private defaultLogLevel: LoggerLevel; @@ -61,7 +62,7 @@ export class Logger implements ILogger { if (level === LoggerLevel.TRACE || level === LoggerLevel.ALL) { this.warn( `The "${level}" log level might print some sensitive data like secrets or access tokens in request URLs. Be careful when you share this output.`, - { wrapMessageWithBorders: true } + { wrapMessageWithBorders: true }, ); } } @@ -149,9 +150,9 @@ export class Logger implements ILogger { }, }; - marked.setOptions({ renderer: new TerminalRenderer(opts) }); + marked.use(markedTerminal(opts) as any); - const formattedMessage = marked(util.format.apply(null, args)); + const formattedMessage = marked.parse(util.format.apply(null, args)); this.info(formattedMessage, { [LoggerConfigData.skipNewLine]: true }); } @@ -180,7 +181,7 @@ export class Logger implements ILogger { (>this.log4jsLogger)[logMethod.toLowerCase()].apply( this.log4jsLogger, - data + data, ); for (const prop in logOpts) { @@ -188,9 +189,10 @@ export class Logger implements ILogger { } } - private getLogOptionsForMessage( - data: any[] - ): { data: any[]; [key: string]: any } { + private getLogOptionsForMessage(data: any[]): { + data: any[]; + [key: string]: any; + } { const loggerOptionKeys = _.keys(LoggerConfigData); const dataToCheck = data.filter((el) => { // objects created with Object.create(null) do not have `hasOwnProperty` function @@ -238,7 +240,7 @@ export class Logger implements ILogger { if (typeof argument === "string" && !!argument.match(/password/i)) { argument = argument.replace( this.passwordRegex, - this.passwordReplacement + this.passwordReplacement, ); } diff --git a/lib/common/mobile/android/android-virtual-device-service.ts b/lib/common/mobile/android/android-virtual-device-service.ts index d6b58f2339..04d6c8490d 100644 --- a/lib/common/mobile/android/android-virtual-device-service.ts +++ b/lib/common/mobile/android/android-virtual-device-service.ts @@ -35,30 +35,29 @@ export class AndroidVirtualDeviceService private $fs: IFileSystem, private $hostInfo: IHostInfo, private $sysInfo: ISysInfo, - private $logger: ILogger + private $logger: ILogger, ) { this.androidHome = process.env.ANDROID_HOME; } public async getEmulatorImages( - adbDevicesOutput: string[] + adbDevicesOutput: string[], ): Promise { const availableEmulatorsOutput = await this.getEmulatorImagesCore(); const avds = availableEmulatorsOutput.devices; - const runningEmulatorIds = await this.getRunningEmulatorIds( - adbDevicesOutput - ); + const runningEmulatorIds = + await this.getRunningEmulatorIds(adbDevicesOutput); const runningEmulators = await settlePromises( _.map(runningEmulatorIds, (emulatorId) => - this.getRunningEmulatorData(emulatorId, avds) - ) + this.getRunningEmulatorData(emulatorId, avds), + ), ); const devices = availableEmulatorsOutput.devices.map( (emulator) => this.$emulatorHelper.getEmulatorByImageIdentifier( emulator.imageIdentifier, - runningEmulators - ) || emulator + runningEmulators, + ) || emulator, ); return { devices, @@ -67,13 +66,13 @@ export class AndroidVirtualDeviceService } public async getRunningEmulatorIds( - adbDevicesOutput: string[] + adbDevicesOutput: string[], ): Promise { const emulatorIds = _.reduce( adbDevicesOutput, (result: string[], device: string) => { const rx = device.match( - AndroidVirtualDevice.RUNNING_AVD_EMULATOR_REGEX + AndroidVirtualDevice.RUNNING_AVD_EMULATOR_REGEX, ); if (rx && rx[1]) { result.push(rx[1]); @@ -81,26 +80,25 @@ export class AndroidVirtualDeviceService return result; }, - [] + [], ); return emulatorIds; } public async getRunningEmulatorName(emulatorId: string): Promise { - const imageIdentifier = await this.getRunningEmulatorImageIdentifier( - emulatorId - ); + const imageIdentifier = + await this.getRunningEmulatorImageIdentifier(emulatorId); const iniFilePath = path.join( this.pathToAvdHomeDir, - `${imageIdentifier}.ini` + `${imageIdentifier}.ini`, ); const iniFileInfo = this.$androidIniFileParser.parseIniFile(iniFilePath); let result = imageIdentifier; if (iniFileInfo && iniFileInfo.path) { const configIniFileInfo = this.$androidIniFileParser.parseIniFile( - path.join(iniFileInfo.path, AndroidVirtualDevice.CONFIG_INI_FILE_NAME) + path.join(iniFileInfo.path, AndroidVirtualDevice.CONFIG_INI_FILE_NAME), ); result = (configIniFileInfo && configIniFileInfo.displayName) || imageIdentifier; @@ -123,7 +121,7 @@ export class AndroidVirtualDeviceService const pathToEmulatorFromAndroidStudio = path.join( this.androidHome, emulatorExecutableName, - emulatorExecutableName + emulatorExecutableName, ); const realFilePath = this.$hostInfo.isWindows ? `${pathToEmulatorFromAndroidStudio}.exe` @@ -139,7 +137,7 @@ export class AndroidVirtualDeviceService } public getRunningEmulatorImageIdentifier( - emulatorId: string + emulatorId: string, ): Promise { if (this.mapEmulatorIdToImageIdentifier[emulatorId]) { return Promise.resolve(this.mapEmulatorIdToImageIdentifier[emulatorId]); @@ -195,7 +193,7 @@ export class AndroidVirtualDeviceService client.on("error", (error) => { this.$logger.trace( - `Error while checking emulator identifier for ${emulatorId}. More info: ${error}.` + `Error while checking emulator identifier for ${emulatorId}. More info: ${error}.`, ); resolve(null); }); @@ -227,7 +225,7 @@ export class AndroidVirtualDeviceService result = await this.$childProcess.trySpawnFromCloseEvent( sanitizedPathToAvdManagerExecutable, ["list", "avds"], - { shell: this.$hostInfo.isWindows } + { shell: this.$hostInfo.isWindows }, ); } else if ( this.pathToAndroidExecutable && @@ -235,7 +233,7 @@ export class AndroidVirtualDeviceService ) { result = await this.$childProcess.trySpawnFromCloseEvent( this.pathToAndroidExecutable, - ["list", "avd"] + ["list", "avd"], ); } @@ -270,14 +268,13 @@ export class AndroidVirtualDeviceService private async getRunningEmulatorData( runningEmulatorId: string, - availableEmulators: Mobile.IDeviceInfo[] + availableEmulators: Mobile.IDeviceInfo[], ): Promise { - const imageIdentifier = await this.getRunningEmulatorImageIdentifier( - runningEmulatorId - ); + const imageIdentifier = + await this.getRunningEmulatorImageIdentifier(runningEmulatorId); const runningEmulator = this.$emulatorHelper.getEmulatorByImageIdentifier( imageIdentifier, - availableEmulators + availableEmulators, ); if (!runningEmulator) { return null; @@ -285,7 +282,7 @@ export class AndroidVirtualDeviceService this.$emulatorHelper.setRunningAndroidEmulatorProperties( runningEmulatorId, - runningEmulator + runningEmulator, ); return runningEmulator; @@ -299,7 +296,7 @@ export class AndroidVirtualDeviceService this.androidHome, "tools", "bin", - this.getExecutableName("avdmanager") + this.getExecutableName("avdmanager"), ); } @@ -313,7 +310,7 @@ export class AndroidVirtualDeviceService androidPath = path.join( this.androidHome, "tools", - this.getExecutableName("android") + this.getExecutableName("android"), ); } @@ -327,7 +324,7 @@ export class AndroidVirtualDeviceService path.join( homedir(), AndroidVirtualDevice.ANDROID_DIR_NAME, - AndroidVirtualDevice.AVD_DIR_NAME + AndroidVirtualDevice.AVD_DIR_NAME, ), ]; return searchPaths.find((p) => p && this.$fs.exists(p)); @@ -360,7 +357,7 @@ export class AndroidVirtualDeviceService const entries = this.$fs.readDirectory(this.pathToAvdHomeDir); devices = _.filter( entries, - (e: string) => e.match(AndroidVirtualDevice.AVD_FILES_MASK) !== null + (e: string) => e.match(AndroidVirtualDevice.AVD_FILES_MASK) !== null, ) .map((e) => e.match(AndroidVirtualDevice.AVD_FILES_MASK)[1]) .map((avdName) => path.join(this.pathToAvdHomeDir, `${avdName}.avd`)) @@ -392,10 +389,10 @@ export class AndroidVirtualDeviceService const result = item .split(AndroidVirtualDevice.AVD_LIST_DELIMITER) .map((singleDeviceOutput) => - this.getAvdManagerDeviceInfo(singleDeviceOutput.trim()) + this.getAvdManagerDeviceInfo(singleDeviceOutput.trim()), ) .map((avdManagerDeviceInfo) => - this.getInfoFromAvd(avdManagerDeviceInfo.path) + this.getInfoFromAvd(avdManagerDeviceInfo.path), ) .filter((avdInfo) => !!avdInfo) .map((avdInfo) => this.convertAvdToDeviceInfo(avdInfo)); @@ -407,7 +404,7 @@ export class AndroidVirtualDeviceService } private getAvdManagerDeviceInfo( - output: string + output: string, ): Mobile.IAvdManagerDeviceInfo { const avdManagerDeviceInfo: Mobile.IAvdManagerDeviceInfo = Object.create(null); @@ -431,7 +428,7 @@ export class AndroidVirtualDeviceService return result; }, - avdManagerDeviceInfo || {} + avdManagerDeviceInfo || {}, ); return avdManagerDeviceInfo; @@ -440,7 +437,7 @@ export class AndroidVirtualDeviceService private getInfoFromAvd(avdFilePath: string): Mobile.IAvdInfo { const configIniFilePath = path.join( avdFilePath, - AndroidVirtualDevice.CONFIG_INI_FILE_NAME + AndroidVirtualDevice.CONFIG_INI_FILE_NAME, ); const configIniFileInfo = this.$androidIniFileParser.parseIniFile(configIniFilePath); @@ -494,17 +491,17 @@ export class AndroidVirtualDeviceService private getIniFilePath( configIniFileInfo: Mobile.IAvdInfo, - avdFilePath: string + avdFilePath: string, ): string { let result = avdFilePath.replace( AndroidVirtualDevice.AVD_FILE_EXTENSION, - AndroidVirtualDevice.INI_FILE_EXTENSION + AndroidVirtualDevice.INI_FILE_EXTENSION, ); if (configIniFileInfo && configIniFileInfo.avdId) { result = path.join( path.dirname(avdFilePath), - `${configIniFileInfo.avdId}${AndroidVirtualDevice.INI_FILE_EXTENSION}` + `${configIniFileInfo.avdId}${AndroidVirtualDevice.INI_FILE_EXTENSION}`, ); } @@ -518,7 +515,7 @@ export class AndroidVirtualDeviceService } if (timer) { - clearTimeout(timer); + clearTimeout(timer as unknown as number); } } } diff --git a/lib/common/mobile/ios/device/ios-device-operations.ts b/lib/common/mobile/ios/device/ios-device-operations.ts index 309a10521a..e0675096c7 100644 --- a/lib/common/mobile/ios/device/ios-device-operations.ts +++ b/lib/common/mobile/ios/device/ios-device-operations.ts @@ -13,7 +13,8 @@ import { injector } from "../../../yok"; export class IOSDeviceOperations extends EventEmitter - implements IIOSDeviceOperations, IDisposable, IShouldDispose { + implements IIOSDeviceOperations, IDisposable, IShouldDispose +{ public isInitialized: boolean; public shouldDispose: boolean; private deviceLib: IOSDeviceLib.IOSDeviceLib; @@ -28,30 +29,30 @@ export class IOSDeviceOperations public async install( ipaPath: string, deviceIdentifiers: string[], - errorHandler: DeviceOperationErrorHandler + errorHandler: DeviceOperationErrorHandler, ): Promise { this.assertIsInitialized(); this.$logger.trace( - `Installing ${ipaPath} on devices with identifiers: ${deviceIdentifiers}.` + `Installing ${ipaPath} on devices with identifiers: ${deviceIdentifiers}.`, ); return await this.getMultipleResults( () => this.deviceLib.install(ipaPath, deviceIdentifiers), - errorHandler + errorHandler, ); } public async uninstall( appIdentifier: string, deviceIdentifiers: string[], - errorHandler: DeviceOperationErrorHandler + errorHandler: DeviceOperationErrorHandler, ): Promise { this.assertIsInitialized(); this.$logger.trace( - `Uninstalling ${appIdentifier} from devices with identifiers: ${deviceIdentifiers}.` + `Uninstalling ${appIdentifier} from devices with identifiers: ${deviceIdentifiers}.`, ); return await this.getMultipleResults( () => this.deviceLib.uninstall(appIdentifier, deviceIdentifiers), - errorHandler + errorHandler, ); } @@ -60,14 +61,14 @@ export class IOSDeviceOperations deviceFoundCallback: DeviceInfoCallback, deviceUpdatedCallback: DeviceInfoCallback, deviceLostCallback: DeviceInfoCallback, - options?: Mobile.IDeviceLookingOptions + options?: Mobile.IDeviceLookingOptions, ): Promise { this.$logger.trace("Starting to look for iOS devices."); this.isInitialized = true; if (!this.deviceLib) { let foundDevice = false; const wrappedDeviceFoundCallback = ( - deviceInfo: IOSDeviceLib.IDeviceActionInfo + deviceInfo: IOSDeviceLib.IDeviceActionInfo, ) => { foundDevice = true; @@ -77,7 +78,7 @@ export class IOSDeviceOperations this.deviceLib = new IOSDeviceLibModule( wrappedDeviceFoundCallback, deviceUpdatedCallback, - deviceLostCallback + deviceLostCallback, ); if (options && options.shouldReturnImmediateResult) { return; @@ -91,12 +92,12 @@ export class IOSDeviceOperations const intervalHandle: NodeJS.Timer = setInterval(() => { if (foundDevice && !options.fullDiscovery) { resolve(); - return clearInterval(intervalHandle); + return clearInterval(intervalHandle as unknown as number); } iterationsCount++; if (iterationsCount >= maxIterationsCount) { - clearInterval(intervalHandle); + clearInterval(intervalHandle as unknown as number); return resolve(); } }, 2000); @@ -109,7 +110,7 @@ export class IOSDeviceOperations this.setShouldDispose(false); this.$logger.trace( - `Printing device log for device with identifier: ${deviceIdentifier}.` + `Printing device log for device with identifier: ${deviceIdentifier}.`, ); this.attacheDeviceLogDataHandler(); @@ -119,75 +120,75 @@ export class IOSDeviceOperations public async apps( deviceIdentifiers: string[], - errorHandler?: DeviceOperationErrorHandler + errorHandler?: DeviceOperationErrorHandler, ): Promise { this.assertIsInitialized(); this.$logger.trace( - `Getting applications information for devices with identifiers: ${deviceIdentifiers}` + `Getting applications information for devices with identifiers: ${deviceIdentifiers}`, ); return this.getMultipleResults( () => this.deviceLib.apps(deviceIdentifiers), - errorHandler + errorHandler, ); } public async listDirectory( listArray: IOSDeviceLib.IReadOperationData[], - errorHandler?: DeviceOperationErrorHandler + errorHandler?: DeviceOperationErrorHandler, ): Promise { this.assertIsInitialized(); _.each(listArray, (l) => { this.$logger.trace( - `Listing directory: ${l.path} for application ${l.appId} on device with identifier: ${l.deviceId}.` + `Listing directory: ${l.path} for application ${l.appId} on device with identifier: ${l.deviceId}.`, ); }); return this.getMultipleResults( () => this.deviceLib.list(listArray), - errorHandler + errorHandler, ); } public async readFiles( deviceFilePaths: IOSDeviceLib.IReadOperationData[], - errorHandler?: DeviceOperationErrorHandler + errorHandler?: DeviceOperationErrorHandler, ): Promise { this.assertIsInitialized(); _.each(deviceFilePaths, (p) => { this.$logger.trace( - `Reading file: ${p.path} from application ${p.appId} on device with identifier: ${p.deviceId}.` + `Reading file: ${p.path} from application ${p.appId} on device with identifier: ${p.deviceId}.`, ); }); return this.getMultipleResults( () => this.deviceLib.read(deviceFilePaths), - errorHandler + errorHandler, ); } public async downloadFiles( deviceFilePaths: IOSDeviceLib.IFileOperationData[], - errorHandler?: DeviceOperationErrorHandler + errorHandler?: DeviceOperationErrorHandler, ): Promise { this.assertIsInitialized(); _.each(deviceFilePaths, (d) => { this.$logger.trace( - `Downloading file: ${d.source} from application ${d.appId} on device with identifier: ${d.deviceId} to ${d.destination}.` + `Downloading file: ${d.source} from application ${d.appId} on device with identifier: ${d.deviceId} to ${d.destination}.`, ); }); return this.getMultipleResults( () => this.deviceLib.download(deviceFilePaths), - errorHandler + errorHandler, ); } public uploadFiles( files: IOSDeviceLib.IUploadFilesData[], - errorHandler?: DeviceOperationErrorHandler + errorHandler?: DeviceOperationErrorHandler, ): Promise { this.assertIsInitialized(); @@ -195,67 +196,67 @@ export class IOSDeviceOperations this.$logger.trace("Uploading files:"); this.$logger.trace(f.files); this.$logger.trace( - `For application ${f.appId} on device with identifier: ${f.deviceId}.` + `For application ${f.appId} on device with identifier: ${f.deviceId}.`, ); }); return this.getMultipleResults( () => this.deviceLib.upload(files), - errorHandler + errorHandler, ); } public async deleteFiles( deleteArray: IOSDeviceLib.IDeleteFileData[], - errorHandler?: DeviceOperationErrorHandler + errorHandler?: DeviceOperationErrorHandler, ): Promise { this.assertIsInitialized(); _.each(deleteArray, (d) => { this.$logger.trace( - `Deleting file: ${d.destination} from application ${d.appId} on device with identifier: ${d.deviceId}.` + `Deleting file: ${d.destination} from application ${d.appId} on device with identifier: ${d.deviceId}.`, ); }); return this.getMultipleResults( () => this.deviceLib.delete(deleteArray), - errorHandler + errorHandler, ); } public async start( startArray: IOSDeviceLib.IDdiApplicationData[], - errorHandler?: DeviceOperationErrorHandler + errorHandler?: DeviceOperationErrorHandler, ): Promise { this.assertIsInitialized(); _.each(startArray, (s) => { this.$logger.trace( - `Starting application ${s.appId} on device with identifier: ${s.deviceId}.` + `Starting application ${s.appId} on device with identifier: ${s.deviceId}.`, ); }); return this.getMultipleResults( () => this.deviceLib.start(startArray), - errorHandler + errorHandler, ); } public async stop( stopArray: IOSDeviceLib.IDdiApplicationData[], - errorHandler?: DeviceOperationErrorHandler + errorHandler?: DeviceOperationErrorHandler, ): Promise { this.assertIsInitialized(); _.each(stopArray, (s) => { this.$logger.trace( - `Stopping application ${s.appId} on device with identifier: ${s.deviceId}.` + `Stopping application ${s.appId} on device with identifier: ${s.deviceId}.`, ); }); return this.getMultipleResults( () => this.deviceLib.stop(stopArray), - errorHandler + errorHandler, ); } @@ -272,58 +273,58 @@ export class IOSDeviceOperations public async postNotification( postNotificationArray: IOSDeviceLib.IPostNotificationData[], - errorHandler?: DeviceOperationErrorHandler + errorHandler?: DeviceOperationErrorHandler, ): Promise { this.assertIsInitialized(); _.each(postNotificationArray, (n) => { this.$logger.trace( - `Sending notification ${n.notificationName} to device with identifier: ${n.deviceId}` + `Sending notification ${n.notificationName} to device with identifier: ${n.deviceId}`, ); }); return this.getMultipleResults( () => this.deviceLib.postNotification(postNotificationArray), - errorHandler + errorHandler, ); } public async awaitNotificationResponse( awaitNotificationResponseArray: IOSDeviceLib.IAwaitNotificatioNResponseData[], - errorHandler?: DeviceOperationErrorHandler + errorHandler?: DeviceOperationErrorHandler, ): Promise { this.assertIsInitialized(); _.each(awaitNotificationResponseArray, (n) => { this.$logger.trace( - `Awaiting notification response from socket: ${n.socket} with timeout: ${n.timeout}` + `Awaiting notification response from socket: ${n.socket} with timeout: ${n.timeout}`, ); }); return this.getMultipleResults( () => this.deviceLib.awaitNotificationResponse( - awaitNotificationResponseArray + awaitNotificationResponseArray, ), - errorHandler + errorHandler, ); } public async connectToPort( connectToPortArray: IOSDeviceLib.IConnectToPortData[], - errorHandler?: DeviceOperationErrorHandler + errorHandler?: DeviceOperationErrorHandler, ): Promise> { this.assertIsInitialized(); _.each(connectToPortArray, (c) => { this.$logger.trace( - `Connecting to port ${c.port} on device with identifier: ${c.deviceId}` + `Connecting to port ${c.port} on device with identifier: ${c.deviceId}`, ); }); return this.getMultipleResults( () => this.deviceLib.connectToPort(connectToPortArray), - errorHandler + errorHandler, ); } @@ -333,7 +334,7 @@ export class IOSDeviceOperations private async getMultipleResults( getPromisesMethod: () => Promise[], - errorHandler?: DeviceOperationErrorHandler + errorHandler?: DeviceOperationErrorHandler, ): Promise> { const result: T[] = []; const promises = getPromisesMethod(); @@ -344,7 +345,7 @@ export class IOSDeviceOperations result.push(await promise); } catch (err) { this.$logger.trace( - `Error while executing ios device operation: ${err.message} with code: ${err.code}` + `Error while executing ios device operation: ${err.message} with code: ${err.code}`, ); errorHandler(err); } @@ -370,7 +371,7 @@ export class IOSDeviceOperations DEVICE_LOG_EVENT_NAME, (response: IOSDeviceLib.IDeviceLogData) => { this.emit(DEVICE_LOG_EVENT_NAME, response); - } + }, ); } } diff --git a/lib/common/mobile/mobile-core/devices-service.ts b/lib/common/mobile/mobile-core/devices-service.ts index 8f72d11747..003b8898d8 100644 --- a/lib/common/mobile/mobile-core/devices-service.ts +++ b/lib/common/mobile/mobile-core/devices-service.ts @@ -55,7 +55,7 @@ export class DevicesService private $androidEmulatorDiscovery: Mobile.IDeviceDiscovery, private $emulatorHelper: Mobile.IEmulatorHelper, private $prompter: IPrompter, - private $devicePlatformsConstants: Mobile.IDevicePlatformsConstants + private $devicePlatformsConstants: Mobile.IDevicePlatformsConstants, ) { super(); this.attachToKnownDeviceDiscoveryEvents(); @@ -69,11 +69,11 @@ export class DevicesService @performanceLog() public async pickSingleDevice( - options: Mobile.IPickSingleDeviceOptions + options: Mobile.IPickSingleDeviceOptions, ): Promise { if (options.onlyDevices && options.onlyEmulators) { this.$errors.fail( - DebugCommandErrors.UNABLE_TO_USE_FOR_DEVICE_AND_EMULATOR + DebugCommandErrors.UNABLE_TO_USE_FOR_DEVICE_AND_EMULATOR, ); } @@ -87,39 +87,39 @@ export class DevicesService (d) => d.deviceInfo.status === CONNECTED_STATUS && (!this.platform || - d.deviceInfo.platform.toLowerCase() === this.platform.toLowerCase()) + d.deviceInfo.platform.toLowerCase() === this.platform.toLowerCase()), ); const selectedDevices = availableDevicesAndEmulators.filter((d) => options.onlyEmulators ? d.isEmulator : options.onlyDevices - ? !d.isEmulator - : true + ? !d.isEmulator + : true, ); if (selectedDevices.length > 1) { if (isInteractive()) { const choices = selectedDevices.map( - (e) => `${e.deviceInfo.identifier} - ${e.deviceInfo.displayName}` + (e) => `${e.deviceInfo.identifier} - ${e.deviceInfo.displayName}`, ); const selectedDeviceString = await this.$prompter.promptForChoice( "Select device for debugging", - choices + choices, ); const selectedDevice = _.find( selectedDevices, (d) => `${d.deviceInfo.identifier} - ${d.deviceInfo.displayName}` === - selectedDeviceString + selectedDeviceString, ); return selectedDevice; } else { const sortedInstances = _.sortBy( selectedDevices, - (e) => e.deviceInfo.version + (e) => e.deviceInfo.version, ); const emulators = sortedInstances.filter((e) => e.isEmulator); const devices = sortedInstances.filter((d) => !d.isEmulator); @@ -139,7 +139,7 @@ export class DevicesService this.$logger.warn( `Multiple devices/emulators found. Starting debugger on ${selectedInstance.deviceInfo.identifier}. ` + - "If you want to debug on specific device/emulator, you can specify it with --device option." + "If you want to debug on specific device/emulator, you can specify it with --device option.", ); return selectedInstance; @@ -149,13 +149,13 @@ export class DevicesService } this.$errors.fail( - DebugCommandErrors.NO_DEVICES_EMULATORS_FOUND_FOR_OPTIONS + DebugCommandErrors.NO_DEVICES_EMULATORS_FOUND_FOR_OPTIONS, ); } @exported("devicesService") public async getEmulatorImages( - options?: Mobile.IListEmulatorsOptions + options?: Mobile.IListEmulatorsOptions, ): Promise { const result = Object.create(null); @@ -181,7 +181,7 @@ export class DevicesService @exported("devicesService") public async startEmulator( - options: Mobile.IStartEmulatorOptions + options: Mobile.IStartEmulatorOptions, ): Promise { if (!options || (!options.imageIdentifier && !options.emulatorIdOrName)) { return ["Missing mandatory image identifier or name option."]; @@ -192,22 +192,22 @@ export class DevicesService }); const emulators = this.$emulatorHelper.getEmulatorsFromAvailableEmulatorsOutput( - availableEmulatorsOutput + availableEmulatorsOutput, ); const errors = this.$emulatorHelper.getErrorsFromAvailableEmulatorsOutput( - availableEmulatorsOutput + availableEmulatorsOutput, ); let emulator = null; if (options.imageIdentifier) { emulator = this.$emulatorHelper.getEmulatorByImageIdentifier( options.imageIdentifier, - emulators + emulators, ); } else if (options.emulatorIdOrName) { emulator = this.$emulatorHelper.getEmulatorByIdOrName( options.emulatorIdOrName, - emulators + emulators, ); } @@ -241,14 +241,14 @@ export class DevicesService @exported("devicesService") public getDevices(): Mobile.IDeviceInfo[] { return this.getDeviceInstances().map( - (deviceInstance) => deviceInstance.deviceInfo + (deviceInstance) => deviceInstance.deviceInfo, ); } public getDevicesForPlatform(platform: string): Mobile.IDevice[] { return _.filter( this.getDeviceInstances(), - (d) => d.deviceInfo.platform.toLowerCase() === platform.toLowerCase() + (d) => d.deviceInfo.platform.toLowerCase() === platform.toLowerCase(), ); } @@ -282,17 +282,17 @@ export class DevicesService deviceIdentifiers: string[], appId: string, projectName: string, - projectDir: string + projectDir: string, ): Promise[] { this.$logger.trace( - `Called isInstalledOnDevices for identifiers ${deviceIdentifiers}. AppIdentifier is ${appId}.` + `Called isInstalledOnDevices for identifiers ${deviceIdentifiers}. AppIdentifier is ${appId}.`, ); return _.map(deviceIdentifiers, (deviceIdentifier) => this.isApplicationInstalledOnDevice(deviceIdentifier, { appId, projectName, projectDir, - }) + }), ); } @@ -306,7 +306,7 @@ export class DevicesService @exported("devicesService") public async getInstalledApplications( - deviceIdentifier: string + deviceIdentifier: string, ): Promise { const device = await this.getDevice(deviceIdentifier); return device.applicationManager.getInstalledApplications(); @@ -330,42 +330,42 @@ export class DevicesService private attachToKnownEmulatorDiscoveryEvents(): void { this.$androidEmulatorDiscovery.on( constants.EmulatorDiscoveryNames.EMULATOR_IMAGE_FOUND, - (emulator: Mobile.IDeviceInfo) => this.onEmulatorImageFound(emulator) + (emulator: Mobile.IDeviceInfo) => this.onEmulatorImageFound(emulator), ); this.$androidEmulatorDiscovery.on( constants.EmulatorDiscoveryNames.EMULATOR_IMAGE_LOST, - (emulator: Mobile.IDeviceInfo) => this.onEmulatorImageLost(emulator) + (emulator: Mobile.IDeviceInfo) => this.onEmulatorImageLost(emulator), ); this.$iOSSimulatorDiscovery.on( constants.EmulatorDiscoveryNames.EMULATOR_IMAGE_FOUND, - (emulator: Mobile.IDeviceInfo) => this.onEmulatorImageFound(emulator) + (emulator: Mobile.IDeviceInfo) => this.onEmulatorImageFound(emulator), ); this.$iOSSimulatorDiscovery.on( constants.EmulatorDiscoveryNames.EMULATOR_IMAGE_LOST, - (emulator: Mobile.IDeviceInfo) => this.onEmulatorImageLost(emulator) + (emulator: Mobile.IDeviceInfo) => this.onEmulatorImageLost(emulator), ); } private attachToDeviceDiscoveryEvents( - deviceDiscovery: Mobile.IDeviceDiscovery + deviceDiscovery: Mobile.IDeviceDiscovery, ): void { deviceDiscovery.on( constants.DeviceDiscoveryEventNames.DEVICE_FOUND, - (device: Mobile.IDevice) => this.onDeviceFound(device) + (device: Mobile.IDevice) => this.onDeviceFound(device), ); deviceDiscovery.on( constants.DeviceDiscoveryEventNames.DEVICE_UPDATED, - (device: Mobile.IDevice) => this.onDeviceUpdated(device) + (device: Mobile.IDevice) => this.onDeviceUpdated(device), ); deviceDiscovery.on( constants.DeviceDiscoveryEventNames.DEVICE_LOST, - (device: Mobile.IDevice) => this.onDeviceLost(device) + (device: Mobile.IDevice) => this.onDeviceLost(device), ); } private onDeviceFound(device: Mobile.IDevice): void { this.$logger.trace( - `Found device with identifier '${device.deviceInfo.identifier}'` + `Found device with identifier '${device.deviceInfo.identifier}'`, ); this._devices[device.deviceInfo.identifier] = device; this.emit(constants.DeviceDiscoveryEventNames.DEVICE_FOUND, device); @@ -373,7 +373,7 @@ export class DevicesService private onDeviceUpdated(device: Mobile.IDevice): void { this.$logger.trace( - `Updated device with identifier '${device.deviceInfo.identifier}'` + `Updated device with identifier '${device.deviceInfo.identifier}'`, ); this._devices[device.deviceInfo.identifier] = device; this.emit(constants.DeviceDiscoveryEventNames.DEVICE_UPDATED, device); @@ -381,7 +381,7 @@ export class DevicesService private onDeviceLost(device: Mobile.IDevice): void { this.$logger.trace( - `Lost device with identifier '${device.deviceInfo.identifier}'` + `Lost device with identifier '${device.deviceInfo.identifier}'`, ); if (device.detach) { @@ -394,7 +394,7 @@ export class DevicesService private onEmulatorImageFound(emulator: Mobile.IDeviceInfo): void { this.$logger.trace( - `Found emulator with image identifier: ${emulator.imageIdentifier}` + `Found emulator with image identifier: ${emulator.imageIdentifier}`, ); this._availableEmulators[emulator.imageIdentifier] = emulator; this.emit(constants.EmulatorDiscoveryNames.EMULATOR_IMAGE_FOUND, emulator); @@ -402,7 +402,7 @@ export class DevicesService private onEmulatorImageLost(emulator: Mobile.IDeviceInfo): void { this.$logger.trace( - `Lost emulator with image identifier ${emulator.imageIdentifier}` + `Lost emulator with image identifier ${emulator.imageIdentifier}`, ); delete this._availableEmulators[emulator.imageIdentifier]; this.emit(constants.EmulatorDiscoveryNames.EMULATOR_IMAGE_LOST, emulator); @@ -412,7 +412,7 @@ export class DevicesService * Starts looking for devices. Any found devices are pushed to "_devices" variable. */ protected async detectCurrentlyAttachedDevices( - deviceInitOpts?: Mobile.IDeviceLookingOptions + deviceInitOpts?: Mobile.IDeviceLookingOptions, ): Promise { const options = this.getDeviceLookingOptions(deviceInitOpts); @@ -441,7 +441,7 @@ export class DevicesService @exported("devicesService") public startDeviceDetectionInterval( - deviceInitOpts: Mobile.IDeviceLookingOptions = {} + deviceInitOpts: Mobile.IDeviceLookingOptions = {}, ): void { if (!this.deviceDetectionInterval) { let isDeviceDetectionIntervalInProgress = false; @@ -458,17 +458,17 @@ export class DevicesService try { const trustedDevices = _.filter( this._devices, - (device) => device.deviceInfo.status === constants.CONNECTED_STATUS + (device) => device.deviceInfo.status === constants.CONNECTED_STATUS, ); await settlePromises( _.map(trustedDevices, (device) => - device.applicationManager.checkForApplicationUpdates() - ) + device.applicationManager.checkForApplicationUpdates(), + ), ); } catch (err) { this.$logger.trace( "Error checking for application updates on devices.", - err + err, ); } @@ -481,7 +481,7 @@ export class DevicesService @exported("devicesService") public startEmulatorDetectionInterval( - opts: Mobile.IHasDetectionInterval = {} + opts: Mobile.IHasDetectionInterval = {}, ): void { let isEmulatorDetectionIntervalRunning = false; this.emulatorDetectionInterval = setInterval(async () => { @@ -500,14 +500,14 @@ export class DevicesService @exported("devicesService") public stopDeviceDetectionInterval(): void { if (this.deviceDetectionInterval) { - clearInterval(this.deviceDetectionInterval); + clearInterval(this.deviceDetectionInterval as unknown as number); } } @exported("devicesService") public stopEmulatorDetectionInterval(): void { if (this.emulatorDetectionInterval) { - clearInterval(this.emulatorDetectionInterval); + clearInterval(this.emulatorDetectionInterval as unknown as number); } } @@ -530,14 +530,14 @@ export class DevicesService ); } return device.deviceInfo.identifier === identifier; - } + }, ); if (!searchedDevice) { this.$errors.fail( this.$messages.Devices .NotFoundDeviceByIdentifierErrorMessageWithIdentifier, identifier, - this.$staticConfig.CLIENT_NAME.toLowerCase() + this.$staticConfig.CLIENT_NAME.toLowerCase(), ); } @@ -548,11 +548,11 @@ export class DevicesService * Starts looking for running devices. All found devices are pushed to _devices variable. */ private async startLookingForDevices( - deviceInitOpts?: Mobile.IDeviceLookingOptions + deviceInitOpts?: Mobile.IDeviceLookingOptions, ): Promise { this.$logger.trace( "startLookingForDevices; platform is %s", - this._platform + this._platform, ); if (this._platform) { @@ -592,7 +592,7 @@ export class DevicesService (d.deviceInfo.displayName && d.deviceInfo.displayName === deviceOption) || (d.deviceInfo.imageIdentifier && - d.deviceInfo.imageIdentifier === deviceOption) + d.deviceInfo.imageIdentifier === deviceOption), ); } @@ -605,7 +605,7 @@ export class DevicesService this.$messages.Devices .NotFoundDeviceByIdentifierErrorMessageWithIdentifier, deviceOption, - this.$staticConfig.CLIENT_NAME.toLowerCase() + this.$staticConfig.CLIENT_NAME.toLowerCase(), ); } @@ -619,7 +619,7 @@ export class DevicesService */ private async executeOnDevice( action: (dev: Mobile.IDevice) => Promise, - canExecute?: (_dev: Mobile.IDevice) => boolean + canExecute?: (_dev: Mobile.IDevice) => boolean, ): Promise> { if (!canExecute || canExecute(this._device)) { return { @@ -636,12 +636,12 @@ export class DevicesService */ private async executeOnAllConnectedDevices( action: (dev: Mobile.IDevice) => Promise, - canExecute?: (_dev: Mobile.IDevice) => boolean + canExecute?: (_dev: Mobile.IDevice) => boolean, ): Promise[]> { const devices = this.filterDevicesByPlatform(); const sortedDevices = _.sortBy( devices, - (device) => device.deviceInfo.platform + (device) => device.deviceInfo.platform, ); const result: Mobile.IDeviceActionResult[] = []; @@ -658,7 +658,7 @@ export class DevicesService err.deviceIdentifier = device.deviceInfo.identifier; this.$logger.trace( `Error while executing action on device ${device.deviceInfo.identifier}. The error is`, - err + err, ); errors.push(err); } @@ -685,10 +685,10 @@ export class DevicesService packagePath: string, appId: string | Mobile.IProjectIdentifier, projectName: string, - projectDir: string + projectDir: string, ): Promise[] { this.$logger.trace( - `Called deployOnDevices for identifiers ${deviceIdentifiers} for packageFile: ${packagePath}. Application identifier is ${appId}. Project Name is: ${projectName}` + `Called deployOnDevices for identifiers ${deviceIdentifiers} for packageFile: ${packagePath}. Application identifier is ${appId}. Project Name is: ${projectName}`, ); return _.map(deviceIdentifiers, async (deviceIdentifier) => { const device = this.getDeviceByIdentifier(deviceIdentifier); @@ -718,7 +718,7 @@ export class DevicesService public async execute( action: (device: Mobile.IDevice) => Promise, canExecute?: (dev: Mobile.IDevice) => boolean, - options?: { allowNoDevices?: boolean } + options?: { allowNoDevices?: boolean }, ): Promise[]> { assert.ok(this._isInitialized, "Devices services not initialized!"); @@ -762,7 +762,7 @@ export class DevicesService * @param deviceInitOpts mainly contains information about --emulator and --deviceId flags. */ protected async startEmulatorIfNecessary( - deviceInitOpts?: Mobile.IDevicesServicesInitializationOptions + deviceInitOpts?: Mobile.IDevicesServicesInitializationOptions, ): Promise { if (deviceInitOpts && deviceInitOpts.deviceId && deviceInitOpts.emulator) { this.$errors.fail(`--device and --emulator are incompatible options. @@ -778,7 +778,7 @@ export class DevicesService this._platform = deviceInitOpts.platform; try { await this.startLookingForDevices( - deviceInitOpts + deviceInitOpts, ); } catch (err) { this.$logger.trace("Error while checking for devices.", err); @@ -799,7 +799,7 @@ export class DevicesService } catch (err) { const errorMessage = this.getEmulatorError( err, - deviceInitOpts.platform + deviceInitOpts.platform, ); this.$errors.fail(errorMessage); @@ -808,7 +808,7 @@ export class DevicesService } private async _startEmulatorIfNecessary( - data?: Mobile.IDevicesServicesInitializationOptions + data?: Mobile.IDevicesServicesInitializationOptions, ): Promise { const deviceInstances = this.getDeviceInstances(); @@ -823,7 +823,7 @@ export class DevicesService const activeDeviceInstance = _.find( deviceInstances, (device: Mobile.IDevice) => - device.deviceInfo.identifier === data.deviceId + device.deviceInfo.identifier === data.deviceId, ); if (!activeDeviceInstance) { return this.startEmulatorCore(data); @@ -838,7 +838,8 @@ export class DevicesService ) { const runningDeviceInstance = deviceInstances.find( (device) => - device.deviceInfo.platform === this.$devicePlatformsConstants.visionOS + device.deviceInfo.platform === + this.$devicePlatformsConstants.visionOS, ); if (!runningDeviceInstance) { return this.startEmulatorCore(data); @@ -849,7 +850,7 @@ export class DevicesService if (data.emulator && deviceInstances.length) { const runningDeviceInstance = _.some( deviceInstances, - (value) => value.isEmulator + (value) => value.isEmulator, ); if (!runningDeviceInstance) { return this.startEmulatorCore(data); @@ -866,7 +867,7 @@ export class DevicesService */ @exported("devicesService") public async initialize( - data?: Mobile.IDevicesServicesInitializationOptions + data?: Mobile.IDevicesServicesInitializationOptions, ): Promise { if (!this._deviceInitializePromise) { this._deviceInitializePromise = this.initializeCore(data); @@ -883,7 +884,7 @@ export class DevicesService } public getPlatformsFromDeviceDescriptors( - deviceDescriptors: ILiveSyncDeviceDescriptor[] + deviceDescriptors: ILiveSyncDeviceDescriptor[], ): string[] { const platforms = _(deviceDescriptors) .map((device) => this.getDeviceByIdentifier(device.identifier)) @@ -895,7 +896,7 @@ export class DevicesService } private async initializeCore( - deviceInitOpts?: Mobile.IDevicesServicesInitializationOptions + deviceInitOpts?: Mobile.IDevicesServicesInitializationOptions, ): Promise { if (this._isInitialized) { return; @@ -925,7 +926,7 @@ export class DevicesService if (platform && deviceOption) { this._platform = this.$mobileHelper.validatePlatformName( - deviceInitOpts.platform + deviceInitOpts.platform, ); await this.startLookingForDevices(deviceLookingOptions); this._device = await this.getDevice(deviceOption); @@ -934,7 +935,7 @@ export class DevicesService this.$errors.fail(constants.ERROR_CANNOT_RESOLVE_DEVICE); } this.$logger.warn( - "Your application will be deployed only on the device specified by the provided index or identifier." + "Your application will be deployed only on the device specified by the provided index or identifier.", ); } else if (!platform && deviceOption) { await this.startLookingForDevices(deviceLookingOptions); @@ -976,7 +977,7 @@ export class DevicesService } else { this.$errors.fail( "Multiple device platforms detected (%s). Specify platform or device on command line.", - helpers.formatListOfNames(platforms, "and") + helpers.formatListOfNames(platforms, "and"), ); } } @@ -1019,28 +1020,28 @@ export class DevicesService public async mapAbstractToTcpPort( deviceIdentifier: string, appIdentifier: string, - framework: string + framework: string, ): Promise { return this.$androidProcessService.mapAbstractToTcpPort( deviceIdentifier, appIdentifier, - framework + framework, ); } @exported("devicesService") public getDebuggableApps( - deviceIdentifiers: string[] + deviceIdentifiers: string[], ): Promise[] { return _.map(deviceIdentifiers, (deviceIdentifier: string) => - this.getDebuggableAppsCore(deviceIdentifier) + this.getDebuggableAppsCore(deviceIdentifier), ); } @exported("devicesService") public async getDebuggableViews( deviceIdentifier: string, - appIdentifier: string + appIdentifier: string, ): Promise { const device = this.getDeviceByIdentifier(deviceIdentifier), debuggableViewsPerApp = @@ -1050,7 +1051,7 @@ export class DevicesService } private getDebuggableAppsCore( - deviceIdentifier: string + deviceIdentifier: string, ): Promise { const device = this.getDeviceByIdentifier(deviceIdentifier); return device.applicationManager.getDebuggableApps(); @@ -1058,14 +1059,14 @@ export class DevicesService private async deployOnDevice( device: Mobile.IDevice, - appData: Mobile.IInstallAppData + appData: Mobile.IInstallAppData, ): Promise { await device.applicationManager.reinstallApplication( appData.appId, - appData.packagePath + appData.packagePath, ); this.$logger.info( - `Successfully deployed on device with identifier '${device.deviceInfo.identifier}'.` + `Successfully deployed on device with identifier '${device.deviceInfo.identifier}'.`, ); await device.applicationManager.tryStartApplication(appData); } @@ -1088,14 +1089,14 @@ export class DevicesService util.format( this.$messages.Devices.NotFoundDeviceByIndexErrorMessage, index, - this.$staticConfig.CLIENT_NAME.toLowerCase() - ) + this.$staticConfig.CLIENT_NAME.toLowerCase(), + ), ); } } private resolveEmulatorServices( - platform?: string + platform?: string, ): Mobile.IEmulatorPlatformService { platform = platform || this._platform; if (this.$mobileHelper.isApplePlatform(platform)) { @@ -1113,14 +1114,14 @@ export class DevicesService * @param emulatorIdOrName (optional) emulator/simulator image identifier or name */ protected async startEmulatorCore( - deviceInitOpts: Mobile.IDevicesServicesInitializationOptions = {} + deviceInitOpts: Mobile.IDevicesServicesInitializationOptions = {}, ): Promise { const { deviceId } = deviceInitOpts; const platform = deviceInitOpts.platform || this._platform; const emulatorServices = this.resolveEmulatorServices(platform); if (!emulatorServices) { this.$errors.fail( - "Unable to detect platform for which to start emulator." + "Unable to detect platform for which to start emulator.", ); } @@ -1137,21 +1138,21 @@ export class DevicesService const deviceLookingOptions = this.getDeviceLookingOptions(deviceInitOpts); if (this.$mobileHelper.isAndroidPlatform(platform)) { await this.$androidDeviceDiscovery.startLookingForDevices( - deviceLookingOptions + deviceLookingOptions, ); } else if ( this.$mobileHelper.isiOSPlatform(platform) && this.$hostInfo.isDarwin ) { await this.$iOSSimulatorDiscovery.startLookingForDevices( - deviceLookingOptions + deviceLookingOptions, ); } } private async executeCore( action: (device: Mobile.IDevice) => Promise, - canExecute?: (dev: Mobile.IDevice) => boolean + canExecute?: (dev: Mobile.IDevice) => boolean, ): Promise[]> { if (this._device) { return [await this.executeOnDevice(action, canExecute)]; @@ -1162,20 +1163,20 @@ export class DevicesService private async isApplicationInstalledOnDevice( deviceIdentifier: string, - appData: Mobile.IApplicationData + appData: Mobile.IApplicationData, ): Promise { let isInstalled = false; const device = this.getDeviceByIdentifier(deviceIdentifier); try { isInstalled = await device.applicationManager.isApplicationInstalled( - appData.appId + appData.appId, ); await device.applicationManager.tryStartApplication(appData); } catch (err) { this.$logger.trace( "Error while checking is application installed. Error is: ", - err + err, ); } @@ -1187,7 +1188,7 @@ export class DevicesService } private getDeviceLookingOptions( - deviceInitOpts: Mobile.IDevicesServicesInitializationOptions = {} + deviceInitOpts: Mobile.IDevicesServicesInitializationOptions = {}, ): Mobile.IDeviceLookingOptions { const { shouldReturnImmediateResult, emulator } = deviceInitOpts; const platform = deviceInitOpts.platform || this._platform; diff --git a/lib/common/opener.ts b/lib/common/opener.ts index 74accbc689..e0290e5172 100644 --- a/lib/common/opener.ts +++ b/lib/common/opener.ts @@ -1,13 +1,13 @@ -import * as xopen from "open"; +import open from "open"; import { IOpener } from "../declarations"; import { injector } from "./yok"; export class Opener implements IOpener { public open(target: string, appname?: string): any { - return xopen(target, { + return open(target, { app: { - name: appname, - }, + name: appname + } }); } } diff --git a/lib/common/prompter.ts b/lib/common/prompter.ts index db33475b13..ed121c0c03 100644 --- a/lib/common/prompter.ts +++ b/lib/common/prompter.ts @@ -6,7 +6,7 @@ import { IAllowEmpty, IPrompterAnswers, IPrompterOptions, - IPrompterQuestion, + IPrompterQuestion } from "./declarations"; import { injector } from "./yok"; const MuteStream = require("mute-stream"); @@ -61,7 +61,7 @@ export class Prompter implements IPrompter { validate: (value: any) => { const allowEmpty = options && options.allowEmpty; return !allowEmpty && !value ? "Password must be non-empty" : true; - }, + } }; const result = await this.get([schema]); @@ -83,7 +83,7 @@ export class Prompter implements IPrompter { ? `${message} must be non-empty` : true; }, - default: options && options.defaultAction, + default: options && options.defaultAction }; const result = await this.get([schema]); @@ -103,14 +103,13 @@ export class Prompter implements IPrompter { type: multiple ? "multiselect" : "select", name: "userAnswer", choices, - ...options, + ...options }; const result = await this.get([schema]); - type ArrayElement< - ArrayType extends readonly unknown[] - > = ArrayType extends readonly (infer ElementType)[] ? ElementType : never; + type ArrayElement = + ArrayType extends readonly (infer ElementType)[] ? ElementType : never; type Choice = ArrayElement; @@ -141,7 +140,7 @@ export class Prompter implements IPrompter { return { title: choice.key, value: choice.key, - description: choice.description, + description: choice.description }; }); @@ -149,7 +148,7 @@ export class Prompter implements IPrompter { message: promptMessage, type: "select", name: "userAnswer", - choices: inquirerChoices, + choices: inquirerChoices }; const result = await this.get([schema]); @@ -164,7 +163,7 @@ export class Prompter implements IPrompter { type: "confirm", name: "prompt", default: defaultAction, - message, + message }; const result = await this.get([schema]); @@ -184,7 +183,7 @@ export class Prompter implements IPrompter { this.ctrlcReader = readline.createInterface({ input: process.stdin, - output: this.muteStreamInstance, + output: this.muteStreamInstance }); this.ctrlcReader.on("SIGINT", () => { @@ -215,16 +214,16 @@ export class Prompter implements IPrompter { const memoryLeakEvents: IMemoryLeakEvent[] = [ { eventName: "close", - listenerName: "cleanup", + listenerName: "cleanup" }, { eventName: "error", - listenerName: "onerror", + listenerName: "onerror" }, { eventName: "drain", - listenerName: "ondrain", - }, + listenerName: "ondrain" + } ]; _.each(memoryLeakEvents, (memoryleakEvent: IMemoryLeakEvent) => diff --git a/lib/common/services/help-service.ts b/lib/common/services/help-service.ts index a5e567c3e0..28b1c93164 100644 --- a/lib/common/services/help-service.ts +++ b/lib/common/services/help-service.ts @@ -27,12 +27,15 @@ export class HelpService implements IHelpService { private static HTML_FILE_EXTENSION = ".html"; private static MAN_PAGE_NAME_REGEX = /@MAN_PAGE_NAME@/g; private static HTML_COMMAND_HELP_REGEX = /@HTML_COMMAND_HELP@/g; - private static RELATIVE_PATH_TO_STYLES_CSS_REGEX = /@RELATIVE_PATH_TO_STYLES_CSS@/g; + private static RELATIVE_PATH_TO_STYLES_CSS_REGEX = + /@RELATIVE_PATH_TO_STYLES_CSS@/g; private static RELATIVE_PATH_TO_IMAGES_REGEX = /@RELATIVE_PATH_TO_IMAGES@/g; private static RELATIVE_PATH_TO_INDEX_REGEX = /@RELATIVE_PATH_TO_INDEX@/g; private static EXTENSION_NAME_REGEX = /@EXTENSION_NAME@/g; - private static MARKDOWN_LINK_REGEX = /\[([\w \-\`\<\>\*\:\\]+?)\]\([\s\S]+?\)/g; - private static SPAN_REGEX = /([\s\S]*?)(?:\r?\n)?([\s\S]*?)<\/span>(?:\r?\n)*/g; + private static MARKDOWN_LINK_REGEX = + /\[([\w \-\`\<\>\*\:\\]+?)\]\([\s\S]+?\)/g; + private static SPAN_REGEX = + /([\s\S]*?)(?:\r?\n)?([\s\S]*?)<\/span>(?:\r?\n)*/g; private static NEW_LINE_REGEX = /<\/?\s*?br\s*?\/?>/g; //
,


private get newLineRegex(): RegExp { return /\r?\n/g; @@ -47,14 +50,14 @@ export class HelpService implements IHelpService { private get pathToBasicPage(): string { return path.join( this.$staticConfig.HTML_COMMON_HELPERS_DIR, - "basic-page.html" + "basic-page.html", ); } private get pathToBasicPageForExtensions(): string { return path.join( this.$staticConfig.HTML_COMMON_HELPERS_DIR, - "basic-extensions-page.html" + "basic-extensions-page.html", ); } @@ -71,14 +74,14 @@ export class HelpService implements IHelpService { private $staticConfig: Config.IStaticConfig, private $extensibilityService: IExtensibilityService, private $microTemplateService: IMicroTemplateService, - private $opener: IOpener + private $opener: IOpener, ) { this.pathToHtmlPages = this.$staticConfig.HTML_PAGES_DIR; this.pathToManPages = this.$staticConfig.MAN_PAGES_DIR; } public async openHelpForCommandInBrowser( - commandData: ICommandData + commandData: ICommandData, ): Promise { const { commandName } = commandData; const htmlPage = @@ -87,7 +90,7 @@ export class HelpService implements IHelpService { this.$logger.trace( "Opening help for command '%s'. FileName is '%s'.", commandName, - htmlPage + htmlPage, ); this.$fs.ensureDirectoryExists(this.pathToHtmlPages); @@ -95,7 +98,7 @@ export class HelpService implements IHelpService { // HTML pages may have been skipped on post-install, lets generate them. this.$logger.trace( "Required HTML file '%s' is missing. Let's try generating HTML files and see if we'll find it.", - htmlPage + htmlPage, ); await this.generateHtmlPages(); if (!this.tryOpeningSelectedPage(htmlPage)) { @@ -117,33 +120,33 @@ export class HelpService implements IHelpService { }; return this.createHtmlPage(htmlPageGenerationData); - }) + }), ); - const installedExtensionsData = this.$extensibilityService.getInstalledExtensionsData(); + const installedExtensionsData = + this.$extensibilityService.getInstalledExtensionsData(); const basicHtmlPageForExtensions = this.$fs.readText( - this.pathToBasicPageForExtensions + this.pathToBasicPageForExtensions, ); for (const extensionData of installedExtensionsData) { const docsDir = extensionData.docs; if (docsDir) { this.$logger.trace( - `Start generation of html help content for extension ${extensionData.extensionName}` + `Start generation of html help content for extension ${extensionData.extensionName}`, ); if (!this.$fs.exists(docsDir)) { this.$logger.warn( - `Unable to generate html help pages for extension ${extensionData.extensionName} as the docs directory ${docsDir} does not exist.` + `Unable to generate html help pages for extension ${extensionData.extensionName} as the docs directory ${docsDir} does not exist.`, ); continue; } const htmlDirFullPath = HelpService.getHtmlDirFullPath(docsDir); this.$fs.ensureDirectoryExists(htmlDirFullPath); - const extensionMdFiles = this.$fs.enumerateFilesInDirectorySync( - docsDir - ); + const extensionMdFiles = + this.$fs.enumerateFilesInDirectorySync(docsDir); try { await Promise.all( _.map(extensionMdFiles, (markdownFile) => { @@ -156,16 +159,16 @@ export class HelpService implements IHelpService { }; return this.createHtmlPage(htmlPageGenerationData); - }) + }), ); } catch (err) { this.$logger.warn( - `Unable to generate html help for extension ${extensionData.extensionName}. Error is: ${err.message}` + `Unable to generate html help for extension ${extensionData.extensionName}. Error is: ${err.message}`, ); } this.$logger.trace( - `Finished generation of html help content for extension ${extensionData.extensionName}` + `Finished generation of html help content for extension ${extensionData.extensionName}`, ); } } @@ -184,7 +187,7 @@ export class HelpService implements IHelpService { * @returns {Promise} Help content of the command parsed with all terminal rules applied (stripped content that should be shown only for html help). */ private async getCommandLineHelpForCommand( - commandData: ICommandData + commandData: ICommandData, ): Promise { const helpText = await this.readMdFileForCommand(commandData); const commandLineHelp = ( @@ -199,10 +202,10 @@ export class HelpService implements IHelpService { textBeforeSpan: string, textInsideSpan: string, index: number, - fullString: string + fullString: string, ): string => { return textBeforeSpan + textInsideSpan.replace(this.newLineRegex, ""); - } + }, ) .replace(HelpService.NEW_LINE_REGEX, EOL); @@ -211,7 +214,7 @@ export class HelpService implements IHelpService { // This method should return Promise in order to generate all html pages simultaneously. private async createHtmlPage( - htmlPageGenerationData: IHtmlPageGenerationData + htmlPageGenerationData: IHtmlPageGenerationData, ): Promise { const { basicHtmlPage, @@ -223,7 +226,7 @@ export class HelpService implements IHelpService { const mdFileName = path.basename(pathToMdFile); const htmlFileName = mdFileName.replace( HelpService.MARKDOWN_FILE_EXTENSION, - HelpService.HTML_FILE_EXTENSION + HelpService.HTML_FILE_EXTENSION, ); this.$logger.trace("Generating '%s' help topic.", htmlFileName); @@ -231,7 +234,7 @@ export class HelpService implements IHelpService { const outputText = await this.$microTemplateService.parseContent(helpText, { isHtml: true, }); - const htmlText = marked(outputText); + const htmlText = await marked(outputText); const filePath = pathToMdFile .replace(path.basename(pathToMdPages), path.basename(pathToHtmlPages)) @@ -239,32 +242,32 @@ export class HelpService implements IHelpService { this.$logger.trace( "HTML file path for '%s' man page is: '%s'.", mdFileName, - filePath + filePath, ); let outputHtml = basicHtmlPage .replace( HelpService.MAN_PAGE_NAME_REGEX, - mdFileName.replace(HelpService.MARKDOWN_FILE_EXTENSION, "") + mdFileName.replace(HelpService.MARKDOWN_FILE_EXTENSION, ""), ) .replace(HelpService.HTML_COMMAND_HELP_REGEX, htmlText) .replace( HelpService.RELATIVE_PATH_TO_STYLES_CSS_REGEX, - path.relative(path.dirname(filePath), this.pathToStylesCss) + path.relative(path.dirname(filePath), this.pathToStylesCss), ) .replace( HelpService.RELATIVE_PATH_TO_IMAGES_REGEX, - path.relative(path.dirname(filePath), this.pathToImages) + path.relative(path.dirname(filePath), this.pathToImages), ) .replace( HelpService.RELATIVE_PATH_TO_INDEX_REGEX, - path.relative(path.dirname(filePath), this.pathToIndexHtml) + path.relative(path.dirname(filePath), this.pathToIndexHtml), ); if (extensionName) { outputHtml = outputHtml.replace( HelpService.EXTENSION_NAME_REGEX, - extensionName + extensionName, ); } @@ -273,7 +276,7 @@ export class HelpService implements IHelpService { } private async convertCommandNameToFileName( - commandData: ICommandData + commandData: ICommandData, ): Promise { let { commandName } = commandData; const defaultCommandMatch = @@ -282,7 +285,7 @@ export class HelpService implements IHelpService { this.$logger.trace( "Default command found. Replace current command name '%s' with '%s'.", commandName, - defaultCommandMatch[1] + defaultCommandMatch[1], ); commandName = defaultCommandMatch[1]; } @@ -292,7 +295,7 @@ export class HelpService implements IHelpService { .sort(); this.$logger.trace( "List of registered commands: %s", - availableCommands.join(", ") + availableCommands.join(", "), ); if (commandName && !_.includes(availableCommands, commandName)) { await this.throwMissingCommandError(commandData); @@ -302,7 +305,7 @@ export class HelpService implements IHelpService { } private async throwMissingCommandError( - commandData: ICommandData + commandData: ICommandData, ): Promise { const commandName = commandData.commandName; const commandInfo = { @@ -311,9 +314,10 @@ export class HelpService implements IHelpService { defaultCommandDelimiter: CommandsDelimiters.DefaultHierarchicalCommand, }; - const extensionData = await this.$extensibilityService.getExtensionNameWhereCommandIsRegistered( - commandInfo - ); + const extensionData = + await this.$extensibilityService.getExtensionNameWhereCommandIsRegistered( + commandInfo, + ); if (extensionData) { this.$errors.fail(extensionData.installationMessage); } @@ -321,7 +325,7 @@ export class HelpService implements IHelpService { this.$errors.fail( "Unknown command '%s'. Try '$ %s help' for a full list of supported commands.", commandName, - this.$staticConfig.CLIENT_NAME.toLowerCase() + this.$staticConfig.CLIENT_NAME.toLowerCase(), ); } private static getHtmlDirFullPath(docsDir: string): string { @@ -331,17 +335,17 @@ export class HelpService implements IHelpService { private getHelpFile( searchedFileName: string, dirToCheck: string, - getFullPathAction?: (docsDir: string) => string + getFullPathAction?: (docsDir: string) => string, ): string { const fileList = this.$fs.enumerateFilesInDirectorySync(dirToCheck); let fileToOpen = _.find( fileList, - (file) => path.basename(file) === searchedFileName + (file) => path.basename(file) === searchedFileName, ); if (!fileToOpen) { fileToOpen = this.getHelpFileFromExtensions( searchedFileName, - getFullPathAction + getFullPathAction, ); } @@ -350,9 +354,10 @@ export class HelpService implements IHelpService { private getHelpFileFromExtensions( searchedFileName: string, - getFullPathAction?: (docsDir: string) => string + getFullPathAction?: (docsDir: string) => string, ): string { - const installedExtensionsData = this.$extensibilityService.getInstalledExtensionsData(); + const installedExtensionsData = + this.$extensibilityService.getInstalledExtensionsData(); for (const extensionData of installedExtensionsData) { const docsDir = extensionData.docs; @@ -364,7 +369,7 @@ export class HelpService implements IHelpService { this.$fs.exists(fullPath) && _.find( this.$fs.enumerateFilesInDirectorySync(fullPath), - (file) => path.basename(file) === searchedFileName + (file) => path.basename(file) === searchedFileName, ); if (fileToOpen) { return fileToOpen; @@ -377,7 +382,7 @@ export class HelpService implements IHelpService { const pageToOpen = this.getHelpFile( htmlPage, this.pathToHtmlPages, - HelpService.getHtmlDirFullPath + HelpService.getHtmlDirFullPath, ); if (pageToOpen) { @@ -391,7 +396,7 @@ export class HelpService implements IHelpService { } private async readMdFileForCommand( - commandData: ICommandData + commandData: ICommandData, ): Promise { const mdFileName = (await this.convertCommandNameToFileName(commandData)) + @@ -399,7 +404,7 @@ export class HelpService implements IHelpService { this.$logger.trace( "Reading help for command '%s'. FileName is '%s'.", commandData.commandName, - mdFileName + mdFileName, ); const markdownFile = this.getHelpFile(mdFileName, this.pathToManPages); diff --git a/lib/common/test/unit-tests/analytics-service.ts b/lib/common/test/unit-tests/analytics-service.ts index 714d04bc31..000160cf3d 100644 --- a/lib/common/test/unit-tests/analytics-service.ts +++ b/lib/common/test/unit-tests/analytics-service.ts @@ -6,7 +6,7 @@ import { HostInfo } from "../../host-info"; import { OsInfo } from "../../os-info"; import { IInjector } from "../../definitions/yok"; import { IAnalyticsService } from "../../declarations"; -const assert = require("chai").assert; +import { assert } from "chai"; let savedSettingNamesAndValues = ""; @@ -14,13 +14,12 @@ class UserSettingsServiceStub { constructor( public featureTracking: boolean, public exceptionsTracking: boolean, - public testInjector: IInjector + public testInjector: IInjector, ) {} async getSettingValue(settingName: string): Promise { - const $staticConfig: Config.IStaticConfig = this.testInjector.resolve( - "staticConfig" - ); + const $staticConfig: Config.IStaticConfig = + this.testInjector.resolve("staticConfig"); if (settingName === $staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME) { return this.featureTracking !== undefined @@ -94,8 +93,8 @@ function createTestInjector(testScenario: ITestScenario): IInjector { new UserSettingsServiceStub( testScenario.featureTracking, testScenario.exceptionsTracking, - testInjector - ) + testInjector, + ), ); setIsInteractive(() => { return testScenario.isInteractive; @@ -137,44 +136,43 @@ describe("analytics-service", () => { it("returns true when analytics status is enabled", async () => { const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); assert.isTrue( - await service.isEnabled(staticConfig.ERROR_REPORT_SETTING_NAME) + await service.isEnabled(staticConfig.ERROR_REPORT_SETTING_NAME), ); assert.isTrue( - await service.isEnabled(staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME) + await service.isEnabled(staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME), ); }); it("returns false when analytics status is disabled", async () => { - baseTestScenario.exceptionsTracking = baseTestScenario.featureTracking = false; + baseTestScenario.exceptionsTracking = baseTestScenario.featureTracking = + false; const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); assert.isFalse( - await service.isEnabled(staticConfig.ERROR_REPORT_SETTING_NAME) + await service.isEnabled(staticConfig.ERROR_REPORT_SETTING_NAME), ); assert.isFalse( - await service.isEnabled(staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME) + await service.isEnabled(staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME), ); }); it("returns false when analytics status is notConfirmed", async () => { - baseTestScenario.exceptionsTracking = baseTestScenario.featureTracking = undefined; + baseTestScenario.exceptionsTracking = baseTestScenario.featureTracking = + undefined; const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); assert.isFalse( - await service.isEnabled(staticConfig.ERROR_REPORT_SETTING_NAME) + await service.isEnabled(staticConfig.ERROR_REPORT_SETTING_NAME), ); assert.isFalse( - await service.isEnabled(staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME) + await service.isEnabled(staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME), ); }); }); @@ -183,17 +181,16 @@ describe("analytics-service", () => { it("sets correct status", async () => { const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); await service.setStatus( staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, - false + false, ); assert.isTrue( savedSettingNamesAndValues.indexOf( - `${staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME}.false` - ) !== -1 + `${staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME}.false`, + ) !== -1, ); }); }); @@ -202,17 +199,16 @@ describe("analytics-service", () => { it("returns correct string results when status is enabled", async () => { const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); const expectedMsg = "Expected result"; assert.equal( `${expectedMsg} is enabled.`, await service.getStatusMessage( staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, false, - expectedMsg - ) + expectedMsg, + ), ); }); @@ -220,17 +216,16 @@ describe("analytics-service", () => { baseTestScenario.featureTracking = false; const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); const expectedMsg = "Expected result"; assert.equal( `${expectedMsg} is disabled.`, await service.getStatusMessage( staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, false, - expectedMsg - ) + expectedMsg, + ), ); }); @@ -238,33 +233,31 @@ describe("analytics-service", () => { baseTestScenario.featureTracking = undefined; const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); const expectedMsg = "Expected result"; assert.equal( `${expectedMsg} is disabled until confirmed.`, await service.getStatusMessage( staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, false, - expectedMsg - ) + expectedMsg, + ), ); }); it("returns correct json results when status is enabled", async () => { const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); assert.deepStrictEqual( JSON.stringify({ enabled: true }), await service.getStatusMessage( staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, true, - "" - ) + "", + ), ); }); @@ -272,16 +265,15 @@ describe("analytics-service", () => { baseTestScenario.featureTracking = false; const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); assert.deepStrictEqual( JSON.stringify({ enabled: false }), await service.getStatusMessage( staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, true, - "" - ) + "", + ), ); }); @@ -289,16 +281,15 @@ describe("analytics-service", () => { baseTestScenario.featureTracking = undefined; const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); assert.deepStrictEqual( JSON.stringify({ enabled: null }), await service.getStatusMessage( staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, true, - "" - ) + "", + ), ); }); }); @@ -310,13 +301,12 @@ describe("analytics-service", () => { const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); await service.checkConsent(); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); assert.isTrue( savedSettingNamesAndValues.indexOf( - `${staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME}.true` - ) !== -1 + `${staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME}.true`, + ) !== -1, ); }); @@ -327,13 +317,12 @@ describe("analytics-service", () => { const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); await service.checkConsent(); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); assert.isTrue( savedSettingNamesAndValues.indexOf( - `${staticConfig.ERROR_REPORT_SETTING_NAME}.true` - ) !== -1 + `${staticConfig.ERROR_REPORT_SETTING_NAME}.true`, + ) !== -1, ); }); @@ -344,13 +333,12 @@ describe("analytics-service", () => { const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); await service.checkConsent(); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); assert.isTrue( savedSettingNamesAndValues.indexOf( - `${staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME}.false` - ) !== -1 + `${staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME}.false`, + ) !== -1, ); }); @@ -362,13 +350,12 @@ describe("analytics-service", () => { const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); await service.checkConsent(); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); assert.isTrue( savedSettingNamesAndValues.indexOf( - `${staticConfig.ERROR_REPORT_SETTING_NAME}.false` - ) !== -1 + `${staticConfig.ERROR_REPORT_SETTING_NAME}.false`, + ) !== -1, ); }); @@ -379,19 +366,19 @@ describe("analytics-service", () => { const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); await service.checkConsent(); - const staticConfig: Config.IStaticConfig = testInjector.resolve( - "staticConfig" - ); + const staticConfig: Config.IStaticConfig = + testInjector.resolve("staticConfig"); assert.isTrue( savedSettingNamesAndValues.indexOf( - `${staticConfig.ERROR_REPORT_SETTING_NAME}.${featureTrackingValue}` - ) !== -1 + `${staticConfig.ERROR_REPORT_SETTING_NAME}.${featureTrackingValue}`, + ) !== -1, ); }); }); it("does nothing when exception and feature tracking are already set", async () => { - baseTestScenario.featureTracking = baseTestScenario.exceptionsTracking = true; + baseTestScenario.featureTracking = baseTestScenario.exceptionsTracking = + true; const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); await service.checkConsent(); @@ -400,7 +387,8 @@ describe("analytics-service", () => { it("does nothing when cannot make request", async () => { baseTestScenario.canDoRequest = false; - baseTestScenario.featureTracking = baseTestScenario.exceptionsTracking = undefined; + baseTestScenario.featureTracking = baseTestScenario.exceptionsTracking = + undefined; const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); await service.checkConsent(); @@ -409,7 +397,8 @@ describe("analytics-service", () => { it("does nothing when values are not set and console is not interactive", async () => { baseTestScenario.isInteractive = false; - baseTestScenario.featureTracking = baseTestScenario.exceptionsTracking = undefined; + baseTestScenario.featureTracking = baseTestScenario.exceptionsTracking = + undefined; const testInjector = createTestInjector(baseTestScenario); service = testInjector.resolve("analyticsService"); await service.checkConsent(); diff --git a/lib/common/test/unit-tests/android-log-filter.ts b/lib/common/test/unit-tests/android-log-filter.ts index 19fc9f2d05..b6191294b9 100644 --- a/lib/common/test/unit-tests/android-log-filter.ts +++ b/lib/common/test/unit-tests/android-log-filter.ts @@ -1323,7 +1323,7 @@ describe("androidLogFilter", () => { inputData: string, expectedOutput: string, _logLevel?: string, - _pid?: string + _pid?: string, ) => { if (_logLevel?.toLowerCase() !== "full") { // pre-filter data since we use adb logcat filtering now - these should be filtered out by adb anyways. @@ -1361,7 +1361,7 @@ describe("androidLogFilter", () => { assert.deepStrictEqual( filteredData, expectedOutput, - `The actual result '${filteredData}' did NOT match expected output '${expectedOutput}'.` + `The actual result '${filteredData}' did NOT match expected output '${expectedOutput}'.`, ); }; @@ -1390,7 +1390,7 @@ describe("androidLogFilter", () => { assertFiltering( testData.input, testData.output ? testData.output + EOL : testData.output, - logLevel + logLevel, ); }); }); @@ -1400,7 +1400,7 @@ describe("androidLogFilter", () => { assertFiltering( testData.input, testData.output ? testData.output + EOL : testData.output, - logLevel + logLevel, ); }); }); @@ -1412,7 +1412,7 @@ describe("androidLogFilter", () => { testData.input, testData.output ? testData.output + EOL : testData.output, logLevel, - appPid + appPid, ); }); }); @@ -1420,14 +1420,14 @@ describe("androidLogFilter", () => { it("when API level 23 or later is used, and application pid doesn't match any logcat pids", () => { const appPid = "99999"; const expectedOutputMap = androidApiLevel23MapForPid8141.map( - (testData) => ({ input: testData.input, output: null }) + (testData) => ({ input: testData.input, output: null as any }), ); _.each(expectedOutputMap, (testData) => { assertFiltering( testData.input, testData.output ? testData.output + EOL : testData.output, logLevel, - appPid + appPid, ); }); }); diff --git a/lib/common/test/unit-tests/errors.ts b/lib/common/test/unit-tests/errors.ts index 2c116c6a5e..0d9a1fb7f2 100644 --- a/lib/common/test/unit-tests/errors.ts +++ b/lib/common/test/unit-tests/errors.ts @@ -83,19 +83,19 @@ describe("errors", () => { const assertProcessExited = () => { assert.isTrue( isProcessExitCalled, - "When the action fails, process.exit must be called." + "When the action fails, process.exit must be called.", ); assert.equal( processExitCode, 127, - "When the action fails, process.exit must be called with 127 by default." + "When the action fails, process.exit must be called with 127 by default.", ); }; const assertPrintCommandHelpSuggestionIsNotCalled = () => { assert.isFalse( isPrintCommandHelpSuggestionExecuted, - "printCommandHelpSuggestion should not be called when the suggestCommandHelp is not set to the exception." + "printCommandHelpSuggestion should not be called when the suggestCommandHelp is not set to the exception.", ); }; @@ -103,18 +103,18 @@ describe("errors", () => { const { action, printCommandHelpSuggestion } = setupTest(); let result = await errors.beginCommand( action, - printCommandHelpSuggestion + printCommandHelpSuggestion, ); assert.isTrue( result, - "beginCommand must return the result of the passed action." + "beginCommand must return the result of the passed action.", ); actionResult = false; result = await errors.beginCommand(action, printCommandHelpSuggestion); assert.isFalse( result, - "beginCommand must return the result of the passed action." + "beginCommand must return the result of the passed action.", ); assert.equal(logger.errorOutput, ""); assert.equal(logger.output, ""); @@ -136,15 +136,15 @@ describe("errors", () => { const assertCallStack = () => { assert.isTrue( logger.errorOutput.indexOf(errMsg) !== -1, - "The error output must contain the error message" + "The error output must contain the error message", ); assert.isTrue( - logger.errorOutput.indexOf("at Generator.next") !== -1, - "The error output must contain callstack" + logger.errorOutput.indexOf("at next") !== -1, + "The error output must contain callstack", ); assert.isTrue( logger.errorOutput.indexOf(path.join("lib", "common")) !== -1, - "The error output must contain path to lib/common, as this is the location of the file" + "The error output must contain path to lib/common, as this is the location of the file", ); }; @@ -213,7 +213,7 @@ describe("errors", () => { assertProcessExited(); assert.isTrue( isPrintCommandHelpSuggestionExecuted, - "printCommandHelpSuggestion should be called when the action fails with an error object for which suggestCommandHelp is true." + "printCommandHelpSuggestion should be called when the action fails with an error object for which suggestCommandHelp is true.", ); }); @@ -225,12 +225,12 @@ describe("errors", () => { assert.equal(logger.errorOutput, `${errMsg}\n`); assert.isTrue( isProcessExitCalled, - "When the action fails, process.exit must be called." + "When the action fails, process.exit must be called.", ); assert.equal( processExitCode, errObj.errorCode, - `When the action fails, process.exit must be called with ${errObj.errorCode}.` + `When the action fails, process.exit must be called with ${errObj.errorCode}.`, ); }); @@ -242,12 +242,12 @@ describe("errors", () => { assert.equal(logger.errorOutput, `${errMsg}\n`); assert.isTrue( isProcessExitCalled, - "When the action fails, process.exit must be called." + "When the action fails, process.exit must be called.", ); assert.equal( processExitCode, 127, - "When the action fails, process.exit must be called with 127 by default." + "When the action fails, process.exit must be called with 127 by default.", ); }); }); diff --git a/lib/common/test/unit-tests/file-system.ts b/lib/common/test/unit-tests/file-system.ts index 68fea0c170..8ea252d41b 100644 --- a/lib/common/test/unit-tests/file-system.ts +++ b/lib/common/test/unit-tests/file-system.ts @@ -3,6 +3,8 @@ import * as path from "path"; import * as temp from "temp"; import * as hostInfoLib from "../../host-info"; import { assert, use } from "chai"; +import "chai-as-promised"; +import chaiAsPromised from "chai-as-promised"; import * as fileSystemFile from "../../file-system"; import * as childProcessLib from "../../child-process"; import { CommonLoggerStub } from "./stubs"; @@ -10,16 +12,16 @@ import { IInjector } from "../../definitions/yok"; import * as _ from "lodash"; import { IFileSystem } from "../../declarations"; -use(require("chai-as-promised")); +use(chaiAsPromised); const sampleZipFileTest = path.join( __dirname, - "../resources/sampleZipFileTest.zip" + "../resources/sampleZipFileTest.zip", ); const unzippedFileName = "sampleZipFileTest.txt"; const sampleZipFileTestIncorrectName = path.join( __dirname, - "../resources/sampleZipfileTest.zip" + "../resources/sampleZipfileTest.zip", ); function isOsCaseSensitive(testInjector: IInjector): boolean { @@ -133,13 +135,13 @@ describe("FileSystem", () => { sampleZipFileTest, tempDir, { overwriteExisitingFiles: false }, - [unzippedFileName] + [unzippedFileName], ); const data = fs.readFile(file); assert.strictEqual( msg, data.toString(), - "When overwriteExistingFiles is false, we should not ovewrite files." + "When overwriteExistingFiles is false, we should not ovewrite files.", ); }); @@ -148,13 +150,13 @@ describe("FileSystem", () => { sampleZipFileTest, tempDir, { overwriteExisitingFiles: true }, - [unzippedFileName] + [unzippedFileName], ); const data = fs.readFile(file); assert.notEqual( msg, data.toString(), - "We must overwrite files when overwriteExisitingFiles is true." + "We must overwrite files when overwriteExisitingFiles is true.", ); }); @@ -164,7 +166,7 @@ describe("FileSystem", () => { assert.notEqual( msg, data.toString(), - "We must overwrite files when overwriteExisitingFiles is not set." + "We must overwrite files when overwriteExisitingFiles is not set.", ); }); @@ -176,7 +178,7 @@ describe("FileSystem", () => { assert.notEqual( msg, data.toString(), - "We must overwrite files when options is not defined." + "We must overwrite files when options is not defined.", ); }); }); @@ -193,7 +195,7 @@ describe("FileSystem", () => { fs.unzip(sampleZipFileTestIncorrectName, tempDir, undefined, [ unzippedFileName, ]), - commandUnzipFailedMessage + commandUnzipFailedMessage, ); } }); @@ -207,7 +209,7 @@ describe("FileSystem", () => { fs.unzip(sampleZipFileTestIncorrectName, tempDir, {}, [ unzippedFileName, ]), - commandUnzipFailedMessage + commandUnzipFailedMessage, ); } }); @@ -222,9 +224,9 @@ describe("FileSystem", () => { sampleZipFileTestIncorrectName, tempDir, { caseSensitive: true }, - [unzippedFileName] + [unzippedFileName], ), - commandUnzipFailedMessage + commandUnzipFailedMessage, ); } }); @@ -238,7 +240,7 @@ describe("FileSystem", () => { sampleZipFileTestIncorrectName, tempDir, { caseSensitive: false }, - [unzippedFileName] + [unzippedFileName], ); // This will throw error in case file is not extracted fs.readFile(file); @@ -261,7 +263,7 @@ describe("FileSystem", () => { assert.isTrue(fs.exists(newFileName), "Renamed file should exists."); assert.isFalse( fs.exists(testFileName), - "Original file should not exist." + "Original file should not exist.", ); }); @@ -300,7 +302,7 @@ describe("FileSystem", () => { assert.deepStrictEqual( fs.getFsStats(testFileName).size, fs.getFsStats(testFileName).size, - "Original file and copied file must have the same size." + "Original file and copied file must have the same size.", ); }); @@ -310,13 +312,13 @@ describe("FileSystem", () => { fs.copyFile(testFileName, newFileNameInSubDir); assert.isTrue( fs.exists(newFileNameInSubDir), - "Renamed file should exists." + "Renamed file should exists.", ); assert.isTrue(fs.exists(testFileName), "Original file should exist."); assert.deepStrictEqual( fs.getFsStats(testFileName).size, fs.getFsStats(testFileName).size, - "Original file and copied file must have the same size." + "Original file and copied file must have the same size.", ); }); @@ -327,12 +329,12 @@ describe("FileSystem", () => { assert.deepStrictEqual( fs.getFsStats(testFileName).size, originalSize, - "Original file and copied file must have the same size." + "Original file and copied file must have the same size.", ); assert.deepStrictEqual( fs.readText(testFileName), fileContent, - "File content should not be changed." + "File content should not be changed.", ); }); }); @@ -398,7 +400,7 @@ describe("FileSystem", () => { (JSON).stringify = ( value: any, replacer: any[], - space: string | number + space: string | number, ) => { actualIndentation = space; }; diff --git a/lib/common/test/unit-tests/mobile/application-manager-base.ts b/lib/common/test/unit-tests/mobile/application-manager-base.ts index a2cf93db77..262c421455 100644 --- a/lib/common/test/unit-tests/mobile/application-manager-base.ts +++ b/lib/common/test/unit-tests/mobile/application-manager-base.ts @@ -20,7 +20,7 @@ class ApplicationManager extends ApplicationManagerBase { constructor( $logger: ILogger, $hooksService: IHooksService, - $deviceLogProvider: Mobile.IDeviceLogProvider + $deviceLogProvider: Mobile.IDeviceLogProvider, ) { super($logger, $hooksService, $deviceLogProvider); } @@ -34,13 +34,13 @@ class ApplicationManager extends ApplicationManagerBase { } public async startApplication( - appData: Mobile.IApplicationData + appData: Mobile.IApplicationData, ): Promise { return; } public async stopApplication( - appData: Mobile.IApplicationData + appData: Mobile.IApplicationData, ): Promise { return; } @@ -56,7 +56,7 @@ class ApplicationManager extends ApplicationManagerBase { } public async getDebuggableAppViews( - appIdentifiers: string[] + appIdentifiers: string[], ): Promise> { return _.cloneDeep(currentlyAvailableAppWebViewsForDebugging); } @@ -72,7 +72,7 @@ function createTestInjector(): IInjector { } function createAppsAvailableForDebugging( - count: number + count: number, ): Mobile.IDeviceApplicationInformation[] { return _.times(count, (index: number) => ({ deviceIdentifier: "deviceId", @@ -95,14 +95,14 @@ function createDebuggableWebView(uniqueId: string) { function createDebuggableWebViews( appInfos: Mobile.IDeviceApplicationInformation[], - numberOfViews: number + numberOfViews: number, ): IDictionary { const result: IDictionary = {}; _.each(appInfos, (appInfo, index) => { result[appInfo.appIdentifier] = _.times( numberOfViews, (currentViewIndex: number) => - createDebuggableWebView(`${index}_${currentViewIndex}`) + createDebuggableWebView(`${index}_${currentViewIndex}`), ); }); @@ -144,12 +144,12 @@ describe("ApplicationManagerBase", () => { (f: Mobile.IDeviceApplicationInformation, index: number) => { assert.deepStrictEqual( f, - currentlyAvailableAppsForDebugging[index] + currentlyAvailableAppsForDebugging[index], ); - } + }, ); } - } + }, ); await applicationManager.checkForApplicationUpdates(); @@ -173,16 +173,16 @@ describe("ApplicationManagerBase", () => { (f: Mobile.IDeviceApplicationInformation, index: number) => { assert.deepStrictEqual( f, - currentlyAvailableAppsForDebugging[index] + currentlyAvailableAppsForDebugging[index], ); - } + }, ); if (isFinalCheck) { return; } } - } + }, ); await applicationManager.checkForApplicationUpdates(); @@ -208,10 +208,10 @@ describe("ApplicationManagerBase", () => { lostAppsForDebug, (f: Mobile.IDeviceApplicationInformation, index: number) => { assert.deepStrictEqual(f, expectedAppsToBeLost[index]); - } + }, ); } - } + }, ); // First call will raise debuggableAppFound two times. @@ -238,10 +238,10 @@ describe("ApplicationManagerBase", () => { f, _.find( initialAppsAvailableForDebug, - (t) => t.appIdentifier === f.appIdentifier - ) + (t) => t.appIdentifier === f.appIdentifier, + ), ); - } + }, ); if ( @@ -250,7 +250,7 @@ describe("ApplicationManagerBase", () => { ) { return; } - } + }, ); await applicationManager.checkForApplicationUpdates(); @@ -266,7 +266,7 @@ describe("ApplicationManagerBase", () => { currentlyAvailableAppsForDebugging = _.take(allAppsForDebug, 2); const remainingAppsForDebugging = _.difference( allAppsForDebug, - currentlyAvailableAppsForDebugging + currentlyAvailableAppsForDebugging, ); const foundAppsForDebug: Mobile.IDeviceApplicationInformation[] = []; @@ -286,12 +286,12 @@ describe("ApplicationManagerBase", () => { foundAppsForDebug, (f: Mobile.IDeviceApplicationInformation, index: number) => { assert.deepStrictEqual(f, remainingAppsForDebugging[index]); - } + }, ); resolve(); } - } + }, ); }); @@ -302,10 +302,10 @@ describe("ApplicationManagerBase", () => { assert.deepStrictEqual( d, allAppsForDebug[0], - "Debuggable app lost does not match." + "Debuggable app lost does not match.", ); resolve(); - } + }, ); }); @@ -319,7 +319,7 @@ describe("ApplicationManagerBase", () => { const numberOfViewsPerApp = 2; currentlyAvailableAppWebViewsForDebugging = createDebuggableWebViews( currentlyAvailableAppsForDebugging, - numberOfViewsPerApp + numberOfViewsPerApp, ); const currentDebuggableViews: IDictionary = {}; @@ -330,7 +330,7 @@ describe("ApplicationManagerBase", () => { currentDebuggableViews[appIdentifier] || []; currentDebuggableViews[appIdentifier].push(d); const numberOfFoundViewsPerApp = _.uniq( - _.values(currentDebuggableViews).map((arr) => arr.length) + _.values(currentDebuggableViews).map((arr) => arr.length), ); if ( _.keys(currentDebuggableViews).length === @@ -342,14 +342,14 @@ describe("ApplicationManagerBase", () => { _.each(webViews, (webView) => { const expectedWebView = _.find( currentlyAvailableAppWebViewsForDebugging[appId], - (c) => c.id === webView.id + (c) => c.id === webView.id, ); assert.isTrue(_.isEqual(webView, expectedWebView)); }); }); setTimeout(done, 0); } - } + }, ); /* tslint:disable:no-floating-promises */ @@ -362,10 +362,10 @@ describe("ApplicationManagerBase", () => { const numberOfViewsPerApp = 2; currentlyAvailableAppWebViewsForDebugging = createDebuggableWebViews( currentlyAvailableAppsForDebugging, - numberOfViewsPerApp + numberOfViewsPerApp, ); const expectedResults = _.cloneDeep( - currentlyAvailableAppWebViewsForDebugging + currentlyAvailableAppWebViewsForDebugging, ); const currentDebuggableViews: IDictionary = {}; @@ -380,7 +380,7 @@ describe("ApplicationManagerBase", () => { currentDebuggableViews[appIdentifier] || []; currentDebuggableViews[appIdentifier].push(d); const numberOfFoundViewsPerApp = _.uniq( - _.values(currentDebuggableViews).map((arr) => arr.length) + _.values(currentDebuggableViews).map((arr) => arr.length), ); if ( _.keys(currentDebuggableViews).length === @@ -392,19 +392,19 @@ describe("ApplicationManagerBase", () => { _.each(webViews, (webView) => { const expectedWebView = _.find( expectedResults[appId], - (c) => c.id === webView.id + (c) => c.id === webView.id, ); assert.isTrue(_.isEqual(webView, expectedWebView)); }); }); setTimeout(done, 0); } - } + }, ); currentlyAvailableAppWebViewsForDebugging = _.mapValues( currentlyAvailableAppWebViewsForDebugging, - (a) => [] + (a) => [] as any, ); return applicationManager.checkForApplicationUpdates(); }) @@ -416,7 +416,7 @@ describe("ApplicationManagerBase", () => { const numberOfViewsPerApp = 2; currentlyAvailableAppWebViewsForDebugging = createDebuggableWebViews( currentlyAvailableAppsForDebugging, - numberOfViewsPerApp + numberOfViewsPerApp, ); let expectedViewToBeFound = createDebuggableWebView("uniqueId"); let expectedAppIdentifier = @@ -435,7 +435,7 @@ describe("ApplicationManagerBase", () => { if (isLastCheck) { setTimeout(done, 0); } - } + }, ); currentlyAvailableAppWebViewsForDebugging[ @@ -471,7 +471,7 @@ describe("ApplicationManagerBase", () => { const numberOfViewsPerApp = 2; currentlyAvailableAppWebViewsForDebugging = createDebuggableWebViews( currentlyAvailableAppsForDebugging, - numberOfViewsPerApp + numberOfViewsPerApp, ); let expectedAppIdentifier = currentlyAvailableAppsForDebugging[0].appIdentifier; @@ -492,7 +492,7 @@ describe("ApplicationManagerBase", () => { if (isLastCheck) { setTimeout(done, 0); } - } + }, ); return applicationManager.checkForApplicationUpdates(); @@ -522,7 +522,7 @@ describe("ApplicationManagerBase", () => { currentlyAvailableAppsForDebugging = createAppsAvailableForDebugging(1); currentlyAvailableAppWebViewsForDebugging = createDebuggableWebViews( currentlyAvailableAppsForDebugging, - 2 + 2, ); const viewToChange = currentlyAvailableAppWebViewsForDebugging[ @@ -536,7 +536,7 @@ describe("ApplicationManagerBase", () => { (appIdentifier: string, d: Mobile.IDebugWebViewInfo) => { assert.isTrue(_.isEqual(d, expectedView)); setTimeout(done, 0); - } + }, ); applicationManager @@ -552,7 +552,7 @@ describe("ApplicationManagerBase", () => { currentlyAvailableAppsForDebugging = createAppsAvailableForDebugging(1); currentlyAvailableAppWebViewsForDebugging = createDebuggableWebViews( currentlyAvailableAppsForDebugging, - 2 + 2, ); const viewToChange = currentlyAvailableAppWebViewsForDebugging[ @@ -570,19 +570,19 @@ describe("ApplicationManagerBase", () => { () => done( new Error( - "When id is changed, debuggableViewChanged must not be emitted." - ) + "When id is changed, debuggableViewChanged must not be emitted.", + ), ), - 0 + 0, ); - } + }, ); applicationManager.on( "debuggableViewLost", (appIdentifier: string, d: Mobile.IDebugWebViewInfo) => { assert.isTrue(_.isEqual(d, expectedView)); - } + }, ); applicationManager.on( @@ -591,7 +591,7 @@ describe("ApplicationManagerBase", () => { expectedView.id = "new id"; assert.isTrue(_.isEqual(d, expectedView)); setTimeout(done, 0); - } + }, ); viewToChange.id = "new id"; @@ -627,7 +627,7 @@ describe("ApplicationManagerBase", () => { assert.deepStrictEqual( reportedInstalledApps.length, - currentlyInstalledApps.length + currentlyInstalledApps.length, ); }); @@ -658,7 +658,7 @@ describe("ApplicationManagerBase", () => { assert.deepStrictEqual( reportedInstalledApps.length, - currentlyInstalledApps.length + currentlyInstalledApps.length, ); }; @@ -699,7 +699,7 @@ describe("ApplicationManagerBase", () => { assert.deepStrictEqual( reportedUninstalledApps.length, - initiallyInstalledApps.length + initiallyInstalledApps.length, ); }); @@ -739,7 +739,7 @@ describe("ApplicationManagerBase", () => { assert.deepStrictEqual( reportedUninstalledApps.length, - removedApps.length + removedApps.length, ); }; @@ -799,7 +799,7 @@ describe("ApplicationManagerBase", () => { assert.deepStrictEqual( reportedUninstalledApps.length, - removedApps.length + removedApps.length, ); _.each(installedApps, (c: string, index: number) => { @@ -808,7 +808,7 @@ describe("ApplicationManagerBase", () => { assert.deepStrictEqual( reportedInstalledApps.length, - installedApps.length + installedApps.length, ); }; @@ -832,11 +832,11 @@ describe("ApplicationManagerBase", () => { currentlyInstalledApps = ["app1", "app2"]; assert.isTrue( await applicationManager.isApplicationInstalled("app1"), - "app1 is installed, so result of isAppInstalled must be true." + "app1 is installed, so result of isAppInstalled must be true.", ); assert.isTrue( await applicationManager.isApplicationInstalled("app2"), - "app2 is installed, so result of isAppInstalled must be true." + "app2 is installed, so result of isAppInstalled must be true.", ); }); @@ -844,11 +844,11 @@ describe("ApplicationManagerBase", () => { currentlyInstalledApps = ["app1", "app2"]; assert.isFalse( await applicationManager.isApplicationInstalled("app3"), - "app3 is NOT installed, so result of isAppInstalled must be false." + "app3 is NOT installed, so result of isAppInstalled must be false.", ); assert.isFalse( await applicationManager.isApplicationInstalled("app4"), - "app4 is NOT installed, so result of isAppInstalled must be false." + "app4 is NOT installed, so result of isAppInstalled must be false.", ); }); }); @@ -857,7 +857,7 @@ describe("ApplicationManagerBase", () => { it("calls stopApplication with correct arguments", async () => { let passedApplicationData: Mobile.IApplicationData = null; applicationManager.stopApplication = ( - appData: Mobile.IApplicationData + appData: Mobile.IApplicationData, ) => { passedApplicationData = appData; return Promise.resolve(); @@ -867,14 +867,14 @@ describe("ApplicationManagerBase", () => { assert.deepStrictEqual( applicationData, passedApplicationData, - "When bundleIdentifier is not passed to restartApplication, stopApplication must be called with application identifier." + "When bundleIdentifier is not passed to restartApplication, stopApplication must be called with application identifier.", ); }); it("calls startApplication with correct arguments", async () => { let passedApplicationData: Mobile.IApplicationData = null; applicationManager.startApplication = ( - appData: Mobile.IApplicationData + appData: Mobile.IApplicationData, ) => { passedApplicationData = appData; return Promise.resolve(); @@ -884,7 +884,7 @@ describe("ApplicationManagerBase", () => { assert.deepStrictEqual( passedApplicationData, applicationData, - "startApplication must be called with correct args." + "startApplication must be called with correct args.", ); }); @@ -893,18 +893,18 @@ describe("ApplicationManagerBase", () => { let isStopApplicationCalled = false; applicationManager.stopApplication = ( - appData: Mobile.IApplicationData + appData: Mobile.IApplicationData, ) => { isStopApplicationCalled = true; return Promise.resolve(); }; applicationManager.startApplication = ( - appData: Mobile.IApplicationData + appData: Mobile.IApplicationData, ) => { assert.isTrue( isStopApplicationCalled, - "When startApplication is called, stopApplication must have been resolved." + "When startApplication is called, stopApplication must have been resolved.", ); isStartApplicationCalled = true; return Promise.resolve(); @@ -914,7 +914,7 @@ describe("ApplicationManagerBase", () => { assert.isTrue(isStopApplicationCalled, "stopApplication must be called."); assert.isTrue( isStartApplicationCalled, - "startApplication must be called." + "startApplication must be called.", ); }); }); @@ -924,7 +924,7 @@ describe("ApplicationManagerBase", () => { let passedApplicationData: Mobile.IApplicationData = null; applicationManager.startApplication = ( - appData: Mobile.IApplicationData + appData: Mobile.IApplicationData, ) => { passedApplicationData = appData; return Promise.resolve(); @@ -957,7 +957,7 @@ describe("ApplicationManagerBase", () => { }) => { assert.deepStrictEqual(logger.traceOutput, ""); applicationManager.startApplication = async ( - appData: Mobile.IApplicationData + appData: Mobile.IApplicationData, ) => { if (opts && opts.shouldStartApplicatinThrow) { throw error; @@ -970,15 +970,15 @@ describe("ApplicationManagerBase", () => { await applicationManager.tryStartApplication(applicationData); assert.isFalse( isStartApplicationCalled, - "startApplication must not be called when there's an error." + "startApplication must not be called when there's an error.", ); assert.isTrue( logger.traceOutput.indexOf("Throw!") !== -1, - "Error message must be shown in trace output." + "Error message must be shown in trace output.", ); assert.isTrue( logger.traceOutput.indexOf("Unable to start application") !== -1, - "'Unable to start application' must be shown in trace output." + "'Unable to start application' must be shown in trace output.", ); }; @@ -1004,7 +1004,7 @@ describe("ApplicationManagerBase", () => { await applicationManager.reinstallApplication( "appId", "packageFilePath", - { clean: true } as any + { clean: true } as any, ); assert.deepStrictEqual(uninstallApplicationAppIdParam, "appId"); }); @@ -1019,7 +1019,7 @@ describe("ApplicationManagerBase", () => { await applicationManager.reinstallApplication("appId", "packageFilePath"); assert.deepStrictEqual( installApplicationPackageFilePathParam, - "packageFilePath" + "packageFilePath", ); }); @@ -1033,7 +1033,7 @@ describe("ApplicationManagerBase", () => { applicationManager.uninstallApplication = (appId: string) => { assert.isFalse( isInstallApplicationCalled, - "When uninstallApplication is called, installApplication should not have been called." + "When uninstallApplication is called, installApplication should not have been called.", ); isUninstallApplicationCalled = true; return Promise.resolve(); @@ -1042,7 +1042,7 @@ describe("ApplicationManagerBase", () => { applicationManager.installApplication = (packageFilePath: string) => { assert.isTrue( isUninstallApplicationCalled, - "When installApplication is called, uninstallApplication should have been called." + "When installApplication is called, uninstallApplication should have been called.", ); isInstallApplicationCalled = true; return Promise.resolve(); @@ -1051,16 +1051,16 @@ describe("ApplicationManagerBase", () => { await applicationManager.reinstallApplication( "appId", "packageFilePath", - { clean: true } as any + { clean: true } as any, ); assert.isTrue( isUninstallApplicationCalled, - "uninstallApplication should have been called." + "uninstallApplication should have been called.", ); assert.isTrue( isInstallApplicationCalled, - "installApplication should have been called." + "installApplication should have been called.", ); }); }); diff --git a/lib/common/test/unit-tests/mobile/devices-service.ts b/lib/common/test/unit-tests/mobile/devices-service.ts index 7602454834..d620079456 100644 --- a/lib/common/test/unit-tests/mobile/devices-service.ts +++ b/lib/common/test/unit-tests/mobile/devices-service.ts @@ -15,8 +15,9 @@ import { EventEmitter } from "events"; import { assert, use } from "chai"; import * as util from "util"; import * as _ from "lodash"; +import "chai-as-promised"; +import chaiAsPromised from "chai-as-promised"; -const chaiAsPromised = require("chai-as-promised"); use(chaiAsPromised); import { CommonLoggerStub, ErrorsStub } from "../stubs"; @@ -36,19 +37,19 @@ class AndroidEmulatorDiscoveryStub extends EventEmitter { class DevicesServiceInheritor extends DevicesService { public startEmulatorIfNecessary( - data?: Mobile.IDevicesServicesInitializationOptions + data?: Mobile.IDevicesServicesInitializationOptions, ): Promise { return super.startEmulatorIfNecessary(data); } public startDeviceDetectionInterval( - deviceInitOpts: Mobile.IDeviceLookingOptions = {} + deviceInitOpts: Mobile.IDeviceLookingOptions = {}, ): void { return super.startDeviceDetectionInterval(deviceInitOpts); } public detectCurrentlyAttachedDevices( - options?: Mobile.IDeviceLookingOptions + options?: Mobile.IDeviceLookingOptions, ): Promise { return super.detectCurrentlyAttachedDevices(options); } @@ -115,8 +116,8 @@ function getErrorMessage( injector.resolve("messages").Devices[message], ..._.concat( args, - injector.resolve("staticConfig").CLIENT_NAME.toLowerCase() - ) + injector.resolve("staticConfig").CLIENT_NAME.toLowerCase(), + ), ); } @@ -145,8 +146,8 @@ const iOSSimulator = { Promise.resolve( _.includes( ["com.telerik.unitTest1", "com.telerik.unitTest2"], - packageName - ) + packageName, + ), ), }, deploy: (packageFile: string, packageName: string) => Promise.resolve(), @@ -156,12 +157,12 @@ const iOSSimulator = { class AndroidEmulatorServices { public isStartEmulatorCalled = false; public async startEmulator( - options: Mobile.IStartEmulatorOptions + options: Mobile.IStartEmulatorOptions, ): Promise { this.isStartEmulatorCalled = true; androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidEmulatorDevice + androidEmulatorDevice, ); return Promise.resolve(); } @@ -180,7 +181,7 @@ class IOSEmulatorServices { this.isStartEmulatorCalled = true; iOSSimulatorDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSSimulator + iOSSimulator, ); } return Promise.resolve(); @@ -243,7 +244,7 @@ function createTestInjector(): IInjector { }); testInjector.register( "androidEmulatorDiscovery", - AndroidEmulatorDiscoveryStub + AndroidEmulatorDiscoveryStub, ); testInjector.register("emulatorHelper", {}); @@ -336,14 +337,14 @@ describe("devicesService", () => { Promise.resolve( _.includes( ["com.telerik.unitTest1", "com.telerik.unitTest2"], - packageName - ) + packageName, + ), ), checkForApplicationUpdates: (): Promise => Promise.resolve(), getDebuggableApps: (): Promise => Promise.resolve(null), getDebuggableAppViews: ( - appIdentifiers: string[] + appIdentifiers: string[], ): Promise> => Promise.resolve(null), }, @@ -375,14 +376,14 @@ describe("devicesService", () => { "com.telerik.unitTest2", "com.telerik.unitTest3", ], - packageName - ) + packageName, + ), ), checkForApplicationUpdates: (): Promise => Promise.resolve(), getDebuggableApps: (): Promise => Promise.resolve(null), getDebuggableAppViews: ( - appIdentifiers: string[] + appIdentifiers: string[], ): Promise> => Promise.resolve(null), }, @@ -407,12 +408,12 @@ describe("devicesService", () => { iOSDeviceDiscovery.emit(DeviceDiscoveryEventNames.DEVICE_FOUND, iOSDevice); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); const devices = devicesService.getDeviceInstances(); assert.isTrue( devicesService.hasDevices, - "After emitting two devices, hasDevices must be true" + "After emitting two devices, hasDevices must be true", ); assert.deepStrictEqual(devices[0], iOSDevice); assert.deepStrictEqual(devices[1], androidDevice); @@ -420,25 +421,25 @@ describe("devicesService", () => { it("attaches to events when a new custom device discovery is instantiated", () => { const customDeviceDiscovery = testInjector.resolve( - CustomDeviceDiscoveryStub + CustomDeviceDiscoveryStub, ); devicesService.addDeviceDiscovery(customDeviceDiscovery); assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); customDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); customDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); const devices = devicesService.getDeviceInstances(); assert.isTrue( devicesService.hasDevices, - "After emitting two devices, hasDevices must be true" + "After emitting two devices, hasDevices must be true", ); assert.deepStrictEqual(devices[0], iOSDevice); assert.deepStrictEqual(devices[1], androidDevice); @@ -462,19 +463,19 @@ describe("devicesService", () => { it(`emits ${EmulatorDiscoveryNames.EMULATOR_IMAGE_FOUND} event when new Android Emulator image is found`, (done: mocha.Done) => { const androidEmulatorDiscovery = testInjector.resolve( - "androidEmulatorDiscovery" + "androidEmulatorDiscovery", ); devicesService.on( EmulatorDiscoveryNames.EMULATOR_IMAGE_FOUND, (emulatorImage: Mobile.IDeviceInfo) => { assert.deepStrictEqual(emulatorImage, emulatorDataToEmit); done(); - } + }, ); androidEmulatorDiscovery.emit( EmulatorDiscoveryNames.EMULATOR_IMAGE_FOUND, - emulatorDataToEmit + emulatorDataToEmit, ); }); @@ -484,31 +485,31 @@ describe("devicesService", () => { (emulatorImage: Mobile.IDeviceInfo) => { assert.deepStrictEqual(emulatorImage, emulatorDataToEmit); done(); - } + }, ); iOSSimulatorDiscovery.emit( EmulatorDiscoveryNames.EMULATOR_IMAGE_FOUND, - emulatorDataToEmit + emulatorDataToEmit, ); }); it(`emits ${EmulatorDiscoveryNames.EMULATOR_IMAGE_LOST} event when new Android Emulator image is deleted`, (done: mocha.Done) => { const androidEmulatorDiscovery = testInjector.resolve( - "androidEmulatorDiscovery" + "androidEmulatorDiscovery", ); devicesService.on( EmulatorDiscoveryNames.EMULATOR_IMAGE_LOST, (emulatorImage: Mobile.IDeviceInfo) => { assert.deepStrictEqual(emulatorImage, emulatorDataToEmit); done(); - } + }, ); androidEmulatorDiscovery.emit( EmulatorDiscoveryNames.EMULATOR_IMAGE_LOST, - emulatorDataToEmit + emulatorDataToEmit, ); }); @@ -518,12 +519,12 @@ describe("devicesService", () => { (emulatorImage: Mobile.IDeviceInfo) => { assert.deepStrictEqual(emulatorImage, emulatorDataToEmit); done(); - } + }, ); iOSSimulatorDiscovery.emit( EmulatorDiscoveryNames.EMULATOR_IMAGE_LOST, - emulatorDataToEmit + emulatorDataToEmit, ); }); }); @@ -535,7 +536,7 @@ describe("devicesService", () => { emulator: true, deviceId: "emulator_image_name", }), - '--device and --emulator are incompatible options.\n\t\t\tIf you are trying to run on specific emulator, use "unit-tests run --device ' + '--device and --emulator are incompatible options.\n\t\t\tIf you are trying to run on specific emulator, use "unit-tests run --device ', ); }); describe("platform is passed and", () => { @@ -543,7 +544,7 @@ describe("devicesService", () => { assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "Initially getDevicesInstances must return empty array." + "Initially getDevicesInstances must return empty array.", ); await devicesService.startEmulatorIfNecessary({ platform: "android" }); assert.deepStrictEqual(devicesService.getDeviceInstances(), [ @@ -557,11 +558,11 @@ describe("devicesService", () => { assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "Initially getDevicesInstances must return empty array." + "Initially getDevicesInstances must return empty array.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidEmulatorDevice + androidEmulatorDevice, ); await devicesService.startEmulatorIfNecessary({ platform: "android" }); assert.deepStrictEqual(devicesService.getDeviceInstances(), [ @@ -573,11 +574,11 @@ describe("devicesService", () => { assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "Initially getDevicesInstances must return empty array." + "Initially getDevicesInstances must return empty array.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidEmulatorDevice + androidEmulatorDevice, ); await devicesService.startEmulatorIfNecessary({ platform: "android", @@ -592,11 +593,11 @@ describe("devicesService", () => { assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "Initially getDevicesInstances must return empty array." + "Initially getDevicesInstances must return empty array.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await devicesService.startEmulatorIfNecessary({ platform: "android", @@ -608,7 +609,7 @@ describe("devicesService", () => { assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "Initially getDevicesInstances must return empty array." + "Initially getDevicesInstances must return empty array.", ); await devicesService.startEmulatorIfNecessary({ platform: "android", @@ -623,11 +624,11 @@ describe("devicesService", () => { assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "Initially getDevicesInstances must return empty array." + "Initially getDevicesInstances must return empty array.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidEmulatorDevice + androidEmulatorDevice, ); await devicesService.startEmulatorIfNecessary({ platform: "android", @@ -642,11 +643,11 @@ describe("devicesService", () => { assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "Initially getDevicesInstances must return empty array." + "Initially getDevicesInstances must return empty array.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await devicesService.startEmulatorIfNecessary({ platform: "android", @@ -662,24 +663,24 @@ describe("devicesService", () => { assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "Initially getDevicesInstances must return empty array." + "Initially getDevicesInstances must return empty array.", ); await devicesService.startEmulatorIfNecessary({ platform: "android" }); assert.equal( (androidDeviceDiscovery).count, - 2 + 2, ); assert.equal((iOSDeviceDiscovery).count, 1); assert.equal( (iOSSimulatorDiscovery).count, - 1 + 1, ); }); it("deviceId is NOT passed, platform is passed and skipEmulatorStart is passed - should not start emulator", async () => { assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "Initially getDevicesInstances must return empty array." + "Initially getDevicesInstances must return empty array.", ); await devicesService.startEmulatorIfNecessary({ platform: "android", @@ -695,57 +696,57 @@ describe("devicesService", () => { it("is true when device is found", () => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); assert.isTrue( devicesService.hasDevices, - "After emitting, hasDevices must be true" + "After emitting, hasDevices must be true", ); }); it("is false when device is found and lost after that", () => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - androidDevice + androidDevice, ); assert.isFalse( devicesService.hasDevices, - "After losing all devices, hasDevices must be false." + "After losing all devices, hasDevices must be false.", ); }); it("is true when two devices are found and one of them is lost after that", () => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - androidDevice + androidDevice, ); assert.isTrue( devicesService.hasDevices, - "After losing only one of two devices, hasDevices must be true." + "After losing only one of two devices, hasDevices must be true.", ); }); }); @@ -755,17 +756,17 @@ describe("devicesService", () => { assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "Initially getDevicesInstances must return empty array." + "Initially getDevicesInstances must return empty array.", ); assert.deepStrictEqual( devicesService.getDevices(), [], - "Initially getDevices must return empty array." + "Initially getDevices must return empty array.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); assert.deepStrictEqual(devicesService.getDeviceInstances(), [ androidDevice, @@ -779,17 +780,17 @@ describe("devicesService", () => { assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "Initially getDevicesInstances must return empty array." + "Initially getDevicesInstances must return empty array.", ); assert.deepStrictEqual( devicesService.getDevices(), [], - "Initially getDevices must return empty array." + "Initially getDevices must return empty array.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); assert.deepStrictEqual(devicesService.getDeviceInstances(), [ androidDevice, @@ -800,17 +801,17 @@ describe("devicesService", () => { androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - androidDevice + androidDevice, ); assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "When all devices are lost, getDevicesInstances must return empty array." + "When all devices are lost, getDevicesInstances must return empty array.", ); assert.deepStrictEqual( devicesService.getDevices(), [], - "When all devices are lost, getDevices must return empty array." + "When all devices are lost, getDevices must return empty array.", ); }); @@ -818,22 +819,22 @@ describe("devicesService", () => { assert.deepStrictEqual( devicesService.getDeviceInstances(), [], - "Initially getDevicesInstances must return empty array." + "Initially getDevicesInstances must return empty array.", ); assert.deepStrictEqual( devicesService.getDevices(), [], - "Initially getDevices must return empty array." + "Initially getDevices must return empty array.", ); const tempDevice = { deviceInfo: { identifier: "temp-device" } }; androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - tempDevice + tempDevice, ); assert.deepStrictEqual(devicesService.getDeviceInstances(), [ androidDevice, @@ -846,7 +847,7 @@ describe("devicesService", () => { androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - tempDevice + tempDevice, ); assert.deepStrictEqual(devicesService.getDeviceInstances(), [ androidDevice, @@ -861,11 +862,11 @@ describe("devicesService", () => { beforeEach(() => { androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); }); @@ -879,7 +880,7 @@ describe("devicesService", () => { deviceIdentifiers, appId, "cordova", - "" + "", ); assert.isTrue(results.length > 0); @@ -889,7 +890,7 @@ describe("devicesService", () => { assert.deepStrictEqual(realResult.appIdentifier, appId); assert.deepStrictEqual( realResult.deviceIdentifier, - deviceIdentifiers[index] + deviceIdentifiers[index], ); } }); @@ -899,11 +900,11 @@ describe("devicesService", () => { [androidDevice.deviceInfo.identifier, iOSDevice.deviceInfo.identifier], "com.telerik.unitTest3", "cordova", - "" + "", ); assert.isTrue(results.length > 0); const isInstalledOnDevices = (await Promise.all(results)).map( - (r) => r.isInstalled + (r) => r.isInstalled, ); assert.deepStrictEqual(isInstalledOnDevices, [true, false]); }); @@ -913,13 +914,13 @@ describe("devicesService", () => { ["invalidDeviceId", iOSDevice.deviceInfo.identifier], "com.telerik.unitTest1", "cordova", - "" + "", ); const expectedErrorMessage = getErrorMessage( testInjector, "NotFoundDeviceByIdentifierErrorMessageWithIdentifier", - "invalidDeviceId" + "invalidDeviceId", ); await assert.isRejected(Promise.all(results), expectedErrorMessage); @@ -929,12 +930,12 @@ describe("devicesService", () => { if (error) { assert.isTrue( error.message.indexOf("invalidDeviceId") !== -1, - "The message must contain the id of the invalid device." + "The message must contain the id of the invalid device.", ); } else { assert.isTrue( promiseResult.result.isInstalled, - "The app is installed on iOS Device, so we must return true." + "The app is installed on iOS Device, so we must return true.", ); } }); @@ -962,8 +963,8 @@ describe("devicesService", () => { "com.telerik.unitTest2", "com.telerik.unitTest3", ], - packageName - ) + packageName, + ), ), }, }; @@ -972,11 +973,11 @@ describe("devicesService", () => { const assertAllMethodsResults = async (deviceId: string) => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await devicesService.initialize({ platform: "android", @@ -986,11 +987,11 @@ describe("devicesService", () => { assert.deepStrictEqual(devicesService.deviceCount, 1); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - tempDevice + tempDevice, ); assert.isTrue( devicesService.hasDevices, - "After emitting and initializing, hasDevices must be true" + "After emitting and initializing, hasDevices must be true", ); assert.deepStrictEqual(devicesService.getDeviceInstances(), [ androidDevice, @@ -1008,7 +1009,7 @@ describe("devicesService", () => { assert.deepStrictEqual( counter, 1, - "The action must be executed on only one device." + "The action must be executed on only one device.", ); counter = 0; await devicesService.execute( @@ -1016,12 +1017,12 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => false + () => false, ); assert.deepStrictEqual( counter, 0, - "The action must not be executed when canExecute returns false." + "The action must not be executed when canExecute returns false.", ); counter = 0; await devicesService.execute( @@ -1029,20 +1030,20 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => true + () => true, ); assert.deepStrictEqual( counter, 1, - "The action must be executed on only one device." + "The action must be executed on only one device.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - androidDevice + androidDevice, ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - tempDevice + tempDevice, ); counter = 0; await devicesService.execute( @@ -1051,12 +1052,12 @@ describe("devicesService", () => { return Promise.resolve(); }, () => true, - { allowNoDevices: true } + { allowNoDevices: true }, ); assert.deepStrictEqual( counter, 0, - "The action must not be executed when there are no devices." + "The action must not be executed when there are no devices.", ); assert.isTrue(logger.output.indexOf(constants.ERROR_NO_DEVICES) !== -1); }; @@ -1087,11 +1088,11 @@ describe("devicesService", () => { const expectedErrorMessage = getErrorMessage( testInjector, "NotFoundDeviceByIndexErrorMessage", - "-2" + "-2", ); await assert.isRejected( devicesService.initialize({ platform: "android", deviceId: "-1" }), - expectedErrorMessage + expectedErrorMessage, ); }); @@ -1099,11 +1100,11 @@ describe("devicesService", () => { const expectedErrorMessage = getErrorMessage( testInjector, "NotFoundDeviceByIndexErrorMessage", - "99" + "99", ); await assert.isRejected( devicesService.initialize({ platform: "android", deviceId: "100" }), - expectedErrorMessage + expectedErrorMessage, ); }); @@ -1123,7 +1124,7 @@ describe("devicesService", () => { }; iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); const hostInfo = testInjector.resolve("hostInfo"); hostInfo.isDarwin = true; @@ -1143,7 +1144,7 @@ describe("devicesService", () => { }; iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); await devicesService.initialize({ platform: "ios", @@ -1184,42 +1185,42 @@ describe("devicesService", () => { it("when initialize is called with platform and deviceId and such device cannot be found", async () => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); const expectedErrorMessage = getErrorMessage( testInjector, "NotFoundDeviceByIdentifierErrorMessageWithIdentifier", - androidDevice.deviceInfo.identifier + androidDevice.deviceInfo.identifier, ); await assert.isRejected( devicesService.initialize({ platform: "android", deviceId: androidDevice.deviceInfo.identifier, }), - expectedErrorMessage + expectedErrorMessage, ); }); it("when initialize is called with platform and deviceId and device's platform is different", async () => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await assert.isRejected( devicesService.initialize({ platform: "ios", deviceId: androidDevice.deviceInfo.identifier, }), - constants.ERROR_CANNOT_RESOLVE_DEVICE + constants.ERROR_CANNOT_RESOLVE_DEVICE, ); }); @@ -1227,26 +1228,26 @@ describe("devicesService", () => { const assertAllMethodsResults = async (deviceId: string) => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await devicesService.initialize({ deviceId: deviceId }); assert.deepStrictEqual(devicesService.platform, "android"); assert.deepStrictEqual(devicesService.deviceCount, 1); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - tempDevice + tempDevice, ); iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); assert.isTrue( devicesService.hasDevices, - "After emitting and initializing, hasDevices must be true" + "After emitting and initializing, hasDevices must be true", ); assert.deepStrictEqual(devicesService.getDeviceInstances(), [ androidDevice, @@ -1267,7 +1268,7 @@ describe("devicesService", () => { assert.deepStrictEqual( counter, 1, - "The action must be executed on only one device." + "The action must be executed on only one device.", ); counter = 0; await devicesService.execute( @@ -1275,12 +1276,12 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => false + () => false, ); assert.deepStrictEqual( counter, 0, - "The action must not be executed when canExecute returns false." + "The action must not be executed when canExecute returns false.", ); counter = 0; await devicesService.execute( @@ -1288,24 +1289,24 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => true + () => true, ); assert.deepStrictEqual( counter, 1, - "The action must be executed on only one device." + "The action must be executed on only one device.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - androidDevice + androidDevice, ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - tempDevice + tempDevice, ); iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - iOSDevice + iOSDevice, ); counter = 0; await devicesService.execute( @@ -1314,12 +1315,12 @@ describe("devicesService", () => { return Promise.resolve(); }, () => true, - { allowNoDevices: true } + { allowNoDevices: true }, ); assert.deepStrictEqual( counter, 0, - "The action must not be executed when there are no devices." + "The action must not be executed when there are no devices.", ); assert.isTrue(logger.output.indexOf(constants.ERROR_NO_DEVICES) !== -1); }; @@ -1336,11 +1337,11 @@ describe("devicesService", () => { const expectedErrorMessage = getErrorMessage( testInjector, "NotFoundDeviceByIndexErrorMessage", - "-2" + "-2", ); await assert.isRejected( devicesService.initialize({ deviceId: "-1" }), - expectedErrorMessage + expectedErrorMessage, ); }); @@ -1348,11 +1349,11 @@ describe("devicesService", () => { const expectedErrorMessage = getErrorMessage( testInjector, "NotFoundDeviceByIndexErrorMessage", - "99" + "99", ); await assert.isRejected( devicesService.initialize({ deviceId: "100" }), - expectedErrorMessage + expectedErrorMessage, ); }); @@ -1372,7 +1373,7 @@ describe("devicesService", () => { }; iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); await devicesService.initialize({ deviceId: iOSDevice.deviceInfo.identifier, @@ -1386,7 +1387,7 @@ describe("devicesService", () => { testInjector.resolve("hostInfo").isDarwin = false; await assert.isRejected( devicesService.initialize({ platform: "ios" }), - constants.ERROR_NO_DEVICES_CANT_USE_IOS_SIMULATOR + constants.ERROR_NO_DEVICES_CANT_USE_IOS_SIMULATOR, ); }); @@ -1394,7 +1395,7 @@ describe("devicesService", () => { testInjector.resolve("hostInfo").isDarwin = false; await assert.isRejected( devicesService.initialize({ platform: "ios" }), - constants.ERROR_NO_DEVICES_CANT_USE_IOS_SIMULATOR + constants.ERROR_NO_DEVICES_CANT_USE_IOS_SIMULATOR, ); assert.isFalse(devicesService.hasDevices, "MUST BE FALSE!!!"); }); @@ -1404,7 +1405,7 @@ describe("devicesService", () => { testInjector.resolve("hostInfo").isDarwin = true; iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); await devicesService.initialize({ platform: "ios", emulator: true }); let deviceIdentifier: string; @@ -1417,11 +1418,11 @@ describe("devicesService", () => { assert.deepStrictEqual( counter, 1, - "The action must be executed on only one device. ASAAS" + "The action must be executed on only one device. ASAAS", ); assert.deepStrictEqual( deviceIdentifier, - iOSSimulator.deviceInfo.identifier + iOSSimulator.deviceInfo.identifier, ); counter = 0; await devicesService.execute( @@ -1429,17 +1430,17 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => false + () => false, ); assert.deepStrictEqual( counter, 0, - "The action must not be executed when canExecute returns false." + "The action must not be executed when canExecute returns false.", ); counter = 0; iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - iOSDevice + iOSDevice, ); deviceIdentifier = null; await devicesService.execute((d: Mobile.IDevice) => { @@ -1450,11 +1451,11 @@ describe("devicesService", () => { assert.deepStrictEqual( counter, 1, - "The action must be executed on only one device." + "The action must be executed on only one device.", ); assert.deepStrictEqual( deviceIdentifier, - iOSSimulator.deviceInfo.identifier + iOSSimulator.deviceInfo.identifier, ); counter = 0; deviceIdentifier = null; @@ -1464,12 +1465,12 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => false + () => false, ); assert.deepStrictEqual( counter, 0, - "The action must not be executed when canExecute returns false." + "The action must not be executed when canExecute returns false.", ); assert.deepStrictEqual(deviceIdentifier, null); }); @@ -1477,22 +1478,22 @@ describe("devicesService", () => { it("all methods work as expected", async () => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await devicesService.initialize({ platform: "android" }); assert.deepStrictEqual(devicesService.platform, "android"); assert.deepStrictEqual(devicesService.deviceCount, 1); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - tempDevice + tempDevice, ); assert.isTrue( devicesService.hasDevices, - "After emitting and initializing, hasDevices must be true" + "After emitting and initializing, hasDevices must be true", ); assert.deepStrictEqual(devicesService.getDeviceInstances(), [ androidDevice, @@ -1511,7 +1512,7 @@ describe("devicesService", () => { assert.deepStrictEqual( counter, 2, - "The action must be executed on two devices." + "The action must be executed on two devices.", ); counter = 0; await devicesService.execute( @@ -1519,12 +1520,12 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => false + () => false, ); assert.deepStrictEqual( counter, 0, - "The action must not be executed when canExecute returns false." + "The action must not be executed when canExecute returns false.", ); counter = 0; await devicesService.execute( @@ -1532,16 +1533,16 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => true + () => true, ); assert.deepStrictEqual( counter, 2, - "The action must be executed on two devices." + "The action must be executed on two devices.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - androidDevice + androidDevice, ); counter = 0; await devicesService.execute( @@ -1549,17 +1550,17 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => true + () => true, ); assert.deepStrictEqual( counter, 1, - "The action must be executed on only one device." + "The action must be executed on only one device.", ); counter = 0; androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - tempDevice + tempDevice, ); await devicesService.execute( () => { @@ -1567,12 +1568,12 @@ describe("devicesService", () => { return Promise.resolve(); }, () => true, - { allowNoDevices: true } + { allowNoDevices: true }, ); assert.deepStrictEqual( counter, 0, - "The action must not be executed when there are no devices." + "The action must not be executed when there are no devices.", ); assert.isTrue(logger.output.indexOf(constants.ERROR_NO_DEVICES) !== -1); assert.isFalse(androidEmulatorServices.isStartEmulatorCalled); @@ -1583,26 +1584,26 @@ describe("devicesService", () => { mockSetInterval(); assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); await devicesService.initialize({ skipInferPlatform: true }); assert.deepStrictEqual(devicesService.platform, undefined); assert.deepStrictEqual(devicesService.deviceCount, 2); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - tempDevice + tempDevice, ); assert.isTrue( devicesService.hasDevices, - "After emitting and initializing, hasDevices must be true" + "After emitting and initializing, hasDevices must be true", ); assert.deepStrictEqual(devicesService.getDeviceInstances(), [ androidDevice, @@ -1623,7 +1624,7 @@ describe("devicesService", () => { assert.deepStrictEqual( counter, 3, - "The action must be executed on two devices." + "The action must be executed on two devices.", ); counter = 0; await devicesService.execute( @@ -1631,12 +1632,12 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => false + () => false, ); assert.deepStrictEqual( counter, 0, - "The action must not be executed when canExecute returns false." + "The action must not be executed when canExecute returns false.", ); counter = 0; await devicesService.execute( @@ -1644,16 +1645,16 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => true + () => true, ); assert.deepStrictEqual( counter, 3, - "The action must be executed on three devices." + "The action must be executed on three devices.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - androidDevice + androidDevice, ); counter = 0; await devicesService.execute( @@ -1661,16 +1662,16 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => true + () => true, ); assert.deepStrictEqual( counter, 2, - "The action must be executed on two devices." + "The action must be executed on two devices.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - tempDevice + tempDevice, ); iOSDeviceDiscovery.emit(DeviceDiscoveryEventNames.DEVICE_LOST, iOSDevice); counter = 0; @@ -1680,12 +1681,12 @@ describe("devicesService", () => { return Promise.resolve(); }, () => true, - { allowNoDevices: true } + { allowNoDevices: true }, ); assert.deepStrictEqual( counter, 0, - "The action must not be executed when there are no devices." + "The action must not be executed when there are no devices.", ); assert.isTrue(logger.output.indexOf(constants.ERROR_NO_DEVICES) !== -1); }); @@ -1693,22 +1694,22 @@ describe("devicesService", () => { it("when parameters are not passed and devices with same platform are detected", async () => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await devicesService.initialize(); assert.deepStrictEqual(devicesService.platform, "android"); assert.deepStrictEqual(devicesService.deviceCount, 1); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - tempDevice + tempDevice, ); assert.isTrue( devicesService.hasDevices, - "After emitting and initializing, hasDevices must be true" + "After emitting and initializing, hasDevices must be true", ); assert.deepStrictEqual(devicesService.getDeviceInstances(), [ androidDevice, @@ -1727,7 +1728,7 @@ describe("devicesService", () => { assert.deepStrictEqual( counter, 2, - "The action must be executed on two devices." + "The action must be executed on two devices.", ); counter = 0; await devicesService.execute( @@ -1735,12 +1736,12 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => false + () => false, ); assert.deepStrictEqual( counter, 0, - "The action must not be executed when canExecute returns false." + "The action must not be executed when canExecute returns false.", ); counter = 0; await devicesService.execute( @@ -1748,16 +1749,16 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => true + () => true, ); assert.deepStrictEqual( counter, 2, - "The action must be executed on two devices." + "The action must be executed on two devices.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - androidDevice + androidDevice, ); counter = 0; await devicesService.execute( @@ -1765,16 +1766,16 @@ describe("devicesService", () => { counter++; return Promise.resolve(); }, - () => true + () => true, ); assert.deepStrictEqual( counter, 1, - "The action must be executed on only one device." + "The action must be executed on only one device.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_LOST, - tempDevice + tempDevice, ); counter = 0; await devicesService.execute( @@ -1783,12 +1784,12 @@ describe("devicesService", () => { return Promise.resolve(); }, () => true, - { allowNoDevices: true } + { allowNoDevices: true }, ); assert.deepStrictEqual( counter, 0, - "The action must not be executed when there are no devices." + "The action must not be executed when there are no devices.", ); assert.isTrue(logger.output.indexOf(constants.ERROR_NO_DEVICES) !== -1); }); @@ -1796,30 +1797,30 @@ describe("devicesService", () => { it("when parameters are not passed and devices with different platforms are detected initialize should throw", async () => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); await assert.isRejected( devicesService.initialize(), - "Multiple device platforms detected (android and ios). Specify platform or device on command line." + "Multiple device platforms detected (android and ios). Specify platform or device on command line.", ); }); it("caches execution result and does not execute next time when called", async () => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await devicesService.initialize({ platform: "android" }); assert.deepStrictEqual(devicesService.platform, "android"); @@ -1839,45 +1840,45 @@ describe("devicesService", () => { it("throws when iOS platform is specified and iOS device identifier is passed", async () => { iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); await assert.isRejected( devicesService.initialize({ platform: "ios", deviceId: iOSDevice.deviceInfo.identifier, }), - constants.ERROR_CANT_USE_SIMULATOR + constants.ERROR_CANT_USE_SIMULATOR, ); }); it("throws when iOS device identifier is passed", async () => { iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); await assert.isRejected( devicesService.initialize({ deviceId: iOSDevice.deviceInfo.identifier, }), - constants.ERROR_CANT_USE_SIMULATOR + constants.ERROR_CANT_USE_SIMULATOR, ); }); it("throws when iOS platform is specified", async () => { await assert.isRejected( devicesService.initialize({ platform: "ios" }), - constants.ERROR_NO_DEVICES_CANT_USE_IOS_SIMULATOR + constants.ERROR_NO_DEVICES_CANT_USE_IOS_SIMULATOR, ); }); it("throws when paramaters are not passed, but iOS device is detected", async () => { iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); await assert.isRejected( devicesService.initialize(), - constants.ERROR_CANT_USE_SIMULATOR + constants.ERROR_CANT_USE_SIMULATOR, ); }); @@ -1889,7 +1890,7 @@ describe("devicesService", () => { it("does not throw when Android platform is specified and Android device identifier is passed", async () => { androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await devicesService.initialize({ platform: "android", @@ -1909,7 +1910,7 @@ describe("devicesService", () => { it("when iOS platform is specified and iOS device identifier is passed", async () => { iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); await devicesService.initialize({ platform: "ios", @@ -1920,7 +1921,7 @@ describe("devicesService", () => { it("when iOS device identifier is passed", async () => { iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); await devicesService.initialize({ deviceId: iOSDevice.deviceInfo.identifier, @@ -1934,7 +1935,7 @@ describe("devicesService", () => { it("when paramaters are not passed, but iOS device is detected", async () => { iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); await devicesService.initialize(); }); @@ -1946,7 +1947,7 @@ describe("devicesService", () => { it("when iOS platform is specified and iOS simulator device identifier is passed", async () => { iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSSimulator + iOSSimulator, ); await devicesService.initialize({ platform: "ios", @@ -1957,7 +1958,7 @@ describe("devicesService", () => { it("when iOS simulator identifier is passed", async () => { iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSSimulator + iOSSimulator, ); await devicesService.initialize({ deviceId: iOSSimulator.deviceInfo.identifier, @@ -1967,7 +1968,7 @@ describe("devicesService", () => { it("when paramaters are not passed, but iOS simulator is detected", async () => { iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSSimulator + iOSSimulator, ); await devicesService.initialize(); }); @@ -1982,7 +1983,7 @@ describe("devicesService", () => { deviceLogProvider.setLogLevel = ( logLevel: string, - deviceIdentifier?: string + deviceIdentifier?: string, ) => { actualLogLevel = logLevel; actualDeviceIdentifier = deviceIdentifier; @@ -2005,11 +2006,11 @@ describe("devicesService", () => { beforeEach(() => { androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); }); @@ -2019,14 +2020,14 @@ describe("devicesService", () => { "path", "packageName", "cordova", - "" + "", ); assert.isTrue(results.length > 0); _.each(await Promise.all(results), (deployOnDevicesResult) => { const realResult = deployOnDevicesResult; assert.isTrue( realResult === undefined, - "On success, undefined should be returned." + "On success, undefined should be returned.", ); }); }); @@ -2037,12 +2038,12 @@ describe("devicesService", () => { "path", "packageName", "cordova", - "" + "", ); const expectedErrorMessage = getErrorMessage( testInjector, "NotFoundDeviceByIdentifierErrorMessageWithIdentifier", - "invalidDeviceId" + "invalidDeviceId", ); await assert.isRejected(Promise.all(results), expectedErrorMessage); const realResults = await getPromisesResults(results); @@ -2051,12 +2052,12 @@ describe("devicesService", () => { if (error) { assert.isTrue( error.message.indexOf("invalidDeviceId") !== -1, - "The message must contain the id of the invalid device." + "The message must contain the id of the invalid device.", ); } else { assert.isTrue( singlePromiseResult.result === undefined, - "On success, undefined should be returned." + "On success, undefined should be returned.", ); } }); @@ -2067,38 +2068,38 @@ describe("devicesService", () => { it("returns empty array when there are no devices", () => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); assert.deepStrictEqual( devicesService.getDevicesForPlatform("android"), - [] + [], ); assert.deepStrictEqual(devicesService.getDevicesForPlatform("ios"), []); assert.deepStrictEqual( devicesService.getDevicesForPlatform("invalid platform"), - [] + [], ); }); it("returns correct results when devices with different platforms are detected", () => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); const tempDeviceInstance = { deviceInfo: { identifier: "temp-device", platform: "android" }, }; androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - tempDeviceInstance + tempDeviceInstance, ); assert.deepStrictEqual(devicesService.getDevicesForPlatform("android"), [ androidDevice, @@ -2109,29 +2110,29 @@ describe("devicesService", () => { ]); assert.deepStrictEqual( devicesService.getDevicesForPlatform("invalid platform"), - [] + [], ); }); it("returns correct results when devices with different platforms are detected, assert case insensitivity", () => { assert.isFalse( devicesService.hasDevices, - "Initially devicesService hasDevices must be false." + "Initially devicesService hasDevices must be false.", ); androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); const tempDeviceInstance = { deviceInfo: { identifier: "temp-device", platform: "AndroId" }, }; androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - tempDeviceInstance + tempDeviceInstance, ); assert.deepStrictEqual(devicesService.getDevicesForPlatform("android"), [ androidDevice, @@ -2142,7 +2143,7 @@ describe("devicesService", () => { ]); assert.deepStrictEqual( devicesService.getDevicesForPlatform("invalid platform"), - [] + [], ); assert.deepStrictEqual(devicesService.getDevicesForPlatform("AnDroID"), [ @@ -2154,7 +2155,7 @@ describe("devicesService", () => { ]); assert.deepStrictEqual( devicesService.getDevicesForPlatform("inValid PlatForm"), - [] + [], ); assert.deepStrictEqual(devicesService.getDevicesForPlatform("ANDROID"), [ @@ -2166,7 +2167,7 @@ describe("devicesService", () => { ]); assert.deepStrictEqual( devicesService.getDevicesForPlatform("INVALID PLATFORM"), - [] + [], ); }); }); @@ -2181,7 +2182,7 @@ describe("devicesService", () => { devicesService.isAndroidDevice({ deviceInfo: { platform: "android" }, isEmulator: true, - }) + }), ); }); @@ -2189,12 +2190,12 @@ describe("devicesService", () => { assert.isTrue( devicesService.isAndroidDevice({ deviceInfo: { platform: "aNdRoId" }, - }) + }), ); assert.isTrue( devicesService.isAndroidDevice({ deviceInfo: { platform: "ANDROID" }, - }) + }), ); }); @@ -2207,7 +2208,7 @@ describe("devicesService", () => { assert.isFalse( devicesService.isAndroidDevice({ deviceInfo: { platform: "invalid platform" }, - }) + }), ); }); }); @@ -2219,10 +2220,10 @@ describe("devicesService", () => { it("returns true when iOS device is passed, assert case insensitivity", () => { assert.isTrue( - devicesService.isiOSDevice({ deviceInfo: { platform: "iOs" } }) + devicesService.isiOSDevice({ deviceInfo: { platform: "iOs" } }), ); assert.isTrue( - devicesService.isiOSDevice({ deviceInfo: { platform: "IOS" } }) + devicesService.isiOSDevice({ deviceInfo: { platform: "IOS" } }), ); }); @@ -2234,7 +2235,7 @@ describe("devicesService", () => { assert.isFalse( devicesService.isiOSDevice({ deviceInfo: { platform: "invalid platform" }, - }) + }), ); }); @@ -2253,13 +2254,13 @@ describe("devicesService", () => { devicesService.isiOSSimulator({ deviceInfo: { platform: "iOs" }, isEmulator: true, - }) + }), ); assert.isTrue( devicesService.isiOSSimulator({ deviceInfo: { platform: "IOS" }, isEmulator: true, - }) + }), ); }); @@ -2273,7 +2274,7 @@ describe("devicesService", () => { devicesService.isiOSSimulator({ deviceInfo: { platform: "android" }, isEmulator: true, - }) + }), ); }); @@ -2281,7 +2282,7 @@ describe("devicesService", () => { assert.isFalse( devicesService.isiOSSimulator({ deviceInfo: { platform: "invalid platform" }, - }) + }), ); }); }); @@ -2290,7 +2291,7 @@ describe("devicesService", () => { it("returns undefined when devicesService is not initialized", () => { assert.deepStrictEqual( devicesService.getDeviceByDeviceOption(), - undefined + undefined, ); }); @@ -2298,7 +2299,7 @@ describe("devicesService", () => { await devicesService.initialize({ platform: "android" }); assert.deepStrictEqual( devicesService.getDeviceByDeviceOption(), - undefined + undefined, ); }); @@ -2306,40 +2307,40 @@ describe("devicesService", () => { await devicesService.initialize({ skipInferPlatform: true }); assert.deepStrictEqual( devicesService.getDeviceByDeviceOption(), - undefined + undefined, ); }); it("returns deviceIdentifier when devicesService is initialized with deviceId only", async () => { androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await devicesService.initialize({ deviceId: androidDevice.deviceInfo.identifier, }); assert.deepStrictEqual( devicesService.getDeviceByDeviceOption(), - androidDevice + androidDevice, ); }); it("returns deviceIdentifier when devicesService is initialized with deviceId (passed as number)", async () => { androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await devicesService.initialize({ deviceId: "1" }); assert.deepStrictEqual( devicesService.getDeviceByDeviceOption(), - androidDevice + androidDevice, ); }); it("returns deviceIdentifier when devicesService is initialized with deviceId and platform", async () => { androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await devicesService.initialize({ deviceId: androidDevice.deviceInfo.identifier, @@ -2347,19 +2348,19 @@ describe("devicesService", () => { }); assert.deepStrictEqual( devicesService.getDeviceByDeviceOption(), - androidDevice + androidDevice, ); }); it("returns deviceIdentifier when devicesService is initialized with deviceId (passed as number) and platform", async () => { androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); await devicesService.initialize({ deviceId: "1", platform: "android" }); assert.deepStrictEqual( devicesService.getDeviceByDeviceOption(), - androidDevice + androidDevice, ); }); }); @@ -2448,7 +2449,7 @@ describe("devicesService", () => { "unhandledRejection", (reason: any, promise: Promise) => { hasUnhandledRejection = true; - } + }, ); devicesService.startDeviceDetectionInterval(); @@ -2462,7 +2463,7 @@ describe("devicesService", () => { beforeEach(() => { $androidDeviceDiscovery = testInjector.resolve( - "androidDeviceDiscovery" + "androidDeviceDiscovery", ); }); @@ -2477,7 +2478,7 @@ describe("devicesService", () => { mockSetInterval(); devicesService.startDeviceDetectionInterval(); await assertOnNextTick(() => - assert.isTrue(hasCheckedForAndroidDevices) + assert.isTrue(hasCheckedForAndroidDevices), ); }); @@ -2488,7 +2489,7 @@ describe("devicesService", () => { "unhandledRejection", (reason: any, promise: Promise) => { hasUnhandledRejection = true; - } + }, ); devicesService.startDeviceDetectionInterval(); @@ -2520,7 +2521,7 @@ describe("devicesService", () => { "unhandledRejection", (reason: any, promise: Promise) => { hasUnhandledRejection = true; - } + }, ); devicesService.startDeviceDetectionInterval(); @@ -2559,7 +2560,7 @@ describe("devicesService", () => { "unhandledRejection", (reason: any, promise: Promise) => { hasUnhandledRejection = true; - } + }, ); devicesService.startDeviceDetectionInterval(); @@ -2579,7 +2580,7 @@ describe("devicesService", () => { hasCheckedForIosAppUpdates = false; $iOSDeviceDiscovery = testInjector.resolve("iOSDeviceDiscovery"); $androidDeviceDiscovery = testInjector.resolve( - "androidDeviceDiscovery" + "androidDeviceDiscovery", ); androidDevice.applicationManager.checkForApplicationUpdates = @@ -2594,11 +2595,11 @@ describe("devicesService", () => { $androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); $iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); }); @@ -2618,7 +2619,7 @@ describe("devicesService", () => { devicesService.startDeviceDetectionInterval(); await assertOnNextTick(() => - assert.isTrue(hasCheckedForAndroidAppUpdates) + assert.isTrue(hasCheckedForAndroidAppUpdates), ); }); @@ -2703,7 +2704,7 @@ describe("devicesService", () => { deviceDiscoveries.deviceDiscoveriesThatThrow, (deviceDiscovery) => { deviceDiscovery.startLookingForDevices = throwErrorFunction; - } + }, ); await devicesService.detectCurrentlyAttachedDevices(); @@ -2711,7 +2712,7 @@ describe("devicesService", () => { assert.deepStrictEqual( workingDeviceDiscoveriesCalled.length, deviceDiscoveries.deviceDiscoveriesThatWork.length, - "We should have called startLookingForDevices for each of the device discoveries that work." + "We should have called startLookingForDevices for each of the device discoveries that work.", ); }; @@ -2773,7 +2774,7 @@ describe("devicesService", () => { $androidProcessService.mapAbstractToTcpPort = async ( deviceIdentifier: string, appIdentifier: string, - framework: string + framework: string, ): Promise => { actualDeviceIdentifier = deviceIdentifier; actualAppIdentifier = appIdentifier; @@ -2784,7 +2785,7 @@ describe("devicesService", () => { await devicesService.mapAbstractToTcpPort( expectedDeviceIdentifier, expectedAppIdentifier, - expectedFramework + expectedFramework, ); assert.deepStrictEqual(actualDeviceIdentifier, expectedDeviceIdentifier); @@ -2800,7 +2801,7 @@ describe("devicesService", () => { $androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); $iOSDeviceDiscovery.emit(DeviceDiscoveryEventNames.DEVICE_FOUND, iOSDevice); @@ -2852,7 +2853,7 @@ describe("devicesService", () => { assert.deepStrictEqual( debuggableApps, - _.concat(androidDebuggableApps, iosDebuggableApps) + _.concat(androidDebuggableApps, iosDebuggableApps), ); }); @@ -2884,13 +2885,13 @@ describe("devicesService", () => { $androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); }); it("should get the correct debuggable views.", async () => { androidDevice.applicationManager.getDebuggableAppViews = async ( - appIdentifiers: string[] + appIdentifiers: string[], ): Promise> => { const result: any = {}; result[appIdentifiers[0]] = debuggableViews; @@ -2899,7 +2900,7 @@ describe("devicesService", () => { const actualDebuggableViews = await devicesService.getDebuggableViews( androidDevice.deviceInfo.identifier, - "com.telerik.myapp" + "com.telerik.myapp", ); assert.deepStrictEqual(actualDebuggableViews, debuggableViews); @@ -2907,7 +2908,7 @@ describe("devicesService", () => { it("should return undefined if debuggable views are found for otheer app but not for the specified.", async () => { androidDevice.applicationManager.getDebuggableAppViews = async ( - appIdentifiers: string[] + appIdentifiers: string[], ): Promise> => { const result: any = {}; result["com.telerik.otherApp"] = debuggableViews; @@ -2916,7 +2917,7 @@ describe("devicesService", () => { const actualDebuggableViews = await devicesService.getDebuggableViews( androidDevice.deviceInfo.identifier, - "com.telerik.myapp" + "com.telerik.myapp", ); assert.deepStrictEqual(actualDebuggableViews, undefined); @@ -2927,11 +2928,11 @@ describe("devicesService", () => { beforeEach(() => { androidDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - androidDevice + androidDevice, ); iOSDeviceDiscovery.emit( DeviceDiscoveryEventNames.DEVICE_FOUND, - iOSDevice + iOSDevice, ); }); @@ -2942,18 +2943,18 @@ describe("devicesService", () => { const expectedErrorMessage = getErrorMessage( testInjector, "NotFoundDeviceByIdentifierErrorMessageWithIdentifier", - deviceId + deviceId, ); await assert.isRejected( devicesService.getInstalledApplications(deviceId), - expectedErrorMessage + expectedErrorMessage, ); }); }); it("returns installed applications", async () => { const actualResult = await devicesService.getInstalledApplications( - androidDevice.deviceInfo.identifier + androidDevice.deviceInfo.identifier, ); assert.deepStrictEqual(actualResult, [ "com.telerik.unitTest1", @@ -2971,7 +2972,7 @@ describe("devicesService", () => { onlyEmulators: true, deviceId: null, }), - DebugCommandErrors.UNABLE_TO_USE_FOR_DEVICE_AND_EMULATOR + DebugCommandErrors.UNABLE_TO_USE_FOR_DEVICE_AND_EMULATOR, ); }); @@ -2979,7 +2980,7 @@ describe("devicesService", () => { const deviceInstance = {}; const specifiedDeviceOption = "device1"; devicesService.getDevice = async ( - deviceOption: string + deviceOption: string, ): Promise => { if (deviceOption === specifiedDeviceOption) { return deviceInstance; @@ -2996,7 +2997,7 @@ describe("devicesService", () => { const assertErrorIsThrown = async ( getDeviceInstancesResult: Mobile.IDevice[], - passedOptions?: { forDevice: boolean; emulator: boolean } + passedOptions?: { forDevice: boolean; emulator: boolean }, ) => { devicesService.getDeviceInstances = (): Mobile.IDevice[] => getDeviceInstancesResult; @@ -3008,7 +3009,7 @@ describe("devicesService", () => { onlyEmulators: passedOptions ? passedOptions.emulator : false, deviceId: null, }), - DebugCommandErrors.NO_DEVICES_EMULATORS_FOUND_FOR_OPTIONS + DebugCommandErrors.NO_DEVICES_EMULATORS_FOUND_FOR_OPTIONS, ); }; @@ -3052,7 +3053,7 @@ describe("devicesService", () => { { forDevice: false, emulator: true, - } + }, ); }); @@ -3070,7 +3071,7 @@ describe("devicesService", () => { { forDevice: true, emulator: false, - } + }, ); }); @@ -3149,7 +3150,7 @@ describe("devicesService", () => { const prompter = testInjector.resolve("prompter"); prompter.promptForChoice = async ( promptMessage: string, - choices: any[] + choices: any[], ): Promise => { choicesPassedToPrompter = choices; return choices[1]; @@ -3164,11 +3165,11 @@ describe("devicesService", () => { deviceInstance1, deviceInstance2, ].map( - (d) => `${d.deviceInfo.identifier} - ${d.deviceInfo.displayName}` + (d) => `${d.deviceInfo.identifier} - ${d.deviceInfo.displayName}`, ); assert.deepStrictEqual( choicesPassedToPrompter, - expectedChoicesPassedToPrompter + expectedChoicesPassedToPrompter, ); assert.deepStrictEqual(actualDeviceInstance, deviceInstance2); }); diff --git a/lib/common/utils.ts b/lib/common/utils.ts index 290e4c4346..edc2e78323 100644 --- a/lib/common/utils.ts +++ b/lib/common/utils.ts @@ -3,7 +3,10 @@ import { IUtils } from "./declarations"; import { injector } from "./yok"; export class Utils implements IUtils { - constructor(private $options: IOptions, private $logger: ILogger) {} + constructor( + private $options: IOptions, + private $logger: ILogger + ) {} public getParsedTimeout(defaultTimeout: number): number { let timeout = defaultTimeout; diff --git a/lib/common/verify-node-version.ts b/lib/common/verify-node-version.ts index 094a55d549..94f6513e0d 100644 --- a/lib/common/verify-node-version.ts +++ b/lib/common/verify-node-version.ts @@ -30,7 +30,7 @@ function getNodeVersionOpts(): INodeVersionOpts { supportedVersionsRange: supportedVersionsRange, cliName: cliName, nodeVer: nodeVer, - deprecatedVersions: deprecatedVersions, + deprecatedVersions: deprecatedVersions }; } @@ -101,7 +101,7 @@ export function getNodeWarning(): ISystemWarning { if (warningMessage) { nodeWarn = { message: warningMessage, - severity: SystemWarningsSeverity.medium, + severity: SystemWarningsSeverity.medium }; } } diff --git a/lib/common/yok.ts b/lib/common/yok.ts index cfadfaa888..d428c73ef4 100644 --- a/lib/common/yok.ts +++ b/lib/common/yok.ts @@ -117,7 +117,7 @@ export class Yok implements IInjector { } public publicApi: any = { - __modules__: {}, + __modules__: {} }; public requirePublic(names: any, file: string): void { @@ -138,7 +138,7 @@ export class Yok implements IInjector { Object.defineProperty(this.publicApi, name, { get: () => { return this.resolveInstance(name); - }, + } }); } @@ -147,7 +147,7 @@ export class Yok implements IInjector { get: () => { this.resolveInstance(name); return this.publicApi.__modules__[name]; - }, + } }); } @@ -168,7 +168,7 @@ export class Yok implements IInjector { ) ? relativePath : file, - shared: true, + shared: true }; if (!this.modules[name] || this.overrideAlreadyRequiredModule) { @@ -255,7 +255,7 @@ export class Yok implements IInjector { parentCommandName, finalSubCommandName ), - remainingArguments: finalRemainingArguments, + remainingArguments: finalRemainingArguments }; } } @@ -316,7 +316,7 @@ export class Yok implements IInjector { commandName, commandName === "help" ? [name] : commandArguments ); - }, + } }; }; diff --git a/lib/controllers/build-controller.ts b/lib/controllers/build-controller.ts index f5ebb1666c..a4eab97be5 100644 --- a/lib/controllers/build-controller.ts +++ b/lib/controllers/build-controller.ts @@ -7,7 +7,7 @@ import { IBuildController, IBuildArtifactsService, IBuildInfoFileService, - IBuildData, + IBuildData } from "../definitions/build"; import { IPlatformsDataService } from "../definitions/platform"; import { IAnalyticsService, IFileSystem } from "../common/declarations"; @@ -71,7 +71,7 @@ export class BuildController extends EventEmitter implements IBuildController { buildData.clean ? constants.BuildStates.Clean : constants.BuildStates.Incremental - }`, + }` }); if (buildData.clean) { @@ -83,7 +83,7 @@ export class BuildController extends EventEmitter implements IBuildController { const handler = (data: any) => { this.emit(constants.BUILD_OUTPUT_EVENT_NAME, data); this.$logger.info(data.data.toString(), { - [constants.LoggerConfigData.skipNewLine]: true, + [constants.LoggerConfigData.skipNewLine]: true }); }; @@ -165,9 +165,8 @@ export class BuildController extends EventEmitter implements IBuildController { return true; } - const validBuildOutputData = platformData.getValidBuildOutputData( - buildData - ); + const validBuildOutputData = + platformData.getValidBuildOutputData(buildData); const packages = this.$buildArtifactsService.getAllAppPackages( outputPath, validBuildOutputData @@ -176,9 +175,8 @@ export class BuildController extends EventEmitter implements IBuildController { return true; } - const prepareInfo = this.$projectChangesService.getPrepareInfo( - platformData - ); + const prepareInfo = + this.$projectChangesService.getPrepareInfo(platformData); const buildInfo = this.$buildInfoFileService.getLocalBuildInfo( platformData, buildData diff --git a/lib/controllers/debug-controller.ts b/lib/controllers/debug-controller.ts index 330906112c..beab6b84ce 100644 --- a/lib/controllers/debug-controller.ts +++ b/lib/controllers/debug-controller.ts @@ -9,7 +9,7 @@ import { CONNECTION_ERROR_EVENT_NAME, DebugTools, DEBUGGER_DETACHED_EVENT_NAME, - DEBUGGER_ATTACHED_EVENT_NAME, + DEBUGGER_ATTACHED_EVENT_NAME } from "../constants"; import { EventEmitter } from "events"; import { IProjectDataService } from "../definitions/project"; @@ -19,13 +19,13 @@ import { IDebugDataService, IDebugData, IDebugOptions, - IDebugResultInfo, + IDebugResultInfo } from "../definitions/debug"; import { IDebugInformation } from "../declarations"; import { IAnalyticsService, IDictionary, - IErrors, + IErrors } from "../common/declarations"; import { IInjector } from "../common/definitions/yok"; import { injector } from "../common/yok"; @@ -76,7 +76,7 @@ export class DebugController extends EventEmitter implements IDebugController { options.inspector ? DebugTools.Inspector : DebugTools.Chrome, - projectDir: debugData.projectDir, + projectDir: debugData.projectDir }); if ( @@ -125,9 +125,8 @@ export class DebugController extends EventEmitter implements IDebugController { const { deviceIdentifiers, projectDir } = disableDebuggingData; for (const deviceIdentifier of deviceIdentifiers) { - const liveSyncProcessInfo = this.$liveSyncProcessDataService.getPersistedData( - projectDir - ); + const liveSyncProcessInfo = + this.$liveSyncProcessDataService.getPersistedData(projectDir); if (liveSyncProcessInfo.currentSyncAction) { await liveSyncProcessInfo.currentSyncAction; } @@ -174,7 +173,7 @@ export class DebugController extends EventEmitter implements IDebugController { } else { attachDebuggerData.debugOptions = { chrome: true, - start: true, + start: true }; } @@ -215,16 +214,15 @@ export class DebugController extends EventEmitter implements IDebugController { deviceDescriptor.debuggingEnabled = true; deviceDescriptor.debugOptions = debugOptions; - const currentDeviceInstance = this.$devicesService.getDeviceByIdentifier( - deviceIdentifier - ); + const currentDeviceInstance = + this.$devicesService.getDeviceByIdentifier(deviceIdentifier); const attachDebuggerData: IAttachDebuggerData = { deviceIdentifier, isEmulator: currentDeviceInstance.isEmulator, outputPath: deviceDescriptor.buildData.outputPath, platform: currentDeviceInstance.deviceInfo.platform, projectDir, - debugOptions, + debugOptions }; let debugInformation: IDebugInformation; @@ -279,9 +277,8 @@ export class DebugController extends EventEmitter implements IDebugController { projectDir: string, deviceIdentifier: string ): ILiveSyncDeviceDescriptor { - const deviceDescriptors = this.$liveSyncProcessDataService.getDeviceDescriptors( - projectDir - ); + const deviceDescriptors = + this.$liveSyncProcessDataService.getDeviceDescriptors(projectDir); const currentDeviceDescriptor = _.find( deviceDescriptors, (d) => d.identifier === deviceIdentifier @@ -294,13 +291,11 @@ export class DebugController extends EventEmitter implements IDebugController { if (!this._platformDebugServices[device.deviceInfo.identifier]) { const devicePlatform = device.deviceInfo.platform; if (this.$mobileHelper.isiOSPlatform(devicePlatform)) { - this._platformDebugServices[ - device.deviceInfo.identifier - ] = this.$injector.resolve("iOSDeviceDebugService", { device }); + this._platformDebugServices[device.deviceInfo.identifier] = + this.$injector.resolve("iOSDeviceDebugService", { device }); } else if (this.$mobileHelper.isAndroidPlatform(devicePlatform)) { - this._platformDebugServices[ - device.deviceInfo.identifier - ] = this.$injector.resolve("androidDeviceDebugService", { device }); + this._platformDebugServices[device.deviceInfo.identifier] = + this.$injector.resolve("androidDeviceDebugService", { device }); } else { this.$errors.fail( DebugCommandErrors.UNSUPPORTED_DEVICE_OS_FOR_DEBUGGING @@ -334,7 +329,7 @@ export class DebugController extends EventEmitter implements IDebugController { const debugInfo: IDebugInformation = { url: debugResultInfo.debugUrl, port: 0, - deviceIdentifier, + deviceIdentifier }; if (debugResultInfo.debugUrl) { @@ -354,9 +349,8 @@ export class DebugController extends EventEmitter implements IDebugController { deviceIdentifier: string, debugOptions: IDebugOptions ): Promise { - const liveSyncProcessInfo = this.$liveSyncProcessDataService.getPersistedData( - projectDir - ); + const liveSyncProcessInfo = + this.$liveSyncProcessDataService.getPersistedData(projectDir); if (liveSyncProcessInfo && liveSyncProcessInfo.currentSyncAction) { await liveSyncProcessInfo.currentSyncAction; } diff --git a/lib/controllers/deploy-controller.ts b/lib/controllers/deploy-controller.ts index beea13ef08..8c11463749 100644 --- a/lib/controllers/deploy-controller.ts +++ b/lib/controllers/deploy-controller.ts @@ -19,8 +19,8 @@ export class DeployController { const prepareData = { ...deviceDescriptor.buildData, nativePrepare: { - skipNativePrepare: !!deviceDescriptor.skipNativePrepare, - }, + skipNativePrepare: !!deviceDescriptor.skipNativePrepare + } }; await this.$prepareController.prepare(prepareData); const packageFilePath = await deviceDescriptor.buildAction(); diff --git a/lib/controllers/migrate-controller.ts b/lib/controllers/migrate-controller.ts index d6ee4b9c5f..8672c9572f 100644 --- a/lib/controllers/migrate-controller.ts +++ b/lib/controllers/migrate-controller.ts @@ -13,19 +13,19 @@ import { IProjectCleanupService, IProjectConfigService, IProjectData, - IProjectDataService, + IProjectDataService } from "../definitions/project"; import { IDependencyVersion, IMigrateController, IMigrationData, - IMigrationDependency, + IMigrationDependency } from "../definitions/migrate"; import { IOptions, IPackageInstallationManager, IPackageManager, - IPlatformCommandHelper, + IPlatformCommandHelper } from "../declarations"; import { IPlatformsDataService } from "../definitions/platform"; import { IPluginsService } from "../definitions/plugins"; @@ -34,7 +34,7 @@ import { IErrors, IFileSystem, IResourceLoader, - ISettingsService, + ISettingsService } from "../common/declarations"; import { IInjector } from "../common/definitions/yok"; import { injector } from "../common/yok"; @@ -44,7 +44,7 @@ import * as temp from "temp"; import { color } from "../color"; import { ITerminalSpinner, - ITerminalSpinnerService, + ITerminalSpinnerService } from "../definitions/terminal-spinner-service"; // const wait: (ms: number) => Promise = (ms: number = 1000) => @@ -98,7 +98,7 @@ export class MigrateController constants.PACKAGE_LOCK_JSON_FILE_NAME, constants.TSCCONFIG_TNS_JSON_NAME, constants.KARMA_CONFIG_NAME, - constants.CONFIG_NS_FILE_NAME, + constants.CONFIG_NS_FILE_NAME ]; private spinner: ITerminalSpinner; @@ -113,7 +113,7 @@ export class MigrateController `Migration cache path is: ${shouldMigrateCacheFilePath}` ); return this.$injector.resolve("jsonFileSettingsService", { - jsonFileSettingsPath: shouldMigrateCacheFilePath, + jsonFileSettingsPath: shouldMigrateCacheFilePath }); } @@ -122,27 +122,27 @@ export class MigrateController packageName: "@nativescript/core", minVersion: "6.5.0", desiredVersion: "~8.8.0", - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "tns-core-modules", - shouldRemove: true, + shouldRemove: true }, { packageName: "@nativescript/types", minVersion: "7.0.0", desiredVersion: "~8.8.0", - isDev: true, + isDev: true }, { packageName: "tns-platform-declarations", replaceWith: "@nativescript/types", minVersion: "6.5.0", - isDev: true, + isDev: true }, { packageName: "tns-core-modules-widgets", - shouldRemove: true, + shouldRemove: true }, { packageName: "nativescript-dev-webpack", @@ -152,14 +152,14 @@ export class MigrateController async shouldMigrateAction() { return true; }, - migrateAction: this.migrateWebpack.bind(this), + migrateAction: this.migrateWebpack.bind(this) }, { packageName: "@nativescript/webpack", minVersion: "3.0.0", desiredVersion: "~5.0.0", shouldAddIfMissing: true, - isDev: true, + isDev: true }, { packageName: "nativescript-vue", @@ -180,12 +180,12 @@ export class MigrateController loose ); }, - migrateAction: this.migrateNativeScriptVue.bind(this), + migrateAction: this.migrateNativeScriptVue.bind(this) }, { packageName: "nativescript-angular", replaceWith: "@nativescript/angular", - minVersion: "10.0.0", + minVersion: "10.0.0" }, { packageName: "@nativescript/angular", @@ -206,7 +206,7 @@ export class MigrateController loose ); }, - migrateAction: this.migrateNativeScriptAngular.bind(this), + migrateAction: this.migrateNativeScriptAngular.bind(this) }, { packageName: "svelte-native", @@ -226,7 +226,7 @@ export class MigrateController loose ); }, - migrateAction: this.migrateNativeScriptSvelte.bind(this), + migrateAction: this.migrateNativeScriptSvelte.bind(this) }, { packageName: "nativescript-unit-test-runner", @@ -236,7 +236,7 @@ export class MigrateController async shouldMigrateAction() { return true; }, - migrateAction: this.migrateUnitTestRunner.bind(this), + migrateAction: this.migrateUnitTestRunner.bind(this) }, { packageName: "@nativescript/unit-test-runner", @@ -256,26 +256,26 @@ export class MigrateController loose ); }, - migrateAction: this.migrateUnitTestRunner.bind(this), + migrateAction: this.migrateUnitTestRunner.bind(this) }, { packageName: "typescript", isDev: true, minVersion: "3.7.0", - desiredVersion: "~5.4.0", + desiredVersion: "~5.4.0" }, { packageName: "node-sass", replaceWith: "sass", minVersion: "0.0.0", // ignore - isDev: true, + isDev: true // shouldRemove: true, }, { packageName: "sass", minVersion: "0.0.0", // ignore desiredVersion: "^1.49.9", - isDev: true, + isDev: true // shouldRemove: true, }, @@ -284,32 +284,32 @@ export class MigrateController packageName: "tns-ios", minVersion: "6.5.3", replaceWith: "@nativescript/ios", - isDev: true, + isDev: true }, { packageName: "tns-android", minVersion: "6.5.4", replaceWith: "@nativescript/android", - isDev: true, + isDev: true }, { packageName: "@nativescript/ios", minVersion: "6.5.3", desiredVersion: "~8.8.0", - isDev: true, + isDev: true }, { packageName: "@nativescript/android", minVersion: "7.0.0", desiredVersion: "~8.8.0", - isDev: true, - }, + isDev: true + } ]; public async shouldMigrate({ projectDir, platforms, - loose = false, + loose = false }: IMigrationData): Promise { const remainingPlatforms = []; @@ -340,7 +340,7 @@ export class MigrateController shouldMigrate = await this._shouldMigrate({ projectDir, platforms: remainingPlatforms, - loose, + loose }); this.$logger.trace( `Executed shouldMigrate for platforms: ${remainingPlatforms}. Result is: ${shouldMigrate}` @@ -360,12 +360,12 @@ export class MigrateController public async validate({ projectDir, platforms, - loose = true, + loose = true }: IMigrationData): Promise { const shouldMigrate = await this.shouldMigrate({ projectDir, platforms, - loose, + loose }); if (shouldMigrate) { this.$errors.fail( @@ -377,7 +377,7 @@ export class MigrateController public async migrate({ projectDir, platforms, - loose = false, + loose = false }: IMigrationData): Promise { this.spinner = this.$terminalSpinnerService.createSpinner(); const projectData = this.$projectDataService.getProjectData(projectDir); @@ -385,7 +385,7 @@ export class MigrateController this.$logger.trace("MigrationController.migrate called with", { projectDir, platforms, - loose: loose, + loose: loose }); // ensure in git repo and require --force if not (for safety) @@ -445,7 +445,7 @@ export class MigrateController const isAngular = this.hasDependency( { - packageName: "@nativescript/angular", + packageName: "@nativescript/angular" }, projectData ); @@ -464,7 +464,7 @@ export class MigrateController await this.migrateTSConfig({ tsConfigPath, isAngular, - polyfillsPath, + polyfillsPath }); this.spinner.succeed(`Updated ${color.yellow("tsconfig.json")}`); @@ -497,7 +497,7 @@ export class MigrateController private async _shouldMigrate({ projectDir, platforms, - loose, + loose }: IMigrationData): Promise { const isMigrate = _.get(this.$options, "argv._[0]") === "migrate"; const projectData = this.$projectDataService.getProjectData(projectDir); @@ -706,7 +706,7 @@ export class MigrateController const backup = this.$projectBackupService.getBackup("migration"); backup.addPaths([ ...MigrateController.pathsToBackup, - path.join(projectData.getAppDirectoryRelativePath(), "package.json"), + path.join(projectData.getAppDirectoryRelativePath(), "package.json") ]); try { @@ -723,7 +723,7 @@ export class MigrateController constants.HOOKS_DIR_NAME, constants.PLATFORMS_DIR_NAME, constants.NODE_MODULES_FOLDER_NAME, - constants.PACKAGE_LOCK_JSON_FILE_NAME, + constants.PACKAGE_LOCK_JSON_FILE_NAME ]); const { dependencies, devDependencies } = @@ -737,7 +737,7 @@ export class MigrateController if (!hasSchematics) { // clean tsconfig.tns.json if not in a shared project await this.$projectCleanupService.clean([ - constants.TSCCONFIG_TNS_JSON_NAME, + constants.TSCCONFIG_TNS_JSON_NAME ]); } } @@ -752,7 +752,7 @@ export class MigrateController nodir: true, absolute: false, cwd: projectData.appDirectoryPath, - withFileTypes: false, + withFileTypes: false }; const jsFiles = globSync("*.@(js|ts|js.map)", globOptions) as string[]; @@ -849,7 +849,7 @@ export class MigrateController const possibleAppPaths = [ path.resolve(projectDir, constants.SRC_DIR), - path.resolve(projectDir, constants.APP_FOLDER_NAME), + path.resolve(projectDir, constants.APP_FOLDER_NAME) ]; const appPath = possibleAppPaths.find((possiblePath) => @@ -875,7 +875,7 @@ export class MigrateController configData.appPath, constants.APP_RESOURCES_FOLDER_NAME ), - path.resolve(projectDir, constants.APP_RESOURCES_FOLDER_NAME), + path.resolve(projectDir, constants.APP_RESOURCES_FOLDER_NAME) ]; const appResourcesPath = possibleAppResourcesPaths.find((possiblePath) => @@ -1172,7 +1172,7 @@ export class MigrateController const karmaConf = _.template(karmaConfTemplate)({ frameworks, testFiles, - basePath: projectData.getAppDirectoryRelativePath(), + basePath: projectData.getAppDirectoryRelativePath() }); this.$fs.writeFile( path.join(projectData.projectDir, constants.KARMA_CONFIG_NAME), @@ -1184,38 +1184,38 @@ export class MigrateController const dependencies: IMigrationDependency[] = [ { packageName: "karma-webpack", - shouldRemove: true, + shouldRemove: true }, { packageName: "karma-jasmine", minVersion: "2.0.1", desiredVersion: "~4.0.1", - isDev: true, + isDev: true }, { packageName: "karma-mocha", minVersion: "1.3.0", desiredVersion: "~2.0.1", - isDev: true, + isDev: true }, { packageName: "karma-chai", minVersion: "0.1.0", desiredVersion: "~0.1.0", - isDev: true, + isDev: true }, { packageName: "karma-qunit", minVersion: "3.1.2", desiredVersion: "~4.1.2", - isDev: true, + isDev: true }, { packageName: "karma", minVersion: "4.1.0", desiredVersion: "~6.3.4", - isDev: true, - }, + isDev: true + } ]; return dependencies; @@ -1224,7 +1224,7 @@ export class MigrateController private async migrateTSConfig({ tsConfigPath, isAngular, - polyfillsPath, + polyfillsPath }: { tsConfigPath: string; isAngular: boolean; @@ -1242,7 +1242,7 @@ export class MigrateController configContents.compilerOptions.removeComments = false; configContents.compilerOptions.lib = [ - ...new Set([...(configContents.compilerOptions.lib || []), "ESNext"]), + ...new Set([...(configContents.compilerOptions.lib || []), "ESNext"]) ]; if (isAngular) { @@ -1251,8 +1251,8 @@ export class MigrateController configContents.files = [ ...new Set([ ...(configContents.files || []), - polyfillsPath ?? "./src/polyfills.ts", - ]), + polyfillsPath ?? "./src/polyfills.ts" + ]) ]; } } @@ -1274,7 +1274,7 @@ export class MigrateController const possiblePaths = [ `${appDirectoryPath}/polyfills.ts`, `./src/polyfills.ts`, - `./app/polyfills.ts`, + `./app/polyfills.ts` ].map((possiblePath) => path.resolve(projectDir, possiblePath)); let polyfillsPath = possiblePaths.find((possiblePath) => { @@ -1286,7 +1286,7 @@ export class MigrateController } const tempDir = temp.mkdirSync({ - prefix: "migrate-angular-polyfills", + prefix: "migrate-angular-polyfills" }); // get from default angular template @@ -1317,61 +1317,61 @@ export class MigrateController packageName: "@angular/animations", minVersion, desiredVersion, - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "@angular/common", minVersion, desiredVersion, - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "@angular/compiler", minVersion, desiredVersion, - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "@angular/core", minVersion, desiredVersion, - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "@angular/forms", minVersion, desiredVersion, - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "@angular/platform-browser", minVersion, desiredVersion, - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "@angular/platform-browser-dynamic", minVersion, desiredVersion, - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "@angular/router", minVersion, desiredVersion, - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "rxjs", minVersion: "6.6.0", desiredVersion: "~7.8.0", - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "zone.js", minVersion: "0.11.1", desiredVersion: "~0.14.0", - shouldAddIfMissing: true, + shouldAddIfMissing: true }, // devDependencies @@ -1379,26 +1379,26 @@ export class MigrateController packageName: "@angular/cli", minVersion, desiredVersion, - isDev: true, + isDev: true }, { packageName: "@angular/compiler-cli", minVersion, desiredVersion, - isDev: true, + isDev: true }, { packageName: "@ngtools/webpack", minVersion, desiredVersion, - isDev: true, + isDev: true }, { packageName: "@angular-devkit/build-angular", minVersion, desiredVersion, - isDev: true, - }, + isDev: true + } ]; return dependencies; @@ -1411,53 +1411,53 @@ export class MigrateController minVersion: "2.7.0", desiredVersion: "~2.9.3", isDev: true, - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "nativescript-vue-devtools", minVersion: "1.4.0", desiredVersion: "~1.5.1", - isDev: true, + isDev: true }, { packageName: "vue-loader", - shouldRemove: true, + shouldRemove: true }, { packageName: "babel-loader", - shouldRemove: true, + shouldRemove: true }, { packageName: "babel-traverse", - shouldRemove: true, + shouldRemove: true }, { packageName: "babel-types", - shouldRemove: true, + shouldRemove: true }, { packageName: "babylon", - shouldRemove: true, + shouldRemove: true }, { packageName: "@babel/core", - shouldRemove: true, + shouldRemove: true }, { packageName: "@babel/preset-env", - shouldRemove: true, + shouldRemove: true }, // remove any version of vue { packageName: "vue", - shouldRemove: true, + shouldRemove: true }, // add latest { packageName: "vue", desiredVersion: "2.6.12", - isDev: true, - }, + isDev: true + } ]; return dependencies; @@ -1470,34 +1470,34 @@ export class MigrateController minVersion: "0.9.0", desiredVersion: "~0.9.0", isDev: true, - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "svelte-native-preprocessor", minVersion: "0.2.0", desiredVersion: "~0.2.0", isDev: true, - shouldAddIfMissing: true, + shouldAddIfMissing: true }, { packageName: "svelte-loader", - shouldRemove: true, + shouldRemove: true }, { packageName: "svelte-loader-hot", - shouldRemove: true, + shouldRemove: true }, { packageName: "svelte", - shouldRemove: true, + shouldRemove: true }, { packageName: "svelte", minVersion: "3.24.1", desiredVersion: "3.24.1", shouldUseExactVersion: true, - isDev: true, - }, + isDev: true + } ]; return dependencies; @@ -1533,13 +1533,13 @@ export class MigrateController "webpack", "webpack-bundle-analyzer", "webpack-cli", - "webpack-sources", + "webpack-sources" ]; return webpackDependencies.map((dep) => { return { packageName: dep, - shouldRemove: true, + shouldRemove: true }; }); } @@ -1575,7 +1575,7 @@ export class MigrateController "--package", `${scopedWebpackPackage}@${resolvedVersion}`, "nativescript-webpack", - "init", + "init" ]); this.spinner.succeed( `Initialized new ${color.yellow("webpack.config.js")}` @@ -1611,7 +1611,7 @@ export class MigrateController `./app/main.js`, `./app/main.ts`, `./src/main.js`, - `./src/main.ts`, + `./src/main.ts` ].map((possibleMain) => path.resolve(projectDir, possibleMain)); let replacedMain = possibleMains.find((possibleMain) => { diff --git a/lib/controllers/platform-controller.ts b/lib/controllers/platform-controller.ts index 6e572bb149..b0a47c69b1 100644 --- a/lib/controllers/platform-controller.ts +++ b/lib/controllers/platform-controller.ts @@ -3,14 +3,14 @@ import * as path from "path"; import { IProjectDataService, IProjectData, - INativePrepare, + INativePrepare } from "../definitions/project"; import { IPlatformController, IAddPlatformService, IPlatformsDataService, IAddPlatformData, - IPlatformData, + IPlatformData } from "../definitions/platform"; import { IPackageInstallationManager } from "../declarations"; import { IFileSystem, IErrors } from "../common/declarations"; @@ -98,7 +98,7 @@ export class PlatformController implements IPlatformController { commentHeader, `appPath = ${appPath}`, `appResourcesPath = ${appResourcesPath}`, - "", + "" ].join("\n"); gradlePropertiesContents += dataToWrite; diff --git a/lib/controllers/prepare-controller.ts b/lib/controllers/prepare-controller.ts index fd29e995e4..30e87f6db5 100644 --- a/lib/controllers/prepare-controller.ts +++ b/lib/controllers/prepare-controller.ts @@ -1,4 +1,4 @@ -import * as choki from "chokidar"; +import { watch, ChokidarOptions, FSWatcher } from "chokidar"; import { EventEmitter } from "events"; import * as _ from "lodash"; import * as path from "path"; @@ -6,7 +6,7 @@ import { IAnalyticsService, IDictionary, IFileSystem, - IHooksService, + IHooksService } from "../common/declarations"; import { cache, performanceLog } from "../common/decorators"; import { hook } from "../common/helpers"; @@ -20,26 +20,26 @@ import { PREPARE_READY_EVENT_NAME, SupportedPlatform, TrackActionNames, - WEBPACK_COMPILATION_COMPLETE, + WEBPACK_COMPILATION_COMPLETE } from "../constants"; import { IOptions, IWatchIgnoreListService } from "../declarations"; import { INodeModulesDependenciesBuilder, IPlatformController, IPlatformData, - IPlatformsDataService, + IPlatformsDataService } from "../definitions/platform"; import { IPluginsService } from "../definitions/plugins"; import { IProjectConfigService, IProjectData, IProjectDataService, - IProjectService, + IProjectService } from "../definitions/project"; interface IPlatformWatcherData { hasWebpackCompilerProcess: boolean; - nativeFilesWatcher: choki.FSWatcher; + nativeFilesWatcher: FSWatcher; prepareArguments: { prepareData: IPrepareData; projectData: IProjectData; @@ -83,7 +83,7 @@ export class PrepareController extends EventEmitter { ); if (this.$mobileHelper.isAndroidPlatform(prepareData.platform)) { await this.$markingModeService.handleMarkingModeFullDeprecation({ - projectDir: projectData.projectDir, + projectDir: projectData.projectDir }); } @@ -190,7 +190,7 @@ export class PrepareController extends EventEmitter { ); result = { hasNativeChanges, - platform: prepareData.platform.toLowerCase(), + platform: prepareData.platform.toLowerCase() }; } @@ -232,8 +232,8 @@ export class PrepareController extends EventEmitter { prepareArguments: { platformData, projectData, - prepareData, - }, + prepareData + } }; } @@ -249,7 +249,7 @@ export class PrepareController extends EventEmitter { ); // -> start watcher + initial prepare const result = { platform: platformData.platformNameLowerCase, - hasNativeChanges, + hasNativeChanges }; const hasPersistedDataWithNativeChanges = this.persistedData.find( @@ -269,7 +269,7 @@ export class PrepareController extends EventEmitter { hasOnlyHotUpdateFiles: false, hasNativeChanges: result.hasNativeChanges, hmrData: null, - platform: platformData.platformNameLowerCase, + platform: platformData.platformNameLowerCase }); } @@ -353,18 +353,18 @@ export class PrepareController extends EventEmitter { const patterns = await this.getWatcherPatterns(platformData, projectData); - const watcherOptions: choki.WatchOptions = { + const watcherOptions: ChokidarOptions = { ignoreInitial: true, cwd: projectData.projectDir, awaitWriteFinish: { pollInterval: 100, - stabilityThreshold: 500, + stabilityThreshold: 500 }, - ignored: ["**/.*", ".*"], // hidden files + ignored: ["**/.*", ".*"] // hidden files }; - const watcher = choki - .watch(patterns, watcherOptions) - .on("all", async (event: string, filePath: string) => { + const watcher = watch(patterns, watcherOptions).on( + "all", + async (event: string, filePath: string) => { if (this.isFileWatcherPaused()) return; filePath = path.join(projectData.projectDir, filePath); if (this.$watchIgnoreListService.isFileInIgnoreList(filePath)) { @@ -378,10 +378,11 @@ export class PrepareController extends EventEmitter { hasOnlyHotUpdateFiles: false, hmrData: null, hasNativeChanges: true, - platform: platformData.platformNameLowerCase, + platform: platformData.platformNameLowerCase }); } - }); + } + ); this.watchersData[projectData.projectDir][ platformData.platformNameLowerCase @@ -420,7 +421,7 @@ export class PrepareController extends EventEmitter { path.join( projectData.getAppResourcesRelativeDirectoryPath(), platformData.normalizedPlatformName - ), + ) ] .concat(pluginsNativeDirectories) .concat(pluginsPackageJsonFiles); @@ -452,7 +453,7 @@ export class PrepareController extends EventEmitter { const packageData: any = { ..._.pick(projectData.packageJsonData, ["name"]), ...nsConfig, - main: "bundle", + main: "bundle" }; if ( @@ -544,7 +545,7 @@ export class PrepareController extends EventEmitter { await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: TrackActionNames.UsingRuntimeVersion, - additionalData: `${platform.toLowerCase()}${AnalyticsEventLabelDelimiter}${version}`, + additionalData: `${platform.toLowerCase()}${AnalyticsEventLabelDelimiter}${version}` }); } diff --git a/lib/controllers/run-controller.ts b/lib/controllers/run-controller.ts index b05805884b..806eca7d53 100644 --- a/lib/controllers/run-controller.ts +++ b/lib/controllers/run-controller.ts @@ -4,7 +4,7 @@ import { TrackActionNames, DEBUGGER_DETACHED_EVENT_NAME, RunOnDeviceEvents, - USER_INTERACTION_NEEDED_EVENT_NAME, + USER_INTERACTION_NEEDED_EVENT_NAME } from "../constants"; import { cache, performanceLog } from "../common/decorators"; import { EventEmitter } from "events"; @@ -19,7 +19,7 @@ import { IAnalyticsService, IErrors, IHooksService, - IDictionary, + IDictionary } from "../common/declarations"; import { IInjector } from "../common/definitions/yok"; import { injector } from "../common/yok"; @@ -163,7 +163,7 @@ export class RunController extends EventEmitter implements IRunController { !liveSyncProcessInfo.deviceDescriptors.length ) { if (liveSyncProcessInfo.timer) { - clearTimeout(liveSyncProcessInfo.timer); + clearTimeout(liveSyncProcessInfo.timer as unknown as number); } for (let k = 0; k < liveSyncProcessInfo.platforms.length; k++) { @@ -192,8 +192,8 @@ export class RunController extends EventEmitter implements IRunController { const projectData = this.$projectDataService.getProjectData(projectDir); await this.$hooksService.executeAfterHooks("watch", { hookArgs: { - projectData, - }, + projectData + } }); } else if ( liveSyncProcessInfo.currentSyncAction && @@ -207,7 +207,7 @@ export class RunController extends EventEmitter implements IRunController { this.emitCore(RunOnDeviceEvents.runOnDeviceStopped, { projectDir, deviceIdentifier, - keepProcessAlive: stopOptions?.keepProcessAlive, + keepProcessAlive: stopOptions?.keepProcessAlive }); }); @@ -238,7 +238,7 @@ export class RunController extends EventEmitter implements IRunController { liveSyncResultInfo, filesChangeEventData, deviceDescriptor - ) + ) : await this.refreshApplicationWithoutDebug( projectData, liveSyncResultInfo, @@ -246,7 +246,7 @@ export class RunController extends EventEmitter implements IRunController { deviceDescriptor, undefined, fullSyncAction - ); + ); const device = liveSyncResultInfo.deviceAppData.device; @@ -260,7 +260,7 @@ export class RunController extends EventEmitter implements IRunController { syncedFiles: liveSyncResultInfo.modifiedFilesData.map((m) => m.getLocalPath() ), - isFullSync: liveSyncResultInfo.isFullSync, + isFullSync: liveSyncResultInfo.isFullSync }); return result; @@ -284,7 +284,7 @@ export class RunController extends EventEmitter implements IRunController { deviceDescriptor, { shouldSkipEmitLiveSyncNotification: true, - shouldCheckDeveloperDiscImage: true, + shouldCheckDeveloperDiscImage: true } ); @@ -349,7 +349,7 @@ export class RunController extends EventEmitter implements IRunController { if (shouldRestart) { this.emit(DEBUGGER_DETACHED_EVENT_NAME, { deviceIdentifier: - liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier, + liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier }); await platformLiveSyncService.restartApplication( projectData, @@ -377,7 +377,7 @@ export class RunController extends EventEmitter implements IRunController { projectData.projectIdentifiers[ device.deviceInfo.platform.toLowerCase() ], - notification: msg, + notification: msg }); } @@ -392,7 +392,7 @@ export class RunController extends EventEmitter implements IRunController { projectDir: projectData.projectDir, deviceIdentifier, debugOptions: deviceDescriptor.debugOptions, - outputPath: deviceDescriptor.buildData.outputPath, + outputPath: deviceDescriptor.buildData.outputPath }; this.emit(USER_INTERACTION_NEEDED_EVENT_NAME, attachDebuggerOptions); } @@ -414,7 +414,7 @@ export class RunController extends EventEmitter implements IRunController { deviceDescriptors, currentRunData.deviceDescriptors, "identifier" - ) + ) : deviceDescriptors; return deviceDescriptorsForInitialSync; @@ -451,7 +451,7 @@ export class RunController extends EventEmitter implements IRunController { ) { await this.stop({ projectDir, - deviceIdentifiers: [device.deviceInfo.identifier], + deviceIdentifiers: [device.deviceInfo.identifier] }); } } catch (err) { @@ -488,19 +488,18 @@ export class RunController extends EventEmitter implements IRunController { ...liveSyncInfo, ...deviceDescriptor.buildData, nativePrepare: { - skipNativePrepare: !!deviceDescriptor.skipNativePrepare, + skipNativePrepare: !!deviceDescriptor.skipNativePrepare }, - watch: !liveSyncInfo.skipWatcher, + watch: !liveSyncInfo.skipWatcher } ); - const prepareResultData = await this.$prepareController.prepare( - prepareData - ); + const prepareResultData = + await this.$prepareController.prepare(prepareData); const buildData = { ...deviceDescriptor.buildData, - buildForDevice: !device.isEmulator, + buildForDevice: !device.isEmulator }; const platformData = this.$platformsDataService.getPlatformData( device.deviceInfo.platform, @@ -538,13 +537,13 @@ export class RunController extends EventEmitter implements IRunController { rebuiltInformation[platformData.platformNameLowerCase] = { isEmulator: device.isEmulator, platform: platformData.platformNameLowerCase, - packageFilePath, + packageFilePath }; } else { await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: TrackActionNames.LiveSync, device, - projectDir: projectData.projectDir, + projectDir: projectData.projectDir }); } @@ -566,7 +565,7 @@ export class RunController extends EventEmitter implements IRunController { projectData, device, watch: !skipWatcher, - liveSyncDeviceData: deviceDescriptor, + liveSyncDeviceData: deviceDescriptor }); await this.refreshApplication( @@ -586,7 +585,7 @@ export class RunController extends EventEmitter implements IRunController { applicationIdentifier: projectData.projectIdentifiers[ device.deviceInfo.platform.toLowerCase() - ], + ] }); } catch (err) { this.$logger.warn( @@ -601,13 +600,13 @@ export class RunController extends EventEmitter implements IRunController { projectData.projectIdentifiers[ device.deviceInfo.platform.toLowerCase() ], - error: err, + error: err }); await this.stop({ projectDir: projectData.projectDir, deviceIdentifiers: [device.deviceInfo.identifier], - stopOptions: { shouldAwaitAllActions: false }, + stopOptions: { shouldAwaitAllActions: false } }); } }; @@ -655,9 +654,9 @@ export class RunController extends EventEmitter implements IRunController { ...liveSyncInfo, ...deviceDescriptor.buildData, nativePrepare: { - skipNativePrepare: !!deviceDescriptor.skipNativePrepare, + skipNativePrepare: !!deviceDescriptor.skipNativePrepare }, - watch: !liveSyncInfo.skipWatcher, + watch: !liveSyncInfo.skipWatcher } ); @@ -683,7 +682,7 @@ export class RunController extends EventEmitter implements IRunController { hmrData: data.hmrData, useHotModuleReload: liveSyncInfo.useHotModuleReload, force: liveSyncInfo.force, - connectTimeout: 1000, + connectTimeout: 1000 }; const deviceAppData = await platformLiveSyncService.getAppData( _.merge({ device, watch: true }, watchInfo) @@ -707,7 +706,7 @@ export class RunController extends EventEmitter implements IRunController { rebuiltInformation[platformData.platformNameLowerCase] = { isEmulator: device.isEmulator, platform: platformData.platformNameLowerCase, - packageFilePath: null, + packageFilePath: null }; } @@ -724,7 +723,7 @@ export class RunController extends EventEmitter implements IRunController { deviceAppData, modifiedFilesData: [], isFullSync: false, - useHotModuleReload: liveSyncInfo.useHotModuleReload, + useHotModuleReload: liveSyncInfo.useHotModuleReload }, data, deviceDescriptor @@ -770,8 +769,8 @@ export class RunController extends EventEmitter implements IRunController { filesToSync, allAppFiles, isInHMRMode, - filesChangedEvent: data, - }, + filesChangedEvent: data + } }); await this.refreshApplication( @@ -805,7 +804,7 @@ export class RunController extends EventEmitter implements IRunController { filesToSync, allAppFiles, filesChangedEvent: data, - isInHMRMode, + isInHMRMode }); this.$logger.info( @@ -855,13 +854,13 @@ export class RunController extends EventEmitter implements IRunController { projectData.projectIdentifiers[ device.deviceInfo.platform.toLowerCase() ], - error: err, + error: err }); await this.stop({ projectDir: projectData.projectDir, deviceIdentifiers: [device.deviceInfo.identifier], - stopOptions: { shouldAwaitAllActions: false }, + stopOptions: { shouldAwaitAllActions: false } }); } }; diff --git a/lib/controllers/update-controller-base.ts b/lib/controllers/update-controller-base.ts index 5919ebc3bd..874dde0bdc 100644 --- a/lib/controllers/update-controller-base.ts +++ b/lib/controllers/update-controller-base.ts @@ -4,7 +4,7 @@ import { IProjectData } from "../definitions/project"; import { IPlatformCommandHelper, IPackageInstallationManager, - IPackageManager, + IPackageManager } from "../declarations"; import { IPlatformsDataService } from "../definitions/platform"; import { IDependency } from "../definitions/migrate"; @@ -74,31 +74,33 @@ export class UpdateControllerBase { protected hasRuntimeDependency({ platform, - projectData, + projectData }: { platform: string; projectData: IProjectData; }): boolean { const lowercasePlatform = platform.toLowerCase(); - const currentPlatformVersion = this.$platformCommandHelper.getCurrentPlatformVersion( - lowercasePlatform, - projectData - ); + const currentPlatformVersion = + this.$platformCommandHelper.getCurrentPlatformVersion( + lowercasePlatform, + projectData + ); return !!currentPlatformVersion; } protected async getMaxRuntimeVersion({ platform, - projectData, + projectData }: { platform: string; projectData: IProjectData; }) { const lowercasePlatform = platform.toLowerCase(); - const currentPlatformVersion = this.$platformCommandHelper.getCurrentPlatformVersion( - lowercasePlatform, - projectData - ); + const currentPlatformVersion = + this.$platformCommandHelper.getCurrentPlatformVersion( + lowercasePlatform, + projectData + ); const platformData = this.$platformsDataService.getPlatformData( lowercasePlatform, projectData diff --git a/lib/controllers/update-controller.ts b/lib/controllers/update-controller.ts index bcb4a5abf0..3e68ece801 100644 --- a/lib/controllers/update-controller.ts +++ b/lib/controllers/update-controller.ts @@ -6,13 +6,13 @@ import { IProjectData, IProjectCleanupService, IProjectBackupService, - IBackup, + IBackup } from "../definitions/project"; import { IPlatformsDataService } from "../definitions/platform"; import { IPlatformCommandHelper, IPackageInstallationManager, - IPackageManager, + IPackageManager } from "../declarations"; import { IFileSystem, IErrors } from "../common/declarations"; import { injector } from "../common/yok"; @@ -22,37 +22,38 @@ import { IPluginsService } from "../definitions/plugins"; import { color } from "../color"; import { ITerminalSpinner, - ITerminalSpinnerService, + ITerminalSpinnerService } from "../definitions/terminal-spinner-service"; export class UpdateController extends UpdateControllerBase - implements IUpdateController { + implements IUpdateController +{ static readonly updatableDependencies: IDependency[] = [ // dependencies { - packageName: "@nativescript/core", + packageName: "@nativescript/core" }, // devDependencies { packageName: "@nativescript/webpack", - isDev: true, + isDev: true }, { packageName: "@nativescript/types", - isDev: true, + isDev: true }, // runtimes { packageName: "@nativescript/ios", - isDev: true, + isDev: true }, { packageName: "@nativescript/android", - isDev: true, - }, + isDev: true + } ]; static readonly backupFolderName: string = ".migration_backup"; @@ -62,7 +63,7 @@ export class UpdateController constants.WEBPACK_CONFIG_NAME, constants.PACKAGE_JSON_FILE_NAME, constants.PACKAGE_LOCK_JSON_FILE_NAME, - constants.CONFIG_NS_FILE_NAME, + constants.CONFIG_NS_FILE_NAME ]; private spinner: ITerminalSpinner; @@ -248,10 +249,11 @@ export class UpdateController dependency: IDependency, desiredVersion: string ): Promise { - const installedVersion = await this.$packageInstallationManager.getInstalledDependencyVersion( - dependency.packageName, - projectData.projectDir - ); + const installedVersion = + await this.$packageInstallationManager.getInstalledDependencyVersion( + dependency.packageName, + projectData.projectDir + ); if (!installedVersion) { return false; @@ -298,7 +300,7 @@ export class UpdateController constants.HOOKS_DIR_NAME, constants.PLATFORMS_DIR_NAME, constants.NODE_MODULES_FOLDER_NAME, - constants.PACKAGE_LOCK_JSON_FILE_NAME, + constants.PACKAGE_LOCK_JSON_FILE_NAME ]); } } diff --git a/lib/data/controller-data-base.ts b/lib/data/controller-data-base.ts index 80e7fcb8a8..17c8c53bf7 100644 --- a/lib/data/controller-data-base.ts +++ b/lib/data/controller-data-base.ts @@ -4,7 +4,11 @@ import { IControllerDataBase } from "../definitions/data"; export class ControllerDataBase implements IControllerDataBase { public nativePrepare?: INativePrepare; - constructor(public projectDir: string, public platform: string, data: any) { + constructor( + public projectDir: string, + public platform: string, + data: any + ) { this.nativePrepare = data.nativePrepare; } } diff --git a/lib/data/platform-data.ts b/lib/data/platform-data.ts index 89ff99a77c..689faa8a61 100644 --- a/lib/data/platform-data.ts +++ b/lib/data/platform-data.ts @@ -3,7 +3,11 @@ import { ControllerDataBase } from "./controller-data-base"; export class AddPlatformData extends ControllerDataBase { public frameworkPath?: string; - constructor(public projectDir: string, public platform: string, data: any) { + constructor( + public projectDir: string, + public platform: string, + data: any + ) { super(projectDir, platform, data); this.frameworkPath = data.frameworkPath; diff --git a/lib/data/prepare-data.ts b/lib/data/prepare-data.ts index 2af06adbeb..304f0f14c9 100644 --- a/lib/data/prepare-data.ts +++ b/lib/data/prepare-data.ts @@ -37,7 +37,7 @@ export class PrepareData extends ControllerDataBase { this.hmr = data.hmr || data.useHotModuleReload; this.env = { ...env, - hmr: data.hmr || data.useHotModuleReload, + hmr: data.hmr || data.useHotModuleReload }; this.watch = data.watch; if (_.isBoolean(data.watchNative)) { diff --git a/lib/definitions/build.d.ts b/lib/definitions/build.d.ts index e64a318c6d..cc4f4e5b06 100644 --- a/lib/definitions/build.d.ts +++ b/lib/definitions/build.d.ts @@ -4,7 +4,7 @@ import { IValidBuildOutputData, IPlatformData, IBuildOutputOptions, - IBuildInfo, + IBuildInfo } from "./platform"; interface IBuildData extends IPrepareData { diff --git a/lib/definitions/cleanup-service.d.ts b/lib/definitions/cleanup-service.d.ts index e911a1daa4..c4ff7052c4 100644 --- a/lib/definitions/cleanup-service.d.ts +++ b/lib/definitions/cleanup-service.d.ts @@ -1,7 +1,7 @@ import { IShouldDispose, IDisposable } from "../common/declarations"; import { ISpawnCommandInfo, - IJSCommand, + IJSCommand } from "../detached-processes/cleanup-process-definitions"; /** diff --git a/lib/definitions/livesync.d.ts b/lib/definitions/livesync.d.ts index faba420116..b19fa3c96b 100644 --- a/lib/definitions/livesync.d.ts +++ b/lib/definitions/livesync.d.ts @@ -2,7 +2,7 @@ import { EventEmitter } from "events"; import { INativePrepare, IValidatePlatformOutput, - IProjectData, + IProjectData } from "./project"; import { IBuildPlatformAction } from "./platform"; import { IDebugOptions } from "./debug"; @@ -13,7 +13,7 @@ import { IProjectDir, IRelease, IQrCodeImageData, - IDictionary, + IDictionary } from "../common/declarations"; declare global { diff --git a/lib/definitions/platform.d.ts b/lib/definitions/platform.d.ts index ae27231d2d..6dba9f2070 100644 --- a/lib/definitions/platform.d.ts +++ b/lib/definitions/platform.d.ts @@ -2,7 +2,7 @@ import { IBuildConfig, IProjectData, IBuildForDevice, - INativePrepare, + INativePrepare } from "./project"; import { IHasAndroidBundle, IDependencyData, IOptions } from "../declarations"; import { IControllerDataBase } from "./data"; diff --git a/lib/definitions/project.d.ts b/lib/definitions/project.d.ts index 7589ae9c09..da37906028 100644 --- a/lib/definitions/project.d.ts +++ b/lib/definitions/project.d.ts @@ -3,7 +3,7 @@ import { IAndroidBuildOptionsSettings, IProvision, ITeamIdentifier, - IPlatformBuildData, + IPlatformBuildData } from "../declarations"; import { ICheckEnvironmentRequirementsOutput, IPlatformData } from "./platform"; import { IPluginData, IBasePluginData } from "./plugins"; @@ -14,7 +14,7 @@ import { IRelease, IPlatform, IDependencyInformation, - ISpawnResult, + ISpawnResult } from "../common/declarations"; import { SupportedConfigValues } from "../tools/config-manipulation/config-transformer"; import * as constants from "../constants"; @@ -753,7 +753,7 @@ interface ICocoaPodsPlatformManager { declare const enum BuildNames { debug = "Debug", - release = "Release", + release = "Release" } interface IXcodeTargetBuildConfigurationProperty { diff --git a/lib/definitions/prompter.d.ts b/lib/definitions/prompter.d.ts index abfbea86e6..dfad75b1ef 100644 --- a/lib/definitions/prompter.d.ts +++ b/lib/definitions/prompter.d.ts @@ -2,7 +2,7 @@ import { IPrompterOptions, IAllowEmpty, IDisposable, - IPrompterQuestion, + IPrompterQuestion } from "../common/declarations"; declare global { diff --git a/lib/definitions/system-warnings.d.ts b/lib/definitions/system-warnings.d.ts index 9985675340..d02841e093 100644 --- a/lib/definitions/system-warnings.d.ts +++ b/lib/definitions/system-warnings.d.ts @@ -1,4 +1,4 @@ declare const enum SystemWarningsSeverity { medium = "medium", - high = "high", + high = "high" } diff --git a/lib/definitions/update.d.ts b/lib/definitions/update.d.ts index 77d9500502..5860af69b2 100644 --- a/lib/definitions/update.d.ts +++ b/lib/definitions/update.d.ts @@ -2,7 +2,7 @@ interface IUpdateController { update(updateOptions: IUpdateOptions): Promise; shouldUpdate({ projectDir, - version, + version }: { projectDir: string; version?: string; diff --git a/lib/detached-processes/cleanup-js-subprocess.ts b/lib/detached-processes/cleanup-js-subprocess.ts index e5a5000077..265e1ff519 100644 --- a/lib/detached-processes/cleanup-js-subprocess.ts +++ b/lib/detached-processes/cleanup-js-subprocess.ts @@ -19,11 +19,11 @@ const logFile = process.argv[3]; const jsFilePath = process.argv[4]; const fileLogService = injector.resolve(FileLogService, { - logFile, + logFile }); const uniqueId = uuidv4(); fileLogService.logData({ - message: `Initializing Cleanup process for path: ${jsFilePath} Unique id: ${uniqueId}`, + message: `Initializing Cleanup process for path: ${jsFilePath} Unique id: ${uniqueId}` }); if (!fs.existsSync(jsFilePath)) { diff --git a/lib/detached-processes/cleanup-process.ts b/lib/detached-processes/cleanup-process.ts index 514766d7ba..7e7653e180 100644 --- a/lib/detached-processes/cleanup-process.ts +++ b/lib/detached-processes/cleanup-process.ts @@ -14,7 +14,7 @@ import { ISpawnCommandCleanupMessage, IRequestCleanupMessage, IJSCleanupMessage, - IFileCleanupMessage, + IFileCleanupMessage } from "./cleanup-process-definitions"; import { Server, IChildProcess } from "../common/declarations"; @@ -28,7 +28,7 @@ const logFile = process.argv[3]; require(pathToBootstrap); const fileLogService = injector.resolve(FileLogService, { - logFile, + logFile }); fileLogService.logData({ message: "Initializing Cleanup process." }); @@ -41,22 +41,22 @@ const executeRequest = async (request: IRequestInfo) => { const $httpClient = injector.resolve("httpClient"); try { fileLogService.logData({ - message: `Start executing request: ${request.method} ${request.url}`, + message: `Start executing request: ${request.method} ${request.url}` }); const response = await $httpClient.httpRequest({ url: request.url, method: request.method, headers: request.headers, - body: request.body, + body: request.body }); const responseStatus = response && response.response && response.response.statusCode; fileLogService.logData({ - message: `Finished executing request: ${request.method} ${request.url} and got status ${responseStatus}`, + message: `Finished executing request: ${request.method} ${request.url} and got status ${responseStatus}` }); } catch (e) { fileLogService.logData({ - message: `Unable to execute request: ${request.method} ${request.url}`, + message: `Unable to execute request: ${request.method} ${request.url}` }); } }; @@ -68,7 +68,7 @@ const executeJSCleanup = async (jsCommand: IJSCommand) => { fileLogService.logData({ message: `Start executing action for file: ${ jsCommand.filePath - } and data ${JSON.stringify(jsCommand.data)}`, + } and data ${JSON.stringify(jsCommand.data)}` }); await $childProcess.trySpawnFromCloseEvent( @@ -78,7 +78,7 @@ const executeJSCleanup = async (jsCommand: IJSCommand) => { pathToBootstrap, logFile, jsCommand.filePath, - JSON.stringify(jsCommand.data), + JSON.stringify(jsCommand.data) ], {}, { throwError: true, timeout: jsCommand.timeout || 3000 } @@ -86,14 +86,14 @@ const executeJSCleanup = async (jsCommand: IJSCommand) => { fileLogService.logData({ message: `Finished executing action for file: ${ jsCommand.filePath - } and data ${JSON.stringify(jsCommand.data)}`, + } and data ${JSON.stringify(jsCommand.data)}` }); } catch (err) { fileLogService.logData({ message: `Unable to execute action for file ${ jsCommand.filePath } with data ${JSON.stringify(jsCommand.data)}. Error is: ${err}.`, - type: FileLogMessageType.Error, + type: FileLogMessageType.Error }); } }; @@ -112,7 +112,7 @@ const executeCleanup = async () => { for (const commandInfo of commandsInfos) { try { fileLogService.logData({ - message: `Start executing command: ${JSON.stringify(commandInfo)}`, + message: `Start executing command: ${JSON.stringify(commandInfo)}` }); await $childProcess.trySpawnFromCloseEvent( @@ -122,16 +122,14 @@ const executeCleanup = async () => { { throwError: true, timeout: commandInfo.timeout || 3000 } ); fileLogService.logData({ - message: `Successfully executed command: ${JSON.stringify( - commandInfo - )}`, + message: `Successfully executed command: ${JSON.stringify(commandInfo)}` }); } catch (err) { fileLogService.logData({ message: `Unable to execute command: ${JSON.stringify( commandInfo )}. Error is: ${err}.`, - type: FileLogMessageType.Error, + type: FileLogMessageType.Error }); } } @@ -139,7 +137,7 @@ const executeCleanup = async () => { if (filesToDelete.length) { try { fileLogService.logData({ - message: `Deleting files ${filesToDelete.join(" ")}`, + message: `Deleting files ${filesToDelete.join(" ")}` }); shelljs.rm("-Rf", filesToDelete); } catch (err) { @@ -147,7 +145,7 @@ const executeCleanup = async () => { message: `Unable to delete files: ${JSON.stringify( filesToDelete )}. Error is: ${err}.`, - type: FileLogMessageType.Error, + type: FileLogMessageType.Error }); } } @@ -165,13 +163,13 @@ const addCleanupAction = (commandInfo: ISpawnCommandInfo): void => { fileLogService.logData({ message: `cleanup-process will not add command for execution as it has been added already: ${JSON.stringify( commandInfo - )}`, + )}` }); } else { fileLogService.logData({ message: `cleanup-process added command for execution: ${JSON.stringify( commandInfo - )}`, + )}` }); commandsInfos.push(commandInfo); } @@ -189,13 +187,13 @@ const removeCleanupAction = (commandInfo: ISpawnCommandInfo): void => { fileLogService.logData({ message: `cleanup-process removed command for execution: ${JSON.stringify( commandInfo - )}`, + )}` }); } else { fileLogService.logData({ message: `cleanup-process cannot remove command for execution as it has not been added before: ${JSON.stringify( commandInfo - )}`, + )}` }); } }; @@ -209,13 +207,13 @@ const addRequest = (requestInfo: IRequestInfo): void => { fileLogService.logData({ message: `cleanup-process will not add request for execution as it has been added already: ${JSON.stringify( requestInfo - )}`, + )}` }); } else { fileLogService.logData({ message: `cleanup-process added request for execution: ${JSON.stringify( requestInfo - )}`, + )}` }); requests.push(requestInfo); } @@ -233,13 +231,13 @@ const removeRequest = (requestInfo: IRequestInfo): void => { fileLogService.logData({ message: `cleanup-process removed request for execution: ${JSON.stringify( requestInfo - )}`, + )}` }); } else { fileLogService.logData({ message: `cleanup-process cannot remove request for execution as it has not been added before: ${JSON.stringify( requestInfo - )}`, + )}` }); } }; @@ -249,12 +247,12 @@ const addDeleteAction = (filePath: string): void => { if (_.some(filesToDelete, (f) => f === fullPath)) { fileLogService.logData({ - message: `cleanup-process will not add ${fullPath} for deletion as it has been added already`, + message: `cleanup-process will not add ${fullPath} for deletion as it has been added already` }); } else { filesToDelete.push(fullPath); fileLogService.logData({ - message: `cleanup-process added ${fullPath} for deletion`, + message: `cleanup-process added ${fullPath} for deletion` }); } }; @@ -265,11 +263,11 @@ const removeDeleteAction = (filePath: string): void => { if (_.some(filesToDelete, (f) => f === fullPath)) { _.remove(filesToDelete, (f) => f === fullPath); fileLogService.logData({ - message: `cleanup-process removed ${fullPath} from the list of files for deletion.`, + message: `cleanup-process removed ${fullPath} from the list of files for deletion.` }); } else { fileLogService.logData({ - message: `cleanup-process cannot remove ${fullPath} for deletion as no such entry is found in the files marked for deletion`, + message: `cleanup-process cannot remove ${fullPath} for deletion as no such entry is found in the files marked for deletion` }); } }; @@ -287,13 +285,13 @@ const addJSFile = (jsCommand: IJSCommand): void => { fileLogService.logData({ message: `cleanup-process will not add JS file for execution as it has been added already: ${JSON.stringify( jsCommand - )}`, + )}` }); } else { fileLogService.logData({ message: `cleanup-process added JS file for execution: ${JSON.stringify( jsCommand - )}`, + )}` }); jsCommands.push(jsCommand); } @@ -315,13 +313,13 @@ const removeJSFile = (jsCommand: IJSCommand): void => { fileLogService.logData({ message: `cleanup-process removed JS action for execution: ${JSON.stringify( jsCommand - )}`, + )}` }); } else { fileLogService.logData({ message: `cleanup-process cannot remove JS action for execution as it has not been added before: ${JSON.stringify( jsCommand - )}`, + )}` }); } }; @@ -330,7 +328,7 @@ process.on("message", async (cleanupProcessMessage: ICleanupMessageBase) => { fileLogService.logData({ message: `cleanup-process received message of type: ${JSON.stringify( cleanupProcessMessage - )}`, + )}` }); switch (cleanupProcessMessage.messageType) { @@ -371,7 +369,7 @@ process.on("message", async (cleanupProcessMessage: ICleanupMessageBase) => { message: `Unable to handle message of type ${ cleanupProcessMessage.messageType }. Full message is ${JSON.stringify(cleanupProcessMessage)}`, - type: FileLogMessageType.Error, + type: FileLogMessageType.Error }); break; } @@ -379,7 +377,7 @@ process.on("message", async (cleanupProcessMessage: ICleanupMessageBase) => { process.on("disconnect", async () => { fileLogService.logData({ - message: "cleanup-process received process.disconnect event", + message: "cleanup-process received process.disconnect event" }); await executeCleanup(); injector.dispose(); @@ -387,7 +385,7 @@ process.on("disconnect", async () => { }); fileLogService.logData({ - message: `cleanup-process will send ${DetachedProcessMessages.ProcessReadyToReceive} message`, + message: `cleanup-process will send ${DetachedProcessMessages.ProcessReadyToReceive} message` }); process.send(DetachedProcessMessages.ProcessReadyToReceive); diff --git a/lib/detached-processes/detached-process-enums.d.ts b/lib/detached-processes/detached-process-enums.d.ts index 13e11a78a3..9768f090f8 100644 --- a/lib/detached-processes/detached-process-enums.d.ts +++ b/lib/detached-processes/detached-process-enums.d.ts @@ -10,7 +10,7 @@ declare const enum DetachedProcessMessages { /** * The detached process finished its tasks and will now exit. */ - ProcessFinishedTasks = "ProcessFinishedTasks", + ProcessFinishedTasks = "ProcessFinishedTasks" } /** @@ -25,7 +25,7 @@ declare const enum FileLogMessageType { /** * Error message - used to indicate that some action did not succeed. */ - Error = "Error", + Error = "Error" } declare const enum CleanupProcessMessage { @@ -66,5 +66,5 @@ declare const enum CleanupProcessMessage { /** * This type of message defines that the cleanup procedure will not require the previously specified JS file. */ - RemoveJSFileToRequire = "RemoveJSFileToRequire", + RemoveJSFileToRequire = "RemoveJSFileToRequire" } diff --git a/lib/detached-processes/file-log-service.ts b/lib/detached-processes/file-log-service.ts index 6684784842..895dc1cd80 100644 --- a/lib/detached-processes/file-log-service.ts +++ b/lib/detached-processes/file-log-service.ts @@ -3,7 +3,10 @@ import { getFixedLengthDateString } from "../common/helpers"; import { IFileSystem } from "../common/declarations"; export class FileLogService implements IFileLogService { - constructor(private $fs: IFileSystem, private logFile: string) {} + constructor( + private $fs: IFileSystem, + private logFile: string + ) {} public logData(fileLoggingMessage: IFileLogMessage): void { if (this.logFile && fileLoggingMessage && fileLoggingMessage.message) { diff --git a/lib/helpers/android-bundle-validator-helper.ts b/lib/helpers/android-bundle-validator-helper.ts index 1ee944b797..38a6b6aa44 100644 --- a/lib/helpers/android-bundle-validator-helper.ts +++ b/lib/helpers/android-bundle-validator-helper.ts @@ -10,7 +10,8 @@ import { injector } from "../common/yok"; export class AndroidBundleValidatorHelper extends VersionValidatorHelper - implements IAndroidBundleValidatorHelper { + implements IAndroidBundleValidatorHelper +{ public static MIN_RUNTIME_VERSION = "5.0.0"; public static MIN_ANDROID_WITH_AAB_SUPPORT = "4.4.0"; diff --git a/lib/helpers/deploy-command-helper.ts b/lib/helpers/deploy-command-helper.ts index ee2a33473a..18252ad4f8 100644 --- a/lib/helpers/deploy-command-helper.ts +++ b/lib/helpers/deploy-command-helper.ts @@ -26,7 +26,7 @@ export class DeployCommandHelper { platform, emulator, skipInferPlatform: !platform, - sdk: this.$options.sdk, + sdk: this.$options.sdk }); const devices = this.$devicesService @@ -44,7 +44,7 @@ export class DeployCommandHelper { additionalOptions.getOutputDirectory({ platform: d.deviceInfo.platform, emulator: d.isEmulator, - projectDir: this.$projectData.projectDir, + projectDir: this.$projectData.projectDir }); const buildData = this.$buildDataService.getBuildData( @@ -57,8 +57,8 @@ export class DeployCommandHelper { skipWatcher: !this.$options.watch, nativePrepare: { skipNativePrepare: - additionalOptions && additionalOptions.skipNativePrepare, - }, + additionalOptions && additionalOptions.skipNativePrepare + } } ); @@ -70,7 +70,7 @@ export class DeployCommandHelper { d.deviceInfo.platform, buildData, this.$projectData - ) + ) : this.$buildController.build.bind(this.$buildController, buildData); const info: ILiveSyncDeviceDescriptor = { @@ -83,7 +83,7 @@ export class DeployCommandHelper { debugOptions: this.$options, skipNativePrepare: additionalOptions && additionalOptions.skipNativePrepare, - buildData, + buildData }; return info; diff --git a/lib/helpers/key-command-helper.ts b/lib/helpers/key-command-helper.ts index ecfaabd367..1640c31ed0 100644 --- a/lib/helpers/key-command-helper.ts +++ b/lib/helpers/key-command-helper.ts @@ -4,7 +4,7 @@ import { IKeyCommandPlatform, IValidKeyName, SpecialKeys, - SupportedProcessType, + SupportedProcessType } from "../common/definitions/key-commands"; import { injector } from "../common/yok"; @@ -118,7 +118,7 @@ export default class KeyCommandHelper implements IKeyCommandHelper { )}, you can press the following keys any time (make sure the terminal has focus).`, "", ...commandHelp, - "", + "" ].join("\n") ); } diff --git a/lib/helpers/livesync-command-helper.ts b/lib/helpers/livesync-command-helper.ts index ea9cc44ea4..475bc2b96c 100644 --- a/lib/helpers/livesync-command-helper.ts +++ b/lib/helpers/livesync-command-helper.ts @@ -3,7 +3,7 @@ import { ErrorCodes, IAnalyticsService, IDictionary, - IErrors, + IErrors } from "../common/declarations"; import { IInjector } from "../common/definitions/yok"; import { injector } from "../common/yok"; @@ -49,7 +49,7 @@ export class LiveSyncCommandHelper implements ILiveSyncCommandHelper { timeout: this.$options.timeout, useHotModuleReload: this.$options.hmr, force: this.$options.force, - emulator: this.$options.emulator, + emulator: this.$options.emulator }; return liveSyncInfo; @@ -63,7 +63,7 @@ export class LiveSyncCommandHelper implements ILiveSyncCommandHelper { deviceId: this.$options.device, emulator: this.$options.emulator, skipInferPlatform: !platform, - sdk: this.$options.sdk, + sdk: this.$options.sdk }); const devices = this.$devicesService @@ -90,7 +90,7 @@ export class LiveSyncCommandHelper implements ILiveSyncCommandHelper { additionalOptions.getOutputDirectory({ platform: d.deviceInfo.platform, emulator: d.isEmulator, - projectDir: this.$projectData.projectDir, + projectDir: this.$projectData.projectDir }); const buildData = this.$buildDataService.getBuildData( @@ -102,9 +102,9 @@ export class LiveSyncCommandHelper implements ILiveSyncCommandHelper { buildForDevice: !d.isEmulator, watch: !this.$options.release && this.$options.watch, nativePrepare: { - forceRebuildNativeApp: additionalOptions.forceRebuildNativeApp, + forceRebuildNativeApp: additionalOptions.forceRebuildNativeApp }, - _device: d, + _device: d } ); this.$androidBundleValidatorHelper.validateDeviceApiLevel(d, buildData); @@ -116,7 +116,7 @@ export class LiveSyncCommandHelper implements ILiveSyncCommandHelper { d.deviceInfo.platform, buildData, this.$projectData - ) + ) : this.$buildController.build.bind(this.$buildController, buildData); const info: ILiveSyncDeviceDescriptor = { @@ -129,7 +129,7 @@ export class LiveSyncCommandHelper implements ILiveSyncCommandHelper { debugOptions: this.$options, skipNativePrepare: additionalOptions && additionalOptions.skipNativePrepare, - buildData, + buildData }; return info; @@ -143,7 +143,7 @@ export class LiveSyncCommandHelper implements ILiveSyncCommandHelper { ? [platform] : _.values( this.$mobileHelper.platformNames.map((p) => p.toLowerCase()) - ); + ); return availablePlatforms; } @@ -178,20 +178,20 @@ export class LiveSyncCommandHelper implements ILiveSyncCommandHelper { deviceIdentifiers: deviceDescriptors.map((device) => device.identifier), stopOptions: { shouldAwaitAllActions: true, - keepProcessAlive: true, - }, + keepProcessAlive: true + } }); const devices = await this.getDeviceInstances(platform); await this.executeLiveSyncOperation(devices, platform, { ...additionalOptions, - restartLiveSync: false, + restartLiveSync: false }); return; } else { await this.$runController.run({ liveSyncInfo, - deviceDescriptors, + deviceDescriptors }); } @@ -289,7 +289,7 @@ export class LiveSyncCommandHelper implements ILiveSyncCommandHelper { deviceId: this.$options.device, emulator: this.$options.emulator, skipInferPlatform: !platform, - sdk: this.$options.sdk, + sdk: this.$options.sdk }); await this.$deployController.deploy({ deviceDescriptors }); @@ -304,7 +304,7 @@ export class LiveSyncCommandHelper implements ILiveSyncCommandHelper { device.deviceInfo.platform.toLowerCase() ], projectName: this.$projectData.projectName, - projectDir: this.$projectData.projectDir, + projectDir: this.$projectData.projectDir }); } } @@ -316,8 +316,8 @@ export class LiveSyncCommandHelper implements ILiveSyncCommandHelper { deviceIdentifiers: devices.map((d) => d.deviceInfo.identifier), stopOptions: { shouldAwaitAllActions: true, - keepProcessAlive: true, - }, + keepProcessAlive: true + } }); } } diff --git a/lib/helpers/network-connectivity-validator.ts b/lib/helpers/network-connectivity-validator.ts index 05cb042596..49528cba30 100644 --- a/lib/helpers/network-connectivity-validator.ts +++ b/lib/helpers/network-connectivity-validator.ts @@ -4,13 +4,17 @@ import { injector } from "../common/yok"; import { IErrors } from "../common/declarations"; export class NetworkConnectivityValidator - implements INetworkConnectivityValidator { + implements INetworkConnectivityValidator +{ private static DNS_LOOKUP_URL = "play.nativescript.org"; private static NO_INTERNET_ERROR_CODE = "ENOTFOUND"; private static NO_INTERNET_ERROR_MESSAGE = "No internet connection. Check your internet settings and try again."; - constructor(private $errors: IErrors, private $logger: ILogger) {} + constructor( + private $errors: IErrors, + private $logger: ILogger + ) {} public async validate(): Promise { const isConnected = await this.isConnected(); diff --git a/lib/helpers/options-track-helper.ts b/lib/helpers/options-track-helper.ts index cebcb12ae6..328765d013 100644 --- a/lib/helpers/options-track-helper.ts +++ b/lib/helpers/options-track-helper.ts @@ -5,7 +5,7 @@ import { IAnalyticsService, IDictionary, IDashedOption, - OptionType, + OptionType } from "../common/declarations"; import * as _ from "lodash"; import { injector } from "../common/yok"; @@ -23,7 +23,7 @@ export class OptionsTracker { await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: TrackActionNames.Options, - additionalData: JSON.stringify(trackObject), + additionalData: JSON.stringify(trackObject) }); } diff --git a/lib/helpers/package-path-helper.ts b/lib/helpers/package-path-helper.ts index 8f13c7ba42..60b9ae2d28 100644 --- a/lib/helpers/package-path-helper.ts +++ b/lib/helpers/package-path-helper.ts @@ -1,6 +1,6 @@ import { resolvePackagePath, - resolvePackageJSONPath, + resolvePackageJSONPath } from "@rigor789/resolve-package-path"; export { resolvePackagePath, resolvePackageJSONPath }; diff --git a/lib/helpers/platform-command-helper.ts b/lib/helpers/platform-command-helper.ts index daa4cb67c3..4c4493ecfb 100644 --- a/lib/helpers/platform-command-helper.ts +++ b/lib/helpers/platform-command-helper.ts @@ -9,7 +9,7 @@ import { IPlatformCommandHelper, IPackageInstallationManager, IUpdatePlatformOptions, - IOptions, + IOptions } from "../declarations"; import { IPlatformsDataService, IPlatformData } from "../definitions/platform"; import { IFileSystem, IErrors } from "../common/declarations"; @@ -64,7 +64,7 @@ export class PlatformCommandHelper implements IPlatformCommandHelper { await this.$platformController.addPlatform({ projectDir: projectData.projectDir, platform, - frameworkPath, + frameworkPath }); } } @@ -162,7 +162,7 @@ export class PlatformCommandHelper implements IPlatformCommandHelper { } else { await this.$platformController.addPlatform({ projectDir: projectData.projectDir, - platform: platformParam, + platform: platformParam }); } } @@ -254,18 +254,17 @@ export class PlatformCommandHelper implements IPlatformCommandHelper { ); const currentVersion = data && data.version ? data.version : "0.2.0"; - const installedModuleDir = await this.$tempService.mkdirSync( - "runtime-to-update" - ); + const installedModuleDir = + await this.$tempService.mkdirSync("runtime-to-update"); let newVersion = version === constants.PackageVersion.NEXT ? await this.$packageInstallationManager.getNextVersion( platformData.frameworkPackageName - ) + ) : version || - (await this.$packageInstallationManager.getLatestCompatibleVersion( + (await this.$packageInstallationManager.getLatestCompatibleVersion( platformData.frameworkPackageName - )); + )); await this.$pacoteService.extractPackage( `${platformData.frameworkPackageName}@${newVersion}`, installedModuleDir @@ -309,7 +308,7 @@ export class PlatformCommandHelper implements IPlatformCommandHelper { : packageName; await this.$platformController.addPlatform({ projectDir: projectData.projectDir, - platform: packageName, + platform: packageName }); this.$logger.info( "Successfully updated to version ", diff --git a/lib/key-commands/index.ts b/lib/key-commands/index.ts index 904e3bf3b8..c947492cdb 100644 --- a/lib/key-commands/index.ts +++ b/lib/key-commands/index.ts @@ -11,7 +11,7 @@ import { IKeyCommandPlatform, IValidKeyName, SpecialKeys, - SupportedProcessType, + SupportedProcessType } from "../common/definitions/key-commands"; import { injector } from "../common/yok"; import { IProjectData } from "../definitions/project"; @@ -56,7 +56,7 @@ export class ShiftA implements IKeyCommand { if (os === "darwin") { const possibleStudioPaths = [ "/Applications/Android Studio.app", - `${process.env.HOME}/Applications/Android Studio.app`, + `${process.env.HOME}/Applications/Android Studio.app` ]; return possibleStudioPaths.find((p) => fs.existsSync(p)) || null; @@ -114,7 +114,7 @@ export class ShiftA implements IKeyCommand { } else if (os === "win32") { const child = this.$childProcess.spawn(studioPath, [androidDir], { detached: true, - stdio: "ignore", + stdio: "ignore" }); child.unref(); } else if (os === "linux") { @@ -356,15 +356,14 @@ export class R implements IKeyCommand { constructor(private $liveSyncCommandHelper: ILiveSyncCommandHelper) {} async execute(platform: string): Promise { - const devices = await this.$liveSyncCommandHelper.getDeviceInstances( - platform - ); + const devices = + await this.$liveSyncCommandHelper.getDeviceInstances(platform); await this.$liveSyncCommandHelper.executeLiveSyncOperation( devices, platform, { - restartLiveSync: true, + restartLiveSync: true } as ILiveSyncCommandHelperAdditionalOptions ); } @@ -380,16 +379,15 @@ export class ShiftR implements IKeyCommand { constructor(private $liveSyncCommandHelper: ILiveSyncCommandHelper) {} async execute(platform: string): Promise { - const devices = await this.$liveSyncCommandHelper.getDeviceInstances( - platform - ); + const devices = + await this.$liveSyncCommandHelper.getDeviceInstances(platform); await this.$liveSyncCommandHelper.executeLiveSyncOperation( devices, platform, { skipNativePrepare: false, forceRebuildNativeApp: true, - restartLiveSync: true, + restartLiveSync: true } as ILiveSyncCommandHelperAdditionalOptions ); } diff --git a/lib/services/analytics-settings-service.ts b/lib/services/analytics-settings-service.ts index 9a73f67ed8..ef14f85c73 100644 --- a/lib/services/analytics-settings-service.ts +++ b/lib/services/analytics-settings-service.ts @@ -5,7 +5,7 @@ import { IAnalyticsSettingsService, IUserSettingsService, IHostInfo, - IOsInfo, + IOsInfo } from "../common/declarations"; import * as _ from "lodash"; import { injector } from "../common/yok"; @@ -42,9 +42,10 @@ class AnalyticsSettingsService implements IAnalyticsSettingsService { } public async getUserSessionsCount(projectName: string): Promise { - const sessionsCountForProject = await this.$userSettingsService.getSettingValue< - number - >(this.getSessionsProjectKey(projectName)); + const sessionsCountForProject = + await this.$userSettingsService.getSettingValue( + this.getSessionsProjectKey(projectName) + ); return sessionsCountForProject || 0; } @@ -97,9 +98,8 @@ class AnalyticsSettingsService implements IAnalyticsSettingsService { } private async getSettingValueOrDefault(settingName: string): Promise { - let guid = await this.$userSettingsService.getSettingValue( - settingName - ); + let guid = + await this.$userSettingsService.getSettingValue(settingName); if (!guid) { guid = createGUID(false); diff --git a/lib/services/analytics/analytics-service.ts b/lib/services/analytics/analytics-service.ts index c53809853f..f9b10ee644 100644 --- a/lib/services/analytics/analytics-service.ts +++ b/lib/services/analytics/analytics-service.ts @@ -48,7 +48,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { private $childProcess: IChildProcess, private $projectDataService: IProjectDataService, private $mobileHelper: Mobile.IMobileHelper, - private $projectHelper: IProjectHelper + private $projectHelper: IProjectHelper, ) {} public setShouldDispose(shouldDispose: boolean): void { @@ -58,14 +58,14 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { public async checkConsent(): Promise { if (await this.$analyticsSettingsService.canDoRequest()) { const initialTrackFeatureUsageStatus = await this.getStatus( - this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME + this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, ); let trackFeatureUsage = initialTrackFeatureUsageStatus === AnalyticsStatus.enabled; if ( (await this.isNotConfirmed( - this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME + this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, )) && isInteractive() ) { @@ -73,7 +73,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { trackFeatureUsage = await this.$prompter.confirm(message, () => true); await this.setStatus( this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, - trackFeatureUsage + trackFeatureUsage, ); await this.trackAcceptFeatureUsage({ @@ -82,15 +82,15 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { } const isErrorReportingUnset = await this.isNotConfirmed( - this.$staticConfig.ERROR_REPORT_SETTING_NAME + this.$staticConfig.ERROR_REPORT_SETTING_NAME, ); const isUsageReportingConfirmed = !(await this.isNotConfirmed( - this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME + this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, )); if (isErrorReportingUnset && isUsageReportingConfirmed) { await this.setStatus( this.$staticConfig.ERROR_REPORT_SETTING_NAME, - trackFeatureUsage + trackFeatureUsage, ); } } @@ -102,7 +102,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { : AnalyticsStatus.disabled; await this.$userSettingsService.saveSetting( settingName, - enabled.toString() + enabled.toString(), ); } @@ -114,7 +114,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { public getStatusMessage( settingName: string, jsonFormat: boolean, - readableSettingName: string + readableSettingName: string, ): Promise { if (jsonFormat) { return this.getJsonStatusMessage(settingName); @@ -137,7 +137,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { } public async trackInGoogleAnalytics( - gaSettings: IGoogleAnalyticsData + gaSettings: IGoogleAnalyticsData, ): Promise { await this.initAnalyticsStatuses(); @@ -152,7 +152,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { } public async trackEventActionInGoogleAnalytics( - data: IEventActionData + data: IEventActionData, ): Promise { const device = data.device; const platform = device ? device.deviceInfo.platform : data.platform; @@ -169,8 +169,8 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { const deviceType = isForDevice ? DeviceTypes.Device : this.$mobileHelper.isAndroidPlatform(platform) - ? DeviceTypes.Emulator - : DeviceTypes.Simulator; + ? DeviceTypes.Emulator + : DeviceTypes.Simulator; label = this.addDataToLabel(label, deviceType); } @@ -204,7 +204,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { const handler = (data: string) => { if (data === DetachedProcessMessages.ProcessFinishedTasks) { this.brokerProcess.removeListener("message", handler); - clearTimeout(timer); + clearTimeout(timer as unknown as number); resolve(); } }; @@ -218,7 +218,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { const msg = { type: TrackingTypes.FinishTracking }; this.brokerProcess.send(msg, (err: Error) => - this.$logger.trace(`Error while sending ${JSON.stringify(msg)}`) + this.$logger.trace(`Error while sending ${JSON.stringify(msg)}`), ); } else { resolve(); @@ -227,7 +227,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { } private forcefullyTrackInGoogleAnalytics( - gaSettings: IGoogleAnalyticsData + gaSettings: IGoogleAnalyticsData, ): Promise { gaSettings.customDimensions = gaSettings.customDimensions || {}; gaSettings.customDimensions[GoogleAnalyticsCustomDimensions.client] = @@ -240,18 +240,18 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { type: TrackingTypes.GoogleAnalyticsData, category: AnalyticsClients.Cli, }, - gaSettings + gaSettings, ); this.$logger.trace( "Will send the following information to Google Analytics:", - googleAnalyticsData + googleAnalyticsData, ); return this.sendMessageToBroker(googleAnalyticsData); } private setProjectRelatedCustomDimensions( customDimensions: IStringDictionary, - projectDir?: string + projectDir?: string, ): IStringDictionary { if (!projectDir) { try { @@ -260,7 +260,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { // In case there's no project dir here, the above getter will fail. this.$logger.trace( "Unable to get the projectDir from projectHelper", - err + err, ); } } @@ -269,9 +269,8 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { const projectData = this.$projectDataService.getProjectData(projectDir); customDimensions[GoogleAnalyticsCustomDimensions.projectType] = projectData.projectType; - customDimensions[ - GoogleAnalyticsCustomDimensions.isShared - ] = projectData.isShared.toString(); + customDimensions[GoogleAnalyticsCustomDimensions.isShared] = + projectData.isShared.toString(); } return customDimensions; @@ -302,7 +301,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { { stdio: ["ignore", "ignore", "ignore", "ipc"], detached: true, - } + }, ); broker.unref(); @@ -353,7 +352,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { private async sendInfoForTracking( trackingInfo: ITrackingInformation, - settingName: string + settingName: string, ): Promise { await this.initAnalyticsStatuses(); @@ -366,7 +365,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { } private async sendMessageToBroker( - message: ITrackingInformation + message: ITrackingInformation, ): Promise { let broker: ChildProcess; try { @@ -383,7 +382,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { } catch (err) { this.$logger.trace( "Error while trying to send message to broker:", - err + err, ); resolve(); } @@ -413,9 +412,8 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { private async getStatus(settingName: string): Promise { if (!_.has(this.analyticsStatuses, settingName)) { - const settingValue = await this.$userSettingsService.getSettingValue< - string - >(settingName); + const settingValue = + await this.$userSettingsService.getSettingValue(settingName); if (settingValue) { const isEnabled = toBoolean(settingValue); @@ -439,7 +437,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { private async getHumanReadableStatusMessage( settingName: string, - readableSettingName: string + readableSettingName: string, ): Promise { let status: string = null; @@ -470,7 +468,7 @@ export class AnalyticsService implements IAnalyticsService, IDisposable { return this.sendInfoForTracking( data, - this.$staticConfig.ERROR_REPORT_SETTING_NAME + this.$staticConfig.ERROR_REPORT_SETTING_NAME, ); } } diff --git a/lib/services/android-device-debug-service.ts b/lib/services/android-device-debug-service.ts index 90dcd65679..7bf38a4ec4 100644 --- a/lib/services/android-device-debug-service.ts +++ b/lib/services/android-device-debug-service.ts @@ -6,7 +6,7 @@ import { IDeviceDebugService, IDebugData, IDebugOptions, - IDebugResultInfo, + IDebugResultInfo } from "../definitions/debug"; import { IStaticConfig } from "../declarations"; import { IErrors, INet } from "../common/declarations"; @@ -16,7 +16,8 @@ import * as _ from "lodash"; export class AndroidDeviceDebugService extends DebugServiceBase - implements IDeviceDebugService { + implements IDeviceDebugService +{ private _packageName: string; private deviceIdentifier: string; @@ -87,7 +88,7 @@ export class AndroidDeviceDebugService return this.device.adb.executeCommand([ "forward", "--remove", - `tcp:${port}`, + `tcp:${port}` ]); } @@ -99,7 +100,7 @@ export class AndroidDeviceDebugService let port = -1; const forwardsResult = await this.device.adb.executeCommand([ "forward", - "--list", + "--list" ]); const unixSocketName = `${packageName}-inspectorServer`; @@ -121,7 +122,7 @@ export class AndroidDeviceDebugService await this.$cleanupService.addCleanupCommand({ command: await this.$staticConfig.getAdbFilePath(), - args: ["-s", deviceId, "forward", "--remove", `tcp:${port}`], + args: ["-s", deviceId, "forward", "--remove", `tcp:${port}`] }); return port; @@ -135,7 +136,7 @@ export class AndroidDeviceDebugService await this.device.adb.executeCommand([ "forward", `tcp:${local}`, - `localabstract:${remote}`, + `localabstract:${remote}` ]); } @@ -191,7 +192,7 @@ export class AndroidDeviceDebugService const forwardsResult = await this.device.adb.executeShellCommand([ "ls", "-s", - debuggerStartedFilePath, + debuggerStartedFilePath ]); maxWait--; @@ -214,9 +215,8 @@ export class AndroidDeviceDebugService appIdentifier: string, deviceIdentifier: string ): Promise { - const debuggableApps = await this.$androidProcessService.getDebuggableApps( - deviceIdentifier - ); + const debuggableApps = + await this.$androidProcessService.getDebuggableApps(deviceIdentifier); return !!_.find(debuggableApps, (a) => a.appIdentifier === appIdentifier); } diff --git a/lib/services/android-plugin-build-service.ts b/lib/services/android-plugin-build-service.ts index 77cda49684..dfc2c508d1 100644 --- a/lib/services/android-plugin-build-service.ts +++ b/lib/services/android-plugin-build-service.ts @@ -6,7 +6,7 @@ import { RESOURCES_DIR, AndroidBuildDefaults, PLUGIN_BUILD_DATA_FILENAME, - SCOPED_ANDROID_RUNTIME_NAME, + SCOPED_ANDROID_RUNTIME_NAME } from "../constants"; import { getShortPluginName, hook, quoteString } from "../common/helpers"; import { Builder, parseString } from "xml2js"; @@ -14,14 +14,14 @@ import { IRuntimeGradleVersions, INodePackageManager, IWatchIgnoreListService, - IOptions, + IOptions } from "../declarations"; import { IPlatformsDataService } from "../definitions/platform"; import { IProjectData, IProjectDataService } from "../definitions/project"; import { IAndroidPluginBuildService, IPluginBuildOptions, - IBuildAndroidPluginData, + IBuildAndroidPluginData } from "../definitions/android-plugin-migrator"; import { IFileSystem, @@ -30,7 +30,7 @@ import { IErrors, IHooksService, IFsStats, - IStringDictionary, + IStringDictionary } from "../common/declarations"; import { IFilesHashService } from "../definitions/files-hash-service"; import { IInjector } from "../common/definitions/yok"; @@ -63,8 +63,8 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { private static MANIFEST_ROOT = { $: { - "xmlns:android": "http://schemas.android.com/apk/res/android", - }, + "xmlns:android": "http://schemas.android.com/apk/res/android" + } }; private getAndroidSourceDirectories(source: string): Array { @@ -122,7 +122,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { private createManifestContent(packageName: string): string { const newManifest: any = { - manifest: AndroidPluginBuildService.MANIFEST_ROOT, + manifest: AndroidPluginBuildService.MANIFEST_ROOT }; newManifest.manifest["$"]["package"] = packageName; const xmlBuilder: any = new Builder(); @@ -239,7 +239,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { pluginTempDir, pluginSourceDir: options.platformsAndroidDirPath, shortPluginName, - fileHashesInfo: pluginSourceFileHashesInfo, + fileHashesInfo: pluginSourceFileHashesInfo }); if (shouldBuildAar) { @@ -266,7 +266,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { gradleArgs: options.gradleArgs, pluginDir: pluginTempDir, pluginName: options.pluginName, - projectDir: options.projectDir, + projectDir: options.projectDir }); this.$watchIgnoreListService.addFileToIgnoreList( path.join(options.aarOutputDir, `${shortPluginName}.aar`) @@ -411,9 +411,8 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { this.$fs.copyFile(allGradleTemplateFiles, pluginTempDir); this.addCompileDependencies(platformsAndroidDirPath, buildGradlePath); - const runtimeGradleVersions = await this.getRuntimeGradleVersions( - projectDir - ); + const runtimeGradleVersions = + await this.getRuntimeGradleVersions(projectDir); this.replaceGradleVersion( pluginTempDir, runtimeGradleVersions.gradleVersion @@ -475,9 +474,8 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { if (!runtimeGradleVersions) { const latestRuntimeVersion = await this.getLatestRuntimeVersion(); - runtimeGradleVersions = await this.getGradleVersions( - latestRuntimeVersion - ); + runtimeGradleVersions = + await this.getGradleVersions(latestRuntimeVersion); this.$logger.trace( `Got gradle versions ${JSON.stringify( runtimeGradleVersions @@ -495,7 +493,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { let result = await this.$packageManager.view( SCOPED_ANDROID_RUNTIME_NAME, { - "dist-tags": true, + "dist-tags": true } ); result = result?.["dist-tags"] ?? result; @@ -533,7 +531,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { const installedRuntimePackageJSONPath = resolvePackageJSONPath( SCOPED_ANDROID_RUNTIME_NAME, { - paths: [this.$projectData.projectDir], + paths: [this.$projectData.projectDir] } ); @@ -555,7 +553,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { return { gradleVersion: gradle, - gradleAndroidPluginVersion: gradleAndroid, + gradleAndroidPluginVersion: gradleAndroid }; } @@ -564,7 +562,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { return { gradleVersion: version, - gradleAndroidPluginVersion: android, + gradleAndroidPluginVersion: android }; } @@ -612,7 +610,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { // covert output to the new format... output = { gradle: version, - gradleAndroid: android, + gradleAndroid: android }; } @@ -813,7 +811,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { "assembleRelease", `-PtempBuild=true`, `-PappPath=${this.$projectData.getAppDirectoryPath()}`, - `-PappResourcesPath=${this.$projectData.getAppResourcesDirectoryPath()}`, + `-PappResourcesPath=${this.$projectData.getAppResourcesDirectoryPath()}` ]; if (pluginBuildSettings.gradleArgs) { @@ -827,7 +825,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { const opts: any = { cwd: pluginBuildSettings.pluginDir, stdio: "inherit", - shell: this.$hostInfo.isWindows, + shell: this.$hostInfo.isWindows }; if (this.$options.hostProjectPath) { @@ -836,7 +834,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { cwd(), this.$options.hostProjectPath ), // TODO: couldn't `hostProjectPath` have an absolute path already? - ...process.env, // TODO: any other way to pass automatically the current process.env? + ...process.env // TODO: any other way to pass automatically the current process.env? }; } diff --git a/lib/services/android-project-service.ts b/lib/services/android-project-service.ts index d2ce5ca76f..a4cb5a2242 100644 --- a/lib/services/android-project-service.ts +++ b/lib/services/android-project-service.ts @@ -11,19 +11,19 @@ import { performanceLog } from ".././common/decorators"; import { IProjectData, IProjectDataService, - IValidatePlatformOutput, + IValidatePlatformOutput } from "../definitions/project"; import { IPlatformData, IBuildOutputOptions, IPlatformEnvironmentRequirements, - IValidBuildOutputData, + IValidBuildOutputData } from "../definitions/platform"; import { IAndroidToolsInfo, IAndroidResourcesMigrationService, IOptions, - IDependencyData, + IDependencyData } from "../declarations"; import { IAndroidBuildData } from "../definitions/build"; import { IPluginData } from "../definitions/plugins"; @@ -33,16 +33,16 @@ import { IAnalyticsService, IDictionary, IRelease, - ISpawnResult, + ISpawnResult } from "../common/declarations"; import { IAndroidPluginBuildService, - IPluginBuildOptions, + IPluginBuildOptions } from "../definitions/android-plugin-migrator"; import { IFilesHashService } from "../definitions/files-hash-service"; import { IGradleCommandService, - IGradleBuildService, + IGradleBuildService } from "../definitions/gradle"; import { IInjector } from "../common/definitions/yok"; import { injector } from "../common/yok"; @@ -169,28 +169,28 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject : path.join( projectData.platformsDir, AndroidProjectService.ANDROID_PLATFORM_NAME - ); + ); const appDestinationDirectoryArr = [ projectRoot, this.$options.hostProjectModuleName, constants.SRC_DIR, constants.MAIN_DIR, - constants.ASSETS_DIR, + constants.ASSETS_DIR ]; const configurationsDirectoryArr = [ projectRoot, this.$options.hostProjectModuleName, constants.SRC_DIR, constants.MAIN_DIR, - constants.MANIFEST_FILE_NAME, + constants.MANIFEST_FILE_NAME ]; const deviceBuildOutputArr = [ projectRoot, this.$options.hostProjectModuleName, constants.BUILD_DIR, constants.OUTPUTS_DIR, - constants.APK_DIR, + constants.APK_DIR ]; const packageName = this.getProjectNameFromId(projectData); @@ -230,8 +230,8 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject return { packageNames: [ `${this.$options.hostProjectModuleName}${constants.AAB_EXTENSION_NAME}`, - `${this.$options.hostProjectModuleName}-${buildMode}${constants.AAB_EXTENSION_NAME}`, - ], + `${this.$options.hostProjectModuleName}-${buildMode}${constants.AAB_EXTENSION_NAME}` + ] }; } @@ -240,14 +240,14 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject `${packageName}-${buildMode}${constants.APK_EXTENSION_NAME}`, `${projectData.projectName}-${buildMode}${constants.APK_EXTENSION_NAME}`, `${projectData.projectName}${constants.APK_EXTENSION_NAME}`, - `${this.$options.hostProjectModuleName}-${buildMode}${constants.APK_EXTENSION_NAME}`, + `${this.$options.hostProjectModuleName}-${buildMode}${constants.APK_EXTENSION_NAME}` ], regexes: [ new RegExp( `(${packageName}|${this.$options.hostProjectModuleName})-.*-(${Configurations.Debug}|${Configurations.Release})(-unsigned)?${constants.APK_EXTENSION_NAME}`, "i" - ), - ], + ) + ] }; }, configurationFileName: constants.MANIFEST_FILE_NAME, @@ -257,7 +257,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject constants.MAIN_DIR, constants.MANIFEST_FILE_NAME ), - fastLivesyncFileExtensions: [".jpg", ".gif", ".png", ".bmp", ".webp"], // http://developer.android.com/guide/appendix/media-formats.html + fastLivesyncFileExtensions: [".jpg", ".gif", ".png", ".bmp", ".webp"] // http://developer.android.com/guide/appendix/media-formats.html }; } @@ -309,17 +309,17 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject platform: this.getPlatformData(projectData).normalizedPlatformName, projectDir: projectData.projectDir, options, - notConfiguredEnvOptions, + notConfiguredEnvOptions }); this.$androidToolsInfo.validateInfo({ showWarningsAsErrors: true, projectDir: projectData.projectDir, - validateTargetSdk: true, + validateTargetSdk: true }); return { - checkEnvironmentRequirementsOutput, + checkEnvironmentRequirementsOutput }; } @@ -343,7 +343,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject this.getPlatformData(projectData).projectRoot ); const androidToolsInfo = this.$androidToolsInfo.getToolsInfo({ - projectDir: projectData.projectDir, + projectDir: projectData.projectDir }); const targetSdkVersion = androidToolsInfo && androidToolsInfo.targetSdkVersion; @@ -393,7 +393,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject dir.substr( AndroidProjectService.VALUES_VERSION_DIRNAME_PREFIX.length ) - ), + ) }; }) .filter( @@ -667,7 +667,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject } const androidToolsInfo = this.$androidToolsInfo.getToolsInfo({ - projectDir: projectData.projectDir, + projectDir: projectData.projectDir }); const compileSdkVersion = androidToolsInfo && androidToolsInfo.compileSdkVersion; @@ -691,7 +691,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject pluginName: pluginData.name, platformsAndroidDirPath: pluginPlatformsFolderPath, aarOutputDir: pluginPlatformsFolderPath, - tempPluginDirPath: path.join(projectData.platformsDir, "tempPlugin"), + tempPluginDirPath: path.join(projectData.platformsDir, "tempPlugin") }; if (await this.$androidPluginBuildService.buildAar(options)) { @@ -733,14 +733,17 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject private filterUniqueDependencies( dependencies: IDependencyData[] ): IDependencyData[] { - const depsDictionary = dependencies.reduce((dict, dep) => { - const collision = dict[dep.name]; - // in case there are multiple dependencies to the same module, the one declared in the package.json takes precedence - if (!collision || collision.depth > dep.depth) { - dict[dep.name] = dep; - } - return dict; - }, >{}); + const depsDictionary = dependencies.reduce( + (dict, dep) => { + const collision = dict[dep.name]; + // in case there are multiple dependencies to the same module, the one declared in the package.json takes precedence + if (!collision || collision.depth > dep.depth) { + dict[dep.name] = dep; + } + return dict; + }, + >{} + ); return _.values(depsDictionary); } @@ -753,7 +756,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject : path.join( projectData.platformsDir, AndroidProjectService.ANDROID_PLATFORM_NAME - ); + ); const dependenciesJsonPath = path.join( platformDir, constants.DEPENDENCIES_JSON_NAME @@ -774,7 +777,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject (nativeDep) => nativeDep.name === dep ) !== -1 ); - }), + }) } as NativeDependency; } ); @@ -792,7 +795,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject } private static isNativeAndroidDependency({ - nativescript, + nativescript }: IDependencyData): boolean { return ( nativescript && @@ -807,7 +810,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject { cwd: projectRoot, message: "Gradle stop services...", - stdio: "pipe", + stdio: "pipe" } ); @@ -816,7 +819,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject public async cleanProject(projectRoot: string): Promise { await this.$gradleBuildService.cleanProject(projectRoot, { - release: false, + release: false }); } @@ -825,7 +828,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject projectData: IProjectData ): Promise { const adb = this.$injector.resolve(DeviceAndroidDebugBridge, { - identifier: deviceIdentifier, + identifier: deviceIdentifier }); const deviceRootPath = `${LiveSyncPaths.ANDROID_TMP_DIR_NAME}/${projectData.projectIdentifiers.android}`; await adb.executeShellCommand(["rm", "-rf", deviceRootPath]); @@ -882,7 +885,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject this.$options.hostProjectModuleName, constants.SRC_DIR, constants.MAIN_DIR, - constants.RESOURCES_DIR, + constants.RESOURCES_DIR ]; return path.join( @@ -896,7 +899,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject ): string { const resourcePath: string[] = [ this.$options.hostProjectModuleName, - constants.SRC_DIR, + constants.SRC_DIR ]; return path.join( @@ -958,7 +961,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject const hasKotlinRuntimeClassesData = `hasKotlinRuntimeClasses${analyticsDelimiter}${buildStatistics.kotlinUsage.hasKotlinRuntimeClasses}`; await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: constants.TrackActionNames.UsingKotlin, - additionalData: `${hasUseKotlinPropertyInAppData}${analyticsDelimiter}${hasKotlinRuntimeClassesData}`, + additionalData: `${hasUseKotlinPropertyInAppData}${analyticsDelimiter}${hasKotlinRuntimeClassesData}` }); } } catch (e) { diff --git a/lib/services/android-resources-migration-service.ts b/lib/services/android-resources-migration-service.ts index 352d6cee44..55ce2548d2 100644 --- a/lib/services/android-resources-migration-service.ts +++ b/lib/services/android-resources-migration-service.ts @@ -6,7 +6,8 @@ import { IFileSystem, IErrors } from "../common/declarations"; import { injector } from "../common/yok"; export class AndroidResourcesMigrationService - implements IAndroidResourcesMigrationService { + implements IAndroidResourcesMigrationService +{ private static ANDROID_DIR = "Android"; private static ANDROID_DIR_TEMP = "Android-Updated"; private static ANDROID_DIR_OLD = "Android-Pre-v4"; diff --git a/lib/services/apple-portal/srp/srp-wrapper.ts b/lib/services/apple-portal/srp/srp-wrapper.ts index 0ff2cf56bc..993312c1a8 100644 --- a/lib/services/apple-portal/srp/srp-wrapper.ts +++ b/lib/services/apple-portal/srp/srp-wrapper.ts @@ -36,13 +36,13 @@ export class GSASRPAuthenticator { protocol: "s2k" | "s2k_fo", password: string, salt: Uint8Array, - iterations: number + iterations: number, ) { let passHash = new Uint8Array( - await util.hash(srp.h, stringToU8Array(password)) + await util.hash(srp.h, stringToU8Array(password) as any), ); if (protocol == "s2k_fo") { - passHash = stringToU8Array(util.toHex(passHash)); + passHash = stringToU8Array(util.toHex(passHash)) as any; } let imported = await crypto.subtle.importKey( @@ -50,7 +50,7 @@ export class GSASRPAuthenticator { passHash, { name: "PBKDF2" }, false, - ["deriveBits"] + ["deriveBits"], ); let derived = await crypto.subtle.deriveBits( { @@ -60,7 +60,7 @@ export class GSASRPAuthenticator { salt, }, imported, - 256 + 256, ); return new Uint8Array(derived); @@ -71,10 +71,10 @@ export class GSASRPAuthenticator { this.srpClient = await srp.newClient( stringToU8Array(this.username), // provide fake passsword because we need to get data from server - new Uint8Array() + new Uint8Array(), ); let a = Buffer.from(util.bytesFromBigint(this.srpClient.A)).toString( - "base64" + "base64", ); return { a, @@ -84,7 +84,7 @@ export class GSASRPAuthenticator { } async getComplete( password: string, - serverData: ServerSRPInitResponse + serverData: ServerSRPInitResponse, ): Promise< Pick > { @@ -98,7 +98,7 @@ export class GSASRPAuthenticator { serverData.protocol, password, salt, - iterations + iterations, ); this.srpClient.p = derived; await this.srpClient.generate(salt, serverPub); diff --git a/lib/services/assets-generation/assets-generation-service.ts b/lib/services/assets-generation/assets-generation-service.ts index e6909b5d5d..6f669d5bf4 100644 --- a/lib/services/assets-generation/assets-generation-service.ts +++ b/lib/services/assets-generation/assets-generation-service.ts @@ -1,4 +1,4 @@ -import * as Jimp from "jimp"; +import { Jimp, cssColorToHex, rgbaToInt, JimpInstance } from "jimp"; import * as Color from "color"; import { exported } from "../../common/decorators"; import { AssetConstants } from "../../constants"; @@ -36,12 +36,12 @@ export class AssetsGenerationService implements IAssetsGenerationService { private $logger: ILogger, private $projectDataService: IProjectDataService, private $fs: IFileSystem, - private $options: IOptions + private $options: IOptions, ) {} @exported("assetsGenerationService") public async generateIcons( - resourceGenerationData: IResourceGenerationData + resourceGenerationData: IResourceGenerationData, ): Promise { if (this.$options.hostProjectPath) { return; @@ -50,44 +50,43 @@ export class AssetsGenerationService implements IAssetsGenerationService { this.$logger.info("Generating icons ..."); await this.generateImagesForDefinitions( resourceGenerationData, - this.propertiesToEnumerate.icon + this.propertiesToEnumerate.icon, ); this.$logger.info("Icons generation completed."); } @exported("assetsGenerationService") public async generateSplashScreens( - splashesGenerationData: IResourceGenerationData + splashesGenerationData: IResourceGenerationData, ): Promise { this.$logger.info("Generating splash screens ..."); await this.generateImagesForDefinitions( splashesGenerationData, - this.propertiesToEnumerate.splash + this.propertiesToEnumerate.splash, ); this.$logger.info("Splash screens generation completed."); } private async generateImagesForDefinitions( generationData: IResourceGenerationData, - propertiesToEnumerate: string[] + propertiesToEnumerate: string[], ): Promise { const background = generationData.background || "white"; - const assetsStructure = await this.$projectDataService.getAssetsStructure( - generationData - ); + const assetsStructure = + await this.$projectDataService.getAssetsStructure(generationData); const assetItems = _(assetsStructure) .filter( (assetGroup: IAssetGroup, platform: string) => !generationData.platform || - platform.toLowerCase() === generationData.platform.toLowerCase() + platform.toLowerCase() === generationData.platform.toLowerCase(), ) .map((assetGroup: IAssetGroup) => _.filter( assetGroup, (assetSubGroup: IAssetSubGroup, imageTypeKey: string) => - assetSubGroup && propertiesToEnumerate.indexOf(imageTypeKey) !== -1 - ) + assetSubGroup && propertiesToEnumerate.indexOf(imageTypeKey) !== -1, + ), ) .flatten() .map((assetSubGroup: IAssetSubGroup) => assetSubGroup.images) @@ -114,7 +113,7 @@ export class AssetsGenerationService implements IAssetsGenerationService { assetItem.data?.default ?? "white"; - const colorHEX: number = Jimp.cssColorToHex(color); + const colorHEX: number = cssColorToHex(color); const hex = colorHEX?.toString(16).substring(0, 6) ?? "FFFFFF"; this.$fs.writeFile( @@ -124,11 +123,11 @@ export class AssetsGenerationService implements IAssetsGenerationService { ``, ` #${hex.toUpperCase()}`, ``, - ].join(EOL) + ].join(EOL), ); } catch (err) { this.$logger.info( - `Failed to write provided color to ${assetItem.path} -> ${colorName}. See --log trace for more info.` + `Failed to write provided color to ${assetItem.path} -> ${colorName}. See --log trace for more info.`, ); this.$logger.trace(err); } @@ -142,7 +141,7 @@ export class AssetsGenerationService implements IAssetsGenerationService { tempScale = assetItem.scale; } else { const splittedElements = `${assetItem.scale}`.split( - AssetConstants.sizeDelimiter + AssetConstants.sizeDelimiter, ); tempScale = splittedElements && @@ -160,31 +159,31 @@ export class AssetsGenerationService implements IAssetsGenerationService { if (!width || !height) { this.$logger.warn( - `Image ${assetItem.filename} is skipped as its width and height are invalid.` + `Image ${assetItem.filename} is skipped as its width and height are invalid.`, ); continue; } - let image: Jimp; + let image: JimpInstance; switch (operation) { case Operations.OverlayWith: const overlayImageScale = assetItem.overlayImageScale || AssetConstants.defaultOverlayImageScale; const imageResize = Math.round( - Math.min(width, height) * overlayImageScale + Math.min(width, height) * overlayImageScale, ); image = await this.resize( generationData.imagePath, imageResize, - imageResize + imageResize, ); image = this.generateImage( background, width, height, outputPath, - image + image, ); break; case Operations.Blank: @@ -198,7 +197,7 @@ export class AssetsGenerationService implements IAssetsGenerationService { image = await this.resize( generationData.imagePath, assetItem.width, - assetItem.height + assetItem.height, ); // The scale will apply to the underlying layer of the generated image image = this.generateImage( @@ -206,7 +205,7 @@ export class AssetsGenerationService implements IAssetsGenerationService { width, height, outputPath, - image + image, ); break; default: @@ -221,20 +220,23 @@ export class AssetsGenerationService implements IAssetsGenerationService { // But NathanaelA recommended the below change and it works so maybe that's just what we go with. // // image = image.rgba(false); - image = image.colorType(2); + image = (image as any).colorType(2); } - image.write(outputPath); + image.write(outputPath as any); } } private async resize( imagePath: string, width: number, - height: number - ): Promise { + height: number, + ): Promise { const image = await Jimp.read(imagePath); - return image.scaleToFit(width, height); + return image.scaleToFit({ + w: width, + h: height, + }) as any; } private generateImage( @@ -242,8 +244,8 @@ export class AssetsGenerationService implements IAssetsGenerationService { width: number, height: number, outputPath: string, - overlayImage?: Jimp - ): Jimp { + overlayImage?: JimpInstance, + ): JimpInstance { // Typescript declarations for Jimp are not updated to define the constructor with backgroundColor so we workaround it by casting it to for this case only. const J = Jimp; const backgroundColor = this.getRgbaNumber(background); @@ -263,12 +265,7 @@ export class AssetsGenerationService implements IAssetsGenerationService { const colorRgb = color.rgb(); const alpha = Math.round(colorRgb.alpha() * 255); - return Jimp.rgbaToInt( - colorRgb.red(), - colorRgb.green(), - colorRgb.blue(), - alpha - ); + return rgbaToInt(colorRgb.red(), colorRgb.green(), colorRgb.blue(), alpha); } } diff --git a/lib/services/build-artifacts-service.ts b/lib/services/build-artifacts-service.ts index 1a2bfc94af..2be42a290e 100644 --- a/lib/services/build-artifacts-service.ts +++ b/lib/services/build-artifacts-service.ts @@ -3,7 +3,7 @@ import { IBuildArtifactsService } from "../definitions/build"; import { IPlatformData, IBuildOutputOptions, - IValidBuildOutputData, + IValidBuildOutputData } from "../definitions/platform"; import { IApplicationPackage } from "../declarations"; import { IErrors, IFileSystem } from "../common/declarations"; @@ -151,7 +151,7 @@ export class BuildArtifactsService implements IBuildArtifactsService { return packages.map((packageName) => { return { packageName, - time: this.$fs.getFsStats(packageName).mtime, + time: this.$fs.getFsStats(packageName).mtime }; }); } diff --git a/lib/services/build-info-file-service.ts b/lib/services/build-info-file-service.ts index bdd5a2609b..cee871c228 100644 --- a/lib/services/build-info-file-service.ts +++ b/lib/services/build-info-file-service.ts @@ -61,12 +61,11 @@ export class BuildInfoFileService implements IBuildInfoFileService { ): void { const buildInfoFile = path.join(buildInfoFileDirname, buildInfoFileName); - const prepareInfo = this.$projectChangesService.getPrepareInfo( - platformData - ); + const prepareInfo = + this.$projectChangesService.getPrepareInfo(platformData); const buildInfo: IBuildInfo = { prepareTime: prepareInfo.changesRequireBuildTime, - buildTime: new Date().toString(), + buildTime: new Date().toString() }; this.$fs.writeJson(buildInfoFile, buildInfo); @@ -96,13 +95,11 @@ export class BuildInfoFileService implements IBuildInfoFileService { projectData: IProjectData ): Promise { const platform = device.deviceInfo.platform.toLowerCase(); - const deviceRootPath = await this.$devicePathProvider.getDeviceProjectRootPath( - device, - { + const deviceRootPath = + await this.$devicePathProvider.getDeviceProjectRootPath(device, { appIdentifier: projectData.projectIdentifiers[platform], - getDirname: true, - } - ); + getDirname: true + }); const result = helpers.fromWindowsRelativePathToUnix( path.join(deviceRootPath, buildInfoFileName) ); diff --git a/lib/services/cleanup-service.ts b/lib/services/cleanup-service.ts index 4255e94a60..74a4ab3231 100644 --- a/lib/services/cleanup-service.ts +++ b/lib/services/cleanup-service.ts @@ -11,7 +11,7 @@ import { IRequestCleanupMessage, IFileCleanupMessage, IJSCommand, - IJSCleanupMessage, + IJSCleanupMessage } from "../detached-processes/cleanup-process-definitions"; import { injector } from "../common/yok"; @@ -36,7 +36,7 @@ export class CleanupService implements ICleanupService { const cleanupProcess = await this.getCleanupProcess(); cleanupProcess.send({ messageType: CleanupProcessMessage.AddCleanCommand, - commandInfo, + commandInfo }); } @@ -46,7 +46,7 @@ export class CleanupService implements ICleanupService { const cleanupProcess = await this.getCleanupProcess(); cleanupProcess.send({ messageType: CleanupProcessMessage.RemoveCleanCommand, - commandInfo, + commandInfo }); } @@ -54,7 +54,7 @@ export class CleanupService implements ICleanupService { const cleanupProcess = await this.getCleanupProcess(); cleanupProcess.send({ messageType: CleanupProcessMessage.AddRequest, - requestInfo, + requestInfo }); } @@ -62,7 +62,7 @@ export class CleanupService implements ICleanupService { const cleanupProcess = await this.getCleanupProcess(); cleanupProcess.send({ messageType: CleanupProcessMessage.RemoveRequest, - requestInfo, + requestInfo }); } @@ -70,7 +70,7 @@ export class CleanupService implements ICleanupService { const cleanupProcess = await this.getCleanupProcess(); cleanupProcess.send({ messageType: CleanupProcessMessage.AddDeleteFileAction, - filePath, + filePath }); } @@ -78,7 +78,7 @@ export class CleanupService implements ICleanupService { const cleanupProcess = await this.getCleanupProcess(); cleanupProcess.send({ messageType: CleanupProcessMessage.RemoveDeleteFileAction, - filePath, + filePath }); } @@ -86,7 +86,7 @@ export class CleanupService implements ICleanupService { const cleanupProcess = await this.getCleanupProcess(); cleanupProcess.send({ messageType: CleanupProcessMessage.AddJSFileToRequire, - jsCommand, + jsCommand }); } @@ -94,7 +94,7 @@ export class CleanupService implements ICleanupService { const cleanupProcess = await this.getCleanupProcess(); cleanupProcess.send({ messageType: CleanupProcessMessage.RemoveJSFileToRequire, - jsCommand, + jsCommand }); } @@ -135,7 +135,7 @@ export class CleanupService implements ICleanupService { cleanupProcessArgs, { stdio: ["ignore", "ignore", "ignore", "ipc"], - detached: true, + detached: true } ); @@ -176,7 +176,7 @@ export class CleanupService implements ICleanupService { private getCleanupProcessArgs(): string[] { const cleanupProcessArgs = [ path.join(__dirname, "..", "detached-processes", "cleanup-process.js"), - this.$staticConfig.PATH_TO_BOOTSTRAP, + this.$staticConfig.PATH_TO_BOOTSTRAP ]; if (this.pathToCleanupLogFile) { @@ -203,7 +203,7 @@ export class CleanupService implements ICleanupService { return { command, - args, + args }; } } diff --git a/lib/services/cocoapods-platform-manager.ts b/lib/services/cocoapods-platform-manager.ts index 1d4834b7d7..9137d2d9f3 100644 --- a/lib/services/cocoapods-platform-manager.ts +++ b/lib/services/cocoapods-platform-manager.ts @@ -6,7 +6,7 @@ import { PODFILE_NAME } from "../constants"; import { IProjectData, ICocoaPodsPlatformManager, - IPodfilePlatformData, + IPodfilePlatformData } from "../definitions/project"; import { injector } from "../common/yok"; @@ -67,9 +67,8 @@ export class CocoaPodsPlatformManager implements ICocoaPodsPlatformManager { ); const allPodfiles = projectPodfileContent.match(podfileContentRegExp) || []; - const selectedPlatformData = this.selectPlatformDataFromProjectPodfile( - allPodfiles - ); + const selectedPlatformData = + this.selectPlatformDataFromProjectPodfile(allPodfiles); const newPlatformSection = selectedPlatformData ? this.buildPlatformSection(selectedPlatformData) : ""; @@ -101,7 +100,7 @@ export class CocoaPodsPlatformManager implements ICocoaPodsPlatformManager { podfilePlatformData = { content: firstGroup, version: secondGroup, - path: podfilePath, + path: podfilePath }; return `# ${substring.trim()}`; } @@ -110,9 +109,7 @@ export class CocoaPodsPlatformManager implements ICocoaPodsPlatformManager { return { replacedContent, podfilePlatformData }; } - private getPlatformSectionData( - projectPodfileContent: string - ): { + private getPlatformSectionData(projectPodfileContent: string): { podfilePlatformData: IPodfilePlatformData; platformSectionContent: string; } { @@ -128,8 +125,8 @@ export class CocoaPodsPlatformManager implements ICocoaPodsPlatformManager { podfilePlatformData: { path: match[1].trim(), content: match[2], - version: match[3], - }, + version: match[3] + } }; } @@ -156,7 +153,7 @@ export class CocoaPodsPlatformManager implements ICocoaPodsPlatformManager { selectedPlatformData = { version: null, content: platformMatch[1], - path: podfilePathMatch[1], + path: podfilePathMatch[1] }; return false; } @@ -173,7 +170,7 @@ export class CocoaPodsPlatformManager implements ICocoaPodsPlatformManager { selectedPlatformData = { version: platformMatch[2], content: platformMatch[1], - path: podfilePathMatch[1], + path: podfilePathMatch[1] }; } } diff --git a/lib/services/cocoapods-service.ts b/lib/services/cocoapods-service.ts index 17e433feae..e037064d70 100644 --- a/lib/services/cocoapods-service.ts +++ b/lib/services/cocoapods-service.ts @@ -9,7 +9,7 @@ import { IProjectData, ICocoaPodsPlatformManager, ICocoaPodsService, - IPodfilePlatformData, + IPodfilePlatformData } from "../definitions/project"; import { IPlatformData } from "../definitions/platform"; import { IConfiguration, IXcconfigService } from "../declarations"; @@ -17,7 +17,7 @@ import { IFileSystem, IChildProcess, IErrors, - ISpawnResult, + ISpawnResult } from "../common/declarations"; import { injector } from "../common/yok"; import { XcodeSelectService } from "../common/services/xcode-select-service"; @@ -72,7 +72,7 @@ export class CocoaPodsService implements ICocoaPodsService { // in which case, we should run it natively. const res: string = await this.$childProcess .exec("arch -x86_64 pod --version", null, { - showStderr: true, + showStderr: true }) .then((res) => res.stdout + " " + res.stderr) .catch((err) => err.message); @@ -236,7 +236,7 @@ end`.trim(); extensionFolderPath, name, constants.PODFILE_NAME - ), + ) })); extensionsPodfile.forEach(({ targetName, podfilePath }) => { @@ -307,7 +307,7 @@ end`.trim(); ? this.getPodfileContentWithoutTarget( projectData, this.$fs.readText(pathToProjectPodfile) - ) + ) : ""; if ( @@ -619,7 +619,7 @@ end`.trim(); pluginPodFilePath )}${EOL}${replacedContent}${EOL}${this.getPluginPodfileEnd()}`, replacedFunctions: data.newFunctions, - podfilePlatformData, + podfilePlatformData }; } diff --git a/lib/services/debug-data-service.ts b/lib/services/debug-data-service.ts index 14ef2c626a..5823ac2910 100644 --- a/lib/services/debug-data-service.ts +++ b/lib/services/debug-data-service.ts @@ -2,7 +2,7 @@ import { IProjectData } from "../definitions/project"; import { IDebugOptions, IDebugData, - IDebugDataService, + IDebugDataService } from "../definitions/debug"; import { injector } from "../common/yok"; @@ -24,7 +24,7 @@ export class DebugDataService implements IDebugDataService { projectDir: projectData.projectDir, deviceIdentifier, projectName: projectData.projectName, - debugOptions, + debugOptions }; } } diff --git a/lib/services/debug-service-base.ts b/lib/services/debug-service-base.ts index bf2017c6a7..dff40d1ebf 100644 --- a/lib/services/debug-service-base.ts +++ b/lib/services/debug-service-base.ts @@ -3,12 +3,13 @@ import { IDebugData, IDebugOptions, IDeviceDebugService, - IDebugResultInfo, + IDebugResultInfo } from "../definitions/debug"; export abstract class DebugServiceBase extends EventEmitter - implements IDeviceDebugService { + implements IDeviceDebugService +{ constructor( protected device: Mobile.IDevice, protected $devicesService: Mobile.IDevicesService @@ -33,7 +34,8 @@ export abstract class DebugServiceBase let isSearchedDevice = device.deviceInfo.identifier === deviceIdentifier; if (!isSearchedDevice) { - const deviceByDeviceOption = this.$devicesService.getDeviceByDeviceOption(); + const deviceByDeviceOption = + this.$devicesService.getDeviceByDeviceOption(); isSearchedDevice = deviceByDeviceOption && device.deviceInfo.identifier === diff --git a/lib/services/doctor-service.ts b/lib/services/doctor-service.ts index 8196762464..f6f0b98247 100644 --- a/lib/services/doctor-service.ts +++ b/lib/services/doctor-service.ts @@ -6,7 +6,7 @@ import { cache } from "../common/decorators"; import { TrackActionNames, NODE_MODULES_FOLDER_NAME, - TNS_CORE_MODULES_NAME, + TNS_CORE_MODULES_NAME } from "../constants"; import { doctor, constants } from "@nativescript/doctor"; import { IProjectDataService } from "../definitions/project"; @@ -19,7 +19,7 @@ import { IChildProcess, IFileSystem, ISettingsService, - ISpawnResult, + ISpawnResult } from "../common/declarations"; import { IJsonFileSettingsService } from "../common/definitions/json-file-settings-service"; import { IInjector } from "../common/definitions/yok"; @@ -43,7 +43,7 @@ export class DoctorService implements IDoctorService { "-NoNewWindow", "-Wait", "-ArgumentList", - "\"-NoProfile -ExecutionPolicy Bypass -Command iex ((new-object net.webclient).DownloadString('https://www.nativescript.org/setup/win'))\"", + "\"-NoProfile -ExecutionPolicy Bypass -Command iex ((new-object net.webclient).DownloadString('https://www.nativescript.org/setup/win'))\"" ]; @cache() @@ -87,13 +87,13 @@ export class DoctorService implements IDoctorService { const getInfosData: any = { projectDir: configOptions.projectDir, androidRuntimeVersion: configOptions.runtimeVersion, - platform: configOptions.platform, + platform: configOptions.platform }; const infos = await this.$terminalSpinnerService.execute< NativeScriptDoctor.IInfo[] >( { - text: `Getting environment information ${EOL}`, + text: `Getting environment information ${EOL}` }, () => this.getInfos({ forceCheck: configOptions.forceCheck }, getInfosData) @@ -152,20 +152,20 @@ export class DoctorService implements IDoctorService { platform: configOptions.platform, projectDir: configOptions.projectDir, runtimeVersion: configOptions.runtimeVersion, - options: configOptions.options, + options: configOptions.options }); } public async runSetupScript(): Promise { await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: TrackActionNames.RunSetupScript, - additionalData: "Starting", + additionalData: "Starting" }); if (this.$hostInfo.isLinux) { await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: TrackActionNames.RunSetupScript, - additionalData: "Skipped as OS is Linux", + additionalData: "Skipped as OS is Linux" }); return; } @@ -190,7 +190,7 @@ export class DoctorService implements IDoctorService { await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: TrackActionNames.RunSetupScript, - additionalData: "Finished", + additionalData: "Finished" }); } @@ -202,12 +202,12 @@ export class DoctorService implements IDoctorService { }): Promise { await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: TrackActionNames.CheckLocalBuildSetup, - additionalData: "Starting", + additionalData: "Starting" }); const sysInfoConfig: NativeScriptDoctor.ISysInfoConfig = { platform: configuration.platform, projectDir: configuration.projectDir, - androidRuntimeVersion: configuration.runtimeVersion, + androidRuntimeVersion: configuration.runtimeVersion }; const infos = await this.getInfos( { forceCheck: configuration && configuration.forceCheck }, @@ -221,7 +221,7 @@ export class DoctorService implements IDoctorService { this.$fs.deleteFile(this.jsonFileSettingsPath); await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: TrackActionNames.CheckLocalBuildSetup, - additionalData: `Warnings:${warnings.map((w) => w.message).join("__")}`, + additionalData: `Warnings:${warnings.map((w) => w.message).join("__")}` }); this.printInfosCore(infos); } else { @@ -234,7 +234,7 @@ export class DoctorService implements IDoctorService { await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: TrackActionNames.CheckLocalBuildSetup, - additionalData: `Finished: Is setup correct: ${!hasWarnings}`, + additionalData: `Finished: Is setup correct: ${!hasWarnings}` }); return !hasWarnings; @@ -243,9 +243,8 @@ export class DoctorService implements IDoctorService { public checkForDeprecatedShortImportsInAppDir(projectDir: string): void { if (projectDir) { try { - const files = this.$projectDataService.getAppExecutableFiles( - projectDir - ); + const files = + this.$projectDataService.getAppExecutableFiles(projectDir); const shortImports = this.getDeprecatedShortImportsInFiles( files, projectDir @@ -415,7 +414,7 @@ export class DoctorService implements IDoctorService { process.env.PROCESSOR_ARCHITEW6432, process.env.ProgramFiles, process.env["ProgramFiles(x86)"], - nativeScriptData, + nativeScriptData ] .filter((a) => !!a) .join(delimiter); @@ -434,7 +433,7 @@ export class DoctorService implements IDoctorService { ? null : await this.$jsonFileSettingsService.getSettingValue< NativeScriptDoctor.IInfo[] - >(key); + >(key); this.$logger.trace( `getInfos cacheConfig options:`, diff --git a/lib/services/extensibility-service.ts b/lib/services/extensibility-service.ts index 395dbd0a03..a08ed8e3df 100644 --- a/lib/services/extensibility-service.ts +++ b/lib/services/extensibility-service.ts @@ -7,14 +7,14 @@ import { INodePackageManager, INpmsSingleResultData } from "../declarations"; import { IFileSystem, ISettingsService, - IStringDictionary, + IStringDictionary } from "../common/declarations"; import { IExtensibilityService, IExtensionData, IExtensionCommandInfo, IExtensionLoadingError, - IGetExtensionCommandInfoParams, + IGetExtensionCommandInfoParams } from "../common/definitions/extensibility"; import { injector } from "../common/yok"; @@ -53,7 +53,7 @@ export class ExtensibilityService implements IExtensibilityService { const npmOpts: any = { save: true, - ["save-exact"]: true, + ["save-exact"]: true }; const localPath = path.resolve(extensionName); @@ -135,7 +135,7 @@ export class ExtensibilityService implements IExtensibilityService { extensionName: packageJsonData.name, version: packageJsonData.version, docs, - pathToExtension, + pathToExtension }; } @@ -190,9 +190,8 @@ export class ExtensibilityService implements IExtensibilityService { try { // now get full package.json for the latest version of the package - const registryData = await this.$packageManager.getRegistryPackageData( - extensionName - ); + const registryData = + await this.$packageManager.getRegistryPackageData(extensionName); const latestPackageData = registryData.versions[registryData["dist-tags"].latest]; const commands: string[] = @@ -226,7 +225,7 @@ export class ExtensibilityService implements IExtensibilityService { return { extensionName, registeredCommandName: currentCommand, - installationMessage: `The command ${beautifiedCommandName} is registered in extension ${extensionName}. You can install it by executing 'tns extension install ${extensionName}'`, + installationMessage: `The command ${beautifiedCommandName} is registered in extension ${extensionName}. You can install it by executing 'tns extension install ${extensionName}'` }; } @@ -304,7 +303,7 @@ export class ExtensibilityService implements IExtensibilityService { readme: "The place where all packages that extend CLI will be installed.", repository: "none", - dependencies: {}, + dependencies: {} }); this.$logger.trace(`Created ${this.pathToPackageJson}.`); diff --git a/lib/services/hmr-status-service.ts b/lib/services/hmr-status-service.ts index 288dcabd86..b9d35f8fb2 100644 --- a/lib/services/hmr-status-service.ts +++ b/lib/services/hmr-status-service.ts @@ -2,7 +2,7 @@ import { cache } from "../common/decorators"; import { HmrConstants, IOS_APP_CRASH_LOG_REG_EXP, - FAIL_LIVESYNC_LOG_REGEX, + FAIL_LIVESYNC_LOG_REGEX } from "../common/constants"; import { IDictionary } from "../common/declarations"; import { injector } from "../common/yok"; @@ -51,25 +51,25 @@ export class HmrStatusService implements IHmrStatusService { this.$logParserService.addParseRule({ regex: HmrStatusService.HMR_STATUS_LOG_REGEX, handler: this.handleHmrStatusFound.bind(this), - name: "hmrStatus", + name: "hmrStatus" }); this.$logParserService.addParseRule({ regex: IOS_APP_CRASH_LOG_REG_EXP, handler: this.handleAppCrash.bind(this), name: "appCrashHmr", - platform: this.$devicePlatformsConstants.iOS.toLowerCase(), + platform: this.$devicePlatformsConstants.iOS.toLowerCase() }); this.$logParserService.addParseRule({ regex: FAIL_LIVESYNC_LOG_REGEX, handler: this.handleAppCrash.bind(this), name: "failedLiveSync", - platform: this.$devicePlatformsConstants.iOS.toLowerCase(), + platform: this.$devicePlatformsConstants.iOS.toLowerCase() }); // webpack5 const statusStringMap: any = { success: HmrConstants.HMR_SUCCESS_STATUS, - failure: HmrConstants.HMR_ERROR_STATUS, + failure: HmrConstants.HMR_ERROR_STATUS }; this.$logParserService.addParseRule({ regex: /\[HMR]\[(.+)]\s*(\w+)\s*\|/, @@ -80,7 +80,7 @@ export class HmrStatusService implements IHmrStatusService { this.setData(deviceId, hash, statusStringMap[status]); } }, - name: "hmr-status", + name: "hmr-status" }); } diff --git a/lib/services/initialize-service.ts b/lib/services/initialize-service.ts index 8214b43a3d..6941bf84d8 100644 --- a/lib/services/initialize-service.ts +++ b/lib/services/initialize-service.ts @@ -5,7 +5,7 @@ import { IOptions } from "../declarations"; import { ISettingsService, ISysInfo } from "../common/declarations"; import { IInitializeOptions, - IInitializeService, + IInitializeService } from "../definitions/initialize-service"; import { IInjector } from "../common/definitions/yok"; import { injector } from "../common/yok"; @@ -30,17 +30,15 @@ export class InitializeService implements IInitializeService { } if (initOpts.settingsServiceOptions) { - const $settingsService = this.$injector.resolve( - "settingsService" - ); + const $settingsService = + this.$injector.resolve("settingsService"); $settingsService.setSettings(initOpts.settingsServiceOptions); } if (initOpts.extensibilityOptions) { if (initOpts.extensibilityOptions.pathToExtensions) { - const $extensibilityService = this.$injector.resolve< - IExtensibilityService - >("extensibilityService"); + const $extensibilityService = + this.$injector.resolve("extensibilityService"); $extensibilityService.pathToExtensions = initOpts.extensibilityOptions.pathToExtensions; } diff --git a/lib/services/ios-debugger-port-service.ts b/lib/services/ios-debugger-port-service.ts index ddf9c21fb5..e975bc5521 100644 --- a/lib/services/ios-debugger-port-service.ts +++ b/lib/services/ios-debugger-port-service.ts @@ -1,7 +1,7 @@ import { DEBUGGER_PORT_FOUND_EVENT_NAME, ATTACH_REQUEST_EVENT_NAME, - IOS_APP_CRASH_LOG_REG_EXP, + IOS_APP_CRASH_LOG_REG_EXP } from "../common/constants"; import { cache } from "../common/decorators"; import { APPLICATION_RESPONSE_TIMEOUT_SECONDS } from "../constants"; @@ -10,7 +10,8 @@ import { IDictionary } from "../common/declarations"; import { injector } from "../common/yok"; export class IOSDebuggerPortService implements IIOSDebuggerPortService { - public static DEBUG_PORT_LOG_REGEX = /NativeScript debugger has opened inspector socket on port (\d+?) for (.*)[.]/; + public static DEBUG_PORT_LOG_REGEX = + /NativeScript debugger has opened inspector socket on port (\d+?) for (.*)[.]/; private mapDebuggerPortData: IDictionary = {}; private currentAppId: string; @@ -62,13 +63,13 @@ export class IOSDebuggerPortService implements IIOSDebuggerPortService { regex: IOSDebuggerPortService.DEBUG_PORT_LOG_REGEX, handler: this.handlePortFound.bind(this), name: "debugPort", - platform: this.$devicePlatformsConstants.iOS.toLowerCase(), + platform: this.$devicePlatformsConstants.iOS.toLowerCase() }); this.$logParserService.addParseRule({ regex: IOS_APP_CRASH_LOG_REG_EXP, handler: this.handleAppCrash.bind(this), name: "appCrash", - platform: this.$devicePlatformsConstants.iOS.toLowerCase(), + platform: this.$devicePlatformsConstants.iOS.toLowerCase() }); } @@ -77,7 +78,7 @@ export class IOSDebuggerPortService implements IIOSDebuggerPortService { port: 0, appId: this.currentAppId, deviceId, - error: new Error("The application has been terminated."), + error: new Error("The application has been terminated.") }; this.clearTimeout(data); @@ -88,7 +89,7 @@ export class IOSDebuggerPortService implements IIOSDebuggerPortService { const data = { port: parseInt(matches[1]), appId: matches[2], - deviceId, + deviceId }; this.$logger.trace(DEBUGGER_PORT_FOUND_EVENT_NAME, data); @@ -140,10 +141,9 @@ export class IOSDebuggerPortService implements IIOSDebuggerPortService { } private clearTimeout(data: IIOSDebuggerPortData): void { - const storedData = this.mapDebuggerPortData[ - `${data.deviceId}${data.appId}` - ]; - if (storedData && storedData.timer) { + const storedData = + this.mapDebuggerPortData[`${data.deviceId}${data.appId}`]; + if (storedData && typeof storedData.timer === "number") { clearTimeout(storedData.timer); } } diff --git a/lib/services/ios-device-debug-service.ts b/lib/services/ios-device-debug-service.ts index bd9dea0ccd..79e5a421b9 100644 --- a/lib/services/ios-device-debug-service.ts +++ b/lib/services/ios-device-debug-service.ts @@ -3,7 +3,7 @@ import { ChildProcess } from "child_process"; import { DebugServiceBase } from "./debug-service-base"; import { CONNECTION_ERROR_EVENT_NAME, - DeviceConnectionType, + DeviceConnectionType } from "../constants"; const inspectorAppName = "NativeScript Inspector.app"; const inspectorNpmPackageName = "tns-ios-inspector"; @@ -14,11 +14,11 @@ import { IDeviceDebugService, IDebugOptions, IDebugResultInfo, - IDebugData, + IDebugData } from "../definitions/debug"; import { IPackageInstallationManager, - IAppDebugSocketProxyFactory, + IAppDebugSocketProxyFactory } from "../declarations"; import { IProjectDataService } from "../definitions/project"; import { IChildProcess, IHostInfo, IErrors } from "../common/declarations"; @@ -26,7 +26,8 @@ import { injector } from "../common/yok"; export class IOSDeviceDebugService extends DebugServiceBase - implements IDeviceDebugService { + implements IDeviceDebugService +{ private deviceIdentifier: string; constructor( @@ -148,12 +149,13 @@ export class IOSDeviceDebugService ); } const projectName = this.getProjectName(debugData); - const webSocketProxy = await this.$appDebugSocketProxyFactory.ensureWebSocketProxy( - this.device, - debugData.applicationIdentifier, - projectName, - debugData.projectDir - ); + const webSocketProxy = + await this.$appDebugSocketProxyFactory.ensureWebSocketProxy( + this.device, + debugData.applicationIdentifier, + projectName, + debugData.projectDir + ); return this.getChromeDebugUrl(debugOptions, webSocketProxy.options.port); } @@ -198,10 +200,11 @@ export class IOSDeviceDebugService debugOptions: IDebugOptions ): Promise { if (debugOptions.client) { - const inspectorPath = await this.$packageInstallationManager.getInspectorFromCache( - inspectorNpmPackageName, - debugData.projectDir - ); + const inspectorPath = + await this.$packageInstallationManager.getInspectorFromCache( + inspectorNpmPackageName, + debugData.projectDir + ); const inspectorSourceLocation = path.join( inspectorPath, diff --git a/lib/services/ios-entitlements-service.ts b/lib/services/ios-entitlements-service.ts index c506971016..2d2c3ed926 100644 --- a/lib/services/ios-entitlements-service.ts +++ b/lib/services/ios-entitlements-service.ts @@ -50,7 +50,7 @@ export class IOSEntitlementsService { public async merge(projectData: IProjectData): Promise { const session = new PlistSession({ - log: (txt: string) => this.$logger.trace("App.entitlements: " + txt), + log: (txt: string) => this.$logger.trace("App.entitlements: " + txt) }); const projectDir = projectData.projectDir; @@ -63,7 +63,7 @@ export class IOSEntitlementsService { this.$logger.trace("Schedule merge plist at: " + plistPath); session.patch({ name: path.relative(projectDir, plistPath), - read: () => this.$fs.readText(plistPath), + read: () => this.$fs.readText(plistPath) }); }; diff --git a/lib/services/ios-extensions-service.ts b/lib/services/ios-extensions-service.ts index 5818dc1543..15e17de49c 100644 --- a/lib/services/ios-extensions-service.ts +++ b/lib/services/ios-extensions-service.ts @@ -1,14 +1,14 @@ import * as path from "path"; import { IOSNativeTargetProductTypes, - IOSNativeTargetTypes, + IOSNativeTargetTypes } from "../constants"; import { IIOSNativeTargetService, IIOSExtensionsService, IAddExtensionsFromPathOptions, IRemoveExtensionsOptions, - IProjectData, + IProjectData } from "../definitions/project"; import { IFileSystem } from "../common/declarations"; import { injector } from "../common/yok"; @@ -25,7 +25,7 @@ export class IOSExtensionsService implements IIOSExtensionsService { extensionsFolderPath, projectData, platformData, - pbxProjPath, + pbxProjPath }: IAddExtensionsFromPathOptions): Promise { const targetUuids: string[] = []; let addedExtensions = false; @@ -81,8 +81,8 @@ export class IOSExtensionsService implements IIOSExtensionsService { [ { name: "PRODUCT_BUNDLE_IDENTIFIER", - value: `${projectData.projectIdentifiers.ios}.${extensionName}`, - }, + value: `${projectData.projectIdentifiers.ios}.${extensionName}` + } ], extensionName, project diff --git a/lib/services/ios-native-target-service.ts b/lib/services/ios-native-target-service.ts index f003329522..b084b0085b 100644 --- a/lib/services/ios-native-target-service.ts +++ b/lib/services/ios-native-target-service.ts @@ -4,7 +4,7 @@ import { IIOSNativeTargetService, IProjectData, IXcodeTargetBuildConfigurationProperty, - BuildNames, + BuildNames } from "../definitions/project"; import { IPlatformData } from "../definitions/platform"; import { IFileSystem } from "../common/declarations"; @@ -57,7 +57,7 @@ export class IOSNativeTargetService implements IIOSNativeTargetService { project.addPbxGroup(files, targetFolder, targetPath, null, { isMain: true, target: target.uuid, - filesRelativeToProject: true, + filesRelativeToProject: true }); project.addToHeaderSearchPaths( targetPath, @@ -109,7 +109,7 @@ export class IOSNativeTargetService implements IIOSNativeTargetService { properties.forEach((property) => { const buildNames = property.buildNames || [ BuildNames.debug, - BuildNames.release, + BuildNames.release ]; buildNames.forEach((buildName) => { project.addBuildProperty( diff --git a/lib/services/ios-project-service.ts b/lib/services/ios-project-service.ts index fa1d5ad372..5d314755fb 100644 --- a/lib/services/ios-project-service.ts +++ b/lib/services/ios-project-service.ts @@ -16,13 +16,13 @@ import { IOSPrepareData } from "../data/prepare-data"; import { BUILD_XCCONFIG_FILE_NAME, CONFIG_FILE_NAME_DISPLAY, - IosProjectConstants, + IosProjectConstants } from "../constants"; import { hook } from "../common/helpers"; import { IPlatformData, IValidBuildOutputData, - IPlatformEnvironmentRequirements, + IPlatformEnvironmentRequirements } from "../definitions/platform"; import { IProjectData, @@ -32,7 +32,7 @@ import { IIOSWatchAppService, IIOSNativeTargetService, IValidatePlatformOutput, - IProjectConfigService, + IProjectConfigService } from "../definitions/project"; import { IBuildData } from "../definitions/build"; @@ -40,7 +40,7 @@ import { IXcprojService, IXcconfigService, IDependencyData, - IOptions, + IOptions } from "../declarations"; import { IPluginData, IPluginsService } from "../definitions/plugins"; import { @@ -50,7 +50,7 @@ import { IHostInfo, IPlistParser, ISysInfo, - IRelease, + IRelease } from "../common/declarations"; import { IInjector } from "../common/definitions/yok"; import { injector } from "../common/yok"; @@ -187,15 +187,15 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ (entry) => path.extname(entry) === ".ipa" ); return { - packageNames: [ipaFileName, `${projectData.projectName}.ipa`], + packageNames: [ipaFileName, `${projectData.projectName}.ipa`] }; } return { packageNames: [ `${projectData.projectName}.app`, - `${projectData.projectName}.zip`, - ], + `${projectData.projectName}.zip` + ] }; }, frameworkDirectoriesExtensions: FRAMEWORK_EXTENSIONS, @@ -203,7 +203,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ "Metadata", "metadataGenerator", "NativeScript", - "internal", + "internal" ], targetedOS: ["darwin"], configurationFileName: constants.INFO_PLIST_FILE_NAME, @@ -227,8 +227,8 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ ".BMPf", ".ico", ".cur", - ".xbm", - ], // https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImage_Class/ + ".xbm" + ] // https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImage_Class/ }; } @@ -287,7 +287,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ platform: this.getPlatformData(projectData).normalizedPlatformName, projectDir: projectData.projectDir, options, - notConfiguredEnvOptions, + notConfiguredEnvOptions }); if ( @@ -300,7 +300,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ } } return { - checkEnvironmentRequirementsOutput, + checkEnvironmentRequirementsOutput }; } @@ -625,7 +625,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ : path.join( projectData.platformsDir, this.$devicePlatformsConstants.iOS.toLowerCase() - ); + ); const platformData = this.getPlatformData(projectData); const pluginsData = this.getAllProductionPlugins(projectData); @@ -661,7 +661,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ project.addPbxGroup([], "NativeScript", "NativeScript", null, { isMain: true, filesRelativeToProject: true, - uuid: "NATIVESCRIPTNATIVESCRIPT", + uuid: "NATIVESCRIPTNATIVESCRIPT" }); /** @@ -827,7 +827,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ ), projectData, platformData, - pbxProjPath, + pbxProjPath }); if (addedWatchApp) { @@ -919,8 +919,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ const reporter: Reporter = { log: (txt: string) => this.$logger.trace(`${reporterTraceMessage} ${txt}`), - warn: (txt: string) => - this.$logger.warn(`${reporterTraceMessage} ${txt}`), + warn: (txt: string) => this.$logger.warn(`${reporterTraceMessage} ${txt}`) }; const session = new PlistSession(reporter); @@ -933,7 +932,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ this.$logger.trace("Schedule merge plist at: " + plistPath); session.patch({ name: path.relative(projectDir, plistPath), - read: () => this.$fs.readText(plistPath), + read: () => this.$fs.readText(plistPath) }); }; @@ -959,7 +958,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) - `, + ` }); } @@ -990,7 +989,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ - `, + ` }); } @@ -1279,8 +1278,8 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ [ { name: "PRODUCT_BUNDLE_IDENTIFIER", - value: `"${projectData.projectIdentifiers.ios}"`, - }, + value: `"${projectData.projectIdentifiers.ios}"` + } ], projectData.projectName, project @@ -1363,14 +1362,14 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ const group = this.getRootGroup(groupName, sourceFolderPath); project.addPbxGroup(group.files, group.name, group.path, null, { isMain: true, - filesRelativeToProject: true, + filesRelativeToProject: true }); project.addToHeaderSearchPaths(group.path); const headerFiles = this.$fs.exists(sourceFolderPath) ? this.$fs.enumerateFilesInDirectorySync( sourceFolderPath, (file, stat) => stat.isDirectory() || path.extname(file) === ".h" - ) + ) : []; if ( headerFiles.length > 0 && @@ -1399,7 +1398,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ extensionsFolderPath: resorcesExtensionsPath, projectData, platformData, - pbxProjPath, + pbxProjPath }); let addedExtensionsFromPlugins = false; for (const pluginIndex in pluginsData) { @@ -1417,15 +1416,15 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ extensionsFolderPath: extensionPath, projectData, platformData, - pbxProjPath, + pbxProjPath }); addedExtensionsFromPlugins = addedExtensionsFromPlugins || addedExtensionFromPlugin; } if (addedExtensionsFromResources || addedExtensionsFromPlugins) { - this.$logger.warn( - "The support for iOS App Extensions is currently in Beta. For more information about the current development state and any known issues, please check the relevant GitHub issue: https://github.com/NativeScript/nativescript-cli/issues/4472" + this.$logger.info( + "Let us know if there are other Extension features you'd like! https://github.com/NativeScript/NativeScript/issues" ); } } @@ -1435,7 +1434,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ const rootGroup: INativeSourceCodeGroup = { name: name, files: filePathsArr, - path: rootPath, + path: rootPath }; if (this.$fs.exists(rootPath)) { @@ -1529,7 +1528,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ ); project.removeFramework(relativeFrameworkPath, { customFramework: true, - embed: true, + embed: true }); } ); @@ -1562,7 +1561,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ this.getLibSubpathRelativeToProjectPath(headersSubpath, projectData) ); project.removeFromHeaderSearchPaths({ - relativePath: relativeHeaderSearchPath, + relativePath: relativeHeaderSearchPath }); } ); @@ -1666,9 +1665,8 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ this.$iOSEntitlementsService.getPlatformsEntitlementsPath(projectData) ) ) { - const tempEntitlementsDir = await this.$tempService.mkdirSync( - "entitlements" - ); + const tempEntitlementsDir = + await this.$tempService.mkdirSync("entitlements"); const tempEntitlementsFilePath = path.join( tempEntitlementsDir, "set-entitlements.xcconfig" diff --git a/lib/services/ios-provision-service.ts b/lib/services/ios-provision-service.ts index 745243e388..7a247a5cbf 100644 --- a/lib/services/ios-provision-service.ts +++ b/lib/services/ios-provision-service.ts @@ -16,7 +16,7 @@ const months = [ "Sep", "Oct", "Nov", - "Dec", + "Dec" ]; function formatDate(date: Date): string { return `${date.getDay()} ${months[date.getMonth()]} ${date.getFullYear()}`; @@ -83,7 +83,7 @@ export class IOSProvisionService { "Provision Name / Provision UUID / App Id", "Team", "Type / Due", - "Devices", + "Devices" ], [] ); @@ -94,7 +94,7 @@ export class IOSProvisionService { quoteString(prov.Name), prov.TeamName, prov.Type, - formatTotalDeviceCount(prov), + formatTotalDeviceCount(prov) ]); table.push([ prov.UUID, @@ -102,7 +102,7 @@ export class IOSProvisionService { ? "(" + prov.TeamIdentifier[0] + ")" : "", formatDate(prov.ExpirationDate), - formatSupportedDeviceCount(prov), + formatSupportedDeviceCount(prov) ]); table.push([prov.Entitlements["application-identifier"], "", "", ""]); } @@ -136,7 +136,7 @@ export class IOSProvisionService { const query: mobileprovision.provision.Query = { Certificates: certificates.valid, Unique: true, - AppId: projectId, + AppId: projectId }; let devices: string[] = []; @@ -145,7 +145,7 @@ export class IOSProvisionService { } else { await this.$devicesService.initialize({ platform: "ios", - skipEmulatorStart: true, + skipEmulatorStart: true }); devices = _(this.$devicesService.getDeviceInstances()) .filter((d) => this.$mobileHelper.isiOSPlatform(d.deviceInfo.platform)) diff --git a/lib/services/ios-watch-app-service.ts b/lib/services/ios-watch-app-service.ts index 27bd57dd76..3914cca5e5 100644 --- a/lib/services/ios-watch-app-service.ts +++ b/lib/services/ios-watch-app-service.ts @@ -4,14 +4,14 @@ import { IOS_WATCHAPP_FOLDER, IOS_WATCHAPP_EXTENSION_FOLDER, IOSNativeTargetProductTypes, - IOSNativeTargetTypes, + IOSNativeTargetTypes } from "../constants"; import { IIOSWatchAppService, IIOSNativeTargetService, IAddWatchAppFromPathOptions, IRemoveWatchAppOptions, - IProjectData, + IProjectData } from "../definitions/project"; import { IPlatformData } from "../definitions/platform"; import { IFileSystem } from "../common/declarations"; @@ -31,7 +31,7 @@ export class IOSWatchAppService implements IIOSWatchAppService { watchAppFolderPath, projectData, platformData, - pbxProjPath, + pbxProjPath }: IAddWatchAppFromPathOptions): Promise { const targetUuids: string[] = []; const appPath = path.join(watchAppFolderPath, IOS_WATCHAPP_FOLDER); @@ -44,12 +44,10 @@ export class IOSWatchAppService implements IIOSWatchAppService { return false; } - const appFolder = this.$iOSNativeTargetService.getTargetDirectories( - appPath - )[0]; - const extensionFolder = this.$iOSNativeTargetService.getTargetDirectories( - extensionPath - )[0]; + const appFolder = + this.$iOSNativeTargetService.getTargetDirectories(appPath)[0]; + const extensionFolder = + this.$iOSNativeTargetService.getTargetDirectories(extensionPath)[0]; const project = new this.$xcode.project(pbxProjPath); project.parseSync(); @@ -72,14 +70,15 @@ export class IOSWatchAppService implements IIOSWatchAppService { ); targetUuids.push(watchApptarget.uuid); - const watchExtensionTarget = this.$iOSNativeTargetService.addTargetToProject( - extensionPath, - extensionFolder, - IOSNativeTargetTypes.watchExtension, - project, - platformData, - watchApptarget.uuid - ); + const watchExtensionTarget = + this.$iOSNativeTargetService.addTargetToProject( + extensionPath, + extensionFolder, + IOSNativeTargetTypes.watchExtension, + project, + platformData, + watchApptarget.uuid + ); this.configureTarget( extensionFolder, path.join(extensionPath, extensionFolder), @@ -152,7 +151,7 @@ export class IOSWatchAppService implements IIOSWatchAppService { { name: "SDKROOT", value: "watchos" }, { name: "TARGETED_DEVICE_FAMILY", value: IOSDeviceTargets.watchos }, { name: "WATCHOS_DEPLOYMENT_TARGET", value: 5.2 }, - { name: "WK_APP_BUNDLE_IDENTIFIER", value: wkAppBundleIdentifier }, + { name: "WK_APP_BUNDLE_IDENTIFIER", value: wkAppBundleIdentifier } ], targetName, project diff --git a/lib/services/ios/spm-service.ts b/lib/services/ios/spm-service.ts index 6f19203934..5f6c9d83ea 100644 --- a/lib/services/ios/spm-service.ts +++ b/lib/services/ios/spm-service.ts @@ -12,16 +12,16 @@ export class SPMService implements ISPMService { private $logger: ILogger, private $projectConfigService: IProjectConfigService, private $xcodebuildCommandService: IXcodebuildCommandService, - private $xcodebuildArgsService: IXcodebuildArgsService + private $xcodebuildArgsService: IXcodebuildArgsService, ) {} public getSPMPackages( projectData: IProjectData, - platform: string + platform: string, ): IosSPMPackageDefinition[] { const spmPackages = this.$projectConfigService.getValue( `${platform}.SPMPackages`, - [] + [], ); return spmPackages; @@ -35,12 +35,12 @@ export class SPMService implements ISPMService { public async applySPMPackages( platformData: IPlatformData, projectData: IProjectData, - pluginSpmPackages?: IosSPMPackageDefinition[] + pluginSpmPackages?: IosSPMPackageDefinition[], ) { try { const spmPackages = this.getSPMPackages( projectData, - platformData.platformNameLowerCase + platformData.platformNameLowerCase, ); if (pluginSpmPackages?.length) { @@ -76,6 +76,13 @@ export class SPMService implements ISPMService { } this.$logger.trace(`SPM: adding package ${pkg.name} to project.`, pkg); await project.ios.addSPMPackage(projectData.projectName, pkg); + + // Add to other Targets if specified (like widgets, etc.) + if (pkg.targets?.length) { + for (const target of pkg.targets) { + await project.ios.addSPMPackage(target, pkg); + } + } } await project.commit(); @@ -88,7 +95,7 @@ export class SPMService implements ISPMService { public async resolveSPMDependencies( platformData: IPlatformData, - projectData: IProjectData + projectData: IProjectData, ) { await this.$xcodebuildCommandService.executeCommand( this.$xcodebuildArgsService @@ -101,7 +108,7 @@ export class SPMService implements ISPMService { { cwd: projectData.projectDir, message: "Resolving SPM dependencies...", - } + }, ); } } diff --git a/lib/services/ip-service.ts b/lib/services/ip-service.ts index 6d7464ff80..2f21f549a4 100644 --- a/lib/services/ip-service.ts +++ b/lib/services/ip-service.ts @@ -29,7 +29,7 @@ export class IPService implements IIPService { const response = await this.$httpClient.httpRequest({ method: "GET", url: apiEndpoint, - timeout: IPService.GET_IP_TIMEOUT, + timeout: IPService.GET_IP_TIMEOUT }); this.$logger.trace(`${apiEndpoint} returns ${response.body}`); @@ -54,7 +54,7 @@ export class IPService implements IIPService { const response = await this.$httpClient.httpRequest({ method: "GET", url: ipifyOrgAPIEndpoint, - timeout: IPService.GET_IP_TIMEOUT, + timeout: IPService.GET_IP_TIMEOUT }); this.$logger.trace(`${ipifyOrgAPIEndpoint} returns ${response.body}`); diff --git a/lib/services/itmstransporter-service.ts b/lib/services/itmstransporter-service.ts index 714231af32..56d798e603 100644 --- a/lib/services/itmstransporter-service.ts +++ b/lib/services/itmstransporter-service.ts @@ -9,7 +9,7 @@ import { IErrors, IFileSystem, IPlistParser, - IXcodeSelectService, + IXcodeSelectService } from "../common/declarations"; import { IApplePortalApplicationService } from "./apple-portal/definitions"; import { IInjector } from "../common/definitions/yok"; @@ -74,17 +74,18 @@ export class ITMSTransporterService implements IITMSTransporterService { ? ITMSConstants.VerboseLoggingLevels.Verbose : ITMSConstants.VerboseLoggingLevels.Informational; const bundleId = await this.getBundleIdentifier(data); - const application = await this.$applePortalApplicationService.getApplicationByBundleId( - data.user, - bundleId - ); + const application = + await this.$applePortalApplicationService.getApplicationByBundleId( + data.user, + bundleId + ); this.$fs.createDirectory(innerDirectory); this.$fs.copyFile(data.ipaFilePath, ipaFileLocation); const ipaFileHash = await this.$fs.getFileShasum(ipaFileLocation, { - algorithm: "md5", + algorithm: "md5" }); const ipaFileSize = this.$fs.getFileSize(ipaFileLocation); const metadata = this.getITMSMetadataXml( @@ -114,7 +115,7 @@ export class ITMSTransporterService implements IITMSTransporterService { "-p", quoteString(password), "-v", - loggingLevel, + loggingLevel ], "close", { stdio: "inherit" } @@ -144,7 +145,7 @@ export class ITMSTransporterService implements IITMSTransporterService { data.credentials.username, "-p", password, - "-k 100000", + "-k 100000" ]; if (data.teamId) { @@ -157,7 +158,7 @@ export class ITMSTransporterService implements IITMSTransporterService { } await this.$childProcess.spawnFromEvent(altoolPath, args, "close", { - stdio: "inherit", + stdio: "inherit" }); } diff --git a/lib/services/karma-execution.ts b/lib/services/karma-execution.ts index 46eefe170c..8e4ba629f4 100644 --- a/lib/services/karma-execution.ts +++ b/lib/services/karma-execution.ts @@ -4,7 +4,7 @@ import { resolvePackagePath } from "../helpers/package-path-helper"; process.on("message", (data: any) => { if (data.karmaConfig) { const pathToKarma = resolvePackagePath("karma", { - paths: [data.karmaConfig.projectDir], + paths: [data.karmaConfig.projectDir] }); const KarmaServer = require(path.join(pathToKarma, "lib/server")); diff --git a/lib/services/livesync-process-data-service.ts b/lib/services/livesync-process-data-service.ts index 27b4767254..7a5ac560ee 100644 --- a/lib/services/livesync-process-data-service.ts +++ b/lib/services/livesync-process-data-service.ts @@ -14,9 +14,8 @@ export class LiveSyncProcessDataService implements ILiveSyncProcessDataService { this.processes[projectDir] || Object.create(null); this.processes[projectDir].actionsChain = this.processes[projectDir].actionsChain || Promise.resolve(); - this.processes[projectDir].currentSyncAction = this.processes[ - projectDir - ].actionsChain; + this.processes[projectDir].currentSyncAction = + this.processes[projectDir].actionsChain; this.processes[projectDir].isStopped = false; this.processes[projectDir].platforms = platforms; diff --git a/lib/services/livesync/android-device-livesync-sockets-service.ts b/lib/services/livesync/android-device-livesync-sockets-service.ts index 11a3e8b147..0902faca53 100644 --- a/lib/services/livesync/android-device-livesync-sockets-service.ts +++ b/lib/services/livesync/android-device-livesync-sockets-service.ts @@ -36,14 +36,14 @@ export class AndroidDeviceSocketsLiveSyncService private $fs: IFileSystem, private $devicePlatformsConstants: Mobile.IDevicePlatformsConstants, private $tempService: ITempService, - $filesHashService: IFilesHashService + $filesHashService: IFilesHashService, ) { super($injector, platformsDataService, $filesHashService, $logger, device); this.livesyncTool = this.$injector.resolve(AndroidLivesyncTool); } public async beforeLiveSyncAction( - deviceAppData: Mobile.IDeviceAppData + deviceAppData: Mobile.IDeviceAppData, ): Promise { if (!this.livesyncTool.hasConnection()) { try { @@ -54,7 +54,7 @@ export class AndroidDeviceSocketsLiveSyncService await this.device.fileSystem.putFile( pathToLiveSyncFile, this.getPathToLiveSyncFileOnDevice(deviceAppData.appIdentifier), - deviceAppData.appIdentifier + deviceAppData.appIdentifier, ); await this.device.applicationManager.startApplication({ appId: deviceAppData.appIdentifier, @@ -65,12 +65,12 @@ export class AndroidDeviceSocketsLiveSyncService }); await this.connectLivesyncTool( this.data.projectIdentifiers.android, - deviceAppData.connectTimeout + deviceAppData.connectTimeout, ); } catch (err) { await this.device.fileSystem.deleteFile( this.getPathToLiveSyncFileOnDevice(deviceAppData.appIdentifier), - deviceAppData.appIdentifier + deviceAppData.appIdentifier, ); throw err; } @@ -83,14 +83,14 @@ export class AndroidDeviceSocketsLiveSyncService public async finalizeSync( liveSyncInfo: ILiveSyncResultInfo, - projectData: IProjectData + projectData: IProjectData, ): Promise { try { const result = await this.doSync(liveSyncInfo, projectData); if ( !semver.gte( this.livesyncTool.protocolVersion, - AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION + AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION, ) ) { this.livesyncTool.end(); @@ -103,7 +103,7 @@ export class AndroidDeviceSocketsLiveSyncService } private async getCleanupCommand( - appIdentifier: string + appIdentifier: string, ): Promise { return { command: await this.$staticConfig.getAdbFilePath(), @@ -119,7 +119,7 @@ export class AndroidDeviceSocketsLiveSyncService } private async doSync( liveSyncInfo: ILiveSyncResultInfo, - projectData: IProjectData + projectData: IProjectData, ): Promise { const operationId = this.livesyncTool.generateOperationIdentifier(); @@ -132,7 +132,7 @@ export class AndroidDeviceSocketsLiveSyncService liveSyncInfo, liveSyncInfo.modifiedFilesData, projectData, - this.device.deviceInfo.platform + this.device.deviceInfo.platform, ); const doSyncPromise = this.livesyncTool.sendDoSyncOperation({ doRefresh: canExecuteFastSync, @@ -146,15 +146,15 @@ export class AndroidDeviceSocketsLiveSyncService }, AndroidDeviceSocketsLiveSyncService.STATUS_UPDATE_INTERVAL); const cleanupCommand = await this.getCleanupCommand( - liveSyncInfo.deviceAppData.appIdentifier + liveSyncInfo.deviceAppData.appIdentifier, ); const actionOnEnd = async () => { - clearInterval(syncInterval); + clearInterval(syncInterval as unknown as number); await this.device.fileSystem.deleteFile( this.getPathToLiveSyncFileOnDevice( - liveSyncInfo.deviceAppData.appIdentifier + liveSyncInfo.deviceAppData.appIdentifier, ), - liveSyncInfo.deviceAppData.appIdentifier + liveSyncInfo.deviceAppData.appIdentifier, ); await this.$cleanupService.removeCleanupCommand(cleanupCommand); }; @@ -168,9 +168,9 @@ export class AndroidDeviceSocketsLiveSyncService } else { await this.device.fileSystem.deleteFile( this.getPathToLiveSyncFileOnDevice( - liveSyncInfo.deviceAppData.appIdentifier + liveSyncInfo.deviceAppData.appIdentifier, ), - liveSyncInfo.deviceAppData.appIdentifier + liveSyncInfo.deviceAppData.appIdentifier, ); } @@ -179,7 +179,7 @@ export class AndroidDeviceSocketsLiveSyncService public async restartApplication( projectData: IProjectData, - liveSyncInfo: ILiveSyncResultInfo + liveSyncInfo: ILiveSyncResultInfo, ): Promise { await this.device.applicationManager.restartApplication({ appId: liveSyncInfo.deviceAppData.appIdentifier, @@ -193,12 +193,12 @@ export class AndroidDeviceSocketsLiveSyncService this.livesyncTool.protocolVersion && semver.gte( this.livesyncTool.protocolVersion, - AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION + AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION, ) ) { try { await this.connectLivesyncTool( - liveSyncInfo.deviceAppData.appIdentifier + liveSyncInfo.deviceAppData.appIdentifier, ); } catch (e) { this.$logger.trace("Failed to connect after app restart."); @@ -208,7 +208,7 @@ export class AndroidDeviceSocketsLiveSyncService public async shouldRestart( projectData: IProjectData, - liveSyncInfo: IAndroidLiveSyncResultInfo + liveSyncInfo: IAndroidLiveSyncResultInfo, ): Promise { let shouldRestart = false; const canExecuteFastSync = @@ -217,7 +217,7 @@ export class AndroidDeviceSocketsLiveSyncService liveSyncInfo, liveSyncInfo.modifiedFilesData, projectData, - this.device.deviceInfo.platform + this.device.deviceInfo.platform, ); if ( !canExecuteFastSync || @@ -232,7 +232,7 @@ export class AndroidDeviceSocketsLiveSyncService public async tryRefreshApplication( projectData: IProjectData, - liveSyncInfo: IAndroidLiveSyncResultInfo + liveSyncInfo: IAndroidLiveSyncResultInfo, ): Promise { return true; } @@ -240,23 +240,23 @@ export class AndroidDeviceSocketsLiveSyncService public async removeFiles( deviceAppData: Mobile.IDeviceAppData, localToDevicePaths: Mobile.ILocalToDevicePathData[], - projectFilesPath: string + projectFilesPath: string, ): Promise { await this.livesyncTool.removeFiles( - _.map(localToDevicePaths, (element: any) => element.filePath) + _.map(localToDevicePaths, (element: any) => element.filePath), ); const deviceHashService = this.device.fileSystem.getDeviceHashService( - deviceAppData.appIdentifier + deviceAppData.appIdentifier, ); await deviceHashService.removeHashes(localToDevicePaths); } public async transferFilesOnDevice( deviceAppData: Mobile.IDeviceAppData, - localToDevicePaths: Mobile.ILocalToDevicePathData[] + localToDevicePaths: Mobile.ILocalToDevicePathData[], ): Promise { const files = _.map(localToDevicePaths, (localToDevicePath) => - localToDevicePath.getLocalPath() + localToDevicePath.getLocalPath(), ); await this.livesyncTool.sendFiles(files); } @@ -264,22 +264,22 @@ export class AndroidDeviceSocketsLiveSyncService public async transferDirectoryOnDevice( deviceAppData: Mobile.IDeviceAppData, localToDevicePaths: Mobile.ILocalToDevicePathData[], - projectFilesPath: string + projectFilesPath: string, ): Promise { await this.livesyncTool.sendDirectory(projectFilesPath); } private async connectLivesyncTool( appIdentifier: string, - connectTimeout?: number + connectTimeout?: number, ) { const platformData = this.platformsDataService.getPlatformData( this.$devicePlatformsConstants.Android, - this.data + this.data, ); const projectFilesPath = path.join( platformData.appDestinationDirectoryPath, - this.$options.hostProjectModuleName + this.$options.hostProjectModuleName, ); if (!this.livesyncTool.hasConnection()) { await this.livesyncTool.connect({ diff --git a/lib/services/livesync/android-livesync-tool.ts b/lib/services/livesync/android-livesync-tool.ts index ce80f827b9..4406a63114 100644 --- a/lib/services/livesync/android-livesync-tool.ts +++ b/lib/services/livesync/android-livesync-tool.ts @@ -52,7 +52,7 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { private $fs: IFileSystem, private $logger: ILogger, private $mobileHelper: Mobile.IMobileHelper, - private $injector: IInjector + private $injector: IInjector, ) { this.operationPromises = Object.create(null); this.socketError = null; @@ -60,7 +60,7 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { } public async connect( - configuration: IAndroidLivesyncToolConfiguration + configuration: IAndroidLivesyncToolConfiguration, ): Promise { if (!configuration.appIdentifier) { this.$errors.fail(AndroidLivesyncTool.APP_IDENTIFIER_MISSING_ERROR); @@ -72,7 +72,7 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { if (this.socketConnection) { this.$errors.fail( - AndroidLivesyncTool.SOCKET_CONNECTION_ALREADY_EXISTS_ERROR + AndroidLivesyncTool.SOCKET_CONNECTION_ALREADY_EXISTS_ERROR, ); } @@ -91,13 +91,13 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { deviceIdentifier: configuration.deviceIdentifier, appIdentifier: configuration.appIdentifier, abstractPort: `localabstract:${configuration.appIdentifier}-livesync`, - } + }, ); const connectionResult = await this.connectEventuallyUntilTimeout( this.createSocket.bind(this, port), connectTimeout, - configuration + configuration, ); this.handleConnection(connectionResult); } @@ -131,25 +131,25 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { PROTOCOL_OPERATION_LENGTH_SIZE + SIZE_BYTE_LENGTH + filePathData.filePathLengthSize + - filePathData.filePathLengthBytes + filePathData.filePathLengthBytes, ); let offset = 0; offset += headerBuffer.write( AndroidLivesyncTool.DELETE_FILE_OPERATION.toString(), offset, - PROTOCOL_OPERATION_LENGTH_SIZE + PROTOCOL_OPERATION_LENGTH_SIZE, ); offset = headerBuffer.writeInt8(filePathData.filePathLengthSize, offset); offset += headerBuffer.write( filePathData.filePathLengthString, offset, - filePathData.filePathLengthSize + filePathData.filePathLengthSize, ); headerBuffer.write( filePathData.relativeFilePath, offset, - filePathData.filePathLengthBytes + filePathData.filePathLengthBytes, ); const hash = crypto.createHash("md5").update(headerBuffer).digest(); @@ -171,11 +171,11 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { } public sendDoSyncOperation( - options?: IDoSyncOperationOptions + options?: IDoSyncOperationOptions, ): Promise { options = _.assign( { doRefresh: true, timeout: SYNC_OPERATION_TIMEOUT }, - options + options, ); const { doRefresh, timeout, operationId } = options; const id = operationId || this.generateOperationIdentifier(); @@ -186,7 +186,7 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { } const message = `${AndroidLivesyncTool.DO_SYNC_OPERATION}${id}`; const headerBuffer = Buffer.alloc( - Buffer.byteLength(message) + DO_REFRESH_LENGTH + Buffer.byteLength(message) + DO_REFRESH_LENGTH, ); const socketId = this.socketConnection.uid; const doRefreshCode = doRefresh @@ -206,7 +206,7 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { if (this.isOperationInProgress(id)) { this.handleSocketError( socketId, - "Sync operation is taking too long" + "Sync operation is taking too long", ); } }, timeout); @@ -229,7 +229,7 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { error = error || this.getErrorWithMessage( - "Socket connection ended before sync operation is complete." + "Socket connection ended before sync operation is complete.", ); //remove listeners and delete this.socketConnection this.cleanState(socketUid); @@ -258,7 +258,7 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { filePathData.filePathLengthSize + filePathData.filePathLengthBytes + SIZE_BYTE_LENGTH + - fileContentLengthSize + fileContentLengthSize, ); if (filePathData.filePathLengthSize > 255) { @@ -271,18 +271,18 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { offset += headerBuffer.write( AndroidLivesyncTool.CREATE_FILE_OPERATION.toString(), offset, - PROTOCOL_OPERATION_LENGTH_SIZE + PROTOCOL_OPERATION_LENGTH_SIZE, ); offset = headerBuffer.writeUInt8(filePathData.filePathLengthSize, offset); offset += headerBuffer.write( filePathData.filePathLengthString, offset, - filePathData.filePathLengthSize + filePathData.filePathLengthSize, ); offset += headerBuffer.write( filePathData.relativeFilePath, offset, - filePathData.filePathLengthBytes + filePathData.filePathLengthBytes, ); offset = headerBuffer.writeUInt8(fileContentLengthSize, offset); headerBuffer.write(fileContentLengthString, offset, fileContentLengthSize); @@ -326,7 +326,7 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { private checkConnectionStatus() { if (this.socketConnection === null) { const defaultError = this.getErrorWithMessage( - AndroidLivesyncTool.NO_SOCKET_CONNECTION_AVAILABLE_ERROR + AndroidLivesyncTool.NO_SOCKET_CONNECTION_AVAILABLE_ERROR, ); const error = this.socketError || defaultError; @@ -361,25 +361,25 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { const versionLength = (data).readUInt8(0); const versionBuffer = data.slice( PROTOCOL_VERSION_LENGTH_SIZE, - versionLength + PROTOCOL_VERSION_LENGTH_SIZE + versionLength + PROTOCOL_VERSION_LENGTH_SIZE, ); const appIdentifierBuffer = data.slice( versionLength + PROTOCOL_VERSION_LENGTH_SIZE, - data.length + data.length, ); const protocolVersion = versionBuffer.toString(); const appIdentifier = appIdentifierBuffer.toString(); this.$logger.trace( - `Handle socket connection for app identifier: ${appIdentifier} with protocol version: ${protocolVersion}.` + `Handle socket connection for app identifier: ${appIdentifier} with protocol version: ${protocolVersion}.`, ); this.protocolVersion = protocolVersion; this.socketConnection.on("data", (connectionData: Buffer) => - this.handleData(socket.uid, connectionData) + this.handleData(socket.uid, connectionData), ); this.socketConnection.on("close", (hasError: boolean) => - this.handleSocketClose(socket.uid, hasError) + this.handleSocketClose(socket.uid, hasError), ); this.socketConnection.on("error", (err: Error) => { const error = new Error(`Socket Error:\n${err}`); @@ -394,7 +394,7 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { private connectEventuallyUntilTimeout( factory: () => ILiveSyncSocket, timeout: number, - configuration: IAndroidLivesyncToolConfiguration + configuration: IAndroidLivesyncToolConfiguration, ): Promise<{ socket: ILiveSyncSocket; data: Buffer | string }> { return new Promise((resolve, reject) => { let lastKnownError: Error | string, @@ -405,7 +405,7 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { isConnected = true; if ( this.pendingConnectionData && - this.pendingConnectionData.socketTimer + typeof this.pendingConnectionData.socketTimer === "number" ) { clearTimeout(this.pendingConnectionData.socketTimer); } @@ -413,17 +413,17 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { const applicationPid = await this.$androidProcessService.getAppProcessId( configuration.deviceIdentifier, - configuration.appIdentifier + configuration.appIdentifier, ); if (!applicationPid) { this.$logger.trace( "In Android LiveSync tool, lastKnownError is: ", - lastKnownError + lastKnownError, ); this.$logger.info( color.yellow( - `Application ${configuration.appIdentifier} is not running on device ${configuration.deviceIdentifier}.` - ) + `Application ${configuration.appIdentifier} is not running on device ${configuration.deviceIdentifier}.`, + ), ); this.$logger.info( color.cyan( @@ -431,18 +431,20 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { * crash at startup (try \`ns debug android --debug-brk\` to check why it crashes) * different application identifier in your package.json and in your gradle files (check your identifier in \`package.json\` and in all *.gradle files in your App_Resources directory) * device is locked - * manual closing of the application` - ) + * manual closing of the application`, + ), ); reject( new Error( - `Application ${configuration.appIdentifier} is not running` - ) + `Application ${configuration.appIdentifier} is not running`, + ), ); } else { reject( lastKnownError || - new Error(AndroidLivesyncTool.SOCKET_CONNECTION_TIMED_OUT_ERROR) + new Error( + AndroidLivesyncTool.SOCKET_CONNECTION_TIMED_OUT_ERROR, + ), ); } @@ -587,7 +589,7 @@ export class AndroidLivesyncTool implements IAndroidLivesyncTool { private resolveRelativePath(filePath: string): string { const relativeFilePath = path.relative( this.configuration.appPlatformsPath, - filePath + filePath, ); return this.$mobileHelper.buildDevicePath(relativeFilePath); diff --git a/lib/services/log-parser-service.ts b/lib/services/log-parser-service.ts index f6c391e640..98cbe0a3c0 100644 --- a/lib/services/log-parser-service.ts +++ b/lib/services/log-parser-service.ts @@ -7,7 +7,8 @@ import { injector } from "../common/yok"; export class LogParserService extends EventEmitter - implements ILogParserService { + implements ILogParserService +{ private parseRules: IDictionary = {}; constructor( diff --git a/lib/services/log-source-map-service.ts b/lib/services/log-source-map-service.ts index e52f88ecb7..5511f96019 100644 --- a/lib/services/log-source-map-service.ts +++ b/lib/services/log-source-map-service.ts @@ -9,14 +9,14 @@ import { ANDROID_DEVICE_APP_ROOT_TEMPLATE, APP_FOLDER_NAME, NODE_MODULES_FOLDER_NAME, - PlatformTypes, + PlatformTypes } from "../constants"; import { IProjectData, IProjectDataService } from "../definitions/project"; import { IPlatformsDataService } from "../definitions/platform"; import { IDictionary, IStringDictionary, - IFileSystem, + IFileSystem } from "../common/declarations"; import { IInjector } from "../common/definitions/yok"; import { injector } from "../common/yok"; @@ -211,7 +211,7 @@ export class LogSourceMapService implements Mobile.ILogSourceMapService { if (smc) { const originalPosition = smc.originalPositionFor({ line: parsedLine.line, - column: parsedLine.column, + column: parsedLine.column }); let sourceFile = originalPosition.source && @@ -232,7 +232,7 @@ export class LogSourceMapService implements Mobile.ILogSourceMapService { const platformSpecificFile = path.format({ dir, ext, - name: platformSpecificName, + name: platformSpecificName }); if ( this.$fs.exists( @@ -249,7 +249,7 @@ export class LogSourceMapService implements Mobile.ILogSourceMapService { return { sourceFile: this.originalFilesLocationCache[sourceFile], line: originalPosition.line, - column: originalPosition.column, + column: originalPosition.column }; } } diff --git a/lib/services/marking-mode-service.ts b/lib/services/marking-mode-service.ts index ebe0474e54..5cc9a352c8 100644 --- a/lib/services/marking-mode-service.ts +++ b/lib/services/marking-mode-service.ts @@ -2,7 +2,7 @@ import { EOL } from "os"; import { LoggerConfigData, PlatformTypes } from "../constants"; import { IProjectConfigService, - IProjectDataService, + IProjectDataService } from "../definitions/project"; import { injector } from "../common/yok"; import { IProjectHelper } from "../common/declarations"; @@ -10,7 +10,7 @@ import * as semver from "semver/preload"; const enum MarkingMode { None = "none", - Full = "full", + Full = "full" } const MARKING_MODE_PROP = "markingMode"; @@ -62,7 +62,7 @@ export class MarkingModeService implements IMarkingModeService { const markingModeFullWarning = `You are using the deprecated "${MARKING_MODE_PROP}:${MarkingMode.Full}".${EOL}${EOL}${MARKING_MODE_FULL_DEPRECATION_MSG}${EOL}${EOL}You should update your marking mode by executing 'ns update --markingMode'.`; this.$logger.warn(markingModeFullWarning, { - [LoggerConfigData.wrapMessageWithBorders]: true, + [LoggerConfigData.wrapMessageWithBorders]: true }); } } diff --git a/lib/services/metadata-filtering-service.ts b/lib/services/metadata-filtering-service.ts index 3d46c5fe0e..26f9b907e5 100644 --- a/lib/services/metadata-filtering-service.ts +++ b/lib/services/metadata-filtering-service.ts @@ -7,7 +7,7 @@ import { IProjectData } from "../definitions/project"; import { IMetadataFilteringService, INativeApiUsageConfiguration, - INativeApiUsagePluginConfiguration, + INativeApiUsagePluginConfiguration } from "../definitions/metadata-filtering-service"; import { IFileSystem } from "../common/declarations"; import { injector } from "../common/yok"; @@ -49,9 +49,8 @@ export class MetadataFilteringService implements IMetadataFilteringService { platform ); for (const pluginData of plugins) { - const pathToPlatformsDir = pluginData.pluginPlatformsFolderPath( - platform - ); + const pathToPlatformsDir = + pluginData.pluginPlatformsFolderPath(platform); const pathToPluginsMetadataConfig = path.join( pathToPlatformsDir, MetadataFilteringConstants.NATIVE_API_USAGE_FILE_NAME @@ -122,9 +121,8 @@ export class MetadataFilteringService implements IMetadataFilteringService { platform ); for (const pluginData of plugins) { - const pathToPlatformsDir = pluginData.pluginPlatformsFolderPath( - platform - ); + const pathToPlatformsDir = + pluginData.pluginPlatformsFolderPath(platform); const pathToPluginsMetadataConfig = path.join( pathToPlatformsDir, MetadataFilteringConstants.NATIVE_API_USAGE_FILE_NAME @@ -167,10 +165,8 @@ export class MetadataFilteringService implements IMetadataFilteringService { platform: string ): INativeApiUsageConfiguration { let config: INativeApiUsageConfiguration = null; - const pathToApplicationConfigurationFile = this.getPathToApplicationConfigurationForPlatform( - projectData, - platform - ); + const pathToApplicationConfigurationFile = + this.getPathToApplicationConfigurationForPlatform(projectData, platform); if (this.$fs.exists(pathToApplicationConfigurationFile)) { config = this.$fs.readJson(pathToApplicationConfigurationFile); } diff --git a/lib/services/performance-service.ts b/lib/services/performance-service.ts index 3d4266ee56..1bf92bf88c 100644 --- a/lib/services/performance-service.ts +++ b/lib/services/performance-service.ts @@ -70,7 +70,7 @@ export class PerformanceService implements IPerformanceService { .trackEventActionInGoogleAnalytics({ action: TrackActionNames.Performance, additionalData: methodInfo, - value: executionTime, + value: executionTime }) .catch((err) => { throw err; @@ -95,7 +95,7 @@ export class PerformanceService implements IPerformanceService { methodInfo, executionTime, timestamp: getFixedLengthDateString(), - methodArgs: JSON.parse(methodArgs), + methodArgs: JSON.parse(methodArgs) }; try { diff --git a/lib/services/platform-environment-requirements.ts b/lib/services/platform-environment-requirements.ts index 63dd5b8a0a..1752ac2e22 100644 --- a/lib/services/platform-environment-requirements.ts +++ b/lib/services/platform-environment-requirements.ts @@ -4,12 +4,12 @@ import { EOL } from "os"; import { IPlatformEnvironmentRequirements, ICheckEnvironmentRequirementsInput, - ICheckEnvironmentRequirementsOutput, + ICheckEnvironmentRequirementsOutput } from "../definitions/platform"; import { IErrors, IAnalyticsService, - IDoctorService, + IDoctorService } from "../common/declarations"; import { IInjector } from "../common/definitions/yok"; import { injector } from "../common/yok"; @@ -39,11 +39,11 @@ export class PlatformEnvironmentRequirements if (process.env.NS_SKIP_ENV_CHECK) { await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: TrackActionNames.CheckEnvironmentRequirements, - additionalData: "Skipped: NS_SKIP_ENV_CHECK is set", + additionalData: "Skipped: NS_SKIP_ENV_CHECK is set" }); return { canExecute: true, - selectedOption, + selectedOption }; } @@ -51,7 +51,7 @@ export class PlatformEnvironmentRequirements platform, projectDir, runtimeVersion, - forceCheck: input.forceCheck, + forceCheck: input.forceCheck }); if (!canExecute) { @@ -59,14 +59,14 @@ export class PlatformEnvironmentRequirements await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: TrackActionNames.CheckEnvironmentRequirements, additionalData: - "Non-interactive terminal, unable to execute local builds.", + "Non-interactive terminal, unable to execute local builds." }); this.fail(this.getNonInteractiveConsoleMessage(platform)); } return { canExecute, - selectedOption, + selectedOption }; } @@ -77,7 +77,7 @@ export class PlatformEnvironmentRequirements private getNonInteractiveConsoleMessage(platform: string) { return [ PlatformEnvironmentRequirements.MISSING_LOCAL_SETUP_MESSAGE, - this.getEnvVerificationMessage(platform), + this.getEnvVerificationMessage(platform) ].join(EOL); } @@ -87,7 +87,7 @@ export class PlatformEnvironmentRequirements { linux: "linux", win32: "windows", - darwin: "macos", + darwin: "macos" } as any )[process.platform]; diff --git a/lib/services/platform-project-service-base.ts b/lib/services/platform-project-service-base.ts index c1d8b50687..24b5ba5569 100644 --- a/lib/services/platform-project-service-base.ts +++ b/lib/services/platform-project-service-base.ts @@ -3,7 +3,7 @@ import * as _ from "lodash"; import { IProjectDataService, IPlatformProjectServiceBase, - IProjectData, + IProjectData } from "../definitions/project"; import { IPlatformData } from "../definitions/platform"; import { IPluginData } from "../definitions/plugins"; @@ -12,7 +12,8 @@ import { PlatformTypes } from "../constants"; export abstract class PlatformProjectServiceBase extends EventEmitter - implements IPlatformProjectServiceBase { + implements IPlatformProjectServiceBase +{ constructor( protected $fs: IFileSystem, protected $projectDataService: IProjectDataService diff --git a/lib/services/platforms-data-service.ts b/lib/services/platforms-data-service.ts index 0f0ac30848..e0fe1a7674 100644 --- a/lib/services/platforms-data-service.ts +++ b/lib/services/platforms-data-service.ts @@ -15,7 +15,7 @@ export class PlatformsDataService implements IPlatformsDataService { this.platformsDataService = { ios: $iOSProjectService, android: $androidProjectService, - visionos: $iOSProjectService, + visionos: $iOSProjectService }; } diff --git a/lib/services/plugins-service.ts b/lib/services/plugins-service.ts index e9b5e6a54c..ace59ac2c4 100644 --- a/lib/services/plugins-service.ts +++ b/lib/services/plugins-service.ts @@ -8,25 +8,25 @@ import { IPluginData, IPackageJsonDepedenciesResult, IBasePluginData, - INodeModuleData, + INodeModuleData } from "../definitions/plugins"; import { IPlatformsDataService, INodeModulesDependenciesBuilder, - IPlatformData, + IPlatformData } from "../definitions/platform"; import { IProjectDataService, IProjectData } from "../definitions/project"; import { INodePackageManagerInstallOptions, INodePackageManager, IOptions, - IDependencyData, + IDependencyData } from "../declarations"; import { IFileSystem, IErrors, IDictionary, - IStringDictionary, + IStringDictionary } from "../common/declarations"; import { IFilesHashService } from "../definitions/files-hash-service"; import * as _ from "lodash"; @@ -34,7 +34,7 @@ import { IInjector } from "../common/definitions/yok"; import { injector } from "../common/yok"; import { resolvePackagePath, - resolvePackageJSONPath, + resolvePackageJSONPath } from "../helpers/package-path-helper"; import { color } from "../color"; @@ -42,14 +42,14 @@ export class PluginsService implements IPluginsService { private static INSTALL_COMMAND_NAME = "install"; private static UNINSTALL_COMMAND_NAME = "uninstall"; private static NPM_CONFIG = { - save: true, + save: true }; private static LOCK_FILES = [ "package-lock.json", "npm-shrinkwrap.json", "yarn.lock", - "pnpm-lock.yaml", + "pnpm-lock.yaml" ]; private get $platformsDataService(): IPlatformsDataService { @@ -65,7 +65,7 @@ export class PluginsService implements IPluginsService { disableNpmInstall: this.$options.disableNpmInstall, frameworkPath: this.$options.frameworkPath, ignoreScripts: this.$options.ignoreScripts, - path: this.$options.path, + path: this.$options.path }, PluginsService.NPM_CONFIG ); @@ -233,7 +233,7 @@ export class PluginsService implements IPluginsService { public async preparePluginNativeCode({ pluginData, platform, - projectData, + projectData }: IPreparePluginNativeCodeData): Promise { const platformData = this.$platformsDataService.getPlatformData( platform, @@ -276,7 +276,7 @@ export class PluginsService implements IPluginsService { pathToPluginsBuildFile, pluginData, currentPluginNativeHashes: updatedPluginNativeHashes, - allPluginsNativeHashes, + allPluginsNativeHashes }); } } @@ -296,7 +296,7 @@ export class PluginsService implements IPluginsService { .map((dep) => { this.$logger.trace(`Checking if ${dep} is installed...`); const pathToPackage = resolvePackagePath(dep, { - paths: [projectData.projectDir], + paths: [projectData.projectDir] }); if (pathToPackage) { @@ -325,7 +325,7 @@ export class PluginsService implements IPluginsService { disableNpmInstall: this.$options.disableNpmInstall, frameworkPath: this.$options.frameworkPath, ignoreScripts: this.$options.ignoreScripts, - path: this.$options.path, + path: this.$options.path } ); } @@ -394,7 +394,7 @@ export class PluginsService implements IPluginsService { return { dependencies, - devDependencies, + devDependencies }; } @@ -500,7 +500,7 @@ export class PluginsService implements IPluginsService { dependenciesWithFrameworks.push({ ...d, frameworkName: path.basename(file), - frameworkLocation: path.join(pathToPlatforms, file), + frameworkLocation: path.join(pathToPlatforms, file) }); } }); @@ -684,14 +684,14 @@ This framework comes from ${dependencyName} plugin, which is installed multiple return { hasModifiedPackageJson, - packageJsonContent, + packageJsonContent }; } private getBasicPluginInformation(dependencies: any): IBasePluginData[] { return _.map(dependencies, (version: string, key: string) => ({ name: key, - version: version, + version: version })); } @@ -708,7 +708,7 @@ This framework comes from ${dependencyName} plugin, which is installed multiple projectDir: string ): string { const pathToJsonFile = resolvePackageJSONPath(moduleName, { - paths: [projectDir], + paths: [projectDir] }); return pathToJsonFile; } @@ -733,7 +733,7 @@ This framework comes from ${dependencyName} plugin, which is installed multiple version: data.version, fullPath: path.dirname(module), isPlugin: data.nativescript !== undefined, - nativescript: data.nativescript, + nativescript: data.nativescript }; } diff --git a/lib/services/project-backup-service.ts b/lib/services/project-backup-service.ts index b265d8dd00..8c00bacbe4 100644 --- a/lib/services/project-backup-service.ts +++ b/lib/services/project-backup-service.ts @@ -59,7 +59,7 @@ export class ProjectBackupService implements IProjectBackupService { // create backup.json this.$super.$fs.writeJson(path.resolve(this.backupDir, "_backup.json"), { name: this.name, - paths: backedUpPaths, + paths: backedUpPaths }); return this; diff --git a/lib/services/project-changes-service.ts b/lib/services/project-changes-service.ts index 12e7574bfc..6b2191c277 100644 --- a/lib/services/project-changes-service.ts +++ b/lib/services/project-changes-service.ts @@ -7,19 +7,19 @@ import { PLATFORMS_DIR_NAME, CONFIG_FILE_NAME_JS, CONFIG_FILE_NAME_TS, - CONFIG_NS_FILE_NAME, + CONFIG_NS_FILE_NAME } from "../constants"; import { getHash, hook } from "../common/helpers"; import { INodeModulesDependenciesBuilder, - IPlatformData, + IPlatformData } from "../definitions/platform"; import { IProjectData } from "../definitions/project"; import { IFileSystem, IHooksService, IFsStats } from "../common/declarations"; import { IProjectChangesInfo, IPrepareInfo, - IAddedNativePlatform, + IAddedNativePlatform } from "../definitions/project-changes"; import * as _ from "lodash"; import { injector } from "../common/yok"; @@ -153,7 +153,7 @@ export class ProjectChangesService implements IProjectChangesService { this._changesInfo.nsConfigChanged = this.filesChanged([ path.join(projectData.projectDir, CONFIG_FILE_NAME_JS), path.join(projectData.projectDir, CONFIG_FILE_NAME_TS), - path.join(projectData.projectDir, CONFIG_NS_FILE_NAME), + path.join(projectData.projectDir, CONFIG_NS_FILE_NAME) ]); this._changesInfo.nativeChanged = this._changesInfo.nativeChanged || this._changesInfo.nsConfigChanged; @@ -169,12 +169,12 @@ export class ProjectChangesService implements IProjectChangesService { this._changesInfo.configChanged = this.filesChanged([ path.join(platformResourcesDir, platformData.configurationFileName), path.join(platformResourcesDir, "LaunchScreen.storyboard"), - path.join(platformResourcesDir, BUILD_XCCONFIG_FILE_NAME), + path.join(platformResourcesDir, BUILD_XCCONFIG_FILE_NAME) ]); } else { this._changesInfo.configChanged = this.filesChanged([ path.join(platformResourcesDir, platformData.configurationFileName), - path.join(platformResourcesDir, APP_GRADLE_FILE_NAME), + path.join(platformResourcesDir, APP_GRADLE_FILE_NAME) ]); } @@ -288,7 +288,7 @@ export class ProjectChangesService implements IProjectChangesService { addedPlatform.nativePlatformStatus; } else { this._prepareInfo = { - nativePlatformStatus: addedPlatform.nativePlatformStatus, + nativePlatformStatus: addedPlatform.nativePlatformStatus }; } @@ -328,7 +328,7 @@ export class ProjectChangesService implements IProjectChangesService { projectData.projectDir, platformData ), - changesRequireBuildTime: null, + changesRequireBuildTime: null }; this._outputProjectMtime = 0; diff --git a/lib/services/project-cleanup-service.ts b/lib/services/project-cleanup-service.ts index 25d7b01edf..8435e6e229 100644 --- a/lib/services/project-cleanup-service.ts +++ b/lib/services/project-cleanup-service.ts @@ -2,7 +2,7 @@ import { IProjectCleanupOptions, IProjectCleanupResult, IProjectCleanupService, - IProjectPathCleanupResult, + IProjectPathCleanupResult } from "../definitions/project"; import { IFileSystem, IProjectHelper } from "../common/declarations"; import { injector } from "../common/yok"; @@ -10,7 +10,7 @@ import * as path from "path"; import { color } from "../color"; import { ITerminalSpinner, - ITerminalSpinnerService, + ITerminalSpinnerService } from "../definitions/terminal-spinner-service"; export class ProjectCleanupService implements IProjectCleanupService { @@ -28,7 +28,7 @@ export class ProjectCleanupService implements IProjectCleanupService { options?: IProjectCleanupOptions ): Promise { this.spinner = this.$terminalSpinnerService.createSpinner({ - isSilent: options?.silent, + isSilent: options?.silent }); let stats = options?.stats ? new Map() : false; diff --git a/lib/services/project-config-service.ts b/lib/services/project-config-service.ts index df655a281b..0e6ce013f4 100644 --- a/lib/services/project-config-service.ts +++ b/lib/services/project-config-service.ts @@ -3,7 +3,7 @@ import { CONFIG_FILE_NAME_DISPLAY, CONFIG_FILE_NAME_JS, CONFIG_FILE_NAME_TS, - CONFIG_NS_FILE_NAME, + CONFIG_NS_FILE_NAME } from "../constants"; import * as path from "path"; import * as _ from "lodash"; @@ -12,20 +12,20 @@ import { IFileSystem, IProjectHelper } from "../common/declarations"; import { INsConfig, IProjectConfigInformation, - IProjectConfigService, + IProjectConfigService } from "../definitions/project"; import { IInjector } from "../common/definitions/yok"; import { ConfigTransformer, IConfigTransformer, - SupportedConfigValues, + SupportedConfigValues } from "../tools/config-manipulation/config-transformer"; import { IBasePluginData } from "../definitions/plugins"; import { injector } from "../common/yok"; import { EOL } from "os"; import { format as prettierFormat, - resolveConfig as resolvePrettierConfig, + resolveConfig as resolvePrettierConfig } from "prettier"; import { cache, exported } from "../common/decorators"; import { IOptions } from "../declarations"; @@ -111,7 +111,7 @@ export default { (configName?.endsWith(".json") ? configName : `${configName}.json`), CONFIG_FILE_NAME_TS, CONFIG_FILE_NAME_JS, - CONFIG_NS_FILE_NAME, + CONFIG_NS_FILE_NAME ] .filter(Boolean) .map((c) => { @@ -169,7 +169,7 @@ export default { usingNSConfig, TSConfigPath, JSConfigPath, - NSConfigPath, + NSConfigPath }; } @@ -195,7 +195,7 @@ export default { if (info.hasTSConfig) { const rawSource = this.$fs.readText(info.TSConfigPath); const transpiledSource = ts.transpileModule(rawSource, { - compilerOptions: { module: ts.ModuleKind.CommonJS }, + compilerOptions: { module: ts.ModuleKind.CommonJS } }); const result: any = this.requireFromString( transpiledSource.outputText, @@ -226,7 +226,7 @@ export default { TSConfigPath, JSConfigPath, usingNSConfig, - NSConfigPath, + NSConfigPath } = this.detectProjectConfigs(); const configFilePath = TSConfigPath || JSConfigPath; @@ -278,7 +278,7 @@ export default { { editorconfig: true } )) || { semi: false, - singleQuote: true, + singleQuote: true }; this.$logger.trace( "updating config, prettier options: ", @@ -286,12 +286,12 @@ export default { ); this.$fs.writeFile( configFilePath, - prettierFormat(newContent, { + await prettierFormat(newContent, { ...prettierOptions, parser: "typescript", // note: we don't use plugins here, since we are only formatting ts files, and they are supported by default // and this also causes issues with certain plugins, like prettier-plugin-tailwindcss. - plugins: [], + plugins: [] }) ); } catch (error) { @@ -327,7 +327,7 @@ export default { const possibleAppPaths = [ path.resolve(projectDir, constants.SRC_DIR), - path.resolve(projectDir, constants.APP_FOLDER_NAME), + path.resolve(projectDir, constants.APP_FOLDER_NAME) ]; let appPath = possibleAppPaths.find((possiblePath) => @@ -365,7 +365,7 @@ export default { "profiling", "cssParser", "discardUncaughtJsExceptions", - "main", + "main" ]) ); } catch (err) { @@ -391,14 +391,14 @@ export default { const ids = packageJson.nativescript.id; if (typeof ids === "string") { additionalData.push({ - id: packageJson.nativescript.id, + id: packageJson.nativescript.id }); } else if (typeof ids === "object") { for (const platform of Object.keys(ids)) { additionalData.push({ [platform]: { - id: packageJson.nativescript.id[platform], - }, + id: packageJson.nativescript.id[platform] + } }); } } @@ -451,7 +451,7 @@ You may add \`nsconfig.json\` to \`.gitignore\` as the CLI will regenerate it as _info2: `Do not edit this file manually, as any changes will be ignored.`, _info3: `Config changes should be done in ${CONFIG_FILE_NAME_DISPLAY} instead.`, appPath: this.getValue("appPath"), - appResourcesPath: this.getValue("appResourcesPath"), + appResourcesPath: this.getValue("appResourcesPath") }); // mark the file for cleanup after the CLI exits @@ -472,8 +472,8 @@ You may add \`nsconfig.json\` to \`.gitignore\` as the CLI will regenerate it as ...all, { key: toPath(key), - value: obj[key], - }, + value: obj[key] + } ]; }, []); } diff --git a/lib/services/project-data-service.ts b/lib/services/project-data-service.ts index 52f1ff49a5..615e50dde5 100644 --- a/lib/services/project-data-service.ts +++ b/lib/services/project-data-service.ts @@ -10,7 +10,7 @@ import { PlatformTypes, ProjectTypes, RESOURCES_DIR, - SRC_DIR, + SRC_DIR } from "../constants"; import { parseJson } from "../common/helpers"; import { exported, memoize } from "../common/decorators"; @@ -22,11 +22,11 @@ import { IImageDefinitionsStructure, INsConfig, IProjectData, - IProjectDataService, + IProjectDataService } from "../definitions/project"; import { IAndroidResourcesMigrationService, - IStaticConfig, + IStaticConfig } from "../declarations"; import { IBasePluginData, IPluginsService } from "../definitions/plugins"; import { IDictionary, IFileSystem, IProjectDir } from "../common/declarations"; @@ -159,7 +159,7 @@ export class ProjectDataService implements IProjectDataService { return { ios: iOSAssetStructure, - android: androidAssetStructure, + android: androidAssetStructure }; } @@ -202,7 +202,7 @@ export class ProjectDataService implements IProjectDataService { icons, splashBackgrounds, splashCenterImages, - splashImages, + splashImages }; } @@ -259,7 +259,7 @@ export class ProjectDataService implements IProjectDataService { content.splashCenterImages, basePath ), - splashImages: null, + splashImages: null }; } @@ -461,7 +461,7 @@ export class ProjectDataService implements IProjectDataService { basePath: string ): IAssetSubGroup { const assetSubGroup: IAssetSubGroup = { - images: [], + images: [] }; _.each(assetItems, (assetItem) => { @@ -564,7 +564,7 @@ export class ProjectDataService implements IProjectDataService { return { projectData, - projectFilePath, + projectFilePath }; } @@ -599,7 +599,7 @@ export class ProjectDataService implements IProjectDataService { // that information return { name: runtimeName, - version: packageJson.nativescript[runtimeName].version, + version: packageJson.nativescript[runtimeName].version }; } @@ -618,7 +618,7 @@ export class ProjectDataService implements IProjectDataService { // only cache if version is defined return !!result.version; - }, + } }) private getInstalledRuntimePackage( projectDir: string, @@ -630,12 +630,12 @@ export class ProjectDataService implements IProjectDataService { if (platform === constants.PlatformTypes.ios) { return [ constants.SCOPED_IOS_RUNTIME_NAME, - constants.TNS_IOS_RUNTIME_NAME, + constants.TNS_IOS_RUNTIME_NAME ].includes(d.name); } else if (platform === constants.PlatformTypes.android) { return [ constants.SCOPED_ANDROID_RUNTIME_NAME, - constants.TNS_ANDROID_RUNTIME_NAME, + constants.TNS_ANDROID_RUNTIME_NAME ].includes(d.name); } else if (platform === constants.PlatformTypes.visionos) { return d.name === constants.SCOPED_VISIONOS_RUNTIME_NAME; @@ -653,7 +653,7 @@ export class ProjectDataService implements IProjectDataService { const runtimePackageJsonPath = resolvePackageJSONPath( runtimePackage.name, { - paths: [projectDir], + paths: [projectDir] } ); @@ -688,17 +688,17 @@ export class ProjectDataService implements IProjectDataService { if (platform === constants.PlatformTypes.ios) { return { name: constants.SCOPED_IOS_RUNTIME_NAME, - version: null, + version: null }; } else if (platform === constants.PlatformTypes.android) { return { name: constants.SCOPED_ANDROID_RUNTIME_NAME, - version: null, + version: null }; } else if (platform === constants.PlatformTypes.visionos) { return { name: constants.SCOPED_VISIONOS_RUNTIME_NAME, - version: null, + version: null }; } } diff --git a/lib/services/project-service.ts b/lib/services/project-service.ts index 91bc4bce84..b51e559f7a 100644 --- a/lib/services/project-service.ts +++ b/lib/services/project-service.ts @@ -12,20 +12,20 @@ import { IProjectSettings, IProjectCreationSettings, ITemplateData, - IProjectConfigService, + IProjectConfigService } from "../definitions/project"; import { INodePackageManager, IOptions, IProjectNameService, - IStaticConfig, + IStaticConfig } from "../declarations"; import { IHooksService, IErrors, IFileSystem, IProjectHelper, - IChildProcess, + IChildProcess } from "../common/declarations"; import * as _ from "lodash"; import { injector } from "../common/yok"; @@ -63,7 +63,7 @@ export class ProjectService implements IProjectService { } projectName = await this.$projectNameService.ensureValidName(projectName, { - force: opts.force, + force: opts.force }); const projectDir = this.getValidProjectDir(opts.pathToProject, projectName); if (this.$fs.exists(projectDir) && !this.$fs.isEmptyDir(projectDir)) { @@ -81,7 +81,7 @@ export class ProjectService implements IProjectService { const projectName = await this.validateProjectName({ projectName: projectOptions.projectName, force: projectOptions.force, - pathToProject: projectOptions.pathToProject, + pathToProject: projectOptions.pathToProject }); const projectDir = this.getValidProjectDir( projectOptions.pathToProject, @@ -105,7 +105,7 @@ export class ProjectService implements IProjectService { projectDir, ignoreScripts: projectOptions.ignoreScripts, appId: appId, - projectName, + projectName }); // can pass --no-git to skip creating a git repo @@ -141,9 +141,8 @@ export class ProjectService implements IProjectService { @exported("projectService") public isValidNativeScriptProject(pathToProject?: string): boolean { try { - const projectData = this.$projectDataService.getProjectData( - pathToProject - ); + const projectData = + this.$projectDataService.getProjectData(pathToProject); return ( !!projectData && @@ -171,13 +170,8 @@ export class ProjectService implements IProjectService { private async createProjectCore( projectCreationSettings: IProjectCreationSettings ): Promise { - const { - template, - projectDir, - appId, - projectName, - ignoreScripts, - } = projectCreationSettings; + const { template, projectDir, appId, projectName, ignoreScripts } = + projectCreationSettings; try { const templateData = await this.$projectTemplatesService.prepareTemplate( @@ -196,7 +190,7 @@ export class ProjectService implements IProjectService { await this.$packageManager.install(projectDir, projectDir, { disableNpmInstall: false, frameworkPath: null, - ignoreScripts, + ignoreScripts }); } catch (err) { this.$fs.deleteDirectory(projectDir); @@ -204,7 +198,7 @@ export class ProjectService implements IProjectService { } await this.$hooksService.executeAfterHooks(Hooks.createProject, { - hookArgs: projectCreationSettings, + hookArgs: projectCreationSettings }); return { projectName, projectDir }; @@ -226,9 +220,8 @@ export class ProjectService implements IProjectService { @performanceLog() public async ensureAppResourcesExist(projectDir: string): Promise { const projectData = this.$projectDataService.getProjectData(projectDir); - const appResourcesDestinationPath = projectData.getAppResourcesDirectoryPath( - projectDir - ); + const appResourcesDestinationPath = + projectData.getAppResourcesDirectoryPath(projectDir); if (!this.$fs.exists(appResourcesDestinationPath)) { this.$logger.trace( @@ -241,12 +234,10 @@ export class ProjectService implements IProjectService { constants.RESERVED_TEMPLATE_NAMES["default"], tempDir ); - const templateProjectData = this.$projectDataService.getProjectData( - tempDir - ); - const templateAppResourcesDir = templateProjectData.getAppResourcesDirectoryPath( - tempDir - ); + const templateProjectData = + this.$projectDataService.getProjectData(tempDir); + const templateAppResourcesDir = + templateProjectData.getAppResourcesDirectoryPath(tempDir); this.$fs.copyFile( path.join(templateAppResourcesDir, "*"), appResourcesDestinationPath @@ -283,7 +274,7 @@ export class ProjectService implements IProjectService { version: "1.0.0", private: true, dependencies: {}, - devDependencies: {}, + devDependencies: {} // anythign else would go below }; diff --git a/lib/services/project-templates-service.ts b/lib/services/project-templates-service.ts index fe93071cc8..2f96cd3c36 100644 --- a/lib/services/project-templates-service.ts +++ b/lib/services/project-templates-service.ts @@ -5,17 +5,17 @@ import { performanceLog } from "../common/decorators"; import { IProjectTemplatesService, ITemplateData, - ITemplatePackageJsonContent, + ITemplatePackageJsonContent } from "../definitions/project"; import { IPackageInstallationManager, INodePackageManager, - IStaticConfig, + IStaticConfig } from "../declarations"; import { IFileSystem, IAnalyticsService, - IDictionary, + IDictionary } from "../common/declarations"; import { injector } from "../common/yok"; @@ -41,9 +41,8 @@ export class ProjectTemplatesService implements IProjectTemplatesService { templateValue = constants.RESERVED_TEMPLATE_NAMES["default"]; } - const templateNameParts = await this.$packageManager.getPackageNameParts( - templateValue - ); + const templateNameParts = + await this.$packageManager.getPackageNameParts(templateValue); templateValue = constants.RESERVED_TEMPLATE_NAMES[templateNameParts.name] || templateNameParts.name; @@ -55,12 +54,11 @@ export class ProjectTemplatesService implements IProjectTemplatesService { const fullTemplateName = await this.$packageManager.getPackageFullName({ name: templateValue, - version: version, + version: version }); - const templatePackageJsonContent = await this.getTemplatePackageJsonContent( - fullTemplateName - ); + const templatePackageJsonContent = + await this.getTemplatePackageJsonContent(fullTemplateName); const templateNameToBeTracked = this.getTemplateNameToBeTracked( templateValue, @@ -70,19 +68,19 @@ export class ProjectTemplatesService implements IProjectTemplatesService { await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: constants.TrackActionNames.CreateProject, isForDevice: null, - additionalData: templateNameToBeTracked, + additionalData: templateNameToBeTracked }); await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: constants.TrackActionNames.UsingTemplate, - additionalData: templateNameToBeTracked, + additionalData: templateNameToBeTracked }); } return { templateName: templateValue, templatePackageJsonContent, - version, + version }; } @@ -90,11 +88,10 @@ export class ProjectTemplatesService implements IProjectTemplatesService { templateName: string ): Promise { if (!this.templatePackageContents[templateName]) { - this.templatePackageContents[ - templateName - ] = await this.$pacoteService.manifest(templateName, { - fullMetadata: true, - }); + this.templatePackageContents[templateName] = + await this.$pacoteService.manifest(templateName, { + fullMetadata: true + }); } return this.templatePackageContents[templateName]; diff --git a/lib/services/start-service.ts b/lib/services/start-service.ts index 7ed068916d..6a976fff76 100644 --- a/lib/services/start-service.ts +++ b/lib/services/start-service.ts @@ -2,7 +2,7 @@ import { ChildProcess } from "child_process"; import { IChildProcess } from "../common/declarations"; import { IKeyCommandHelper, - IValidKeyName, + IValidKeyName } from "../common/definitions/key-commands"; import { injector } from "../common/yok"; import { IProjectData } from "../definitions/project"; @@ -47,8 +47,8 @@ export default class StartService implements IStartService { FORCE_COLOR: 1, HIDE_HEADER: true, NS_IS_INTERACTIVE: true, - ...process.env, - }, + ...process.env + } } ); @@ -112,7 +112,7 @@ export default class StartService implements IStartService { const clean = this.$childProcess.spawn("node", [ this.$staticConfig.cliBinPath, - "clean", + "clean" ]); clean.stdout.on("data", (data) => { process.stdout.write(data); diff --git a/lib/services/terminal-spinner-service.ts b/lib/services/terminal-spinner-service.ts index 2e72d31320..eb4d3d8949 100644 --- a/lib/services/terminal-spinner-service.ts +++ b/lib/services/terminal-spinner-service.ts @@ -1,9 +1,9 @@ -import * as ora from "ora"; +import ora from "ora"; import { injector } from "../common/yok"; import { ITerminalSpinner, ITerminalSpinnerOptions, - ITerminalSpinnerService, + ITerminalSpinnerService } from "../definitions/terminal-spinner-service"; export class TerminalSpinnerService implements ITerminalSpinnerService { diff --git a/lib/services/test-execution-service.ts b/lib/services/test-execution-service.ts index 7cd37fe2c1..bcc5e72cc2 100644 --- a/lib/services/test-execution-service.ts +++ b/lib/services/test-execution-service.ts @@ -5,7 +5,7 @@ import { RunController } from "../controllers/run-controller"; import { ITestExecutionService, IProjectDataService, - IProjectData, + IProjectData } from "../definitions/project"; import { IConfiguration, IOptions } from "../declarations"; import { IPluginsService } from "../definitions/plugins"; @@ -13,7 +13,7 @@ import { Server, IFileSystem, IChildProcess, - ErrorCodes, + ErrorCodes } from "../common/declarations"; import * as _ from "lodash"; import { injector } from "../common/yok"; @@ -105,7 +105,7 @@ export class TestExecutionService implements ITestExecutionService { await this.$runController.run({ liveSyncInfo, - deviceDescriptors, + deviceDescriptors }); }; @@ -149,7 +149,7 @@ export class TestExecutionService implements ITestExecutionService { }); const pathToKarma = resolvePackagePath("karma", { - paths: [projectData.projectDir], + paths: [projectData.projectDir] }); canStartKarmaServer = canStartKarmaServer && !!pathToKarma; @@ -174,7 +174,7 @@ export class TestExecutionService implements ITestExecutionService { const config = { port, ips, - options, + options }; return "module.exports = " + JSON.stringify(config); @@ -198,9 +198,9 @@ export class TestExecutionService implements ITestExecutionService { debugBrk: this.$options.debugBrk, watch: !!this.$options.watch, bundle: true, - appDirectoryRelativePath: projectData.getAppDirectoryRelativePath(), - }, - }, + appDirectoryRelativePath: projectData.getAppDirectoryRelativePath() + } + } }; if (this.$config.DEBUG || this.$logger.getLevel() === "TRACE") { diff --git a/lib/services/test-initialization-service.ts b/lib/services/test-initialization-service.ts index 166ca77da5..b08c144917 100644 --- a/lib/services/test-initialization-service.ts +++ b/lib/services/test-initialization-service.ts @@ -5,7 +5,7 @@ import { ITestInitializationService } from "../definitions/project"; import { IErrors, IFileSystem, - IDependencyInformation, + IDependencyInformation } from "../common/declarations"; import * as _ from "lodash"; import { injector } from "../common/yok"; @@ -13,7 +13,10 @@ import { injector } from "../common/yok"; export class TestInitializationService implements ITestInitializationService { private configsPath = path.join(__dirname, "..", "..", "config"); - constructor(private $errors: IErrors, private $fs: IFileSystem) {} + constructor( + private $errors: IErrors, + private $fs: IFileSystem + ) {} @cache() public getDependencies(selectedFramework: string): IDependencyInformation[] { @@ -33,18 +36,21 @@ export class TestInitializationService implements ITestInitializationService { ); const dependenciesVersions = this.$fs.readJson(dependenciesVersionsPath); - const targetFrameworkDependencies: IDependencyInformation[] = allDependencies - .filter( - (dependency) => - !dependency.framework || dependency.framework === selectedFramework - ) - .map((dependency) => { - const dependencyVersion = dependenciesVersions[dependency.name]; - if (!dependencyVersion) { - this.$errors.fail(`'${dependency}' is not a registered dependency.`); - } - return { ...dependency, version: dependencyVersion }; - }); + const targetFrameworkDependencies: IDependencyInformation[] = + allDependencies + .filter( + (dependency) => + !dependency.framework || dependency.framework === selectedFramework + ) + .map((dependency) => { + const dependencyVersion = dependenciesVersions[dependency.name]; + if (!dependencyVersion) { + this.$errors.fail( + `'${dependency}' is not a registered dependency.` + ); + } + return { ...dependency, version: dependencyVersion }; + }); return targetFrameworkDependencies; } diff --git a/lib/services/timeline-profiler-service.ts b/lib/services/timeline-profiler-service.ts index 31b5805548..80ff16b922 100644 --- a/lib/services/timeline-profiler-service.ts +++ b/lib/services/timeline-profiler-service.ts @@ -17,7 +17,7 @@ enum ChromeTraceEventPhase { BEGIN = "B", END = "E", INSTANT = "i", - COMPLETE = "X", + COMPLETE = "X" } interface ChromeTraceEvent { @@ -60,7 +60,7 @@ export class TimelineProfilerService implements ITimelineProfilerService { if (!this.timelines.has(deviceIdentifier)) { this.timelines.set(deviceIdentifier, { startPoint: null, - timeline: [], + timeline: [] }); } @@ -90,7 +90,7 @@ export class TimelineProfilerService implements ITimelineProfilerService { domain: result[2]?.trim().replace(":", ""), name: result[3].trim(), from: parseFloat(result[4]), - to: parseFloat(result[5]), + to: parseFloat(result[5]) }; return { @@ -100,7 +100,7 @@ export class TimelineProfilerService implements ITimelineProfilerService { dur: (trace.to - trace.from) * 1000, name: trace.name, cat: trace.domain ?? "default", - ph: ChromeTraceEventPhase.COMPLETE, + ph: ChromeTraceEventPhase.COMPLETE }; } diff --git a/lib/services/user-settings-service.ts b/lib/services/user-settings-service.ts index 2ba6be9831..b25641a444 100644 --- a/lib/services/user-settings-service.ts +++ b/lib/services/user-settings-service.ts @@ -5,12 +5,12 @@ import { injector } from "../common/yok"; import { IUserSettingsService, ISettingsService, - IDictionary, + IDictionary } from "../common/declarations"; import { IJsonFileSettingsService, ICacheTimeoutOpts, - IUseCacheOpts, + IUseCacheOpts } from "../common/definitions/json-file-settings-service"; export class UserSettingsService implements IUserSettingsService { @@ -20,7 +20,7 @@ export class UserSettingsService implements IUserSettingsService { "user-settings.json" ); return this.$injector.resolve("jsonFileSettingsService", { - jsonFileSettingsPath: userSettingsFilePath, + jsonFileSettingsPath: userSettingsFilePath }); } diff --git a/lib/services/versions-service.ts b/lib/services/versions-service.ts index 3710ab52bc..5c6fdfd062 100644 --- a/lib/services/versions-service.ts +++ b/lib/services/versions-service.ts @@ -15,7 +15,7 @@ import { ITerminalSpinnerService } from "../definitions/terminal-spinner-service export enum VersionInformationType { UpToDate = "UpToDate", UpdateAvailable = "UpdateAvailable", - NotInstalled = "NotInstalled", + NotInstalled = "NotInstalled" } class VersionsService implements IVersionsService { @@ -40,24 +40,26 @@ class VersionsService implements IVersionsService { public async getNativescriptCliVersion(): Promise { const currentCliVersion = this.$staticConfig.version; - const latestCliVersion = await this.$packageInstallationManager.getLatestVersion( - constants.NATIVESCRIPT_KEY_NAME - ); + const latestCliVersion = + await this.$packageInstallationManager.getLatestVersion( + constants.NATIVESCRIPT_KEY_NAME + ); return { componentName: constants.NATIVESCRIPT_KEY_NAME, currentVersion: currentCliVersion, - latestVersion: latestCliVersion, + latestVersion: latestCliVersion }; } public async getTnsCoreModulesVersion(): Promise { - const latestTnsCoreModulesVersion = await this.$packageInstallationManager.getLatestVersion( - constants.TNS_CORE_MODULES_NAME - ); + const latestTnsCoreModulesVersion = + await this.$packageInstallationManager.getLatestVersion( + constants.TNS_CORE_MODULES_NAME + ); const nativescriptCoreModulesInfo: IVersionInformation = { componentName: constants.TNS_CORE_MODULES_NAME, - latestVersion: latestTnsCoreModulesVersion, + latestVersion: latestTnsCoreModulesVersion }; const versionInformations: IVersionInformation[] = []; @@ -76,12 +78,10 @@ class VersionsService implements IVersionsService { constants.TNS_CORE_MODULES_NAME ); - const dependsOnNonScopedPackage = !!this.projectData.dependencies[ - constants.TNS_CORE_MODULES_NAME - ]; - const dependsOnScopedPackage = !!this.projectData.dependencies[ - constants.SCOPED_TNS_CORE_MODULES - ]; + const dependsOnNonScopedPackage = + !!this.projectData.dependencies[constants.TNS_CORE_MODULES_NAME]; + const dependsOnScopedPackage = + !!this.projectData.dependencies[constants.SCOPED_TNS_CORE_MODULES]; // ensure the dependencies are installed, so we can get their actual versions from node_modules if ( @@ -98,16 +98,18 @@ class VersionsService implements IVersionsService { const currentTnsCoreModulesVersion = this.$fs.readJson( path.join(tnsCoreModulesPath, constants.PACKAGE_JSON_FILE_NAME) ).version; - nativescriptCoreModulesInfo.currentVersion = currentTnsCoreModulesVersion; + nativescriptCoreModulesInfo.currentVersion = + currentTnsCoreModulesVersion; versionInformations.push(nativescriptCoreModulesInfo); } if (dependsOnScopedPackage && this.$fs.exists(scopedPackagePath)) { const scopedModulesInformation: IVersionInformation = { componentName: constants.SCOPED_TNS_CORE_MODULES, - latestVersion: await this.$packageInstallationManager.getLatestVersion( - constants.SCOPED_TNS_CORE_MODULES - ), + latestVersion: + await this.$packageInstallationManager.getLatestVersion( + constants.SCOPED_TNS_CORE_MODULES + ) }; const currentScopedPackageVersion = this.$fs.readJson( @@ -146,13 +148,12 @@ class VersionsService implements IVersionsService { const runtimesVersions: IVersionInformation[] = await Promise.all( runtimes.map(async (runtime: IBasePluginData) => { - const latestVersion = await this.$packageInstallationManager.getLatestVersion( - runtime.name - ); + const latestVersion = + await this.$packageInstallationManager.getLatestVersion(runtime.name); const runtimeInformation: IVersionInformation = { componentName: runtime.name, currentVersion: runtime.version, - latestVersion, + latestVersion }; return runtimeInformation; @@ -168,20 +169,21 @@ class VersionsService implements IVersionsService { try { let allComponents: IVersionInformation[] = []; - const nativescriptCliInformation: IVersionInformation = await this.getNativescriptCliVersion(); + const nativescriptCliInformation: IVersionInformation = + await this.getNativescriptCliVersion(); if (nativescriptCliInformation) { allComponents.push(nativescriptCliInformation); } if (this.projectData) { - const nativescriptCoreModulesInformation: IVersionInformation[] = await this.getTnsCoreModulesVersion(); + const nativescriptCoreModulesInformation: IVersionInformation[] = + await this.getTnsCoreModulesVersion(); if (nativescriptCoreModulesInformation) { allComponents.push(...nativescriptCoreModulesInformation); } - const runtimesVersions: IVersionInformation[] = await this.getRuntimesVersions( - platform - ); + const runtimesVersions: IVersionInformation[] = + await this.getRuntimesVersions(platform); allComponents = allComponents.concat(runtimesVersions); } @@ -215,7 +217,7 @@ class VersionsService implements IVersionsService { IVersionInformation[] >( { - text: `Getting NativeScript components versions information...`, + text: `Getting NativeScript components versions information...` }, () => this.getAllComponentsVersions(platform) ); diff --git a/lib/services/xcconfig-service.ts b/lib/services/xcconfig-service.ts index 1b99ffa962..18591a344e 100644 --- a/lib/services/xcconfig-service.ts +++ b/lib/services/xcconfig-service.ts @@ -4,22 +4,23 @@ import { IXcconfigService } from "../declarations"; import { IChildProcess, IFileSystem, - IStringDictionary, + IStringDictionary } from "../common/declarations"; import * as _ from "lodash"; import { injector } from "../common/yok"; export class XcconfigService implements IXcconfigService { - constructor(private $childProcess: IChildProcess, private $fs: IFileSystem) {} + constructor( + private $childProcess: IChildProcess, + private $fs: IFileSystem + ) {} public getPluginsXcconfigFilePaths(projectRoot: string): IStringDictionary { return { - [Configurations.Debug.toLowerCase()]: this.getPluginsDebugXcconfigFilePath( - projectRoot - ), - [Configurations.Release.toLowerCase()]: this.getPluginsReleaseXcconfigFilePath( - projectRoot - ), + [Configurations.Debug.toLowerCase()]: + this.getPluginsDebugXcconfigFilePath(projectRoot), + [Configurations.Release.toLowerCase()]: + this.getPluginsReleaseXcconfigFilePath(projectRoot) }; } diff --git a/lib/tools/node-modules/node-modules-dependencies-builder.ts b/lib/tools/node-modules/node-modules-dependencies-builder.ts index 24abbb426d..9474b7eb79 100644 --- a/lib/tools/node-modules/node-modules-dependencies-builder.ts +++ b/lib/tools/node-modules/node-modules-dependencies-builder.ts @@ -15,16 +15,17 @@ interface IDependencyDescription { } export class NodeModulesDependenciesBuilder - implements INodeModulesDependenciesBuilder { + implements INodeModulesDependenciesBuilder +{ public constructor(private $fs: IFileSystem) {} public getProductionDependencies( projectPath: string, - ignore?: string[] + ignore?: string[], ): IDependencyData[] { const projectPackageJsonPath = path.join( projectPath, - PACKAGE_JSON_FILE_NAME + PACKAGE_JSON_FILE_NAME, ); const packageJsonContent = this.$fs.readJson(projectPackageJsonPath); const dependencies = packageJsonContent && packageJsonContent.dependencies; @@ -33,11 +34,11 @@ export class NodeModulesDependenciesBuilder const queue: IDependencyDescription[] = _.keys(dependencies).map( (dependencyName) => ({ - parent: null, + parent: null as any, parentDir: projectPath, name: dependencyName, depth: 0, - }) + }), ); while (queue.length) { @@ -45,14 +46,14 @@ export class NodeModulesDependenciesBuilder const resolvedDependency = this.findModule( currentModule, resolvedDependencies, - projectPath + projectPath, ); if ( resolvedDependency && !_.some( resolvedDependencies, - (r) => r.directory === resolvedDependency.directory + (r) => r.directory === resolvedDependency.directory, ) ) { _.each(resolvedDependency.dependencies, (d) => { @@ -69,7 +70,7 @@ export class NodeModulesDependenciesBuilder element.parent === dependency.parent && element.name === dependency.name && element.parentDir === dependency.parentDir && - element.depth === dependency.depth + element.depth === dependency.depth, ); if (shouldAdd) { @@ -89,7 +90,7 @@ export class NodeModulesDependenciesBuilder private findModule( depDescription: IDependencyDescription, resolvedDependencies: IDependencyData[], - rootPath: string + rootPath: string, ): IDependencyData { try { const parentModulesPath = @@ -124,7 +125,7 @@ export class NodeModulesDependenciesBuilder return this.getDependencyData( depDescription.name, modulePath, - depDescription.depth + depDescription.depth, ); } catch (err) { return null; @@ -134,7 +135,7 @@ export class NodeModulesDependenciesBuilder private getDependencyData( name: string, directory: string, - depth: number + depth: number, ): IDependencyData { const dependency: IDependencyData = { name, @@ -165,5 +166,5 @@ export class NodeModulesDependenciesBuilder injector.register( "nodeModulesDependenciesBuilder", - NodeModulesDependenciesBuilder + NodeModulesDependenciesBuilder, ); diff --git a/package-lock.json b/package-lock.json index 577163ad1d..51edfd50c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,30 +7,24 @@ "": { "name": "nativescript", "version": "8.9.0", - "bundleDependencies": [ - "@npmcli/move-file", - "stringify-package" - ], "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@foxt/js-srp": "^0.0.3-patch2", - "@nativescript/doctor": "2.0.15", - "@nativescript/schematics-executor": "0.0.2", - "@npmcli/arborist": "^7.2.0", - "@npmcli/move-file": "^2.0.0", + "@nativescript/doctor": "2.0.16-rc.0", + "@npmcli/arborist": "^9.0.0", "@rigor789/resolve-package-path": "1.0.7", "@rigor789/trapezedev-project": "7.1.2", "ansi-colors": "^4.1.3", - "archiver": "^5.3.1", - "axios": "1.6.5", + "archiver": "^7.0.1", + "axios": "1.7.9", "byline": "5.0.0", - "chalk": "4.1.2", - "chokidar": "3.5.3", - "cli-table3": "0.6.3", + "chalk": "^4.1.0", + "chokidar": "4.0.3", + "cli-table3": "0.6.5", "color": "4.2.3", "convert-source-map": "2.0.0", - "detect-newline": "3.1.0", + "detect-newline": "4.0.1", "email-validator": "2.0.4", "esprima": "4.0.1", "font-finder": "1.1.0", @@ -38,44 +32,43 @@ "ios-device-lib": "0.9.4", "ios-mobileprovision-finder": "1.2.1", "ios-sim-portable": "4.5.0", - "jimp": "0.22.10", + "jimp": "1.6.0", "lodash": "4.17.21", "log4js": "6.9.1", - "marked": "4.3.0", - "marked-terminal": "5.1.1", - "minimatch": "7.4.2", - "mkdirp": "2.1.6", - "mute-stream": "1.0.0", + "marked": "15.0.6", + "marked-terminal": "7.3.0", + "minimatch": "10.0.1", + "mkdirp": "3.0.1", + "mute-stream": "2.0.0", "nativescript-dev-xcode": "0.8.0", - "open": "8.4.2", - "ora": "5.4.1", - "pacote": "15.1.1", + "open": "10.1.0", + "ora": "8.1.1", + "pacote": "21.0.0", "pbxproj-dom": "1.2.0", - "plist": "3.0.6", + "plist": "3.1.0", "plist-merge-patch": "0.2.0", - "prettier": "2.8.7", + "prettier": "3.4.2", "prompts": "2.4.2", "proper-lockfile": "4.1.2", "proxy-lib": "0.4.0", "qr-image": "3.2.0", "qrcode-terminal": "0.12.0", - "semver": "7.5.4", + "semver": "7.6.3", "shelljs": "0.8.5", - "simple-git": "3.17.0", + "simple-git": "3.27.0", "simple-plist": "1.4.0", "source-map": "0.7.4", - "stringify-package": "1.0.1", - "tar": "6.1.13", + "tar": "7.4.3", "temp": "0.9.4", - "ts-morph": "17.0.1", + "ts-morph": "25.0.0", "tunnel": "0.0.6", - "typescript": "5.0.3", + "typescript": "5.7.3", "universal-analytics": "0.5.3", - "uuid": "9.0.0", - "winreg": "1.2.4", - "ws": "8.13.0", + "uuid": "11.0.5", + "winreg": "1.2.5", + "ws": "8.18.0", "xml2js": "0.6.2", - "yargs": "17.7.1" + "yargs": "17.7.2" }, "bin": { "nativescript": "bin/tns", @@ -84,43 +77,38 @@ "tns": "bin/tns" }, "devDependencies": { - "@types/archiver": "^5.3.2", - "@types/byline": "^4.2.33", - "@types/chai": "4.3.4", - "@types/chai-as-promised": "7.1.5", - "@types/chokidar": "2.1.3", - "@types/color": "3.0.3", - "@types/convert-source-map": "2.0.0", - "@types/form-data": "2.5.0", + "@types/archiver": "^6.0.3", + "@types/byline": "^4.2.36", + "@types/chai": "5.0.1", + "@types/chai-as-promised": "8.0.1", + "@types/color": "4.2.0", + "@types/convert-source-map": "2.0.3", "@types/glob": "^8.1.0", - "@types/lodash": "4.14.192", - "@types/marked": "^4.0.8", - "@types/node": "18.15.11", - "@types/npmcli__arborist": "^5.6.4", - "@types/ora": "3.2.0", - "@types/pacote": "^11.1.5", - "@types/plist": "^3.0.2", - "@types/prettier": "2.7.2", - "@types/prompts": "2.4.4", - "@types/proper-lockfile": "4.1.2", - "@types/qr-image": "3.2.5", - "@types/retry": "0.12.2", - "@types/semver": "7.5.6", + "@types/lodash": "4.17.15", + "@types/marked-terminal": "^6.1.1", + "@types/node": "^20.0.0", + "@types/npmcli__arborist": "^6.3.0", + "@types/pacote": "^11.1.8", + "@types/plist": "^3.0.5", + "@types/prompts": "2.4.9", + "@types/proper-lockfile": "4.1.4", + "@types/qr-image": "3.2.9", + "@types/retry": "0.12.5", + "@types/semver": "7.5.8", "@types/shelljs": "^0.8.11", - "@types/sinon": "^10.0.13", - "@types/source-map": "0.5.7", + "@types/sinon": "^17.0.3", "@types/tabtab": "^3.0.2", - "@types/tar": "6.1.4", - "@types/temp": "0.9.1", - "@types/tunnel": "0.0.3", - "@types/universal-analytics": "0.4.5", - "@types/uuid": "^9.0.1", - "@types/ws": "8.5.4", + "@types/tar": "6.1.13", + "@types/temp": "0.9.4", + "@types/tunnel": "0.0.7", + "@types/universal-analytics": "0.4.8", + "@types/uuid": "^10.0.0", + "@types/ws": "8.5.14", "@types/xml2js": "0.4.14", - "@types/yargs": "17.0.24", - "chai": "4.3.7", - "chai-as-promised": "7.1.1", - "conventional-changelog-cli": "^2.2.2", + "@types/yargs": "17.0.33", + "chai": "5.1.2", + "chai-as-promised": "8.0.1", + "conventional-changelog-cli": "^5.0.0", "grunt": "1.6.1", "grunt-contrib-clean": "2.0.1", "grunt-contrib-copy": "1.0.0", @@ -128,12 +116,12 @@ "grunt-shell": "4.0.0", "grunt-template": "1.0.0", "grunt-ts": "6.0.0-beta.22", - "husky": "8.0.3", + "husky": "9.1.7", "istanbul": "0.4.5", - "latest-version": "5.1.0", - "lint-staged": "^13.2.0", - "mocha": "10.2.0", - "sinon": "15.0.3", + "latest-version": "9.0.0", + "lint-staged": "~15.2.0", + "mocha": "11.1.0", + "sinon": "19.0.2", "source-map-support": "0.5.21" }, "engines": { @@ -194,12 +182,6 @@ "integrity": "sha512-mCjMIf+/mwmuzSGr8CWWQDjDUqMBnw9TBnzfcBUTR2ySPoXcg6Pfb4/WPklY1TwY3Pe3f3r8q6hzWvvogInuug==", "license": "ISC" }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "license": "MIT" - }, "node_modules/@hutson/parse-repository-url": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", @@ -336,18 +318,6 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", @@ -415,429 +385,443 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@isaacs/fs-minipass/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", "license": "ISC" }, - "node_modules/@jimp/bmp": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.22.12.tgz", - "integrity": "sha512-aeI64HD0npropd+AR76MCcvvRaa+Qck6loCOS03CkkxGHN5/r336qTM5HPUdHKMDOGzqknuVPA8+kK1t03z12g==", + "node_modules/@jimp/core": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-1.6.0.tgz", + "integrity": "sha512-EQQlKU3s9QfdJqiSrZWNTxBs3rKXgO2W+GxNXDtwchF3a4IqxDheFX1ti+Env9hdJXDiYLp2jTRjlxhPthsk8w==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12", - "bmp-js": "^0.1.0" + "@jimp/file-ops": "1.6.0", + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0", + "await-to-js": "^3.0.0", + "exif-parser": "^0.1.12", + "file-type": "^16.0.0", + "mime": "3" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, - "node_modules/@jimp/core": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.22.12.tgz", - "integrity": "sha512-l0RR0dOPyzMKfjUW1uebzueFEDtCOj9fN6pyTYWWOM/VS4BciXQ1VVrJs8pO3kycGYZxncRKhCoygbNr8eEZQA==", + "node_modules/@jimp/diff": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/diff/-/diff-1.6.0.tgz", + "integrity": "sha512-+yUAQ5gvRC5D1WHYxjBHZI7JBRusGGSLf8AmPRPCenTzh4PA+wZ1xv2+cYqQwTfQHU5tXYOhA0xDytfHUf1Zyw==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12", - "any-base": "^1.1.0", - "buffer": "^5.2.0", - "exif-parser": "^0.1.12", - "file-type": "^16.5.4", - "isomorphic-fetch": "^3.0.0", - "pixelmatch": "^4.0.2", - "tinycolor2": "^1.6.0" + "@jimp/plugin-resize": "1.6.0", + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0", + "pixelmatch": "^5.3.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/file-ops": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/file-ops/-/file-ops-1.6.0.tgz", + "integrity": "sha512-Dx/bVDmgnRe1AlniRpCKrGRm5YvGmUwbDzt+MAkgmLGf+jvBT75hmMEZ003n9HQI/aPnm/YKnXjg/hOpzNCpHQ==", + "license": "MIT", + "engines": { + "node": ">=18" } }, - "node_modules/@jimp/custom": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.12.tgz", - "integrity": "sha512-xcmww1O/JFP2MrlGUMd3Q78S3Qu6W3mYTXYuIqFq33EorgYHV/HqymHfXy9GjiCJ7OI+7lWx6nYFOzU7M4rd1Q==", + "node_modules/@jimp/js-bmp": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/js-bmp/-/js-bmp-1.6.0.tgz", + "integrity": "sha512-FU6Q5PC/e3yzLyBDXupR3SnL3htU7S3KEs4e6rjDP6gNEOXRFsWs6YD3hXuXd50jd8ummy+q2WSwuGkr8wi+Gw==", "license": "MIT", "dependencies": { - "@jimp/core": "^0.22.12" + "@jimp/core": "1.6.0", + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0", + "bmp-ts": "^1.0.9" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@jimp/gif": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.22.12.tgz", - "integrity": "sha512-y6BFTJgch9mbor2H234VSjd9iwAhaNf/t3US5qpYIs0TSbAvM02Fbc28IaDETj9+4YB4676sz4RcN/zwhfu1pg==", + "node_modules/@jimp/js-gif": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/js-gif/-/js-gif-1.6.0.tgz", + "integrity": "sha512-N9CZPHOrJTsAUoWkWZstLPpwT5AwJ0wge+47+ix3++SdSL/H2QzyMqxbcDYNFe4MoI5MIhATfb0/dl/wmX221g==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12", + "@jimp/core": "1.6.0", + "@jimp/types": "1.6.0", "gifwrap": "^0.10.1", - "omggif": "^1.0.9" + "omggif": "^1.0.10" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, - "node_modules/@jimp/jpeg": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.22.12.tgz", - "integrity": "sha512-Rq26XC/uQWaQKyb/5lksCTCxXhtY01NJeBN+dQv5yNYedN0i7iYu+fXEoRsfaJ8xZzjoANH8sns7rVP4GE7d/Q==", + "node_modules/@jimp/js-jpeg": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/js-jpeg/-/js-jpeg-1.6.0.tgz", + "integrity": "sha512-6vgFDqeusblf5Pok6B2DUiMXplH8RhIKAryj1yn+007SIAQ0khM1Uptxmpku/0MfbClx2r7pnJv9gWpAEJdMVA==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12", + "@jimp/core": "1.6.0", + "@jimp/types": "1.6.0", "jpeg-js": "^0.4.4" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/js-png": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/js-png/-/js-png-1.6.0.tgz", + "integrity": "sha512-AbQHScy3hDDgMRNfG0tPjL88AV6qKAILGReIa3ATpW5QFjBKpisvUaOqhzJ7Reic1oawx3Riyv152gaPfqsBVg==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.0", + "@jimp/types": "1.6.0", + "pngjs": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@jimp/js-tiff": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/js-tiff/-/js-tiff-1.6.0.tgz", + "integrity": "sha512-zhReR8/7KO+adijj3h0ZQUOiun3mXUv79zYEAKvE0O+rP7EhgtKvWJOZfRzdZSNv0Pu1rKtgM72qgtwe2tFvyw==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.0", + "@jimp/types": "1.6.0", + "utif2": "^4.1.0" + }, + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-blit": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.12.tgz", - "integrity": "sha512-xslz2ZoFZOPLY8EZ4dC29m168BtDx95D6K80TzgUi8gqT7LY6CsajWO0FAxDwHz6h0eomHMfyGX0stspBrTKnQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-1.6.0.tgz", + "integrity": "sha512-M+uRWl1csi7qilnSK8uxK4RJMSuVeBiO1AY0+7APnfUbQNZm6hCe0CCFv1Iyw1D/Dhb8ph8fQgm5mwM0eSxgVA==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-blur": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.12.tgz", - "integrity": "sha512-S0vJADTuh1Q9F+cXAwFPlrKWzDj2F9t/9JAbUvaaDuivpyWuImEKXVz5PUZw2NbpuSHjwssbTpOZ8F13iJX4uw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-1.6.0.tgz", + "integrity": "sha512-zrM7iic1OTwUCb0g/rN5y+UnmdEsT3IfuCXCJJNs8SZzP0MkZ1eTvuwK9ZidCuMo4+J3xkzCidRwYXB5CyGZTw==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/core": "1.6.0", + "@jimp/utils": "1.6.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-circle": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.22.12.tgz", - "integrity": "sha512-SWVXx1yiuj5jZtMijqUfvVOJBwOifFn0918ou4ftoHgegc5aHWW5dZbYPjvC9fLpvz7oSlptNl2Sxr1zwofjTg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-1.6.0.tgz", + "integrity": "sha512-xt1Gp+LtdMKAXfDp3HNaG30SPZW6AQ7dtAtTnoRKorRi+5yCJjKqXRgkewS5bvj8DEh87Ko1ydJfzqS3P2tdWw==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/types": "1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-color": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.12.tgz", - "integrity": "sha512-xImhTE5BpS8xa+mAN6j4sMRWaUgUDLoaGHhJhpC+r7SKKErYDR0WQV4yCE4gP+N0gozD0F3Ka1LUSaMXrn7ZIA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-1.6.0.tgz", + "integrity": "sha512-J5q8IVCpkBsxIXM+45XOXTrsyfblyMZg3a9eAo0P7VPH4+CrvyNQwaYatbAIamSIN1YzxmO3DkIZXzRjFSz1SA==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12", - "tinycolor2": "^1.6.0" + "@jimp/core": "1.6.0", + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0", + "tinycolor2": "^1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-contain": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.22.12.tgz", - "integrity": "sha512-Eo3DmfixJw3N79lWk8q/0SDYbqmKt1xSTJ69yy8XLYQj9svoBbyRpSnHR+n9hOw5pKXytHwUW6nU4u1wegHNoQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-1.6.0.tgz", + "integrity": "sha512-oN/n+Vdq/Qg9bB4yOBOxtY9IPAtEfES8J1n9Ddx+XhGBYT1/QTU/JYkGaAkIGoPnyYvmLEDqMz2SGihqlpqfzQ==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/core": "1.6.0", + "@jimp/plugin-blit": "1.6.0", + "@jimp/plugin-resize": "1.6.0", + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-blit": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5", - "@jimp/plugin-scale": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-cover": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.22.12.tgz", - "integrity": "sha512-z0w/1xH/v/knZkpTNx+E8a7fnasQ2wHG5ze6y5oL2dhH1UufNua8gLQXlv8/W56+4nJ1brhSd233HBJCo01BXA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-1.6.0.tgz", + "integrity": "sha512-Iow0h6yqSC269YUJ8HC3Q/MpCi2V55sMlbkkTTx4zPvd8mWZlC0ykrNDeAy9IJegrQ7v5E99rJwmQu25lygKLA==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/core": "1.6.0", + "@jimp/plugin-crop": "1.6.0", + "@jimp/plugin-resize": "1.6.0", + "@jimp/types": "1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-crop": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5", - "@jimp/plugin-scale": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-crop": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.12.tgz", - "integrity": "sha512-FNuUN0OVzRCozx8XSgP9MyLGMxNHHJMFt+LJuFjn1mu3k0VQxrzqbN06yIl46TVejhyAhcq5gLzqmSCHvlcBVw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-1.6.0.tgz", + "integrity": "sha512-KqZkEhvs+21USdySCUDI+GFa393eDIzbi1smBqkUPTE+pRwSWMAf01D5OC3ZWB+xZsNla93BDS9iCkLHA8wang==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/core": "1.6.0", + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-displace": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.22.12.tgz", - "integrity": "sha512-qpRM8JRicxfK6aPPqKZA6+GzBwUIitiHaZw0QrJ64Ygd3+AsTc7BXr+37k2x7QcyCvmKXY4haUrSIsBug4S3CA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-1.6.0.tgz", + "integrity": "sha512-4Y10X9qwr5F+Bo5ME356XSACEF55485j5nGdiyJ9hYzjQP9nGgxNJaZ4SAOqpd+k5sFaIeD7SQ0Occ26uIng5Q==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-dither": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.22.12.tgz", - "integrity": "sha512-jYgGdSdSKl1UUEanX8A85v4+QUm+PE8vHFwlamaKk89s+PXQe7eVE3eNeSZX4inCq63EHL7cX580dMqkoC3ZLw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-1.6.0.tgz", + "integrity": "sha512-600d1RxY0pKwgyU0tgMahLNKsqEcxGdbgXadCiVCoGd6V6glyCvkNrnnwC0n5aJ56Htkj88PToSdF88tNVZEEQ==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/types": "1.6.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-fisheye": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.22.12.tgz", - "integrity": "sha512-LGuUTsFg+fOp6KBKrmLkX4LfyCy8IIsROwoUvsUPKzutSqMJnsm3JGDW2eOmWIS/jJpPaeaishjlxvczjgII+Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-1.6.0.tgz", + "integrity": "sha512-E5QHKWSCBFtpgZarlmN3Q6+rTQxjirFqo44ohoTjzYVrDI6B6beXNnPIThJgPr0Y9GwfzgyarKvQuQuqCnnfbA==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-flip": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.22.12.tgz", - "integrity": "sha512-m251Rop7GN8W0Yo/rF9LWk6kNclngyjIJs/VXHToGQ6EGveOSTSQaX2Isi9f9lCDLxt+inBIb7nlaLLxnvHX8Q==", - "license": "MIT", - "dependencies": { - "@jimp/utils": "^0.22.12" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-rotate": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-gaussian": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.22.12.tgz", - "integrity": "sha512-sBfbzoOmJ6FczfG2PquiK84NtVGeScw97JsCC3rpQv1PHVWyW+uqWFF53+n3c8Y0P2HWlUjflEla2h/vWShvhg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-1.6.0.tgz", + "integrity": "sha512-/+rJVDuBIVOgwoyVkBjUFHtP+wmW0r+r5OQ2GpatQofToPVbJw1DdYWXlwviSx7hvixTWLKVgRWQ5Dw862emDg==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/types": "1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, - "node_modules/@jimp/plugin-invert": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.22.12.tgz", - "integrity": "sha512-N+6rwxdB+7OCR6PYijaA/iizXXodpxOGvT/smd/lxeXsZ/empHmFFFJ/FaXcYh19Tm04dGDaXcNF/dN5nm6+xQ==", + "node_modules/@jimp/plugin-hash": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-hash/-/plugin-hash-1.6.0.tgz", + "integrity": "sha512-wWzl0kTpDJgYVbZdajTf+4NBSKvmI3bRI8q6EH9CVeIHps9VWVsUvEyb7rpbcwVLWYuzDtP2R0lTT6WeBNQH9Q==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/core": "1.6.0", + "@jimp/js-bmp": "1.6.0", + "@jimp/js-jpeg": "1.6.0", + "@jimp/js-png": "1.6.0", + "@jimp/js-tiff": "1.6.0", + "@jimp/plugin-color": "1.6.0", + "@jimp/plugin-resize": "1.6.0", + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0", + "any-base": "^1.1.0" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-mask": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.22.12.tgz", - "integrity": "sha512-4AWZg+DomtpUA099jRV8IEZUfn1wLv6+nem4NRJC7L/82vxzLCgXKTxvNvBcNmJjT9yS1LAAmiJGdWKXG63/NA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-1.6.0.tgz", + "integrity": "sha512-Cwy7ExSJMZszvkad8NV8o/Z92X2kFUFM8mcDAhNVxU0Q6tA0op2UKRJY51eoK8r6eds/qak3FQkXakvNabdLnA==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/types": "1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, - "node_modules/@jimp/plugin-normalize": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.22.12.tgz", - "integrity": "sha512-0So0rexQivnWgnhacX4cfkM2223YdExnJTTy6d06WbkfZk5alHUx8MM3yEzwoCN0ErO7oyqEWRnEkGC+As1FtA==", + "node_modules/@jimp/plugin-print": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-1.6.0.tgz", + "integrity": "sha512-zarTIJi8fjoGMSI/M3Xh5yY9T65p03XJmPsuNet19K/Q7mwRU6EV2pfj+28++2PV2NJ+htDF5uecAlnGyxFN2A==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/core": "1.6.0", + "@jimp/js-jpeg": "1.6.0", + "@jimp/js-png": "1.6.0", + "@jimp/plugin-blit": "1.6.0", + "@jimp/types": "1.6.0", + "parse-bmfont-ascii": "^1.0.6", + "parse-bmfont-binary": "^1.0.6", + "parse-bmfont-xml": "^1.1.6", + "simple-xml-to-json": "^1.2.2", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, - "node_modules/@jimp/plugin-print": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.22.12.tgz", - "integrity": "sha512-c7TnhHlxm87DJeSnwr/XOLjJU/whoiKYY7r21SbuJ5nuH+7a78EW1teOaj5gEr2wYEd7QtkFqGlmyGXY/YclyQ==", + "node_modules/@jimp/plugin-quantize": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-quantize/-/plugin-quantize-1.6.0.tgz", + "integrity": "sha512-EmzZ/s9StYQwbpG6rUGBCisc3f64JIhSH+ncTJd+iFGtGo0YvSeMdAd+zqgiHpfZoOL54dNavZNjF4otK+mvlg==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12", - "load-bmfont": "^1.4.1" + "image-q": "^4.0.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-blit": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-resize": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.12.tgz", - "integrity": "sha512-3NyTPlPbTnGKDIbaBgQ3HbE6wXbAlFfxHVERmrbqAi8R3r6fQPxpCauA8UVDnieg5eo04D0T8nnnNIX//i/sXg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-1.6.0.tgz", + "integrity": "sha512-uSUD1mqXN9i1SGSz5ov3keRZ7S9L32/mAQG08wUwZiEi5FpbV0K8A8l1zkazAIZi9IJzLlTauRNU41Mi8IF9fA==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/core": "1.6.0", + "@jimp/types": "1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-rotate": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.12.tgz", - "integrity": "sha512-9YNEt7BPAFfTls2FGfKBVgwwLUuKqy+E8bDGGEsOqHtbuhbshVGxN2WMZaD4gh5IDWvR+emmmPPWGgaYNYt1gA==", - "license": "MIT", - "dependencies": { - "@jimp/utils": "^0.22.12" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-blit": ">=0.3.5", - "@jimp/plugin-crop": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-scale": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.12.tgz", - "integrity": "sha512-dghs92qM6MhHj0HrV2qAwKPMklQtjNpoYgAB94ysYpsXslhRTiPisueSIELRwZGEr0J0VUxpUY7HgJwlSIgGZw==", - "license": "MIT", - "dependencies": { - "@jimp/utils": "^0.22.12" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-shadow": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.22.12.tgz", - "integrity": "sha512-FX8mTJuCt7/3zXVoeD/qHlm4YH2bVqBuWQHXSuBK054e7wFRnRnbSLPUqAwSeYP3lWqpuQzJtgiiBxV3+WWwTg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-1.6.0.tgz", + "integrity": "sha512-JagdjBLnUZGSG4xjCLkIpQOZZ3Mjbg8aGCCi4G69qR+OjNpOeGI7N2EQlfK/WE8BEHOW5vdjSyglNqcYbQBWRw==", "license": "MIT", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/core": "1.6.0", + "@jimp/plugin-crop": "1.6.0", + "@jimp/plugin-resize": "1.6.0", + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-blur": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/plugin-threshold": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.22.12.tgz", - "integrity": "sha512-4x5GrQr1a/9L0paBC/MZZJjjgjxLYrqSmWd+e+QfAEPvmRxdRoQ5uKEuNgXnm9/weHQBTnQBQsOY2iFja+XGAw==", - "license": "MIT", - "dependencies": { - "@jimp/utils": "^0.22.12" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-color": ">=0.8.0", - "@jimp/plugin-resize": ">=0.8.0" - } - }, - "node_modules/@jimp/plugins": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.22.12.tgz", - "integrity": "sha512-yBJ8vQrDkBbTgQZLty9k4+KtUQdRjsIDJSPjuI21YdVeqZxYywifHl4/XWILoTZsjTUASQcGoH0TuC0N7xm3ww==", - "license": "MIT", - "dependencies": { - "@jimp/plugin-blit": "^0.22.12", - "@jimp/plugin-blur": "^0.22.12", - "@jimp/plugin-circle": "^0.22.12", - "@jimp/plugin-color": "^0.22.12", - "@jimp/plugin-contain": "^0.22.12", - "@jimp/plugin-cover": "^0.22.12", - "@jimp/plugin-crop": "^0.22.12", - "@jimp/plugin-displace": "^0.22.12", - "@jimp/plugin-dither": "^0.22.12", - "@jimp/plugin-fisheye": "^0.22.12", - "@jimp/plugin-flip": "^0.22.12", - "@jimp/plugin-gaussian": "^0.22.12", - "@jimp/plugin-invert": "^0.22.12", - "@jimp/plugin-mask": "^0.22.12", - "@jimp/plugin-normalize": "^0.22.12", - "@jimp/plugin-print": "^0.22.12", - "@jimp/plugin-resize": "^0.22.12", - "@jimp/plugin-rotate": "^0.22.12", - "@jimp/plugin-scale": "^0.22.12", - "@jimp/plugin-shadow": "^0.22.12", - "@jimp/plugin-threshold": "^0.22.12", - "timm": "^1.6.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/png": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.22.12.tgz", - "integrity": "sha512-Mrp6dr3UTn+aLK8ty/dSKELz+Otdz1v4aAXzV5q53UDD2rbB5joKVJ/ChY310B+eRzNxIovbUF1KVrUsYdE8Hg==", - "license": "MIT", - "dependencies": { - "@jimp/utils": "^0.22.12", - "pngjs": "^6.0.0" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/tiff": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.22.12.tgz", - "integrity": "sha512-E1LtMh4RyJsoCAfAkBRVSYyZDTtLq9p9LUiiYP0vPtXyxX4BiYBUYihTLSBlCQg5nF2e4OpQg7SPrLdJ66u7jg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-1.6.0.tgz", + "integrity": "sha512-M59m5dzLoHOVWdM41O8z9SyySzcDn43xHseOH0HavjsfQsT56GGCC4QzU1banJidbUrePhzoEdS42uFE8Fei8w==", "license": "MIT", "dependencies": { - "utif2": "^4.0.1" + "@jimp/core": "1.6.0", + "@jimp/plugin-color": "1.6.0", + "@jimp/plugin-hash": "1.6.0", + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0", + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/types": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.22.12.tgz", - "integrity": "sha512-wwKYzRdElE1MBXFREvCto5s699izFHNVvALUv79GXNbsOVqlwlOxlWJ8DuyOGIXoLP4JW/m30YyuTtfUJgMRMA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-1.6.0.tgz", + "integrity": "sha512-7UfRsiKo5GZTAATxm2qQ7jqmUXP0DxTArztllTcYdyw6Xi5oT4RaoXynVtCD4UyLK5gJgkZJcwonoijrhYFKfg==", "license": "MIT", "dependencies": { - "@jimp/bmp": "^0.22.12", - "@jimp/gif": "^0.22.12", - "@jimp/jpeg": "^0.22.12", - "@jimp/png": "^0.22.12", - "@jimp/tiff": "^0.22.12", - "timm": "^1.6.1" + "zod": "^3.23.8" }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" + "engines": { + "node": ">=18" } }, "node_modules/@jimp/utils": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.22.12.tgz", - "integrity": "sha512-yJ5cWUknGnilBq97ZXOyOS0HhsHOyAyjHwYfHxGbSyMTohgQI6sVyE8KPgDwH8HHW/nMKXk8TrSwAE71zt716Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-gqFTGEosKbOkYF/WFj26jMHOI5OH2jeP1MmC/zbK6BF6VJBf8rIC5898dPfSzZEbSA0wbbV5slbntWVc5PKLFA==", "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.13.3" + "@jimp/types": "1.6.0", + "tinycolor2": "^1.6.0" + }, + "engines": { + "node": ">=18" } }, "node_modules/@jridgewell/resolve-uri": { @@ -881,32 +865,19 @@ "license": "MIT" }, "node_modules/@nativescript/doctor": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@nativescript/doctor/-/doctor-2.0.15.tgz", - "integrity": "sha512-VEkeNKVJ1EJ55ii2A6Nv9jPL+gdDvZQ+nxlDVQcv8iOy/QSBhFHGn/RDW8UpVulqFOMr6RS9lmSjmIl6cx1G7A==", + "version": "2.0.16-rc.0", + "resolved": "https://registry.npmjs.org/@nativescript/doctor/-/doctor-2.0.16-rc.0.tgz", + "integrity": "sha512-ZZ85tIH56vRyt9A4NpFeKGgCGX5B312HgdvUNNWoxzGI7DzpRfB2E/niu6pF7ejvpyFGXVLntisL0f/XX69E7g==", "license": "Apache-2.0", "dependencies": { "lodash": "4.17.21", - "osenv": "0.1.5", - "semver": "7.5.4", + "semver": "7.6.3", "shelljs": "0.8.5", "temp": "0.9.4", "winreg": "1.2.5", - "yauzl": "2.10.0" + "yauzl": "3.2.0" } }, - "node_modules/@nativescript/doctor/node_modules/winreg": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.5.tgz", - "integrity": "sha512-uf7tHf+tw0B1y+x+mKTLHkykBgK2KMs3g+KlzmyMbLvICSHQyB/xOFjTT8qZ3oeTFyU7Bbj4FzXitGG6jvKhYw==", - "license": "BSD-2-Clause" - }, - "node_modules/@nativescript/schematics-executor": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@nativescript/schematics-executor/-/schematics-executor-0.0.2.tgz", - "integrity": "sha512-3pA0cXbkwu55+He71QO1oRE18wQyquk5t6vpM4laAFatI5w8n2dyHYSzM7pM6bN57zpcP2sk5u1q3YtYv0d2MQ==", - "license": "Apache-2.0" - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -950,9 +921,9 @@ "license": "MIT" }, "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", "license": "ISC", "dependencies": { "agent-base": "^7.1.0", @@ -962,129 +933,55 @@ "socks-proxy-agent": "^8.0.3" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/arborist": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-7.5.4.tgz", - "integrity": "sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-9.0.0.tgz", + "integrity": "sha512-ZFsI/VJ7wJ2rTksLNJ9xqr75Ste/wiKvW+7w12ZGbcT67xWii97yS+aDlh3edNhqlqoXvdzYG4hTNui81VxJCA==", "license": "ISC", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.1", - "@npmcli/installed-package-contents": "^2.1.0", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^7.1.1", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.1.0", - "@npmcli/query": "^3.1.0", - "@npmcli/redact": "^2.0.0", - "@npmcli/run-script": "^8.1.0", - "bin-links": "^4.0.4", - "cacache": "^18.0.3", + "@npmcli/fs": "^4.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/metavuln-calculator": "^9.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.1", + "@npmcli/query": "^4.0.0", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "bin-links": "^5.0.0", + "cacache": "^19.0.1", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^7.0.2", - "json-parse-even-better-errors": "^3.0.2", + "hosted-git-info": "^8.0.0", "json-stringify-nice": "^1.1.4", "lru-cache": "^10.2.2", "minimatch": "^9.0.4", - "nopt": "^7.2.1", - "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.2", - "npm-pick-manifest": "^9.0.1", - "npm-registry-fetch": "^17.0.1", - "pacote": "^18.0.6", - "parse-conflict-json": "^3.0.0", - "proc-log": "^4.2.0", - "proggy": "^2.0.0", + "nopt": "^8.0.0", + "npm-install-checks": "^7.1.0", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.1", + "pacote": "^21.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "proggy": "^3.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^3.0.1", - "read-package-json-fast": "^3.0.2", + "read-package-json-fast": "^4.0.0", "semver": "^7.3.7", - "ssri": "^10.0.6", + "ssri": "^12.0.0", "treeverse": "^3.0.0", - "walk-up-path": "^3.0.1" + "walk-up-path": "^4.0.0" }, "bin": { "arborist": "bin/index.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/@sigstore/bundle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", - "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/@sigstore/protobuf-specs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz", - "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==", - "license": "Apache-2.0", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/@sigstore/sign": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", - "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^13.0.1", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/@sigstore/tuf": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", - "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^2.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", - "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/@tufjs/models": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", - "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", - "license": "MIT", - "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@npmcli/arborist/node_modules/minimatch": { @@ -1102,150 +999,67 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@npmcli/arborist/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/@npmcli/fs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", + "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==", "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@npmcli/arborist/node_modules/npm-packlist": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", - "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "node_modules/@npmcli/git": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.1.tgz", + "integrity": "sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw==", "license": "ISC", "dependencies": { - "ignore-walk": "^6.0.4" + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/pacote": { - "version": "18.0.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", - "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", - "license": "ISC", - "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/package-json": "^5.1.0", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^8.0.0", - "cacache": "^18.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^17.0.0", - "proc-log": "^4.0.0", - "promise-retry": "^2.0.1", - "sigstore": "^2.2.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "bin/index.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/sigstore": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", - "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^2.3.2", - "@sigstore/tuf": "^2.3.4", - "@sigstore/verify": "^1.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/tuf-js": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", - "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", - "license": "MIT", - "dependencies": { - "@tufjs/models": "2.0.1", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", - "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", - "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "ini": "^4.1.3", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/installed-package-contents": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", - "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz", + "integrity": "sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==", "license": "ISC", "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" }, "bin": { "installed-package-contents": "bin/index.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/map-workspaces": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz", - "integrity": "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-4.0.2.tgz", + "integrity": "sha512-mnuMuibEbkaBTYj9HQ3dMe6L0ylYW+s/gfz7tBDMFY/la0w9Kf44P9aLn4/+/t3aTR3YUHKoT6XQL9rlicIe3Q==", "license": "ISC", "dependencies": { - "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/package-json": "^6.0.0", "glob": "^10.2.2", - "minimatch": "^9.0.0", - "read-package-json-fast": "^3.0.0" + "minimatch": "^9.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/map-workspaces/node_modules/glob": { @@ -1293,254 +1107,55 @@ } }, "node_modules/@npmcli/metavuln-calculator": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz", - "integrity": "sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-9.0.0.tgz", + "integrity": "sha512-znLKqdy1ZEGNK3VB9j/RzGyb/P0BJb3fGpvEbHIAyBAXsps2l1ce8SVHfsGAFLl9s8072PxafqTn7RC8wSnQPg==", "license": "ISC", "dependencies": { - "cacache": "^18.0.0", - "json-parse-even-better-errors": "^3.0.0", - "pacote": "^18.0.0", - "proc-log": "^4.1.0", + "cacache": "^19.0.0", + "json-parse-even-better-errors": "^4.0.0", + "pacote": "^21.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/@sigstore/bundle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", - "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/@sigstore/protobuf-specs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz", - "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==", - "license": "Apache-2.0", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/@sigstore/sign": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", - "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^13.0.1", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/@sigstore/tuf": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", - "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^2.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", - "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/@tufjs/models": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", - "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", - "license": "MIT", - "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/npm-packlist": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", - "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", - "license": "ISC", - "dependencies": { - "ignore-walk": "^6.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/pacote": { - "version": "18.0.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", - "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", - "license": "ISC", - "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/package-json": "^5.1.0", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^8.0.0", - "cacache": "^18.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^17.0.0", - "proc-log": "^4.0.0", - "promise-retry": "^2.0.1", - "sigstore": "^2.2.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "bin/index.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/sigstore": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", - "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^2.3.2", - "@sigstore/tuf": "^2.3.4", - "@sigstore/verify": "^1.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/tuf-js": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", - "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", - "license": "MIT", - "dependencies": { - "@tufjs/models": "2.0.1", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "inBundle": true, - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "inBundle": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@npmcli/name-from-folder": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz", - "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-3.0.0.tgz", + "integrity": "sha512-61cDL8LUc9y80fXn+lir+iVt8IS0xHqEKwPu/5jCjxQTVoSCmkXvw4vbMrzAMtmghz3/AkiBjhHkDKUH+kf7kA==", "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz", + "integrity": "sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==", "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/package-json": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.1.tgz", - "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.1.1.tgz", + "integrity": "sha512-d5qimadRAUCO4A/Txw71VM7UrRZzV+NPclxz/dc+M6B2oYwjWTjqh8HA/sGQgs9VZuJ6I/P7XIAlJvgrl27ZOw==", "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.0", + "@npmcli/git": "^6.0.0", "glob": "^10.2.2", - "hosted-git-info": "^7.0.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "proc-log": "^4.0.0", - "semver": "^7.5.3" + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "proc-log": "^5.0.0", + "semver": "^7.5.3", + "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/package-json/node_modules/glob": { @@ -1588,53 +1203,53 @@ } }, "node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", - "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.2.tgz", + "integrity": "sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==", "license": "ISC", "dependencies": { - "which": "^4.0.0" + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/query": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-3.1.0.tgz", - "integrity": "sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-4.0.0.tgz", + "integrity": "sha512-3pPbese0fbCiFJ/7/X1GBgxAKYFE8sxBddA7GtuRmOgNseH4YbGsXJ807Ig3AEwNITjDUISHglvy89cyDJnAwA==", "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.10" + "postcss-selector-parser": "^6.1.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/redact": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", - "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.0.0.tgz", + "integrity": "sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==", "license": "ISC", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/run-script": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", - "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.0.2.tgz", + "integrity": "sha512-cJXiUlycdizQwvqE1iaAb4VRUM3RX09/8q46zjvy+ct9GhfZRWd7jXYVc1tn/CfRlGPVkX/u4sstRlepsm7hfw==", "license": "ISC", "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "proc-log": "^4.0.0", - "which": "^4.0.0" + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "node-gyp": "^11.0.0", + "proc-log": "^5.0.0", + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@pkgjs/parseargs": { @@ -1647,23 +1262,68 @@ "node": ">=14" } }, - "node_modules/@prettier/plugin-xml": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-2.2.0.tgz", - "integrity": "sha512-UWRmygBsyj4bVXvDiqSccwT1kmsorcwQwaIy30yVh8T+Gspx4OlC0shX1y+ZuwXZvgnafmpRYKks0bAu9urJew==", + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "dev": true, "license": "MIT", "dependencies": { - "@xml-tools/parser": "^1.0.11", - "prettier": ">=2.4.0" + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" } }, - "node_modules/@rigor789/resolve-package-path": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@rigor789/resolve-package-path/-/resolve-package-path-1.0.7.tgz", - "integrity": "sha512-/JqGCvHpj0PxS9cyZPP5LpiEy1pYszgWor/JTyreHQwLPQQdxO1mUYTtRribYcVosxH7FFs0GJBtJ652nlwKyw==", - "license": "MIT" + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true, + "license": "ISC" }, - "node_modules/@rigor789/trapezedev-project": { + "node_modules/@pnpm/npm-conf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@prettier/plugin-xml": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-2.2.0.tgz", + "integrity": "sha512-UWRmygBsyj4bVXvDiqSccwT1kmsorcwQwaIy30yVh8T+Gspx4OlC0shX1y+ZuwXZvgnafmpRYKks0bAu9urJew==", + "license": "MIT", + "dependencies": { + "@xml-tools/parser": "^1.0.11", + "prettier": ">=2.4.0" + } + }, + "node_modules/@rigor789/resolve-package-path": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@rigor789/resolve-package-path/-/resolve-package-path-1.0.7.tgz", + "integrity": "sha512-/JqGCvHpj0PxS9cyZPP5LpiEy1pYszgWor/JTyreHQwLPQQdxO1mUYTtRribYcVosxH7FFs0GJBtJ652nlwKyw==", + "license": "MIT" + }, + "node_modules/@rigor789/trapezedev-project": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/@rigor789/trapezedev-project/-/trapezedev-project-7.1.2.tgz", "integrity": "sha512-eFnyKmQD73uB+CA+mg2YODFM6EAlUV/ub57UnRAI9QmpsXZnPedbJH698hjWm5g6+KuR8La9rg4sxBEexPG6Ow==", @@ -1707,303 +1367,105 @@ "node": ">=10" } }, + "node_modules/@rigor789/trapezedev-project/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/@sigstore/bundle": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.1.0.tgz", - "integrity": "sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-3.0.0.tgz", + "integrity": "sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg==", "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", - "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-2.0.0.tgz", + "integrity": "sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==", "license": "Apache-2.0", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", - "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz", + "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==", "license": "Apache-2.0", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/sign": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-1.0.0.tgz", - "integrity": "sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-3.0.0.tgz", + "integrity": "sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw==", "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "make-fetch-happen": "^11.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/cacache/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@sigstore/sign/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@sigstore/sign/node_modules/glob/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@sigstore/sign/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@sigstore/sign/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@sigstore/sign/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@sigstore/sign/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/@sigstore/sign/node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@sigstore/sign/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sigstore/sign/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^14.0.1", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1" }, "engines": { - "node": ">= 10" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/tuf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz", - "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-3.0.0.tgz", + "integrity": "sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw==", "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0", - "tuf-js": "^1.1.7" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/verify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", - "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/verify/node_modules/@sigstore/bundle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", - "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-2.0.0.tgz", + "integrity": "sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg==", "license": "Apache-2.0", "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", "@sigstore/protobuf-specs": "^0.3.2" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/verify/node_modules/@sigstore/protobuf-specs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz", - "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==", - "license": "Apache-2.0", "engines": { "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, "node_modules/@sinonjs/commons": { @@ -2016,24 +1478,14 @@ "type-detect": "4.0.8" } }, - "node_modules/@sinonjs/commons/node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^3.0.0" + "@sinonjs/commons": "^3.0.1" } }, "node_modules/@sinonjs/samsam": { @@ -2048,6 +1500,16 @@ "type-detect": "^4.1.0" } }, + "node_modules/@sinonjs/samsam/node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/@sinonjs/text-encoding": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz", @@ -2055,34 +1517,12 @@ "dev": true, "license": "(Unlicense OR Apache-2.0)" }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", "license": "MIT" }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/@trapezedev/gradle-parse": { "version": "7.0.10", "resolved": "https://registry.npmjs.org/@trapezedev/gradle-parse/-/gradle-parse-7.0.10.tgz", @@ -2090,39 +1530,29 @@ "license": "SEE LICENSE" }, "node_modules/@ts-morph/common": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.18.1.tgz", - "integrity": "sha512-RVE+zSRICWRsfrkAw5qCAK+4ZH9kwEFv5h0+/YeHTLieWP7F4wWq4JsKFuNWG+fYh/KF+8rAtgdj5zb2mm+DVA==", + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.26.0.tgz", + "integrity": "sha512-/RmKAtctStXqM5nECMQ46duT74Hoig/DBzhWXGHcodlDNrgRbsbwwHqSKFNbca6z9Xt/CUWMeXOsC9QEN1+rqw==", "license": "MIT", "dependencies": { - "fast-glob": "^3.2.12", - "minimatch": "^5.1.0", - "mkdirp": "^1.0.4", + "fast-glob": "^3.3.2", + "minimatch": "^9.0.4", "path-browserify": "^1.0.1" } }, "node_modules/@ts-morph/common/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@ts-morph/common/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "node": ">=16 || 14 >=14.17" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@tsconfig/node10": { @@ -2150,25 +1580,25 @@ "license": "MIT" }, "node_modules/@tufjs/canonical-json": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", - "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tufjs/models": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", - "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-3.0.1.tgz", + "integrity": "sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==", "license": "MIT", "dependencies": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^9.0.0" + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@tufjs/models/node_modules/minimatch": { @@ -2187,9 +1617,9 @@ } }, "node_modules/@types/archiver": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-5.3.4.tgz", - "integrity": "sha512-Lj7fLBIMwYFgViVVZHEdExZC3lVYsl+QL0VmdNdIzGZH544jHveYWij6qdnBgJQDnR7pMKliN9z2cPZFEbhyPw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-6.0.3.tgz", + "integrity": "sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2216,38 +1646,37 @@ "@types/node": "*" } }, - "node_modules/@types/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "node_modules/@types/cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha512-/xCVwg8lWvahHsV2wXZt4i64H1sdL+sN1Uoq7fAc8/FA6uYHjuIveDwPwvGUYp4VZiv85dVl6J/Bum3NDAOm8g==", "dev": true, "license": "MIT" }, - "node_modules/@types/chai-as-promised": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", - "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", + "node_modules/@types/chai": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.0.1.tgz", + "integrity": "sha512-5T8ajsg3M/FOncpLYW7sdOcD6yf4+722sze/tc4KQV0P8Z2rAr3SAuHCIkYmYpt8VbcQlnz8SxlOlPQYefe4cA==", "dev": true, "license": "MIT", "dependencies": { - "@types/chai": "*" + "@types/deep-eql": "*" } }, - "node_modules/@types/chokidar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@types/chokidar/-/chokidar-2.1.3.tgz", - "integrity": "sha512-6qK3xoLLAhQVTucQGHTySwOVA1crHRXnJeLwqK6KIFkkKa2aoMFXh+WEi8PotxDtvN6MQJLyYN9ag9P6NLV81w==", - "deprecated": "This is a stub types definition. chokidar provides its own type definitions, so you do not need this installed.", + "node_modules/@types/chai-as-promised": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-8.0.1.tgz", + "integrity": "sha512-dAlDhLjJlABwAVYObo9TPWYTRg9NaQM5CXeaeJYcYAkvzUf0JRLIiog88ao2Wqy/20WUnhbbUZcgvngEbJ3YXQ==", "dev": true, "license": "MIT", "dependencies": { - "chokidar": "*" + "@types/chai": "*" } }, "node_modules/@types/color": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.3.tgz", - "integrity": "sha512-X//qzJ3d3Zj82J9sC/C18ZY5f43utPbAJ6PhYt/M7uG6etcF6MRpKdN880KBy43B0BMzSfeT96MzrsNjFI3GbA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/color/-/color-4.2.0.tgz", + "integrity": "sha512-6+xrIRImMtGAL2X3qYkd02Mgs+gFGs+WsK0b7VVMaO4mYRISwyTjcqNrO0mNSmYEoq++rSLDB2F5HDNmqfOe+A==", "dev": true, "license": "MIT", "dependencies": { @@ -2272,22 +1701,18 @@ "license": "MIT" }, "node_modules/@types/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-QUm4YOC/ENo0VjPVl2o8HGyTbHHQGDOw8PCg3rXBucYHKyZN/XjXRbPFAV1tB2FvM0/wyFoDct4cTIctzKrQFg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-2.0.3.tgz", + "integrity": "sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==", "dev": true, "license": "MIT" }, - "node_modules/@types/form-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.5.0.tgz", - "integrity": "sha512-23/wYiuckYYtFpL+4RPWiWmRQH2BjFuqCUi2+N3amB1a1Drv+i/byTrGvlLwRVLFNAZbwpbQ7JvTK+VCAPMbcg==", - "deprecated": "This is a stub types definition. form-data provides its own type definitions, so you do not need this installed.", + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", "dev": true, - "license": "MIT", - "dependencies": { - "form-data": "*" - } + "license": "MIT" }, "node_modules/@types/fs-extra": { "version": "8.1.5", @@ -2310,18 +1735,50 @@ } }, "node_modules/@types/lodash": { - "version": "4.14.192", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.192.tgz", - "integrity": "sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==", "dev": true, "license": "MIT" }, - "node_modules/@types/marked": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.3.2.tgz", - "integrity": "sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==", + "node_modules/@types/marked-terminal": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@types/marked-terminal/-/marked-terminal-6.1.1.tgz", + "integrity": "sha512-DfoUqkmFDCED7eBY9vFUhJ9fW8oZcMAK5EwRDQ9drjTbpQa+DnBTQQCwWhTFVf4WsZ6yYcJTI8D91wxTWXRZZQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@types/cardinal": "^2.1", + "@types/node": "*", + "chalk": "^5.3.0", + "marked": ">=6.0.0 <12" + } + }, + "node_modules/@types/marked-terminal/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@types/marked-terminal/node_modules/marked": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-11.2.0.tgz", + "integrity": "sha512-HR0m3bvu0jAPYiIvLUUQtdg1g6D247//lvcekpHO1WMvbwDlwSkZAX9Lw4F4YHE1T0HaaNve0tuAWuV1UJ6vtw==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } }, "node_modules/@types/minimatch": { "version": "5.1.2", @@ -2337,10 +1794,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", - "license": "MIT" + "version": "20.17.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.16.tgz", + "integrity": "sha512-vOTpLduLkZXePLxHiHsBLp98mHGnl8RptV4YAO3HfKO5UHjDvySGbxKtpYfy8Sx5+WKcgc45qNreJJRVM3L6mw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } }, "node_modules/@types/node-fetch": { "version": "2.6.12", @@ -2381,9 +1841,9 @@ } }, "node_modules/@types/npmcli__arborist": { - "version": "5.6.11", - "resolved": "https://registry.npmjs.org/@types/npmcli__arborist/-/npmcli__arborist-5.6.11.tgz", - "integrity": "sha512-uWDBT1Brg+MKrV4hKE5tNFx1H8tQyC4pDbMN4eySgU89JxRt2pJoiWsVPQj2PVSA3zo4mmST56ry+sl+KCz29w==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@types/npmcli__arborist/-/npmcli__arborist-6.3.0.tgz", + "integrity": "sha512-CXkuOBZDlcb+r0UMlmEAq3XOUZrL9XfZ2MXIwCSo726OBkkg+UIWlZ9h3n6To9w1WqMEIOZT2LkerhLgnsPV+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2411,17 +1871,6 @@ "@types/node": "*" } }, - "node_modules/@types/ora": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/ora/-/ora-3.2.0.tgz", - "integrity": "sha512-jll99xUKpiFbIFZSQcxm4numfsLaOWBzWNaRk3PvTSE7BPqTzzOCFmS0mQ7m8qkTfmYhuYbehTGsxkvRLPC++w==", - "deprecated": "This is a stub types definition. ora provides its own type definitions, so you do not need this installed.", - "dev": true, - "license": "MIT", - "dependencies": { - "ora": "*" - } - }, "node_modules/@types/pacote": { "version": "11.1.8", "resolved": "https://registry.npmjs.org/@types/pacote/-/pacote-11.1.8.tgz", @@ -2446,17 +1895,10 @@ "xmlbuilder": ">=11.0.1" } }, - "node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/prompts": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.4.tgz", - "integrity": "sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==", + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.9.tgz", + "integrity": "sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==", "dev": true, "license": "MIT", "dependencies": { @@ -2475,9 +1917,9 @@ } }, "node_modules/@types/proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@types/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-kd4LMvcnpYkspDcp7rmXKedn8iJSCoa331zRRamUp5oanKt/CefbEGPQP7G89enz7sKD4bvsr8mHSsC8j5WOvA==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@types/proper-lockfile/-/proper-lockfile-4.1.4.tgz", + "integrity": "sha512-uo2ABllncSqg9F1D4nugVl9v93RmjxF6LJzQLMLDdPaXCUIDPeOJ21Gbqi43xNKzBi/WQ0Q0dICqufzQbMjipQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2485,9 +1927,9 @@ } }, "node_modules/@types/qr-image": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/qr-image/-/qr-image-3.2.5.tgz", - "integrity": "sha512-2UMrFxof0hjeuvwjpkyNulibhYXgTEqtKGtVyQW2PDdI6m6CFrSn8m9RnZFDkcv687NeFzfqXSVe+LaxOZVU9g==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/@types/qr-image/-/qr-image-3.2.9.tgz", + "integrity": "sha512-vmqTI+ehoC07jtzjT9Dc+3eMpXTgdluD9orVHtp9bN1gE81SnOuMe9+EwmRuWfTH04YNyk1mihI/Vr7BIhUCZg==", "dev": true, "license": "MIT", "dependencies": { @@ -2505,16 +1947,16 @@ } }, "node_modules/@types/retry": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.5.tgz", + "integrity": "sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw==", "dev": true, "license": "MIT" }, "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true, "license": "MIT" }, @@ -2541,9 +1983,9 @@ } }, "node_modules/@types/sinon": { - "version": "10.0.20", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.20.tgz", - "integrity": "sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz", + "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==", "dev": true, "license": "MIT", "dependencies": { @@ -2563,17 +2005,6 @@ "integrity": "sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==", "license": "MIT" }, - "node_modules/@types/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@types/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LrnsgZIfJaysFkv9rRJp4/uAyqw87oVed3s1hhF83nwbo9c7MG9g5DqR0seHP+lkX4ldmMrVolPjQSe2ZfD0yA==", - "deprecated": "This is a stub types definition for source-map (https://github.com/mozilla/source-map). source-map provides its own type definitions, so you don't need @types/source-map installed!", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map": "*" - } - }, "node_modules/@types/ssri": { "version": "7.1.5", "resolved": "https://registry.npmjs.org/@types/ssri/-/ssri-7.1.5.tgz", @@ -2595,9 +2026,9 @@ } }, "node_modules/@types/tar": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@types/tar/-/tar-6.1.4.tgz", - "integrity": "sha512-Cp4oxpfIzWt7mr2pbhHT2OTXGMAL0szYCzuf8lRWyIMCgsx6/Hfc3ubztuhvzXHXgraTQxyOCmmg7TDGIMIJJQ==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/@types/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==", "dev": true, "license": "MIT", "dependencies": { @@ -2606,9 +2037,9 @@ } }, "node_modules/@types/temp": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@types/temp/-/temp-0.9.1.tgz", - "integrity": "sha512-yDQ8Y+oQi9V7VkexwE6NBSVyNuyNFeGI275yWXASc2DjmxNicMi9O50KxDpNlST1kBbV9jKYBHGXhgNYFMPqtA==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@types/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-+VfWIwrlept2VBTj7Y2wQnI/Xfscy1u8Pyj/puYwss6V1IblXn1x7S0S9eFh6KyBolgLCm+rUFzhFAbdkR691g==", "dev": true, "license": "MIT", "dependencies": { @@ -2616,9 +2047,9 @@ } }, "node_modules/@types/tunnel": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz", - "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.7.tgz", + "integrity": "sha512-VYKjZSmb2PvUwXoux4Gy4LAk7kzOB1ktkjyL4lxvpkqL2adgR+Qrh/yFyWluvJgIXWFicqs7XuzPI2NbTO/r3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2626,23 +2057,23 @@ } }, "node_modules/@types/universal-analytics": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@types/universal-analytics/-/universal-analytics-0.4.5.tgz", - "integrity": "sha512-Opb+Un786PS3te24VtJR/QPmX00P/pXaJQtLQYJklQefP4xP0Ic3mPc2z6SDz97OrITzR+RHTBEwjtNRjZ/nLQ==", + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/@types/universal-analytics/-/universal-analytics-0.4.8.tgz", + "integrity": "sha512-HozCrji3dIImmQcKnP7cN0ZBiYTjuOavzgPRY0CbT4AQ2zH/ZRqYDNTMiYI7aBeMV5ylbu+h59WG/N8qGePmww==", "dev": true, "license": "MIT" }, "node_modules/@types/uuid": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", - "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", "dev": true, "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", + "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", "dev": true, "license": "MIT", "dependencies": { @@ -2660,9 +2091,9 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, "license": "MIT", "dependencies": { @@ -2699,8 +2130,21 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", + "dev": true, "license": "ISC" }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/acorn": { "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", @@ -2740,18 +2184,6 @@ "node": ">= 14" } }, - "node_modules/agentkeepalive": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", - "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", - "license": "MIT", - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -2786,27 +2218,30 @@ } }, "node_modules/ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "license": "MIT", "dependencies": { - "type-fest": "^1.0.2" + "environment": "^1.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { @@ -2824,161 +2259,259 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", - "license": "MIT" - }, "node_modules/any-base": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", "license": "MIT" }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, "license": "ISC", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "license": "ISC" - }, - "node_modules/archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", + "node_modules/anymatch/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "license": "MIT", "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "engines": { - "node": ">= 10" + "node": ">=0.10.0" } }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "node_modules/anymatch/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, "license": "MIT", "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/archiver-utils/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/anymatch/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/archiver-utils/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/archiver-utils/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", + "node_modules/anymatch/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "is-extendable": "^0.1.0" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/anymatch/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/archiver-utils/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" + "node_modules/anymatch/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/anymatch/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "deprecated": "This package is no longer supported.", + "node_modules/anymatch/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/archiver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", + "license": "MIT", + "dependencies": { + "glob": "^10.0.0", + "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", + "lazystream": "^1.0.0", + "lodash": "^4.17.15", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "license": "ISC", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16 || 14 >=14.17" } }, "node_modules/arg": { @@ -3088,13 +2621,13 @@ "license": "MIT" }, "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": ">=12" } }, "node_modules/assign-symbols": { @@ -3163,24 +2696,45 @@ "node": ">= 4.5.0" } }, + "node_modules/await-to-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/await-to-js/-/await-to-js-3.0.0.tgz", + "integrity": "sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "license": "Apache-2.0" + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "inBundle": true, "license": "MIT" }, + "node_modules/bare-events": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", + "license": "Apache-2.0", + "optional": true + }, "node_modules/base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", @@ -3213,20 +2767,6 @@ "node": ">=0.10.0" } }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -3257,30 +2797,29 @@ } }, "node_modules/bin-links": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz", - "integrity": "sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-5.0.0.tgz", + "integrity": "sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==", "license": "ISC", "dependencies": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" + "cmd-shim": "^7.0.0", + "npm-normalize-package-bin": "^4.0.0", + "proc-log": "^5.0.0", + "read-cmd-shim": "^5.0.0", + "write-file-atomic": "^6.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/bindings": { @@ -3294,21 +2833,10 @@ "file-uri-to-path": "1.0.0" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bmp-js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", - "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==", + "node_modules/bmp-ts": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bmp-ts/-/bmp-ts-1.0.9.tgz", + "integrity": "sha512-cTEHk2jLrPyi+12M3dhpEbnnPOsaZuq7C45ylbbQIiWgDFZq4UVYPEY5mlqjvsj/6gJv9qX5sa+ebDzLXT28Vw==", "license": "MIT" }, "node_modules/body": { @@ -3373,9 +2901,9 @@ "license": "ISC" }, "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -3393,25 +2921,16 @@ "license": "MIT", "dependencies": { "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "ieee754": "^1.2.1" } }, "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=8.0.0" } }, "node_modules/buffer-from": { @@ -3429,6 +2948,21 @@ "node": "*" } }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/byline": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", @@ -3445,12 +2979,12 @@ "dev": true }, "node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz", + "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==", "license": "ISC", "dependencies": { - "@npmcli/fs": "^3.1.0", + "@npmcli/fs": "^4.0.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", "lru-cache": "^10.0.1", @@ -3458,13 +2992,13 @@ "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/cacache/node_modules/glob": { @@ -3532,51 +3066,6 @@ "node": ">=0.10.0" } }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/call-bind-apply-helpers": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", @@ -3609,12 +3098,16 @@ } }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "license": "MIT", - "engines": { - "node": ">=6" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/camelcase-keys": { @@ -3634,58 +3127,43 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", - "license": "MIT", - "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "bin": { - "cdl": "bin/cdl.js" - } - }, - "node_modules/centra": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/centra/-/centra-2.7.0.tgz", - "integrity": "sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==", + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6" + "engines": { + "node": ">=6" } }, "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, "license": "MIT", "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-8.0.1.tgz", + "integrity": "sha512-OIEJtOL8xxJSH8JJWbIoRjybbzR52iFuDHuF8eb+nTPD6tgXLjRqsgnUGqQfFODxYvq5QdirT0pN9dZ0+Gz6rA==", "dev": true, - "license": "WTFPL", + "license": "MIT", "dependencies": { - "check-error": "^1.0.2" + "check-error": "^2.0.0" }, "peerDependencies": { - "chai": ">= 2.1.2 < 5" + "chai": ">= 2.1.2 < 6" } }, "node_modules/chalk": { @@ -3704,17 +3182,23 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.2" - }, "engines": { - "node": "*" + "node": ">= 16" } }, "node_modules/chevrotain": { @@ -3727,39 +3211,27 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 14.16.0" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "license": "ISC", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/class-utils": { @@ -3778,6 +3250,33 @@ "node": ">=0.10.0" } }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -3788,21 +3287,79 @@ } }, "node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "license": "MIT", "dependencies": { - "restore-cursor": "^4.0.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "license": "ISC", + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/cli-spinners": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", @@ -3816,9 +3373,9 @@ } }, "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "license": "MIT", "dependencies": { "string-width": "^4.2.0" @@ -3831,35 +3388,22 @@ } }, "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", "dev": true, "license": "MIT", "dependencies": { "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" + "string-width": "^7.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/cli-truncate/node_modules/ansi-styles": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", @@ -3874,9 +3418,9 @@ } }, "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", "dev": true, "license": "MIT" }, @@ -3911,18 +3455,18 @@ } }, "node_modules/cli-truncate/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3958,41 +3502,19 @@ "node": ">=12" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cmd-shim": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz", - "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-7.0.0.tgz", + "integrity": "sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==", "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/code-block-writer": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-11.0.3.tgz", - "integrity": "sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", "license": "MIT" }, "node_modules/collection-visit": { @@ -4050,15 +3572,6 @@ "simple-swizzle": "^0.2.2" } }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -4089,13 +3602,13 @@ } }, "node_modules/commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/common-ancestor-path": { @@ -4125,31 +3638,43 @@ } }, "node_modules/compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", "license": "MIT", "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "inBundle": true, "license": "MIT" }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, "license": "ISC" }, "node_modules/continuable-cache": { @@ -4206,110 +3731,419 @@ } }, "node_modules/conventional-changelog-cli": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.2.2.tgz", - "integrity": "sha512-8grMV5Jo8S0kP3yoMeJxV2P5R6VJOqK72IiSV9t/4H5r/HiRqEBQ83bYGuz4Yzfdj4bjaAEhZN/FFbsFXr5bOA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-5.0.0.tgz", + "integrity": "sha512-9Y8fucJe18/6ef6ZlyIlT2YQUbczvoQZZuYmDLaGvcSBP+M6h+LAvf7ON7waRxKJemcCII8Yqu5/8HEfskTxJQ==", "dev": true, "license": "MIT", "dependencies": { "add-stream": "^1.0.0", - "conventional-changelog": "^3.1.24", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "tempfile": "^3.0.0" + "conventional-changelog": "^6.0.0", + "meow": "^13.0.0", + "tempfile": "^5.0.0" }, "bin": { "conventional-changelog": "cli.js" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/conventional-changelog-codemirror": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", - "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", - "license": "ISC", + "node_modules/conventional-changelog-cli/node_modules/@conventional-changelog/git-client": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@conventional-changelog/git-client/-/git-client-1.0.1.tgz", + "integrity": "sha512-PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==", + "dev": true, + "license": "MIT", "dependencies": { - "q": "^1.5.1" + "@types/semver": "^7.5.5", + "semver": "^7.5.2" }, "engines": { - "node": ">=10" + "node": ">=18" + }, + "peerDependencies": { + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.0.0" + }, + "peerDependenciesMeta": { + "conventional-commits-filter": { + "optional": true + }, + "conventional-commits-parser": { + "optional": true + } } }, - "node_modules/conventional-changelog-conventionalcommits": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", - "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "node_modules/conventional-changelog-cli/node_modules/@hutson/parse-repository-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-5.0.0.tgz", + "integrity": "sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-6.0.0.tgz", + "integrity": "sha512-tuUH8H/19VjtD9Ig7l6TQRh+Z0Yt0NZ6w/cCkkyzUbGQTnUEmKfGtkC9gGfVgCfOL1Rzno5NgNF4KY8vR+Jo3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-atom": "^5.0.0", + "conventional-changelog-codemirror": "^5.0.0", + "conventional-changelog-conventionalcommits": "^8.0.0", + "conventional-changelog-core": "^8.0.0", + "conventional-changelog-ember": "^5.0.0", + "conventional-changelog-eslint": "^6.0.0", + "conventional-changelog-express": "^5.0.0", + "conventional-changelog-jquery": "^6.0.0", + "conventional-changelog-jshint": "^5.0.0", + "conventional-changelog-preset-loader": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-angular": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz", + "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==", + "dev": true, "license": "ISC", "dependencies": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/conventional-changelog-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-atom": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-5.0.0.tgz", + "integrity": "sha512-WfzCaAvSCFPkznnLgLnfacRAzjgqjLUjvf3MftfsJzQdDICqkOOpcMtdJF3wTerxSpv2IAAjX8doM3Vozqle3g==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-codemirror": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-5.0.0.tgz", + "integrity": "sha512-8gsBDI5Y3vrKUCxN6Ue8xr6occZ5nsDEc4C7jO/EovFGozx8uttCAyfhRrvoUAWi2WMm3OmYs+0mPJU7kQdYWQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-conventionalcommits": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-8.0.0.tgz", + "integrity": "sha512-eOvlTO6OcySPyyyk8pKz2dP4jjElYunj9hn9/s0OB+gapTO8zwS9UQWrZ1pmF2hFs3vw1xhonOLGcGjy/zgsuA==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-core": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-8.0.0.tgz", + "integrity": "sha512-EATUx5y9xewpEe10UEGNpbSHRC6cVZgO+hXQjofMqpy+gFIrcGvH3Fl6yk2VFKh7m+ffenup2N7SZJYpyD9evw==", + "dev": true, "license": "MIT", "dependencies": { + "@hutson/parse-repository-url": "^5.0.0", "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-parser": "^6.0.0", + "git-raw-commits": "^5.0.0", + "git-semver-tags": "^8.0.0", + "hosted-git-info": "^7.0.0", + "normalize-package-data": "^6.0.0", + "read-package-up": "^11.0.0", + "read-pkg": "^9.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-ember": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-5.0.0.tgz", + "integrity": "sha512-RPflVfm5s4cSO33GH/Ey26oxhiC67akcxSKL8CLRT3kQX2W3dbE19sSOM56iFqUJYEwv9mD9r6k79weWe1urfg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-eslint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-6.0.0.tgz", + "integrity": "sha512-eiUyULWjzq+ybPjXwU6NNRflApDWlPEQEHvI8UAItYW/h22RKkMnOAtfCZxMmrcMO1OKUWtcf2MxKYMWe9zJuw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-express": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-5.0.0.tgz", + "integrity": "sha512-D8Q6WctPkQpvr2HNCCmwU5GkX22BVHM0r4EW8vN0230TSyS/d6VQJDAxGb84lbg0dFjpO22MwmsikKL++Oo/oQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-jquery": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-6.0.0.tgz", + "integrity": "sha512-2kxmVakyehgyrho2ZHBi90v4AHswkGzHuTaoH40bmeNqUt20yEkDOSpw8HlPBfvEQBwGtbE+5HpRwzj6ac2UfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-jshint": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-5.0.0.tgz", + "integrity": "sha512-gGNphSb/opc76n2eWaO6ma4/Wqu3tpa2w7i9WYqI6Cs2fncDSI2/ihOfMvXveeTTeld0oFvwMVNV+IYQIk3F3g==", + "dev": true, "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-preset-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-5.0.0.tgz", + "integrity": "sha512-SetDSntXLk8Jh1NOAl1Gu5uLiCNSYenB5tm0YVeZKePRIgDW9lQImromTwLa3c/Gae298tsgOM+/CYT9XAl0NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/conventional-changelog-writer": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz", + "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/semver": "^7.5.5", + "conventional-commits-filter": "^5.0.0", + "handlebars": "^4.7.7", + "meow": "^13.0.0", + "semver": "^7.5.2" + }, + "bin": { + "conventional-changelog-writer": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/conventional-commits-filter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", + "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" } }, - "node_modules/conventional-changelog-core/node_modules/lru-cache": { + "node_modules/conventional-changelog-cli/node_modules/conventional-commits-parser": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", + "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^13.0.0" + }, + "bin": { + "conventional-commits-parser": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/git-raw-commits": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-5.0.0.tgz", + "integrity": "sha512-I2ZXrXeOc0KrCvC7swqtIFXFN+rbjnC7b2T943tvemIOVNl+XP8YnA9UVwqFhzzLClnSA60KR/qEjLpXzs73Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@conventional-changelog/git-client": "^1.0.0", + "meow": "^13.0.0" + }, + "bin": { + "git-raw-commits": "src/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/git-semver-tags": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-8.0.0.tgz", + "integrity": "sha512-N7YRIklvPH3wYWAR2vysaqGLPRcpwQ0GKdlqTiVN5w1UmCdaeY3K8s6DMKRCh54DDdzyt/OAB6C8jgVtb7Y2Fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@conventional-changelog/git-client": "^1.0.0", + "meow": "^13.0.0" + }, + "bin": { + "git-semver-tags": "src/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-cli/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "lru-cache": "^10.0.1" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/conventional-changelog-core/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "node_modules/conventional-changelog-cli/node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/conventional-changelog-cli/node_modules/parse-json": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", + "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "index-to-position": "^0.1.2", + "type-fest": "^4.7.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-cli/node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-cli/node_modules/type-fest": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.33.0.tgz", + "integrity": "sha512-s6zVrxuyKbbAsSAD5ZPTB77q4YIdRctkTbJ2/Dqlinwz+8ooH2gd+YA7VA6Pa93KML9GockVvoxjZ2vHP+mu8g==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-codemirror": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", + "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", + "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", + "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "license": "MIT", + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" }, "engines": { "node": ">=10" @@ -4408,670 +4242,1687 @@ "node": ">=10" } }, - "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "node_modules/conventional-changelog-writer/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "license": "MIT", "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "node_modules/conventional-changelog-writer/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "license": "ISC" + }, + "node_modules/conventional-changelog-writer/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/conventional-changelog-writer/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "license": "MIT", "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.js" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT" - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, + "node_modules/conventional-changelog-writer/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" + "node_modules/conventional-changelog-writer/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" }, "engines": { - "node": ">=0.8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", + "node_modules/conventional-changelog-writer/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "license": "MIT", "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">= 10" + "node": ">=8" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "license": "MIT" - }, - "node_modules/cross-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", - "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "node_modules/conventional-changelog-writer/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "license": "MIT", "dependencies": { - "node-fetch": "^2.7.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "node_modules/conventional-changelog-writer/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/cross-spawn/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", + "node_modules/conventional-changelog-writer/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": ">= 8" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "license": "MIT", + "node_modules/conventional-changelog-writer/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, - "node_modules/csproj2ts": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/csproj2ts/-/csproj2ts-1.1.0.tgz", - "integrity": "sha512-sk0RTT51t4lUNQ7UfZrqjQx7q4g0m3iwNA6mvyh7gLsgQYvwKzfdyoAgicC9GqJvkoIkU0UmndV9c7VZ8pJ45Q==", - "dev": true, - "license": "MIT", + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "license": "BSD-2-Clause", "dependencies": { - "es6-promise": "^4.1.1", - "lodash": "^4.17.4", - "semver": "^5.4.1", - "xml2js": "^0.4.19" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/csproj2ts/node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/csproj2ts/node_modules/semver": { + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver" } }, - "node_modules/csproj2ts/node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "license": "MIT", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/csproj2ts/node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, - "license": "MIT", + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=4.0" + "node": ">=8" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "node_modules/conventional-changelog-writer/node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, "bin": { - "cssesc": "bin/cssesc" + "resolve": "bin/resolve" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "license": "MIT", - "engines": { - "node": ">=8" + "node_modules/conventional-changelog-writer/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/date-format": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", - "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", - "license": "MIT", + "node_modules/conventional-changelog-writer/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=4.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "license": "MIT", + "node_modules/conventional-changelog-writer/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", "engines": { - "node": "*" + "node": ">=10" } }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "node_modules/conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=10" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "node_modules/conventional-commits-parser/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "license": "MIT", "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "node_modules/conventional-commits-parser/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "license": "ISC" }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, + "node_modules/conventional-commits-parser/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/conventional-commits-parser/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, "engines": { - "node": ">=0.10" + "node": ">=8" } }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "dev": true, + "node_modules/conventional-commits-parser/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "license": "MIT", "dependencies": { - "mimic-response": "^1.0.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deep-eql": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", - "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", - "dev": true, + "node_modules/conventional-commits-parser/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "license": "MIT", "dependencies": { - "type-detect": "^4.0.0" + "p-try": "^2.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, + "node_modules/conventional-commits-parser/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, "engines": { - "node": ">=4.0.0" + "node": ">=8" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "node_modules/conventional-commits-parser/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "license": "MIT", "dependencies": { - "clone": "^1.0.2" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, + "node_modules/conventional-commits-parser/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "license": "MIT", "dependencies": { - "is-descriptor": "^0.1.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "node_modules/conventional-commits-parser/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "license": "MIT", "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", + "node_modules/conventional-commits-parser/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "license": "MIT" + "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true, - "license": "MIT", + "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", - "dev": true, - "license": "MIT", + "node_modules/conventional-commits-parser/node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/conventional-commits-parser/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/conventional-commits-parser/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-commits-parser/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "license": "MIT" + }, + "node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/csproj2ts": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/csproj2ts/-/csproj2ts-1.1.0.tgz", + "integrity": "sha512-sk0RTT51t4lUNQ7UfZrqjQx7q4g0m3iwNA6mvyh7gLsgQYvwKzfdyoAgicC9GqJvkoIkU0UmndV9c7VZ8pJ45Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "es6-promise": "^4.1.1", + "lodash": "^4.17.4", + "semver": "^5.4.1", + "xml2js": "^0.4.19" + } + }, + "node_modules/csproj2ts/node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/csproj2ts/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/csproj2ts/node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/csproj2ts/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "license": "MIT", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/del/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/del/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-4.0.1.tgz", + "integrity": "sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/email-validator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz", + "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==", + "engines": { + "node": ">4.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "license": "MIT" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "license": "MIT" + }, + "node_modules/error": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", + "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", + "dev": true, + "dependencies": { + "string-template": "~0.2.1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-promise": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-0.1.2.tgz", + "integrity": "sha512-FkHS6f1w/2Nj2kO8NsnLj2ZuCvcXHEMhZfmZSIBtY+DY2mPDDWxnSLG9CyygFW0hrb5RhOXVOvHpEUHS/6nkhQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.12.0" + }, + "optionalDependencies": { + "source-map": "~0.2.0" + } + }, + "node_modules/escodegen/node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "dev": true, + "optional": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==" + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "license": "MIT", "dependencies": { - "repeating": "^2.0.0" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", - "license": "ISC", + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "license": "BSD-3-Clause", + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, "engines": { - "node": ">=0.3.1" + "node": ">=0.10.0" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/dir-glob/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, "license": "MIT", "dependencies": { - "is-obj": "^2.0.0" + "homedir-polyfill": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "license": "Apache-2.0" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/email-validator": { + "node_modules/extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz", - "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, "engines": { - "node": ">4.0" + "node": ">=0.10.0" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "iconv-lite": "^0.6.2" + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, "license": "MIT", "dependencies": { - "once": "^1.4.0" + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/env-paths": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", - "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", "license": "MIT" }, - "node_modules/error": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", - "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", - "dev": true, - "dependencies": { - "string-template": "~0.2.1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==", "dev": true, "license": "MIT", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, "engines": { - "node": ">= 0.4" + "node": ">=0.4.0" } }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "node_modules/file-sync-cmp": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", + "integrity": "sha512-0k45oWBokCqh2MOexeYKpyqmGKG+8mQ2Wd8iawx+uWd/weWJQAZ6SoPybagdCI4xFisag8iAR77WPm4h3pTfxA==", "dev": true, + "license": "MIT" + }, + "node_modules/file-type": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", + "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", "license": "MIT", "dependencies": { - "es-errors": "^1.3.0" + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" }, "engines": { - "node": ">= 0.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, - "node_modules/es6-promise": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-0.1.2.tgz", - "integrity": "sha512-FkHS6f1w/2Nj2kO8NsnLj2ZuCvcXHEMhZfmZSIBtY+DY2mPDDWxnSLG9CyygFW0hrb5RhOXVOvHpEUHS/6nkhQ==", + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, "engines": { "node": ">=10" }, @@ -5079,961 +5930,981 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", + "node_modules/find-up-simple": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", + "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, + "license": "MIT", "engines": { - "node": ">=0.12.0" + "node": ">=18" }, - "optionalDependencies": { - "source-map": "~0.2.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen/node_modules/esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "node_modules/findup-sync": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", "dev": true, - "optional": true, + "license": "MIT", "dependencies": { - "amdefine": ">=0.0.4" + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" }, "engines": { - "node": ">=0.8.0" + "node": ">= 0.10" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "flat": "cli.js" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/font-finder": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/font-finder/-/font-finder-1.1.0.tgz", + "integrity": "sha512-wpCL2uIbi6GurJbU7ZlQ3nGd61Ho+dSU6U83/xJT5UPFfN35EeCW/rOtS+5k+IuEZu2SYmHzDIPL9eA5tSYRAw==", + "license": "MIT", + "dependencies": { + "get-system-fonts": "^2.0.0", + "promise-stream-reader": "^1.0.1" }, "engines": { - "node": ">=4" + "node": ">8.0.0" } }, - "node_modules/estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true, - "license": "MIT" - }, - "node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", - "dev": true, - "license": "MIT", + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + "node": ">=14" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/execa/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "license": "MIT", "dependencies": { - "path-key": "^4.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 6" } }, - "node_modules/execa/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, + "node_modules/formidable": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.2.tgz", + "integrity": "sha512-Jqc1btCy3QzRbJaICGwKcBfGWuLADRerLzDqi2NwSt/UkXLsHJw2TVResiaoBufHVHy9aSgClOHCeJsSsFLTbg==", "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^2.0.0", + "once": "^1.4.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/exif-parser": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", - "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==" - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" + "url": "https://ko-fi.com/tunnckoCore/commissions" } }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "map-cache": "^0.2.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "license": "MIT", + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "license": "ISC", "dependencies": { - "homedir-polyfill": "^1.0.1" + "minipass": "^7.0.3" }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "license": "Apache-2.0" + "node_modules/fs-minipass/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "license": "MIT" + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=0.10.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, "license": "MIT", "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "globule": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 4.0.0" } }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dev": true, "license": "MIT", "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "node_modules/get-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" }, "engines": { - "node": ">=8.6.0" + "node": ">=6.9.0" } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", - "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "node_modules/get-pkg-repo/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/get-pkg-repo/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "license": "ISC", "dependencies": { - "reusify": "^1.0.4" + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==", - "dev": true, - "license": "MIT", + "node_modules/get-pkg-repo/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { - "websocket-driver": ">=0.5.1" + "yallist": "^4.0.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=10" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "node_modules/get-pkg-repo/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "license": "MIT", "dependencies": { - "pend": "~1.2.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/file-sync-cmp": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", - "integrity": "sha512-0k45oWBokCqh2MOexeYKpyqmGKG+8mQ2Wd8iawx+uWd/weWJQAZ6SoPybagdCI4xFisag8iAR77WPm4h3pTfxA==", - "dev": true, + "node_modules/get-pkg-repo/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "license": "MIT" }, - "node_modules/file-type": { - "version": "16.5.4", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", + "node_modules/get-pkg-repo/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "license": "MIT", "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" + "safe-buffer": "~5.1.0" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/get-pkg-repo/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, + "node_modules/get-pkg-repo/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/get-pkg-repo/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/findup-sync": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", - "resolve-dir": "^1.0.1" - }, + "node_modules/get-pkg-repo/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", "engines": { - "node": ">= 10.13.0" + "node": ">=10" } }, - "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, "license": "MIT", "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" + "node": ">= 0.4" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=16" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/font-finder": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/font-finder/-/font-finder-1.1.0.tgz", - "integrity": "sha512-wpCL2uIbi6GurJbU7ZlQ3nGd61Ho+dSU6U83/xJT5UPFfN35EeCW/rOtS+5k+IuEZu2SYmHzDIPL9eA5tSYRAw==", + "node_modules/get-system-fonts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-system-fonts/-/get-system-fonts-2.0.2.tgz", + "integrity": "sha512-zzlgaYnHMIEgHRrfC7x0Qp0Ylhw/sHpM6MHXeVBTYIsvGf5GpbnClB+Q6rAPdn+0gd2oZZIo6Tj3EaWrt4VhDQ==", "license": "MIT", - "dependencies": { - "get-system-fonts": "^2.0.0", - "promise-stream-reader": "^1.0.1" - }, "engines": { "node": ">8.0.0" } }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "node_modules/getobject": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz", + "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==", "dev": true, - "license": "MIT", - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=10" } }, - "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "node_modules/gifwrap": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.10.1.tgz", + "integrity": "sha512-2760b1vpJHNmLzZ/ubTtNnEx5WApN/PYWJvXvgS+tL1egTTthayFYIQQNi136FLEDcN/IyEY2EcGpIITD6eYUw==", "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" + "image-q": "^4.0.0", + "omggif": "^1.0.10" } }, - "node_modules/formidable": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.2.tgz", - "integrity": "sha512-Jqc1btCy3QzRbJaICGwKcBfGWuLADRerLzDqi2NwSt/UkXLsHJw2TVResiaoBufHVHy9aSgClOHCeJsSsFLTbg==", + "node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", "license": "MIT", "dependencies": { - "dezalgo": "^1.0.4", - "hexoid": "^2.0.0", - "once": "^1.4.0" + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" }, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, + "node_modules/git-raw-commits/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "license": "MIT", "dependencies": { - "map-cache": "^0.2.2" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "node_modules/git-raw-commits/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "license": "ISC" + }, + "node_modules/git-raw-commits/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "license": "MIT" }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/git-raw-commits/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "license": "ISC", + "node_modules/git-raw-commits/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "license": "MIT", "dependencies": { - "minipass": "^7.0.3" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/git-raw-commits/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "inBundle": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, + "node_modules/git-raw-commits/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "p-limit": "^2.2.0" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=8" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node_modules/git-raw-commits/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "deprecated": "This package is no longer supported.", - "license": "ISC", + "node_modules/git-raw-commits/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, + "node_modules/git-raw-commits/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "license": "MIT", "dependencies": { - "globule": "^1.0.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": ">= 4.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", + "node_modules/git-raw-commits/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=8" } }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" + "node_modules/git-raw-commits/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "function-bind": "^1.1.2", - "get-proto": "^1.0.0", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, + "node_modules/git-raw-commits/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "node_modules/git-raw-commits/node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "license": "MIT", "dependencies": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { - "get-pkg-repo": "src/cli.js" + "resolve": "bin/resolve" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-pkg-repo/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/git-raw-commits/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "bin": { + "semver": "bin/semver" } }, - "node_modules/get-pkg-repo/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "node_modules/git-raw-commits/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-raw-commits/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/get-pkg-repo/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", + "node_modules/git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" }, "engines": { "node": ">=10" } }, - "node_modules/get-pkg-repo/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/git-semver-tags/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/get-pkg-repo/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/git-semver-tags/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "license": "ISC" + }, + "node_modules/git-semver-tags/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "license": "MIT" }, - "node_modules/get-pkg-repo/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/git-semver-tags/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/get-pkg-repo/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/git-semver-tags/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "license": "MIT", "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-pkg-repo/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/git-semver-tags/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "license": "MIT", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, + "node_modules/git-semver-tags/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, + "node_modules/git-semver-tags/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-system-fonts": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-system-fonts/-/get-system-fonts-2.0.2.tgz", - "integrity": "sha512-zzlgaYnHMIEgHRrfC7x0Qp0Ylhw/sHpM6MHXeVBTYIsvGf5GpbnClB+Q6rAPdn+0gd2oZZIo6Tj3EaWrt4VhDQ==", + "node_modules/git-semver-tags/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, "engines": { - "node": ">8.0.0" + "node": ">=8" } }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, + "node_modules/git-semver-tags/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/getobject": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz", - "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==", - "dev": true, + "node_modules/git-semver-tags/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" - } - }, - "node_modules/gifwrap": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.10.1.tgz", - "integrity": "sha512-2760b1vpJHNmLzZ/ubTtNnEx5WApN/PYWJvXvgS+tL1egTTthayFYIQQNi136FLEDcN/IyEY2EcGpIITD6eYUw==", - "license": "MIT", - "dependencies": { - "image-q": "^4.0.0", - "omggif": "^1.0.10" + "node": ">=8" } }, - "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", - "license": "MIT", - "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, + "node_modules/git-semver-tags/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/git-semver-tags/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" + "semver": "bin/semver" } }, - "node_modules/git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", - "license": "MIT", - "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, + "node_modules/git-semver-tags/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "node_modules/git-semver-tags/node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "license": "MIT", "dependencies": { - "meow": "^8.0.0", - "semver": "^6.0.0" + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { - "git-semver-tags": "cli.js" + "resolve": "bin/resolve" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/git-semver-tags/node_modules/semver": { @@ -6045,6 +6916,27 @@ "semver": "bin/semver.js" } }, + "node_modules/git-semver-tags/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-semver-tags/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/gitconfiglocal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", @@ -6105,16 +6997,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "license": "MIT", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, "node_modules/global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", @@ -6268,42 +7150,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -6401,66 +7247,6 @@ "grunt": ">=0.4.5" } }, - "node_modules/grunt-contrib-clean/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/grunt-contrib-clean/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/grunt-contrib-clean/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/grunt-contrib-clean/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/grunt-contrib-copy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", @@ -6725,40 +7511,6 @@ "typescript": ">=1" } }, - "node_modules/grunt-ts/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "license": "ISC", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/grunt-ts/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-ts/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/grunt-ts/node_modules/braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", @@ -6804,26 +7556,25 @@ "fsevents": "^1.2.7" } }, - "node_modules/grunt-ts/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "node_modules/grunt-ts/node_modules/detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==", "dev": true, "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/grunt-ts/node_modules/detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==", + "node_modules/grunt-ts/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, "engines": { "node": ">=0.10.0" } @@ -6888,42 +7639,12 @@ "node": ">=0.10.0" } }, - "node_modules/grunt-ts/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-ts/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/grunt-ts/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, "engines": { "node": ">=0.10.0" } @@ -6941,7 +7662,7 @@ "node": ">=0.10.0" } }, - "node_modules/grunt-ts/node_modules/is-number/node_modules/kind-of": { + "node_modules/grunt-ts/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", @@ -6979,16 +7700,39 @@ "node": ">=0.10.0" } }, - "node_modules/grunt-ts/node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "node_modules/grunt-ts/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-ts/node_modules/micromatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-ts/node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, "engines": { "node": ">=0.10.0" } @@ -7229,12 +7973,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "license": "ISC" - }, "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -7334,6 +8072,15 @@ "node": ">=8" } }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, "node_modules/homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -7357,15 +8104,15 @@ } }, "node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.2.tgz", + "integrity": "sha512-sYKnA7eGln5ov8T8gnYlkSOxFJvywzEx9BueN6xo/GKO8PGiI6uK6xx+DIGe45T3bdVjLAQDQW1aicT8z8JwQg==", "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/http-cache-semantics": { @@ -7408,35 +8155,26 @@ } }, "node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" + "node": ">=16.17.0" } }, "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true, "license": "MIT", "bin": { - "husky": "lib/bin.js" + "husky": "bin.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/typicode" @@ -7491,15 +8229,15 @@ "license": "ISC" }, "node_modules/ignore-walk": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", - "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-7.0.0.tgz", + "integrity": "sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==", "license": "ISC", "dependencies": { "minimatch": "^9.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/ignore-walk/node_modules/minimatch": { @@ -7550,18 +8288,24 @@ "node": ">=8" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "license": "ISC" + "node_modules/index-to-position": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", + "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "inBundle": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -7572,16 +8316,15 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "inBundle": true, "license": "ISC" }, "node_modules/ini": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", - "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", + "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/interpret": { @@ -7655,6 +8398,37 @@ "node": ">=6.0.0" } }, + "node_modules/ios-sim-portable/node_modules/plist": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", + "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ios-sim-portable/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/ip-address": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", @@ -7708,15 +8482,16 @@ "license": "MIT" }, "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "binary-extensions": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/is-buffer": { @@ -7755,9 +8530,9 @@ } }, "node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "license": "MIT", "dependencies": { @@ -7769,26 +8544,29 @@ } }, "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "license": "MIT", "bin": { "is-docker": "cli.js" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, "engines": { "node": ">=0.10.0" } @@ -7824,12 +8602,6 @@ "node": ">=8" } }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "license": "MIT" - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -7842,20 +8614,35 @@ "node": ">=0.10.0" } }, - "node_modules/is-interactive": { + "node_modules/is-inside-container": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "license": "MIT" + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/is-number": { "version": "7.0.0", @@ -7894,12 +8681,13 @@ } }, "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/is-plain-object": { @@ -7929,13 +8717,12 @@ } }, "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7970,6 +8757,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -7996,15 +8784,18 @@ } }, "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "license": "MIT", "dependencies": { - "is-docker": "^2.0.0" + "is-inside-container": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/isarray": { @@ -8032,16 +8823,6 @@ "node": ">=0.10.0" } }, - "node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "license": "MIT", - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, "node_modules/istanbul": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", @@ -8217,15 +8998,41 @@ } }, "node_modules/jimp": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.22.10.tgz", - "integrity": "sha512-lCaHIJAgTOsplyJzC1w/laxSxrbSsEBw4byKwXgUdMmh+ayPsnidTblenQm+IvhIs44Gcuvlb6pd2LQ0wcKaKg==", - "license": "MIT", - "dependencies": { - "@jimp/custom": "^0.22.10", - "@jimp/plugins": "^0.22.10", - "@jimp/types": "^0.22.10", - "regenerator-runtime": "^0.13.3" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-1.6.0.tgz", + "integrity": "sha512-YcwCHw1kiqEeI5xRpDlPPBGL2EOpBKLwO4yIBJcXWHPj5PnA5urGq0jbyhM5KoNpypQ6VboSoxc9D8HyfvngSg==", + "license": "MIT", + "dependencies": { + "@jimp/core": "1.6.0", + "@jimp/diff": "1.6.0", + "@jimp/js-bmp": "1.6.0", + "@jimp/js-gif": "1.6.0", + "@jimp/js-jpeg": "1.6.0", + "@jimp/js-png": "1.6.0", + "@jimp/js-tiff": "1.6.0", + "@jimp/plugin-blit": "1.6.0", + "@jimp/plugin-blur": "1.6.0", + "@jimp/plugin-circle": "1.6.0", + "@jimp/plugin-color": "1.6.0", + "@jimp/plugin-contain": "1.6.0", + "@jimp/plugin-cover": "1.6.0", + "@jimp/plugin-crop": "1.6.0", + "@jimp/plugin-displace": "1.6.0", + "@jimp/plugin-dither": "1.6.0", + "@jimp/plugin-fisheye": "1.6.0", + "@jimp/plugin-flip": "1.6.0", + "@jimp/plugin-hash": "1.6.0", + "@jimp/plugin-mask": "1.6.0", + "@jimp/plugin-print": "1.6.0", + "@jimp/plugin-quantize": "1.6.0", + "@jimp/plugin-resize": "1.6.0", + "@jimp/plugin-rotate": "1.6.0", + "@jimp/plugin-threshold": "1.6.0", + "@jimp/types": "1.6.0", + "@jimp/utils": "1.6.0" + }, + "engines": { + "node": ">=18" } }, "node_modules/jpeg-js": { @@ -8267,13 +9074,6 @@ "dev": true, "license": "The Software shall be used for Good, not Evil. (see LICENSE)" }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", - "dev": true, - "license": "MIT" - }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -8281,12 +9081,12 @@ "license": "MIT" }, "node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/json-stringify-nice": { @@ -8360,16 +9160,6 @@ "dev": true, "license": "MIT" }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.0" - } - }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -8388,17 +9178,33 @@ "node": ">=6" } }, + "node_modules/ky": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/ky/-/ky-1.7.4.tgz", + "integrity": "sha512-zYEr/gh7uLW2l4su11bmQ2M9xLgQLjyvx58UyNM/6nuqyWFHPX5ktMjvpev3F8QWdjSsHUpnWew4PBCswBNuMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/ky?sponsor=1" + } + }, "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-9.0.0.tgz", + "integrity": "sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==", "dev": true, "license": "MIT", "dependencies": { - "package-json": "^6.3.0" + "package-json": "^10.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lazystream": { @@ -8515,13 +9321,16 @@ } }, "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { @@ -8531,28 +9340,28 @@ "license": "MIT" }, "node_modules/lint-staged": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.3.0.tgz", - "integrity": "sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==", + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.11.tgz", + "integrity": "sha512-Ev6ivCTYRTGs9ychvpVw35m/bcNDuBN+mnTeObCL5h+boS5WzBEC6LHI4I9F/++sZm1m+J2LEiy0gxL/R9TBqQ==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "5.3.0", - "commander": "11.0.0", - "debug": "4.3.4", - "execa": "7.2.0", - "lilconfig": "2.1.0", - "listr2": "6.6.1", - "micromatch": "4.0.5", - "pidtree": "0.6.0", - "string-argv": "0.3.2", - "yaml": "2.3.1" + "chalk": "~5.3.0", + "commander": "~12.1.0", + "debug": "~4.4.0", + "execa": "~8.0.1", + "lilconfig": "~3.1.3", + "listr2": "~8.2.5", + "micromatch": "~4.0.8", + "pidtree": "~0.6.0", + "string-argv": "~0.3.2", + "yaml": "~2.6.1" }, "bin": { "lint-staged": "bin/lint-staged.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=18.12.0" }, "funding": { "url": "https://opencollective.com/lint-staged" @@ -8571,82 +9380,22 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/lint-staged/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/lint-staged/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/lint-staged/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, "node_modules/listr2": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz", - "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", "dev": true, "license": "MIT", "dependencies": { - "cli-truncate": "^3.1.0", + "cli-truncate": "^4.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", - "log-update": "^5.0.1", - "rfdc": "^1.3.0", - "wrap-ansi": "^8.1.0" - }, - "engines": { - "node": ">=16.0.0" + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=18.0.0" } }, "node_modules/listr2/node_modules/ansi-styles": { @@ -8663,25 +9412,25 @@ } }, "node_modules/listr2/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", "dev": true, "license": "MIT" - }, - "node_modules/listr2/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + }, + "node_modules/listr2/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8704,18 +9453,18 @@ } }, "node_modules/listr2/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -8728,22 +9477,6 @@ "dev": true, "license": "MIT" }, - "node_modules/load-bmfont": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.2.tgz", - "integrity": "sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==", - "license": "MIT", - "dependencies": { - "buffer-equal": "0.0.1", - "mime": "^1.3.4", - "parse-bmfont-ascii": "^1.0.3", - "parse-bmfont-binary": "^1.0.5", - "parse-bmfont-xml": "^1.1.4", - "phin": "^3.7.1", - "xhr": "^2.0.1", - "xtend": "^4.0.0" - } - }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -8799,28 +9532,11 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "license": "MIT" }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "license": "MIT" - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "license": "MIT" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "license": "MIT" - }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", "dev": true, "license": "MIT" }, @@ -8830,28 +9546,17 @@ "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", "license": "MIT" }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "license": "MIT" }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "license": "MIT" - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.0", @@ -8865,38 +9570,25 @@ } }, "node_modules/log-update": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", - "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-escapes": "^5.0.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^5.0.0", - "strip-ansi": "^7.0.1", - "wrap-ansi": "^8.0.1" + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/log-update/node_modules/ansi-styles": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", @@ -8911,55 +9603,58 @@ } }, "node_modules/log-update/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", "dev": true, "license": "MIT" }, "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", "dev": true, "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/log-update/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8982,18 +9677,18 @@ } }, "node_modules/log-update/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -9016,24 +9711,11 @@ } }, "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", + "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, "node_modules/lru-cache": { "version": "10.4.3", @@ -9048,26 +9730,25 @@ "license": "ISC" }, "node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", + "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", "license": "ISC", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", + "minipass-fetch": "^4.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1", - "ssri": "^10.0.0" + "ssri": "^12.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/make-fetch-happen/node_modules/minipass": { @@ -9103,328 +9784,93 @@ } }, "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/marked-terminal": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.1.1.tgz", - "integrity": "sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^5.0.0", - "cardinal": "^2.1.1", - "chalk": "^5.0.0", - "cli-table3": "^0.6.1", - "node-emoji": "^1.11.0", - "supports-hyperlinks": "^2.2.0" - }, - "engines": { - "node": ">=14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/marked-terminal/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "license": "MIT", - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/meow/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "object-visit": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/meow/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/marked": { + "version": "15.0.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.6.tgz", + "integrity": "sha512-Y07CUOE+HQXbVDCGl3LXggqJDbXDP2pArc2C1N1RRMN0ONiShoSsIInMd5Gsxupe7fKLpgimTV+HOJ9r7bA+pg==", "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "bin": { + "marked": "bin/marked.js" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 18" } }, - "node_modules/meow/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "node_modules/marked-terminal": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.3.0.tgz", + "integrity": "sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==", "license": "MIT", "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "ansi-escapes": "^7.0.0", + "ansi-regex": "^6.1.0", + "chalk": "^5.4.1", + "cli-highlight": "^2.1.11", + "cli-table3": "^0.6.5", + "node-emoji": "^2.2.0", + "supports-hyperlinks": "^3.1.0" }, "engines": { - "node": ">=8" + "node": ">=16.0.0" + }, + "peerDependencies": { + "marked": ">=1 <16" } }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "node_modules/marked-terminal/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, "engines": { - "node": ">=8" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "license": "ISC" - }, - "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/meow/node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "license": "(MIT OR CC0-1.0)", + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9480,15 +9926,15 @@ } }, "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "license": "MIT", "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=10.0.0" } }, "node_modules/mime-db": { @@ -9525,22 +9971,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", "license": "MIT", "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "dependencies": { - "dom-walk": "^0.1.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/min-indent": { @@ -9553,15 +9993,15 @@ } }, "node_modules/minimatch": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", - "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -9590,6 +10030,15 @@ "node": ">= 6" } }, + "node_modules/minimist-options/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/minipass": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", @@ -9621,17 +10070,17 @@ } }, "node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", + "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", "license": "MIT", "dependencies": { "minipass": "^7.0.3", "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "minizlib": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" }, "optionalDependencies": { "encoding": "^0.1.13" @@ -9670,27 +10119,11 @@ "node": ">=8" } }, - "node_modules/minipass-json-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.2.tgz", - "integrity": "sha512-myxeeTm57lYs8pH2nxPzmEEg8DGIgW+9mv6D4JZD2pa81I/OBjeU7PtICXV6c9eRGTA5JMDsuIPUZRCyBMYNhg==", - "license": "MIT", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/minipass-pipeline": { "version": "1.2.4", @@ -9716,6 +10149,12 @@ "node": ">=8" } }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, "node_modules/minipass-sized": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", @@ -9740,62 +10179,102 @@ "node": ">=8" } }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "minipass": "^7.0.4", + "rimraf": "^5.0.5" }, "engines": { - "node": ">= 8" + "node": ">= 18" } }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/minizlib/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">=8" + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "license": "MIT", + "node_modules/minizlib/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "node_modules/minizlib/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "license": "MIT", "dependencies": { - "is-plain-object": "^2.0.4" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/mkdirp": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", - "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "license": "MIT", "bin": { "mkdirp": "dist/cjs/src/bin.js" @@ -9808,54 +10287,53 @@ } }, "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.1.0.tgz", + "integrity": "sha512-8uJR5RTC2NgpY3GrYcgpZrsEd9zKbPDpob1RezyR2upGHRQtHWofmzTMzTMSV6dru3tj5Ukt0+Vnq1qhFEEwAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^10.4.5", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1", + "yargs-unparser": "^2.0.0" }, "bin": { "_mocha": "bin/_mocha", "mocha": "bin/mocha.js" }, "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/mocha/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "node_modules/mocha/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, "engines": { - "node": ">=6" + "node": ">= 8" } }, "node_modules/mocha/node_modules/argparse": { @@ -9865,97 +10343,92 @@ "dev": true, "license": "Python-2.0" }, - "node_modules/mocha/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/mocha/node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/mocha/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.1.2" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=6.0" + "node": ">= 8.10.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/mocha/node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "*" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/mocha/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "binary-extensions": "^2.0.0" }, "engines": { - "node": "*" + "node": ">=8" } }, "node_modules/mocha/node_modules/js-yaml": { @@ -9972,9 +10445,9 @@ } }, "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "license": "ISC", "dependencies": { @@ -9984,49 +10457,43 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/mocha/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, + "license": "ISC", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/mocha/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/mocha/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "license": "MIT", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=10" + "node": ">=8.10.0" } }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "license": "ISC", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/modify-values": { @@ -10045,108 +10512,51 @@ "license": "MIT" }, "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/nan": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", - "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true, - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/nanomatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "license": "MIT", "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" } }, - "node_modules/nanomatch/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "node_modules/nan": { + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", + "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", "dev": true, "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } + "optional": true }, - "node_modules/nanomatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "license": "MIT", "dependencies": { - "is-plain-object": "^2.0.4" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" @@ -10221,9 +10631,9 @@ } }, "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -10236,36 +10646,32 @@ "license": "MIT" }, "node_modules/nise": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz", - "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-6.1.1.tgz", + "integrity": "sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^11.2.2", - "@sinonjs/text-encoding": "^0.7.2", + "@sinonjs/commons": "^3.0.1", + "@sinonjs/fake-timers": "^13.0.1", + "@sinonjs/text-encoding": "^0.7.3", "just-extend": "^6.2.0", - "path-to-regexp": "^6.2.1" - } - }, - "node_modules/nise/node_modules/@sinonjs/fake-timers": { - "version": "11.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.3.1.tgz", - "integrity": "sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" + "path-to-regexp": "^8.1.0" } }, "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", + "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", "license": "MIT", "dependencies": { - "lodash": "^4.17.21" + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" } }, "node_modules/node-fetch": { @@ -10289,27 +10695,27 @@ } }, "node_modules/node-gyp": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.3.1.tgz", - "integrity": "sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-11.0.0.tgz", + "integrity": "sha512-zQS+9MTTeCMgY0F3cWPyJyRFAkVltQ1uXm+xXu/ES6KFgC6Czo1Seb9vQW2wNxSX2OrDTiqL0ojtkFxBQ0ypIw==", "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", "glob": "^10.3.10", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^4.1.0", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5", - "tar": "^6.2.1", - "which": "^4.0.0" + "tar": "^7.4.3", + "which": "^5.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/node-gyp/node_modules/env-paths": { @@ -10321,30 +10727,6 @@ "node": ">=6" } }, - "node_modules/node-gyp/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-gyp/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/node-gyp/node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -10380,1118 +10762,859 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/node-gyp/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/nodemon": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.3.tgz", - "integrity": "sha512-7jH/NXbFPxVaMwmBCC2B9F/V6X1VkEdNgx3iu9jji8WxWcvhMWkmhNWhI5077zknOnZnBzba9hZP6bCPJLSReQ==", - "license": "MIT", - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^4", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/nodemon/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/nodemon/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/nodemon/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", - "license": "ISC", - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/nopt/node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/normalize-package-data": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", - "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^7.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-bundled": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", - "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-package-arg": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", - "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", - "license": "ISC", - "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-packlist": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz", - "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", + "node_modules/node-gyp/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "license": "ISC", - "dependencies": { - "ignore-walk": "^6.0.0" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/npm-pick-manifest": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", - "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", - "license": "ISC", + "node_modules/nodemon": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.3.tgz", + "integrity": "sha512-7jH/NXbFPxVaMwmBCC2B9F/V6X1VkEdNgx3iu9jji8WxWcvhMWkmhNWhI5077zknOnZnBzba9hZP6bCPJLSReQ==", + "license": "MIT", "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" } }, - "node_modules/npm-registry-fetch": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", - "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", + "node_modules/nodemon/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "license": "ISC", "dependencies": { - "@npmcli/redact": "^2.0.0", - "jsonparse": "^1.3.1", - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^4.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/npm-registry-fetch/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/nodemon/node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, + "node_modules/nodemon/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "license": "MIT", "dependencies": { - "path-key": "^2.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/nodemon/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=4" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/npm-watch": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/npm-watch/-/npm-watch-0.11.0.tgz", - "integrity": "sha512-wAOd0moNX2kSA2FNvt8+7ORwYaJpQ1ZoWjUYdb1bBCxq4nkWuU0IiJa9VpVxrj5Ks+FGXQd62OC/Bjk0aSr+dg==", + "node_modules/nodemon/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "license": "MIT", "dependencies": { - "nodemon": "^2.0.7", - "through2": "^4.0.2" + "binary-extensions": "^2.0.0" }, - "bin": { - "npm-watch": "cli.js" + "engines": { + "node": ">=8" } }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "deprecated": "This package is no longer supported.", + "node_modules/nodemon/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "license": "ISC", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "*" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, + "node_modules/nodemon/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8.10.0" } }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "license": "MIT", "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "license": "MIT", + "node_modules/nopt": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", + "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", + "license": "ISC", "dependencies": { - "is-buffer": "^1.1.5" + "abbrev": "^3.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" }, "engines": { - "node": ">=0.10.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", - "dev": true, - "license": "MIT", + "node_modules/nopt/node_modules/abbrev": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.0.tgz", + "integrity": "sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA==", + "license": "ISC", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "license": "MIT", + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "license": "BSD-2-Clause", "dependencies": { - "isobject": "^3.0.0" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", - "dev": true, - "license": "MIT", + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "license": "ISC", "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" + "lru-cache": "^6.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", - "dev": true, - "license": "MIT", + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/normalize-package-data/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, - "node_modules/omggif": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", - "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", - "license": "MIT" + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "inBundle": true, + "node_modules/npm-bundled": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", + "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==", "license": "ISC", "dependencies": { - "wrappy": "1" + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", + "node_modules/npm-install-checks": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.1.tgz", + "integrity": "sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg==", + "license": "BSD-2-Clause", "dependencies": { - "mimic-fn": "^4.0.0" + "semver": "^7.1.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "license": "MIT", + "node_modules/npm-normalize-package-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-package-arg": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.1.tgz", + "integrity": "sha512-aDxjFfPV3Liw0WOBWlyZLMBqtbgbg03rmGvHDJa2Ttv7tIz+1oB5qWec4psCDFZcZi9b5XdGkPdQiJxOPzvQRQ==", + "license": "ISC", "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "license": "MIT", + "node_modules/npm-packlist": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.0.tgz", + "integrity": "sha512-rht9U6nS8WOBDc53eipZNPo5qkAV4X2rhKE2Oj1DYUQ3DieXfj0mKkVmjnf3iuNdtMd8WfLdi2L6ASkD/8a+Kg==", + "license": "ISC", "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "ignore-walk": "^7.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "license": "MIT", + "node_modules/npm-pick-manifest": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz", + "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==", + "license": "ISC", "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", + "semver": "^7.3.5" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "license": "MIT", + "node_modules/npm-registry-fetch": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz", + "integrity": "sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==", + "license": "ISC", "dependencies": { - "restore-cursor": "^3.1.0" + "@npmcli/redact": "^3.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^14.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/ora/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", + "node_modules/npm-registry-fetch/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", "engines": { - "node": ">=6" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/ora/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "path-key": "^2.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "node_modules/npm-watch": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/npm-watch/-/npm-watch-0.11.0.tgz", + "integrity": "sha512-wAOd0moNX2kSA2FNvt8+7ORwYaJpQ1ZoWjUYdb1bBCxq4nkWuU0IiJa9VpVxrj5Ks+FGXQd62OC/Bjk0aSr+dg==", "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "nodemon": "^2.0.7", + "through2": "^4.0.2" + }, + "bin": { + "npm-watch": "cli.js" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "deprecated": "This package is no longer supported.", - "license": "ISC", + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "license": "MIT", "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "license": "MIT", "dependencies": { - "yocto-queue": "^0.1.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true, "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", "dev": true, "license": "MIT", "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/package-json-from-dist": { + "node_modules/object.map": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/pacote": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.1.tgz", - "integrity": "sha512-eeqEe77QrA6auZxNHIp+1TzHQ0HBKf5V6c8zcaYZ134EJe1lCi+fjXATkNiEEfbG+e50nu02GLvUtmZcGOYabQ==", - "license": "ISC", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "license": "MIT", "dependencies": { - "@npmcli/git": "^4.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/pacote/node_modules/@npmcli/git": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", - "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", - "license": "ISC", + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^3.0.0" + "isobject": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/pacote/node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", - "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "license": "ISC", "dependencies": { - "which": "^3.0.0" + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/@npmcli/run-script": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", - "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", - "license": "ISC", + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "license": "MIT", "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, "license": "MIT", "dependencies": { - "debug": "4" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 0.8.0" } }, - "node_modules/pacote/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", - "license": "ISC", + "node_modules/ora": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.1.1.tgz", + "integrity": "sha512-YWielGi1XzG1UTvOaCFaNgEnuhZVMSHYkW/FQ7UX8O26PtlpdM84c0f7wLPlkvx2RfiQmnzd61d/MGxmpQeJPw==", + "license": "MIT", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/cacache/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/ora/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/pacote/node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "node_modules/ora/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "license": "MIT" + }, + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", + "node_modules/ora/node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "license": "MIT", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/glob/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/pacote/node_modules/hosted-git-info": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.3.tgz", - "integrity": "sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==", - "license": "ISC", - "dependencies": { - "lru-cache": "^7.5.1" + "node": ">=12" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/ora/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "license": "MIT", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">= 6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/ora/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "license": "MIT", "dependencies": { - "agent-base": "6", - "debug": "4" + "ansi-regex": "^6.0.1" }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pacote/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/pacote/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/pacote/node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=0.10.0" } }, - "node_modules/pacote/node_modules/make-fetch-happen/node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "license": "ISC", - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=0.10.0" } }, - "node_modules/pacote/node_modules/make-fetch-happen/node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "node_modules/osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha512-W6FhbLxEWdiyX2/fCl2YBZUJOYWaCHJa+jJwUVMX0iFYJmwyd0uzKx4NxFdj3xo9C0pumQ6G/fvd1MbNhsqQbQ==", + "deprecated": "This package is no longer supported.", "license": "ISC", "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, - "node_modules/pacote/node_modules/make-fetch-happen/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "license": "ISC", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">= 8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/make-fetch-happen/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/make-fetch-happen/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, + "node_modules/p-map": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", + "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/make-fetch-happen/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/pacote/node_modules/make-fetch-happen/node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "node_modules/package-json": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-10.0.1.tgz", + "integrity": "sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==", + "dev": true, "license": "MIT", "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "ky": "^1.2.0", + "registry-auth-token": "^5.0.2", + "registry-url": "^6.0.1", + "semver": "^7.6.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18" }, - "optionalDependencies": { - "encoding": "^0.1.13" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/make-fetch-happen/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/pacote": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.0.0.tgz", + "integrity": "sha512-lcqexq73AMv6QNLo7SOpz0JJoaGdS3rBFgF122NZVl1bApo2mfu+XzUBU/X/XsiJu+iUmKpekRayqQYAs+PhkA==", "license": "ISC", "dependencies": { - "minipass": "^3.1.1" + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^10.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/pacote/node_modules/make-fetch-happen/node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "node_modules/pacote/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "license": "ISC", - "dependencies": { - "unique-slug": "^3.0.0" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" } }, - "node_modules/pacote/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/pacote/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, "engines": { "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/pacote/node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "license": "ISC", + "node_modules/pacote/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, "engines": { "node": ">= 8" } }, - "node_modules/pacote/node_modules/minipass-collect/node_modules/minipass": { + "node_modules/pacote/node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", @@ -11515,179 +11638,48 @@ "node": ">=10" } }, - "node_modules/pacote/node_modules/node-gyp": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", - "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^12.13 || ^14.13 || >=16" - } - }, - "node_modules/pacote/node_modules/node-gyp/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/pacote/node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/pacote/node_modules/node-gyp/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/pacote/node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "engines": { - "node": "*" + "node": ">=10" } }, - "node_modules/pacote/node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/pacote/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "license": "ISC", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "minipass": "^3.0.0" }, "engines": { "node": ">= 8" } }, - "node_modules/pacote/node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "license": "ISC", - "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/pacote/node_modules/npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", - "license": "ISC", - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/npm-pick-manifest": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz", - "integrity": "sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==", - "license": "ISC", - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/npm-registry-fetch": { - "version": "14.0.5", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", - "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", - "license": "ISC", - "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "node_modules/pacote/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "license": "ISC", "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" + "yallist": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/pacote/node_modules/npm-registry-fetch/node_modules/minipass": { + "node_modules/pacote/node_modules/tar/node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", @@ -11696,55 +11688,11 @@ "node": ">=8" } }, - "node_modules/pacote/node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/pacote/node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/pacote/node_modules/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "node_modules/pacote/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/pako": { "version": "1.0.11", @@ -11775,17 +11723,17 @@ } }, "node_modules/parse-conflict-json": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz", - "integrity": "sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-4.0.0.tgz", + "integrity": "sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ==", "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", + "json-parse-even-better-errors": "^4.0.0", "just-diff": "^6.0.0", "just-diff-apply": "^5.2.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/parse-filepath": { @@ -11803,12 +11751,6 @@ "node": ">=0.8" } }, - "node_modules/parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", - "license": "MIT" - }, "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -11832,6 +11774,27 @@ "node": ">=0.10.0" } }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "license": "MIT" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "license": "MIT", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "license": "MIT" + }, "node_modules/pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", @@ -11868,7 +11831,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "inBundle": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -11938,11 +11900,14 @@ } }, "node_modules/path-to-regexp": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=16" + } }, "node_modules/path-type": { "version": "3.0.0", @@ -11966,13 +11931,13 @@ } }, "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": ">= 14.16" } }, "node_modules/pbxproj-dom": { @@ -12000,18 +11965,6 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "license": "MIT" }, - "node_modules/phin": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/phin/-/phin-3.7.1.tgz", - "integrity": "sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==", - "license": "MIT", - "dependencies": { - "centra": "^2.7.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -12053,37 +12006,38 @@ } }, "node_modules/pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.3.0.tgz", + "integrity": "sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==", "license": "ISC", "dependencies": { - "pngjs": "^3.0.0" + "pngjs": "^6.0.0" }, "bin": { "pixelmatch": "bin/pixelmatch" } }, "node_modules/pixelmatch/node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", + "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": ">=12.13.0" } }, "node_modules/plist": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", - "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", "license": "MIT", "dependencies": { + "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" }, "engines": { - "node": ">=6" + "node": ">=10.4.0" } }, "node_modules/plist-merge-patch": { @@ -12096,13 +12050,35 @@ "plist": "3.0.6" } }, + "node_modules/plist-merge-patch/node_modules/plist": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", + "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/plist/node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/pngjs": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", - "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", "license": "MIT", "engines": { - "node": ">=12.13.0" + "node": ">=14.19.0" } }, "node_modules/posix-character-classes": { @@ -12137,38 +12113,28 @@ "node": ">= 0.8.0" } }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "license": "MIT", "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", + "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/process": { @@ -12187,12 +12153,12 @@ "license": "MIT" }, "node_modules/proggy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/proggy/-/proggy-2.0.0.tgz", - "integrity": "sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proggy/-/proggy-3.0.0.tgz", + "integrity": "sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q==", "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/promise-all-reject-late": { @@ -12274,6 +12240,13 @@ "signal-exit": "^3.0.2" } }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -12289,34 +12262,12 @@ "osenv": "0.1.4" } }, - "node_modules/proxy-lib/node_modules/osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha512-W6FhbLxEWdiyX2/fCl2YBZUJOYWaCHJa+jJwUVMX0iFYJmwyd0uzKx4NxFdj3xo9C0pumQ6G/fvd1MbNhsqQbQ==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "license": "MIT" }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -12452,121 +12403,122 @@ } }, "node_modules/read-cmd-shim": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", - "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", - "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==", - "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-5.0.0.tgz", + "integrity": "sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==", "license": "ISC", - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz", + "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==", "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/read-package-json/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", + "node_modules/read-package-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", + "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", + "dev": true, + "license": "MIT", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-package-json/node_modules/hosted-git-info": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.3.tgz", - "integrity": "sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==", + "node_modules/read-package-up/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, "license": "ISC", "dependencies": { - "lru-cache": "^7.5.1" + "lru-cache": "^10.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/read-package-json/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", + "node_modules/read-package-up/node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, "engines": { - "node": ">=12" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/read-package-json/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", + "node_modules/read-package-up/node_modules/parse-json": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", + "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@babel/code-frame": "^7.22.13", + "index-to-position": "^0.1.2", + "type-fest": "^4.7.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-package-json/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/read-package-up/node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-package-json/node_modules/normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, + "node_modules/read-package-up/node_modules/type-fest": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.33.0.tgz", + "integrity": "sha512-s6zVrxuyKbbAsSAD5ZPTB77q4YIdRctkTbJ2/Dqlinwz+8ooH2gd+YA7VA6Pa93KML9GockVvoxjZ2vHP+mu8g==", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg": { @@ -12711,17 +12663,19 @@ } }, "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">= 6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/readable-web-to-node-stream": { @@ -12740,6 +12694,20 @@ "url": "https://github.com/sponsors/Borewit" } }, + "node_modules/readable-web-to-node-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/readdir-glob": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", @@ -12762,15 +12730,16 @@ } }, "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, "engines": { - "node": ">=8.10.0" + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/rechoir": { @@ -12820,21 +12789,6 @@ "node": ">=8" } }, - "node_modules/redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", - "license": "MIT", - "dependencies": { - "esprima": "~4.0.0" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "license": "MIT" - }, "node_modules/regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -12849,33 +12803,6 @@ "node": ">=0.10.0" } }, - "node_modules/regex-not/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/regexp-to-ast": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", @@ -12883,29 +12810,32 @@ "license": "MIT" }, "node_modules/registry-auth-token": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", - "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.3.tgz", + "integrity": "sha512-1bpc9IyC+e+CNFRaWyn77tk4xGG4PPUyfakSmA6F6cvUDjrm58dfyJ3II+9yb10EDkHoy1LaPSmHaWLOH3m6HA==", "dev": true, "license": "MIT", "dependencies": { - "rc": "1.2.8" + "@pnpm/npm-conf": "^2.1.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=14" } }, "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", "dev": true, "license": "MIT", "dependencies": { - "rc": "^1.2.8" + "rc": "1.2.8" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/remove-trailing-separator": { @@ -12988,6 +12918,15 @@ "concat-map": "0.0.1" } }, + "node_modules/replace/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/replace/node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -13028,6 +12967,15 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "license": "MIT" }, + "node_modules/replace/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/replace/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -13251,61 +13199,51 @@ "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true, - "license": "MIT" - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "lowercase-keys": "^1.0.0" - } + "license": "MIT" }, "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -13342,27 +13280,24 @@ "license": "MIT" }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "deprecated": "Rimraf versions prior to v4 are no longer supported", - "inBundle": true, + "dev": true, "license": "ISC", "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rimraf/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "inBundle": true, + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -13374,7 +13309,7 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", - "inBundle": true, + "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -13395,7 +13330,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "inBundle": true, + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -13404,6 +13339,18 @@ "node": "*" } }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -13477,13 +13424,10 @@ "license": "ISC" }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -13491,22 +13435,10 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -13535,6 +13467,29 @@ "node": ">=0.10.0" } }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -13710,230 +13665,31 @@ "license": "ISC" }, "node_modules/sigstore": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.9.0.tgz", - "integrity": "sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.0.0.tgz", + "integrity": "sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA==", "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "@sigstore/sign": "^1.0.0", - "@sigstore/tuf": "^1.0.3", - "make-fetch-happen": "^11.0.1" - }, - "bin": { - "sigstore": "bin/sigstore.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/sigstore/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/node_modules/cacache/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sigstore/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sigstore/node_modules/glob/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sigstore/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sigstore/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sigstore/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/sigstore/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sigstore/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/sigstore/node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/sigstore/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sigstore/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^3.0.0", + "@sigstore/tuf": "^3.0.0", + "@sigstore/verify": "^2.0.0" }, "engines": { - "node": ">= 10" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/simple-git": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.17.0.tgz", - "integrity": "sha512-JozI/s8jr3nvLd9yn2jzPVHnhVzt7t7QWfcIoDcqRIGN+f1IINGv52xoZti2kkYfoRhhRvzMSNPfogHMp97rlw==", + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.27.0.tgz", + "integrity": "sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==", "license": "MIT", "dependencies": { "@kwsites/file-exists": "^1.1.1", "@kwsites/promise-deferred": "^1.1.1", - "debug": "^4.3.4" + "debug": "^4.3.5" }, "funding": { "type": "github", @@ -13978,19 +13734,27 @@ "node": ">=10" } }, + "node_modules/simple-xml-to-json": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/simple-xml-to-json/-/simple-xml-to-json-1.2.3.tgz", + "integrity": "sha512-kWJDCr9EWtZ+/EYYM5MareWj2cRnZGF93YDNpH4jQiHB+hBIZnfPFSQiVMzZOdk+zXWqTZ/9fTeQNu2DqeiudA==", + "license": "MIT", + "engines": { + "node": ">=20.12.2" + } + }, "node_modules/sinon": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.3.tgz", - "integrity": "sha512-si3geiRkeovP7Iel2O+qGL4NrO9vbMf3KsrJEi0ghP1l5aBkB5UxARea5j0FUsSqH3HLBh0dQPAyQ8fObRUqHw==", - "deprecated": "16.1.1", + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-19.0.2.tgz", + "integrity": "sha512-euuToqM+PjO4UgXeLETsfQiuoyPXlqFezr6YZDFwHR3t4qaX0fZUe1MfPMznTL5f8BWrVS89KduLdMUsxFCO6g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^10.0.2", - "@sinonjs/samsam": "^8.0.0", - "diff": "^5.1.0", - "nise": "^5.1.4", + "@sinonjs/commons": "^3.0.1", + "@sinonjs/fake-timers": "^13.0.2", + "@sinonjs/samsam": "^8.0.1", + "diff": "^7.0.0", + "nise": "^6.1.1", "supports-color": "^7.2.0" }, "funding": { @@ -13998,12 +13762,34 @@ "url": "https://opencollective.com/sinon" } }, + "node_modules/sinon/node_modules/diff": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", + "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "license": "MIT" }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "license": "MIT", + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -14088,20 +13874,6 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", @@ -14138,6 +13910,56 @@ "ms": "2.0.0" } }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/snapdragon/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -14293,33 +14115,6 @@ "node": ">=0.10.0" } }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/split2": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", @@ -14329,6 +14124,20 @@ "readable-stream": "^3.0.0" } }, + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -14337,15 +14146,15 @@ "license": "BSD-3-Clause" }, "node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/ssri/node_modules/minipass": { @@ -14371,6 +14180,45 @@ "node": ">=0.10.0" } }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/stream-buffers": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", @@ -14426,6 +14274,19 @@ "node": ">= 4.0.0" } }, + "node_modules/streamx": { + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", + "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -14480,14 +14341,6 @@ "node": ">=8" } }, - "node_modules/stringify-package": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", - "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", - "deprecated": "This module is not used anymore, and has been replaced by @npmcli/package-json", - "inBundle": true, - "license": "ISC" - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -14513,6 +14366,24 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", @@ -14594,16 +14465,19 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz", + "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==", "license": "MIT", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -14619,72 +14493,40 @@ } }, "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", "license": "ISC", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "license": "MIT", "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/tar/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" } }, "node_modules/temp": { @@ -14701,12 +14543,13 @@ } }, "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", + "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=14.16" } }, "node_modules/temp/node_modules/brace-expansion": { @@ -14778,28 +14621,19 @@ } }, "node_modules/tempfile": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-3.0.0.tgz", - "integrity": "sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-5.0.0.tgz", + "integrity": "sha512-bX655WZI/F7EoTDw9JvQURqAXiPHi8o8+yFxPF2lWYyz1aHnmMRuXWqL6YB6GmeO0o4DIYWHLgGNi/X64T+X4Q==", "dev": true, "license": "MIT", "dependencies": { - "temp-dir": "^2.0.0", - "uuid": "^3.3.2" + "temp-dir": "^3.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/tempfile/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "bin/uuid" + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/tempy": { @@ -14812,32 +14646,8 @@ "is-stream": "^2.0.0", "temp-dir": "^2.0.0", "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "license": "(MIT OR CC0-1.0)", + "unique-string": "^2.0.0" + }, "engines": { "node": ">=10" }, @@ -14845,6 +14655,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tempy/node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -14854,6 +14682,27 @@ "node": ">=0.10" } }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -14869,11 +14718,19 @@ "readable-stream": "3" } }, - "node_modules/timm": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", - "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==", - "license": "MIT" + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } }, "node_modules/tiny-lr": { "version": "1.1.1", @@ -14941,16 +14798,6 @@ "node": ">=0.10.0" } }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -14979,61 +14826,6 @@ "node": ">=8.0" } }, - "node_modules/to-regex/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/token-types": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", @@ -15094,13 +14886,13 @@ } }, "node_modules/ts-morph": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-17.0.1.tgz", - "integrity": "sha512-10PkHyXmrtsTvZSL+cqtJLTgFXkU43Gd0JCc0Rw6GchWbqKe0Rwgt1v3ouobTZwQzF1mGhDeAlWYBMGRV7y+3g==", + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-25.0.0.tgz", + "integrity": "sha512-ERPTUVO5qF8cEGJgAejGOsCVlbk8d0SDyiJsucKQT5XgqoZslv0Qml+gnui6Yy6o+uQqw5SestyW2HvlVtT/Sg==", "license": "MIT", "dependencies": { - "@ts-morph/common": "~0.18.0", - "code-block-writer": "^11.0.3" + "@ts-morph/common": "~0.26.0", + "code-block-writer": "^13.0.3" } }, "node_modules/ts-node": { @@ -15131,245 +14923,48 @@ "ts-node-transpile-only": "dist/bin-transpile.js", "ts-script": "dist/bin-script-deprecated.js" }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tuf-js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz", - "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==", - "license": "MIT", - "dependencies": { - "@tufjs/models": "1.0.4", - "debug": "^4.3.4", - "make-fetch-happen": "^11.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/tuf-js/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/cacache/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/tuf-js/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/tuf-js/node_modules/glob/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/tuf-js/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tuf-js/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/tuf-js/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/tuf-js/node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } } }, - "node_modules/tuf-js/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "license": "BSD-3-Clause", "engines": { - "node": ">=8" + "node": ">=0.3.1" } }, - "node_modules/tuf-js/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tuf-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.0.1.tgz", + "integrity": "sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA==", "license": "MIT", "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "@tufjs/models": "3.0.1", + "debug": "^4.3.6", + "make-fetch-happen": "^14.0.1" }, "engines": { - "node": ">= 10" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/tunnel": { @@ -15395,9 +14990,9 @@ } }, "node_modules/type-detect": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", - "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "license": "MIT", "engines": { @@ -15405,9 +15000,9 @@ } }, "node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" @@ -15417,16 +15012,16 @@ } }, "node_modules/typescript": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.3.tgz", - "integrity": "sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=14.17" } }, "node_modules/uglify-js": { @@ -15479,6 +15074,34 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -15495,28 +15118,38 @@ "node": ">=0.10.0" } }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz", + "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==", "license": "ISC", "dependencies": { - "unique-slug": "^4.0.0" + "unique-slug": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz", + "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==", "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/unique-string": { @@ -15642,19 +15275,6 @@ "dev": true, "license": "MIT" }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -15681,12 +15301,16 @@ "license": "MIT" }, "node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", + "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { @@ -15719,27 +15343,21 @@ } }, "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", + "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==", "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/walk-up-path": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", - "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==", - "license": "ISC" - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz", + "integrity": "sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==", + "license": "ISC", + "engines": { + "node": "20 || >=22" } }, "node_modules/webidl-conversions": { @@ -15773,12 +15391,6 @@ "node": ">=0.8.0" } }, - "node_modules/whatwg-fetch": { - "version": "3.6.20", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", - "license": "MIT" - }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -15790,9 +15402,9 @@ } }, "node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "license": "ISC", "dependencies": { "isexe": "^3.1.1" @@ -15801,7 +15413,7 @@ "node-which": "bin/which.js" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/which-module": { @@ -15810,19 +15422,10 @@ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "license": "ISC" }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/winreg": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.4.tgz", - "integrity": "sha512-IHpzORub7kYlb8A43Iig3reOvlcBJGX9gZ0WycHhghHtA65X0LYnMRuJs+aH1abVnMJztQkvQNlltnbPi5aGIA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.5.tgz", + "integrity": "sha512-uf7tHf+tw0B1y+x+mKTLHkykBgK2KMs3g+KlzmyMbLvICSHQyB/xOFjTT8qZ3oeTFyU7Bbj4FzXitGG6jvKhYw==", "license": "BSD-2-Clause" }, "node_modules/word-wrap": { @@ -15842,9 +15445,9 @@ "license": "MIT" }, "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", "dev": true, "license": "Apache-2.0" }, @@ -15887,20 +15490,19 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "inBundle": true, "license": "ISC" }, "node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-6.0.0.tgz", + "integrity": "sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==", "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/write-file-atomic/node_modules/signal-exit": { @@ -15916,9 +15518,9 @@ } }, "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -15958,18 +15560,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "license": "MIT", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, "node_modules/xml-js": { "version": "1.6.11", "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", @@ -16047,25 +15637,31 @@ } }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } }, "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", "dev": true, "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } }, "node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "license": "MIT", "dependencies": { "cliui": "^8.0.1", @@ -16081,12 +15677,12 @@ } }, "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "license": "ISC", "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-unparser": { @@ -16105,59 +15701,26 @@ "node": ">=10" } }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, + "node_modules/yauzl": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.2.0.tgz", + "integrity": "sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "buffer-crc32": "~0.2.3", + "pend": "~1.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "license": "ISC", "engines": { "node": ">=12" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "node_modules/yauzl/node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "engines": { + "node": "*" } }, "node_modules/yn": { @@ -16183,81 +15746,26 @@ } }, "node_modules/zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "license": "MIT", - "dependencies": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", "license": "MIT", "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, - "node_modules/zip-stream/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/zod": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/zip-stream/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/zip-stream/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "url": "https://github.com/sponsors/colinhacks" } } } diff --git a/package.json b/package.json index ea641ea7d4..13461de789 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "nativescript", "main": "./lib/nativescript-cli-lib.js", - "version": "8.9.0", - "author": "NativeScript ", + "version": "8.9.0-dev.0", + "author": "NativeScript ", "description": "Command-line interface for building NativeScript projects", "bin": { "tns": "./bin/tns", @@ -32,7 +32,7 @@ "build": "grunt", "build.all": "grunt test", "dev": "tsc --watch", - "setup": "npm i --ignore-scripts && npx husky install", + "setup": "npm i --ignore-scripts && npx husky", "test": "npm run tsc && mocha --config=test/.mocharc.yml", "postinstall": "node postinstall.js", "preuninstall": "node preuninstall.js", @@ -55,22 +55,20 @@ ], "dependencies": { "@foxt/js-srp": "^0.0.3-patch2", - "@nativescript/doctor": "2.0.15", - "@nativescript/schematics-executor": "0.0.2", - "@npmcli/arborist": "^7.2.0", - "@npmcli/move-file": "^2.0.0", + "@nativescript/doctor": "2.0.16-rc.0", + "@npmcli/arborist": "^9.0.0", "@rigor789/resolve-package-path": "1.0.7", "@rigor789/trapezedev-project": "7.1.2", "ansi-colors": "^4.1.3", - "archiver": "^5.3.1", - "axios": "1.6.5", + "archiver": "^7.0.1", + "axios": "1.7.9", "byline": "5.0.0", - "chalk": "4.1.2", - "chokidar": "3.5.3", - "cli-table3": "0.6.3", + "chalk": "^4.1.0", + "chokidar": "4.0.3", + "cli-table3": "0.6.5", "color": "4.2.3", "convert-source-map": "2.0.0", - "detect-newline": "3.1.0", + "detect-newline": "4.0.1", "email-validator": "2.0.4", "esprima": "4.0.1", "font-finder": "1.1.0", @@ -78,83 +76,77 @@ "ios-device-lib": "0.9.4", "ios-mobileprovision-finder": "1.2.1", "ios-sim-portable": "4.5.0", - "jimp": "0.22.10", + "jimp": "1.6.0", "lodash": "4.17.21", "log4js": "6.9.1", - "marked": "4.3.0", - "marked-terminal": "5.1.1", - "minimatch": "7.4.2", - "mkdirp": "2.1.6", - "mute-stream": "1.0.0", + "marked": "15.0.6", + "marked-terminal": "7.3.0", + "minimatch": "10.0.1", + "mkdirp": "3.0.1", + "mute-stream": "2.0.0", "nativescript-dev-xcode": "0.8.0", - "open": "8.4.2", - "ora": "5.4.1", - "pacote": "15.1.1", + "open": "10.1.0", + "ora": "8.1.1", + "pacote": "21.0.0", "pbxproj-dom": "1.2.0", - "plist": "3.0.6", + "plist": "3.1.0", "plist-merge-patch": "0.2.0", - "prettier": "2.8.7", + "prettier": "3.4.2", "prompts": "2.4.2", "proper-lockfile": "4.1.2", "proxy-lib": "0.4.0", "qr-image": "3.2.0", "qrcode-terminal": "0.12.0", - "semver": "7.5.4", + "semver": "7.6.3", "shelljs": "0.8.5", - "simple-git": "3.17.0", + "simple-git": "3.27.0", "simple-plist": "1.4.0", "source-map": "0.7.4", - "stringify-package": "1.0.1", - "tar": "6.1.13", + "tar": "7.4.3", "temp": "0.9.4", - "ts-morph": "17.0.1", + "ts-morph": "25.0.0", "tunnel": "0.0.6", - "typescript": "5.0.3", + "typescript": "5.7.3", "universal-analytics": "0.5.3", - "uuid": "9.0.0", - "winreg": "1.2.4", - "ws": "8.13.0", + "uuid": "11.0.5", + "winreg": "1.2.5", + "ws": "8.18.0", "xml2js": "0.6.2", - "yargs": "17.7.1" + "yargs": "17.7.2" }, "devDependencies": { - "@types/archiver": "^5.3.2", - "@types/byline": "^4.2.33", - "@types/chai": "4.3.4", - "@types/chai-as-promised": "7.1.5", - "@types/chokidar": "2.1.3", - "@types/color": "3.0.3", - "@types/convert-source-map": "2.0.0", - "@types/form-data": "2.5.0", + "@types/archiver": "^6.0.3", + "@types/byline": "^4.2.36", + "@types/chai": "5.0.1", + "@types/chai-as-promised": "8.0.1", + "@types/color": "4.2.0", + "@types/convert-source-map": "2.0.3", "@types/glob": "^8.1.0", - "@types/lodash": "4.14.192", - "@types/marked": "^4.0.8", - "@types/node": "18.15.11", - "@types/npmcli__arborist": "^5.6.4", - "@types/ora": "3.2.0", - "@types/pacote": "^11.1.5", - "@types/plist": "^3.0.2", - "@types/prettier": "2.7.2", - "@types/prompts": "2.4.4", - "@types/proper-lockfile": "4.1.2", - "@types/qr-image": "3.2.5", - "@types/retry": "0.12.2", - "@types/semver": "7.5.6", + "@types/lodash": "4.17.15", + "@types/marked-terminal": "^6.1.1", + "@types/node": "^20.0.0", + "@types/npmcli__arborist": "^6.3.0", + "@types/pacote": "^11.1.8", + "@types/plist": "^3.0.5", + "@types/prompts": "2.4.9", + "@types/proper-lockfile": "4.1.4", + "@types/qr-image": "3.2.9", + "@types/retry": "0.12.5", + "@types/semver": "7.5.8", "@types/shelljs": "^0.8.11", - "@types/sinon": "^10.0.13", - "@types/source-map": "0.5.7", + "@types/sinon": "^17.0.3", "@types/tabtab": "^3.0.2", - "@types/tar": "6.1.4", - "@types/temp": "0.9.1", - "@types/tunnel": "0.0.3", - "@types/universal-analytics": "0.4.5", - "@types/uuid": "^9.0.1", - "@types/ws": "8.5.4", + "@types/tar": "6.1.13", + "@types/temp": "0.9.4", + "@types/tunnel": "0.0.7", + "@types/universal-analytics": "0.4.8", + "@types/uuid": "^10.0.0", + "@types/ws": "8.5.14", "@types/xml2js": "0.4.14", - "@types/yargs": "17.0.24", - "chai": "4.3.7", - "chai-as-promised": "7.1.1", - "conventional-changelog-cli": "^2.2.2", + "@types/yargs": "17.0.33", + "chai": "5.1.2", + "chai-as-promised": "8.0.1", + "conventional-changelog-cli": "^5.0.0", "grunt": "1.6.1", "grunt-contrib-clean": "2.0.1", "grunt-contrib-copy": "1.0.0", @@ -162,21 +154,14 @@ "grunt-shell": "4.0.0", "grunt-template": "1.0.0", "grunt-ts": "6.0.0-beta.22", - "husky": "8.0.3", + "husky": "9.1.7", "istanbul": "0.4.5", - "latest-version": "5.1.0", - "lint-staged": "^13.2.0", - "mocha": "10.2.0", - "sinon": "15.0.3", + "latest-version": "9.0.0", + "lint-staged": "~15.2.0", + "mocha": "11.1.0", + "sinon": "19.0.2", "source-map-support": "0.5.21" }, - "bundleDependencies_comment1": "These dependencies are bundled in the CLI and are not installed from npm to avoid deprecation warnings.", - "bundleDependencies_comment2": "Eventually we'll remove them as we replaced their functionality.", - "bundleDependencies_comment3": "note: @npmcli/move-file is a transient dep of pacote - we dont use it directly.", - "bundleDependencies": [ - "@npmcli/move-file", - "stringify-package" - ], "optionalDependencies": { "fsevents": "*" }, diff --git a/packages/doctor/package.json b/packages/doctor/package.json index 7da016fabe..1b48afc27a 100644 --- a/packages/doctor/package.json +++ b/packages/doctor/package.json @@ -1,6 +1,6 @@ { "name": "@nativescript/doctor", - "version": "2.0.15", + "version": "2.0.16-rc.0", "description": "Library that helps identifying if the environment can be used for development of {N} apps.", "main": "src/index.js", "types": "./typings/nativescript-doctor.d.ts", @@ -28,45 +28,48 @@ "doctor", "tns" ], - "author": "Telerik ", + "author": "NativeScript ", + "contributors": [ + { + "name": "Telerik", + "email": "support@telerik.com" + } + ], "license": "Apache-2.0", "bugs": { "url": "https://github.com/NativeScript/nativescript-doctor/issues" }, "homepage": "https://github.com/NativeScript/nativescript-doctor#readme", "devDependencies": { - "@types/chai": "4.3.0", - "@types/lodash": "4.14.178", - "@types/mocha": "9.1.0", - "@types/osenv": "^0.1.1", - "@types/rimraf": "3.0.2", - "@types/semver": "7.3.9", - "@types/shelljs": "0.8.11", - "@types/temp": "0.9.1", - "@types/winreg": "1.2.31", - "@types/yauzl": "2.9.2", - "chai": "4.3.6", - "conventional-changelog-cli": "^2.0.34", - "grunt": "1.0.3", - "grunt-contrib-clean": "1.0.0", + "@types/chai": "5.0.1", + "@types/lodash": "4.17.15", + "@types/mocha": "10.0.10", + "@types/semver": "7.5.8", + "@types/shelljs": "0.8.15", + "@types/temp": "0.9.4", + "@types/winreg": "1.2.36", + "@types/yauzl": "2.10.3", + "chai": "5.1.2", + "conventional-changelog-cli": "^5.0.0", + "grunt": "1.6.1", + "grunt-contrib-clean": "2.0.1", "grunt-contrib-watch": "1.1.0", - "grunt-shell": "2.0.0", - "grunt-ts": "6.0.0-beta.21", + "grunt-shell": "4.0.0", + "grunt-ts": "6.0.0-beta.22", "grunt-tslint": "5.0.2", "istanbul": "0.4.5", - "mocha": "9.2.0", - "rimraf": "3.0.2", + "mocha": "11.1.0", + "rimraf": "6.0.1", "tslint": "6.1.3", "tslint-microsoft-contrib": "6.2.0", - "typescript": "~4.5.5" + "typescript": "~5.4.0" }, "dependencies": { "lodash": "4.17.21", - "osenv": "0.1.5", - "semver": "7.5.4", + "semver": "7.6.3", "shelljs": "0.8.5", "temp": "0.9.4", "winreg": "1.2.5", - "yauzl": "2.10.0" + "yauzl": "3.2.0" } -} +} \ No newline at end of file diff --git a/packages/doctor/test/wrappers/file-system.ts b/packages/doctor/test/wrappers/file-system.ts index 283d7a65e5..f58cea8a72 100644 --- a/packages/doctor/test/wrappers/file-system.ts +++ b/packages/doctor/test/wrappers/file-system.ts @@ -1,6 +1,6 @@ import { tmpdir } from "os"; import { assert } from "chai"; -import * as rimraf from "rimraf"; +import { rimraf, rimrafSync } from "rimraf"; import { FileSystem } from "../../src/wrappers/file-system"; @@ -42,6 +42,9 @@ describe("FileSystem", () => { .catch((e) => done(e)); }); - afterEach((done) => rimraf(tmpDir, done)); + afterEach((done) => { + rimrafSync(tmpDir); + done(); + }); }); }); diff --git a/test/.mocharc.yml b/test/.mocharc.yml index 2c2e0d5c77..86b280d432 100644 --- a/test/.mocharc.yml +++ b/test/.mocharc.yml @@ -39,7 +39,6 @@ inline-diffs: false recursive: true reporter: 'spec' require: - - 'source-map-support/register' - 'test/test-bootstrap.js' retries: 1 slow: 500 diff --git a/test/commands/post-install.ts b/test/commands/post-install.ts index fb9464d082..f1ce525981 100644 --- a/test/commands/post-install.ts +++ b/test/commands/post-install.ts @@ -9,7 +9,7 @@ const createTestInjector = (): IInjector => { const testInjector = new Yok(); testInjector.register("fs", { setCurrentUserAsOwner: async (path: string, owner: string): Promise => - undefined, + undefined }); testInjector.register("staticConfig", {}); @@ -18,28 +18,28 @@ const createTestInjector = (): IInjector => { tryExecuteCommand: async ( commandName: string, commandArguments: string[] - ): Promise => undefined, + ): Promise => undefined }); testInjector.register("helpService", { - generateHtmlPages: async (): Promise => undefined, + generateHtmlPages: async (): Promise => undefined }); testInjector.register("options", {}); testInjector.register("doctorService", { - printWarnings: async (): Promise => undefined, + printWarnings: async (): Promise => undefined }); testInjector.register("analyticsService", { checkConsent: async (): Promise => undefined, track: async (featureName: string, featureValue: string): Promise => - undefined, + undefined }); testInjector.register("logger", { info: (formatStr?: any, ...args: any[]): void => undefined, - printMarkdown: (...args: any[]): void => undefined, + printMarkdown: (...args: any[]): void => undefined }); testInjector.register("settingsService", SettingsService); @@ -71,17 +71,15 @@ describe("post-install command", () => { isGenerateHtmlPagesCalled = true; }; - const analyticsService = testInjector.resolve( - "analyticsService" - ); + const analyticsService = + testInjector.resolve("analyticsService"); let isCheckConsentCalled = false; analyticsService.checkConsent = async (): Promise => { isCheckConsentCalled = true; }; - const commandsService = testInjector.resolve( - "commandsService" - ); + const commandsService = + testInjector.resolve("commandsService"); let isTryExecuteCommandCalled = false; commandsService.tryExecuteCommand = async (): Promise => { isTryExecuteCommandCalled = true; @@ -120,7 +118,7 @@ describe("post-install command", () => { it("calls specific methods when CLI is installed with sudo with `--unsafe-perm`", async () => { process.env.npm_config_argv = JSON.stringify({ - original: ["--unsafe-perm"], + original: ["--unsafe-perm"] }); process.env.SUDO_USER = "user1"; return verifyResult({ shouldCallMethod: true }); diff --git a/test/config/config-json.ts b/test/config/config-json.ts index 9697b64339..bc14f88ad2 100644 --- a/test/config/config-json.ts +++ b/test/config/config-json.ts @@ -6,7 +6,7 @@ describe("config.json", () => { ANDROID_DEBUG_UI_MAC: "Google Chrome", USE_POD_SANDBOX: false, DISABLE_HOOKS: false, - GA_TRACKING_ID: "UA-111455-51", + GA_TRACKING_ID: "UA-111455-51" }; it("validates content is correct", () => { diff --git a/test/controllers/add-platform-controller.ts b/test/controllers/add-platform-controller.ts index cc2b9e62ae..dfa8ecfbdf 100644 --- a/test/controllers/add-platform-controller.ts +++ b/test/controllers/add-platform-controller.ts @@ -26,7 +26,7 @@ function createInjector(data?: { latestFrameworkVersion: string }) { injector.register("addPlatformService", AddPlatformService); injector.register("pacoteService", PacoteServiceStub); injector.register("analyticsService", { - trackEventActionInGoogleAnalytics: () => ({}), + trackEventActionInGoogleAnalytics: () => ({}) }); injector.register("packageManager", PackageManager); injector.register("npm", NodePackageManager); @@ -36,7 +36,7 @@ function createInjector(data?: { latestFrameworkVersion: string }) { injector.register("bun", BunPackageManager); injector.register("userSettingsService", { - getSettingValue: async (settingName: string): Promise => undefined, + getSettingValue: async (settingName: string): Promise => undefined }); injector.register("tempService", TempServiceStub); injector.register("mobileHelper", MobileHelper); @@ -69,19 +69,19 @@ describe("PlatformController", () => { const testCases = [ { name: "should add the platform (tns platform add @7.0.0)", - latestFrameworkVersion: "7.0.0", + latestFrameworkVersion: "7.0.0" }, { name: "should add the latest compatible version (tns platform add )", latestFrameworkVersion, getPlatformParam: (platform: string) => - `${platform}@${latestFrameworkVersion}`, + `${platform}@${latestFrameworkVersion}` }, { name: "should add the platform when --frameworkPath is provided", frameworkPath: "/my/path/to/framework.tgz", - latestFrameworkVersion: "6.5.0", - }, + latestFrameworkVersion: "6.5.0" + } ]; afterEach(() => { @@ -92,7 +92,7 @@ describe("PlatformController", () => { _.each(["ios", "android"], (platform) => { it(`${testCase.name} for ${platform} platform`, async () => { const injector = createInjector({ - latestFrameworkVersion: testCase.latestFrameworkVersion, + latestFrameworkVersion: testCase.latestFrameworkVersion }); const platformParam = testCase.getPlatformParam @@ -103,7 +103,7 @@ describe("PlatformController", () => { await platformController.addPlatform({ projectDir, platform: platformParam, - frameworkPath: testCase.frameworkPath, + frameworkPath: testCase.frameworkPath }); const expectedMessage = `Platform ${platform} successfully added. v${testCase.latestFrameworkVersion}`; @@ -179,7 +179,7 @@ describe("PlatformController", () => { injector.resolve("platformController"); await platformController.addPlatform({ projectDir, - platform: "android", + platform: "android" }); assert(writeFileCalled, "expected to write gradle.properties"); diff --git a/test/controllers/debug-controller.ts b/test/controllers/debug-controller.ts index 03595c67bb..7c10886668 100644 --- a/test/controllers/debug-controller.ts +++ b/test/controllers/debug-controller.ts @@ -8,7 +8,7 @@ import { CONNECTION_ERROR_EVENT_NAME, DebugCommandErrors, TrackActionNames, - DebugTools, + DebugTools } from "../../lib/constants"; import { DebugController } from "../../lib/controllers/debug-controller"; import { BuildDataService } from "../../lib/services/build-data-service"; @@ -23,7 +23,7 @@ import { IDebugData, IDebugOptions, IDebugResultInfo, - IDeviceDebugService, + IDeviceDebugService } from "../../lib/definitions/debug"; import { IInjector } from "../../lib/common/definitions/yok"; import { IAnalyticsService } from "../../lib/common/declarations"; @@ -68,10 +68,10 @@ const getDefaultDeviceInformation = ( deviceInfo: { status: constants.CONNECTED_STATUS, platform: platform || "Android", - identifier: defaultDeviceIdentifier, + identifier: defaultDeviceIdentifier }, - isEmulator: false, + isEmulator: false }); const getDefaultTestData = (platform?: string): IDebugTestData => ({ @@ -80,8 +80,8 @@ const getDefaultTestData = (platform?: string): IDebugTestData => ({ isApplicationInstalledOnDevice: true, hostInfo: { isWindows: false, - isDarwin: true, - }, + isDarwin: true + } }); describe("debugController", () => { @@ -98,13 +98,13 @@ describe("debugController", () => { applicationManager: { isApplicationInstalled: async ( appIdentifier: string - ): Promise => testData.isApplicationInstalledOnDevice, + ): Promise => testData.isApplicationInstalledOnDevice }, - isEmulator: testData.deviceInformation.isEmulator, - } + isEmulator: testData.deviceInformation.isEmulator + } : null; - }, + } }); testInjector.register("androidDeviceDebugService", PlatformDebugService); @@ -117,7 +117,7 @@ describe("debugController", () => { }, isiOSPlatform: (platform: string) => { return platform.toLowerCase() === "ios"; - }, + } }); testInjector.register("errors", stubs.ErrorsStub); @@ -128,7 +128,7 @@ describe("debugController", () => { testInjector.register("analyticsService", { trackEventActionInGoogleAnalytics: (data: IEventActionData) => - Promise.resolve(), + Promise.resolve() }); testInjector.register("buildDataService", BuildDataService); @@ -163,7 +163,7 @@ describe("debugController", () => { applicationIdentifier: "org.nativescript.app1", projectDir: "/Users/user/app1", projectName: "app1", - debugOptions: debugOptions || {}, + debugOptions: debugOptions || {} }); describe("rejects the result promise when", () => { @@ -275,11 +275,12 @@ describe("debugController", () => { const expectedErrorData = { deviceIdentifier: "deviceId", message: "my message", - code: 2048, + code: 2048 }; - const platformDebugService = testInjector.resolve< - IDeviceDebugService - >(`${platform}DeviceDebugService`); + const platformDebugService = + testInjector.resolve( + `${platform}DeviceDebugService` + ); platformDebugService.emit( CONNECTION_ERROR_EVENT_NAME, expectedErrorData @@ -307,7 +308,7 @@ describe("debugController", () => { assert.deepStrictEqual(debugInfo, { url: fakeChromeDebugUrl, port: fakeChromeDebugPort, - deviceIdentifier: debugData.deviceIdentifier, + deviceIdentifier: debugData.deviceIdentifier }); }); }); @@ -319,18 +320,18 @@ describe("debugController", () => { { testName: "Inspector when --inspector is passed", debugOptions: { inspector: true }, - additionalData: DebugTools.Inspector, + additionalData: DebugTools.Inspector }, { testName: "Chrome when no options are passed", debugOptions: null, - additionalData: DebugTools.Chrome, + additionalData: DebugTools.Chrome }, { testName: "Chrome when --chrome is passed", debugOptions: { chrome: true }, - additionalData: DebugTools.Chrome, - }, + additionalData: DebugTools.Chrome + } ], (testCase) => { it(testCase.testName, async () => { @@ -338,9 +339,8 @@ describe("debugController", () => { testData.deviceInformation.deviceInfo.platform = "iOS"; const testInjector = getTestInjectorForTestConfiguration(testData); - const analyticsService = testInjector.resolve( - "analyticsService" - ); + const analyticsService = + testInjector.resolve("analyticsService"); let dataTrackedToGA: IEventActionData = null; analyticsService.trackEventActionInGoogleAnalytics = async ( data: IEventActionData @@ -351,9 +351,8 @@ describe("debugController", () => { const debugController = testInjector.resolve(DebugController); const debugData = getDebugData(testCase.debugOptions); await debugController.startDebug(debugData); - const devicesService = testInjector.resolve( - "devicesService" - ); + const devicesService = + testInjector.resolve("devicesService"); const device = devicesService.getDeviceByIdentifier( testData.deviceInformation.deviceInfo.identifier ); @@ -363,7 +362,7 @@ describe("debugController", () => { action: TrackActionNames.Debug, device, additionalData: testCase.additionalData, - projectDir: debugData.projectDir, + projectDir: debugData.projectDir }, null, 2 diff --git a/test/controllers/prepare-controller.ts b/test/controllers/prepare-controller.ts index a8bf78ad3b..7ba41eafca 100644 --- a/test/controllers/prepare-controller.ts +++ b/test/controllers/prepare-controller.ts @@ -14,7 +14,7 @@ const prepareData = { env: {}, watch: true, watchNative: true, - uniqueBundle: 0, + uniqueBundle: 0 }; let isCompileWithWatchCalled = false; @@ -28,14 +28,14 @@ function createTestInjector(data: { hasNativeChanges: boolean }): IInjector { const injector = new InjectorStub(); injector.register("platformController", { - addPlatformIfNeeded: () => ({}), + addPlatformIfNeeded: () => ({}) }); injector.register("prepareNativePlatformService", { prepareNativePlatform: async () => { isNativePrepareCalled = true; return data.hasNativeChanges; - }, + } }); injector.register("webpackCompilerService", { @@ -46,23 +46,23 @@ function createTestInjector(data: { hasNativeChanges: boolean }): IInjector { }, compileWithoutWatch: async () => { isCompileWithoutWatchCalled = true; - }, + } }); injector.register("mobileHelper", MobileHelper); injector.register("prepareController", PrepareController); injector.register("nodeModulesDependenciesBuilder", { - getProductionDependencies: () => [], + getProductionDependencies: () => [] }); injector.register("watchIgnoreListService", { addFileToIgnoreList: () => ({}), - isFileInIgnoreList: () => false, + isFileInIgnoreList: () => false }); injector.register("analyticsService", { - trackEventActionInGoogleAnalytics: () => ({}), + trackEventActionInGoogleAnalytics: () => ({}) }); injector.register("tempService", TempServiceStub); @@ -70,7 +70,7 @@ function createTestInjector(data: { hasNativeChanges: boolean }): IInjector { ensureAppResourcesExist(projectDir: string): Promise { isEnsuringAppResourcesExist = true; return; - }, + } }); const prepareController: PrepareController = @@ -145,7 +145,7 @@ describe("prepareController", () => { hasNativeChanges: true, hasOnlyHotUpdateFiles: false, hmrData: null, - platform: platform.toLowerCase(), + platform: platform.toLowerCase() }); }); }); @@ -161,7 +161,7 @@ describe("prepareController", () => { await prepareController.prepare({ ...prepareData, watch: false, - platform, + platform }); assert.isTrue(isNativePrepareCalled); diff --git a/test/controllers/run-controller.ts b/test/controllers/run-controller.ts index 36251a12aa..463f9c2c31 100644 --- a/test/controllers/run-controller.ts +++ b/test/controllers/run-controller.ts @@ -21,20 +21,20 @@ const projectDir = "/path/to/my/projecDir"; const buildOutputPath = `${projectDir}/platform/ios/build/myproject.app`; const iOSDevice = { - deviceInfo: { identifier: "myiOSDevice", platform: "ios" }, + deviceInfo: { identifier: "myiOSDevice", platform: "ios" } }; const iOSDeviceDescriptor = { identifier: "myiOSDevice", buildAction: async () => buildOutputPath, - buildData: {}, + buildData: {} }; const androidDevice = { - deviceInfo: { identifier: "myAndroidDevice", platform: "android" }, + deviceInfo: { identifier: "myAndroidDevice", platform: "android" } }; const androidDeviceDescriptor = { identifier: "myAndroidDevice", buildAction: async () => buildOutputPath, - buildData: {}, + buildData: {} }; const map: IDictionary<{ @@ -43,19 +43,19 @@ const map: IDictionary<{ }> = { myiOSDevice: { device: iOSDevice, - descriptor: iOSDeviceDescriptor, + descriptor: iOSDeviceDescriptor }, myAndroidDevice: { device: androidDevice, - descriptor: androidDeviceDescriptor, - }, + descriptor: androidDeviceDescriptor + } }; const liveSyncInfo = { projectDir, release: false, useHotModuleReload: false, - env: {}, + env: {} }; function getFullSyncResult(): ILiveSyncResultInfo { @@ -63,15 +63,14 @@ function getFullSyncResult(): ILiveSyncResultInfo { modifiedFilesData: [], isFullSync: true, deviceAppData: { - appIdentifier, - }, + appIdentifier + } }; } function mockDevicesService(injector: IInjector, devices: Mobile.IDevice[]) { - const devicesService: Mobile.IDevicesService = injector.resolve( - "devicesService" - ); + const devicesService: Mobile.IDevicesService = + injector.resolve("devicesService"); devicesService.execute = async ( action: (device: Mobile.IDevice) => Promise, canExecute?: (dev: Mobile.IDevice) => boolean, @@ -96,21 +95,21 @@ function createTestInjector() { buildPlatform: async () => { return buildOutputPath; }, - buildPlatformIfNeeded: async () => ({}), + buildPlatformIfNeeded: async () => ({}) }); injector.register("deviceInstallAppService", { - installOnDeviceIfNeeded: () => ({}), + installOnDeviceIfNeeded: () => ({}) }); injector.register("iOSLiveSyncService", { fullSync: async () => getFullSyncResult(), - liveSyncWatchAction: () => ({}), + liveSyncWatchAction: () => ({}) }); injector.register("androidLiveSyncService", { fullSync: async () => getFullSyncResult(), - liveSyncWatchAction: () => ({}), + liveSyncWatchAction: () => ({}) }); injector.register("hmrStatusService", { - attachToHmrStatusEvent: () => (isAttachToHmrStatusCalled = true), + attachToHmrStatusEvent: () => (isAttachToHmrStatusCalled = true) }); injector.register("liveSyncServiceResolver", LiveSyncServiceResolver); injector.register("mobileHelper", MobileHelper); @@ -121,7 +120,7 @@ function createTestInjector() { return { platform: prepareData.platform, hasNativeChanges: false }; }, on: () => ({}), - removeListener: (): void => undefined, + removeListener: (): void => undefined }); injector.register("prepareNativePlatformService", {}); injector.register("projectChangesService", {}); @@ -163,7 +162,7 @@ describe("RunController", () => { await runController.run({ liveSyncInfo: { ...liveSyncInfo, skipWatcher: true }, - deviceDescriptors: [iOSDeviceDescriptor], + deviceDescriptors: [iOSDeviceDescriptor] }); assert.isFalse(prepareData.watch); @@ -175,9 +174,9 @@ describe("RunController", () => { liveSyncInfo: { ...liveSyncInfo, skipWatcher: true, - useHotModuleReload: true, + useHotModuleReload: true }, - deviceDescriptors: [iOSDeviceDescriptor], + deviceDescriptors: [iOSDeviceDescriptor] }); assert.isFalse(isAttachToHmrStatusCalled); @@ -187,7 +186,7 @@ describe("RunController", () => { await runController.run({ liveSyncInfo, - deviceDescriptors: [iOSDeviceDescriptor], + deviceDescriptors: [iOSDeviceDescriptor] }); assert.isFalse(isAttachToHmrStatusCalled); @@ -197,7 +196,7 @@ describe("RunController", () => { await runController.run({ liveSyncInfo, - deviceDescriptors: [], + deviceDescriptors: [] }); assert.isFalse(isAttachToHmrStatusCalled); @@ -206,23 +205,20 @@ describe("RunController", () => { describe("watch", () => { const testCases = [ { - name: - "should prepare only ios platform when only ios devices are connected", + name: "should prepare only ios platform when only ios devices are connected", connectedDevices: [iOSDeviceDescriptor], - expectedPreparedPlatforms: ["ios"], + expectedPreparedPlatforms: ["ios"] }, { - name: - "should prepare only android platform when only android devices are connected", + name: "should prepare only android platform when only android devices are connected", connectedDevices: [androidDeviceDescriptor], - expectedPreparedPlatforms: ["android"], + expectedPreparedPlatforms: ["android"] }, { - name: - "should prepare both platforms when ios and android devices are connected", + name: "should prepare both platforms when ios and android devices are connected", connectedDevices: [iOSDeviceDescriptor, androidDeviceDescriptor], - expectedPreparedPlatforms: ["ios", "android"], - }, + expectedPreparedPlatforms: ["ios", "android"] + } ]; _.each(testCases, (testCase) => { @@ -233,22 +229,21 @@ describe("RunController", () => { ); const preparedPlatforms: string[] = []; - const prepareController: PrepareController = injector.resolve( - "prepareController" - ); + const prepareController: PrepareController = + injector.resolve("prepareController"); prepareController.prepare = async ( currentPrepareData: PrepareData ) => { preparedPlatforms.push(currentPrepareData.platform); return { platform: currentPrepareData.platform, - hasNativeChanges: false, + hasNativeChanges: false }; }; await runController.run({ liveSyncInfo, - deviceDescriptors: testCase.connectedDevices, + deviceDescriptors: testCase.connectedDevices }); assert.deepStrictEqual( @@ -263,45 +258,39 @@ describe("RunController", () => { describe("stopRunOnDevices", () => { const testCases = [ { - name: - "stops LiveSync operation for all devices and emits liveSyncStopped for all of them when stopLiveSync is called without deviceIdentifiers", + name: "stops LiveSync operation for all devices and emits liveSyncStopped for all of them when stopLiveSync is called without deviceIdentifiers", currentDeviceIdentifiers: ["device1", "device2", "device3"], - expectedDeviceIdentifiers: ["device1", "device2", "device3"], + expectedDeviceIdentifiers: ["device1", "device2", "device3"] }, { - name: - "stops LiveSync operation for all devices and emits liveSyncStopped for all of them when stopLiveSync is called without deviceIdentifiers (when a single device is attached)", + name: "stops LiveSync operation for all devices and emits liveSyncStopped for all of them when stopLiveSync is called without deviceIdentifiers (when a single device is attached)", currentDeviceIdentifiers: ["device1"], - expectedDeviceIdentifiers: ["device1"], + expectedDeviceIdentifiers: ["device1"] }, { - name: - "stops LiveSync operation for specified devices and emits liveSyncStopped for each of them (when a single device is attached)", + name: "stops LiveSync operation for specified devices and emits liveSyncStopped for each of them (when a single device is attached)", currentDeviceIdentifiers: ["device1"], expectedDeviceIdentifiers: ["device1"], - deviceIdentifiersToBeStopped: ["device1"], + deviceIdentifiersToBeStopped: ["device1"] }, { - name: - "stops LiveSync operation for specified devices and emits liveSyncStopped for each of them", + name: "stops LiveSync operation for specified devices and emits liveSyncStopped for each of them", currentDeviceIdentifiers: ["device1", "device2", "device3"], expectedDeviceIdentifiers: ["device1", "device3"], - deviceIdentifiersToBeStopped: ["device1", "device3"], + deviceIdentifiersToBeStopped: ["device1", "device3"] }, { - name: - "does not raise liveSyncStopped event for device, which is not currently being liveSynced", + name: "does not raise liveSyncStopped event for device, which is not currently being liveSynced", currentDeviceIdentifiers: ["device1", "device2", "device3"], expectedDeviceIdentifiers: ["device1"], - deviceIdentifiersToBeStopped: ["device1", "device4"], + deviceIdentifiersToBeStopped: ["device1", "device4"] }, { - name: - "stops LiveSync operation for all devices when stop method is called with empty array", + name: "stops LiveSync operation for all devices when stop method is called with empty array", currentDeviceIdentifiers: ["device1", "device2", "device3"], expectedDeviceIdentifiers: ["device1", "device2", "device3"], - deviceIdentifiersToBeStopped: [], - }, + deviceIdentifiersToBeStopped: [] + } ]; for (const testCase of testCases) { @@ -328,7 +317,7 @@ describe("RunController", () => { await runController.stop({ projectDir, - deviceIdentifiers: testCase.deviceIdentifiersToBeStopped, + deviceIdentifiers: testCase.deviceIdentifiersToBeStopped }); assert.deepStrictEqual( diff --git a/test/controllers/update-controller.ts b/test/controllers/update-controller.ts index a99cf9802d..2f901e15a5 100644 --- a/test/controllers/update-controller.ts +++ b/test/controllers/update-controller.ts @@ -21,20 +21,20 @@ function createTestInjector(projectDir: string = projectFolder): IInjector { /* empty */ }, dependencies: { - "@nativescript/core": "next", + "@nativescript/core": "next" }, devDependencies: { "@nativescript/ios": "8.0.0", "@nativescript/android": "~8.0.0", "@nativescript/webpack": "5.0.0-beta.9", - "@nativescript/types": "8.1.0", - }, + "@nativescript/types": "8.1.0" + } }); testInjector.register("fs", stubs.FileSystemStub); testInjector.register("platformCommandHelper", { getCurrentPlatformVersion: () => { return "5.2.0"; - }, + } }); testInjector.register("packageManager", { getTagVersion(packageName: string, tag: string) { @@ -50,10 +50,10 @@ function createTestInjector(projectDir: string = projectFolder): IInjector { } return false; - }, + } }); testInjector.register("pluginsService", { - addToPackageJson() {}, + addToPackageJson() {} }); class PackageInstallationManagerStub extends stubs.PackageInstallationManagerStub { @@ -61,7 +61,7 @@ function createTestInjector(projectDir: string = projectFolder): IInjector { const projectData = testInjector.resolve("projectData"); const deps = { ...projectData.dependencies, - ...projectData.devDependencies, + ...projectData.devDependencies }; if (deps[packageName]) { @@ -80,12 +80,12 @@ function createTestInjector(projectDir: string = projectFolder): IInjector { testInjector.register("projectDataService", { getProjectData() { return testInjector.resolve("projectData"); - }, + } }); testInjector.register("updateController", UpdateController); testInjector.register("projectBackupService", stubs.ProjectBackupServiceStub); testInjector.register("projectCleanupService", { - clean() {}, + clean() {} }); return testInjector; @@ -126,7 +126,7 @@ describe("update controller method tests", () => { await updateController .update({ projectDir: projectFolder, - version: "3.3.0", + version: "3.3.0" }) .catch(() => { hasError = true; @@ -154,15 +154,14 @@ describe("update controller method tests", () => { it("handles exact versions", async () => { const testInjector = createTestInjector(); const updateController = testInjector.resolve("updateController"); - const pluginsService = testInjector.resolve( - "pluginsService" - ); + const pluginsService = + testInjector.resolve("pluginsService"); const stub = sinon.stub(pluginsService, "addToPackageJson"); await updateController.update({ projectDir: projectFolder, - version: "8.0.1234", + version: "8.0.1234" }); assertCalled(stub, "@nativescript/core", "8.0.1234"); @@ -175,15 +174,14 @@ describe("update controller method tests", () => { it("handles range versions", async () => { const testInjector = createTestInjector(); const updateController = testInjector.resolve("updateController"); - const pluginsService = testInjector.resolve( - "pluginsService" - ); + const pluginsService = + testInjector.resolve("pluginsService"); const stub = sinon.stub(pluginsService, "addToPackageJson"); await updateController.update({ projectDir: projectFolder, - version: "~8.0.1234", + version: "~8.0.1234" }); assertCalled(stub, "@nativescript/core", "~8.0.1234"); @@ -196,15 +194,14 @@ describe("update controller method tests", () => { it("handles range versions", async () => { const testInjector = createTestInjector(); const updateController = testInjector.resolve("updateController"); - const pluginsService = testInjector.resolve( - "pluginsService" - ); + const pluginsService = + testInjector.resolve("pluginsService"); const stub = sinon.stub(pluginsService, "addToPackageJson"); await updateController.update({ projectDir: projectFolder, - version: "^8.0.1234", + version: "^8.0.1234" }); assertCalled(stub, "@nativescript/core", "^8.0.1234"); @@ -217,15 +214,14 @@ describe("update controller method tests", () => { it("handles latest tag versions", async () => { const testInjector = createTestInjector(); const updateController = testInjector.resolve("updateController"); - const pluginsService = testInjector.resolve( - "pluginsService" - ); + const pluginsService = + testInjector.resolve("pluginsService"); const stub = sinon.stub(pluginsService, "addToPackageJson"); await updateController.update({ projectDir: projectFolder, - version: "latest", + version: "latest" }); assertCalled(stub, "@nativescript/core", "~8.0.4567"); @@ -238,15 +234,14 @@ describe("update controller method tests", () => { it("handles existing tag versions", async () => { const testInjector = createTestInjector(); const updateController = testInjector.resolve("updateController"); - const pluginsService = testInjector.resolve( - "pluginsService" - ); + const pluginsService = + testInjector.resolve("pluginsService"); const stub = sinon.stub(pluginsService, "addToPackageJson"); await updateController.update({ projectDir: projectFolder, - version: "next", + version: "next" }); assertCalled(stub, "@nativescript/core", "8.0.0-next"); @@ -259,15 +254,14 @@ describe("update controller method tests", () => { it("handles non-existing tag versions", async () => { const testInjector = createTestInjector(); const updateController = testInjector.resolve("updateController"); - const pluginsService = testInjector.resolve( - "pluginsService" - ); + const pluginsService = + testInjector.resolve("pluginsService"); const stub = sinon.stub(pluginsService, "addToPackageJson"); await updateController.update({ projectDir: projectFolder, - version: "nonexistent", + version: "nonexistent" }); assert(stub.notCalled); @@ -276,15 +270,14 @@ describe("update controller method tests", () => { it("handles partially existing tag versions", async () => { const testInjector = createTestInjector(); const updateController = testInjector.resolve("updateController"); - const pluginsService = testInjector.resolve( - "pluginsService" - ); + const pluginsService = + testInjector.resolve("pluginsService"); const stub = sinon.stub(pluginsService, "addToPackageJson"); await updateController.update({ projectDir: projectFolder, - version: "JSC", + version: "JSC" }); assert(stub.calledOnce); @@ -294,14 +287,13 @@ describe("update controller method tests", () => { it("handles no version - falls back to latest", async () => { const testInjector = createTestInjector(); const updateController = testInjector.resolve("updateController"); - const pluginsService = testInjector.resolve( - "pluginsService" - ); + const pluginsService = + testInjector.resolve("pluginsService"); const stub = sinon.stub(pluginsService, "addToPackageJson"); await updateController.update({ - projectDir: projectFolder, + projectDir: projectFolder }); assertCalled(stub, "@nativescript/core", "~8.0.4567"); diff --git a/test/helpers/platform-command-helper.ts b/test/helpers/platform-command-helper.ts index 6f8904404e..810715995d 100644 --- a/test/helpers/platform-command-helper.ts +++ b/test/helpers/platform-command-helper.ts @@ -12,25 +12,25 @@ let isAddPlatformCalled = false; const projectDir = "/my/path/to/project"; const projectData: any = { projectDir, - platformsDir: "/my/path/to/project/platforms", + platformsDir: "/my/path/to/project/platforms" }; function createTestInjector() { const injector = new InjectorStub(); injector.register("addPlatformService", { - addPlatform: () => ({}), + addPlatform: () => ({}) }); injector.register("platformController", { - addPlatform: () => (isAddPlatformCalled = true), + addPlatform: () => (isAddPlatformCalled = true) }); injector.register("pacoteService", { - extractPackage: () => ({}), + extractPackage: () => ({}) }); injector.register("platformValidationService", { validatePlatform: () => ({}), - validatePlatformInstalled: () => ({}), + validatePlatformInstalled: () => ({}) }); injector.register("platformCommandHelper", PlatformCommandHelper); diff --git a/test/mocha.opts b/test/mocha.opts index 5a8f874618..6541568281 100644 --- a/test/mocha.opts +++ b/test/mocha.opts @@ -1,6 +1,5 @@ --recursive --reporter spec ---require source-map-support/register --require test/test-bootstrap.js --timeout 150000 test/ diff --git a/test/services/android-device-debug-service.ts b/test/services/android-device-debug-service.ts index 7f8698d8a4..1dc1e61560 100644 --- a/test/services/android-device-debug-service.ts +++ b/test/services/android-device-debug-service.ts @@ -72,32 +72,32 @@ describe("androidDeviceDebugService", () => { { scenarioName: "useBundledDevTools and useHttpUrl are not passed", debugOptions: {}, - expectedChromeUrl: `devtools://devtools/bundled/inspector.html?ws=localhost:${expectedPort}`, + expectedChromeUrl: `devtools://devtools/bundled/inspector.html?ws=localhost:${expectedPort}` }, // When useBundledDevTools is true { scenarioName: "useBundledDevTools is true and useHttpUrl is not passed", debugOptions: { - useBundledDevTools: true, + useBundledDevTools: true }, - expectedChromeUrl: `devtools://devtools/bundled/inspector.html?ws=localhost:${expectedPort}`, + expectedChromeUrl: `devtools://devtools/bundled/inspector.html?ws=localhost:${expectedPort}` }, { scenarioName: "useBundledDevTools is true and useHttpUrl is false", debugOptions: { useBundledDevTools: true, - useHttpUrl: false, + useHttpUrl: false }, - expectedChromeUrl: `devtools://devtools/bundled/inspector.html?ws=localhost:${expectedPort}`, + expectedChromeUrl: `devtools://devtools/bundled/inspector.html?ws=localhost:${expectedPort}` }, { scenarioName: "useBundledDevTools is true and useHttpUrl is true", debugOptions: { useBundledDevTools: true, - useHttpUrl: true, + useHttpUrl: true }, - expectedChromeUrl: `https://chrome-devtools-frontend.appspot.com/serve_file/@${expectedDevToolsCommitSha}/inspector.html?ws=localhost:${expectedPort}`, + expectedChromeUrl: `https://chrome-devtools-frontend.appspot.com/serve_file/@${expectedDevToolsCommitSha}/inspector.html?ws=localhost:${expectedPort}` }, // When useBundledDevTools is false @@ -105,25 +105,25 @@ describe("androidDeviceDebugService", () => { scenarioName: "useBundledDevTools is false and useHttpUrl is not passed", debugOptions: { - useBundledDevTools: false, + useBundledDevTools: false }, - expectedChromeUrl: `devtools://devtools/remote/serve_file/@${expectedDevToolsCommitSha}/inspector.html?ws=localhost:${expectedPort}`, + expectedChromeUrl: `devtools://devtools/remote/serve_file/@${expectedDevToolsCommitSha}/inspector.html?ws=localhost:${expectedPort}` }, { scenarioName: "useBundledDevTools is false and useHttpUrl is false", debugOptions: { useBundledDevTools: false, - useHttpUrl: false, + useHttpUrl: false }, - expectedChromeUrl: `devtools://devtools/remote/serve_file/@${expectedDevToolsCommitSha}/inspector.html?ws=localhost:${expectedPort}`, + expectedChromeUrl: `devtools://devtools/remote/serve_file/@${expectedDevToolsCommitSha}/inspector.html?ws=localhost:${expectedPort}` }, { scenarioName: "useBundledDevTools is false and useHttpUrl is true", debugOptions: { useBundledDevTools: false, - useHttpUrl: true, + useHttpUrl: true }, - expectedChromeUrl: `https://chrome-devtools-frontend.appspot.com/serve_file/@${expectedDevToolsCommitSha}/inspector.html?ws=localhost:${expectedPort}`, + expectedChromeUrl: `https://chrome-devtools-frontend.appspot.com/serve_file/@${expectedDevToolsCommitSha}/inspector.html?ws=localhost:${expectedPort}` }, // When useBundledDevTools is not passed @@ -131,16 +131,16 @@ describe("androidDeviceDebugService", () => { scenarioName: "useBundledDevTools is not passed and useHttpUrl is false", debugOptions: { - useHttpUrl: false, + useHttpUrl: false }, - expectedChromeUrl: `devtools://devtools/bundled/inspector.html?ws=localhost:${expectedPort}`, + expectedChromeUrl: `devtools://devtools/bundled/inspector.html?ws=localhost:${expectedPort}` }, { scenarioName: "useBundledDevTools is not passed and useHttpUrl is true", debugOptions: { - useHttpUrl: true, + useHttpUrl: true }, - expectedChromeUrl: `https://chrome-devtools-frontend.appspot.com/serve_file/@${expectedDevToolsCommitSha}/inspector.html?ws=localhost:${expectedPort}`, + expectedChromeUrl: `https://chrome-devtools-frontend.appspot.com/serve_file/@${expectedDevToolsCommitSha}/inspector.html?ws=localhost:${expectedPort}` }, // devToolsCommit tests @@ -148,42 +148,43 @@ describe("androidDeviceDebugService", () => { scenarioName: "devToolsCommit defaults to ${expectedDevToolsCommitSha} when useBundledDevTools is set to false", debugOptions: { - useBundledDevTools: false, + useBundledDevTools: false }, - expectedChromeUrl: `devtools://devtools/remote/serve_file/@${expectedDevToolsCommitSha}/inspector.html?ws=localhost:${expectedPort}`, + expectedChromeUrl: `devtools://devtools/remote/serve_file/@${expectedDevToolsCommitSha}/inspector.html?ws=localhost:${expectedPort}` }, { scenarioName: "devToolsCommit is disregarded when useBundledDevTools is not passed", debugOptions: {}, - expectedChromeUrl: `devtools://devtools/bundled/inspector.html?ws=localhost:${expectedPort}`, + expectedChromeUrl: `devtools://devtools/bundled/inspector.html?ws=localhost:${expectedPort}` }, { scenarioName: "devToolsCommit is set to passed value when useBundledDevTools is set to false", debugOptions: { useBundledDevTools: false, - devToolsCommit: customDevToolsCommit, + devToolsCommit: customDevToolsCommit }, - expectedChromeUrl: `devtools://devtools/remote/serve_file/@${customDevToolsCommit}/inspector.html?ws=localhost:${expectedPort}`, + expectedChromeUrl: `devtools://devtools/remote/serve_file/@${customDevToolsCommit}/inspector.html?ws=localhost:${expectedPort}` }, { scenarioName: "devToolsCommit is set to passed value when useHttpUrl is set to true", debugOptions: { useHttpUrl: true, - devToolsCommit: customDevToolsCommit, + devToolsCommit: customDevToolsCommit }, - expectedChromeUrl: `https://chrome-devtools-frontend.appspot.com/serve_file/@${customDevToolsCommit}/inspector.html?ws=localhost:${expectedPort}`, - }, + expectedChromeUrl: `https://chrome-devtools-frontend.appspot.com/serve_file/@${customDevToolsCommit}/inspector.html?ws=localhost:${expectedPort}` + } ]; for (const testCase of chromUrlTestCases) { it(`returns correct url when ${testCase.scenarioName}`, () => { const testInjector = createTestInjector(); - const androidDeviceDebugService = testInjector.resolve< - AndroidDeviceDebugServiceInheritor - >(AndroidDeviceDebugServiceInheritor); + const androidDeviceDebugService = + testInjector.resolve( + AndroidDeviceDebugServiceInheritor + ); const actualChromeUrl = androidDeviceDebugService.getChromeDebugUrl( testCase.debugOptions, expectedPort diff --git a/test/services/android-plugin-build-service.ts b/test/services/android-plugin-build-service.ts index 8c67eebf3d..827b4c0116 100644 --- a/test/services/android-plugin-build-service.ts +++ b/test/services/android-plugin-build-service.ts @@ -3,7 +3,7 @@ import { assert } from "chai"; import { INCLUDE_GRADLE_NAME, AndroidBuildDefaults, - PLUGIN_BUILD_DATA_FILENAME, + PLUGIN_BUILD_DATA_FILENAME } from "../../lib/constants"; import { getShortPluginName } from "../../lib/common/helpers"; import * as FsLib from "../../lib/common/file-system"; @@ -13,7 +13,7 @@ import * as temp from "temp"; import { IFileSystem, ISpawnResult, - IStringDictionary, + IStringDictionary } from "../../lib/common/declarations"; import { IPluginBuildOptions } from "../../lib/definitions/android-plugin-migrator"; import { IInjector } from "../../lib/common/definitions/yok"; @@ -57,7 +57,7 @@ describe("androidPluginBuildService", () => { pluginName: pluginName, aarOutputDir: pluginFolder, tempPluginDirPath: tempFolder, - projectDir: options.addProjectDir ? pluginFolder : null, + projectDir: options.addProjectDir ? pluginFolder : null }; } @@ -85,7 +85,7 @@ describe("androidPluginBuildService", () => { fs.writeFile(aar, ""); spawnFromEventCalled = command.indexOf("gradlew") !== -1; return null; - }, + } }); testInjector.register("packageManager", setupNpm(options)); testInjector.register("projectData", stubs.ProjectDataStub); @@ -100,11 +100,11 @@ describe("androidPluginBuildService", () => { hasChangesInShasums: ( oldHashes: IStringDictionary, newHashes: IStringDictionary - ): boolean => !!options.hasChangesInShasums, + ): boolean => !!options.hasChangesInShasums }); testInjector.register("watchIgnoreListService", { - addFileToIgnoreList: () => ({}), + addFileToIgnoreList: () => ({}) }); fs = testInjector.resolve("fs"); @@ -133,15 +133,15 @@ describe("androidPluginBuildService", () => { name: packageName, gradle: { version: options.projectRuntimeGradleVersion, - android: options.projectRuntimeGradleAndroidVersion, - }, + android: options.projectRuntimeGradleAndroidVersion + } }; result.versions["4.1.2"] = { name: packageName, gradle: { version: options.latestRuntimeGradleVersion, - android: options.latestRuntimeGradleAndroidVersion, - }, + android: options.latestRuntimeGradleAndroidVersion + } }; return result; @@ -155,13 +155,13 @@ describe("androidPluginBuildService", () => { case "1.0.0": result = { version: options.projectRuntimeGradleVersion, - android: options.projectRuntimeGradleAndroidVersion, + android: options.projectRuntimeGradleAndroidVersion }; break; case "4.1.2": result = { version: options.latestRuntimeGradleVersion, - android: options.latestRuntimeGradleAndroidVersion, + android: options.latestRuntimeGradleAndroidVersion }; break; } @@ -169,12 +169,12 @@ describe("androidPluginBuildService", () => { if (config && config["dist-tags"]) { result = { - latest: "4.1.2", + latest: "4.1.2" }; } return result; - }, + } }; } @@ -258,7 +258,7 @@ dependencies { const config: IPluginBuildOptions = setup({ addManifest: true, addResFolder: true, - addAssetsFolder: true, + addAssetsFolder: true }); await androidBuildPluginService.buildAar(config); @@ -277,7 +277,7 @@ dependencies { it("builds aar when there are res and assets folders", async () => { const config: IPluginBuildOptions = setup({ addResFolder: true, - addAssetsFolder: true, + addAssetsFolder: true }); await androidBuildPluginService.buildAar(config); @@ -287,7 +287,7 @@ dependencies { it("builds aar when there is an android manifest", async () => { const config: IPluginBuildOptions = setup({ - addManifest: true, + addManifest: true }); await androidBuildPluginService.buildAar(config); @@ -299,7 +299,7 @@ dependencies { const config: IPluginBuildOptions = setup({ addManifest: true, addPreviousBuildInfo: true, - hasChangesInShasums: true, + hasChangesInShasums: true }); await androidBuildPluginService.buildAar(config); @@ -310,7 +310,7 @@ dependencies { it("does not build aar when plugin is already build and source files have not changed", async () => { const config: IPluginBuildOptions = setup({ addManifest: true, - addPreviousBuildInfo: true, + addPreviousBuildInfo: true }); await androidBuildPluginService.buildAar(config); @@ -324,7 +324,7 @@ dependencies { const config: IPluginBuildOptions = setup({ addManifest: true, latestRuntimeGradleVersion: expectedGradleVersion, - latestRuntimeGradleAndroidVersion: expectedAndroidVersion, + latestRuntimeGradleAndroidVersion: expectedAndroidVersion }); await androidBuildPluginService.buildAar(config); @@ -348,7 +348,7 @@ dependencies { latestRuntimeGradleAndroidVersion: expectedAndroidVersion, addProjectRuntime: true, projectRuntimeGradleVersion: null, - projectRuntimeGradleAndroidVersion: null, + projectRuntimeGradleAndroidVersion: null }); await androidBuildPluginService.buildAar(config); @@ -372,7 +372,7 @@ dependencies { latestRuntimeGradleAndroidVersion: "5.5.5", addProjectRuntime: true, projectRuntimeGradleVersion: expectedGradleVersion, - projectRuntimeGradleAndroidVersion: expectedAndroidVersion, + projectRuntimeGradleAndroidVersion: expectedAndroidVersion }); await androidBuildPluginService.buildAar(config); @@ -394,7 +394,7 @@ dependencies { latestRuntimeGradleAndroidVersion: null, addProjectRuntime: true, projectRuntimeGradleVersion: null, - projectRuntimeGradleAndroidVersion: null, + projectRuntimeGradleAndroidVersion: null }); await androidBuildPluginService.buildAar(config); @@ -415,12 +415,11 @@ dependencies { describe("migrateIncludeGradle", () => { it("if there is a legacy include.gradle file", async () => { const config: IPluginBuildOptions = setup({ - addLegacyIncludeGradle: true, + addLegacyIncludeGradle: true }); - const isMigrated = await androidBuildPluginService.migrateIncludeGradle( - config - ); + const isMigrated = + await androidBuildPluginService.migrateIncludeGradle(config); const includeGradleContent = fs.readText( path.join(pluginFolder, INCLUDE_GRADLE_NAME).toString() ); @@ -433,12 +432,11 @@ dependencies { it("if there is an already migrated include.gradle file", async () => { const config: IPluginBuildOptions = setup({ - addIncludeGradle: true, + addIncludeGradle: true }); - const isMigrated = await androidBuildPluginService.migrateIncludeGradle( - config - ); + const isMigrated = + await androidBuildPluginService.migrateIncludeGradle(config); assert.isFalse(isMigrated); }); diff --git a/test/services/android-project-service.ts b/test/services/android-project-service.ts index 1961548012..4b1dce53ff 100644 --- a/test/services/android-project-service.ts +++ b/test/services/android-project-service.ts @@ -11,13 +11,13 @@ import { IBuildConfig, IProjectData } from "../../lib/definitions/project"; import { IAndroidToolsInfo, IAndroidToolsInfoData, - IAndroidResourcesMigrationService, + IAndroidResourcesMigrationService } from "../../lib/declarations"; import { IInjector } from "../../lib/common/definitions/yok"; import { IDictionary, IFileSystem, - IProjectDir, + IProjectDir } from "../../lib/common/declarations"; const createTestInjector = (): IInjector => { @@ -36,31 +36,31 @@ const createTestInjector = (): IInjector => { testInjector.register("androidResourcesMigrationService", {}); testInjector.register("androidPluginBuildService", {}); testInjector.register("filesHashService", { - saveHashesForProject: () => ({}), + saveHashesForProject: () => ({}) }); testInjector.register("androidPluginBuildService", {}); testInjector.register("errors", stubs.ErrorsStub); testInjector.register("logger", stubs.LoggerStub); testInjector.register("options", { - hostProjectModuleName: "app", + hostProjectModuleName: "app" }); testInjector.register("projectData", stubs.ProjectDataStub); testInjector.register("androidToolsInfo", { getToolsInfo: () => { return { - androidHomeEnvVar: true, + androidHomeEnvVar: true }; }, validateInfo: () => { return true; - }, + } }); testInjector.register("gradleCommandService", GradleCommandService); testInjector.register("gradleBuildService", GradleBuildService); testInjector.register("gradleBuildArgsService", GradleBuildArgsService); testInjector.register("analyticsService", stubs.AnalyticsService); testInjector.register("staticConfig", { - TRACK_FEATURE_USAGE_SETTING_NAME: "TrackFeatureUsage", + TRACK_FEATURE_USAGE_SETTING_NAME: "TrackFeatureUsage" }); return testInjector; }; @@ -74,7 +74,7 @@ const getDefautlBuildConfig = (): IBuildConfig => { provision: null, teamId: "", projectDir: "location/location", - keyStorePath: "", + keyStorePath: "" }; }; @@ -107,7 +107,7 @@ describe("androidProjectService", () => { getPlatformDataStub.callsFake(() => { return { configurationFilePath: "", - getBuildOutputPath: () => "", + getBuildOutputPath: () => "" }; }); }); @@ -248,7 +248,7 @@ describe("androidProjectService", () => { config?: IProjectDir ): IAndroidToolsInfoData => { return { - compileSdkVersion, + compileSdkVersion }; }; }); @@ -278,8 +278,8 @@ describe("androidProjectService", () => { "android", "app", "src" - ), - }, + ) + } ]); }); @@ -290,8 +290,8 @@ describe("androidProjectService", () => { "values-v21", "values-v26", "values-v27", - "values-v28", - ], + "values-v28" + ] }; compileSdkVersion = 26; @@ -306,7 +306,7 @@ describe("androidProjectService", () => { "drawable-ldpi", "values", "values-v21", - "values-v29", + "values-v29" ], [`${pathToResDirInPlatforms}`]: [ "drawable-hdpi", @@ -314,8 +314,8 @@ describe("androidProjectService", () => { "drawable-mdpi", "values", "values-v21", - "values-v29", - ], + "values-v29" + ] }; await androidProjectService.prepareAppResources(projectData); @@ -324,7 +324,7 @@ describe("androidProjectService", () => { // This is not correct behavior and it should be fixed in a later point. assert.deepStrictEqual(deletedDirs, [ drawableHdpiPath, - drawableLdpiPath, + drawableLdpiPath ]); }); }); @@ -344,8 +344,8 @@ describe("androidProjectService", () => { assert.deepStrictEqual(copiedFiles, [ { sourceFileName: path.join(pathToAppResourcesAndroid, "*"), - destinationFileName: pathToResDirInPlatforms, - }, + destinationFileName: pathToResDirInPlatforms + } ]); }); @@ -356,8 +356,8 @@ describe("androidProjectService", () => { "values-v21", "values-v26", "values-v27", - "values-v28", - ], + "values-v28" + ] }; compileSdkVersion = 26; @@ -368,7 +368,7 @@ describe("androidProjectService", () => { assert.deepStrictEqual(deletedDirs, [ libsPath, valuesV27Path, - valuesV28Path, + valuesV28Path ]); }); @@ -379,7 +379,7 @@ describe("androidProjectService", () => { "drawable-ldpi", "values", "values-v21", - "values-v29", + "values-v29" ], [`${pathToResDirInPlatforms}`]: [ "drawable-hdpi", @@ -387,8 +387,8 @@ describe("androidProjectService", () => { "drawable-mdpi", "values", "values-v21", - "values-v29", - ], + "values-v29" + ] }; await androidProjectService.prepareAppResources(projectData); @@ -398,7 +398,7 @@ describe("androidProjectService", () => { assert.deepStrictEqual(deletedDirs, [ drawableHdpiPath, drawableLdpiPath, - libsPath, + libsPath ]); }); }); diff --git a/test/services/doctor-service.ts b/test/services/doctor-service.ts index 3c87443ff8..c285480232 100644 --- a/test/services/doctor-service.ts +++ b/test/services/doctor-service.ts @@ -9,7 +9,7 @@ import { IProjectDataService } from "../../lib/definitions/project"; import { IVersionsService } from "../../lib/declarations"; import { ICheckEnvironmentRequirementsInput, - ICheckEnvironmentRequirementsOutput, + ICheckEnvironmentRequirementsOutput } from "../../lib/definitions/platform"; import { IAnalyticsService, @@ -18,18 +18,18 @@ import { IFileSystem, ISettingsService, IStringDictionary, - IDoctorService, + IDoctorService } from "../../lib/common/declarations"; import { IInjector } from "../../lib/common/definitions/yok"; import { ICacheTimeoutOpts, IUseCacheOpts, - IJsonFileSettingsService, + IJsonFileSettingsService } from "../../lib/common/definitions/json-file-settings-service"; import { ITerminalSpinner, ITerminalSpinnerOptions, - ITerminalSpinnerService, + ITerminalSpinnerService } from "../../lib/definitions/terminal-spinner-service"; const nativescriptDoctor = require("@nativescript/doctor"); @@ -89,12 +89,12 @@ describe("doctorService", () => { { text: "", succeed: (): any => undefined, - fail: (): any => undefined, - }, + fail: (): any => undefined + } }); testInjector.register("versionsService", {}); testInjector.register("settingsService", { - getProfileDir: (): string => "", + getProfileDir: (): string => "" }); testInjector.register("jsonFileSettingsService", { getSettingValue: async ( @@ -105,12 +105,12 @@ describe("doctorService", () => { key: string, value: any, cacheOpts?: IUseCacheOpts - ): Promise => undefined, + ): Promise => undefined }); testInjector.register("platformEnvironmentRequirements", { checkEnvironmentRequirements: async ( input: ICheckEnvironmentRequirementsInput - ): Promise => {}, + ): Promise => {} }); return testInjector; @@ -125,103 +125,103 @@ describe("doctorService", () => { }[] = [ { filesContents: { - file1: 'const application = require("application");', + file1: 'const application = require("application");' }, expectedShortImports: [ - { file: "file1", line: 'const application = require("application")' }, - ], + { file: "file1", line: 'const application = require("application")' } + ] }, { filesContents: { - file1: 'const application = require("tns-core-modules/application");', + file1: 'const application = require("tns-core-modules/application");' }, - expectedShortImports: [], + expectedShortImports: [] }, { filesContents: { - file1: 'const Observable = require("data/observable").Observable;', + file1: 'const Observable = require("data/observable").Observable;' }, expectedShortImports: [ { file: "file1", - line: 'const Observable = require("data/observable").Observable', - }, - ], + line: 'const Observable = require("data/observable").Observable' + } + ] }, { filesContents: { file1: - 'const Observable = require("tns-core-modules/data/observable").Observable;', + 'const Observable = require("tns-core-modules/data/observable").Observable;' }, - expectedShortImports: [], + expectedShortImports: [] }, { filesContents: { - file1: 'import * as application from "application";', + file1: 'import * as application from "application";' }, expectedShortImports: [ - { file: "file1", line: 'import * as application from "application"' }, - ], + { file: "file1", line: 'import * as application from "application"' } + ] }, { filesContents: { - file1: 'import * as application from "tns-core-modules/application";', + file1: 'import * as application from "tns-core-modules/application";' }, - expectedShortImports: [], + expectedShortImports: [] }, { filesContents: { - file1: 'import { run } from "application";', + file1: 'import { run } from "application";' }, expectedShortImports: [ - { file: "file1", line: 'import { run } from "application"' }, - ], + { file: "file1", line: 'import { run } from "application"' } + ] }, { filesContents: { - file1: 'import { run } from "tns-core-modules/application";', + file1: 'import { run } from "tns-core-modules/application";' }, - expectedShortImports: [], + expectedShortImports: [] }, { // Using single quotes filesContents: { - file1: "import { run } from 'application';", + file1: "import { run } from 'application';" }, expectedShortImports: [ - { file: "file1", line: "import { run } from 'application'" }, - ], + { file: "file1", line: "import { run } from 'application'" } + ] }, { // Using single quotes filesContents: { - file1: "import { run } from 'tns-core-modules/application';", + file1: "import { run } from 'tns-core-modules/application';" }, - expectedShortImports: [], + expectedShortImports: [] }, { filesContents: { file1: `const application = require("application"); const Observable = require("data/observable").Observable; -`, +` }, expectedShortImports: [ { file: "file1", line: 'const application = require("application")' }, { file: "file1", - line: 'const Observable = require("data/observable").Observable', - }, - ], + line: 'const Observable = require("data/observable").Observable' + } + ] }, { filesContents: { file1: `const application = require("application"); const Observable = require("tns-core-modules/data/observable").Observable; -`, +` }, expectedShortImports: [ - { file: "file1", line: 'const application = require("application")' }, - ], + { file: "file1", line: 'const application = require("application")' } + ] }, { filesContents: { @@ -229,15 +229,15 @@ const Observable = require("tns-core-modules/data/observable").Observable; const Observable = require("tns-core-modules/data/observable").Observable; `, file2: `const application = require("tns-core-modules/application"); -const Observable = require("data/observable").Observable;`, +const Observable = require("data/observable").Observable;` }, expectedShortImports: [ { file: "file1", line: 'const application = require("application")' }, { file: "file2", - line: 'const Observable = require("data/observable").Observable', - }, - ], + line: 'const Observable = require("data/observable").Observable' + } + ] }, { filesContents: { @@ -246,16 +246,16 @@ const Observable = require("data/observable").Observable;`, const Observable = require("tns-core-modules/data/observable").Observable; `, file2: `const application = require("some-name-tns-core-modules-widgets/application"); -const Observable = require("tns-core-modules-widgets/data/observable").Observable;`, +const Observable = require("tns-core-modules-widgets/data/observable").Observable;` }, - expectedShortImports: [], + expectedShortImports: [] }, { filesContents: { // several statements on one line - file1: 'const _ = require("lodash");console.log("application");', + file1: 'const _ = require("lodash");console.log("application");' }, - expectedShortImports: [], + expectedShortImports: [] }, { filesContents: { @@ -263,16 +263,16 @@ const Observable = require("tns-core-modules-widgets/data/observable").Observabl file1: 'const _ = require("lodash");const application = require("application");console.log("application");', file2: - 'const _ = require("lodash");const application = require("application");const Observable = require("data/observable").Observable;', + 'const _ = require("lodash");const application = require("application");const Observable = require("data/observable").Observable;' }, expectedShortImports: [ { file: "file1", line: 'const application = require("application")' }, { file: "file2", line: 'const application = require("application")' }, { file: "file2", - line: 'const Observable = require("data/observable").Observable', - }, - ], + line: 'const Observable = require("data/observable").Observable' + } + ] }, { filesContents: { @@ -280,85 +280,83 @@ const Observable = require("tns-core-modules-widgets/data/observable").Observabl file1: 'const _ = require("lodash");const application = require("tns-core-modules/application");console.log("application");', file2: - 'const _ = require("lodash");const application = require("tns-core-modules/application");const Observable = require("tns-core-modules/data/observable").Observable;', + 'const _ = require("lodash");const application = require("tns-core-modules/application");const Observable = require("tns-core-modules/data/observable").Observable;' }, - expectedShortImports: [], + expectedShortImports: [] }, { filesContents: { // minified code that has both require and some of the tns-core-modules subdirs (i.e. text) - file1: `o.cache&&(r+="&cache="+u(o.cache)),t=["","","",'','