mirror of
https://github.com/graphql-hive/console
synced 2026-05-24 09:38:26 +00:00
Compare commits
6 commits
@graphql-h
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
19d3822973 | ||
|
|
cb68b50534 | ||
|
|
0e3ce40070 | ||
|
|
aa38edc106 | ||
|
|
3fad965894 | ||
|
|
ce4d445f3c |
20 changed files with 535 additions and 135 deletions
5
.changeset/brave-laws-cut.md
Normal file
5
.changeset/brave-laws-cut.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
'hive': patch
|
||||
---
|
||||
|
||||
add eviction policy to redis
|
||||
|
|
@ -80,3 +80,56 @@ We use changesets for versioning.
|
|||
- These changesets should have the right amount of informational content for someone to understand
|
||||
what this change introduces for their self-hosted Hive instance, without going into too much
|
||||
internal technical detail.
|
||||
|
||||
---
|
||||
|
||||
## Pull Request Reviewing
|
||||
|
||||
### What to Look For
|
||||
|
||||
Code that looks wrong in isolation may be correct given surrounding logic—and vice versa. Read the
|
||||
full file to understand existing patterns, control flow, and error handling.
|
||||
|
||||
**Bugs** - Your primary focus.
|
||||
|
||||
- Logic errors, off-by-one mistakes, incorrect conditionals
|
||||
- If-else guards: missing guards, incorrect branching, unreachable code paths
|
||||
- Edge cases: null/empty/undefined inputs, error conditions, race conditions
|
||||
- Security issues: injection, auth bypass, data exposure
|
||||
- Broken error handling that swallows failures, throws unexpectedly or returns error types that are
|
||||
not caught.
|
||||
|
||||
**Structure** - Does the code fit the codebase?
|
||||
|
||||
- Does it follow existing patterns and conventions?
|
||||
- Are there established abstractions it should use but doesn't?
|
||||
- Excessive nesting that could be flattened with early returns or extraction
|
||||
|
||||
**Performance** - Only flag if obviously problematic.
|
||||
|
||||
- O(n²) on unbounded data, N+1 queries, blocking I/O on hot paths
|
||||
|
||||
**Behavior Changes** - If a behavioral change is introduced, raise it (especially if it's possibly
|
||||
unintentional).
|
||||
|
||||
---
|
||||
|
||||
### Before You Flag Something
|
||||
|
||||
**Be certain.** If you're going to call something a bug, you need to be confident it actually is
|
||||
one.
|
||||
|
||||
- Only review the changes - do not review pre-existing code that wasn't modified
|
||||
- Don't flag something as a bug if you're unsure - investigate first
|
||||
- Don't invent hypothetical problems - if an edge case matters, explain the realistic scenario where
|
||||
it breaks
|
||||
- If you need more context to be sure, use the tools below to get it
|
||||
|
||||
**Don't be a zealot about style.** When checking code against conventions:
|
||||
|
||||
- Verify the code is _actually_ in violation. Don't complain about else statements if early returns
|
||||
are already being used correctly.
|
||||
- Some "violations" are acceptable when they're the simplest option.
|
||||
- Excessive nesting is a legitimate concern regardless of other style choices.
|
||||
- Don't flag style preferences as issues unless they clearly violate established project
|
||||
conventions.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,20 @@
|
|||
# hive
|
||||
|
||||
## 11.1.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#8044](https://github.com/graphql-hive/console/pull/8044)
|
||||
[`ce4d445`](https://github.com/graphql-hive/console/commit/ce4d445f3c2a2d214b7c47e35c9a38f4de7c3f0e)
|
||||
Thanks [@n1ru4l](https://github.com/n1ru4l)! - Address vulnerability
|
||||
[GHSA-q6x5-8v7m-xcrf](https://github.com/advisories/GHSA-q6x5-8v7m-xcrf),
|
||||
[GHSA-jvwf-75h9-cwgg](https://github.com/advisories/GHSA-jvwf-75h9-cwgg),
|
||||
[GHSA-75px-5xx7-5xc7](https://github.com/advisories/GHSA-75px-5xx7-5xc7),
|
||||
[GHSA-66ff-xgx4-vchm](https://github.com/advisories/GHSA-66ff-xgx4-vchm),
|
||||
[GHSA-685m-2w69-288q](https://github.com/advisories/GHSA-685m-2w69-288q),
|
||||
[GHSA-2pr8-phx7-x9h3](https://github.com/advisories/GHSA-2pr8-phx7-x9h3) and
|
||||
[GHSA-fx83-v9x8-x52w](https://github.com/advisories/GHSA-fx83-v9x8-x52w).
|
||||
|
||||
## 11.1.0
|
||||
|
||||
### Minor Changes
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "hive",
|
||||
"version": "11.1.0",
|
||||
"version": "11.1.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"generate": "tsx generate.ts",
|
||||
|
|
|
|||
|
|
@ -120,6 +120,12 @@ export class Redis {
|
|||
args: [
|
||||
'/opt/bitnami/scripts/redis/run.sh',
|
||||
`--maxmemory ${memoryInMegabytes}mb`,
|
||||
// Once Redis reaches maxmemory (90% of the container limit, see above),
|
||||
// evict the least-recently-used keys instead of failing writes with OOM
|
||||
// errors (the default `noeviction` behaviour). Everything Hive stores in
|
||||
// this Redis is a cache / lock / rate-limit entry with a TTL, so evicting
|
||||
// cold keys is safe and LRU keeps hot keys (locks, fresh counters) around.
|
||||
'--maxmemory-policy allkeys-lru',
|
||||
// This disables snapshotting to save cpu and reduce latency spikes
|
||||
'--save ""',
|
||||
],
|
||||
|
|
|
|||
|
|
@ -12,10 +12,10 @@
|
|||
},
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"packageManager": "pnpm@10.18.3+sha512.bbd16e6d7286fd7e01f6b3c0b3c932cda2965c06a908328f74663f10a9aea51f1129eea615134bf992831b009eabe167ecb7008b597f40ff9bc75946aadfb08d",
|
||||
"packageManager": "pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8",
|
||||
"engines": {
|
||||
"node": ">=24.14.1",
|
||||
"pnpm": ">=10.16.0"
|
||||
"pnpm": ">=10.33.2"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "pnpm turbo build --filter='@hive/app' --concurrency=1 --color && pnpm turbo build --concurrency=4 --color --filter '!@hive/app'",
|
||||
|
|
@ -165,7 +165,8 @@
|
|||
"yauzl@2.x.x": "^3.2.1",
|
||||
"glob@10.x.x": "^10.5.0",
|
||||
"path-to-regexp@0.x.x": "^0.1.13",
|
||||
"fast-uri@2.x.x": "3.x.x"
|
||||
"fast-uri@2.x.x": "3.x.x",
|
||||
"protobufjs@8.x.x": "^8.0.2"
|
||||
},
|
||||
"patchedDependencies": {
|
||||
"mjml-core@4.14.0": "patches/mjml-core@4.14.0.patch",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,14 @@
|
|||
# @graphql-hive/laboratory
|
||||
|
||||
## 0.1.8
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#8024](https://github.com/graphql-hive/console/pull/8024)
|
||||
[`0e3ce40`](https://github.com/graphql-hive/console/commit/0e3ce400706c625925161f8d59cc5691380cef07)
|
||||
Thanks [@mskorokhodov](https://github.com/mskorokhodov)! - Hive laboratory introspection query to
|
||||
include active tab headers
|
||||
|
||||
## 0.1.7
|
||||
|
||||
### Patch Changes
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@graphql-hive/laboratory",
|
||||
"version": "0.1.7",
|
||||
"version": "0.1.8",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"main": "./dist/hive-laboratory.cjs.js",
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import {
|
|||
ListTreeIcon,
|
||||
RotateCcwIcon,
|
||||
SearchIcon,
|
||||
SettingsIcon,
|
||||
TextAlignStartIcon,
|
||||
} from 'lucide-react';
|
||||
import { toast } from 'sonner';
|
||||
|
|
@ -759,7 +760,17 @@ export const Builder = (props: {
|
|||
operationName?: string | null;
|
||||
isReadOnly?: boolean;
|
||||
}) => {
|
||||
const { schema, activeOperation, endpoint, setEndpoint, defaultEndpoint } = useLaboratory();
|
||||
const {
|
||||
schema,
|
||||
activeOperation,
|
||||
endpoint,
|
||||
setEndpoint,
|
||||
defaultEndpoint,
|
||||
tabs,
|
||||
addTab,
|
||||
setActiveTab,
|
||||
shouldPollSchema,
|
||||
} = useLaboratory();
|
||||
|
||||
const [endpointValue, setEndpointValue] = useState<string>(endpoint ?? '');
|
||||
const [searchValue, setSearchValue] = useState<string>('');
|
||||
|
|
@ -845,23 +856,45 @@ export const Builder = (props: {
|
|||
|
||||
return (
|
||||
<div className="bg-card flex size-full flex-col overflow-hidden">
|
||||
<div className="flex items-center px-3 pt-3">
|
||||
<div className="flex items-center gap-3 px-3 pt-3">
|
||||
<span className="text-base font-medium">Builder</span>
|
||||
<div className="ml-auto flex items-center">
|
||||
<Tooltip>
|
||||
<TooltipTrigger asChild>
|
||||
<Button
|
||||
onClick={() => setOpenPaths([])}
|
||||
variant="ghost"
|
||||
size="icon-sm"
|
||||
className="p-1! size-6 rounded-sm"
|
||||
disabled={openPaths.length === 0}
|
||||
>
|
||||
<CopyMinusIcon className="text-muted-foreground size-4" />
|
||||
</Button>
|
||||
</TooltipTrigger>
|
||||
<TooltipContent>Collapse all</TooltipContent>
|
||||
</Tooltip>
|
||||
<div className="ml-auto flex items-center gap-3">
|
||||
{shouldPollSchema && (
|
||||
<Button
|
||||
onClick={() => {
|
||||
const tab =
|
||||
tabs.find(t => t.type === 'settings') ??
|
||||
addTab({
|
||||
type: 'settings',
|
||||
data: {},
|
||||
});
|
||||
|
||||
setActiveTab(tab);
|
||||
}}
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
className="p-1! h-6 rounded-sm !px-1.5"
|
||||
>
|
||||
<SettingsIcon className="size-4" />
|
||||
Introspection settings
|
||||
</Button>
|
||||
)}
|
||||
<div className="flex items-center">
|
||||
<Tooltip>
|
||||
<TooltipTrigger asChild>
|
||||
<Button
|
||||
onClick={() => setOpenPaths([])}
|
||||
variant="ghost"
|
||||
size="icon-sm"
|
||||
className="p-1! size-6 rounded-sm"
|
||||
disabled={openPaths.length === 0}
|
||||
>
|
||||
<CopyMinusIcon className="text-muted-foreground size-4" />
|
||||
</Button>
|
||||
</TooltipTrigger>
|
||||
<TooltipContent>Collapse all</TooltipContent>
|
||||
</Tooltip>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="px-3 pt-3">
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import { OperationDefinitionNode, parse } from 'graphql';
|
|||
import * as monaco from 'monaco-editor';
|
||||
import { MonacoGraphQLAPI } from 'monaco-graphql/esm/api.js';
|
||||
import { initializeMode } from 'monaco-graphql/initializeMode';
|
||||
import { cn } from '@/lib/utils';
|
||||
import MonacoEditor, { loader } from '@monaco-editor/react';
|
||||
import { useLaboratory } from './context';
|
||||
|
||||
|
|
@ -84,7 +85,7 @@ const darkTheme: monaco.editor.IStandaloneThemeData = {
|
|||
],
|
||||
colors: {
|
||||
'editor.foreground': '#f6f8fa',
|
||||
'editor.background': '#0f1214',
|
||||
'editor.background': '#0f121400',
|
||||
'editor.selectionBackground': '#2A2F34',
|
||||
'editor.inactiveSelectionBackground': '#2A2F34',
|
||||
'editor.lineHighlightBackground': '#2A2F34',
|
||||
|
|
@ -354,10 +355,10 @@ const EditorInner = forwardRef<EditorHandle, EditorProps>((props, ref) => {
|
|||
}
|
||||
|
||||
return (
|
||||
<div className="size-full overflow-hidden">
|
||||
<div className={cn('size-full overflow-hidden', props.className)}>
|
||||
<MonacoEditor
|
||||
className="size-full"
|
||||
{...props}
|
||||
className="size-full"
|
||||
theme={theme === 'dark' ? 'hive-laboratory-dark' : 'hive-laboratory-light'}
|
||||
onMount={handleMount}
|
||||
loading={null}
|
||||
|
|
|
|||
|
|
@ -514,15 +514,10 @@ export const Laboratory = (
|
|||
const pluginsApi = usePlugins(props);
|
||||
const testsApi = useTests(props);
|
||||
const tabsApi = useTabs(props);
|
||||
const endpointApi = useEndpoint({
|
||||
...props,
|
||||
settingsApi,
|
||||
});
|
||||
const collectionsApi = useCollections({
|
||||
...props,
|
||||
tabsApi,
|
||||
});
|
||||
|
||||
const operationsApi = useOperations({
|
||||
...props,
|
||||
collectionsApi,
|
||||
|
|
@ -533,6 +528,14 @@ export const Laboratory = (
|
|||
pluginsApi,
|
||||
checkPermissions,
|
||||
});
|
||||
const endpointApi = useEndpoint({
|
||||
...props,
|
||||
settingsApi,
|
||||
operationsApi,
|
||||
envApi,
|
||||
pluginsApi,
|
||||
preflightApi,
|
||||
});
|
||||
|
||||
const historyApi = useHistory(props);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
import { useEffect } from 'react';
|
||||
import { z } from 'zod';
|
||||
import { Editor } from '@/components/laboratory/editor';
|
||||
import { Input } from '@/components/ui/input';
|
||||
import { Switch } from '@/components/ui/switch';
|
||||
import { useForm } from '@tanstack/react-form';
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '../ui/card';
|
||||
import { Field, FieldGroup, FieldLabel } from '../ui/field';
|
||||
import { Field, FieldDescription, FieldGroup, FieldLabel } from '../ui/field';
|
||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select';
|
||||
import { useLaboratory } from './context';
|
||||
|
||||
|
|
@ -20,6 +22,8 @@ const settingsFormSchema = z.object({
|
|||
introspection: z.object({
|
||||
method: z.enum(['GET', 'POST']).optional(),
|
||||
schemaDescription: z.boolean().optional(),
|
||||
headers: z.string().optional(),
|
||||
includeActiveOperationHeaders: z.boolean().optional(),
|
||||
}),
|
||||
});
|
||||
|
||||
|
|
@ -31,19 +35,17 @@ export const Settings = () => {
|
|||
validators: {
|
||||
onSubmit: settingsFormSchema,
|
||||
},
|
||||
onSubmit: ({ value }) => {
|
||||
setSettings(value as typeof settings);
|
||||
},
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
form.store.subscribe(state => {
|
||||
setSettings(state.currentVal.values);
|
||||
});
|
||||
}, [setSettings]);
|
||||
|
||||
return (
|
||||
<div className="bg-card size-full overflow-y-auto p-3">
|
||||
<form
|
||||
id="settings-form"
|
||||
onSubmit={form.handleSubmit}
|
||||
onChange={form.handleSubmit}
|
||||
className="mx-auto flex max-w-2xl flex-col gap-4"
|
||||
>
|
||||
<form id="settings-form" className="mx-auto flex max-w-2xl flex-col gap-4">
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle>Fetch</CardTitle>
|
||||
|
|
@ -220,6 +222,43 @@ export const Settings = () => {
|
|||
);
|
||||
}}
|
||||
</form.Field>
|
||||
<form.Field name="introspection.headers">
|
||||
{field => {
|
||||
return (
|
||||
<Field>
|
||||
<FieldLabel htmlFor={field.name}>Headers</FieldLabel>
|
||||
<Editor
|
||||
value={field.state.value ?? '{}'}
|
||||
onChange={field.handleChange}
|
||||
defaultLanguage="json"
|
||||
theme="hive-laboratory"
|
||||
className="bg-input/30 border-input focus-within:border-ring focus-within:ring-ring/50 h-64 rounded rounded-md border focus-within:ring-[3px]"
|
||||
/>
|
||||
</Field>
|
||||
);
|
||||
}}
|
||||
</form.Field>
|
||||
<form.Field name="introspection.includeActiveOperationHeaders">
|
||||
{field => {
|
||||
return (
|
||||
<Field className="flex-row items-start">
|
||||
<Switch
|
||||
className="mt-0.5 !w-8"
|
||||
checked={field.state.value ?? false}
|
||||
onCheckedChange={field.handleChange}
|
||||
/>
|
||||
<div>
|
||||
<FieldLabel htmlFor={field.name}>
|
||||
Include active operation headers
|
||||
</FieldLabel>
|
||||
<FieldDescription>
|
||||
Active operation (tab) headers will be included in the introspection query
|
||||
</FieldDescription>
|
||||
</div>
|
||||
</Field>
|
||||
);
|
||||
}}
|
||||
</form.Field>
|
||||
</FieldGroup>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
|
|
|||
|
|
@ -93,6 +93,10 @@
|
|||
--destructive-foreground: var(--hive-laboratory-destructive-foreground, var(--color-neutral-1));
|
||||
|
||||
--ring: var(--hive-laboratory-ring, var(--color-ring));
|
||||
|
||||
& .monaco-editor {
|
||||
--vscode-focusBorder: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
.hive-laboratory.dark {
|
||||
|
|
|
|||
|
|
@ -1,12 +1,17 @@
|
|||
import { useCallback, useEffect, useMemo, useState } from 'react';
|
||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
||||
import {
|
||||
buildClientSchema,
|
||||
GraphQLSchema,
|
||||
introspectionFromSchema,
|
||||
type IntrospectionQuery,
|
||||
} from 'graphql';
|
||||
import { debounce } from 'lodash';
|
||||
import { toast } from 'sonner';
|
||||
// import z from 'zod';
|
||||
import { LaboratoryEnv, LaboratoryEnvActions, LaboratoryEnvState } from '@/lib/env';
|
||||
import { LaboratoryOperationsActions, LaboratoryOperationsState } from '@/lib/operations';
|
||||
import { handleTemplate } from '@/lib/operations.utils';
|
||||
import { LaboratoryPluginsActions, LaboratoryPluginsState } from '@/lib/plugins';
|
||||
import { LaboratoryPreflightActions, LaboratoryPreflightState } from '@/lib/preflight';
|
||||
import { asyncInterval } from '@/lib/utils';
|
||||
import { SubscriptionProtocol, UrlLoader } from '@graphql-tools/url-loader';
|
||||
import type { LaboratorySettingsActions, LaboratorySettingsState } from './settings';
|
||||
|
|
@ -16,6 +21,7 @@ export interface LaboratoryEndpointState {
|
|||
schema: GraphQLSchema | null;
|
||||
introspection: IntrospectionQuery | null;
|
||||
defaultEndpoint: string | null;
|
||||
shouldPollSchema: boolean;
|
||||
}
|
||||
|
||||
export interface LaboratoryEndpointActions {
|
||||
|
|
@ -24,11 +30,17 @@ export interface LaboratoryEndpointActions {
|
|||
restoreDefaultEndpoint: () => void;
|
||||
}
|
||||
|
||||
export const EXPECTED_ERROR_REASON = 'Expected error reason';
|
||||
|
||||
export const useEndpoint = (props: {
|
||||
defaultEndpoint?: string | null;
|
||||
onEndpointChange?: (endpoint: string | null) => void;
|
||||
defaultSchemaIntrospection?: IntrospectionQuery | null;
|
||||
settingsApi?: LaboratorySettingsState & LaboratorySettingsActions;
|
||||
operationsApi?: LaboratoryOperationsState & LaboratoryOperationsActions;
|
||||
envApi?: LaboratoryEnvState & LaboratoryEnvActions;
|
||||
pluginsApi?: LaboratoryPluginsState & LaboratoryPluginsActions;
|
||||
preflightApi?: LaboratoryPreflightState & LaboratoryPreflightActions;
|
||||
}): LaboratoryEndpointState & LaboratoryEndpointActions => {
|
||||
const [endpoint, _setEndpoint] = useState<string | null>(props.defaultEndpoint ?? null);
|
||||
const [introspection, setIntrospection] = useState<IntrospectionQuery | null>(null);
|
||||
|
|
@ -47,75 +59,173 @@ export const useEndpoint = (props: {
|
|||
|
||||
const loader = useMemo(() => new UrlLoader(), []);
|
||||
|
||||
const fetchSchema = useCallback(
|
||||
async (signal?: AbortSignal) => {
|
||||
if (endpoint === props.defaultEndpoint && props.defaultSchemaIntrospection) {
|
||||
setIntrospection(props.defaultSchemaIntrospection);
|
||||
return;
|
||||
}
|
||||
const activeOperationHeadersRef = useRef<string | null | undefined>(
|
||||
props.operationsApi?.activeOperation?.headers,
|
||||
);
|
||||
const envVariablesRef = useRef<LaboratoryEnv['variables'] | undefined>(
|
||||
props.envApi?.env?.variables,
|
||||
);
|
||||
const pluginsStateRef = useRef<Record<string, any> | undefined>(props.pluginsApi?.pluginsState);
|
||||
|
||||
if (!endpoint) {
|
||||
setIntrospection(null);
|
||||
return;
|
||||
}
|
||||
activeOperationHeadersRef.current = props.operationsApi?.activeOperation?.headers;
|
||||
envVariablesRef.current = props.envApi?.env?.variables;
|
||||
pluginsStateRef.current = props.pluginsApi?.pluginsState;
|
||||
|
||||
try {
|
||||
const result = await loader.load(endpoint, {
|
||||
subscriptionsEndpoint: endpoint,
|
||||
subscriptionsProtocol:
|
||||
(props.settingsApi?.settings.subscriptions.protocol as SubscriptionProtocol) ??
|
||||
SubscriptionProtocol.GRAPHQL_SSE,
|
||||
credentials: props.settingsApi?.settings.fetch.credentials,
|
||||
specifiedByUrl: true,
|
||||
directiveIsRepeatable: true,
|
||||
inputValueDeprecation: true,
|
||||
retry: props.settingsApi?.settings.fetch.retry,
|
||||
timeout: props.settingsApi?.settings.fetch.timeout,
|
||||
useGETForQueries: props.settingsApi?.settings.fetch.useGETForQueries,
|
||||
exposeHTTPDetailsInExtensions: true,
|
||||
descriptions: props.settingsApi?.settings.introspection.schemaDescription ?? false,
|
||||
method: props.settingsApi?.settings.introspection.method ?? 'POST',
|
||||
fetch: (input: string | URL | Request, init?: RequestInit) =>
|
||||
fetch(input, {
|
||||
...init,
|
||||
signal,
|
||||
}),
|
||||
});
|
||||
const fetchSchema = useMemo(
|
||||
() =>
|
||||
debounce(
|
||||
async (
|
||||
signal?: AbortSignal,
|
||||
options?: {
|
||||
env?: LaboratoryEnv;
|
||||
pluginsState?: Record<string, any>;
|
||||
},
|
||||
) => {
|
||||
if (endpoint === props.defaultEndpoint && props.defaultSchemaIntrospection) {
|
||||
setIntrospection(props.defaultSchemaIntrospection);
|
||||
return;
|
||||
}
|
||||
|
||||
if (result.length === 0) {
|
||||
throw new Error('Failed to fetch schema');
|
||||
}
|
||||
if (!endpoint) {
|
||||
setIntrospection(null);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!result[0].schema) {
|
||||
throw new Error('Failed to fetch schema');
|
||||
}
|
||||
try {
|
||||
let env = options?.env?.variables ?? envVariablesRef.current ?? {};
|
||||
let plugins = options?.pluginsState ?? pluginsStateRef.current ?? {};
|
||||
|
||||
setIntrospection(introspectionFromSchema(result[0].schema));
|
||||
} catch (error: unknown) {
|
||||
if (
|
||||
error &&
|
||||
typeof error === 'object' &&
|
||||
'message' in error &&
|
||||
typeof error.message === 'string'
|
||||
) {
|
||||
toast.error(error.message);
|
||||
} else {
|
||||
toast.error('Failed to fetch schema');
|
||||
}
|
||||
let sourceHeaders: Record<string, string> = {};
|
||||
|
||||
setIntrospection(null);
|
||||
if (props.settingsApi?.settings.introspection.headers) {
|
||||
try {
|
||||
sourceHeaders = JSON.parse(props.settingsApi?.settings.introspection.headers);
|
||||
} catch {}
|
||||
}
|
||||
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
if (
|
||||
props.settingsApi?.settings.introspection.includeActiveOperationHeaders &&
|
||||
activeOperationHeadersRef.current
|
||||
) {
|
||||
try {
|
||||
sourceHeaders = {
|
||||
...sourceHeaders,
|
||||
...JSON.parse(activeOperationHeadersRef.current),
|
||||
};
|
||||
} catch {}
|
||||
}
|
||||
|
||||
let stringifiedHeaders = JSON.stringify(sourceHeaders);
|
||||
|
||||
if (stringifiedHeaders.includes('{{')) {
|
||||
try {
|
||||
const preflightResult = await props.preflightApi?.runPreflight?.(
|
||||
props.pluginsApi?.plugins ?? [],
|
||||
props.pluginsApi?.pluginsState ?? {},
|
||||
);
|
||||
|
||||
props?.envApi?.setEnv(preflightResult?.env ?? { variables: {} });
|
||||
props?.pluginsApi?.setPluginsState(preflightResult?.pluginsState ?? {});
|
||||
|
||||
env = preflightResult?.env?.variables ?? {};
|
||||
plugins = preflightResult?.pluginsState ?? {};
|
||||
|
||||
if (preflightResult?.headers) {
|
||||
stringifiedHeaders = JSON.stringify({
|
||||
...sourceHeaders,
|
||||
...preflightResult?.headers,
|
||||
});
|
||||
}
|
||||
} catch (error: unknown) {
|
||||
toast.error('Failed to run preflight');
|
||||
}
|
||||
}
|
||||
|
||||
let parsedHeaders: Record<string, string> = {};
|
||||
|
||||
try {
|
||||
parsedHeaders = JSON.parse(
|
||||
handleTemplate(stringifiedHeaders, {
|
||||
...env,
|
||||
plugins,
|
||||
}),
|
||||
);
|
||||
} catch (error: unknown) {
|
||||
toast.error('Failed to parse headers');
|
||||
parsedHeaders = {};
|
||||
}
|
||||
|
||||
const result = await loader.load(endpoint, {
|
||||
subscriptionsEndpoint: endpoint,
|
||||
subscriptionsProtocol:
|
||||
(props.settingsApi?.settings.subscriptions.protocol as SubscriptionProtocol) ??
|
||||
SubscriptionProtocol.GRAPHQL_SSE,
|
||||
headers: parsedHeaders,
|
||||
credentials: props.settingsApi?.settings.fetch.credentials,
|
||||
specifiedByUrl: true,
|
||||
directiveIsRepeatable: true,
|
||||
inputValueDeprecation: true,
|
||||
retry: props.settingsApi?.settings.fetch.retry,
|
||||
timeout: props.settingsApi?.settings.fetch.timeout,
|
||||
useGETForQueries: props.settingsApi?.settings.fetch.useGETForQueries,
|
||||
exposeHTTPDetailsInExtensions: true,
|
||||
descriptions: props.settingsApi?.settings.introspection.schemaDescription ?? false,
|
||||
method: props.settingsApi?.settings.introspection.method ?? 'POST',
|
||||
fetch: (input: string | URL | Request, init?: RequestInit) =>
|
||||
fetch(input, {
|
||||
...init,
|
||||
signal,
|
||||
}),
|
||||
});
|
||||
|
||||
if (result.length === 0) {
|
||||
throw new Error('Failed to fetch schema');
|
||||
}
|
||||
|
||||
if (!result[0].schema) {
|
||||
throw new Error('Failed to fetch schema');
|
||||
}
|
||||
|
||||
setIntrospection(introspectionFromSchema(result[0].schema));
|
||||
} catch (error: unknown) {
|
||||
if (
|
||||
error &&
|
||||
typeof error === 'object' &&
|
||||
'message' in error &&
|
||||
typeof error.message === 'string'
|
||||
) {
|
||||
if (error.message === EXPECTED_ERROR_REASON) {
|
||||
return;
|
||||
}
|
||||
|
||||
toast.error(error.message);
|
||||
} else {
|
||||
toast.error('Failed to fetch schema');
|
||||
}
|
||||
|
||||
setIntrospection(null);
|
||||
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
500,
|
||||
),
|
||||
[
|
||||
endpoint,
|
||||
props.settingsApi?.settings.fetch.timeout,
|
||||
props.settingsApi?.settings.introspection.method,
|
||||
props.settingsApi?.settings.introspection.schemaDescription,
|
||||
props.settingsApi?.settings.introspection.headers,
|
||||
props.settingsApi?.settings.introspection.includeActiveOperationHeaders,
|
||||
],
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
return () => {
|
||||
fetchSchema.cancel();
|
||||
};
|
||||
}, [fetchSchema]);
|
||||
|
||||
const shouldPollSchema = useMemo(() => {
|
||||
return endpoint !== props.defaultEndpoint || !props.defaultSchemaIntrospection;
|
||||
}, [endpoint, props.defaultEndpoint, props.defaultSchemaIntrospection]);
|
||||
|
|
@ -132,7 +242,7 @@ export const useEndpoint = (props: {
|
|||
try {
|
||||
await fetchSchema(intervalController.signal);
|
||||
} catch {
|
||||
intervalController.abort('Polling schema failed');
|
||||
intervalController.abort(new Error('Aborted because of schema polling error'));
|
||||
}
|
||||
},
|
||||
5000,
|
||||
|
|
@ -140,7 +250,7 @@ export const useEndpoint = (props: {
|
|||
);
|
||||
|
||||
return () => {
|
||||
intervalController.abort('Polling schema aborted');
|
||||
intervalController.abort(new Error(EXPECTED_ERROR_REASON));
|
||||
};
|
||||
}, [shouldPollSchema, fetchSchema]);
|
||||
|
||||
|
|
@ -152,10 +262,38 @@ export const useEndpoint = (props: {
|
|||
|
||||
useEffect(() => {
|
||||
if (endpoint && !shouldPollSchema) {
|
||||
void fetchSchema();
|
||||
const abortController = new AbortController();
|
||||
|
||||
void fetchSchema(abortController.signal);
|
||||
|
||||
return () => {
|
||||
abortController.abort(new Error(EXPECTED_ERROR_REASON));
|
||||
};
|
||||
}
|
||||
}, [endpoint, fetchSchema, shouldPollSchema]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!endpoint || !shouldPollSchema) {
|
||||
return;
|
||||
}
|
||||
|
||||
const abortController = new AbortController();
|
||||
void fetchSchema(abortController.signal, {
|
||||
env: props.envApi?.env ?? undefined,
|
||||
pluginsState: props.pluginsApi?.pluginsState,
|
||||
});
|
||||
|
||||
return () => {
|
||||
abortController.abort(new Error(EXPECTED_ERROR_REASON));
|
||||
};
|
||||
}, [
|
||||
endpoint,
|
||||
shouldPollSchema,
|
||||
fetchSchema,
|
||||
props.settingsApi?.settings.introspection.headers,
|
||||
props.settingsApi?.settings.introspection.includeActiveOperationHeaders,
|
||||
]);
|
||||
|
||||
return {
|
||||
endpoint,
|
||||
setEndpoint,
|
||||
|
|
@ -164,5 +302,6 @@ export const useEndpoint = (props: {
|
|||
fetchSchema,
|
||||
restoreDefaultEndpoint,
|
||||
defaultEndpoint: props.defaultEndpoint ?? null,
|
||||
shouldPollSchema,
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ export type LaboratorySettings = {
|
|||
introspection: {
|
||||
method?: 'GET' | 'POST';
|
||||
schemaDescription?: boolean;
|
||||
headers?: string;
|
||||
includeActiveOperationHeaders?: boolean;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -29,6 +31,8 @@ export const defaultLaboratorySettings: LaboratorySettings = {
|
|||
introspection: {
|
||||
method: 'POST',
|
||||
schemaDescription: false,
|
||||
headers: '',
|
||||
includeActiveOperationHeaders: false,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
@ -50,6 +54,10 @@ export const normalizeLaboratorySettings = (
|
|||
schemaDescription:
|
||||
settings?.introspection?.schemaDescription ??
|
||||
defaultLaboratorySettings.introspection.schemaDescription,
|
||||
headers: settings?.introspection?.headers ?? defaultLaboratorySettings.introspection.headers,
|
||||
includeActiveOperationHeaders:
|
||||
settings?.introspection?.includeActiveOperationHeaders ??
|
||||
defaultLaboratorySettings.introspection.includeActiveOperationHeaders,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,18 @@
|
|||
# @graphql-yoga/render-graphiql
|
||||
|
||||
## 0.1.8
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#8024](https://github.com/graphql-hive/console/pull/8024)
|
||||
[`0e3ce40`](https://github.com/graphql-hive/console/commit/0e3ce400706c625925161f8d59cc5691380cef07)
|
||||
Thanks [@mskorokhodov](https://github.com/mskorokhodov)! - Hive laboratory introspection query to
|
||||
include active tab headers
|
||||
|
||||
- Updated dependencies
|
||||
[[`0e3ce40`](https://github.com/graphql-hive/console/commit/0e3ce400706c625925161f8d59cc5691380cef07)]:
|
||||
- @graphql-hive/laboratory@0.1.8
|
||||
|
||||
## 0.1.7
|
||||
|
||||
### Patch Changes
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@graphql-hive/render-laboratory",
|
||||
"version": "0.1.7",
|
||||
"version": "0.1.8",
|
||||
"type": "module",
|
||||
"description": "",
|
||||
"repository": {
|
||||
|
|
|
|||
|
|
@ -749,7 +749,7 @@ const BreakingChanges = (props: {
|
|||
</CardDescription>
|
||||
<CardDescription>
|
||||
<DocsLink
|
||||
href="/management/targets#dangerous-changes"
|
||||
href="/schema-registry/management/targets#dangerous-changes"
|
||||
className="text-neutral-10 hover:text-neutral-11"
|
||||
>
|
||||
Learn more
|
||||
|
|
|
|||
128
pnpm-lock.yaml
128
pnpm-lock.yaml
|
|
@ -41,6 +41,7 @@ overrides:
|
|||
glob@10.x.x: ^10.5.0
|
||||
path-to-regexp@0.x.x: ^0.1.13
|
||||
fast-uri@2.x.x: 3.x.x
|
||||
protobufjs@8.x.x: ^8.0.2
|
||||
|
||||
patchedDependencies:
|
||||
'@apollo/federation@0.38.1':
|
||||
|
|
@ -5365,67 +5366,79 @@ packages:
|
|||
resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@img/sharp-libvips-linux-arm@1.0.5':
|
||||
resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@img/sharp-libvips-linux-s390x@1.0.4':
|
||||
resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@img/sharp-libvips-linux-x64@1.0.4':
|
||||
resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@img/sharp-libvips-linuxmusl-arm64@1.0.4':
|
||||
resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@img/sharp-libvips-linuxmusl-x64@1.0.4':
|
||||
resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@img/sharp-linux-arm64@0.33.5':
|
||||
resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@img/sharp-linux-arm@0.33.5':
|
||||
resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@img/sharp-linux-s390x@0.33.5':
|
||||
resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@img/sharp-linux-x64@0.33.5':
|
||||
resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@img/sharp-linuxmusl-arm64@0.33.5':
|
||||
resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@img/sharp-linuxmusl-x64@0.33.5':
|
||||
resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@img/sharp-wasm32@0.33.5':
|
||||
resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
|
||||
|
|
@ -6765,36 +6778,42 @@ packages:
|
|||
engines: {node: '>= 10.0.0'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@parcel/watcher-linux-arm-musl@2.5.1':
|
||||
resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@parcel/watcher-linux-arm64-glibc@2.5.1':
|
||||
resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@parcel/watcher-linux-arm64-musl@2.5.1':
|
||||
resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@parcel/watcher-linux-x64-glibc@2.5.1':
|
||||
resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@parcel/watcher-linux-x64-musl@2.5.1':
|
||||
resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@parcel/watcher-win32-arm64@2.5.1':
|
||||
resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
|
||||
|
|
@ -6879,6 +6898,9 @@ packages:
|
|||
'@protobufjs/codegen@2.0.4':
|
||||
resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
|
||||
|
||||
'@protobufjs/codegen@2.0.5':
|
||||
resolution: {integrity: sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==}
|
||||
|
||||
'@protobufjs/eventemitter@1.1.0':
|
||||
resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
|
||||
|
||||
|
|
@ -6891,14 +6913,17 @@ packages:
|
|||
'@protobufjs/inquire@1.1.0':
|
||||
resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
|
||||
|
||||
'@protobufjs/inquire@1.1.1':
|
||||
resolution: {integrity: sha512-mnzgDV26ueAvk7rsbt9L7bE0SuAoqyuys/sMMrmVcN5x9VsxpcG3rqAUSgDyLp0UZlmNfIbQ4fHfCtreVBk8Ew==}
|
||||
|
||||
'@protobufjs/path@1.1.2':
|
||||
resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
|
||||
|
||||
'@protobufjs/pool@1.1.0':
|
||||
resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
|
||||
|
||||
'@protobufjs/utf8@1.1.0':
|
||||
resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
|
||||
'@protobufjs/utf8@1.1.1':
|
||||
resolution: {integrity: sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==}
|
||||
|
||||
'@pulumi/aws@7.12.0':
|
||||
resolution: {integrity: sha512-uVrfb8PsWyGl3W3hUrnp/RipU5OQQr/5EcxZaT1qmbaHsiCo2yzv3v4/0uxq3uFnhFo4B1EjiFe2lENfTZP3mQ==}
|
||||
|
|
@ -8374,24 +8399,28 @@ packages:
|
|||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.41':
|
||||
resolution: {integrity: sha512-MioXcCIX/wB1pBnBoJx8q4OGucUAfC1+/X1ilKFsjDK05VwbLZGRgOVD5OJJpUQPK86DhQciNBrfOKDiatxNmg==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.41':
|
||||
resolution: {integrity: sha512-m66M61fizvRCwt5pOEiZQMiwBL9/y0bwU/+Kc4Ce/Pef6YfoEkR28y+DzN9rMdjo8Z28NXjsDPq9nH4mXnAP0g==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rolldown/binding-linux-x64-musl@1.0.0-beta.41':
|
||||
resolution: {integrity: sha512-yRxlSfBvWnnfrdtJfvi9lg8xfG5mPuyoSHm0X01oiE8ArmLRvoJGHUTJydCYz+wbK2esbq5J4B4Tq9WAsOlP1Q==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rolldown/binding-openharmony-arm64@1.0.0-beta.41':
|
||||
resolution: {integrity: sha512-PHVxYhBpi8UViS3/hcvQQb9RFqCtvFmFU1PvUoTRiUdBtgHA6fONNHU4x796lgzNlVSD3DO/MZNk1s5/ozSMQg==}
|
||||
|
|
@ -8505,66 +8534,79 @@ packages:
|
|||
resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.59.0':
|
||||
resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rollup/rollup-linux-arm64-gnu@4.59.0':
|
||||
resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-arm64-musl@4.59.0':
|
||||
resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rollup/rollup-linux-loong64-gnu@4.59.0':
|
||||
resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==}
|
||||
cpu: [loong64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-loong64-musl@4.59.0':
|
||||
resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==}
|
||||
cpu: [loong64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rollup/rollup-linux-ppc64-gnu@4.59.0':
|
||||
resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-ppc64-musl@4.59.0':
|
||||
resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.59.0':
|
||||
resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-riscv64-musl@4.59.0':
|
||||
resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rollup/rollup-linux-s390x-gnu@4.59.0':
|
||||
resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-x64-gnu@4.59.0':
|
||||
resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-x64-musl@4.59.0':
|
||||
resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rollup/rollup-openbsd-x64@4.59.0':
|
||||
resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==}
|
||||
|
|
@ -9388,24 +9430,28 @@ packages:
|
|||
engines: {node: '>=10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@swc/core-linux-arm64-musl@1.13.5':
|
||||
resolution: {integrity: sha512-9+ZxFN5GJag4CnYnq6apKTnnezpfJhCumyz0504/JbHLo+Ue+ZtJnf3RhyA9W9TINtLE0bC4hKpWi8ZKoETyOQ==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@swc/core-linux-x64-gnu@1.13.5':
|
||||
resolution: {integrity: sha512-WD530qvHrki8Ywt/PloKUjaRKgstQqNGvmZl54g06kA+hqtSE2FTG9gngXr3UJxYu/cNAjJYiBifm7+w4nbHbA==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@swc/core-linux-x64-musl@1.13.5':
|
||||
resolution: {integrity: sha512-Luj8y4OFYx4DHNQTWjdIuKTq2f5k6uSXICqx+FSabnXptaOBAbJHNbHT/06JZh6NRUouaf0mYXN0mcsqvkhd7Q==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@swc/core-win32-arm64-msvc@1.13.5':
|
||||
resolution: {integrity: sha512-cZ6UpumhF9SDJvv4DA2fo9WIzlNFuKSkZpZmPG1c+4PFSEMy5DFOjBSllCvnqihCabzXzpn6ykCwBmHpy31vQw==}
|
||||
|
|
@ -9496,24 +9542,28 @@ packages:
|
|||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@tailwindcss/oxide-linux-arm64-musl@4.1.18':
|
||||
resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@tailwindcss/oxide-linux-x64-gnu@4.1.18':
|
||||
resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@tailwindcss/oxide-linux-x64-musl@4.1.18':
|
||||
resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@tailwindcss/oxide-wasm32-wasi@4.1.18':
|
||||
resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==}
|
||||
|
|
@ -10394,41 +10444,49 @@ packages:
|
|||
resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@unrs/resolver-binding-linux-arm64-musl@1.11.1':
|
||||
resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
|
||||
resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
|
||||
resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
|
||||
resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
|
||||
resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@unrs/resolver-binding-linux-x64-gnu@1.11.1':
|
||||
resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@unrs/resolver-binding-linux-x64-musl@1.11.1':
|
||||
resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@unrs/resolver-binding-wasm32-wasi@1.11.1':
|
||||
resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
|
||||
|
|
@ -14625,48 +14683,56 @@ packages:
|
|||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
lightningcss-linux-arm64-gnu@1.31.1:
|
||||
resolution: {integrity: sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
lightningcss-linux-arm64-musl@1.30.2:
|
||||
resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
lightningcss-linux-arm64-musl@1.31.1:
|
||||
resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
lightningcss-linux-x64-gnu@1.30.2:
|
||||
resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
lightningcss-linux-x64-gnu@1.31.1:
|
||||
resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
lightningcss-linux-x64-musl@1.30.2:
|
||||
resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
lightningcss-linux-x64-musl@1.31.1:
|
||||
resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
lightningcss-win32-arm64-msvc@1.30.2:
|
||||
resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==}
|
||||
|
|
@ -16528,12 +16594,12 @@ packages:
|
|||
proto-list@1.2.4:
|
||||
resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
|
||||
|
||||
protobufjs@7.5.5:
|
||||
resolution: {integrity: sha512-3wY1AxV+VBNW8Yypfd1yQY9pXnqTAN+KwQxL8iYm3/BjKYMNg4i0owhEe26PWDOMaIrzeeF98Lqd5NGz4omiIg==}
|
||||
protobufjs@7.5.8:
|
||||
resolution: {integrity: sha512-dvpCIeLPbXZS/Ete7yLaO7RenOdken2NHKykBXbsaGxZT0UTltcarBciw+A78SRQs9iMAAVpsYA+l8b1hTePIA==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
||||
protobufjs@8.0.1:
|
||||
resolution: {integrity: sha512-NWWCCscLjs+cOKF/s/XVNFRW7Yih0fdH+9brffR5NZCy8k42yRdl5KlWKMVXuI1vfCoy4o1z80XR/W/QUb3V3w==}
|
||||
protobufjs@8.2.0:
|
||||
resolution: {integrity: sha512-oI+GC9iPxrQEr6wragljFKH46/r3rNsm6eg7F2fp6kBUMnf6/mesDRdBuF4gK+OyaKJ8N4C1B9s9cCeYdqFikg==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
||||
proxy-addr@2.0.7:
|
||||
|
|
@ -19216,7 +19282,7 @@ snapshots:
|
|||
'@protobufjs/inquire': 1.1.0
|
||||
'@protobufjs/path': 1.1.2
|
||||
'@protobufjs/pool': 1.1.0
|
||||
'@protobufjs/utf8': 1.1.0
|
||||
'@protobufjs/utf8': 1.1.1
|
||||
'@types/long': 4.0.2
|
||||
'@types/node': 10.17.60
|
||||
long: 4.0.0
|
||||
|
|
@ -19232,7 +19298,7 @@ snapshots:
|
|||
'@protobufjs/inquire': 1.1.0
|
||||
'@protobufjs/path': 1.1.2
|
||||
'@protobufjs/pool': 1.1.0
|
||||
'@protobufjs/utf8': 1.1.0
|
||||
'@protobufjs/utf8': 1.1.1
|
||||
'@types/long': 4.0.2
|
||||
long: 4.0.0
|
||||
|
||||
|
|
@ -24934,14 +25000,14 @@ snapshots:
|
|||
dependencies:
|
||||
lodash.camelcase: 4.3.0
|
||||
long: 5.2.3
|
||||
protobufjs: 7.5.5
|
||||
protobufjs: 7.5.8
|
||||
yargs: 17.7.2
|
||||
|
||||
'@grpc/proto-loader@0.8.1':
|
||||
dependencies:
|
||||
lodash.camelcase: 4.3.0
|
||||
long: 5.2.3
|
||||
protobufjs: 7.5.5
|
||||
protobufjs: 7.5.8
|
||||
yargs: 17.7.2
|
||||
|
||||
'@hapi/address@5.1.1':
|
||||
|
|
@ -26810,7 +26876,7 @@ snapshots:
|
|||
'@opentelemetry/sdk-logs': 0.217.0(@opentelemetry/api@1.9.1)
|
||||
'@opentelemetry/sdk-metrics': 2.7.1(@opentelemetry/api@1.9.1)
|
||||
'@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1)
|
||||
protobufjs: 8.0.1
|
||||
protobufjs: 8.2.0
|
||||
|
||||
'@opentelemetry/propagator-b3@1.30.0(@opentelemetry/api@1.9.0)':
|
||||
dependencies:
|
||||
|
|
@ -27124,22 +27190,26 @@ snapshots:
|
|||
|
||||
'@protobufjs/codegen@2.0.4': {}
|
||||
|
||||
'@protobufjs/codegen@2.0.5': {}
|
||||
|
||||
'@protobufjs/eventemitter@1.1.0': {}
|
||||
|
||||
'@protobufjs/fetch@1.1.0':
|
||||
dependencies:
|
||||
'@protobufjs/aspromise': 1.1.2
|
||||
'@protobufjs/inquire': 1.1.0
|
||||
'@protobufjs/inquire': 1.1.1
|
||||
|
||||
'@protobufjs/float@1.0.2': {}
|
||||
|
||||
'@protobufjs/inquire@1.1.0': {}
|
||||
|
||||
'@protobufjs/inquire@1.1.1': {}
|
||||
|
||||
'@protobufjs/path@1.1.2': {}
|
||||
|
||||
'@protobufjs/pool@1.1.0': {}
|
||||
|
||||
'@protobufjs/utf8@1.1.0': {}
|
||||
'@protobufjs/utf8@1.1.1': {}
|
||||
|
||||
'@pulumi/aws@7.12.0(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.2)(typescript@5.7.3))(typescript@5.7.3)':
|
||||
dependencies:
|
||||
|
|
@ -30437,7 +30507,7 @@ snapshots:
|
|||
'@typescript-eslint/parser': 7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3)
|
||||
eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)
|
||||
eslint-config-prettier: 9.1.2(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))
|
||||
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))
|
||||
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))
|
||||
eslint-plugin-jsonc: 2.19.1(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))
|
||||
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))
|
||||
|
|
@ -33095,7 +33165,7 @@ snapshots:
|
|||
'@grpc/grpc-js': 1.12.5
|
||||
'@grpc/proto-loader': 0.7.13
|
||||
docker-modem: 5.0.6
|
||||
protobufjs: 7.5.5
|
||||
protobufjs: 7.5.8
|
||||
tar-fs: 2.1.4
|
||||
uuid: 10.0.0
|
||||
transitivePeerDependencies:
|
||||
|
|
@ -33485,7 +33555,7 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)):
|
||||
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)):
|
||||
dependencies:
|
||||
'@nolyfill/is-core-module': 1.0.39
|
||||
debug: 4.4.3(supports-color@8.1.1)
|
||||
|
|
@ -33524,14 +33594,14 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)):
|
||||
eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)):
|
||||
dependencies:
|
||||
debug: 3.2.7(supports-color@8.1.1)
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3)
|
||||
eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))
|
||||
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
|
@ -33574,7 +33644,7 @@ snapshots:
|
|||
doctrine: 2.1.0
|
||||
eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))
|
||||
eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))
|
||||
hasown: 2.0.2
|
||||
is-core-module: 2.16.1
|
||||
is-glob: 4.0.3
|
||||
|
|
@ -38607,33 +38677,23 @@ snapshots:
|
|||
|
||||
proto-list@1.2.4: {}
|
||||
|
||||
protobufjs@7.5.5:
|
||||
protobufjs@7.5.8:
|
||||
dependencies:
|
||||
'@protobufjs/aspromise': 1.1.2
|
||||
'@protobufjs/base64': 1.1.2
|
||||
'@protobufjs/codegen': 2.0.4
|
||||
'@protobufjs/codegen': 2.0.5
|
||||
'@protobufjs/eventemitter': 1.1.0
|
||||
'@protobufjs/fetch': 1.1.0
|
||||
'@protobufjs/float': 1.0.2
|
||||
'@protobufjs/inquire': 1.1.0
|
||||
'@protobufjs/inquire': 1.1.1
|
||||
'@protobufjs/path': 1.1.2
|
||||
'@protobufjs/pool': 1.1.0
|
||||
'@protobufjs/utf8': 1.1.0
|
||||
'@protobufjs/utf8': 1.1.1
|
||||
'@types/node': 24.12.2
|
||||
long: 5.2.3
|
||||
|
||||
protobufjs@8.0.1:
|
||||
protobufjs@8.2.0:
|
||||
dependencies:
|
||||
'@protobufjs/aspromise': 1.1.2
|
||||
'@protobufjs/base64': 1.1.2
|
||||
'@protobufjs/codegen': 2.0.4
|
||||
'@protobufjs/eventemitter': 1.1.0
|
||||
'@protobufjs/fetch': 1.1.0
|
||||
'@protobufjs/float': 1.0.2
|
||||
'@protobufjs/inquire': 1.1.0
|
||||
'@protobufjs/path': 1.1.2
|
||||
'@protobufjs/pool': 1.1.0
|
||||
'@protobufjs/utf8': 1.1.0
|
||||
'@types/node': 24.12.2
|
||||
long: 5.2.3
|
||||
|
||||
|
|
|
|||
|
|
@ -11,3 +11,14 @@ packages:
|
|||
- scripts
|
||||
- rules
|
||||
- load-tests/otel-traces
|
||||
|
||||
minimumReleaseAge: 1440
|
||||
minimumReleaseAgeExclude:
|
||||
- 'envelop'
|
||||
- '@envelop/*'
|
||||
- 'graphql-yoga'
|
||||
- '@graphql-yoga/*'
|
||||
- 'graphql-hive/*'
|
||||
- '@graphql-inspector/*'
|
||||
- '@graphql-tools/*'
|
||||
- '@theguild/federation-composition'
|
||||
|
|
|
|||
Loading…
Reference in a new issue