Vigia

Обновление @growthbook/growthbook с 1.x до 2.x

Сравнение публичного API @growthbook/growthbook 1.8.0 и 2.0.0, вычисленное автоматически по их типам TypeScript. Изменённая сигнатура — возможное несовместимое изменение, а не гарантия.

Сводка

Удалённые пути импорта0
Удалённые экспорты0
Изменённые сигнатуры8
Удалённые члены классов или интерфейсов0
Изменённые члены классов или интерфейсов1
Новые устаревания0
Изменения требований (engines, peer-зависимости)0
Новые экспорты26

Удалённые экспорты

Не обнаружено.

Изменённые сигнатуры

exportБылоСтало
@growthbook/growthbook · Context{ enabled?: boolean | undefined; attributes?: Attributes | undefined; url?: string | undefined; features?: Record<string, FeatureDefinition<any>> | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; forcedVariations?: Record<string, number> | undefined; forcedFeatureValues?: Map<string, any> | undefined; attributeOverrides?: Attributes | undefined; blockedChangeIds?: string[] | undefined; disableVisualExperiments?: boolean | undefined; disableJsInjection?: boolean | undefined; jsInjectionNonce?: string | undefined; disableUrlRedirectExperiments?: boolean | undefine…{ enabled?: boolean | undefined; attributes?: Attributes | undefined; remoteGroupIds?: string[] | undefined; url?: string | undefined; features?: Record<string, FeatureDefinition<any>> | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; forcedVariations?: Record<string, number> | undefined; forcedFeatureValues?: Map<string, any> | undefined; attributeOverrides?: Attributes | undefined; blockedChangeIds?: string[] | undefined; disableVisualExperiments?: boolean | undefined; disableJsInjection?: boolean | undefined; jsInjectionNonce?: string | undefined; disableUrlR…
@growthbook/growthbook · Options{ enabled?: boolean | undefined; attributes?: Attributes | undefined; url?: string | undefined; features?: Record<string, FeatureDefinition<any>> | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; forcedVariations?: Record<string, number> | undefined; forcedFeatureValues?: Map<string, any> | undefined; attributeOverrides?: Attributes | undefined; blockedChangeIds?: string[] | undefined; disableVisualExperiments?: boolean | undefined; disableJsInjection?: boolean | undefined; jsInjectionNonce?: string | undefined; disableUrlRedirectExperiments?: boolean | undefine…{ enabled?: boolean | undefined; attributes?: Attributes | undefined; remoteGroupIds?: string[] | undefined; url?: string | undefined; features?: Record<string, FeatureDefinition<any>> | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; forcedVariations?: Record<string, number> | undefined; forcedFeatureValues?: Map<string, any> | undefined; attributeOverrides?: Attributes | undefined; blockedChangeIds?: string[] | undefined; disableVisualExperiments?: boolean | undefined; disableJsInjection?: boolean | undefined; jsInjectionNonce?: string | undefined; disableUrlR…
@growthbook/growthbook · UserContext{ enabled?: boolean | undefined; qaMode?: boolean | undefined; enableDevMode?: boolean | undefined; attributes?: Attributes | undefined; url?: string | undefined; blockedChangeIds?: string[] | undefined; stickyBucketAssignmentDocs?: Record<string, StickyAssignmentsDocument> | undefined; saveStickyBucketAssignmentDoc?: ((doc: StickyAssignmentsDocument) => Promise<unknown>) | undefined; forcedVariations?: Record<string, number> | undefined; forcedFeatureValues?: Map<string, any> | undefined; attributeOverrides?: Attributes | undefined; trackingCallback?: TrackingCallback | undefined; onFeatureUs…{ enabled?: boolean | undefined; qaMode?: boolean | undefined; enableDevMode?: boolean | undefined; attributes?: Attributes | undefined; remoteGroupIds?: string[] | undefined; url?: string | undefined; blockedChangeIds?: string[] | undefined; stickyBucketAssignmentDocs?: Record<string, StickyAssignmentsDocument> | undefined; saveStickyBucketAssignmentDoc?: ((doc: StickyAssignmentsDocument) => Promise<unknown>) | undefined; forcedVariations?: Record<string, number> | undefined; forcedFeatureValues?: Map<string, any> | undefined; attributeOverrides?: Attributes | undefined; trackingCallback?: Tr…
@growthbook/growthbook · evalCondition(obj: TestedObj, condition: ConditionInterface, savedGroups?: SavedGroupsPayload | undefined, visited?: Set<string> | undefined): boolean(obj: TestedObj, condition: ConditionInterface, options?: EvalConditionOptions | undefined): boolean
@growthbook/growthbook · AutoExperimentExperiment<T> & { changeId?: string | undefined; manual?: boolean | undefined; }Experiment<T> & { changeId?: string | undefined; manual?: boolean | undefined; metadata?: PayloadMetadata | undefined; contextualBanditRef?: string | undefined; }
@growthbook/growthbook · GrowthBookPayload{ features?: FeatureDefinitions | undefined; dateUpdated?: string | undefined; encryptedFeatures?: string | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; encryptedExperiments?: string | undefined; savedGroups?: SavedGroupsPayload | undefined; encryptedSavedGroups?: string | undefined; contextualBandits?: ContextualBanditDefinitions | undefined; encryptedContextualBandits?: string | undefined; }{ features?: FeatureDefinitions | undefined; dateUpdated?: string | undefined; encryptedFeatures?: string | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; encryptedExperiments?: string | undefined; savedGroups?: SavedGroupsPayload | undefined; encryptedSavedGroups?: string | undefined; contextualBandits?: ContextualBanditDefinitions | undefined; encryptedContextualBandits?: string | undefined; interleavings?: InterleavingDefinitions | undefined; encryptedInterleavings?: string | undefined; }
@growthbook/growthbook · FeatureApiResponse{ features?: FeatureDefinitions | undefined; dateUpdated?: string | undefined; encryptedFeatures?: string | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; encryptedExperiments?: string | undefined; savedGroups?: SavedGroupsPayload | undefined; encryptedSavedGroups?: string | undefined; contextualBandits?: ContextualBanditDefinitions | undefined; encryptedContextualBandits?: string | undefined; }{ features?: FeatureDefinitions | undefined; dateUpdated?: string | undefined; encryptedFeatures?: string | undefined; experiments?: AutoExperiment<AutoExperimentVariation>[] | undefined; encryptedExperiments?: string | undefined; savedGroups?: SavedGroupsPayload | undefined; encryptedSavedGroups?: string | undefined; contextualBandits?: ContextualBanditDefinitions | undefined; encryptedContextualBandits?: string | undefined; interleavings?: InterleavingDefinitions | undefined; encryptedInterleavings?: string | undefined; }
@growthbook/growthbook · SavedGroupPayloadEntry{ type: "list"; attributeKey: string; values: (string | number)[]; } | { type: "condition"; condition: ConditionInterface; }{ type: "list"; attributeKey: string; values: (string | number)[]; } | { type: "condition"; condition: ConditionInterface; } | { type: "remote"; attributeKey: string; valuesFrom?: string | undefined; }

Удалённые члены классов или интерфейсов

Не обнаружено.

Изменённые члены классов или интерфейсов

memberБылоСтало
GrowthBook.getAttributes(): { [x: string]: any; }(): Attributes

Новые устаревания

Не обнаружено.

Изменения требований (engines, peer-зависимости)

Не обнаружено.

Новые экспорты (26)
importexportkind
@growthbook/growthbookredisResolverfunction
@growthbook/growthbookPayloadFilterstype
@growthbook/growthbookRedisSetClienttype
@growthbook/growthbookpruneConditionfunction
@growthbook/growthbookPayloadMetadatatype
@growthbook/growthbookRemoteSavedGrouptype
@growthbook/growthbookSavedGroupResolvertype
@growthbook/growthbookEvalConditionOptionstype
@growthbook/growthbookReducePayloadOptionstype
@growthbook/growthbookTypeMismatchCallbacktype
@growthbook/growthbookgetRemoteSavedGroupsfunction
@growthbook/growthbookConditionTypeMismatchtype
@growthbook/growthbookresolveRemoteGroupIdsfunction
@growthbook/growthbookInterleavingDefinitiontype
@growthbook/growthbookInterleavingDefinitionstype
@growthbook/growthbookREMOTE_GROUP_IDS_ATTRIBUTEvariable
@growthbook/growthbook/pluginsinterleavefunction
@growthbook/growthbook/pluginsInterleavedItemtype
@growthbook/growthbook/pluginsInterleaveConfigtype
@growthbook/growthbook/pluginsInterleaveResulttype
@growthbook/growthbook/pluginsinterleavePluginfunction
@growthbook/growthbook/pluginsInterleaveOptionstype
@growthbook/growthbook/pluginsInterleaveExposuretype
@growthbook/growthbook/pluginsInterleavePluginOptionstype
@growthbook/growthbook/pluginsInterleaveTrackingPropstype
@growthbook/growthbook/pluginsEVENT_INTERLEAVE_EXPOSUREvariable

Передайте эти данные своему ИИ-агенту

Vigia — бесплатный MCP-сервер: ваш агент для программирования проверяет версии, несовместимые изменения и уязвимости до того, как напишет код. Без регистрации и API-ключа.

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

Добавить в CursorДобавить в VS Code★ Звезда на GitHub

Любой другой MCP-клиент
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

Навык для агентов (SKILL.md): подсказывает агенту, когда использовать Vigia · GitHub Action для pull request

Часто задаваемые вопросы

Какие несовместимые изменения при обновлении @growthbook/growthbook с 1 до 2?

Между @growthbook/growthbook 1.8.0 и 2.0.0 Vigia нашла удалённых экспортов: 0, изменённых сигнатур: 8, удалённых или изменённых членов классов и интерфейсов: 1.

Что устарело в @growthbook/growthbook 2?

В @growthbook/growthbook 2.0.0 новыми устаревшими помечено экспортов или членов: 0.

Для агентов

GET https://vigia.coredls.cloud/v1/packages/npm/@growthbook/growthbook/upgrade?from=1.8.0&to=2.0.0