From 90b7570156d5ff83ee50c133651217a7bab1c648 Mon Sep 17 00:00:00 2001 From: supreeth javalli Date: Tue, 9 Dec 2025 04:45:26 -0600 Subject: [PATCH] Add OCA provider --- cli/src/constants/providers/labels.ts | 1 + cli/src/constants/providers/models.ts | 3 + cli/src/constants/providers/settings.ts | 1 + cli/src/constants/providers/validation.ts | 1 + package.json | 3 +- packages/types/src/model.ts | 1 + packages/types/src/provider-settings.ts | 7 + pnpm-lock.yaml | 1075 +++++------------ src/api/index.ts | 3 + src/api/providers/fetchers/modelCache.ts | 5 + src/api/providers/fetchers/oca.ts | 123 ++ src/api/providers/index.ts | 1 + src/api/providers/oca-handler.ts | 144 +++ src/api/providers/oca/OcaTokenManager.ts | 318 +++++ src/api/providers/oca/utils/constants.ts | 14 + .../providers/oca/utils/getOcaClientInfo.ts | 37 + src/core/webview/webviewMessageHandler.ts | 66 + src/package.json | 1 + src/shared/ExtensionMessage.ts | 6 + src/shared/WebviewMessage.ts | 8 + src/shared/api.ts | 1 + src/shared/checkExistApiConfig.ts | 4 +- webview-ui/package.json | 1 + .../kilocode/chat/ModelSelector.tsx | 116 +- .../kilocode/common/OcaAcknowledgeModal.tsx | 73 ++ .../__tests__/getModelsByProvider.spec.ts | 1 + .../kilocode/hooks/useProviderModels.ts | 14 +- .../src/components/settings/ApiOptions.tsx | 11 + .../src/components/settings/ModelPicker.tsx | 1 + .../src/components/settings/constants.ts | 1 + .../src/components/settings/providers/Oca.tsx | 311 +++++ .../components/settings/providers/index.ts | 1 + .../components/ui/hooks/useSelectedModel.ts | 7 +- webview-ui/src/services/OCAModelService.ts | 65 + webview-ui/src/services/ocaMessages.ts | 34 + webview-ui/src/services/ocaOutgoing.ts | 26 + .../src/utils/__tests__/validate.test.ts | 1 + webview-ui/src/utils/validate.ts | 10 + 38 files changed, 1719 insertions(+), 777 deletions(-) create mode 100644 src/api/providers/fetchers/oca.ts create mode 100644 src/api/providers/oca-handler.ts create mode 100644 src/api/providers/oca/OcaTokenManager.ts create mode 100644 src/api/providers/oca/utils/constants.ts create mode 100644 src/api/providers/oca/utils/getOcaClientInfo.ts create mode 100644 webview-ui/src/components/kilocode/common/OcaAcknowledgeModal.tsx create mode 100644 webview-ui/src/components/settings/providers/Oca.tsx create mode 100644 webview-ui/src/services/OCAModelService.ts create mode 100644 webview-ui/src/services/ocaMessages.ts create mode 100644 webview-ui/src/services/ocaOutgoing.ts diff --git a/cli/src/constants/providers/labels.ts b/cli/src/constants/providers/labels.ts index 27e0b73e245..6d4f1bf5b3b 100644 --- a/cli/src/constants/providers/labels.ts +++ b/cli/src/constants/providers/labels.ts @@ -46,6 +46,7 @@ export const PROVIDER_LABELS: Record = { "human-relay": "Human Relay", "fake-ai": "Fake AI", ovhcloud: "OVHcloud AI Endpoints", + oca: "Oracle Code Assist", inception: "Inception", synthetic: "Synthetic", "sap-ai-core": "SAP AI Core", diff --git a/cli/src/constants/providers/models.ts b/cli/src/constants/providers/models.ts index ba338675f4b..4258cc69027 100644 --- a/cli/src/constants/providers/models.ts +++ b/cli/src/constants/providers/models.ts @@ -66,6 +66,7 @@ export type RouterName = | "deepinfra" | "vercel-ai-gateway" | "ovhcloud" + | "oca" /** * ModelInfo interface - mirrors the one from packages/types/src/model.ts @@ -132,6 +133,7 @@ export const PROVIDER_TO_ROUTER_NAME: Record = "io-intelligence": "io-intelligence", "vercel-ai-gateway": "vercel-ai-gateway", ovhcloud: "ovhcloud", + oca: "oca", // Providers without dynamic model support anthropic: null, bedrock: null, @@ -184,6 +186,7 @@ export const PROVIDER_MODEL_FIELD: Record = { "io-intelligence": "ioIntelligenceModelId", "vercel-ai-gateway": "vercelAiGatewayModelId", ovhcloud: "ovhCloudAiEndpointsModelId", + oca: "apiModelId", // Providers without dynamic model support anthropic: null, bedrock: null, diff --git a/cli/src/constants/providers/settings.ts b/cli/src/constants/providers/settings.ts index f75af199fd1..2e0e55d0608 100644 --- a/cli/src/constants/providers/settings.ts +++ b/cli/src/constants/providers/settings.ts @@ -1086,6 +1086,7 @@ export const PROVIDER_DEFAULT_MODELS: Record = { unbound: "gpt-4o", requesty: "gpt-4o", roo: "gpt-4o", + oca: "", "vercel-ai-gateway": "gpt-4o", "virtual-quota-fallback": "gpt-4o", "human-relay": "human", diff --git a/cli/src/constants/providers/validation.ts b/cli/src/constants/providers/validation.ts index 27926585f08..2a6fb53079d 100644 --- a/cli/src/constants/providers/validation.ts +++ b/cli/src/constants/providers/validation.ts @@ -43,6 +43,7 @@ export const PROVIDER_REQUIRED_FIELDS: Record = { "fake-ai": ["apiModelId"], ovhcloud: ["ovhCloudAiEndpointsApiKey", "ovhCloudAiEndpointsModelId"], inception: ["inceptionLabsApiKey", "inceptionLabsModelId"], + oca: [], synthetic: ["syntheticApiKey", "apiModelId"], "sap-ai-core": ["sapAiCoreServiceKey", "sapAiCoreResourceGroup", "sapAiCoreDeploymentId", "sapAiCoreModelId"], // Special cases handled separately in handleSpecialValidations diff --git a/package.json b/package.json index 0d4a0ae0c59..a5a01c57311 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,8 @@ "brace-expansion": "^2.0.2", "form-data": ">=4.0.4", "bluebird": ">=3.7.2", - "glob": ">=11.1.0" + "glob": ">=11.1.0", + "fsevents": "^2.3.3" } } } diff --git a/packages/types/src/model.ts b/packages/types/src/model.ts index e4d4ba87c0c..08e83ae6c0b 100644 --- a/packages/types/src/model.ts +++ b/packages/types/src/model.ts @@ -99,6 +99,7 @@ export const modelInfoSchema = z.object({ cacheWritesPrice: z.number().optional(), cacheReadsPrice: z.number().optional(), description: z.string().optional(), + banner: z.string().optional(), // Default effort value for models that support reasoning effort reasoningEffort: reasoningEffortExtendedSchema.optional(), minTokensPerCachePoint: z.number().optional(), diff --git a/packages/types/src/provider-settings.ts b/packages/types/src/provider-settings.ts index 489acbd45d8..5d25a63e57c 100644 --- a/packages/types/src/provider-settings.ts +++ b/packages/types/src/provider-settings.ts @@ -61,6 +61,7 @@ export const dynamicProviders = [ "requesty", "unbound", "glama", + "oca", "roo", "chutes", "nano-gpt", //kilocode_change @@ -352,6 +353,8 @@ const openAiNativeSchema = apiModelIdProviderModelSchema.extend({ openAiNativeServiceTier: serviceTierSchema.optional(), }) +const ocaSchema = baseProviderSettingsSchema.extend({}) + const mistralSchema = apiModelIdProviderModelSchema.extend({ mistralApiKey: z.string().optional(), mistralCodestralUrl: z.string().optional(), @@ -567,6 +570,7 @@ export const providerSettingsSchemaDiscriminated = z.discriminatedUnion("apiProv humanRelaySchema.merge(z.object({ apiProvider: z.literal("human-relay") })), fakeAiSchema.merge(z.object({ apiProvider: z.literal("fake-ai") })), xaiSchema.merge(z.object({ apiProvider: z.literal("xai") })), + ocaSchema.merge(z.object({ apiProvider: z.literal("oca") })), // kilocode_change start geminiCliSchema.merge(z.object({ apiProvider: z.literal("gemini-cli") })), kilocodeSchema.merge(z.object({ apiProvider: z.literal("kilocode") })), @@ -626,6 +630,7 @@ export const providerSettingsSchema = z.object({ ...humanRelaySchema.shape, ...fakeAiSchema.shape, ...xaiSchema.shape, + ...ocaSchema.shape, ...groqSchema.shape, ...basetenSchema.shape, ...huggingFaceSchema.shape, @@ -739,6 +744,7 @@ export const modelIdKeysByProvider: Record = { fireworks: "apiModelId", featherless: "apiModelId", "io-intelligence": "ioIntelligenceModelId", + oca: "apiModelId", roo: "apiModelId", "vercel-ai-gateway": "vercelAiGatewayModelId", "virtual-quota-fallback": "apiModelId", @@ -852,6 +858,7 @@ export const MODELS_BY_PROVIDER: Record< models: Object.keys(openAiNativeModels), }, "qwen-code": { id: "qwen-code", label: "Qwen Code", models: Object.keys(qwenCodeModels) }, + oca: { id: "oca", label: "Oracle Code Assist", models: [] }, roo: { id: "roo", label: "Roo Code Cloud", models: [] }, sambanova: { id: "sambanova", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a7cef7b7fca..9e356b6131f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,6 +12,7 @@ overrides: form-data: '>=4.0.4' bluebird: '>=3.7.2' glob: '>=11.1.0' + fsevents: ^2.3.3 importers: @@ -1820,6 +1821,9 @@ importers: openai: specifier: ^5.12.2 version: 5.12.2(ws@8.18.3)(zod@3.25.61) + openid-client: + specifier: ^6.8.1 + version: 6.8.1 os-name: specifier: ^6.0.0 version: 6.1.0 @@ -2157,6 +2161,9 @@ importers: diff: specifier: ^5.2.0 version: 5.2.0 + dompurify: + specifier: ^3.2.6 + version: 3.2.6 fast-deep-equal: specifier: ^3.1.3 version: 3.1.3 @@ -3568,7 +3575,7 @@ packages: storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 || ^9.2.0-0 || ^10.0.0-0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 '@colors/colors@1.5.0': - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@colors/colors/-/colors-1.5.0.tgz} engines: {node: '>=0.1.90'} '@colors/colors@1.6.0': @@ -4048,7 +4055,7 @@ packages: react-dom: ^18.0.0 || ^19.0.0 '@docusaurus/react-loadable@6.0.0': - resolution: {integrity: sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==} + resolution: {integrity: sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz} peerDependencies: react: '*' @@ -4161,160 +4168,108 @@ packages: deprecated: 'Merged into tsx: https://tsx.is' '@esbuild/aix-ppc64@0.25.9': - resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} + resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] '@esbuild/android-arm64@0.25.9': - resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} + resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [arm64] - os: [android] '@esbuild/android-arm@0.25.9': - resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} + resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/android-arm/-/android-arm-0.25.9.tgz} engines: {node: '>=18'} - cpu: [arm] - os: [android] '@esbuild/android-x64@0.25.9': - resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} + resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/android-x64/-/android-x64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [x64] - os: [android] '@esbuild/darwin-arm64@0.25.9': - resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} + resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] '@esbuild/darwin-x64@0.25.9': - resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} + resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [x64] - os: [darwin] '@esbuild/freebsd-arm64@0.25.9': - resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} + resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] '@esbuild/freebsd-x64@0.25.9': - resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} + resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] '@esbuild/linux-arm64@0.25.9': - resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} + resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [arm64] - os: [linux] '@esbuild/linux-arm@0.25.9': - resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} + resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz} engines: {node: '>=18'} - cpu: [arm] - os: [linux] '@esbuild/linux-ia32@0.25.9': - resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} + resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz} engines: {node: '>=18'} - cpu: [ia32] - os: [linux] '@esbuild/linux-loong64@0.25.9': - resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} + resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [loong64] - os: [linux] '@esbuild/linux-mips64el@0.25.9': - resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} + resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz} engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] '@esbuild/linux-ppc64@0.25.9': - resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} + resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] '@esbuild/linux-riscv64@0.25.9': - resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} + resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] '@esbuild/linux-s390x@0.25.9': - resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} + resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz} engines: {node: '>=18'} - cpu: [s390x] - os: [linux] '@esbuild/linux-x64@0.25.9': - resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} + resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [x64] - os: [linux] '@esbuild/netbsd-arm64@0.25.9': - resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} + resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] '@esbuild/netbsd-x64@0.25.9': - resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} + resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] '@esbuild/openbsd-arm64@0.25.9': - resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} + resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] '@esbuild/openbsd-x64@0.25.9': - resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} + resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] '@esbuild/openharmony-arm64@0.25.9': - resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} + resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] '@esbuild/sunos-x64@0.25.9': - resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} + resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [x64] - os: [sunos] '@esbuild/win32-arm64@0.25.9': - resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} + resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [arm64] - os: [win32] '@esbuild/win32-ia32@0.25.9': - resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} + resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz} engines: {node: '>=18'} - cpu: [ia32] - os: [win32] '@esbuild/win32-x64@0.25.9': - resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} + resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz} engines: {node: '>=18'} - cpu: [x64] - os: [win32] '@eslint-community/eslint-utils@4.7.0': resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} @@ -4374,7 +4329,7 @@ packages: resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} '@gar/promisify@1.1.3': - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@gar/promisify/-/promisify-1.1.3.tgz} '@google/genai@1.29.1': resolution: {integrity: sha512-Buywpq0A6xf9cOdhiWCi5KUiDBbZkjCH5xbl+xxNQRItoYQgd31p0OKyn5cUnT0YNzC/pAmszqXoOc7kncqfFQ==} @@ -4437,109 +4392,72 @@ packages: resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} '@img/sharp-darwin-arm64@0.33.5': - resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] '@img/sharp-darwin-x64@0.33.5': - resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] '@img/sharp-libvips-darwin-arm64@1.0.4': - resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} - cpu: [arm64] - os: [darwin] + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz} '@img/sharp-libvips-darwin-x64@1.0.4': - resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} - cpu: [x64] - os: [darwin] + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz} '@img/sharp-libvips-linux-arm64@1.0.4': - resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} - cpu: [arm64] - os: [linux] + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz} '@img/sharp-libvips-linux-arm@1.0.5': - resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} - cpu: [arm] - os: [linux] + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz} '@img/sharp-libvips-linux-s390x@1.0.4': - resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} - cpu: [s390x] - os: [linux] + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz} '@img/sharp-libvips-linux-x64@1.0.4': - resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} - cpu: [x64] - os: [linux] + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz} '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} - cpu: [arm64] - os: [linux] + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz} '@img/sharp-libvips-linuxmusl-x64@1.0.4': - resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} - cpu: [x64] - os: [linux] + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz} '@img/sharp-linux-arm64@0.33.5': - resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] '@img/sharp-linux-arm@0.33.5': - resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] '@img/sharp-linux-s390x@0.33.5': - resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] '@img/sharp-linux-x64@0.33.5': - resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] '@img/sharp-linuxmusl-arm64@0.33.5': - resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] '@img/sharp-linuxmusl-x64@0.33.5': - resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] '@img/sharp-wasm32@0.33.5': - resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] '@img/sharp-win32-ia32@0.33.5': - resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] '@img/sharp-win32-x64@0.33.5': - resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] '@inquirer/ansi@1.0.2': resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} @@ -4898,52 +4816,36 @@ packages: resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} '@lancedb/lancedb-darwin-arm64@0.21.3': - resolution: {integrity: sha512-8cq0t64iC2qk3MO2bRLsNPWgwli71KkJJNR47nNdDLoXHWhhkrVZbrEE1BiEkMWAO2sSp98zIyUTDdFvKvjrug==} + resolution: {integrity: sha512-8cq0t64iC2qk3MO2bRLsNPWgwli71KkJJNR47nNdDLoXHWhhkrVZbrEE1BiEkMWAO2sSp98zIyUTDdFvKvjrug==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lancedb/lancedb-darwin-arm64/-/lancedb-darwin-arm64-0.21.3.tgz} engines: {node: '>= 18'} - cpu: [arm64] - os: [darwin] '@lancedb/lancedb-darwin-x64@0.21.3': - resolution: {integrity: sha512-Er4PMooeMTA+8LvH0H/x6Fk7rggCuYZy8UsJ+v4i6JqEFBUF+t5fkMXRk58BC5Xw7Dd0LEs2ZTJry9N7qSr1Ww==} + resolution: {integrity: sha512-Er4PMooeMTA+8LvH0H/x6Fk7rggCuYZy8UsJ+v4i6JqEFBUF+t5fkMXRk58BC5Xw7Dd0LEs2ZTJry9N7qSr1Ww==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lancedb/lancedb-darwin-x64/-/lancedb-darwin-x64-0.21.3.tgz} engines: {node: '>= 18'} - cpu: [x64] - os: [darwin] '@lancedb/lancedb-linux-arm64-gnu@0.21.3': - resolution: {integrity: sha512-zeKzfXZBjXW8gsIYVw48aVU4dCQ7ZKuwF0uJHvW+I0+X15rnS21XYgXiOHKSmv6aiFYm0aIowJCLMKBIuwV0IA==} + resolution: {integrity: sha512-zeKzfXZBjXW8gsIYVw48aVU4dCQ7ZKuwF0uJHvW+I0+X15rnS21XYgXiOHKSmv6aiFYm0aIowJCLMKBIuwV0IA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lancedb/lancedb-linux-arm64-gnu/-/lancedb-linux-arm64-gnu-0.21.3.tgz} engines: {node: '>= 18'} - cpu: [arm64] - os: [linux] '@lancedb/lancedb-linux-arm64-musl@0.21.3': - resolution: {integrity: sha512-apE9VIW/AoAKfBFjhiS3bn2Sl7asDKasDzsAt0Ms7rNKYaADfdr2nF8Bi5fOFsajxEQRJrXHCss1eHHxI02zZw==} + resolution: {integrity: sha512-apE9VIW/AoAKfBFjhiS3bn2Sl7asDKasDzsAt0Ms7rNKYaADfdr2nF8Bi5fOFsajxEQRJrXHCss1eHHxI02zZw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lancedb/lancedb-linux-arm64-musl/-/lancedb-linux-arm64-musl-0.21.3.tgz} engines: {node: '>= 18'} - cpu: [arm64] - os: [linux] '@lancedb/lancedb-linux-x64-gnu@0.21.3': - resolution: {integrity: sha512-ybZTqtYq8tdQLfWFbmUO6EwMz+sFu5zmO5J/H31NpxrtvLTrwG2I6zkq2knJrVI4ZqTcoVb/Gi2bq0pll7PJTg==} + resolution: {integrity: sha512-ybZTqtYq8tdQLfWFbmUO6EwMz+sFu5zmO5J/H31NpxrtvLTrwG2I6zkq2knJrVI4ZqTcoVb/Gi2bq0pll7PJTg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lancedb/lancedb-linux-x64-gnu/-/lancedb-linux-x64-gnu-0.21.3.tgz} engines: {node: '>= 18'} - cpu: [x64] - os: [linux] '@lancedb/lancedb-linux-x64-musl@0.21.3': - resolution: {integrity: sha512-6GGNMUZ3y7qm8SNO9VJw/G8JUCkekgJG4iiiKsEbpiAxtbMLgB1x/KrqdLklv5fgHfT4Wr9fJB+TqMpG0c8kmg==} + resolution: {integrity: sha512-6GGNMUZ3y7qm8SNO9VJw/G8JUCkekgJG4iiiKsEbpiAxtbMLgB1x/KrqdLklv5fgHfT4Wr9fJB+TqMpG0c8kmg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lancedb/lancedb-linux-x64-musl/-/lancedb-linux-x64-musl-0.21.3.tgz} engines: {node: '>= 18'} - cpu: [x64] - os: [linux] '@lancedb/lancedb-win32-arm64-msvc@0.21.3': - resolution: {integrity: sha512-dEeiIEnoIoLxx81qbzrhjiGJwg4sEE/3o4kKUm4jGw0B5d7GRj624fVQD3p7/C35Bt23yzEKkJ1mSPEjLRowyg==} + resolution: {integrity: sha512-dEeiIEnoIoLxx81qbzrhjiGJwg4sEE/3o4kKUm4jGw0B5d7GRj624fVQD3p7/C35Bt23yzEKkJ1mSPEjLRowyg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lancedb/lancedb-win32-arm64-msvc/-/lancedb-win32-arm64-msvc-0.21.3.tgz} engines: {node: '>= 18'} - cpu: [arm64] - os: [win32] '@lancedb/lancedb-win32-x64-msvc@0.21.3': - resolution: {integrity: sha512-V4rieshQ0VQs+T7X8xBdCL1SDjrU111ahZFPiXs24gfegGMrKi5wLt89aY0B7Zn/QVJWZiHKz8HkKYWNeCoEAw==} + resolution: {integrity: sha512-V4rieshQ0VQs+T7X8xBdCL1SDjrU111ahZFPiXs24gfegGMrKi5wLt89aY0B7Zn/QVJWZiHKz8HkKYWNeCoEAw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lancedb/lancedb-win32-x64-msvc/-/lancedb-win32-x64-msvc-0.21.3.tgz} engines: {node: '>= 18'} - cpu: [x64] - os: [win32] '@lancedb/lancedb@0.21.3': resolution: {integrity: sha512-hfzp498BfcCJ730fV1YGGoXVxRgE+W1n0D0KwanKlbt8bBPSQ6E6Tf8mPXc8rKdAXIRR3o5mTzMG3z3Fda+m3Q==} @@ -4956,65 +4858,47 @@ packages: resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} '@libsql/client@0.15.8': - resolution: {integrity: sha512-TskygwF+ToZeWhPPT0WennyGrP3tmkKraaKopT2YwUjqD6DWDRm6SG5iy0VqnaO+HC9FNBCDX0oQPODU3gqqPQ==} + resolution: {integrity: sha512-TskygwF+ToZeWhPPT0WennyGrP3tmkKraaKopT2YwUjqD6DWDRm6SG5iy0VqnaO+HC9FNBCDX0oQPODU3gqqPQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/client/-/client-0.15.8.tgz} '@libsql/core@0.15.15': - resolution: {integrity: sha512-C88Z6UKl+OyuKKPwz224riz02ih/zHYI3Ho/LAcVOgjsunIRZoBw7fjRfaH9oPMmSNeQfhGklSG2il1URoOIsA==} + resolution: {integrity: sha512-C88Z6UKl+OyuKKPwz224riz02ih/zHYI3Ho/LAcVOgjsunIRZoBw7fjRfaH9oPMmSNeQfhGklSG2il1URoOIsA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/core/-/core-0.15.15.tgz} '@libsql/darwin-arm64@0.5.22': - resolution: {integrity: sha512-4B8ZlX3nIDPndfct7GNe0nI3Yw6ibocEicWdC4fvQbSs/jdq/RC2oCsoJxJ4NzXkvktX70C1J4FcmmoBy069UA==} - cpu: [arm64] - os: [darwin] + resolution: {integrity: sha512-4B8ZlX3nIDPndfct7GNe0nI3Yw6ibocEicWdC4fvQbSs/jdq/RC2oCsoJxJ4NzXkvktX70C1J4FcmmoBy069UA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/darwin-arm64/-/darwin-arm64-0.5.22.tgz} '@libsql/darwin-x64@0.5.22': - resolution: {integrity: sha512-ny2HYWt6lFSIdNFzUFIJ04uiW6finXfMNJ7wypkAD8Pqdm6nAByO+Fdqu8t7sD0sqJGeUCiOg480icjyQ2/8VA==} - cpu: [x64] - os: [darwin] + resolution: {integrity: sha512-ny2HYWt6lFSIdNFzUFIJ04uiW6finXfMNJ7wypkAD8Pqdm6nAByO+Fdqu8t7sD0sqJGeUCiOg480icjyQ2/8VA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/darwin-x64/-/darwin-x64-0.5.22.tgz} '@libsql/hrana-client@0.7.0': - resolution: {integrity: sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw==} + resolution: {integrity: sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/hrana-client/-/hrana-client-0.7.0.tgz} '@libsql/isomorphic-fetch@0.3.1': - resolution: {integrity: sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw==} + resolution: {integrity: sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/isomorphic-fetch/-/isomorphic-fetch-0.3.1.tgz} engines: {node: '>=18.0.0'} '@libsql/isomorphic-ws@0.1.5': - resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==} + resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/isomorphic-ws/-/isomorphic-ws-0.1.5.tgz} '@libsql/linux-arm-gnueabihf@0.5.22': - resolution: {integrity: sha512-3Uo3SoDPJe/zBnyZKosziRGtszXaEtv57raWrZIahtQDsjxBVjuzYQinCm9LRCJCUT5t2r5Z5nLDPJi2CwZVoA==} - cpu: [arm] - os: [linux] + resolution: {integrity: sha512-3Uo3SoDPJe/zBnyZKosziRGtszXaEtv57raWrZIahtQDsjxBVjuzYQinCm9LRCJCUT5t2r5Z5nLDPJi2CwZVoA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/linux-arm-gnueabihf/-/linux-arm-gnueabihf-0.5.22.tgz} '@libsql/linux-arm-musleabihf@0.5.22': - resolution: {integrity: sha512-LCsXh07jvSojTNJptT9CowOzwITznD+YFGGW+1XxUr7fS+7/ydUrpDfsMX7UqTqjm7xG17eq86VkWJgHJfvpNg==} - cpu: [arm] - os: [linux] + resolution: {integrity: sha512-LCsXh07jvSojTNJptT9CowOzwITznD+YFGGW+1XxUr7fS+7/ydUrpDfsMX7UqTqjm7xG17eq86VkWJgHJfvpNg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/linux-arm-musleabihf/-/linux-arm-musleabihf-0.5.22.tgz} '@libsql/linux-arm64-gnu@0.5.22': - resolution: {integrity: sha512-KSdnOMy88c9mpOFKUEzPskSaF3VLflfSUCBwas/pn1/sV3pEhtMF6H8VUCd2rsedwoukeeCSEONqX7LLnQwRMA==} - cpu: [arm64] - os: [linux] + resolution: {integrity: sha512-KSdnOMy88c9mpOFKUEzPskSaF3VLflfSUCBwas/pn1/sV3pEhtMF6H8VUCd2rsedwoukeeCSEONqX7LLnQwRMA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/linux-arm64-gnu/-/linux-arm64-gnu-0.5.22.tgz} '@libsql/linux-arm64-musl@0.5.22': - resolution: {integrity: sha512-mCHSMAsDTLK5YH//lcV3eFEgiR23Ym0U9oEvgZA0667gqRZg/2px+7LshDvErEKv2XZ8ixzw3p1IrBzLQHGSsw==} - cpu: [arm64] - os: [linux] + resolution: {integrity: sha512-mCHSMAsDTLK5YH//lcV3eFEgiR23Ym0U9oEvgZA0667gqRZg/2px+7LshDvErEKv2XZ8ixzw3p1IrBzLQHGSsw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/linux-arm64-musl/-/linux-arm64-musl-0.5.22.tgz} '@libsql/linux-x64-gnu@0.5.22': - resolution: {integrity: sha512-kNBHaIkSg78Y4BqAdgjcR2mBilZXs4HYkAmi58J+4GRwDQZh5fIUWbnQvB9f95DkWUIGVeenqLRFY2pcTmlsew==} - cpu: [x64] - os: [linux] + resolution: {integrity: sha512-kNBHaIkSg78Y4BqAdgjcR2mBilZXs4HYkAmi58J+4GRwDQZh5fIUWbnQvB9f95DkWUIGVeenqLRFY2pcTmlsew==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/linux-x64-gnu/-/linux-x64-gnu-0.5.22.tgz} '@libsql/linux-x64-musl@0.5.22': - resolution: {integrity: sha512-UZ4Xdxm4pu3pQXjvfJiyCzZop/9j/eA2JjmhMaAhe3EVLH2g11Fy4fwyUp9sT1QJYR1kpc2JLuybPM0kuXv/Tg==} - cpu: [x64] - os: [linux] + resolution: {integrity: sha512-UZ4Xdxm4pu3pQXjvfJiyCzZop/9j/eA2JjmhMaAhe3EVLH2g11Fy4fwyUp9sT1QJYR1kpc2JLuybPM0kuXv/Tg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/linux-x64-musl/-/linux-x64-musl-0.5.22.tgz} '@libsql/win32-x64-msvc@0.5.22': - resolution: {integrity: sha512-Fj0j8RnBpo43tVZUVoNK6BV/9AtDUM5S7DF3LB4qTYg1LMSZqi3yeCneUTLJD6XomQJlZzbI4mst89yspVSAnA==} - cpu: [x64] - os: [win32] + resolution: {integrity: sha512-Fj0j8RnBpo43tVZUVoNK6BV/9AtDUM5S7DF3LB4qTYg1LMSZqi3yeCneUTLJD6XomQJlZzbI4mst89yspVSAnA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@libsql/win32-x64-msvc/-/win32-x64-msvc-0.5.22.tgz} '@lmstudio/lms-isomorphic@0.4.5': resolution: {integrity: sha512-Or9KS1Iz3LC7D7WMe4zbqAqKOlDsVcrvMoQFBhmydzzxOg+eYBM5gtfgMMjcwjM0BuUVPhYOjTWEyfXpqfVJzg==} @@ -5023,34 +4907,22 @@ packages: resolution: {integrity: sha512-Eoolmi1cSuGXmLYwtn6pD9eOwjMTb+bQ4iv+i/EYz/hCc+HtbfJamoKfyyw4FogRc03RHsXHe1X18voR40D+2g==} '@lydell/node-pty-darwin-arm64@1.1.0': - resolution: {integrity: sha512-7kFD+owAA61qmhJCtoMbqj3Uvff3YHDiU+4on5F2vQdcMI3MuwGi7dM6MkFG/yuzpw8LF2xULpL71tOPUfxs0w==} - cpu: [arm64] - os: [darwin] + resolution: {integrity: sha512-7kFD+owAA61qmhJCtoMbqj3Uvff3YHDiU+4on5F2vQdcMI3MuwGi7dM6MkFG/yuzpw8LF2xULpL71tOPUfxs0w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lydell/node-pty-darwin-arm64/-/node-pty-darwin-arm64-1.1.0.tgz} '@lydell/node-pty-darwin-x64@1.1.0': - resolution: {integrity: sha512-XZdvqj5FjAMjH8bdp0YfaZjur5DrCIDD1VYiE9EkkYVMDQqRUPHYV3U8BVEQVT9hYfjmpr7dNaELF2KyISWSNA==} - cpu: [x64] - os: [darwin] + resolution: {integrity: sha512-XZdvqj5FjAMjH8bdp0YfaZjur5DrCIDD1VYiE9EkkYVMDQqRUPHYV3U8BVEQVT9hYfjmpr7dNaELF2KyISWSNA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lydell/node-pty-darwin-x64/-/node-pty-darwin-x64-1.1.0.tgz} '@lydell/node-pty-linux-arm64@1.1.0': - resolution: {integrity: sha512-yyDBmalCfHpLiQMT2zyLcqL2Fay4Xy7rIs8GH4dqKLnEviMvPGOK7LADVkKAsbsyXBSISL3Lt1m1MtxhPH6ckg==} - cpu: [arm64] - os: [linux] + resolution: {integrity: sha512-yyDBmalCfHpLiQMT2zyLcqL2Fay4Xy7rIs8GH4dqKLnEviMvPGOK7LADVkKAsbsyXBSISL3Lt1m1MtxhPH6ckg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lydell/node-pty-linux-arm64/-/node-pty-linux-arm64-1.1.0.tgz} '@lydell/node-pty-linux-x64@1.1.0': - resolution: {integrity: sha512-NcNqRTD14QT+vXcEuqSSvmWY+0+WUBn2uRE8EN0zKtDpIEr9d+YiFj16Uqds6QfcLCHfZmC+Ls7YzwTaqDnanA==} - cpu: [x64] - os: [linux] + resolution: {integrity: sha512-NcNqRTD14QT+vXcEuqSSvmWY+0+WUBn2uRE8EN0zKtDpIEr9d+YiFj16Uqds6QfcLCHfZmC+Ls7YzwTaqDnanA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lydell/node-pty-linux-x64/-/node-pty-linux-x64-1.1.0.tgz} '@lydell/node-pty-win32-arm64@1.1.0': - resolution: {integrity: sha512-JOMbCou+0fA7d/m97faIIfIU0jOv8sn2OR7tI45u3AmldKoKoLP8zHY6SAvDDnI3fccO1R2HeR1doVjpS7HM0w==} - cpu: [arm64] - os: [win32] + resolution: {integrity: sha512-JOMbCou+0fA7d/m97faIIfIU0jOv8sn2OR7tI45u3AmldKoKoLP8zHY6SAvDDnI3fccO1R2HeR1doVjpS7HM0w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lydell/node-pty-win32-arm64/-/node-pty-win32-arm64-1.1.0.tgz} '@lydell/node-pty-win32-x64@1.1.0': - resolution: {integrity: sha512-3N56BZ+WDFnUMYRtsrr7Ky2mhWGl9xXcyqR6cexfuCqcz9RNWL+KoXRv/nZylY5dYaXkft4JaR1uVu+roiZDAw==} - cpu: [x64] - os: [win32] + resolution: {integrity: sha512-3N56BZ+WDFnUMYRtsrr7Ky2mhWGl9xXcyqR6cexfuCqcz9RNWL+KoXRv/nZylY5dYaXkft4JaR1uVu+roiZDAw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@lydell/node-pty-win32-x64/-/node-pty-win32-x64-1.1.0.tgz} '@lydell/node-pty@1.1.0': resolution: {integrity: sha512-VDD8LtlMTOrPKWMXUAcB9+LTktzuunqrMwkYR1DMRBkS6LQrCt+0/Ws1o2rMml/n3guePpS7cxhHF7Nm5K4iMw==} @@ -5147,7 +5019,7 @@ packages: resolution: {integrity: sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==} '@neon-rs/load@0.0.4': - resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} + resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@neon-rs/load/-/load-0.0.4.tgz} '@next/env@13.5.11': resolution: {integrity: sha512-fbb2C7HChgM7CemdCY+y3N1n8pcTKdqtQLbC7/EQtPdLvlMUT9JX/dBYl8MMZAtYG4uVMyPFHXckb68q/NRwqg==} @@ -5159,52 +5031,36 @@ packages: resolution: {integrity: sha512-ijVRTXBgnHT33aWnDtmlG+LJD+5vhc9AKTJPquGG5NKXjpKNjc62woIhFtrAcWdBobt8kqjCoaJ0q6sDQoX7aQ==} '@next/swc-darwin-arm64@15.2.5': - resolution: {integrity: sha512-4OimvVlFTbgzPdA0kh8A1ih6FN9pQkL4nPXGqemEYgk+e7eQhsst/p35siNNqA49eQA6bvKZ1ASsDtu9gtXuog==} + resolution: {integrity: sha512-4OimvVlFTbgzPdA0kh8A1ih6FN9pQkL4nPXGqemEYgk+e7eQhsst/p35siNNqA49eQA6bvKZ1ASsDtu9gtXuog==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.5.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] '@next/swc-darwin-x64@15.2.5': - resolution: {integrity: sha512-ohzRaE9YbGt1ctE0um+UGYIDkkOxHV44kEcHzLqQigoRLaiMtZzGrA11AJh2Lu0lv51XeiY1ZkUvkThjkVNBMA==} + resolution: {integrity: sha512-ohzRaE9YbGt1ctE0um+UGYIDkkOxHV44kEcHzLqQigoRLaiMtZzGrA11AJh2Lu0lv51XeiY1ZkUvkThjkVNBMA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.5.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] '@next/swc-linux-arm64-gnu@15.2.5': - resolution: {integrity: sha512-FMSdxSUt5bVXqqOoZCc/Seg4LQep9w/fXTazr/EkpXW2Eu4IFI9FD7zBDlID8TJIybmvKk7mhd9s+2XWxz4flA==} + resolution: {integrity: sha512-FMSdxSUt5bVXqqOoZCc/Seg4LQep9w/fXTazr/EkpXW2Eu4IFI9FD7zBDlID8TJIybmvKk7mhd9s+2XWxz4flA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.5.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] '@next/swc-linux-arm64-musl@15.2.5': - resolution: {integrity: sha512-4ZNKmuEiW5hRKkGp2HWwZ+JrvK4DQLgf8YDaqtZyn7NYdl0cHfatvlnLFSWUayx9yFAUagIgRGRk8pFxS8Qniw==} + resolution: {integrity: sha512-4ZNKmuEiW5hRKkGp2HWwZ+JrvK4DQLgf8YDaqtZyn7NYdl0cHfatvlnLFSWUayx9yFAUagIgRGRk8pFxS8Qniw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.5.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] '@next/swc-linux-x64-gnu@15.2.5': - resolution: {integrity: sha512-bE6lHQ9GXIf3gCDE53u2pTl99RPZW5V1GLHSRMJ5l/oB/MT+cohu9uwnCK7QUph2xIOu2a6+27kL0REa/kqwZw==} + resolution: {integrity: sha512-bE6lHQ9GXIf3gCDE53u2pTl99RPZW5V1GLHSRMJ5l/oB/MT+cohu9uwnCK7QUph2xIOu2a6+27kL0REa/kqwZw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.5.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [linux] '@next/swc-linux-x64-musl@15.2.5': - resolution: {integrity: sha512-y7EeQuSkQbTAkCEQnJXm1asRUuGSWAchGJ3c+Qtxh8LVjXleZast8Mn/rL7tZOm7o35QeIpIcid6ufG7EVTTcA==} + resolution: {integrity: sha512-y7EeQuSkQbTAkCEQnJXm1asRUuGSWAchGJ3c+Qtxh8LVjXleZast8Mn/rL7tZOm7o35QeIpIcid6ufG7EVTTcA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.5.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [linux] '@next/swc-win32-arm64-msvc@15.2.5': - resolution: {integrity: sha512-gQMz0yA8/dskZM2Xyiq2FRShxSrsJNha40Ob/M2n2+JGRrZ0JwTVjLdvtN6vCxuq4ByhOd4a9qEf60hApNR2gQ==} + resolution: {integrity: sha512-gQMz0yA8/dskZM2Xyiq2FRShxSrsJNha40Ob/M2n2+JGRrZ0JwTVjLdvtN6vCxuq4ByhOd4a9qEf60hApNR2gQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.5.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] '@next/swc-win32-x64-msvc@15.2.5': - resolution: {integrity: sha512-tBDNVUcI7U03+3oMvJ11zrtVin5p0NctiuKmTGyaTIEAVj9Q77xukLXGXRnWxKRIIdFG4OTA2rUVGZDYOwgmAA==} + resolution: {integrity: sha512-tBDNVUcI7U03+3oMvJ11zrtVin5p0NctiuKmTGyaTIEAVj9Q77xukLXGXRnWxKRIIdFG4OTA2rUVGZDYOwgmAA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.5.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [win32] '@noble/ciphers@1.3.0': resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} @@ -5219,174 +5075,120 @@ packages: engines: {node: ^14.21.3 || >=16} '@node-rs/crc32-android-arm-eabi@1.10.6': - resolution: {integrity: sha512-vZAMuJXm3TpWPOkkhxdrofWDv+Q+I2oO7ucLRbXyAPmXFNDhHtBxbO1rk9Qzz+M3eep8ieS4/+jCL1Q0zacNMQ==} + resolution: {integrity: sha512-vZAMuJXm3TpWPOkkhxdrofWDv+Q+I2oO7ucLRbXyAPmXFNDhHtBxbO1rk9Qzz+M3eep8ieS4/+jCL1Q0zacNMQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-android-arm-eabi/-/crc32-android-arm-eabi-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [arm] - os: [android] '@node-rs/crc32-android-arm64@1.10.6': - resolution: {integrity: sha512-Vl/JbjCinCw/H9gEpZveWCMjxjcEChDcDBM8S4hKay5yyoRCUHJPuKr4sjVDBeOm+1nwU3oOm6Ca8dyblwp4/w==} + resolution: {integrity: sha512-Vl/JbjCinCw/H9gEpZveWCMjxjcEChDcDBM8S4hKay5yyoRCUHJPuKr4sjVDBeOm+1nwU3oOm6Ca8dyblwp4/w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-android-arm64/-/crc32-android-arm64-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [android] '@node-rs/crc32-darwin-arm64@1.10.6': - resolution: {integrity: sha512-kARYANp5GnmsQiViA5Qu74weYQ3phOHSYQf0G+U5wB3NB5JmBHnZcOc46Ig21tTypWtdv7u63TaltJQE41noyg==} + resolution: {integrity: sha512-kARYANp5GnmsQiViA5Qu74weYQ3phOHSYQf0G+U5wB3NB5JmBHnZcOc46Ig21tTypWtdv7u63TaltJQE41noyg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-darwin-arm64/-/crc32-darwin-arm64-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] '@node-rs/crc32-darwin-x64@1.10.6': - resolution: {integrity: sha512-Q99bevJVMfLTISpkpKBlXgtPUItrvTWKFyiqoKH5IvscZmLV++NH4V13Pa17GTBmv9n18OwzgQY4/SRq6PQNVA==} + resolution: {integrity: sha512-Q99bevJVMfLTISpkpKBlXgtPUItrvTWKFyiqoKH5IvscZmLV++NH4V13Pa17GTBmv9n18OwzgQY4/SRq6PQNVA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-darwin-x64/-/crc32-darwin-x64-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] '@node-rs/crc32-freebsd-x64@1.10.6': - resolution: {integrity: sha512-66hpawbNjrgnS9EDMErta/lpaqOMrL6a6ee+nlI2viduVOmRZWm9Rg9XdGTK/+c4bQLdtC6jOd+Kp4EyGRYkAg==} + resolution: {integrity: sha512-66hpawbNjrgnS9EDMErta/lpaqOMrL6a6ee+nlI2viduVOmRZWm9Rg9XdGTK/+c4bQLdtC6jOd+Kp4EyGRYkAg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-freebsd-x64/-/crc32-freebsd-x64-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] '@node-rs/crc32-linux-arm-gnueabihf@1.10.6': - resolution: {integrity: sha512-E8Z0WChH7X6ankbVm8J/Yym19Cq3otx6l4NFPS6JW/cWdjv7iw+Sps2huSug+TBprjbcEA+s4TvEwfDI1KScjg==} + resolution: {integrity: sha512-E8Z0WChH7X6ankbVm8J/Yym19Cq3otx6l4NFPS6JW/cWdjv7iw+Sps2huSug+TBprjbcEA+s4TvEwfDI1KScjg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-linux-arm-gnueabihf/-/crc32-linux-arm-gnueabihf-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [arm] - os: [linux] '@node-rs/crc32-linux-arm64-gnu@1.10.6': - resolution: {integrity: sha512-LmWcfDbqAvypX0bQjQVPmQGazh4dLiVklkgHxpV4P0TcQ1DT86H/SWpMBMs/ncF8DGuCQ05cNyMv1iddUDugoQ==} + resolution: {integrity: sha512-LmWcfDbqAvypX0bQjQVPmQGazh4dLiVklkgHxpV4P0TcQ1DT86H/SWpMBMs/ncF8DGuCQ05cNyMv1iddUDugoQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-linux-arm64-gnu/-/crc32-linux-arm64-gnu-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] '@node-rs/crc32-linux-arm64-musl@1.10.6': - resolution: {integrity: sha512-k8ra/bmg0hwRrIEE8JL1p32WfaN9gDlUUpQRWsbxd1WhjqvXea7kKO6K4DwVxyxlPhBS9Gkb5Urq7Y4mXANzaw==} + resolution: {integrity: sha512-k8ra/bmg0hwRrIEE8JL1p32WfaN9gDlUUpQRWsbxd1WhjqvXea7kKO6K4DwVxyxlPhBS9Gkb5Urq7Y4mXANzaw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-linux-arm64-musl/-/crc32-linux-arm64-musl-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] '@node-rs/crc32-linux-x64-gnu@1.10.6': - resolution: {integrity: sha512-IfjtqcuFK7JrSZ9mlAFhb83xgium30PguvRjIMI45C3FJwu18bnLk1oR619IYb/zetQT82MObgmqfKOtgemEKw==} + resolution: {integrity: sha512-IfjtqcuFK7JrSZ9mlAFhb83xgium30PguvRjIMI45C3FJwu18bnLk1oR619IYb/zetQT82MObgmqfKOtgemEKw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-linux-x64-gnu/-/crc32-linux-x64-gnu-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [linux] '@node-rs/crc32-linux-x64-musl@1.10.6': - resolution: {integrity: sha512-LbFYsA5M9pNunOweSt6uhxenYQF94v3bHDAQRPTQ3rnjn+mK6IC7YTAYoBjvoJP8lVzcvk9hRj8wp4Jyh6Y80g==} + resolution: {integrity: sha512-LbFYsA5M9pNunOweSt6uhxenYQF94v3bHDAQRPTQ3rnjn+mK6IC7YTAYoBjvoJP8lVzcvk9hRj8wp4Jyh6Y80g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-linux-x64-musl/-/crc32-linux-x64-musl-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [linux] '@node-rs/crc32-wasm32-wasi@1.10.6': - resolution: {integrity: sha512-KaejdLgHMPsRaxnM+OG9L9XdWL2TabNx80HLdsCOoX9BVhEkfh39OeahBo8lBmidylKbLGMQoGfIKDjq0YMStw==} + resolution: {integrity: sha512-KaejdLgHMPsRaxnM+OG9L9XdWL2TabNx80HLdsCOoX9BVhEkfh39OeahBo8lBmidylKbLGMQoGfIKDjq0YMStw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-wasm32-wasi/-/crc32-wasm32-wasi-1.10.6.tgz} engines: {node: '>=14.0.0'} - cpu: [wasm32] '@node-rs/crc32-win32-arm64-msvc@1.10.6': - resolution: {integrity: sha512-x50AXiSxn5Ccn+dCjLf1T7ZpdBiV1Sp5aC+H2ijhJO4alwznvXgWbopPRVhbp2nj0i+Gb6kkDUEyU+508KAdGQ==} + resolution: {integrity: sha512-x50AXiSxn5Ccn+dCjLf1T7ZpdBiV1Sp5aC+H2ijhJO4alwznvXgWbopPRVhbp2nj0i+Gb6kkDUEyU+508KAdGQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-win32-arm64-msvc/-/crc32-win32-arm64-msvc-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] '@node-rs/crc32-win32-ia32-msvc@1.10.6': - resolution: {integrity: sha512-DpDxQLaErJF9l36aghe1Mx+cOnYLKYo6qVPqPL9ukJ5rAGLtCdU0C+Zoi3gs9ySm8zmbFgazq/LvmsZYU42aBw==} + resolution: {integrity: sha512-DpDxQLaErJF9l36aghe1Mx+cOnYLKYo6qVPqPL9ukJ5rAGLtCdU0C+Zoi3gs9ySm8zmbFgazq/LvmsZYU42aBw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-win32-ia32-msvc/-/crc32-win32-ia32-msvc-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] '@node-rs/crc32-win32-x64-msvc@1.10.6': - resolution: {integrity: sha512-5B1vXosIIBw1m2Rcnw62IIfH7W9s9f7H7Ma0rRuhT8HR4Xh8QCgw6NJSI2S2MCngsGktYnAhyUvs81b7efTyQw==} + resolution: {integrity: sha512-5B1vXosIIBw1m2Rcnw62IIfH7W9s9f7H7Ma0rRuhT8HR4Xh8QCgw6NJSI2S2MCngsGktYnAhyUvs81b7efTyQw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/crc32-win32-x64-msvc/-/crc32-win32-x64-msvc-1.10.6.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [win32] '@node-rs/crc32@1.10.6': resolution: {integrity: sha512-+llXfqt+UzgoDzT9of5vPQPGqTAVCohU74I9zIBkNo5TH6s2P31DFJOGsJQKN207f0GHnYv5pV3wh3BCY/un/A==} engines: {node: '>= 10'} '@node-rs/jieba-android-arm-eabi@1.10.4': - resolution: {integrity: sha512-MhyvW5N3Fwcp385d0rxbCWH42kqDBatQTyP8XbnYbju2+0BO/eTeCCLYj7Agws4pwxn2LtdldXRSKavT7WdzNA==} + resolution: {integrity: sha512-MhyvW5N3Fwcp385d0rxbCWH42kqDBatQTyP8XbnYbju2+0BO/eTeCCLYj7Agws4pwxn2LtdldXRSKavT7WdzNA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-android-arm-eabi/-/jieba-android-arm-eabi-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [arm] - os: [android] '@node-rs/jieba-android-arm64@1.10.4': - resolution: {integrity: sha512-XyDwq5+rQ+Tk55A+FGi6PtJbzf974oqnpyCcCPzwU3QVXJCa2Rr4Lci+fx8oOpU4plT3GuD+chXMYLsXipMgJA==} + resolution: {integrity: sha512-XyDwq5+rQ+Tk55A+FGi6PtJbzf974oqnpyCcCPzwU3QVXJCa2Rr4Lci+fx8oOpU4plT3GuD+chXMYLsXipMgJA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-android-arm64/-/jieba-android-arm64-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [android] '@node-rs/jieba-darwin-arm64@1.10.4': - resolution: {integrity: sha512-G++RYEJ2jo0rxF9626KUy90wp06TRUjAsvY/BrIzEOX/ingQYV/HjwQzNPRR1P1o32a6/U8RGo7zEBhfdybL6w==} + resolution: {integrity: sha512-G++RYEJ2jo0rxF9626KUy90wp06TRUjAsvY/BrIzEOX/ingQYV/HjwQzNPRR1P1o32a6/U8RGo7zEBhfdybL6w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-darwin-arm64/-/jieba-darwin-arm64-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] '@node-rs/jieba-darwin-x64@1.10.4': - resolution: {integrity: sha512-MmDNeOb2TXIZCPyWCi2upQnZpPjAxw5ZGEj6R8kNsPXVFALHIKMa6ZZ15LCOkSTsKXVC17j2t4h+hSuyYb6qfQ==} + resolution: {integrity: sha512-MmDNeOb2TXIZCPyWCi2upQnZpPjAxw5ZGEj6R8kNsPXVFALHIKMa6ZZ15LCOkSTsKXVC17j2t4h+hSuyYb6qfQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-darwin-x64/-/jieba-darwin-x64-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] '@node-rs/jieba-freebsd-x64@1.10.4': - resolution: {integrity: sha512-/x7aVQ8nqUWhpXU92RZqd333cq639i/olNpd9Z5hdlyyV5/B65LLy+Je2B2bfs62PVVm5QXRpeBcZqaHelp/bg==} + resolution: {integrity: sha512-/x7aVQ8nqUWhpXU92RZqd333cq639i/olNpd9Z5hdlyyV5/B65LLy+Je2B2bfs62PVVm5QXRpeBcZqaHelp/bg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-freebsd-x64/-/jieba-freebsd-x64-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] '@node-rs/jieba-linux-arm-gnueabihf@1.10.4': - resolution: {integrity: sha512-crd2M35oJBRLkoESs0O6QO3BBbhpv+tqXuKsqhIG94B1d02RVxtRIvSDwO33QurxqSdvN9IeSnVpHbDGkuXm3g==} + resolution: {integrity: sha512-crd2M35oJBRLkoESs0O6QO3BBbhpv+tqXuKsqhIG94B1d02RVxtRIvSDwO33QurxqSdvN9IeSnVpHbDGkuXm3g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-linux-arm-gnueabihf/-/jieba-linux-arm-gnueabihf-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [arm] - os: [linux] '@node-rs/jieba-linux-arm64-gnu@1.10.4': - resolution: {integrity: sha512-omIzNX1psUzPcsdnUhGU6oHeOaTCuCjUgOA/v/DGkvWC1jLcnfXe4vdYbtXMh4XOCuIgS1UCcvZEc8vQLXFbXQ==} + resolution: {integrity: sha512-omIzNX1psUzPcsdnUhGU6oHeOaTCuCjUgOA/v/DGkvWC1jLcnfXe4vdYbtXMh4XOCuIgS1UCcvZEc8vQLXFbXQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-linux-arm64-gnu/-/jieba-linux-arm64-gnu-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] '@node-rs/jieba-linux-arm64-musl@1.10.4': - resolution: {integrity: sha512-Y/tiJ1+HeS5nnmLbZOE+66LbsPOHZ/PUckAYVeLlQfpygLEpLYdlh0aPpS5uiaWMjAXYZYdFkpZHhxDmSLpwpw==} + resolution: {integrity: sha512-Y/tiJ1+HeS5nnmLbZOE+66LbsPOHZ/PUckAYVeLlQfpygLEpLYdlh0aPpS5uiaWMjAXYZYdFkpZHhxDmSLpwpw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-linux-arm64-musl/-/jieba-linux-arm64-musl-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] '@node-rs/jieba-linux-x64-gnu@1.10.4': - resolution: {integrity: sha512-WZO8ykRJpWGE9MHuZpy1lu3nJluPoeB+fIJJn5CWZ9YTVhNDWoCF4i/7nxz1ntulINYGQ8VVuCU9LD86Mek97g==} + resolution: {integrity: sha512-WZO8ykRJpWGE9MHuZpy1lu3nJluPoeB+fIJJn5CWZ9YTVhNDWoCF4i/7nxz1ntulINYGQ8VVuCU9LD86Mek97g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-linux-x64-gnu/-/jieba-linux-x64-gnu-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [linux] '@node-rs/jieba-linux-x64-musl@1.10.4': - resolution: {integrity: sha512-uBBD4S1rGKcgCyAk6VCKatEVQb6EDD5I40v/DxODi5CuZVCANi9m5oee/MQbAoaX7RydA2f0OSCE9/tcwXEwUg==} + resolution: {integrity: sha512-uBBD4S1rGKcgCyAk6VCKatEVQb6EDD5I40v/DxODi5CuZVCANi9m5oee/MQbAoaX7RydA2f0OSCE9/tcwXEwUg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-linux-x64-musl/-/jieba-linux-x64-musl-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [linux] '@node-rs/jieba-wasm32-wasi@1.10.4': - resolution: {integrity: sha512-Y2umiKHjuIJy0uulNDz9SDYHdfq5Hmy7jY5nORO99B4pySKkcrMjpeVrmWXJLIsEKLJwcCXHxz8tjwU5/uhz0A==} + resolution: {integrity: sha512-Y2umiKHjuIJy0uulNDz9SDYHdfq5Hmy7jY5nORO99B4pySKkcrMjpeVrmWXJLIsEKLJwcCXHxz8tjwU5/uhz0A==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-wasm32-wasi/-/jieba-wasm32-wasi-1.10.4.tgz} engines: {node: '>=14.0.0'} - cpu: [wasm32] '@node-rs/jieba-win32-arm64-msvc@1.10.4': - resolution: {integrity: sha512-nwMtViFm4hjqhz1it/juQnxpXgqlGltCuWJ02bw70YUDMDlbyTy3grCJPpQQpueeETcALUnTxda8pZuVrLRcBA==} + resolution: {integrity: sha512-nwMtViFm4hjqhz1it/juQnxpXgqlGltCuWJ02bw70YUDMDlbyTy3grCJPpQQpueeETcALUnTxda8pZuVrLRcBA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-win32-arm64-msvc/-/jieba-win32-arm64-msvc-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] '@node-rs/jieba-win32-ia32-msvc@1.10.4': - resolution: {integrity: sha512-DCAvLx7Z+W4z5oKS+7vUowAJr0uw9JBw8x1Y23Xs/xMA4Em+OOSiaF5/tCJqZUCJ8uC4QeImmgDFiBqGNwxlyA==} + resolution: {integrity: sha512-DCAvLx7Z+W4z5oKS+7vUowAJr0uw9JBw8x1Y23Xs/xMA4Em+OOSiaF5/tCJqZUCJ8uC4QeImmgDFiBqGNwxlyA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-win32-ia32-msvc/-/jieba-win32-ia32-msvc-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] '@node-rs/jieba-win32-x64-msvc@1.10.4': - resolution: {integrity: sha512-+sqemSfS1jjb+Tt7InNbNzrRh1Ua3vProVvC4BZRPg010/leCbGFFiQHpzcPRfpxAXZrzG5Y0YBTsPzN/I4yHQ==} + resolution: {integrity: sha512-+sqemSfS1jjb+Tt7InNbNzrRh1Ua3vProVvC4BZRPg010/leCbGFFiQHpzcPRfpxAXZrzG5Y0YBTsPzN/I4yHQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@node-rs/jieba-win32-x64-msvc/-/jieba-win32-x64-msvc-1.10.4.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [win32] '@node-rs/jieba@1.10.4': resolution: {integrity: sha512-GvDgi8MnBiyWd6tksojej8anIx18244NmIOc1ovEw8WKNUejcccLfyu8vj66LWSuoZuKILVtNsOy4jvg3aoxIw==} @@ -5405,10 +5207,10 @@ packages: engines: {node: '>= 8'} '@npmcli/fs@1.1.1': - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@npmcli/fs/-/fs-1.1.1.tgz} '@npmcli/move-file@1.1.2': - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} + resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@npmcli/move-file/-/move-file-1.1.2.tgz} engines: {node: '>=10'} deprecated: This functionality has been moved to @npmcli/fs @@ -5481,154 +5283,103 @@ packages: engines: {node: '>=8.0.0'} '@oxc-resolver/binding-darwin-arm64@11.2.0': - resolution: {integrity: sha512-ruKLkS+Dm/YIJaUhzEB7zPI+jh3EXxu0QnNV8I7t9jf0lpD2VnltuyRbhrbJEkksklZj//xCMyFFsILGjiU2Mg==} - cpu: [arm64] - os: [darwin] + resolution: {integrity: sha512-ruKLkS+Dm/YIJaUhzEB7zPI+jh3EXxu0QnNV8I7t9jf0lpD2VnltuyRbhrbJEkksklZj//xCMyFFsILGjiU2Mg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-11.2.0.tgz} '@oxc-resolver/binding-darwin-x64@11.2.0': - resolution: {integrity: sha512-0zhgNUm5bYezdSFOg3FYhtVP83bAq7FTV/3suGQDl/43MixfQG7+bl+hlrP4mz6WlD2SUb2u9BomnJWl1uey9w==} - cpu: [x64] - os: [darwin] + resolution: {integrity: sha512-0zhgNUm5bYezdSFOg3FYhtVP83bAq7FTV/3suGQDl/43MixfQG7+bl+hlrP4mz6WlD2SUb2u9BomnJWl1uey9w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-11.2.0.tgz} '@oxc-resolver/binding-freebsd-x64@11.2.0': - resolution: {integrity: sha512-SHOxfCcZV1axeIGfyeD1BkdLvfQgjmPy18tO0OUXGElcdScxD6MqU5rj/AVtiuBT+51GtFfOKlwl1+BdVwhD1A==} - cpu: [x64] - os: [freebsd] + resolution: {integrity: sha512-SHOxfCcZV1axeIGfyeD1BkdLvfQgjmPy18tO0OUXGElcdScxD6MqU5rj/AVtiuBT+51GtFfOKlwl1+BdVwhD1A==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-11.2.0.tgz} '@oxc-resolver/binding-linux-arm-gnueabihf@11.2.0': - resolution: {integrity: sha512-mgEkYrJ+N90sgEDqEZ07zH+4I1D28WjqAhdzfW3aS2x2vynVpoY9jWfHuH8S62vZt3uATJrTKTRa8CjPWEsrdw==} - cpu: [arm] - os: [linux] + resolution: {integrity: sha512-mgEkYrJ+N90sgEDqEZ07zH+4I1D28WjqAhdzfW3aS2x2vynVpoY9jWfHuH8S62vZt3uATJrTKTRa8CjPWEsrdw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-11.2.0.tgz} '@oxc-resolver/binding-linux-arm64-gnu@11.2.0': - resolution: {integrity: sha512-BhEzNLjn4HjP8+Q18D3/jeIDBxW7OgoJYIjw2CaaysnYneoTlij8hPTKxHfyqq4IGM3fFs9TLR/k338M3zkQ7g==} - cpu: [arm64] - os: [linux] + resolution: {integrity: sha512-BhEzNLjn4HjP8+Q18D3/jeIDBxW7OgoJYIjw2CaaysnYneoTlij8hPTKxHfyqq4IGM3fFs9TLR/k338M3zkQ7g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-11.2.0.tgz} '@oxc-resolver/binding-linux-arm64-musl@11.2.0': - resolution: {integrity: sha512-yxbMYUgRmN2V8x8XoxmD/Qq6aG7YIW3ToMDILfmcfeeRRVieEJ3DOWBT0JSE+YgrOy79OyFDH/1lO8VnqLmDQQ==} - cpu: [arm64] - os: [linux] + resolution: {integrity: sha512-yxbMYUgRmN2V8x8XoxmD/Qq6aG7YIW3ToMDILfmcfeeRRVieEJ3DOWBT0JSE+YgrOy79OyFDH/1lO8VnqLmDQQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-11.2.0.tgz} '@oxc-resolver/binding-linux-riscv64-gnu@11.2.0': - resolution: {integrity: sha512-QG1UfgC2N2qhW1tOnDCgB/26vn1RCshR5sYPhMeaxO1gMQ3kEKbZ3QyBXxrG1IX5qsXYj5hPDJLDYNYUjRcOpg==} - cpu: [riscv64] - os: [linux] + resolution: {integrity: sha512-QG1UfgC2N2qhW1tOnDCgB/26vn1RCshR5sYPhMeaxO1gMQ3kEKbZ3QyBXxrG1IX5qsXYj5hPDJLDYNYUjRcOpg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-11.2.0.tgz} '@oxc-resolver/binding-linux-s390x-gnu@11.2.0': - resolution: {integrity: sha512-uqTDsQdi6mrkSV1gvwbuT8jf/WFl6qVDVjNlx7IPSaAByrNiJfPrhTmH8b+Do58Dylz7QIRZgxQ8CHIZSyBUdg==} - cpu: [s390x] - os: [linux] + resolution: {integrity: sha512-uqTDsQdi6mrkSV1gvwbuT8jf/WFl6qVDVjNlx7IPSaAByrNiJfPrhTmH8b+Do58Dylz7QIRZgxQ8CHIZSyBUdg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-11.2.0.tgz} '@oxc-resolver/binding-linux-x64-gnu@11.2.0': - resolution: {integrity: sha512-GZdHXhJ7p6GaQg9MjRqLebwBf8BLvGIagccI6z5yMj4fV3LU4QuDfwSEERG+R6oQ/Su9672MBqWwncvKcKT68w==} - cpu: [x64] - os: [linux] + resolution: {integrity: sha512-GZdHXhJ7p6GaQg9MjRqLebwBf8BLvGIagccI6z5yMj4fV3LU4QuDfwSEERG+R6oQ/Su9672MBqWwncvKcKT68w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-11.2.0.tgz} '@oxc-resolver/binding-linux-x64-musl@11.2.0': - resolution: {integrity: sha512-YBAC3GOicYznReG2twE7oFPSeK9Z1f507z1EYWKg6HpGYRYRlJyszViu7PrhMT85r/MumDTs429zm+CNqpFWOA==} - cpu: [x64] - os: [linux] + resolution: {integrity: sha512-YBAC3GOicYznReG2twE7oFPSeK9Z1f507z1EYWKg6HpGYRYRlJyszViu7PrhMT85r/MumDTs429zm+CNqpFWOA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-11.2.0.tgz} '@oxc-resolver/binding-wasm32-wasi@11.2.0': - resolution: {integrity: sha512-+qlIg45CPVPy+Jn3vqU1zkxA/AAv6e/2Ax/ImX8usZa8Tr2JmQn/93bmSOOOnr9fXRV9d0n4JyqYzSWxWPYDEw==} + resolution: {integrity: sha512-+qlIg45CPVPy+Jn3vqU1zkxA/AAv6e/2Ax/ImX8usZa8Tr2JmQn/93bmSOOOnr9fXRV9d0n4JyqYzSWxWPYDEw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-11.2.0.tgz} engines: {node: '>=14.0.0'} - cpu: [wasm32] '@oxc-resolver/binding-win32-arm64-msvc@11.2.0': - resolution: {integrity: sha512-AI4KIpS8Zf6vwfOPk0uQPSC0pQ1m5HU4hCbtrgL21JgJSlnJaeEu3/aoOBB45AXKiExBU9R+CDR7aSnW7uhc5A==} - cpu: [arm64] - os: [win32] + resolution: {integrity: sha512-AI4KIpS8Zf6vwfOPk0uQPSC0pQ1m5HU4hCbtrgL21JgJSlnJaeEu3/aoOBB45AXKiExBU9R+CDR7aSnW7uhc5A==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-11.2.0.tgz} '@oxc-resolver/binding-win32-x64-msvc@11.2.0': - resolution: {integrity: sha512-r19cQc7HaEJ76HFsMsbiKMTIV2YqFGSof8H5hB7e5Jkb/23Y8Isv1YrSzkDaGhcw02I/COsrPo+eEmjy35eFuA==} - cpu: [x64] - os: [win32] + resolution: {integrity: sha512-r19cQc7HaEJ76HFsMsbiKMTIV2YqFGSof8H5hB7e5Jkb/23Y8Isv1YrSzkDaGhcw02I/COsrPo+eEmjy35eFuA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-11.2.0.tgz} '@parcel/watcher-android-arm64@2.5.1': - resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] '@parcel/watcher-darwin-arm64@2.5.1': - resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] '@parcel/watcher-darwin-x64@2.5.1': - resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] '@parcel/watcher-freebsd-x64@2.5.1': - resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] '@parcel/watcher-linux-arm-glibc@2.5.1': - resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] '@parcel/watcher-linux-arm-musl@2.5.1': - resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] '@parcel/watcher-linux-arm64-glibc@2.5.1': - resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] '@parcel/watcher-linux-arm64-musl@2.5.1': - resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] '@parcel/watcher-linux-x64-glibc@2.5.1': - resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] '@parcel/watcher-linux-x64-musl@2.5.1': - resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] '@parcel/watcher-win32-arm64@2.5.1': - resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] '@parcel/watcher-win32-ia32@2.5.1': - resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] '@parcel/watcher-win32-x64@2.5.1': - resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz} engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] '@parcel/watcher@2.5.1': resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} engines: {node: '>= 10.0.0'} '@petamoriken/float16@3.9.3': - resolution: {integrity: sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g==} + resolution: {integrity: sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@petamoriken/float16/-/float16-3.9.3.tgz} '@playwright/browser-chromium@1.56.1': resolution: {integrity: sha512-n4xzZpOn4qOtZJylpIn8co2QDoWczfJ068sEeky3EE5Vvy+lHX2J3WAcC4MbXzcpfoBee1lJm8JtXuLZ9HBCBA==} @@ -6367,104 +6118,64 @@ packages: optional: true '@rollup/rollup-android-arm-eabi@4.40.2': - resolution: {integrity: sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==} - cpu: [arm] - os: [android] + resolution: {integrity: sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz} '@rollup/rollup-android-arm64@4.40.2': - resolution: {integrity: sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==} - cpu: [arm64] - os: [android] + resolution: {integrity: sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz} '@rollup/rollup-darwin-arm64@4.40.2': - resolution: {integrity: sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==} - cpu: [arm64] - os: [darwin] + resolution: {integrity: sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz} '@rollup/rollup-darwin-x64@4.40.2': - resolution: {integrity: sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==} - cpu: [x64] - os: [darwin] + resolution: {integrity: sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz} '@rollup/rollup-freebsd-arm64@4.40.2': - resolution: {integrity: sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==} - cpu: [arm64] - os: [freebsd] + resolution: {integrity: sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz} '@rollup/rollup-freebsd-x64@4.40.2': - resolution: {integrity: sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==} - cpu: [x64] - os: [freebsd] + resolution: {integrity: sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz} '@rollup/rollup-linux-arm-gnueabihf@4.40.2': - resolution: {integrity: sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==} - cpu: [arm] - os: [linux] + resolution: {integrity: sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz} '@rollup/rollup-linux-arm-musleabihf@4.40.2': - resolution: {integrity: sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==} - cpu: [arm] - os: [linux] + resolution: {integrity: sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz} '@rollup/rollup-linux-arm64-gnu@4.40.2': - resolution: {integrity: sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==} - cpu: [arm64] - os: [linux] + resolution: {integrity: sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz} '@rollup/rollup-linux-arm64-musl@4.40.2': - resolution: {integrity: sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==} - cpu: [arm64] - os: [linux] + resolution: {integrity: sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz} '@rollup/rollup-linux-loongarch64-gnu@4.40.2': - resolution: {integrity: sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==} - cpu: [loong64] - os: [linux] + resolution: {integrity: sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz} '@rollup/rollup-linux-powerpc64le-gnu@4.40.2': - resolution: {integrity: sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==} - cpu: [ppc64] - os: [linux] + resolution: {integrity: sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz} '@rollup/rollup-linux-riscv64-gnu@4.40.2': - resolution: {integrity: sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==} - cpu: [riscv64] - os: [linux] + resolution: {integrity: sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz} '@rollup/rollup-linux-riscv64-musl@4.40.2': - resolution: {integrity: sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==} - cpu: [riscv64] - os: [linux] + resolution: {integrity: sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz} '@rollup/rollup-linux-s390x-gnu@4.40.2': - resolution: {integrity: sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==} - cpu: [s390x] - os: [linux] + resolution: {integrity: sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz} '@rollup/rollup-linux-x64-gnu@4.40.2': - resolution: {integrity: sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==} - cpu: [x64] - os: [linux] + resolution: {integrity: sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz} '@rollup/rollup-linux-x64-musl@4.40.2': - resolution: {integrity: sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==} - cpu: [x64] - os: [linux] + resolution: {integrity: sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz} '@rollup/rollup-win32-arm64-msvc@4.40.2': - resolution: {integrity: sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==} - cpu: [arm64] - os: [win32] + resolution: {integrity: sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz} '@rollup/rollup-win32-ia32-msvc@4.40.2': - resolution: {integrity: sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==} - cpu: [ia32] - os: [win32] + resolution: {integrity: sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz} '@rollup/rollup-win32-x64-msvc@4.40.2': - resolution: {integrity: sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==} - cpu: [x64] - os: [win32] + resolution: {integrity: sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz} '@sap-ai-sdk/ai-api@2.2.0': resolution: {integrity: sha512-d38z4g4I/SMsYMfaaonz8j4qs6q4EkjP3HuiR2yS+070GPQ2aGpbbESryr1apZCrzqIcHddDMehdo2zBjhNIGw==} @@ -6607,7 +6318,7 @@ packages: resolution: {integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==} '@slorber/react-helmet-async@1.3.0': - resolution: {integrity: sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==} + resolution: {integrity: sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz} peerDependencies: react: ^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -7244,64 +6955,44 @@ packages: engines: {node: '>=14'} '@swc/core-darwin-arm64@1.15.1': - resolution: {integrity: sha512-vEPrVxegWIjKEz+1VCVuKRY89jhokhSmQ/YXBWLnmLj9cI08G61RTZJvdsIcjYUjjTu7NgZlYVK+b2y0fbh11g==} + resolution: {integrity: sha512-vEPrVxegWIjKEz+1VCVuKRY89jhokhSmQ/YXBWLnmLj9cI08G61RTZJvdsIcjYUjjTu7NgZlYVK+b2y0fbh11g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.1.tgz} engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] '@swc/core-darwin-x64@1.15.1': - resolution: {integrity: sha512-z9QguKxE3aldvwKHHDg5OlKehasbJBF1lacn5CnN6SlrHbdwokXHFA3nIoO3Bh1Tw7bCgFtdIR4jKlTTn3kBZA==} + resolution: {integrity: sha512-z9QguKxE3aldvwKHHDg5OlKehasbJBF1lacn5CnN6SlrHbdwokXHFA3nIoO3Bh1Tw7bCgFtdIR4jKlTTn3kBZA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@swc/core-darwin-x64/-/core-darwin-x64-1.15.1.tgz} engines: {node: '>=10'} - cpu: [x64] - os: [darwin] '@swc/core-linux-arm-gnueabihf@1.15.1': - resolution: {integrity: sha512-yS2FHA8E4YeiPG9YeYk/6mKiCWuXR5RdYlCmtlGzKcjWbI4GXUVe7+p9C0M6myRt3zdj3M1knmJxk52MQA9EZQ==} + resolution: {integrity: sha512-yS2FHA8E4YeiPG9YeYk/6mKiCWuXR5RdYlCmtlGzKcjWbI4GXUVe7+p9C0M6myRt3zdj3M1knmJxk52MQA9EZQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.1.tgz} engines: {node: '>=10'} - cpu: [arm] - os: [linux] '@swc/core-linux-arm64-gnu@1.15.1': - resolution: {integrity: sha512-IFrjDu7+5Y61jLsUqBVXlXutDoPBX10eEeNTjW6C1yzm+cSTE7ayiKXMIFri4gEZ4VpXS6MUgkwjxtDpIXTh+w==} + resolution: {integrity: sha512-IFrjDu7+5Y61jLsUqBVXlXutDoPBX10eEeNTjW6C1yzm+cSTE7ayiKXMIFri4gEZ4VpXS6MUgkwjxtDpIXTh+w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.1.tgz} engines: {node: '>=10'} - cpu: [arm64] - os: [linux] '@swc/core-linux-arm64-musl@1.15.1': - resolution: {integrity: sha512-fKzP9mRQGbhc5QhJPIsqKNNX/jyWrZgBxmo3Nz1SPaepfCUc7RFmtcJQI5q8xAun3XabXjh90wqcY/OVyg2+Kg==} + resolution: {integrity: sha512-fKzP9mRQGbhc5QhJPIsqKNNX/jyWrZgBxmo3Nz1SPaepfCUc7RFmtcJQI5q8xAun3XabXjh90wqcY/OVyg2+Kg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.1.tgz} engines: {node: '>=10'} - cpu: [arm64] - os: [linux] '@swc/core-linux-x64-gnu@1.15.1': - resolution: {integrity: sha512-ZLjMi138uTJxb+1wzo4cB8mIbJbAsSLWRNeHc1g1pMvkERPWOGlem+LEYkkzaFzCNv1J8aKcL653Vtw8INHQeg==} + resolution: {integrity: sha512-ZLjMi138uTJxb+1wzo4cB8mIbJbAsSLWRNeHc1g1pMvkERPWOGlem+LEYkkzaFzCNv1J8aKcL653Vtw8INHQeg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.1.tgz} engines: {node: '>=10'} - cpu: [x64] - os: [linux] '@swc/core-linux-x64-musl@1.15.1': - resolution: {integrity: sha512-jvSI1IdsIYey5kOITzyajjofXOOySVitmLxb45OPUjoNojql4sDojvlW5zoHXXFePdA6qAX4Y6KbzAOV3T3ctA==} + resolution: {integrity: sha512-jvSI1IdsIYey5kOITzyajjofXOOySVitmLxb45OPUjoNojql4sDojvlW5zoHXXFePdA6qAX4Y6KbzAOV3T3ctA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.1.tgz} engines: {node: '>=10'} - cpu: [x64] - os: [linux] '@swc/core-win32-arm64-msvc@1.15.1': - resolution: {integrity: sha512-X/FcDtNrDdY9r4FcXHt9QxUqC/2FbQdvZobCKHlHe8vTSKhUHOilWl5EBtkFVfsEs4D5/yAri9e3bJbwyBhhBw==} + resolution: {integrity: sha512-X/FcDtNrDdY9r4FcXHt9QxUqC/2FbQdvZobCKHlHe8vTSKhUHOilWl5EBtkFVfsEs4D5/yAri9e3bJbwyBhhBw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.1.tgz} engines: {node: '>=10'} - cpu: [arm64] - os: [win32] '@swc/core-win32-ia32-msvc@1.15.1': - resolution: {integrity: sha512-vfheiWBux8PpC87oy1cshcqzgH7alWYpnVq5jWe7xuVkjqjGGDbBUKuS84eJCdsWcVaB5EXIWLKt+11W3/BOwA==} + resolution: {integrity: sha512-vfheiWBux8PpC87oy1cshcqzgH7alWYpnVq5jWe7xuVkjqjGGDbBUKuS84eJCdsWcVaB5EXIWLKt+11W3/BOwA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.1.tgz} engines: {node: '>=10'} - cpu: [ia32] - os: [win32] '@swc/core-win32-x64-msvc@1.15.1': - resolution: {integrity: sha512-n3Ppn0LSov/IdlANq+8kxHqENuJRX5XtwQqPgQsgwKIcFq22u17NKfDs9vL5PwRsEHY6Xd67pnOqQX0h4AvbuQ==} + resolution: {integrity: sha512-n3Ppn0LSov/IdlANq+8kxHqENuJRX5XtwQqPgQsgwKIcFq22u17NKfDs9vL5PwRsEHY6Xd67pnOqQX0h4AvbuQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.1.tgz} engines: {node: '>=10'} - cpu: [x64] - os: [win32] '@swc/core@1.15.1': resolution: {integrity: sha512-s9GN3M2jA32k+StvuS9uGe4ztf5KVGBdlJMMC6LR6Ah23Lq/CWKVcC3WeQi8qaAcLd+DiddoNCNMUWymLv+wWQ==} @@ -7342,117 +7033,80 @@ packages: resolution: {integrity: sha512-OWwBsbC9BFAJelmnNcrKuf+bka2ZxCE2A4Ft53Tkg4uoiE67r/PMEYwCsourC26E+kmxfwE0hVzMdxqeW+xu7Q==} '@tailwindcss/oxide-android-arm64@4.1.6': - resolution: {integrity: sha512-VHwwPiwXtdIvOvqT/0/FLH/pizTVu78FOnI9jQo64kSAikFSZT7K4pjyzoDpSMaveJTGyAKvDjuhxJxKfmvjiQ==} + resolution: {integrity: sha512-VHwwPiwXtdIvOvqT/0/FLH/pizTVu78FOnI9jQo64kSAikFSZT7K4pjyzoDpSMaveJTGyAKvDjuhxJxKfmvjiQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.6.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [android] '@tailwindcss/oxide-android-arm64@4.1.8': - resolution: {integrity: sha512-Fbz7qni62uKYceWYvUjRqhGfZKwhZDQhlrJKGtnZfuNtHFqa8wmr+Wn74CTWERiW2hn3mN5gTpOoxWKk0jRxjg==} + resolution: {integrity: sha512-Fbz7qni62uKYceWYvUjRqhGfZKwhZDQhlrJKGtnZfuNtHFqa8wmr+Wn74CTWERiW2hn3mN5gTpOoxWKk0jRxjg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.8.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [android] '@tailwindcss/oxide-darwin-arm64@4.1.6': - resolution: {integrity: sha512-weINOCcqv1HVBIGptNrk7c6lWgSFFiQMcCpKM4tnVi5x8OY2v1FrV76jwLukfT6pL1hyajc06tyVmZFYXoxvhQ==} + resolution: {integrity: sha512-weINOCcqv1HVBIGptNrk7c6lWgSFFiQMcCpKM4tnVi5x8OY2v1FrV76jwLukfT6pL1hyajc06tyVmZFYXoxvhQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.6.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] '@tailwindcss/oxide-darwin-arm64@4.1.8': - resolution: {integrity: sha512-RdRvedGsT0vwVVDztvyXhKpsU2ark/BjgG0huo4+2BluxdXo8NDgzl77qh0T1nUxmM11eXwR8jA39ibvSTbi7A==} + resolution: {integrity: sha512-RdRvedGsT0vwVVDztvyXhKpsU2ark/BjgG0huo4+2BluxdXo8NDgzl77qh0T1nUxmM11eXwR8jA39ibvSTbi7A==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.8.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] '@tailwindcss/oxide-darwin-x64@4.1.6': - resolution: {integrity: sha512-3FzekhHG0ww1zQjQ1lPoq0wPrAIVXAbUkWdWM8u5BnYFZgb9ja5ejBqyTgjpo5mfy0hFOoMnMuVDI+7CXhXZaQ==} + resolution: {integrity: sha512-3FzekhHG0ww1zQjQ1lPoq0wPrAIVXAbUkWdWM8u5BnYFZgb9ja5ejBqyTgjpo5mfy0hFOoMnMuVDI+7CXhXZaQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.6.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] '@tailwindcss/oxide-darwin-x64@4.1.8': - resolution: {integrity: sha512-t6PgxjEMLp5Ovf7uMb2OFmb3kqzVTPPakWpBIFzppk4JE4ix0yEtbtSjPbU8+PZETpaYMtXvss2Sdkx8Vs4XRw==} + resolution: {integrity: sha512-t6PgxjEMLp5Ovf7uMb2OFmb3kqzVTPPakWpBIFzppk4JE4ix0yEtbtSjPbU8+PZETpaYMtXvss2Sdkx8Vs4XRw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.8.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] '@tailwindcss/oxide-freebsd-x64@4.1.6': - resolution: {integrity: sha512-4m5F5lpkBZhVQJq53oe5XgJ+aFYWdrgkMwViHjRsES3KEu2m1udR21B1I77RUqie0ZYNscFzY1v9aDssMBZ/1w==} + resolution: {integrity: sha512-4m5F5lpkBZhVQJq53oe5XgJ+aFYWdrgkMwViHjRsES3KEu2m1udR21B1I77RUqie0ZYNscFzY1v9aDssMBZ/1w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.6.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] '@tailwindcss/oxide-freebsd-x64@4.1.8': - resolution: {integrity: sha512-g8C8eGEyhHTqwPStSwZNSrOlyx0bhK/V/+zX0Y+n7DoRUzyS8eMbVshVOLJTDDC+Qn9IJnilYbIKzpB9n4aBsg==} + resolution: {integrity: sha512-g8C8eGEyhHTqwPStSwZNSrOlyx0bhK/V/+zX0Y+n7DoRUzyS8eMbVshVOLJTDDC+Qn9IJnilYbIKzpB9n4aBsg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.8.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.6': - resolution: {integrity: sha512-qU0rHnA9P/ZoaDKouU1oGPxPWzDKtIfX7eOGi5jOWJKdxieUJdVV+CxWZOpDWlYTd4N3sFQvcnVLJWJ1cLP5TA==} + resolution: {integrity: sha512-qU0rHnA9P/ZoaDKouU1oGPxPWzDKtIfX7eOGi5jOWJKdxieUJdVV+CxWZOpDWlYTd4N3sFQvcnVLJWJ1cLP5TA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.6.tgz} engines: {node: '>= 10'} - cpu: [arm] - os: [linux] '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.8': - resolution: {integrity: sha512-Jmzr3FA4S2tHhaC6yCjac3rGf7hG9R6Gf2z9i9JFcuyy0u79HfQsh/thifbYTF2ic82KJovKKkIB6Z9TdNhCXQ==} + resolution: {integrity: sha512-Jmzr3FA4S2tHhaC6yCjac3rGf7hG9R6Gf2z9i9JFcuyy0u79HfQsh/thifbYTF2ic82KJovKKkIB6Z9TdNhCXQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.8.tgz} engines: {node: '>= 10'} - cpu: [arm] - os: [linux] '@tailwindcss/oxide-linux-arm64-gnu@4.1.6': - resolution: {integrity: sha512-jXy3TSTrbfgyd3UxPQeXC3wm8DAgmigzar99Km9Sf6L2OFfn/k+u3VqmpgHQw5QNfCpPe43em6Q7V76Wx7ogIQ==} + resolution: {integrity: sha512-jXy3TSTrbfgyd3UxPQeXC3wm8DAgmigzar99Km9Sf6L2OFfn/k+u3VqmpgHQw5QNfCpPe43em6Q7V76Wx7ogIQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.6.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] '@tailwindcss/oxide-linux-arm64-gnu@4.1.8': - resolution: {integrity: sha512-qq7jXtO1+UEtCmCeBBIRDrPFIVI4ilEQ97qgBGdwXAARrUqSn/L9fUrkb1XP/mvVtoVeR2bt/0L77xx53bPZ/Q==} + resolution: {integrity: sha512-qq7jXtO1+UEtCmCeBBIRDrPFIVI4ilEQ97qgBGdwXAARrUqSn/L9fUrkb1XP/mvVtoVeR2bt/0L77xx53bPZ/Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.8.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] '@tailwindcss/oxide-linux-arm64-musl@4.1.6': - resolution: {integrity: sha512-8kjivE5xW0qAQ9HX9reVFmZj3t+VmljDLVRJpVBEoTR+3bKMnvC7iLcoSGNIUJGOZy1mLVq7x/gerVg0T+IsYw==} + resolution: {integrity: sha512-8kjivE5xW0qAQ9HX9reVFmZj3t+VmljDLVRJpVBEoTR+3bKMnvC7iLcoSGNIUJGOZy1mLVq7x/gerVg0T+IsYw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.6.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] '@tailwindcss/oxide-linux-arm64-musl@4.1.8': - resolution: {integrity: sha512-O6b8QesPbJCRshsNApsOIpzKt3ztG35gfX9tEf4arD7mwNinsoCKxkj8TgEE0YRjmjtO3r9FlJnT/ENd9EVefQ==} + resolution: {integrity: sha512-O6b8QesPbJCRshsNApsOIpzKt3ztG35gfX9tEf4arD7mwNinsoCKxkj8TgEE0YRjmjtO3r9FlJnT/ENd9EVefQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.8.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] '@tailwindcss/oxide-linux-x64-gnu@4.1.6': - resolution: {integrity: sha512-A4spQhwnWVpjWDLXnOW9PSinO2PTKJQNRmL/aIl2U/O+RARls8doDfs6R41+DAXK0ccacvRyDpR46aVQJJCoCg==} + resolution: {integrity: sha512-A4spQhwnWVpjWDLXnOW9PSinO2PTKJQNRmL/aIl2U/O+RARls8doDfs6R41+DAXK0ccacvRyDpR46aVQJJCoCg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.6.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [linux] '@tailwindcss/oxide-linux-x64-gnu@4.1.8': - resolution: {integrity: sha512-32iEXX/pXwikshNOGnERAFwFSfiltmijMIAbUhnNyjFr3tmWmMJWQKU2vNcFX0DACSXJ3ZWcSkzNbaKTdngH6g==} + resolution: {integrity: sha512-32iEXX/pXwikshNOGnERAFwFSfiltmijMIAbUhnNyjFr3tmWmMJWQKU2vNcFX0DACSXJ3ZWcSkzNbaKTdngH6g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.8.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [linux] '@tailwindcss/oxide-linux-x64-musl@4.1.6': - resolution: {integrity: sha512-YRee+6ZqdzgiQAHVSLfl3RYmqeeaWVCk796MhXhLQu2kJu2COHBkqlqsqKYx3p8Hmk5pGCQd2jTAoMWWFeyG2A==} + resolution: {integrity: sha512-YRee+6ZqdzgiQAHVSLfl3RYmqeeaWVCk796MhXhLQu2kJu2COHBkqlqsqKYx3p8Hmk5pGCQd2jTAoMWWFeyG2A==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.6.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [linux] '@tailwindcss/oxide-linux-x64-musl@4.1.8': - resolution: {integrity: sha512-s+VSSD+TfZeMEsCaFaHTaY5YNj3Dri8rST09gMvYQKwPphacRG7wbuQ5ZJMIJXN/puxPcg/nU+ucvWguPpvBDg==} + resolution: {integrity: sha512-s+VSSD+TfZeMEsCaFaHTaY5YNj3Dri8rST09gMvYQKwPphacRG7wbuQ5ZJMIJXN/puxPcg/nU+ucvWguPpvBDg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.8.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [linux] '@tailwindcss/oxide-wasm32-wasi@4.1.6': - resolution: {integrity: sha512-qAp4ooTYrBQ5pk5jgg54/U1rCJ/9FLYOkkQ/nTE+bVMseMfB6O7J8zb19YTpWuu4UdfRf5zzOrNKfl6T64MNrQ==} + resolution: {integrity: sha512-qAp4ooTYrBQ5pk5jgg54/U1rCJ/9FLYOkkQ/nTE+bVMseMfB6O7J8zb19YTpWuu4UdfRf5zzOrNKfl6T64MNrQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.6.tgz} engines: {node: '>=14.0.0'} - cpu: [wasm32] bundledDependencies: - '@napi-rs/wasm-runtime' - '@emnapi/core' @@ -7462,9 +7116,8 @@ packages: - tslib '@tailwindcss/oxide-wasm32-wasi@4.1.8': - resolution: {integrity: sha512-CXBPVFkpDjM67sS1psWohZ6g/2/cd+cq56vPxK4JeawelxwK4YECgl9Y9TjkE2qfF+9/s1tHHJqrC4SS6cVvSg==} + resolution: {integrity: sha512-CXBPVFkpDjM67sS1psWohZ6g/2/cd+cq56vPxK4JeawelxwK4YECgl9Y9TjkE2qfF+9/s1tHHJqrC4SS6cVvSg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.8.tgz} engines: {node: '>=14.0.0'} - cpu: [wasm32] bundledDependencies: - '@napi-rs/wasm-runtime' - '@emnapi/core' @@ -7474,28 +7127,20 @@ packages: - tslib '@tailwindcss/oxide-win32-arm64-msvc@4.1.6': - resolution: {integrity: sha512-nqpDWk0Xr8ELO/nfRUDjk1pc9wDJ3ObeDdNMHLaymc4PJBWj11gdPCWZFKSK2AVKjJQC7J2EfmSmf47GN7OuLg==} + resolution: {integrity: sha512-nqpDWk0Xr8ELO/nfRUDjk1pc9wDJ3ObeDdNMHLaymc4PJBWj11gdPCWZFKSK2AVKjJQC7J2EfmSmf47GN7OuLg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.6.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] '@tailwindcss/oxide-win32-arm64-msvc@4.1.8': - resolution: {integrity: sha512-7GmYk1n28teDHUjPlIx4Z6Z4hHEgvP5ZW2QS9ygnDAdI/myh3HTHjDqtSqgu1BpRoI4OiLx+fThAyA1JePoENA==} + resolution: {integrity: sha512-7GmYk1n28teDHUjPlIx4Z6Z4hHEgvP5ZW2QS9ygnDAdI/myh3HTHjDqtSqgu1BpRoI4OiLx+fThAyA1JePoENA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.8.tgz} engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] '@tailwindcss/oxide-win32-x64-msvc@4.1.6': - resolution: {integrity: sha512-5k9xF33xkfKpo9wCvYcegQ21VwIBU1/qEbYlVukfEIyQbEA47uK8AAwS7NVjNE3vHzcmxMYwd0l6L4pPjjm1rQ==} + resolution: {integrity: sha512-5k9xF33xkfKpo9wCvYcegQ21VwIBU1/qEbYlVukfEIyQbEA47uK8AAwS7NVjNE3vHzcmxMYwd0l6L4pPjjm1rQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.6.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [win32] '@tailwindcss/oxide-win32-x64-msvc@4.1.8': - resolution: {integrity: sha512-fou+U20j+Jl0EHwK92spoWISON2OBnCazIc038Xj2TdweYV33ZRkS9nwqiUi2d/Wba5xg5UoHfvynnb/UB49cQ==} + resolution: {integrity: sha512-fou+U20j+Jl0EHwK92spoWISON2OBnCazIc038Xj2TdweYV33ZRkS9nwqiUi2d/Wba5xg5UoHfvynnb/UB49cQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.8.tgz} engines: {node: '>= 10'} - cpu: [x64] - os: [win32] '@tailwindcss/oxide@4.1.6': resolution: {integrity: sha512-0bpEBQiGx+227fW4G0fLQ8vuvyy5rsB1YIYNapTq3aRsJ9taF3f5cCaovDjN5pUGKKzcpMrZst/mhNaKAPOHOA==} @@ -7578,7 +7223,7 @@ packages: '@testing-library/dom': '>=7.21.4' '@tootallnate/once@1.1.2': - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@tootallnate/once/-/once-1.1.2.tgz} engines: {node: '>= 6'} '@tootallnate/once@2.0.0': @@ -7648,10 +7293,10 @@ packages: resolution: {integrity: sha512-vXh6JuuaAha6sqEbJueYdh5zNBPPgG1OYumuz2UvLvriN6ABHDSW8ludREGWJb1MLIzbwZn4q4zUbUCerJTJfA==} '@types/command-line-args@5.2.3': - resolution: {integrity: sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==} + resolution: {integrity: sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@types/command-line-args/-/command-line-args-5.2.3.tgz} '@types/command-line-usage@5.0.4': - resolution: {integrity: sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==} + resolution: {integrity: sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@types/command-line-usage/-/command-line-usage-5.0.4.tgz} '@types/connect-history-api-fallback@1.5.4': resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} @@ -7804,7 +7449,7 @@ packages: resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@types/glob/-/glob-7.2.0.tgz} '@types/glob@8.1.0': resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} @@ -7953,7 +7598,7 @@ packages: resolution: {integrity: sha512-f3T4y6VU4fVQDKVqJV4Uppy8c1p/sVvS3peyqxyWnzkqXFJLRU7Y1Bl7rMS1Qe9z0v4M6McY0Fp9yBsgHJUsWQ==} '@types/node@24.2.1': - resolution: {integrity: sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==} + resolution: {integrity: sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@types/node/-/node-24.2.1.tgz} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -8082,7 +7727,7 @@ packages: resolution: {integrity: sha512-230RC8sFeHoT6sSUlRO6a8cAnclO06eeiq1QDfiv2FGCLWFvvERWgwIQD4FWqD9A69BN7Lzee4OXwoMVnnsWDw==} '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@types/trusted-types/-/trusted-types-2.0.7.tgz} '@types/turndown@5.0.5': resolution: {integrity: sha512-TL2IgGgc7B5j78rIccBtlYAnkuv8nUQqhQc+DSYV5j9Be9XOcm/SKOVRuA47xAVI3680Tk9B1d8flK2GWT2+4w==} @@ -8338,49 +7983,31 @@ packages: resolution: {integrity: sha512-3EvQak7EIOLyIGz+IP9qSwRmP08ZRWgTeoRgAXPVkkDXZ8riqJ7LDtkgx++uHBiJ3MUaSdlUYPZcLFFw7E6zGg==} '@vscode/vsce-sign-alpine-arm64@2.0.2': - resolution: {integrity: sha512-E80YvqhtZCLUv3YAf9+tIbbqoinWLCO/B3j03yQPbjT3ZIHCliKZlsy1peNc4XNZ5uIb87Jn0HWx/ZbPXviuAQ==} - cpu: [arm64] - os: [alpine] + resolution: {integrity: sha512-E80YvqhtZCLUv3YAf9+tIbbqoinWLCO/B3j03yQPbjT3ZIHCliKZlsy1peNc4XNZ5uIb87Jn0HWx/ZbPXviuAQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.2.tgz} '@vscode/vsce-sign-alpine-x64@2.0.2': - resolution: {integrity: sha512-n1WC15MSMvTaeJ5KjWCzo0nzjydwxLyoHiMJHu1Ov0VWTZiddasmOQHekA47tFRycnt4FsQrlkSCTdgHppn6bw==} - cpu: [x64] - os: [alpine] + resolution: {integrity: sha512-n1WC15MSMvTaeJ5KjWCzo0nzjydwxLyoHiMJHu1Ov0VWTZiddasmOQHekA47tFRycnt4FsQrlkSCTdgHppn6bw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.2.tgz} '@vscode/vsce-sign-darwin-arm64@2.0.2': - resolution: {integrity: sha512-rz8F4pMcxPj8fjKAJIfkUT8ycG9CjIp888VY/6pq6cuI2qEzQ0+b5p3xb74CJnBbSC0p2eRVoe+WgNCAxCLtzQ==} - cpu: [arm64] - os: [darwin] + resolution: {integrity: sha512-rz8F4pMcxPj8fjKAJIfkUT8ycG9CjIp888VY/6pq6cuI2qEzQ0+b5p3xb74CJnBbSC0p2eRVoe+WgNCAxCLtzQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.2.tgz} '@vscode/vsce-sign-darwin-x64@2.0.2': - resolution: {integrity: sha512-MCjPrQ5MY/QVoZ6n0D92jcRb7eYvxAujG/AH2yM6lI0BspvJQxp0o9s5oiAM9r32r9tkLpiy5s2icsbwefAQIw==} - cpu: [x64] - os: [darwin] + resolution: {integrity: sha512-MCjPrQ5MY/QVoZ6n0D92jcRb7eYvxAujG/AH2yM6lI0BspvJQxp0o9s5oiAM9r32r9tkLpiy5s2icsbwefAQIw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.2.tgz} '@vscode/vsce-sign-linux-arm64@2.0.2': - resolution: {integrity: sha512-Ybeu7cA6+/koxszsORXX0OJk9N0GgfHq70Wqi4vv2iJCZvBrOWwcIrxKjvFtwyDgdeQzgPheH5nhLVl5eQy7WA==} - cpu: [arm64] - os: [linux] + resolution: {integrity: sha512-Ybeu7cA6+/koxszsORXX0OJk9N0GgfHq70Wqi4vv2iJCZvBrOWwcIrxKjvFtwyDgdeQzgPheH5nhLVl5eQy7WA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.2.tgz} '@vscode/vsce-sign-linux-arm@2.0.2': - resolution: {integrity: sha512-Fkb5jpbfhZKVw3xwR6t7WYfwKZktVGNXdg1m08uEx1anO0oUPUkoQRsNm4QniL3hmfw0ijg00YA6TrxCRkPVOQ==} - cpu: [arm] - os: [linux] + resolution: {integrity: sha512-Fkb5jpbfhZKVw3xwR6t7WYfwKZktVGNXdg1m08uEx1anO0oUPUkoQRsNm4QniL3hmfw0ijg00YA6TrxCRkPVOQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.2.tgz} '@vscode/vsce-sign-linux-x64@2.0.2': - resolution: {integrity: sha512-NsPPFVtLaTlVJKOiTnO8Cl78LZNWy0Q8iAg+LlBiCDEgC12Gt4WXOSs2pmcIjDYzj2kY4NwdeN1mBTaujYZaPg==} - cpu: [x64] - os: [linux] + resolution: {integrity: sha512-NsPPFVtLaTlVJKOiTnO8Cl78LZNWy0Q8iAg+LlBiCDEgC12Gt4WXOSs2pmcIjDYzj2kY4NwdeN1mBTaujYZaPg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.2.tgz} '@vscode/vsce-sign-win32-arm64@2.0.2': - resolution: {integrity: sha512-wPs848ymZ3Ny+Y1Qlyi7mcT6VSigG89FWQnp2qRYCyMhdJxOpA4lDwxzlpL8fG6xC8GjQjGDkwbkWUcCobvksQ==} - cpu: [arm64] - os: [win32] + resolution: {integrity: sha512-wPs848ymZ3Ny+Y1Qlyi7mcT6VSigG89FWQnp2qRYCyMhdJxOpA4lDwxzlpL8fG6xC8GjQjGDkwbkWUcCobvksQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.2.tgz} '@vscode/vsce-sign-win32-x64@2.0.2': - resolution: {integrity: sha512-pAiRN6qSAhDM5SVOIxgx+2xnoVUePHbRNC7OD2aOR3WltTKxxF25OfpK8h8UQ7A0BuRkSgREbB59DBlFk4iAeg==} - cpu: [x64] - os: [win32] + resolution: {integrity: sha512-pAiRN6qSAhDM5SVOIxgx+2xnoVUePHbRNC7OD2aOR3WltTKxxF25OfpK8h8UQ7A0BuRkSgREbB59DBlFk4iAeg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.2.tgz} '@vscode/vsce-sign@2.0.5': resolution: {integrity: sha512-GfYWrsT/vypTMDMgWDm75iDmAOMe7F71sZECJ+Ws6/xyIfmB3ELVnVN+LwMFAvmXY+e6eWhR2EzNGF/zAhWY3Q==} @@ -8406,8 +8033,7 @@ packages: react: '>=16.9.0' '@vscode/windows-ca-certs@0.3.3': - resolution: {integrity: sha512-C0Iq5RcH+H31GUZ8bsMORsX3LySVkGAqe4kQfUSVcCqJ0QOhXkhgwUMU7oCiqYLXaQWyXFp6Fj6eMdt05uK7VA==} - os: [win32] + resolution: {integrity: sha512-C0Iq5RcH+H31GUZ8bsMORsX3LySVkGAqe4kQfUSVcCqJ0QOhXkhgwUMU7oCiqYLXaQWyXFp6Fj6eMdt05uK7VA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/@vscode/windows-ca-certs/-/windows-ca-certs-0.3.3.tgz} '@vscode/windows-mutex@0.5.0': resolution: {integrity: sha512-iD29L9AUscpn07aAvhP2QuhrXzuKc1iQpPF6u7ybtvRbR+o+RotfbuKqqF1RDlDDrJZkL+3AZTy4D01U4nEe5A==} @@ -8559,7 +8185,7 @@ packages: deprecated: Use your platform's native atob() and btoa() methods instead abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/abbrev/-/abbrev-1.1.1.tgz} abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} @@ -8790,7 +8416,7 @@ packages: engines: {node: '>= 8'} apache-arrow@18.1.0: - resolution: {integrity: sha512-v/ShMp57iBnBp4lDgV8Jx3d3Q5/Hac25FWmQ98eMahUiHPXcvwIMKJD0hBIgclm/FCG+LwPkAKtkRO1O/W0YGg==} + resolution: {integrity: sha512-v/ShMp57iBnBp4lDgV8Jx3d3Q5/Hac25FWmQ98eMahUiHPXcvwIMKJD0hBIgclm/FCG+LwPkAKtkRO1O/W0YGg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/apache-arrow/-/apache-arrow-18.1.0.tgz} hasBin: true append-buffer@1.0.2: @@ -8808,7 +8434,7 @@ packages: resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} deprecated: This package is no longer supported. @@ -8867,7 +8493,7 @@ packages: engines: {node: '>=0.10.0'} array-back@3.1.0: - resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} + resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/array-back/-/array-back-3.1.0.tgz} engines: {node: '>=6'} array-back@6.2.2: @@ -9113,7 +8739,7 @@ packages: resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} bare-fs@4.1.5: - resolution: {integrity: sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA==} + resolution: {integrity: sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/bare-fs/-/bare-fs-4.1.5.tgz} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -9126,7 +8752,7 @@ packages: engines: {bare: '>=1.14.0'} bare-path@3.0.0: - resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/bare-path/-/bare-path-3.0.0.tgz} bare-stream@2.6.5: resolution: {integrity: sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==} @@ -9177,7 +8803,7 @@ packages: engines: {node: '>=4'} better-sqlite3@11.10.0: - resolution: {integrity: sha512-EwhOpyXiOEL/lKzHz9AW1msWFNzGc/z+LzeB3/jnFJpxu+th2yqvzsSWas1v9jgs9+xiXJcD5A8CJxAG2TaghQ==} + resolution: {integrity: sha512-EwhOpyXiOEL/lKzHz9AW1msWFNzGc/z+LzeB3/jnFJpxu+th2yqvzsSWas1v9jgs9+xiXJcD5A8CJxAG2TaghQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/better-sqlite3/-/better-sqlite3-11.10.0.tgz} big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -9327,7 +8953,7 @@ packages: engines: {node: '>=8'} cacache@15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} + resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/cacache/-/cacache-15.3.0.tgz} engines: {node: '>= 10'} cache-base@1.0.1: @@ -9437,7 +9063,7 @@ packages: engines: {node: '>=12'} chalk-template@0.4.0: - resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} + resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/chalk-template/-/chalk-template-0.4.0.tgz} engines: {node: '>=12'} chalk@1.1.3: @@ -9832,7 +9458,7 @@ packages: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} command-line-args@5.2.1: - resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} + resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/command-line-args/-/command-line-args-5.2.1.tgz} engines: {node: '>=4.0.0'} command-line-args@6.0.1: @@ -9845,7 +9471,7 @@ packages: optional: true command-line-usage@7.0.3: - resolution: {integrity: sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==} + resolution: {integrity: sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/command-line-usage/-/command-line-usage-7.0.3.tgz} engines: {node: '>=12.20.0'} commander@10.0.1: @@ -10714,7 +10340,7 @@ packages: hasBin: true detect-libc@2.0.2: - resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/detect-libc/-/detect-libc-2.0.2.tgz} engines: {node: '>=8'} detect-libc@2.0.4: @@ -10846,7 +10472,7 @@ packages: engines: {node: '>= 4'} dompurify@3.2.6: - resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==} + resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/dompurify/-/dompurify-3.2.6.tgz} domutils@1.7.0: resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} @@ -11085,7 +10711,7 @@ packages: resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/encoding/-/encoding-0.1.13.tgz} end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -11137,7 +10763,7 @@ packages: engines: {node: '>=18'} err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/err-code/-/err-code-2.0.3.tgz} errno@0.1.8: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} @@ -11712,7 +11338,7 @@ packages: hasBin: true find-replace@3.0.0: - resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} + resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/find-replace/-/find-replace-3.0.0.tgz} engines: {node: '>=4.0.0'} find-replace@5.0.2: @@ -11779,7 +11405,7 @@ packages: hasBin: true flatbuffers@24.12.23: - resolution: {integrity: sha512-dLVCAISd5mhls514keQzmEG6QHmUUsNuWsb4tFafIUwvvgDjXhtfAYSKOzt5SWOy+qByV5pbsDZ+Vb7HUOBEdA==} + resolution: {integrity: sha512-dLVCAISd5mhls514keQzmEG6QHmUUsNuWsb4tFafIUwvvgDjXhtfAYSKOzt5SWOy+qByV5pbsDZ+Vb7HUOBEdA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/flatbuffers/-/flatbuffers-24.12.23.tgz} flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} @@ -11939,21 +11565,9 @@ packages: resolution: {integrity: sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==} engines: {node: '>= 0.10'} - fsevents@1.2.13: - resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} - engines: {node: '>= 4.0'} - os: [darwin] - deprecated: Upgrade to fsevents v2 to mitigate potential security issues - - fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/fsevents/-/fsevents-2.3.3.tgz} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] fstream@1.0.12: resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} @@ -11981,7 +11595,7 @@ packages: resolution: {integrity: sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==} gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/gauge/-/gauge-4.0.4.tgz} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} deprecated: This package is no longer supported. @@ -12007,7 +11621,7 @@ packages: engines: {node: '>=18'} gel@2.1.0: - resolution: {integrity: sha512-HCeRqInCt6BjbMmeghJ6BKeYwOj7WJT5Db6IWWAA3IMUUa7or7zJfTUEkUWCxiOtoXnwnm96sFK9Fr47Yh2hOA==} + resolution: {integrity: sha512-HCeRqInCt6BjbMmeghJ6BKeYwOj7WJT5Db6IWWAA3IMUUa7or7zJfTUEkUWCxiOtoXnwnm96sFK9Fr47Yh2hOA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/gel/-/gel-2.1.0.tgz} engines: {node: '>= 18.0.0'} hasBin: true @@ -12132,7 +11746,7 @@ packages: hasBin: true global-agent@3.0.0: - resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/global-agent/-/global-agent-3.0.0.tgz} engines: {node: '>=10.0'} global-dirs@3.0.1: @@ -12585,7 +12199,7 @@ packages: resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz} engines: {node: '>= 6'} http-proxy-agent@5.0.0: @@ -12744,7 +12358,7 @@ packages: engines: {node: '>=12'} infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/infer-owner/-/infer-owner-1.0.4.tgz} infima@0.2.0-alpha.45: resolution: {integrity: sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==} @@ -12861,7 +12475,7 @@ packages: engines: {node: '>=10.13.0'} invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/invariant/-/invariant-2.2.4.tgz} invert-kv@1.0.0: resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==} @@ -13084,7 +12698,7 @@ packages: engines: {node: '>=12'} is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/is-lambda/-/is-lambda-1.0.1.tgz} is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} @@ -13546,6 +13160,9 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + jose@6.1.3: + resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/jose/-/jose-6.1.3.tgz} + jotai@2.15.2: resolution: {integrity: sha512-El86CCfXNMEOytp20NPfppqGGmcp6H6kIA+tJHdmASEUURJCYW4fh8nTHEnB8rUXEFAY1pm8PdHPwnrcPGwdEg==} engines: {node: '>=12.20.0'} @@ -13646,7 +13263,7 @@ packages: resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} json-bignum@0.0.3: - resolution: {integrity: sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==} + resolution: {integrity: sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/json-bignum/-/json-bignum-0.0.3.tgz} engines: {node: '>=0.8'} json-buffer@3.0.1: @@ -13752,7 +13369,7 @@ packages: deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. keytar@7.9.0: - resolution: {integrity: sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==} + resolution: {integrity: sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/keytar/-/keytar-7.9.0.tgz} keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -13882,9 +13499,7 @@ packages: engines: {node: '>= 0.8.0'} libsql@0.5.22: - resolution: {integrity: sha512-NscWthMQt7fpU8lqd7LXMvT9pi+KhhmTHAJWUB/Lj6MWa0MKFv0F2V4C6WKKpjCVZl0VwcDz4nOI3CyaT1DDiA==} - cpu: [x64, arm64, wasm32, arm] - os: [darwin, linux, win32] + resolution: {integrity: sha512-NscWthMQt7fpU8lqd7LXMvT9pi+KhhmTHAJWUB/Lj6MWa0MKFv0F2V4C6WKKpjCVZl0VwcDz4nOI3CyaT1DDiA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/libsql/-/libsql-0.5.22.tgz} lie@3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} @@ -13894,124 +13509,84 @@ packages: engines: {node: '>= 0.8'} lightningcss-darwin-arm64@1.29.2: - resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==} + resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz} engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] lightningcss-darwin-arm64@1.30.1: - resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz} engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] lightningcss-darwin-x64@1.29.2: - resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==} + resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz} engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] lightningcss-darwin-x64@1.30.1: - resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz} engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] lightningcss-freebsd-x64@1.29.2: - resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==} + resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz} engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] lightningcss-freebsd-x64@1.30.1: - resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} + resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz} engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] lightningcss-linux-arm-gnueabihf@1.29.2: - resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==} + resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz} engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] lightningcss-linux-arm-gnueabihf@1.30.1: - resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} + resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz} engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] lightningcss-linux-arm64-gnu@1.29.2: - resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} + resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz} engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] lightningcss-linux-arm64-gnu@1.30.1: - resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} + resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz} engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] lightningcss-linux-arm64-musl@1.29.2: - resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} + resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz} engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] lightningcss-linux-arm64-musl@1.30.1: - resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} + resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz} engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] lightningcss-linux-x64-gnu@1.29.2: - resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} + resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz} engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] lightningcss-linux-x64-gnu@1.30.1: - resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} + resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz} engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] lightningcss-linux-x64-musl@1.29.2: - resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} + resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz} engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] lightningcss-linux-x64-musl@1.30.1: - resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} + resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz} engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] lightningcss-win32-arm64-msvc@1.29.2: - resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==} + resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz} engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] lightningcss-win32-arm64-msvc@1.30.1: - resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} + resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz} engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] lightningcss-win32-x64-msvc@1.29.2: - resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==} + resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz} engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] lightningcss-win32-x64-msvc@1.30.1: - resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} + resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz} engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] lightningcss@1.29.2: resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==} @@ -14275,7 +13850,7 @@ packages: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} make-fetch-happen@9.1.0: - resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} + resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz} engines: {node: '>= 10'} make-iterator@1.0.1: @@ -14739,23 +14314,23 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/minipass-collect/-/minipass-collect-1.0.2.tgz} engines: {node: '>= 8'} minipass-fetch@1.4.1: - resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} + resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/minipass-fetch/-/minipass-fetch-1.4.1.tgz} engines: {node: '>=8'} minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/minipass-flush/-/minipass-flush-1.0.5.tgz} engines: {node: '>= 8'} minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz} engines: {node: '>=8'} minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/minipass-sized/-/minipass-sized-1.0.3.tgz} engines: {node: '>=8'} minipass@3.3.6: @@ -14882,9 +14457,6 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nan@2.23.1: - resolution: {integrity: sha512-r7bBUGKzlqk8oPBDYxt6Z0aEdF1G1rwlMcLk8LCOMbOzf0mG+JUfUzG4fIMWwHWP0iyaLWEQZJmtB7nOHEm/qw==} - nano-css@5.6.2: resolution: {integrity: sha512-+6bHaC8dSDGALM1HJjOHVXpuastdu2xFoZlC77Jh4cg+33Zcgm+Gxd+1xsnpZK14eyHObSp82+ll5y3SX75liw==} peerDependencies: @@ -15055,7 +14627,7 @@ packages: engines: {node: '>= 6.13.0'} node-gyp@8.4.1: - resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} + resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/node-gyp/-/node-gyp-8.4.1.tgz} engines: {node: '>= 10.12.0'} hasBin: true @@ -15090,7 +14662,7 @@ packages: resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==} nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/nopt/-/nopt-5.0.0.tgz} engines: {node: '>=6'} hasBin: true @@ -15161,7 +14733,7 @@ packages: engines: {node: '>=18'} npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/npmlog/-/npmlog-6.0.2.tgz} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} deprecated: This package is no longer supported. @@ -15189,6 +14761,9 @@ packages: engines: {node: '>=8.9'} hasBin: true + oauth4webapi@3.8.3: + resolution: {integrity: sha512-pQ5BsX3QRTgnt5HxgHwgunIRaDXBdkT23tf8dfzmtTIL2LTpdmxgbpbBm0VgFWAIDlezQvQCTgnVIUmHupXHxw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/oauth4webapi/-/oauth4webapi-3.8.3.tgz} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -15340,6 +14915,9 @@ packages: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true + openid-client@6.8.1: + resolution: {integrity: sha512-VoYT6enBo6Vj2j3Q5Ec0AezS+9YGzQo1f5Xc42lreMGlfP4ljiXPKVDvCADh+XHCV/bqPu/wWSiCVXbJKvrODw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/openid-client/-/openid-client-6.8.1.tgz} + opentype.js@0.8.0: resolution: {integrity: sha512-FQHR4oGP+a0m/f6yHoRpBOIbn/5ZWxKd4D/djHVJu8+KpBTYrJda0b7mLcgDEMWXE9xBCJm+qb0yv6FcvPjukg==} hasBin: true @@ -16459,7 +16037,7 @@ packages: engines: {node: '>=0.4.0'} promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/promise-inflight/-/promise-inflight-1.0.1.tgz} peerDependencies: bluebird: '*' peerDependenciesMeta: @@ -16467,10 +16045,10 @@ packages: optional: true promise-limit@2.7.0: - resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==} + resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/promise-limit/-/promise-limit-2.7.0.tgz} promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/promise-retry/-/promise-retry-2.0.1.tgz} engines: {node: '>=10'} promise-stream-reader@1.0.1: @@ -16682,7 +16260,7 @@ packages: react: '>=16.13.1' react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/react-fast-compare/-/react-fast-compare-3.2.2.tgz} react-hook-form@7.57.0: resolution: {integrity: sha512-RbEks3+cbvTP84l/VXGUZ+JMrKOS8ykQCRYdm5aYsxnDquL0vspsyNhGRO7pcH6hsZqWlPOjLye7rJqdtdAmlg==} @@ -17372,7 +16950,7 @@ packages: engines: {node: '>=0.10.0'} search-insights@2.17.3: - resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} + resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/search-insights/-/search-insights-2.17.3.tgz} section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} @@ -17498,7 +17076,7 @@ packages: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} sharp@0.33.5: - resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/sharp/-/sharp-0.33.5.tgz} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@1.2.0: @@ -17665,7 +17243,7 @@ packages: resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} socks-proxy-agent@6.2.1: - resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} + resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz} engines: {node: '>= 10'} socks-proxy-agent@8.0.5: @@ -17788,7 +17366,7 @@ packages: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} sqlite3@5.1.7: - resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} + resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/sqlite3/-/sqlite3-5.1.7.tgz} srcset@4.0.0: resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} @@ -17799,7 +17377,7 @@ packages: engines: {node: '>=0.8'} ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/ssri/-/ssri-8.0.1.tgz} engines: {node: '>= 8'} stable@0.1.8: @@ -18184,7 +17762,7 @@ packages: resolution: {integrity: sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==} table-layout@4.1.1: - resolution: {integrity: sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==} + resolution: {integrity: sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/table-layout/-/table-layout-4.1.1.tgz} engines: {node: '>=12.17'} tailwind-merge@2.6.0: @@ -18613,34 +18191,22 @@ packages: engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} turbo-darwin-64@2.6.1: - resolution: {integrity: sha512-Dm0HwhyZF4J0uLqkhUyCVJvKM9Rw7M03v3J9A7drHDQW0qAbIGBrUijQ8g4Q9Cciw/BXRRd8Uzkc3oue+qn+ZQ==} - cpu: [x64] - os: [darwin] + resolution: {integrity: sha512-Dm0HwhyZF4J0uLqkhUyCVJvKM9Rw7M03v3J9A7drHDQW0qAbIGBrUijQ8g4Q9Cciw/BXRRd8Uzkc3oue+qn+ZQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/turbo-darwin-64/-/turbo-darwin-64-2.6.1.tgz} turbo-darwin-arm64@2.6.1: - resolution: {integrity: sha512-U0PIPTPyxdLsrC3jN7jaJUwgzX5sVUBsKLO7+6AL+OASaa1NbT1pPdiZoTkblBAALLP76FM0LlnsVQOnmjYhyw==} - cpu: [arm64] - os: [darwin] + resolution: {integrity: sha512-U0PIPTPyxdLsrC3jN7jaJUwgzX5sVUBsKLO7+6AL+OASaa1NbT1pPdiZoTkblBAALLP76FM0LlnsVQOnmjYhyw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/turbo-darwin-arm64/-/turbo-darwin-arm64-2.6.1.tgz} turbo-linux-64@2.6.1: - resolution: {integrity: sha512-eM1uLWgzv89bxlK29qwQEr9xYWBhmO/EGiH22UGfq+uXr+QW1OvNKKMogSN65Ry8lElMH4LZh0aX2DEc7eC0Mw==} - cpu: [x64] - os: [linux] + resolution: {integrity: sha512-eM1uLWgzv89bxlK29qwQEr9xYWBhmO/EGiH22UGfq+uXr+QW1OvNKKMogSN65Ry8lElMH4LZh0aX2DEc7eC0Mw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/turbo-linux-64/-/turbo-linux-64-2.6.1.tgz} turbo-linux-arm64@2.6.1: - resolution: {integrity: sha512-MFFh7AxAQAycXKuZDrbeutfWM5Ep0CEZ9u7zs4Hn2FvOViTCzIfEhmuJou3/a5+q5VX1zTxQrKGy+4Lf5cdpsA==} - cpu: [arm64] - os: [linux] + resolution: {integrity: sha512-MFFh7AxAQAycXKuZDrbeutfWM5Ep0CEZ9u7zs4Hn2FvOViTCzIfEhmuJou3/a5+q5VX1zTxQrKGy+4Lf5cdpsA==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/turbo-linux-arm64/-/turbo-linux-arm64-2.6.1.tgz} turbo-windows-64@2.6.1: - resolution: {integrity: sha512-buq7/VAN7KOjMYi4tSZT5m+jpqyhbRU2EUTTvp6V0Ii8dAkY2tAAjQN1q5q2ByflYWKecbQNTqxmVploE0LVwQ==} - cpu: [x64] - os: [win32] + resolution: {integrity: sha512-buq7/VAN7KOjMYi4tSZT5m+jpqyhbRU2EUTTvp6V0Ii8dAkY2tAAjQN1q5q2ByflYWKecbQNTqxmVploE0LVwQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/turbo-windows-64/-/turbo-windows-64-2.6.1.tgz} turbo-windows-arm64@2.6.1: - resolution: {integrity: sha512-7w+AD5vJp3R+FB0YOj1YJcNcOOvBior7bcHTodqp90S3x3bLgpr7tE6xOea1e8JkP7GK6ciKVUpQvV7psiwU5Q==} - cpu: [arm64] - os: [win32] + resolution: {integrity: sha512-7w+AD5vJp3R+FB0YOj1YJcNcOOvBior7bcHTodqp90S3x3bLgpr7tE6xOea1e8JkP7GK6ciKVUpQvV7psiwU5Q==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/turbo-windows-arm64/-/turbo-windows-arm64-2.6.1.tgz} turbo@2.6.1: resolution: {integrity: sha512-qBwXXuDT3rA53kbNafGbT5r++BrhRgx3sAo0cHoDAeG9g1ItTmUMgltz3Hy7Hazy1ODqNpR+C7QwqL6DYB52yA==} @@ -18747,7 +18313,7 @@ packages: hasBin: true typical@4.0.0: - resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} + resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/typical/-/typical-4.0.0.tgz} engines: {node: '>=8'} typical@7.3.0: @@ -18761,7 +18327,7 @@ packages: resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} uglify-js@3.19.3: - resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/uglify-js/-/uglify-js-3.19.3.tgz} engines: {node: '>=0.8.0'} hasBin: true @@ -18794,7 +18360,7 @@ packages: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} undici-types@7.10.0: - resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/undici-types/-/undici-types-7.10.0.tgz} undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} @@ -18845,10 +18411,10 @@ packages: engines: {node: '>=0.10.0'} unique-filename@1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/unique-filename/-/unique-filename-1.1.1.tgz} unique-slug@2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/unique-slug/-/unique-slug-2.0.2.tgz} unique-stream@2.4.0: resolution: {integrity: sha512-V6QarSfeSgDipGA9EZdoIzu03ZDlOFkk+FbEP5cwgrZXN3iIkYR91IjU2EnM6rB835kGQsqHX8qncObTXV+6KA==} @@ -19602,7 +19168,7 @@ packages: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} wordwrapjs@5.1.1: - resolution: {integrity: sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg==} + resolution: {integrity: sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg==, tarball: https://artifactory.oci.oraclecorp.com:443/api/npm/global-release-npm/wordwrapjs/-/wordwrapjs-5.1.1.tgz} engines: {node: '>=12.17'} workerpool@6.5.1: @@ -29425,7 +28991,7 @@ snapshots: readdirp: 2.2.1 upath: 1.2.0 optionalDependencies: - fsevents: 1.2.13 + fsevents: 2.3.3 transitivePeerDependencies: - supports-color @@ -32109,15 +31675,6 @@ snapshots: graceful-fs: 4.2.11 through2: 2.0.5 - fsevents@1.2.13: - dependencies: - bindings: 1.5.0 - nan: 2.23.1 - optional: true - - fsevents@2.3.2: - optional: true - fsevents@2.3.3: optional: true @@ -34272,6 +33829,8 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 + jose@6.1.3: {} + jotai@2.15.2(@babel/core@7.27.1)(@babel/template@7.27.2)(@types/react@18.3.23)(react@18.3.1): optionalDependencies: '@babel/core': 7.27.1 @@ -36100,9 +35659,6 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.23.1: - optional: true - nano-css@5.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -36458,6 +36014,8 @@ snapshots: transitivePeerDependencies: - supports-color + oauth4webapi@3.8.3: {} + object-assign@4.1.1: {} object-copy@0.1.0: @@ -36620,6 +36178,11 @@ snapshots: opener@1.5.2: {} + openid-client@6.8.1: + dependencies: + jose: 6.1.3 + oauth4webapi: 3.8.3 + opentype.js@0.8.0: dependencies: tiny-inflate: 1.0.3 @@ -37137,7 +36700,7 @@ snapshots: dependencies: playwright-core: 1.56.1 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 plist@3.1.0: dependencies: diff --git a/src/api/index.ts b/src/api/index.ts index 992c681200f..88994f64528 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -50,6 +50,7 @@ import { FeatherlessHandler, VercelAiGatewayHandler, DeepInfraHandler, + OcaHandler, // MiniMaxHandler, // kilocode_change BasetenHandler, } from "./providers" @@ -241,6 +242,8 @@ export function buildApiHandler(configuration: ProviderSettings): ApiHandler { return new FeatherlessHandler(options) case "vercel-ai-gateway": return new VercelAiGatewayHandler(options) + case "oca": + return new OcaHandler(options) case "minimax": return new MiniMaxAnthropicHandler(options) // kilocode_change: anthropic case "baseten": diff --git a/src/api/providers/fetchers/modelCache.ts b/src/api/providers/fetchers/modelCache.ts index a5a99261451..8226a68aa7c 100644 --- a/src/api/providers/fetchers/modelCache.ts +++ b/src/api/providers/fetchers/modelCache.ts @@ -20,6 +20,7 @@ import { getOpenRouterModels } from "./openrouter" import { getVercelAiGatewayModels } from "./vercel-ai-gateway" import { getRequestyModels } from "./requesty" import { getGlamaModels } from "./glama" +import { getOCAModels } from "./oca" import { getUnboundModels } from "./unbound" import { getLiteLLMModels } from "./litellm" import { GetModelsOptions } from "../../../shared/api" @@ -35,6 +36,7 @@ import { getSyntheticModels } from "./synthetic" import { getSapAiCoreModels } from "./sap-ai-core" // kilocode_change end +import { DEFAULT_OCA_BASE_URL } from "../oca/utils/constants" import { getDeepInfraModels } from "./deepinfra" import { getHuggingFaceModels } from "./huggingface" import { getRooModels } from "./roo" @@ -140,6 +142,9 @@ async function fetchModelsFromProvider(options: GetModelsOptions): Promise Promise<{ status: number; data: any }> +} + +const defaultHttpClient: HttpClient = { + get: (url, config) => axios.get(url, config), +} + +export function resolveOcaModelInfoUrl(baseUrl: string): string { + const url = new URL(baseUrl) + url.pathname = `${url.pathname.replace(/\/+$/, "")}/v1/model/info` + return url.toString() +} + +export function buildOcaHeaders(accessToken?: string): Record { + const { client, clientVersion, clientIde, clientIdeVersion } = getOcaClientInfo() + + const headers: Record = { + "Content-Type": "application/json", + client: client, + "client-version": clientVersion, + "client-ide": clientIde, + "client-ide-version": clientIdeVersion, + } + if (accessToken) headers["Authorization"] = `Bearer ${accessToken}` + return headers +} + +const DEFAULT_TIMEOUT_MS = 5000 + +function parsePrice(price: any): number | undefined { + if (price !== undefined && price !== null) { + return parseFloat(price) * 1_000_000 + } + return undefined +} + +export async function getOCAModels( + baseUrl: string, + accessToken?: string, + httpClient: HttpClient = defaultHttpClient, +): Promise { + if (!baseUrl || typeof baseUrl !== "string" || baseUrl.trim().length === 0) { + return {} + } + + const url = resolveOcaModelInfoUrl(baseUrl) + const headers = buildOcaHeaders(accessToken) + + try { + const response = await httpClient.get(url, { + headers, + timeout: DEFAULT_TIMEOUT_MS, + ...getAxiosSettings(), + }) + + const dataArray: any[] = Array.isArray(response?.data?.data) ? response.data.data : [] + + const models: ModelRecord = {} + + for (const model of dataArray) { + const modelId = model?.litellm_params?.model + if (typeof modelId !== "string" || !modelId) continue + + const info = model?.model_info || {} + + const maxTokens = + typeof model?.litellm_params?.max_tokens === "number" ? model.litellm_params.max_tokens : -1 + const contextWindow = + typeof info?.context_window === "number" && info.context_window > 0 ? info.context_window : 0 + + const baseInfo: ModelInfo = { + maxTokens, + contextWindow, + supportsImages: !!info?.supports_vision, + supportsPromptCache: !!info?.supports_caching, + inputPrice: parsePrice(info?.input_price), + outputPrice: parsePrice(info?.output_price), + cacheWritesPrice: parsePrice(info?.caching_price), + cacheReadsPrice: parsePrice(info?.cached_price), + description: info?.description, + banner: info?.banner, + } + + models[modelId] = baseInfo + } + + return models + } catch (error: any) { + console.error("Failed to fetch models", error) + + let userMsg: string + const resp = error?.response + const req = error?.request + const status = resp?.status + const statusText = resp?.statusText + const headers = resp?.headers ?? {} + + if (resp) { + userMsg = `Did you set up your OCA access through entitlements? OCA service returned ${status ?? "unknown"} ${statusText ?? "Unknown Status"}.` + } else if (req) { + userMsg = + "Only environment variable based proxy settings is supported. PAC/WPAD files(Ex: http://wpad/wpad.dat) are not supported in kilocode. Remove if any WPAD/PAC reference from your IDE proxy settings, restart the IDE, and try again. (Refer OCA Kilo troubleshooting guide.)" + } else { + userMsg = error?.message || "Error occurred while fetching OCA models." + console.error(userMsg, error) + } + + const opcRequestId = headers?.["opc-request-id"] + const suffix = opcRequestId ? ` opc-request-id: ${opcRequestId}` : "" + throw new Error(`Error refreshing OCA models. ${userMsg}${suffix}`) + } +} diff --git a/src/api/providers/index.ts b/src/api/providers/index.ts index 9563c27d58a..48f9a7dc5f9 100644 --- a/src/api/providers/index.ts +++ b/src/api/providers/index.ts @@ -44,5 +44,6 @@ export { RooHandler } from "./roo" export { FeatherlessHandler } from "./featherless" export { VercelAiGatewayHandler } from "./vercel-ai-gateway" export { DeepInfraHandler } from "./deepinfra" +export { OcaHandler } from "./oca-handler" export { MiniMaxHandler } from "./minimax" export { BasetenHandler } from "./baseten" diff --git a/src/api/providers/oca-handler.ts b/src/api/providers/oca-handler.ts new file mode 100644 index 00000000000..fa09446f125 --- /dev/null +++ b/src/api/providers/oca-handler.ts @@ -0,0 +1,144 @@ +import OpenAI from "openai" + +import type { ModelInfo } from "@roo-code/types" + +import type { ApiHandlerOptions } from "../../shared/api" +import { ApiStream } from "../transform/stream" +import { convertToOpenAiMessages } from "../transform/openai-format" + +import type { SingleCompletionHandler, ApiHandlerCreateMessageMetadata } from "../index" +import { BaseProvider } from "./base-provider" +import { OcaTokenManager } from "./oca/OcaTokenManager" +import { DEFAULT_OCA_BASE_URL } from "./oca/utils/constants" +import { handleOpenAIError } from "./utils/openai-error-handler" +import { getOcaClientInfo } from "./oca/utils/getOcaClientInfo" + +import { DEFAULT_HEADERS as BASE_HEADERS } from "./constants" +import { getModelsFromCache } from "./fetchers/modelCache" + +const DEFAULT_HEADERS = { + ...BASE_HEADERS, + Accept: "application/json", + "Content-Type": "application/json", +} + +export class OcaHandler extends BaseProvider implements SingleCompletionHandler { + private options: ApiHandlerOptions + private baseURL: string + + constructor(options: ApiHandlerOptions) { + super() + this.options = options + this.baseURL = process.env.OCA_API_BASE ?? DEFAULT_OCA_BASE_URL + } + + private async getClient(): Promise { + return this.getClientWithBase(this.baseURL) + } + + private async getClientWithBase(baseURL: string): Promise { + const token = await OcaTokenManager.getValid() + if (!token?.access_token) { + throw new Error("Please sign in with Oracle SSO at Settings > Providers > Oracle Code Assist.") + } + + const { client, clientVersion, clientIde, clientIdeVersion } = getOcaClientInfo() + + return new OpenAI({ + apiKey: token.access_token, + baseURL, + defaultHeaders: { + ...DEFAULT_HEADERS, + client: client, + "client-version": clientVersion, + "client-ide": clientIde, + "client-ide-version": clientIdeVersion, + }, + }) + } + + private decorateErrorWithOpcRequestId(error: any, processedError: any) { + const opcRequestId = + typeof error?.headers?.get === "function" ? (error.headers.get("opc-request-id") as string | null) : null + + if (opcRequestId && processedError && typeof processedError === "object" && "message" in processedError) { + ;(processedError as any).message = `${(processedError as any).message} opc-request-id: ${opcRequestId}` + } + return processedError + } + + override async *createMessage( + systemPrompt: string, + messages: any[], + _metadata?: ApiHandlerCreateMessageMetadata, + ): ApiStream { + const client = await this.getClient() + + const request: OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming = { + model: this.options.apiModelId || "auto", + messages: [{ role: "system", content: systemPrompt }, ...convertToOpenAiMessages(messages)], + temperature: this.options.modelTemperature ?? 0, + stream: true as const, + stream_options: { include_usage: true }, + } + + let stream + try { + stream = await client.chat.completions.create(request) + } catch (err: any) { + throw this.decorateErrorWithOpcRequestId(err, handleOpenAIError(err, "Oracle Code Assist")) + } + + for await (const chunk of stream) { + const delta = chunk.choices[0]?.delta + + if (delta?.content) { + yield { type: "text", text: delta.content } + } + if ("reasoning_content" in (delta || {}) && typeof (delta as any).reasoning_content === "string") { + yield { type: "reasoning", text: (delta as any).reasoning_content as string } + } + if (chunk.usage) { + yield { + type: "usage", + inputTokens: chunk.usage.prompt_tokens || 0, + outputTokens: chunk.usage.completion_tokens || 0, + } + } + } + } + + async completePrompt(prompt: string): Promise { + const client = await this.getClient() + try { + const resp = await client.chat.completions.create({ + model: this.options.apiModelId || "auto", + messages: [{ role: "user", content: prompt }], + } as any) + return (resp as any).choices?.[0]?.message?.content || "" + } catch (err: any) { + throw this.decorateErrorWithOpcRequestId(err, handleOpenAIError(err, "Oracle Code Assist")) + } + } + + override getModel() { + const id = this.options.apiModelId || "auto" + const cached = getModelsFromCache("oca") + const selected = id !== "auto" ? cached?.[id] : undefined + + const info: ModelInfo = { + maxTokens: this.options.modelMaxTokens ?? selected?.maxTokens ?? 4096, + contextWindow: selected?.contextWindow ?? 128000, + supportsImages: selected?.supportsImages ?? true, + supportsPromptCache: selected?.supportsPromptCache ?? false, + inputPrice: selected?.inputPrice ?? 0, + outputPrice: selected?.outputPrice ?? 0, + cacheWritesPrice: selected?.cacheWritesPrice, + cacheReadsPrice: selected?.cacheReadsPrice, + description: selected?.description, + banner: selected?.banner, + } + + return { id, info } + } +} diff --git a/src/api/providers/oca/OcaTokenManager.ts b/src/api/providers/oca/OcaTokenManager.ts new file mode 100644 index 00000000000..00c5669449c --- /dev/null +++ b/src/api/providers/oca/OcaTokenManager.ts @@ -0,0 +1,318 @@ +import http from "http" +import { URL } from "url" +import * as vscode from "vscode" +import { ContextProxy } from "../../../core/config/ContextProxy" +import { + DEFAULT_INTERNAL_IDCS_CLIENT_ID, + DEFAULT_INTERNAL_IDCS_URL, + DEFAULT_INTERNAL_IDCS_SCOPES, + DEFAULT_INTERNAL_IDCS_PORT_CANDIDATES, + DEFAULT_INTERNAL_USE_PKCE, +} from "./utils/constants" +import { + discovery, + buildAuthorizationUrl, + authorizationCodeGrant, + randomPKCECodeVerifier, + calculatePKCECodeChallenge, + refreshTokenGrant, + type TokenEndpointResponse, +} from "openid-client" + +type OidcDiscoveryConfig = Awaited> + +type TokenRecord = { + access_token?: string + refresh_token?: string + id_token?: string + token_type?: string + scope?: string + expires_in?: number + expires_at?: number // epoch seconds +} + +const SECRET_STORAGE_KEY = "ocaTokenRecord" +const RENEW_TOKEN_BUFFER_SEC = 180 +const IDCS_URL = DEFAULT_INTERNAL_IDCS_URL.replace(/\/+$/, "") +const REDIRECT_URI_TEMPLATE = (port: number) => `http://localhost:${port}/callback` + +/** + * Manages Oracle Code Assist OAuth tokens: + * - Secure persistence via SecretStorage (VS Code; bridged in JetBrains) + * - PKCE auth code flow with local HTTP callback + * - In-memory caching and refresh with refresh_token + */ +export class OcaTokenManager { + private static cached: TokenRecord | null = null + private static inflightLogin: Promise | null = null + + private static async save(t: TokenRecord) { + await ContextProxy.instance.rawContext.secrets.store(SECRET_STORAGE_KEY, JSON.stringify(t)) + } + + private static async load(): Promise { + try { + const json = await ContextProxy.instance.rawContext.secrets.get(SECRET_STORAGE_KEY) + if (json) { + return JSON.parse(json) as TokenRecord + } + + return null + } catch { + return null + } + } + + private static async discoveryWithRetry( + discoveryUrl: URL, + { + retries = 3, + baseDelayMs = 500, + maxDelayMs = 2000, + }: { retries?: number; baseDelayMs?: number; maxDelayMs?: number } = {}, + ): Promise { + let lastErr: unknown = null + for (let attempt = 0; attempt <= retries; attempt++) { + try { + return await discovery(discoveryUrl, DEFAULT_INTERNAL_IDCS_CLIENT_ID) + } catch (err) { + if (attempt === retries) { + lastErr = err + break + } + lastErr = err + const backoff = Math.min(maxDelayMs, baseDelayMs * Math.pow(2, attempt)) + const jitter = 0.5 + Math.random() // 0.5x .. 1.5x + const delay = Math.round(backoff * jitter) + await this.sleep(delay) + } + } + console.error("OCA: OIDC discovery failed:", lastErr) + throw new Error( + "Only environment variable based proxy settings is supported. PAC/WPAD files (Ex: http://wpad/wpad.dat) are not supported in kilocode. Remove if any WPAD/PAC reference from your IDE proxy settings, restart the IDE, and try again. (Refer OCA Kilo troubleshooting guide.)", + ) + } + + private static async sleep(ms: number) { + return new Promise((resolve) => setTimeout(resolve, ms)) + } + + private static isValid(t: TokenRecord) { + const now = Math.floor(Date.now() / 1000) + return !!t.expires_at && now < t.expires_at - RENEW_TOKEN_BUFFER_SEC + } + + private static async tryRefresh(token: TokenRecord): Promise { + try { + const discoveryUrl = new URL(`${IDCS_URL}/.well-known/openid-configuration`) + const config = await this.discoveryWithRetry(discoveryUrl) + const res = await refreshTokenGrant(config, token.refresh_token!) + const nowSec = Math.floor(Date.now() / 1000) + const next: TokenRecord = { + access_token: res.access_token, + refresh_token: res.refresh_token ?? token.refresh_token, + id_token: res.id_token, + token_type: res.token_type, + scope: res.scope, + expires_in: res.expires_in, + expires_at: typeof res.expires_in === "number" ? nowSec + res.expires_in : token.expires_at, + } + await this.save(next) + this.cached = next + return next + } catch (err) { + console.error("OCA: refreshTokenGrant failed:", err) + return null + } + } + + public static async getValid(): Promise { + let token = this.cached + if (!token) { + token = await this.load() + if (token) this.cached = token + } + + if (token && this.isValid(token)) { + return token + } + + if (token?.refresh_token) { + const refreshed = await this.tryRefresh(token) + if (refreshed) return refreshed + } + + return null + } + + public static async loginWithoutAutoOpen(postAuthUrl: (url: string) => void): Promise { + const existing = await this.getValid() + if (existing) return existing + + if (this.inflightLogin) return this.inflightLogin + + this.inflightLogin = this.runInteractiveLogin(postAuthUrl).finally(() => { + this.inflightLogin = null + }) + + return this.inflightLogin + } + + private static async runInteractiveLogin(postAuthUrl: (url: string) => void): Promise { + let config + try { + const discoveryUrl = new URL(`${IDCS_URL}/.well-known/openid-configuration`) + config = await this.discoveryWithRetry(discoveryUrl) + } catch (e: any) { + if (e instanceof Error) { + throw e + } + throw new Error(formatOcaError(e)) + } + + let code_verifier: string | undefined + let code_challenge: string | undefined + if (DEFAULT_INTERNAL_USE_PKCE) { + code_verifier = randomPKCECodeVerifier() + code_challenge = await calculatePKCECodeChallenge(code_verifier) + } + + // Start a local HTTP server to receive the redirect, with port fallbacks + const attemptOnPort = (port: number): Promise => { + return new Promise((resolve, reject) => { + const redirectUri = REDIRECT_URI_TEMPLATE(port) + + const authUrl = buildAuthorizationUrl(config, { + redirect_uri: redirectUri, + scope: DEFAULT_INTERNAL_IDCS_SCOPES, + ...(DEFAULT_INTERNAL_USE_PKCE && code_challenge + ? { code_challenge, code_challenge_method: "S256" as const } + : {}), + }) + + const server = http.createServer(async (req, res) => { + if (!req.url) return + + const host = req.headers.host ?? `localhost:${port}` + const currentUrl = new URL(req.url, `http://${host}`) + if (currentUrl.pathname !== "/callback") return + + try { + const t = await authorizationCodeGrant( + config, + currentUrl, + DEFAULT_INTERNAL_USE_PKCE && code_verifier ? { pkceCodeVerifier: code_verifier } : {}, + ) + + res.statusCode = 200 + res.setHeader("Content-Type", "text/plain") + res.end("Authentication successful! You can close this window.") + server.close() + resolve(t) + } catch (err) { + res.statusCode = 400 + res.setHeader("Content-Type", "text/plain") + res.end("Authentication failed.") + server.close() + reject(err) + } + }) + + server.on("error", (err: any) => { + if (err?.code === "EADDRINUSE") { + try { + server.close() + } catch {} + const e = new Error("Port in use") + ;(e as any).code = "EADDRINUSE" + reject(e) + } else { + reject(err) + } + }) + + server.listen(port, "localhost", () => { + try { + postAuthUrl(authUrl.href) + } catch (e) { + console.error("OCA: postAuthUrl callback threw:", e) + } + try { + void vscode.env.openExternal(vscode.Uri.parse(authUrl.href)) + } catch (e) { + console.error("OCA: failed to openExternal:", e) + } + }) + }) + } + + let tokens: TokenEndpointResponse | null = null + let lastError: unknown = null + for (const p of DEFAULT_INTERNAL_IDCS_PORT_CANDIDATES) { + try { + tokens = await attemptOnPort(p) + break + } catch (err: any) { + lastError = err + if (err?.code === "EADDRINUSE") { + continue + } + throw new Error(formatOcaError(err)) + } + } + if (!tokens) { + throw new Error( + formatOcaError(lastError ?? new Error("Failed to start local callback server on any configured port")), + ) + } + + const nowSec = Math.floor(Date.now() / 1000) + const tokenSet: TokenRecord = { + access_token: tokens.access_token, + refresh_token: tokens.refresh_token, + id_token: tokens.id_token, + token_type: tokens.token_type, + scope: tokens.scope, + expires_in: tokens.expires_in, + expires_at: typeof tokens.expires_in === "number" ? nowSec + tokens.expires_in : undefined, + } + + await this.save(tokenSet) + this.cached = tokenSet + return tokenSet + } + + public static async logout(): Promise { + try { + this.cached = null + this.inflightLogin = null + try { + await ContextProxy.instance.rawContext.secrets.delete(SECRET_STORAGE_KEY) + } catch {} + } catch (e) { + console.error("OCA: logout failed:", e) + } + } +} + +function formatOcaError(err: unknown): string { + const anyErr = err as any + const raw = anyErr?.error_description || anyErr?.message || String(anyErr) + const msg = typeof raw === "string" ? raw : "Authentication failed. Please try again." + const lower = msg.toLowerCase() + + if (anyErr?.code === "EADDRINUSE") { + return "Login failed: local callback port is in use. Close other sign-in attempts or try again." + } + if ( + lower.includes("getaddrinfo") || + lower.includes("econnrefused") || + lower.includes("network") || + lower.includes("fetch failed") || + lower.includes("dns") + ) + return "Cannot reach Oracle IDCS. Check Proxy/Internet/VPN connectivity, follow OCA troubleshooting gudlines and try again." + if (lower.includes("openid-configuration") || lower.includes("well-known")) + return "Failed to discover identity configuration. Verify the IDCS URL and network connectivity." + return msg +} diff --git a/src/api/providers/oca/utils/constants.ts b/src/api/providers/oca/utils/constants.ts new file mode 100644 index 00000000000..3ff44fd6b4c --- /dev/null +++ b/src/api/providers/oca/utils/constants.ts @@ -0,0 +1,14 @@ +import os from "os" +import path from "path" + +export const DEFAULT_INTERNAL_IDCS_CLIENT_ID = "a8331954c0cf48ba99b5dd223a14c6ea" +export const DEFAULT_INTERNAL_IDCS_URL = "https://idcs-9dc693e80d9b469480d7afe00e743931.identity.oraclecloud.com" +export const DEFAULT_INTERNAL_IDCS_SCOPES = "openid offline_access" +export const DEFAULT_INTERNAL_IDCS_PORT_CANDIDATES = [8669, 8668, 8667] +export const DEFAULT_INTERNAL_USE_PKCE = true + +// OCA LITELLM +export const DEFAULT_OCA_BASE_URL = + "https://code-internal.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm" + +export const OCA_CONFIG_PATH = path.join(os.homedir(), ".oca", "config.json") diff --git a/src/api/providers/oca/utils/getOcaClientInfo.ts b/src/api/providers/oca/utils/getOcaClientInfo.ts new file mode 100644 index 00000000000..b5a4ea42678 --- /dev/null +++ b/src/api/providers/oca/utils/getOcaClientInfo.ts @@ -0,0 +1,37 @@ +import * as vscode from "vscode" +import { Package } from "../../../../shared/package" +import { getKiloCodeWrapperProperties } from "../../../../core/kilocode/wrapper" + +/** + * Get OCA client information with safe fallbacks. + */ +export function getOcaClientInfo(): { + client: string + clientVersion: string + clientIde: string + clientIdeVersion: string +} { + let client = "kilocode" + let clientVersion = "" + let clientIde = "" + let clientIdeVersion = "" + + try { + client = Package.name + clientVersion = Package.version + + const { kiloCodeWrapperTitle, kiloCodeWrapperVersion } = getKiloCodeWrapperProperties() + + clientIde = kiloCodeWrapperTitle || vscode.env.appName + clientIdeVersion = kiloCodeWrapperVersion || vscode.version + } catch (error) { + console.warn("Failed to get client information for OCA headers:", error) + } + + return { + client, + clientVersion, + clientIde, + clientIdeVersion, + } +} diff --git a/src/core/webview/webviewMessageHandler.ts b/src/core/webview/webviewMessageHandler.ts index 0d54817f45d..3f1700ff72d 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -79,6 +79,8 @@ import { getModels, flushModels } from "../../api/providers/fetchers/modelCache" import { GetModelsOptions } from "../../shared/api" import { generateSystemPrompt } from "./generateSystemPrompt" import { getCommand } from "../../utils/commands" +import { OcaTokenManager } from "../../api/providers/oca/OcaTokenManager" +import { DEFAULT_OCA_BASE_URL } from "../../api/providers/oca/utils/constants" import { toggleWorkflow, toggleRule, createRuleFile, deleteRuleFile } from "./kilorules" import { mermaidFixPrompt } from "../prompts/utilities/mermaid" // kilocode_change import { editMessageHandler, fetchKilocodeNotificationsHandler } from "../kilocode/webview/webviewMessageHandlerUtils" // kilocode_change @@ -868,6 +870,7 @@ export const webviewMessageHandler = async ( glama: {}, ollama: {}, lmstudio: {}, + oca: {}, roo: {}, synthetic: {}, // kilocode_change "sap-ai-core": {}, // kilocode_change @@ -978,6 +981,24 @@ export const webviewMessageHandler = async ( ] // kilocode_change end + try { + const valid = await OcaTokenManager.getValid() + if (valid?.access_token) { + candidates.push({ + key: "oca", + options: { + provider: "oca", + apiKey: valid.access_token, + baseUrl: process.env.OCA_API_BASE ?? DEFAULT_OCA_BASE_URL, + } as GetModelsOptions, + }) + } else { + console.debug("OCA model fetch skipped: user must Sign in.") + } + } catch (e) { + console.debug("OCA model fetch skipped: error occurred while validating IDCS token..", e) + } + // IO Intelligence is conditional on api key if (apiConfiguration.ioIntelligenceApiKey) { candidates.push({ @@ -1246,6 +1267,51 @@ export const webviewMessageHandler = async ( vscode.env.openExternal(vscode.Uri.parse(message.url)) } break + case "oca/login": { + OcaTokenManager.loginWithoutAutoOpen((url: string) => { + provider.postMessageToWebview({ type: "oca/show-auth-url", url }) + }) + .then(async () => { + await provider.postMessageToWebview({ type: "oca/login-success" }) + }) + .catch(async (error: unknown) => { + await provider.postMessageToWebview({ + type: "oca/login-error", + error: error instanceof Error ? error.message : String(error), + }) + }) + break + } + case "oca/logout": { + try { + await OcaTokenManager.logout() + try { + await provider.context.secrets.delete("ocaTokenSet") + } catch {} + await provider.postMessageToWebview({ type: "oca/logout-success" }) + } catch (error) { + await provider.postMessageToWebview({ + type: "oca/login-error", + error: error instanceof Error ? error.message : String(error), + }) + } + break + } + case "oca/status": { + try { + const valid = await OcaTokenManager.getValid() + await provider.postMessageToWebview({ + type: "oca/status", + authenticated: !!valid?.access_token, + }) + } catch { + await provider.postMessageToWebview({ + type: "oca/status", + authenticated: false, + }) + } + break + } case "checkpointDiff": const result = checkoutDiffPayloadSchema.safeParse(message.payload) diff --git a/src/package.json b/src/package.json index 9a81761ef70..0b595b4b8eb 100644 --- a/src/package.json +++ b/src/package.json @@ -716,6 +716,7 @@ "node-ipc": "^12.0.0", "ollama": "^0.5.17", "openai": "^5.12.2", + "openid-client": "^6.8.1", "os-name": "^6.0.0", "p-limit": "^6.2.0", "p-map": "^7.0.3", diff --git a/src/shared/ExtensionMessage.ts b/src/shared/ExtensionMessage.ts index 9c5a4a5ba51..73e9e444019 100644 --- a/src/shared/ExtensionMessage.ts +++ b/src/shared/ExtensionMessage.ts @@ -178,6 +178,11 @@ export interface ExtensionMessage { | "browserSessionUpdate" | "browserSessionNavigate" | "organizationSwitchResult" + | "oca/show-auth-url" + | "oca/login-success" + | "oca/login-error" + | "oca/status" + | "oca/logout-success" | "showTimestamps" // kilocode_change | "apiMessagesSaved" // kilocode_change: File save event for API messages | "taskMessagesSaved" // kilocode_change: File save event for task messages @@ -271,6 +276,7 @@ export interface ExtensionMessage { message: string } // kilocode_change url?: string // kilocode_change + authenticated?: boolean keybindings?: Record // kilocode_change setting?: string value?: any diff --git a/src/shared/WebviewMessage.ts b/src/shared/WebviewMessage.ts index aa51666b924..ba9e9c1f5f4 100644 --- a/src/shared/WebviewMessage.ts +++ b/src/shared/WebviewMessage.ts @@ -255,6 +255,13 @@ export interface WebviewMessage { | "editQueuedMessage" | "dismissUpsell" | "getDismissedUpsells" + | "oca/login" + | "oca/logout" + | "oca/show-auth-url" + | "oca/login-success" + | "oca/login-error" + | "oca/status" + | "oca/logout-success" | "updateSettings" | "requestManagedIndexerState" // kilocode_change | "allowedCommands" @@ -332,6 +339,7 @@ export interface WebviewMessage { filters?: { type?: string; search?: string; tags?: string[] } settings?: any url?: string // For openExternal + authenticated?: boolean mpItem?: MarketplaceItem mpInstallOptions?: InstallMarketplaceItemOptions config?: Record // Add config to the payload diff --git a/src/shared/api.ts b/src/shared/api.ts index 7013e82b42e..ca8b8b7b36c 100644 --- a/src/shared/api.ts +++ b/src/shared/api.ts @@ -197,6 +197,7 @@ const dynamicProviderExtras = { "nano-gpt": {} as { nanoGptModelList?: "all" | "personalized" | "subscription" }, // kilocode_change ollama: {} as { numCtx?: number }, // kilocode_change lmstudio: {} as {}, // eslint-disable-line @typescript-eslint/no-empty-object-type + oca: {} as { apiKey: string; baseUrl?: string }, ovhcloud: {} as { apiKey?: string }, // kilocode_change inception: {} as { apiKey?: string; baseUrl?: string }, // kilocode_change synthetic: {} as { apiKey?: string }, // kilocode_change diff --git a/src/shared/checkExistApiConfig.ts b/src/shared/checkExistApiConfig.ts index db6afef64f3..fef09ca04e8 100644 --- a/src/shared/checkExistApiConfig.ts +++ b/src/shared/checkExistApiConfig.ts @@ -5,10 +5,10 @@ export function checkExistKey(config: ProviderSettings | undefined) { return false } - // Special case for human-relay, fake-ai, claude-code, qwen-code, and roo providers which don't need any configuration. + // Special case for human-relay, fake-ai, claude-code, qwen-code, oca and roo providers which don't need any configuration. if ( config.apiProvider && - ["human-relay", "fake-ai", "claude-code", "qwen-code", "roo", "gemini-cli"].includes(config.apiProvider) // kilocode_change: add gemini-cli + ["human-relay", "fake-ai", "claude-code", "qwen-code", "roo", "gemini-cli", "oca"].includes(config.apiProvider) // kilocode_change: add gemini-cli ) { return true } diff --git a/webview-ui/package.json b/webview-ui/package.json index fa00f6fcad3..5d19532504a 100644 --- a/webview-ui/package.json +++ b/webview-ui/package.json @@ -56,6 +56,7 @@ "lru-cache": "^11.1.0", "lucide-react": "^0.518.0", "mermaid": "^11.4.1", + "dompurify": "^3.2.6", "posthog-js": "^1.227.2", "pretty-bytes": "^7.0.0", "qrcode": "^1.5.4", diff --git a/webview-ui/src/components/kilocode/chat/ModelSelector.tsx b/webview-ui/src/components/kilocode/chat/ModelSelector.tsx index 1c08983c82d..46586fa0797 100644 --- a/webview-ui/src/components/kilocode/chat/ModelSelector.tsx +++ b/webview-ui/src/components/kilocode/chat/ModelSelector.tsx @@ -1,13 +1,15 @@ -import { useMemo } from "react" +import { useMemo, useState, useEffect } from "react" import { SelectDropdown, DropdownOptionType } from "@/components/ui" import { OPENROUTER_DEFAULT_PROVIDER_NAME, type ProviderSettings } from "@roo-code/types" import { vscode } from "@src/utils/vscode" +import { OCAModelService } from "@src/services/OCAModelService" import { useAppTranslation } from "@src/i18n/TranslationContext" import { cn } from "@src/lib/utils" import { prettyModelName } from "../../../utils/prettyModelName" import { useProviderModels } from "../hooks/useProviderModels" import { getModelIdKey, getSelectedModelId } from "../hooks/useSelectedModel" import { usePreferredModels } from "@/components/ui/hooks/kilocode/usePreferredModels" +import OcaAcknowledgeModal from "../common/OcaAcknowledgeModal" interface ModelSelectorProps { currentApiConfigName?: string @@ -32,6 +34,10 @@ export const ModelSelector = ({ const modelIdKey = getModelIdKey({ provider }) const isAutocomplete = apiConfiguration.profileType === "autocomplete" + const [ackOpen, setAckOpen] = useState(false) + const [pendingModelId, setPendingModelId] = useState(null) + const bannerHtml = pendingModelId ? (providerModels as any)?.[pendingModelId]?.banner : undefined + const modelsIds = usePreferredModels(providerModels) const options = useMemo(() => { const missingModelIds = modelsIds.indexOf(selectedModelId) >= 0 ? [] : [selectedModelId] @@ -44,6 +50,37 @@ export const ModelSelector = ({ const disabled = isLoading || isError || isAutocomplete + useEffect(() => { + if (provider !== "oca") return + try { + OCAModelService.setOcaModels(providerModels as any) + } catch (err) { + console.debug("ModelSelector: failure setting OCA models", err) + } + + const saved = OCAModelService.getOcaSelectedModelId() + const first = Object.keys(providerModels || {})[0] + const target = saved || first + + if (!target || !currentApiConfigName) return + if (selectedModelId === target || !providerModels[target]) return + + vscode.postMessage({ + type: "upsertApiConfiguration", + text: currentApiConfigName, + apiConfiguration: { + ...apiConfiguration, + [getModelIdKey({ provider })]: target, + openRouterSpecificProvider: OPENROUTER_DEFAULT_PROVIDER_NAME, + }, + }) + try { + OCAModelService.setOcaSelectedModelId(target) + } catch (err) { + console.debug("ModelSelector: failure setting selected OCA model", err) + } + }, [provider, providerModels, selectedModelId, currentApiConfigName, apiConfiguration]) + const onChange = (value: string) => { if (!currentApiConfigName) { return @@ -52,6 +89,18 @@ export const ModelSelector = ({ // don't reset openRouterSpecificProvider return } + if (provider === "oca" && (providerModels as any)?.[value]?.banner) { + setPendingModelId(value) + setAckOpen(true) + return + } + if (provider === "oca") { + try { + OCAModelService.setOcaSelectedModelId(value) + } catch (err) { + console.debug("ModelSelector: failure setting selected OCA model on change", err) + } + } vscode.postMessage({ type: "upsertApiConfiguration", text: currentApiConfigName, @@ -63,6 +112,32 @@ export const ModelSelector = ({ }) } + const onAcknowledge = () => { + if (!currentApiConfigName || !pendingModelId || apiConfiguration[modelIdKey] === pendingModelId) { + setAckOpen(false) + setPendingModelId(null) + return + } + vscode.postMessage({ + type: "upsertApiConfiguration", + text: currentApiConfigName, + apiConfiguration: { + ...apiConfiguration, + [modelIdKey]: pendingModelId, + openRouterSpecificProvider: OPENROUTER_DEFAULT_PROVIDER_NAME, + }, + }) + try { + if (provider === "oca") { + OCAModelService.setOcaSelectedModelId(pendingModelId) + } + } catch (err) { + console.debug("ModelSelector: failure setting selected OCA model on acknowledge", err) + } + setAckOpen(false) + setPendingModelId(null) + } + if (isLoading) { return null } @@ -82,19 +157,30 @@ export const ModelSelector = ({ } return ( - + <> + { + setAckOpen(false) + setPendingModelId(null) + }} + /> + + ) } diff --git a/webview-ui/src/components/kilocode/common/OcaAcknowledgeModal.tsx b/webview-ui/src/components/kilocode/common/OcaAcknowledgeModal.tsx new file mode 100644 index 00000000000..52283779cf3 --- /dev/null +++ b/webview-ui/src/components/kilocode/common/OcaAcknowledgeModal.tsx @@ -0,0 +1,73 @@ +import React from "react" +import { VSCodeButton } from "@vscode/webview-ui-toolkit/react" +import DOMPurify from "dompurify" + +type OcaAcknowledgeModalProps = { + open: boolean + bannerHtml?: string | null + onAcknowledge: () => void + onCancel: () => void +} + +export const OcaAcknowledgeModal: React.FC = ({ + open, + bannerHtml, + onAcknowledge, + onCancel, +}) => { + if (!open) return null + + return ( +
+
+

+ Acknowledgement Required +

+

+ Disclaimer: Prohibited Data Submission +

+ +
+ {bannerHtml ? ( +
+ ) : ( +
This model requires acknowledgement before use.
+ )} +
+
+ + Cancel + + I acknowledge and agree +
+
+
+ ) +} + +export default OcaAcknowledgeModal diff --git a/webview-ui/src/components/kilocode/hooks/__tests__/getModelsByProvider.spec.ts b/webview-ui/src/components/kilocode/hooks/__tests__/getModelsByProvider.spec.ts index 9d9c2dd7c50..124df941e99 100644 --- a/webview-ui/src/components/kilocode/hooks/__tests__/getModelsByProvider.spec.ts +++ b/webview-ui/src/components/kilocode/hooks/__tests__/getModelsByProvider.spec.ts @@ -28,6 +28,7 @@ describe("getModelsByProvider", () => { deepinfra: { "test-model": testModel }, "vercel-ai-gateway": { "test-model": testModel }, huggingface: { "test-model": testModel }, + oca: { "test-model": testModel }, gemini: { "test-model": testModel }, ovhcloud: { "test-model": testModel }, chutes: { "test-model": testModel }, diff --git a/webview-ui/src/components/kilocode/hooks/useProviderModels.ts b/webview-ui/src/components/kilocode/hooks/useProviderModels.ts index ebe9e9bcbcf..d2fd6e95a5a 100644 --- a/webview-ui/src/components/kilocode/hooks/useProviderModels.ts +++ b/webview-ui/src/components/kilocode/hooks/useProviderModels.ts @@ -290,6 +290,12 @@ export const getModelsByProvider = ({ defaultModel: deepInfraDefaultModelId, } } + case "oca": { + return { + models: routerModels.oca, + defaultModel: "", + } + } //kilocode_change start case "nano-gpt": { return { @@ -337,14 +343,18 @@ export const useProviderModels = (apiConfiguration?: ProviderSettings) => { syntheticApiKey: apiConfiguration?.syntheticApiKey, // kilocode_change }) - const { models, defaultModel } = + const selection = apiConfiguration && typeof routerModels.data !== "undefined" ? getModelsByProvider({ provider, routerModels: routerModels.data, kilocodeDefaultModel, }) - : FALLBACK_MODELS + : provider === "oca" + ? { models: {}, defaultModel: "" } + : FALLBACK_MODELS + + const { models, defaultModel } = selection return { provider, diff --git a/webview-ui/src/components/settings/ApiOptions.tsx b/webview-ui/src/components/settings/ApiOptions.tsx index e06ab7d4477..d592bb3229e 100644 --- a/webview-ui/src/components/settings/ApiOptions.tsx +++ b/webview-ui/src/components/settings/ApiOptions.tsx @@ -120,6 +120,7 @@ import { Featherless, VercelAiGateway, DeepInfra, + OCA, MiniMax, } from "./providers" @@ -470,6 +471,7 @@ const ApiOptions = ({ "litellm", "zai", "qwen-code", + "oca", "minimax", ] @@ -596,6 +598,15 @@ const ApiOptions = ({ /> )} + {selectedProvider === "oca" && ( + + )} + {selectedProvider === "requesty" && ( a.label.localeCompare(b.label)) diff --git a/webview-ui/src/components/settings/providers/Oca.tsx b/webview-ui/src/components/settings/providers/Oca.tsx new file mode 100644 index 00000000000..e707b255762 --- /dev/null +++ b/webview-ui/src/components/settings/providers/Oca.tsx @@ -0,0 +1,311 @@ +import * as React from "react" +import { VSCodeButton } from "@vscode/webview-ui-toolkit/react" +import { vscode } from "@src/utils/vscode" +import { OCAModelService } from "@src/services/OCAModelService" +import { OCA_MSG } from "@src/services/ocaMessages" +import { postOcaStatus, ocaLogin, ocaLogout, requestRouterModels } from "@src/services/ocaOutgoing" + +import type { ProviderSettings, OrganizationAllowList, ModelInfo } from "@roo-code/types" + +import { ModelPicker } from "../ModelPicker" +import OcaAcknowledgeModal from "../../kilocode/common/OcaAcknowledgeModal" + +const OCA_STATE_KEY = "ocaActivated" as const + +type OCAProps = { + apiConfiguration: ProviderSettings + setApiConfigurationField: ( + field: K, + value: ProviderSettings[K], + isUserAction?: boolean, + ) => void + organizationAllowList: OrganizationAllowList + modelValidationError?: string +} + +export function OCA({ + apiConfiguration, + setApiConfigurationField, + organizationAllowList, + modelValidationError, +}: OCAProps) { + const [authUrl, setAuthUrl] = React.useState(null) + const [status, setStatus] = React.useState<"idle" | "waiting" | "done" | "error">("idle") + const [error, setError] = React.useState(null) + const [ackOpen, setAckOpen] = React.useState(false) + const [pendingModelId, setPendingModelId] = React.useState(null) + const [activated, setActivated] = React.useState(() => + Boolean(((vscode.getState() as any) || {})[OCA_STATE_KEY]), + ) + + const [ocaModels, setOcaModels] = React.useState>({}) + const [modelsLoading, setModelsLoading] = React.useState(false) + const ocaErrorJustReceived = React.useRef(false) + const firstOcaModelId = React.useMemo(() => Object.keys(ocaModels)[0] || "", [ocaModels]) + const defaultModelId = React.useMemo(() => { + const saved = OCAModelService.getOcaSelectedModelId() + return saved || apiConfiguration.apiModelId || firstOcaModelId + }, [apiConfiguration.apiModelId, firstOcaModelId]) + + const requestOcaModels = React.useCallback(() => { + ocaErrorJustReceived.current = false + setError(null) + setModelsLoading(true) + requestRouterModels() + }, []) + + const activatedRef = React.useRef(activated) + React.useEffect(() => { + activatedRef.current = activated + }, [activated]) + + const loginInProgressRef = React.useRef(false) + + const requestOcaModelsRef = React.useRef(requestOcaModels) + React.useEffect(() => { + requestOcaModelsRef.current = requestOcaModels + }, [requestOcaModels]) + + React.useEffect(() => { + const onRouterModels = (ev: MessageEvent) => { + const m = ev.data as any + if (m?.type === "routerModels") { + const oca = (m.routerModels?.oca ?? {}) as Record + setOcaModels(oca) + setModelsLoading(false) + } else if (m?.type === "singleRouterModelFetchResponse" && m?.values?.provider === "oca") { + setModelsLoading(false) + ocaErrorJustReceived.current = true + setError(m.error ?? "Failed to fetch models") + setStatus("error") + } + } + window.addEventListener("message", onRouterModels) + return () => window.removeEventListener("message", onRouterModels) + }, []) + + React.useEffect(() => { + const h = (ev: MessageEvent) => { + const m = ev.data as any + switch (m?.type) { + case OCA_MSG.SHOW_AUTH_URL: + setAuthUrl(m.url || null) + setStatus("waiting") + break + case OCA_MSG.LOGIN_SUCCESS: + setError(null) + setActivated(true) + setStatus("done") + loginInProgressRef.current = false + requestOcaModelsRef.current?.() + break + case OCA_MSG.LOGIN_ERROR: + setStatus("error") + setError(m.error ?? "Login failed") + loginInProgressRef.current = false + break + case OCA_MSG.LOGOUT_SUCCESS: + setStatus("idle") + setAuthUrl(null) + setError(null) + setActivated(false) + try { + OCAModelService.clearOcaSelection() + } catch (e) { + console.debug("OCA: clearOcaSelection failed:", e) + } + loginInProgressRef.current = false + break + case OCA_MSG.STATUS: + if (m.authenticated) { + setActivated(true) + setStatus("done") + requestOcaModelsRef.current?.() + } else { + setActivated(false) + if (!loginInProgressRef.current) { + setStatus("idle") + } + } + break + } + } + window.addEventListener("message", h) + return () => window.removeEventListener("message", h) + }, []) + + React.useEffect(() => { + postOcaStatus() + }, []) + + React.useEffect(() => { + setAuthUrl(null) + setError(null) + if (activated) { + setStatus("done") + requestOcaModels() + } else { + setStatus("idle") + } + }, [activated, requestOcaModels]) + + React.useEffect(() => { + if (!activated || status !== "done") return + + try { + OCAModelService.setOcaModels(ocaModels as any) + } catch (e) { + console.debug("OCA: setOcaModels failed:", e) + } + + const saved = OCAModelService.getOcaSelectedModelId() + const first = Object.keys(ocaModels || {})[0] + const target = saved || first + if (!target) return + + if (apiConfiguration.apiModelId !== target && (ocaModels as any)?.[target]) { + setApiConfigurationField("apiModelId", target as any, false) + } + + try { + OCAModelService.setOcaSelectedModelId(target) + } catch (e) { + console.debug("OCA: setOcaSelectedModelId failed for target:", target, e) + } + }, [activated, status, ocaModels, apiConfiguration.apiModelId, setApiConfigurationField]) + + React.useEffect(() => { + const prev = (vscode.getState() as any) || {} + vscode.setState({ ...prev, [OCA_STATE_KEY]: activated }) + }, [activated]) + + const bannerHtml = pendingModelId ? (ocaModels as any)?.[pendingModelId]?.banner : undefined + + const wrappedSetApiConfigurationField = React.useCallback( + (field: K, value: ProviderSettings[K], isUserAction?: boolean) => { + if (field === "apiModelId" && isUserAction !== false && typeof value === "string") { + const banner = (ocaModels as any)?.[value as string]?.banner + if (banner) { + setPendingModelId(value as string) + setAckOpen(true) + return + } + } + setApiConfigurationField(field, value, isUserAction) + if (field === "apiModelId" && typeof value === "string") { + try { + OCAModelService.setOcaSelectedModelId(value as string) + } catch (e) { + console.debug("OCA: setOcaSelectedModelId failed for value:", value, e) + } + } + }, + [setApiConfigurationField, ocaModels], + ) + + const handleAcknowledge = React.useCallback(() => { + if (pendingModelId) { + setApiConfigurationField("apiModelId", pendingModelId as any, true) + try { + OCAModelService.setOcaSelectedModelId(pendingModelId) + } catch (e) { + console.debug("OCA: setOcaSelectedModelId failed for pendingModelId:", pendingModelId, e) + } + } + setAckOpen(false) + setPendingModelId(null) + }, [pendingModelId, setApiConfigurationField]) + + const handleCancelAck = React.useCallback(() => { + setAckOpen(false) + setPendingModelId(null) + }, []) + + const handleLogin = React.useCallback(() => { + setError(null) + setStatus("waiting") + setAuthUrl(null) + loginInProgressRef.current = true + ocaLogin() + }, []) + + return ( +
+ + + + {status === "idle" && !activated && ( + <> +

Sign in to access Oracle internal models.

+ + Login with Oracle SSO + + + )} + + {status === "waiting" && !authUrl && ( +
+ + Preparing sign-in… +
+ )} + {status === "waiting" && authUrl && ( + <> +

Click to sign in (opens in your browser):

+ + {authUrl} + +

After completing sign-in, return here. This page will update automatically.

+ + )} + {status === "done" && activated && modelsLoading && ( +
+ + Fetching models… +
+ )} + {status === "done" && activated && Object.keys(ocaModels).length > 0 && ( +
+ +
+
+ +
+ + + +
+
+ )} + + {status === "error" &&

❌ {error}

} + + {status === "done" && activated && ( +
+ Sign out +
+ )} +
+ ) +} + +export default OCA diff --git a/webview-ui/src/components/settings/providers/index.ts b/webview-ui/src/components/settings/providers/index.ts index e8f2942f31e..f21588844ca 100644 --- a/webview-ui/src/components/settings/providers/index.ts +++ b/webview-ui/src/components/settings/providers/index.ts @@ -40,5 +40,6 @@ export { Fireworks } from "./Fireworks" export { Featherless } from "./Featherless" export { VercelAiGateway } from "./VercelAiGateway" export { DeepInfra } from "./DeepInfra" +export { OCA } from "./Oca" export { MiniMax } from "./MiniMax" export { Baseten } from "./Baseten" diff --git a/webview-ui/src/components/ui/hooks/useSelectedModel.ts b/webview-ui/src/components/ui/hooks/useSelectedModel.ts index d7a195e5e52..c23e30f2c0f 100644 --- a/webview-ui/src/components/ui/hooks/useSelectedModel.ts +++ b/webview-ui/src/components/ui/hooks/useSelectedModel.ts @@ -511,11 +511,16 @@ function getSelectedModel({ return { id, info } } // kilocode_change end + case "oca": { + const id = apiConfiguration.apiModelId ?? "" + const info = id && routerModels?.oca ? routerModels.oca[id] : undefined + return { id, info } + } // case "anthropic": // case "human-relay": // case "fake-ai": default: { - provider satisfies "anthropic" | "gemini-cli" | "qwen-code" | "human-relay" | "fake-ai" | "kilocode" + provider satisfies "anthropic" | "gemini-cli" | "qwen-code" | "human-relay" | "fake-ai" | "kilocode" | "oca" const id = apiConfiguration.apiModelId ?? anthropicDefaultModelId const baseInfo = anthropicModels[id as keyof typeof anthropicModels] diff --git a/webview-ui/src/services/OCAModelService.ts b/webview-ui/src/services/OCAModelService.ts new file mode 100644 index 00000000000..3c5edc12df2 --- /dev/null +++ b/webview-ui/src/services/OCAModelService.ts @@ -0,0 +1,65 @@ +import type { ModelInfo } from "@roo-code/types" +import { vscode } from "@src/utils/vscode" + +type OcaCache = { + models?: Record + selectedModelId?: string +} + +type StateShape = { + modelService?: { + oca?: OcaCache + } +} + +const STATE_KEY: keyof StateShape = "modelService" + +function readState(): StateShape { + const raw = (vscode.getState() as StateShape) || {} + if (!raw[STATE_KEY]) raw[STATE_KEY] = { oca: {} } + if (!raw[STATE_KEY]!.oca) raw[STATE_KEY]!.oca = {} + return raw +} + +function writeState(next: StateShape) { + vscode.setState(next as unknown as any) +} + +export class OCAModelService { + // OCA MODELS + static setOcaModels(models: Record): void { + const state = readState() + state[STATE_KEY]!.oca!.models = models + writeState(state) + } + + static getOcaModels(): Record { + const state = readState() + return state[STATE_KEY]!.oca!.models || {} + } + + static getOcaFirstModelId(): string { + const models = this.getOcaModels() + const keys = Object.keys(models || {}) + return keys[0] || "" + } + + static setOcaSelectedModelId(modelId: string): void { + const state = readState() + state[STATE_KEY]!.oca!.selectedModelId = modelId + writeState(state) + } + + static getOcaSelectedModelId(): string | undefined { + const state = readState() + return state[STATE_KEY]!.oca!.selectedModelId + } + + static clearOcaSelection(): void { + const state = readState() + if (state[STATE_KEY]!.oca) { + state[STATE_KEY]!.oca!.selectedModelId = undefined + } + writeState(state) + } +} diff --git a/webview-ui/src/services/ocaMessages.ts b/webview-ui/src/services/ocaMessages.ts new file mode 100644 index 00000000000..27b4efb8d22 --- /dev/null +++ b/webview-ui/src/services/ocaMessages.ts @@ -0,0 +1,34 @@ +export const OCA_MSG = { + SHOW_AUTH_URL: "oca/show-auth-url", + LOGIN_SUCCESS: "oca/login-success", + LOGIN_ERROR: "oca/login-error", + LOGOUT_SUCCESS: "oca/logout-success", + STATUS: "oca/status", +} as const + +export type OcaShowAuthUrl = { type: typeof OCA_MSG.SHOW_AUTH_URL; url: string } +export type OcaLoginSuccess = { type: typeof OCA_MSG.LOGIN_SUCCESS } +export type OcaLoginError = { type: typeof OCA_MSG.LOGIN_ERROR; error?: string } +export type OcaLogoutSuccess = { type: typeof OCA_MSG.LOGOUT_SUCCESS } +export type OcaStatus = { type: typeof OCA_MSG.STATUS; authenticated?: boolean } + +export type OcaWebviewMessage = OcaShowAuthUrl | OcaLoginSuccess | OcaLoginError | OcaLogoutSuccess | OcaStatus + +export function isOcaMessage(val: unknown): val is OcaWebviewMessage { + if (!val || typeof val !== "object") return false + const t = (val as any).type + switch (t) { + case OCA_MSG.SHOW_AUTH_URL: + return typeof (val as any).url === "string" + case OCA_MSG.LOGIN_SUCCESS: + return true + case OCA_MSG.LOGIN_ERROR: + return typeof (val as any).error === "string" || typeof (val as any).error === "undefined" + case OCA_MSG.LOGOUT_SUCCESS: + return true + case OCA_MSG.STATUS: + return typeof (val as any).authenticated === "boolean" || typeof (val as any).authenticated === "undefined" + default: + return false + } +} diff --git a/webview-ui/src/services/ocaOutgoing.ts b/webview-ui/src/services/ocaOutgoing.ts new file mode 100644 index 00000000000..bc7e0a8ce5e --- /dev/null +++ b/webview-ui/src/services/ocaOutgoing.ts @@ -0,0 +1,26 @@ +import { vscode } from "@src/utils/vscode" +import { OCA_MSG } from "./ocaMessages" + +/** + * Centralized helpers to post OCA-related messages to the extension. + */ + +export function postOcaStatus(): void { + vscode.postMessage({ type: OCA_MSG.STATUS }) +} + +export function ocaLogin(): void { + vscode.postMessage({ type: "oca/login" }) +} + +export function ocaLogout(): void { + vscode.postMessage({ type: "oca/logout" }) +} + +export function requestRouterModels(values?: Record): void { + if (values) { + vscode.postMessage({ type: "requestRouterModels", values }) + } else { + vscode.postMessage({ type: "requestRouterModels" }) + } +} diff --git a/webview-ui/src/utils/__tests__/validate.test.ts b/webview-ui/src/utils/__tests__/validate.test.ts index 0f24a83c3ba..3b5e1f9a21f 100644 --- a/webview-ui/src/utils/__tests__/validate.test.ts +++ b/webview-ui/src/utils/__tests__/validate.test.ts @@ -62,6 +62,7 @@ describe("Model Validation Functions", () => { "io-intelligence": {}, "vercel-ai-gateway": {}, huggingface: {}, + oca: {}, // kilocode_change start ovhcloud: {}, gemini: {}, diff --git a/webview-ui/src/utils/validate.ts b/webview-ui/src/utils/validate.ts index cc13edaca5a..0c54bbc87e9 100644 --- a/webview-ui/src/utils/validate.ts +++ b/webview-ui/src/utils/validate.ts @@ -307,6 +307,11 @@ function validateDynamicProviderModelId( return undefined } + // Allow OCA to pass without a model id; models are fetched after auth + if (provider === "oca") { + return undefined + } + const modelId = getModelIdForProvider(apiConfiguration, provider) if (!modelId) { @@ -346,6 +351,11 @@ export function getModelValidationError( return orgError.message } + // Skip model-id validation for OCA to keep Settings Save/Done usable on first setup + if (apiConfiguration.apiProvider === "oca") { + return undefined + } + return validateDynamicProviderModelId(configWithModelId, routerModels) }