@teambit/schema 1.0.1187 → 1.0.1189

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.semantics_schema@1.0.1187/dist/schema.composition.js';
2
- import * as compositions_1 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.semantics_schema@1.0.1187/dist/mock/button/button.composition.js';
3
- import * as compositions_2 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.semantics_schema@1.0.1187/dist/mock/button-v2/button.composition.js';
4
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.semantics_schema@1.0.1187/dist/schema.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.semantics_schema@1.0.1189/dist/schema.composition.js';
2
+ import * as compositions_1 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.semantics_schema@1.0.1189/dist/mock/button-v2/button.composition.js';
3
+ import * as compositions_2 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.semantics_schema@1.0.1189/dist/mock/button/button.composition.js';
4
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.semantics_schema@1.0.1189/dist/schema.docs.mdx';
5
5
 
6
6
  export const compositions = [compositions_0, compositions_1, compositions_2];
7
7
  export const overview = [overview_0];
@@ -4,6 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.SchemaMain = void 0;
7
+ function _harmonyModules() {
8
+ const data = require("@teambit/harmony.modules.runtimes");
9
+ _harmonyModules = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
7
14
  function _cli() {
8
15
  const data = require("@teambit/cli");
9
16
  _cli = function () {
@@ -509,7 +516,7 @@ class SchemaMain {
509
516
  }
510
517
  exports.SchemaMain = SchemaMain;
511
518
  _defineProperty(SchemaMain, "API_DIFF_MEMO_MAX", 500);
512
- _defineProperty(SchemaMain, "runtime", _cli().MainRuntime);
519
+ _defineProperty(SchemaMain, "runtime", _harmonyModules().MainRuntime);
513
520
  _defineProperty(SchemaMain, "dependencies", [_envs().EnvsAspect, _cli().CLIAspect, _component().ComponentAspect, _graphql().GraphqlAspect, _logger().LoggerAspect, _builder().BuilderAspect, _workspace().WorkspaceAspect, _scope().ScopeAspect]);
514
521
  _defineProperty(SchemaMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType()]);
515
522
  _defineProperty(SchemaMain, "defaultConfig", {
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_component","_harmony","_graphql","_envs","_logger","_semanticsEntities","_builder","_workspace","_scope","_legacy","_scope2","_semanticsEntities2","_schema","_schema2","_schemaDiff","_schema3","_schema4","_schema5","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","SchemaMain","constructor","parserSlot","impactRuleSlot","envs","config","builder","workspace","logger","impactAssessor","Map","getDefaultParser","get","defaultParser","registerSchemaClass","schema","SchemaRegistry","register","registerSchemaClasses","getSchemas","registerGetSchemas","parseModule","path","content","parsers","toArray","maybeParser","find","parser","match","extension","getSchemaExtractor","component","tsserverPath","contextPath","env","getEnv","Error","name","undefined","getSchema","shouldDisposeResourcesOnceDone","alwaysRunExtractor","skipInternals","schemaTransformers","apiTransformers","includeFiles","getSchemaWithAvailability","disabled","APISchema","empty","id","availability","available","reason","extractionFailure","buildStatus","BuildStatus","Succeed","formatter","getFormatter","setKey","schemaExtractor","result","extract","dispose","live","err","message","warn","toString","fromArtifact","readSchemaFromArtifact","debug","schemaArtifact","getArtifactsVinylByAspectAndTaskName","SchemaAspect","SCHEMA_TASK_NAME","length","schemaJsonStr","contents","schemaJson","JSON","parse","getSchemaFromObject","SyntaxError","error","obj","fromObject","getSchemaFromRemote","isPattern","some","char","includes","getId","startsWith","compId","resolveComponentIdFromPackageName","compIdStr","http","Http","connect","SYMPHONY_GRAPHQL","CENTRAL_BIT_HUB_NAME","response","registerParser","calcSchemaData","getSchemaData","state","aspects","registerImpactRules","rules","getImpactAssessor","registerRules","values","flat","computeAPIDiff","baseComp","compareComp","memoKey","cached","apiDiffMemo","pending","apiDiffInflight","immutable","promise","doComputeAPIDiff","then","transient","status","base","compare","Boolean","memoizable","size","API_DIFF_MEMO_MAX","firstKey","keys","next","delete","set","finally","isModifiedCheckoutOf","checkedOut","getIdIfExist","version","isModified","getSide","comp","Promise","all","assessor","isSchemaTaskDisabled","provider","cli","graphql","loggerMain","scope","createLogger","ImpactAssessor","registerDefaultRules","DEFAULT_IMPACT_RULES","schemaTask","SchemaTask","registerBuildTasks","schemaCmd","SchemaCommand","commands","SchemaDiffCommand","schemaSchema","registerService","SchemaService","registerOnComponentLoad","registerOnCompAspectReCalc","Schemas","exports","MainRuntime","EnvsAspect","CLIAspect","ComponentAspect","GraphqlAspect","LoggerAspect","BuilderAspect","WorkspaceAspect","ScopeAspect","Slot","withType","addRuntime","_default","default"],"sources":["schema.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { MainRuntime, CLIAspect } from '@teambit/cli';\nimport type { Component, ComponentMain } from '@teambit/component';\nimport { ComponentAspect } from '@teambit/component';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport type { EnvsMain } from '@teambit/envs';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { PrettierConfigMutator } from '@teambit/defender.prettier.config-mutator';\nimport type { Export, SchemaNodeConstructor } from '@teambit/semantics.entities.semantic-schema';\nimport { APISchema, Schemas, SchemaRegistry } from '@teambit/semantics.entities.semantic-schema';\nimport type { BuilderMain } from '@teambit/builder';\nimport { BuilderAspect } from '@teambit/builder';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport type { Formatter } from '@teambit/formatter';\nimport type { SchemaNodeTransformer, SchemaTransformer } from '@teambit/typescript';\nimport { BuildStatus, CENTRAL_BIT_HUB_NAME, SYMPHONY_GRAPHQL } from '@teambit/legacy.constants';\nimport { Http } from '@teambit/scope.network';\nimport type {\n ImpactRule,\n APIDiffResult,\n SchemaAvailability,\n SchemaUnavailableReason,\n} from '@teambit/semantics.entities.semantic-schema-diff';\nimport { ImpactAssessor, DEFAULT_IMPACT_RULES, computeAPIDiff } from '@teambit/semantics.entities.semantic-schema-diff';\nimport type { Parser } from './parser';\nimport { SchemaAspect } from './schema.aspect';\nimport type { SchemaExtractor } from './schema-extractor';\nimport { SchemaCommand } from './schema.cmd';\nimport { SchemaDiffCommand } from './schema-diff.cmd';\nimport { schemaSchema } from './schema.graphql';\nimport { SchemaTask, SCHEMA_TASK_NAME } from './schema.task';\nimport { SchemaService } from './schema.service';\n\nexport type ParserSlot = SlotRegistry<Parser>;\nexport type ImpactRuleSlot = SlotRegistry<ImpactRule[]>;\n\nexport type SchemaConfig = {\n /**\n * default parser\n */\n defaultParser: string;\n /**\n * disable extracting schema\n */\n disabled?: boolean;\n};\n\n/**\n * extension for extracting component schemas.\n */\nexport class SchemaMain {\n constructor(\n /**\n * parsers slot.\n */\n private parserSlot: ParserSlot,\n\n /**\n * impact rules slot — other aspects register custom rules via registerImpactRules().\n */\n private impactRuleSlot: ImpactRuleSlot,\n\n private envs: EnvsMain,\n\n private config: SchemaConfig,\n\n private builder: BuilderMain,\n\n private workspace: Workspace,\n\n private logger: Logger,\n\n private impactAssessor: ImpactAssessor\n ) {}\n\n /**\n * get the default parser.\n */\n getDefaultParser(): Parser {\n return this.parserSlot.get(this.config.defaultParser) as Parser;\n }\n\n /**\n * @deprecated use registerSchemaClasses instead\n * registerSchemaClasses is better for performance as it lazy-loads the schemas.\n */\n registerSchemaClass(schema: SchemaNodeConstructor) {\n SchemaRegistry.register(schema);\n }\n\n registerSchemaClasses(getSchemas: () => SchemaNodeConstructor[]) {\n SchemaRegistry.registerGetSchemas(getSchemas);\n }\n\n /**\n * parse a module into a component schema.\n */\n parseModule(path: string, content?: string): Export[] {\n const parsers = this.parserSlot.toArray();\n let maybeParser = parsers.find(([, parser]) => {\n const match = path.match(parser.extension);\n return match;\n });\n\n if (!maybeParser) {\n maybeParser = [this.config.defaultParser, this.getDefaultParser()];\n }\n\n const [, parser] = maybeParser;\n return parser.parseModule(path, content);\n }\n\n getSchemaExtractor(component: Component, tsserverPath?: string, contextPath?: string): SchemaExtractor {\n const env = this.envs.getEnv(component).env;\n if (typeof env.getSchemaExtractor === 'undefined') {\n throw new Error(`No SchemaExtractor defined for ${env.name}`);\n }\n\n return env.getSchemaExtractor(undefined, tsserverPath, contextPath);\n }\n\n /**\n * get a schema of a component.\n * @param component target component.\n * @param shouldDisposeResourcesOnceDone for long-running processes, such as bit-start/bit-watch, this is not\n * relevant. for calling the API only to get a schema for one component, this is needed to ensure the ts-server is\n * not kept alive. otherwise, the process will never end.\n *\n */\n async getSchema(\n component: Component,\n shouldDisposeResourcesOnceDone = false,\n alwaysRunExtractor = false,\n tsserverPath?: string,\n contextPath?: string,\n skipInternals?: boolean,\n schemaTransformers?: SchemaTransformer[],\n apiTransformers?: SchemaNodeTransformer[],\n includeFiles?: string[]\n ): Promise<APISchema> {\n const { schema } = await this.getSchemaWithAvailability(\n component,\n shouldDisposeResourcesOnceDone,\n alwaysRunExtractor,\n tsserverPath,\n contextPath,\n skipInternals,\n schemaTransformers,\n apiTransformers,\n includeFiles\n );\n return schema;\n }\n\n /**\n * like getSchema, but reports whether a real schema was obtained. an empty schema\n * with `available: false` means \"no schema data exists for this version\" — callers\n * (e.g. API diff) must not treat it as an empty API surface.\n */\n async getSchemaWithAvailability(\n component: Component,\n shouldDisposeResourcesOnceDone = false,\n alwaysRunExtractor = false,\n tsserverPath?: string,\n contextPath?: string,\n skipInternals?: boolean,\n schemaTransformers?: SchemaTransformer[],\n apiTransformers?: SchemaNodeTransformer[],\n includeFiles?: string[]\n ): Promise<{ schema: APISchema; availability: SchemaAvailability }> {\n if (this.config.disabled) {\n return { schema: APISchema.empty(component.id as any), availability: { available: false, reason: 'DISABLED' } };\n }\n\n // when extraction is attempted and fails, remember why so the artifact-fallback\n // miss below reports the actual cause rather than a generic NOT_BUILT.\n let extractionFailure: SchemaUnavailableReason | undefined;\n\n if (alwaysRunExtractor || (this.workspace && component.buildStatus !== BuildStatus.Succeed)) {\n try {\n const env = this.envs.getEnv(component).env;\n // types need to be fixed\n const formatter: Formatter | undefined = env.getFormatter?.(null, [\n (config: PrettierConfigMutator) => {\n config.setKey('parser', 'typescript');\n return config;\n },\n ]);\n if (typeof env.getSchemaExtractor === 'undefined') {\n extractionFailure = 'NO_EXTRACTOR';\n throw new Error(`No SchemaExtractor defined for ${env.name}`);\n }\n const schemaExtractor: SchemaExtractor = env.getSchemaExtractor(\n undefined,\n tsserverPath,\n contextPath,\n schemaTransformers,\n apiTransformers\n );\n\n const result = await schemaExtractor.extract(component, {\n formatter,\n tsserverPath,\n contextPath,\n skipInternals,\n includeFiles,\n });\n if (shouldDisposeResourcesOnceDone) schemaExtractor.dispose();\n\n // `live`: extracted from source at call time, not read from the version's built artifact —\n // consumers that key results by version (API diff memo/cache) must not persist it.\n return { schema: result, availability: { available: true, live: true } };\n } catch (err) {\n if (alwaysRunExtractor) throw err;\n extractionFailure = extractionFailure || 'FAILED';\n const message = err instanceof Error ? err.message : String(err);\n this.logger.warn(\n `failed extracting schema for ${component.id.toString()}, falling back to artifacts. extractor error: ${message}`,\n err\n );\n }\n }\n\n // on scope get schema from builder api\n const fromArtifact = await this.readSchemaFromArtifact(component);\n\n if (!fromArtifact) {\n this.logger.debug(`no schema found for ${component.id.toString()}`);\n\n /**\n * return empty schema\n * when tag/snap without build\n * or backwards compatibility\n */\n return {\n schema: APISchema.empty(component.id as any),\n availability: { available: false, reason: extractionFailure || 'NOT_BUILT' },\n };\n }\n\n return { schema: fromArtifact, availability: { available: true } };\n }\n\n /**\n * read the schema.json artifact the schema build task produced for this exact version.\n * returns null when the version has no such artifact (never built, or built before API\n * extraction existed). throws on a corrupt artifact.\n */\n private async readSchemaFromArtifact(component: Component): Promise<APISchema | null> {\n const schemaArtifact = await this.builder.getArtifactsVinylByAspectAndTaskName(\n component,\n SchemaAspect.id,\n SCHEMA_TASK_NAME\n );\n if (schemaArtifact.length === 0) return null;\n\n const schemaJsonStr = schemaArtifact[0].contents.toString('utf-8');\n try {\n const schemaJson = JSON.parse(schemaJsonStr);\n return this.getSchemaFromObject(schemaJson);\n } catch (e) {\n if (e instanceof SyntaxError) {\n this.logger.error(e.message);\n throw new Error(`Invalid schema.json for ${component.id}`);\n }\n throw e;\n }\n }\n\n getSchemaFromObject(obj: Record<string, any>): APISchema {\n return APISchema.fromObject(obj);\n }\n\n async getSchemaFromRemote(id: string): Promise<APISchema> {\n const isPattern = ['*', ',', '!', '$', ':'].some((char) => id.includes(char));\n if (isPattern) {\n throw new Error(`remote schema command doesn't support pattern matching. please use a specific component id`);\n }\n const getId = async () => {\n if (!id.startsWith('@')) return id;\n if (!this.workspace) throw new Error(`Please provide a component ID. The ${id} recognized as a package name.`);\n const compId = await this.workspace.resolveComponentIdFromPackageName(id, true);\n return compId.toString();\n };\n const compIdStr = await getId();\n const http = await Http.connect(SYMPHONY_GRAPHQL, CENTRAL_BIT_HUB_NAME);\n const response = await http.getSchema(compIdStr);\n return this.getSchemaFromObject(response);\n }\n\n /**\n * register a new parser.\n */\n registerParser(parser: Parser): SchemaMain {\n this.parserSlot.register(parser);\n return this;\n }\n\n async calcSchemaData(): Promise<{ disabled?: boolean }> {\n return {\n disabled: this.config.disabled,\n };\n }\n\n getSchemaData(component: Component) {\n return component.state.aspects.get(SchemaAspect.id)?.data;\n }\n\n /**\n * Register custom impact rules for API diff assessment.\n * Custom rules take priority over default rules.\n * This allows environments to customize what constitutes a breaking change.\n */\n registerImpactRules(rules: ImpactRule[]): void {\n this.impactRuleSlot.register(rules);\n }\n\n /**\n * Get the ImpactAssessor with default + all registered custom rules from the slot.\n */\n getImpactAssessor(): ImpactAssessor {\n this.impactAssessor.registerRules(this.impactRuleSlot.values().flat());\n return this.impactAssessor;\n }\n\n /**\n * Compute the semantic API diff between two component versions.\n */\n /**\n * in-memory memo + single-flight for computed diffs. several consumers hit this for the\n * same immutable version pair (lane-diff status via component-compare, the compare UI's\n * apiDiff GraphQL field) — without this, a cold page load runs schema extraction twice\n * per pair. transient failures (FAILED availability / null) are never memoized.\n */\n private apiDiffMemo = new Map<string, APIDiffResult>();\n private apiDiffInflight = new Map<string, Promise<APIDiffResult | null>>();\n private static API_DIFF_MEMO_MAX = 500;\n\n async computeAPIDiff(baseComp: Component, compareComp: Component): Promise<APIDiffResult | null> {\n const memoKey = `${baseComp.id.toString()}|${compareComp.id.toString()}`;\n const cached = this.apiDiffMemo.get(memoKey);\n if (cached) return cached;\n const pending = this.apiDiffInflight.get(memoKey);\n if (pending) return pending;\n\n // un-built workspace components extract their schema from live source — the same id can\n // yield different schemas as the user edits, so those results must not be memoized.\n const immutable = baseComp.buildStatus === BuildStatus.Succeed && compareComp.buildStatus === BuildStatus.Succeed;\n\n const promise = this.doComputeAPIDiff(baseComp, compareComp)\n .then((result) => {\n const transient =\n !result ||\n (result.status !== 'COMPUTED' && (result.base.reason === 'FAILED' || result.compare.reason === 'FAILED'));\n // artifact-derived sides are immutable even when the local buildStatus says otherwise (a\n // checked-out component reports \"pending\" for a CI-built snap), so a COMPUTED result whose\n // sides are not live-extracted is safe to memoize regardless of buildStatus. a live side\n // reflects the working tree and must never be memoized under the version pair.\n const live = Boolean(result && (result.base.live || result.compare.live));\n const memoizable = !transient && !live && (immutable || result!.status === 'COMPUTED');\n if (memoizable) {\n if (this.apiDiffMemo.size >= SchemaMain.API_DIFF_MEMO_MAX) {\n const firstKey = this.apiDiffMemo.keys().next().value;\n if (firstKey) this.apiDiffMemo.delete(firstKey);\n }\n this.apiDiffMemo.set(memoKey, result);\n }\n return result;\n })\n .finally(() => {\n this.apiDiffInflight.delete(memoKey);\n });\n this.apiDiffInflight.set(memoKey, promise);\n return promise;\n }\n\n /**\n * is this component the version currently checked out in the workspace, with local modifications\n * on top? that's the one case where the live source — not the version's built artifact — is the\n * authoritative API surface for a diff side. errs toward true when modification state can't be\n * determined, so local changes are never masked by a stale artifact.\n */\n private async isModifiedCheckoutOf(component: Component): Promise<boolean> {\n if (!this.workspace) return false;\n const checkedOut = this.workspace.getIdIfExist(component.id);\n if (!checkedOut) return false;\n if (component.id.version && checkedOut.version !== component.id.version) return false;\n try {\n return await this.workspace.isModified(component);\n } catch {\n return true;\n }\n }\n\n private async doComputeAPIDiff(baseComp: Component, compareComp: Component): Promise<APIDiffResult | null> {\n try {\n // a side whose schema retrieval throws is reported as FAILED availability rather than\n // failing the whole diff — the result then carries an explicit status instead of null.\n const getSide = async (comp: Component) => {\n try {\n // both sides are pinned versions, so the snap's built schema artifact is authoritative and\n // cheap to read. `getSchemaWithAvailability` instead runs the live extractor for any\n // checked-out component whose local buildStatus isn't \"succeed\" (which a plain checkout of\n // a CI-built snap reports) — a tsserver pass per component, reflecting the working tree\n // rather than the snap; a degraded workspace then fabricates placeholder schemas that get\n // diffed and cached under the immutable pair. the working tree is only authoritative for a\n // *modified* checkout of the exact version; everything else prefers the artifact.\n if (!(await this.isModifiedCheckoutOf(comp))) {\n const fromArtifact = await this.readSchemaFromArtifact(comp);\n if (fromArtifact) return { schema: fromArtifact, availability: { available: true } };\n }\n return await this.getSchemaWithAvailability(comp);\n } catch (err: any) {\n this.logger.warn(`failed getting schema for ${comp.id.toString()}: ${err.message}`);\n return {\n schema: APISchema.empty(comp.id as any),\n availability: { available: false, reason: 'FAILED' as SchemaUnavailableReason },\n };\n }\n };\n const [base, compare] = await Promise.all([getSide(baseComp), getSide(compareComp)]);\n const assessor = this.getImpactAssessor();\n return computeAPIDiff(base.schema, compare.schema, assessor, {\n base: base.availability,\n compare: compare.availability,\n });\n } catch (err: any) {\n this.logger.warn(`failed computing API diff: ${err.message}`);\n return null;\n }\n }\n\n isSchemaTaskDisabled(component: Component) {\n return this.getSchemaData(component)?.disabled;\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n EnvsAspect,\n CLIAspect,\n ComponentAspect,\n GraphqlAspect,\n LoggerAspect,\n BuilderAspect,\n WorkspaceAspect,\n ScopeAspect,\n ];\n static slots = [Slot.withType<Parser>(), Slot.withType<ImpactRule[]>()];\n\n static defaultConfig = {\n defaultParser: 'teambit.typescript/typescript',\n disabled: false,\n };\n\n static async provider(\n [envs, cli, component, graphql, loggerMain, builder, workspace, scope]: [\n EnvsMain,\n CLIMain,\n ComponentMain,\n GraphqlMain,\n LoggerMain,\n BuilderMain,\n Workspace,\n ScopeMain,\n ],\n config: SchemaConfig,\n [parserSlot, impactRuleSlot]: [ParserSlot, ImpactRuleSlot]\n ) {\n const logger = loggerMain.createLogger(SchemaAspect.id);\n const impactAssessor = new ImpactAssessor();\n impactAssessor.registerDefaultRules(DEFAULT_IMPACT_RULES);\n const schema = new SchemaMain(parserSlot, impactRuleSlot, envs, config, builder, workspace, logger, impactAssessor);\n const schemaTask = new SchemaTask(SchemaAspect.id, schema, logger);\n builder.registerBuildTasks([schemaTask]);\n const schemaCmd = new SchemaCommand(schema, component, logger);\n schemaCmd.commands = [new SchemaDiffCommand(schema, component, logger)];\n cli.register(schemaCmd);\n graphql.register(() => schemaSchema(schema));\n envs.registerService(new SchemaService());\n if (workspace) {\n workspace.registerOnComponentLoad(async () => schema.calcSchemaData());\n }\n if (scope) {\n scope.registerOnCompAspectReCalc(async () => schema.calcSchemaData());\n }\n // register all default schema classes\n schema.registerSchemaClasses(() => Object.values(Schemas));\n\n return schema;\n }\n}\n\nSchemaAspect.addRuntime(SchemaMain);\n\nexport default SchemaMain;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_harmonyModules","data","require","_cli","_component","_harmony","_graphql","_envs","_logger","_semanticsEntities","_builder","_workspace","_scope","_legacy","_scope2","_semanticsEntities2","_schema","_schema2","_schemaDiff","_schema3","_schema4","_schema5","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","SchemaMain","constructor","parserSlot","impactRuleSlot","envs","config","builder","workspace","logger","impactAssessor","Map","getDefaultParser","get","defaultParser","registerSchemaClass","schema","SchemaRegistry","register","registerSchemaClasses","getSchemas","registerGetSchemas","parseModule","path","content","parsers","toArray","maybeParser","find","parser","match","extension","getSchemaExtractor","component","tsserverPath","contextPath","env","getEnv","Error","name","undefined","getSchema","shouldDisposeResourcesOnceDone","alwaysRunExtractor","skipInternals","schemaTransformers","apiTransformers","includeFiles","getSchemaWithAvailability","disabled","APISchema","empty","id","availability","available","reason","extractionFailure","buildStatus","BuildStatus","Succeed","formatter","getFormatter","setKey","schemaExtractor","result","extract","dispose","live","err","message","warn","toString","fromArtifact","readSchemaFromArtifact","debug","schemaArtifact","getArtifactsVinylByAspectAndTaskName","SchemaAspect","SCHEMA_TASK_NAME","length","schemaJsonStr","contents","schemaJson","JSON","parse","getSchemaFromObject","SyntaxError","error","obj","fromObject","getSchemaFromRemote","isPattern","some","char","includes","getId","startsWith","compId","resolveComponentIdFromPackageName","compIdStr","http","Http","connect","SYMPHONY_GRAPHQL","CENTRAL_BIT_HUB_NAME","response","registerParser","calcSchemaData","getSchemaData","state","aspects","registerImpactRules","rules","getImpactAssessor","registerRules","values","flat","computeAPIDiff","baseComp","compareComp","memoKey","cached","apiDiffMemo","pending","apiDiffInflight","immutable","promise","doComputeAPIDiff","then","transient","status","base","compare","Boolean","memoizable","size","API_DIFF_MEMO_MAX","firstKey","keys","next","delete","set","finally","isModifiedCheckoutOf","checkedOut","getIdIfExist","version","isModified","getSide","comp","Promise","all","assessor","isSchemaTaskDisabled","provider","cli","graphql","loggerMain","scope","createLogger","ImpactAssessor","registerDefaultRules","DEFAULT_IMPACT_RULES","schemaTask","SchemaTask","registerBuildTasks","schemaCmd","SchemaCommand","commands","SchemaDiffCommand","schemaSchema","registerService","SchemaService","registerOnComponentLoad","registerOnCompAspectReCalc","Schemas","exports","MainRuntime","EnvsAspect","CLIAspect","ComponentAspect","GraphqlAspect","LoggerAspect","BuilderAspect","WorkspaceAspect","ScopeAspect","Slot","withType","addRuntime","_default","default"],"sources":["schema.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { MainRuntime } from '@teambit/harmony.modules.runtimes';\nimport { CLIAspect } from '@teambit/cli';\nimport type { Component, ComponentMain } from '@teambit/component';\nimport { ComponentAspect } from '@teambit/component';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport type { EnvsMain } from '@teambit/envs';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { PrettierConfigMutator } from '@teambit/defender.prettier.config-mutator';\nimport type { Export, SchemaNodeConstructor } from '@teambit/semantics.entities.semantic-schema';\nimport { APISchema, Schemas, SchemaRegistry } from '@teambit/semantics.entities.semantic-schema';\nimport type { BuilderMain } from '@teambit/builder';\nimport { BuilderAspect } from '@teambit/builder';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport type { Formatter } from '@teambit/formatter';\nimport type { SchemaNodeTransformer, SchemaTransformer } from '@teambit/typescript';\nimport { BuildStatus, CENTRAL_BIT_HUB_NAME, SYMPHONY_GRAPHQL } from '@teambit/legacy.constants';\nimport { Http } from '@teambit/scope.network';\nimport type {\n ImpactRule,\n APIDiffResult,\n SchemaAvailability,\n SchemaUnavailableReason,\n} from '@teambit/semantics.entities.semantic-schema-diff';\nimport { ImpactAssessor, DEFAULT_IMPACT_RULES, computeAPIDiff } from '@teambit/semantics.entities.semantic-schema-diff';\nimport type { Parser } from './parser';\nimport { SchemaAspect } from './schema.aspect';\nimport type { SchemaExtractor } from './schema-extractor';\nimport { SchemaCommand } from './schema.cmd';\nimport { SchemaDiffCommand } from './schema-diff.cmd';\nimport { schemaSchema } from './schema.graphql';\nimport { SchemaTask, SCHEMA_TASK_NAME } from './schema.task';\nimport { SchemaService } from './schema.service';\n\nexport type ParserSlot = SlotRegistry<Parser>;\nexport type ImpactRuleSlot = SlotRegistry<ImpactRule[]>;\n\nexport type SchemaConfig = {\n /**\n * default parser\n */\n defaultParser: string;\n /**\n * disable extracting schema\n */\n disabled?: boolean;\n};\n\n/**\n * extension for extracting component schemas.\n */\nexport class SchemaMain {\n constructor(\n /**\n * parsers slot.\n */\n private parserSlot: ParserSlot,\n\n /**\n * impact rules slot — other aspects register custom rules via registerImpactRules().\n */\n private impactRuleSlot: ImpactRuleSlot,\n\n private envs: EnvsMain,\n\n private config: SchemaConfig,\n\n private builder: BuilderMain,\n\n private workspace: Workspace,\n\n private logger: Logger,\n\n private impactAssessor: ImpactAssessor\n ) {}\n\n /**\n * get the default parser.\n */\n getDefaultParser(): Parser {\n return this.parserSlot.get(this.config.defaultParser) as Parser;\n }\n\n /**\n * @deprecated use registerSchemaClasses instead\n * registerSchemaClasses is better for performance as it lazy-loads the schemas.\n */\n registerSchemaClass(schema: SchemaNodeConstructor) {\n SchemaRegistry.register(schema);\n }\n\n registerSchemaClasses(getSchemas: () => SchemaNodeConstructor[]) {\n SchemaRegistry.registerGetSchemas(getSchemas);\n }\n\n /**\n * parse a module into a component schema.\n */\n parseModule(path: string, content?: string): Export[] {\n const parsers = this.parserSlot.toArray();\n let maybeParser = parsers.find(([, parser]) => {\n const match = path.match(parser.extension);\n return match;\n });\n\n if (!maybeParser) {\n maybeParser = [this.config.defaultParser, this.getDefaultParser()];\n }\n\n const [, parser] = maybeParser;\n return parser.parseModule(path, content);\n }\n\n getSchemaExtractor(component: Component, tsserverPath?: string, contextPath?: string): SchemaExtractor {\n const env = this.envs.getEnv(component).env;\n if (typeof env.getSchemaExtractor === 'undefined') {\n throw new Error(`No SchemaExtractor defined for ${env.name}`);\n }\n\n return env.getSchemaExtractor(undefined, tsserverPath, contextPath);\n }\n\n /**\n * get a schema of a component.\n * @param component target component.\n * @param shouldDisposeResourcesOnceDone for long-running processes, such as bit-start/bit-watch, this is not\n * relevant. for calling the API only to get a schema for one component, this is needed to ensure the ts-server is\n * not kept alive. otherwise, the process will never end.\n *\n */\n async getSchema(\n component: Component,\n shouldDisposeResourcesOnceDone = false,\n alwaysRunExtractor = false,\n tsserverPath?: string,\n contextPath?: string,\n skipInternals?: boolean,\n schemaTransformers?: SchemaTransformer[],\n apiTransformers?: SchemaNodeTransformer[],\n includeFiles?: string[]\n ): Promise<APISchema> {\n const { schema } = await this.getSchemaWithAvailability(\n component,\n shouldDisposeResourcesOnceDone,\n alwaysRunExtractor,\n tsserverPath,\n contextPath,\n skipInternals,\n schemaTransformers,\n apiTransformers,\n includeFiles\n );\n return schema;\n }\n\n /**\n * like getSchema, but reports whether a real schema was obtained. an empty schema\n * with `available: false` means \"no schema data exists for this version\" — callers\n * (e.g. API diff) must not treat it as an empty API surface.\n */\n async getSchemaWithAvailability(\n component: Component,\n shouldDisposeResourcesOnceDone = false,\n alwaysRunExtractor = false,\n tsserverPath?: string,\n contextPath?: string,\n skipInternals?: boolean,\n schemaTransformers?: SchemaTransformer[],\n apiTransformers?: SchemaNodeTransformer[],\n includeFiles?: string[]\n ): Promise<{ schema: APISchema; availability: SchemaAvailability }> {\n if (this.config.disabled) {\n return { schema: APISchema.empty(component.id as any), availability: { available: false, reason: 'DISABLED' } };\n }\n\n // when extraction is attempted and fails, remember why so the artifact-fallback\n // miss below reports the actual cause rather than a generic NOT_BUILT.\n let extractionFailure: SchemaUnavailableReason | undefined;\n\n if (alwaysRunExtractor || (this.workspace && component.buildStatus !== BuildStatus.Succeed)) {\n try {\n const env = this.envs.getEnv(component).env;\n // types need to be fixed\n const formatter: Formatter | undefined = env.getFormatter?.(null, [\n (config: PrettierConfigMutator) => {\n config.setKey('parser', 'typescript');\n return config;\n },\n ]);\n if (typeof env.getSchemaExtractor === 'undefined') {\n extractionFailure = 'NO_EXTRACTOR';\n throw new Error(`No SchemaExtractor defined for ${env.name}`);\n }\n const schemaExtractor: SchemaExtractor = env.getSchemaExtractor(\n undefined,\n tsserverPath,\n contextPath,\n schemaTransformers,\n apiTransformers\n );\n\n const result = await schemaExtractor.extract(component, {\n formatter,\n tsserverPath,\n contextPath,\n skipInternals,\n includeFiles,\n });\n if (shouldDisposeResourcesOnceDone) schemaExtractor.dispose();\n\n // `live`: extracted from source at call time, not read from the version's built artifact —\n // consumers that key results by version (API diff memo/cache) must not persist it.\n return { schema: result, availability: { available: true, live: true } };\n } catch (err) {\n if (alwaysRunExtractor) throw err;\n extractionFailure = extractionFailure || 'FAILED';\n const message = err instanceof Error ? err.message : String(err);\n this.logger.warn(\n `failed extracting schema for ${component.id.toString()}, falling back to artifacts. extractor error: ${message}`,\n err\n );\n }\n }\n\n // on scope get schema from builder api\n const fromArtifact = await this.readSchemaFromArtifact(component);\n\n if (!fromArtifact) {\n this.logger.debug(`no schema found for ${component.id.toString()}`);\n\n /**\n * return empty schema\n * when tag/snap without build\n * or backwards compatibility\n */\n return {\n schema: APISchema.empty(component.id as any),\n availability: { available: false, reason: extractionFailure || 'NOT_BUILT' },\n };\n }\n\n return { schema: fromArtifact, availability: { available: true } };\n }\n\n /**\n * read the schema.json artifact the schema build task produced for this exact version.\n * returns null when the version has no such artifact (never built, or built before API\n * extraction existed). throws on a corrupt artifact.\n */\n private async readSchemaFromArtifact(component: Component): Promise<APISchema | null> {\n const schemaArtifact = await this.builder.getArtifactsVinylByAspectAndTaskName(\n component,\n SchemaAspect.id,\n SCHEMA_TASK_NAME\n );\n if (schemaArtifact.length === 0) return null;\n\n const schemaJsonStr = schemaArtifact[0].contents.toString('utf-8');\n try {\n const schemaJson = JSON.parse(schemaJsonStr);\n return this.getSchemaFromObject(schemaJson);\n } catch (e) {\n if (e instanceof SyntaxError) {\n this.logger.error(e.message);\n throw new Error(`Invalid schema.json for ${component.id}`);\n }\n throw e;\n }\n }\n\n getSchemaFromObject(obj: Record<string, any>): APISchema {\n return APISchema.fromObject(obj);\n }\n\n async getSchemaFromRemote(id: string): Promise<APISchema> {\n const isPattern = ['*', ',', '!', '$', ':'].some((char) => id.includes(char));\n if (isPattern) {\n throw new Error(`remote schema command doesn't support pattern matching. please use a specific component id`);\n }\n const getId = async () => {\n if (!id.startsWith('@')) return id;\n if (!this.workspace) throw new Error(`Please provide a component ID. The ${id} recognized as a package name.`);\n const compId = await this.workspace.resolveComponentIdFromPackageName(id, true);\n return compId.toString();\n };\n const compIdStr = await getId();\n const http = await Http.connect(SYMPHONY_GRAPHQL, CENTRAL_BIT_HUB_NAME);\n const response = await http.getSchema(compIdStr);\n return this.getSchemaFromObject(response);\n }\n\n /**\n * register a new parser.\n */\n registerParser(parser: Parser): SchemaMain {\n this.parserSlot.register(parser);\n return this;\n }\n\n async calcSchemaData(): Promise<{ disabled?: boolean }> {\n return {\n disabled: this.config.disabled,\n };\n }\n\n getSchemaData(component: Component) {\n return component.state.aspects.get(SchemaAspect.id)?.data;\n }\n\n /**\n * Register custom impact rules for API diff assessment.\n * Custom rules take priority over default rules.\n * This allows environments to customize what constitutes a breaking change.\n */\n registerImpactRules(rules: ImpactRule[]): void {\n this.impactRuleSlot.register(rules);\n }\n\n /**\n * Get the ImpactAssessor with default + all registered custom rules from the slot.\n */\n getImpactAssessor(): ImpactAssessor {\n this.impactAssessor.registerRules(this.impactRuleSlot.values().flat());\n return this.impactAssessor;\n }\n\n /**\n * Compute the semantic API diff between two component versions.\n */\n /**\n * in-memory memo + single-flight for computed diffs. several consumers hit this for the\n * same immutable version pair (lane-diff status via component-compare, the compare UI's\n * apiDiff GraphQL field) — without this, a cold page load runs schema extraction twice\n * per pair. transient failures (FAILED availability / null) are never memoized.\n */\n private apiDiffMemo = new Map<string, APIDiffResult>();\n private apiDiffInflight = new Map<string, Promise<APIDiffResult | null>>();\n private static API_DIFF_MEMO_MAX = 500;\n\n async computeAPIDiff(baseComp: Component, compareComp: Component): Promise<APIDiffResult | null> {\n const memoKey = `${baseComp.id.toString()}|${compareComp.id.toString()}`;\n const cached = this.apiDiffMemo.get(memoKey);\n if (cached) return cached;\n const pending = this.apiDiffInflight.get(memoKey);\n if (pending) return pending;\n\n // un-built workspace components extract their schema from live source — the same id can\n // yield different schemas as the user edits, so those results must not be memoized.\n const immutable = baseComp.buildStatus === BuildStatus.Succeed && compareComp.buildStatus === BuildStatus.Succeed;\n\n const promise = this.doComputeAPIDiff(baseComp, compareComp)\n .then((result) => {\n const transient =\n !result ||\n (result.status !== 'COMPUTED' && (result.base.reason === 'FAILED' || result.compare.reason === 'FAILED'));\n // artifact-derived sides are immutable even when the local buildStatus says otherwise (a\n // checked-out component reports \"pending\" for a CI-built snap), so a COMPUTED result whose\n // sides are not live-extracted is safe to memoize regardless of buildStatus. a live side\n // reflects the working tree and must never be memoized under the version pair.\n const live = Boolean(result && (result.base.live || result.compare.live));\n const memoizable = !transient && !live && (immutable || result!.status === 'COMPUTED');\n if (memoizable) {\n if (this.apiDiffMemo.size >= SchemaMain.API_DIFF_MEMO_MAX) {\n const firstKey = this.apiDiffMemo.keys().next().value;\n if (firstKey) this.apiDiffMemo.delete(firstKey);\n }\n this.apiDiffMemo.set(memoKey, result);\n }\n return result;\n })\n .finally(() => {\n this.apiDiffInflight.delete(memoKey);\n });\n this.apiDiffInflight.set(memoKey, promise);\n return promise;\n }\n\n /**\n * is this component the version currently checked out in the workspace, with local modifications\n * on top? that's the one case where the live source — not the version's built artifact — is the\n * authoritative API surface for a diff side. errs toward true when modification state can't be\n * determined, so local changes are never masked by a stale artifact.\n */\n private async isModifiedCheckoutOf(component: Component): Promise<boolean> {\n if (!this.workspace) return false;\n const checkedOut = this.workspace.getIdIfExist(component.id);\n if (!checkedOut) return false;\n if (component.id.version && checkedOut.version !== component.id.version) return false;\n try {\n return await this.workspace.isModified(component);\n } catch {\n return true;\n }\n }\n\n private async doComputeAPIDiff(baseComp: Component, compareComp: Component): Promise<APIDiffResult | null> {\n try {\n // a side whose schema retrieval throws is reported as FAILED availability rather than\n // failing the whole diff — the result then carries an explicit status instead of null.\n const getSide = async (comp: Component) => {\n try {\n // both sides are pinned versions, so the snap's built schema artifact is authoritative and\n // cheap to read. `getSchemaWithAvailability` instead runs the live extractor for any\n // checked-out component whose local buildStatus isn't \"succeed\" (which a plain checkout of\n // a CI-built snap reports) — a tsserver pass per component, reflecting the working tree\n // rather than the snap; a degraded workspace then fabricates placeholder schemas that get\n // diffed and cached under the immutable pair. the working tree is only authoritative for a\n // *modified* checkout of the exact version; everything else prefers the artifact.\n if (!(await this.isModifiedCheckoutOf(comp))) {\n const fromArtifact = await this.readSchemaFromArtifact(comp);\n if (fromArtifact) return { schema: fromArtifact, availability: { available: true } };\n }\n return await this.getSchemaWithAvailability(comp);\n } catch (err: any) {\n this.logger.warn(`failed getting schema for ${comp.id.toString()}: ${err.message}`);\n return {\n schema: APISchema.empty(comp.id as any),\n availability: { available: false, reason: 'FAILED' as SchemaUnavailableReason },\n };\n }\n };\n const [base, compare] = await Promise.all([getSide(baseComp), getSide(compareComp)]);\n const assessor = this.getImpactAssessor();\n return computeAPIDiff(base.schema, compare.schema, assessor, {\n base: base.availability,\n compare: compare.availability,\n });\n } catch (err: any) {\n this.logger.warn(`failed computing API diff: ${err.message}`);\n return null;\n }\n }\n\n isSchemaTaskDisabled(component: Component) {\n return this.getSchemaData(component)?.disabled;\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n EnvsAspect,\n CLIAspect,\n ComponentAspect,\n GraphqlAspect,\n LoggerAspect,\n BuilderAspect,\n WorkspaceAspect,\n ScopeAspect,\n ];\n static slots = [Slot.withType<Parser>(), Slot.withType<ImpactRule[]>()];\n\n static defaultConfig = {\n defaultParser: 'teambit.typescript/typescript',\n disabled: false,\n };\n\n static async provider(\n [envs, cli, component, graphql, loggerMain, builder, workspace, scope]: [\n EnvsMain,\n CLIMain,\n ComponentMain,\n GraphqlMain,\n LoggerMain,\n BuilderMain,\n Workspace,\n ScopeMain,\n ],\n config: SchemaConfig,\n [parserSlot, impactRuleSlot]: [ParserSlot, ImpactRuleSlot]\n ) {\n const logger = loggerMain.createLogger(SchemaAspect.id);\n const impactAssessor = new ImpactAssessor();\n impactAssessor.registerDefaultRules(DEFAULT_IMPACT_RULES);\n const schema = new SchemaMain(parserSlot, impactRuleSlot, envs, config, builder, workspace, logger, impactAssessor);\n const schemaTask = new SchemaTask(SchemaAspect.id, schema, logger);\n builder.registerBuildTasks([schemaTask]);\n const schemaCmd = new SchemaCommand(schema, component, logger);\n schemaCmd.commands = [new SchemaDiffCommand(schema, component, logger)];\n cli.register(schemaCmd);\n graphql.register(() => schemaSchema(schema));\n envs.registerService(new SchemaService());\n if (workspace) {\n workspace.registerOnComponentLoad(async () => schema.calcSchemaData());\n }\n if (scope) {\n scope.registerOnCompAspectReCalc(async () => schema.calcSchemaData());\n }\n // register all default schema classes\n schema.registerSchemaClasses(() => Object.values(Schemas));\n\n return schema;\n }\n}\n\nSchemaAspect.addRuntime(SchemaMain);\n\nexport default SchemaMain;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/schema",
3
- "version": "1.0.1187",
3
+ "version": "1.0.1189",
4
4
  "homepage": "https://bit.cloud/teambit/semantics/schema",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.semantics",
8
8
  "name": "schema",
9
- "version": "1.0.1187"
9
+ "version": "1.0.1189"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "4.1.2",
@@ -15,21 +15,22 @@
15
15
  "graphql-type-json": "0.3.2",
16
16
  "fs-extra": "10.0.0",
17
17
  "@teambit/semantics.entities.semantic-schema": "0.0.117",
18
+ "@teambit/logger": "0.0.1494",
18
19
  "@teambit/semantics.entities.semantic-schema-diff": "0.0.16",
19
20
  "@teambit/harmony": "0.4.12",
20
21
  "@teambit/legacy.constants": "0.0.46",
21
22
  "@teambit/defender.prettier.config-mutator": "0.0.131",
22
- "@teambit/cli": "0.0.1400",
23
- "@teambit/component": "1.0.1187",
24
- "@teambit/logger": "0.0.1493",
25
- "@teambit/envs": "1.0.1187",
26
- "@teambit/formatter": "1.0.1187",
27
- "@teambit/graphql": "1.0.1187",
28
- "@teambit/builder": "1.0.1187",
29
- "@teambit/scope.network": "0.0.171",
30
- "@teambit/scope": "1.0.1187",
31
- "@teambit/typescript": "1.0.1187",
32
- "@teambit/workspace": "1.0.1187"
23
+ "@teambit/harmony.modules.runtimes": "0.0.1",
24
+ "@teambit/cli": "0.0.1402",
25
+ "@teambit/component": "1.0.1189",
26
+ "@teambit/envs": "1.0.1189",
27
+ "@teambit/formatter": "1.0.1189",
28
+ "@teambit/graphql": "1.0.1189",
29
+ "@teambit/builder": "1.0.1189",
30
+ "@teambit/scope.network": "0.0.172",
31
+ "@teambit/scope": "1.0.1189",
32
+ "@teambit/typescript": "1.0.1189",
33
+ "@teambit/workspace": "1.0.1189"
33
34
  },
34
35
  "devDependencies": {
35
36
  "@types/chai-subset": "1.3.5",
@@ -38,9 +39,9 @@
38
39
  "@types/mocha": "9.1.0",
39
40
  "@teambit/component-id": "1.2.4",
40
41
  "@teambit/harmony.envs.core-aspect-env": "2.1.1",
41
- "@teambit/harmony.testing.load-aspect": "0.0.439",
42
- "@teambit/tracker": "1.0.1187",
43
- "@teambit/workspace.testing.mock-workspace": "0.0.253"
42
+ "@teambit/harmony.testing.load-aspect": "0.0.440",
43
+ "@teambit/tracker": "1.0.1189",
44
+ "@teambit/workspace.testing.mock-workspace": "0.0.254"
44
45
  },
45
46
  "peerDependencies": {
46
47
  "react": "^17.0.0 || ^18.0.0 || ^19.0.0",