@teambit/lanes 1.0.1100 → 1.0.1102
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.
- package/dist/lanes.graphql.js +20 -2
- package/dist/lanes.graphql.js.map +1 -1
- package/dist/lanes.main.runtime.d.ts +73 -4
- package/dist/lanes.main.runtime.js +292 -74
- package/dist/lanes.main.runtime.js.map +1 -1
- package/dist/lanes.ui.runtime.d.ts +43 -4
- package/dist/lanes.ui.runtime.js +67 -6
- package/dist/lanes.ui.runtime.js.map +1 -1
- package/dist/{preview-1785267101230.js → preview-1785362864561.js} +2 -2
- package/lanes.ui.runtime.tsx +70 -4
- package/package.json +49 -48
package/dist/lanes.graphql.js
CHANGED
|
@@ -99,6 +99,11 @@ function lanesSchema(lanesMainRuntime) {
|
|
|
99
99
|
id: String!
|
|
100
100
|
sourceHead: String!
|
|
101
101
|
targetHead: String
|
|
102
|
+
"""
|
|
103
|
+
where the compared base was resolved from: "workspace" (already local) or "scope" (fetched
|
|
104
|
+
on demand from the remote scope). null for a new component (no base) or a lane-vs-lane diff.
|
|
105
|
+
"""
|
|
106
|
+
baseSource: String
|
|
102
107
|
componentId: ComponentID!
|
|
103
108
|
changeType: String @deprecated(reason: "Use changes")
|
|
104
109
|
"""
|
|
@@ -288,7 +293,15 @@ function lanesSchema(lanesMainRuntime) {
|
|
|
288
293
|
}) => {
|
|
289
294
|
const sourceLaneId = _laneId().LaneId.parse(source);
|
|
290
295
|
const targetLaneId = target ? _laneId().LaneId.parse(target) : undefined;
|
|
291
|
-
|
|
296
|
+
// Defer `changes` derivation to the per-component field resolver so the eager pMap inside
|
|
297
|
+
// `diffStatus` is fast. The field resolver only fires when the client selects `changes`,
|
|
298
|
+
// and graphql-js runs each component's resolver in parallel via `Promise.all`.
|
|
299
|
+
// `prewarmCaches`: this is the UI caller, which fires the follow-up compare/host queries the
|
|
300
|
+
// prewarm warms. Non-UI callers of `diffStatus` leave it off so they don't pay the fan-out.
|
|
301
|
+
return lanesMain.diffStatus(sourceLaneId, targetLaneId, _objectSpread(_objectSpread({}, options), {}, {
|
|
302
|
+
deferChanges: true,
|
|
303
|
+
prewarmCaches: true
|
|
304
|
+
}));
|
|
292
305
|
},
|
|
293
306
|
removeUpdateDependents: async (lanesMain, {
|
|
294
307
|
laneId,
|
|
@@ -304,7 +317,12 @@ function lanesSchema(lanesMainRuntime) {
|
|
|
304
317
|
},
|
|
305
318
|
LaneComponentDiffStatus: {
|
|
306
319
|
id: diffCompStatus => `${diffCompStatus.componentId.toStringWithoutVersion()}-${diffCompStatus.sourceHead}-${diffCompStatus.targetHead}`,
|
|
307
|
-
componentId: diffCompStatus => diffCompStatus.componentId.toObject()
|
|
320
|
+
componentId: diffCompStatus => diffCompStatus.componentId.toObject(),
|
|
321
|
+
changes: diffCompStatus => lanesMainRuntime.deriveComponentChanges(diffCompStatus),
|
|
322
|
+
changeType: async diffCompStatus => {
|
|
323
|
+
const changes = await lanesMainRuntime.deriveComponentChanges(diffCompStatus);
|
|
324
|
+
return changes?.[0];
|
|
325
|
+
}
|
|
308
326
|
},
|
|
309
327
|
Lane: {
|
|
310
328
|
id: lane => lane.id.toObject(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_laneId","data","require","_componentId","_fuse","_interopRequireDefault","_graphqlTag","_lodash","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","lanesSchema","lanesMainRuntime","typeDefs","gql","resolvers","Lanes","id","list","lanesMain","ids","limit","offset","sort","by","direction","search","lanes","getLanes","showDefaultLane","flatten","Promise","all","map","getDefaultLaneId","name","LaneId","parse","fuseOptions","threshold","findAllMatches","location","distance","minMatchCharLength","ignoreLocation","shouldSort","includeScore","fuse","Fuse","result","item","a","b","aDate","log","date","bDate","aId","toString","bId","slice","defaultLane","current","currentLaneName","getCurrentLaneName","undefined","currentLane","diff","from","to","options","getDiffResults","getDiff","compsWithDiff","diffStatus","source","target","sourceLaneId","targetLaneId","removeUpdateDependents","laneId","laneIdParsed","compIds","ComponentID","fromString","LaneDiffStatus","LaneComponentDiffStatus","diffCompStatus","componentId","toStringWithoutVersion","sourceHead","targetHead","toObject","Lane","lane","laneComponentIds","componentIds","getLaneComponentIds","components","laneComponents","getLaneComponentModels","updateDependentIds","getLaneUpdateDependentIds","updateDependentComponents","getLaneUpdateDependentComponents","readmeComponent","laneReadmeComponent","getLaneReadmeComponent","createdAt","createdBy","username","email","profileImage","displayName","Query"],"sources":["lanes.graphql.ts"],"sourcesContent":["import type { Schema } from '@teambit/graphql';\nimport { LaneId } from '@teambit/lane-id';\nimport { ComponentID } from '@teambit/component-id';\nimport Fuse from 'fuse.js';\nimport type { LaneData } from '@teambit/legacy.scope';\nimport { gql } from 'graphql-tag';\nimport { flatten, slice } from 'lodash';\nimport type { LaneComponentDiffStatus, LaneDiffStatus, LaneDiffStatusOptions, LanesMain } from './lanes.main.runtime';\n\nexport function lanesSchema(lanesMainRuntime: LanesMain): Schema {\n return {\n typeDefs: gql`\n type FileDiff {\n filePath: String!\n diffOutput: String\n }\n\n type SnapDistance {\n onSource: [String!]!\n onTarget: [String!]!\n common: String\n }\n\n type FieldsDiff {\n fieldName: String!\n diffOutput: String\n }\n\n type DiffResults {\n id: String\n hasDiff: Boolean\n filesDiff: [FileDiff]\n fieldsDiff: [FieldsDiff]\n }\n\n type GetDiffResult {\n newComps: [String]\n compsWithNoChanges: [String]\n toLaneName: String\n compsWithDiff: [DiffResults]\n }\n\n input DiffOptions {\n color: Boolean\n }\n\n input DiffStatusOptions {\n skipChanges: Boolean\n skipUpToDate: Boolean\n }\n\n type LaneId {\n name: String!\n scope: String!\n }\n\n type LaneComponentDiffStatus {\n \"\"\"\n for apollo caching - component id\n \"\"\"\n id: String!\n sourceHead: String!\n targetHead: String\n componentId: ComponentID!\n changeType: String @deprecated(reason: \"Use changes\")\n \"\"\"\n list of all change types - Source Code, Dependency, Aspects, etc\n \"\"\"\n changes: [String!]\n upToDate: Boolean\n snapsDistance: SnapDistance\n unrelated: Boolean\n }\n\n type LaneDiffStatus {\n \"\"\"\n for apollo caching - source + target\n \"\"\"\n id: String!\n source: LaneId!\n target: LaneId!\n componentsStatus: [LaneComponentDiffStatus!]!\n }\n\n type LaneOwner {\n name: String\n username: String\n displayName: String\n email: String\n profileImage: String\n }\n\n type Lane {\n id: LaneId!\n hash: String\n laneComponentIds: [ComponentID!]!\n components(offset: Int, limit: Int): [Component!]!\n \"\"\"\n IDs of hidden cascade entries (lane.updateDependents). Separate from \\`laneComponentIds\\`\n so workspace-facing consumers don't surface them by default.\n \"\"\"\n updateDependentIds: [ComponentID!]!\n \"\"\"\n Hidden cascade entries materialized as Components. Separate from \\`components\\` for the\n same reason — consumers opt in by selecting this field.\n \"\"\"\n updateDependentComponents(offset: Int, limit: Int): [Component!]!\n readmeComponent: Component\n createdBy: LaneOwner\n createdAt: String\n updatedBy: LaneOwner\n updatedAt: String\n }\n\n input LaneSort {\n by: String\n direction: String\n }\n\n # Lane API\n type Lanes {\n id: String!\n list(ids: [String!], offset: Int, limit: Int, sort: LaneSort, search: String): [Lane!]!\n default: Lane\n diff(from: String!, to: String!, options: DiffOptions): GetDiffResult\n diffStatus(source: String!, target: String, options: DiffStatusOptions): LaneDiffStatus!\n removeUpdateDependents(laneId: String!, ids: [String!]): Boolean\n current: Lane\n }\n\n type Query {\n lanes: Lanes\n }\n `,\n resolvers: {\n Lanes: {\n // need this for Apollo InMemory Caching\n id: () => 'lanes',\n list: async (\n lanesMain: LanesMain,\n {\n ids,\n limit,\n offset,\n sort: { by = 'createdAt', direction = 'desc' } = { by: 'createdAt', direction: 'desc' },\n search,\n }: {\n ids?: string[];\n offset?: number;\n limit?: number;\n sort?: {\n by?: string;\n direction?: string;\n };\n search?: string;\n }\n ) => {\n let lanes: LaneData[] = [];\n\n if (!ids || ids.length === 0) {\n lanes = await lanesMain.getLanes({ showDefaultLane: true });\n } else {\n lanes = flatten(\n await Promise.all(\n ids.map((id) => {\n if (id === lanesMain.getDefaultLaneId().name) {\n return lanesMain.getLanes({ showDefaultLane: true, name: id });\n }\n return lanesMain.getLanes({ name: LaneId.parse(id).name });\n })\n )\n );\n }\n\n if (search) {\n const fuseOptions = {\n keys: ['id.name', 'id.scope', 'log.username', 'log.email', 'log.displayName'],\n threshold: search.length === 1 ? 0 : 0.3,\n findAllMatches: true,\n location: 0,\n distance: search.length === 1 ? 0 : 100,\n minMatchCharLength: 1,\n ignoreLocation: true,\n shouldSort: false,\n includeScore: true,\n };\n const fuse = new Fuse(lanes, fuseOptions);\n lanes = fuse.search(search).map((result) => result.item);\n }\n\n lanes = lanes.sort((a, b) => {\n switch (by) {\n default: {\n if (!a[by] || !b[by]) return 0;\n\n if (a[by] < b[by]) return direction === 'asc' ? -1 : 1;\n if (a[by] > b[by]) return direction === 'asc' ? -1 : 1;\n return 0;\n }\n case 'createdAt':\n case 'updatedAt': {\n const aDate = a.log?.date;\n const bDate = b.log?.date;\n\n if (!aDate || !bDate) return 0;\n\n if (+aDate < +bDate) return direction === 'asc' ? -1 : 1;\n if (+aDate > +bDate) return direction === 'asc' ? 1 : -1;\n return 0;\n }\n case 'id': {\n const aId = a[by].toString();\n const bId = b[by].toString();\n\n if (aId < bId) return direction === 'asc' ? -1 : 1;\n if (aId > bId) return direction === 'asc' ? -1 : 1;\n return 0;\n }\n }\n });\n\n if (limit || offset) {\n lanes = slice(lanes, offset, limit && limit + (offset || 0));\n }\n\n return lanes;\n },\n default: async (lanesMain: LanesMain) => {\n const [defaultLane] = await lanesMain.getLanes({\n showDefaultLane: true,\n name: lanesMain.getDefaultLaneId().name,\n });\n return defaultLane;\n },\n current: async (lanesMain: LanesMain) => {\n const currentLaneName = lanesMain.getCurrentLaneName();\n if (!currentLaneName) return undefined;\n const [currentLane] = await lanesMain.getLanes({ name: currentLaneName });\n return currentLane;\n },\n diff: async (\n lanesMain: LanesMain,\n { from, to, options }: { to: string; from: string; options: { color?: boolean } }\n ) => {\n const getDiffResults = await lanesMain.getDiff([from, to], options);\n return {\n ...getDiffResults,\n compsWithDiff: getDiffResults.compsWithDiff.map((item) => ({ ...item, id: item.id.toString() })),\n };\n },\n diffStatus: async (\n lanesMain: LanesMain,\n { source, target, options }: { source: string; target?: string; options?: LaneDiffStatusOptions }\n ) => {\n const sourceLaneId = LaneId.parse(source);\n const targetLaneId = target ? LaneId.parse(target) : undefined;\n return lanesMain.diffStatus(sourceLaneId, targetLaneId, options);\n },\n removeUpdateDependents: async (lanesMain: LanesMain, { laneId, ids }: { laneId: string; ids?: string[] }) => {\n const laneIdParsed = LaneId.parse(laneId);\n const compIds = ids?.map((id) => ComponentID.fromString(id));\n return lanesMain.removeUpdateDependents(laneIdParsed, compIds);\n },\n },\n LaneDiffStatus: {\n id: (diffStatus: LaneDiffStatus) => `${diffStatus.source.toString()}-${diffStatus.target.toString()}`,\n },\n LaneComponentDiffStatus: {\n id: (diffCompStatus: LaneComponentDiffStatus) =>\n `${diffCompStatus.componentId.toStringWithoutVersion()}-${diffCompStatus.sourceHead}-${\n diffCompStatus.targetHead\n }`,\n componentId: (diffCompStatus: LaneComponentDiffStatus) => diffCompStatus.componentId.toObject(),\n },\n Lane: {\n id: (lane: LaneData) => lane.id.toObject(),\n laneComponentIds: async (lane: LaneData) => {\n const componentIds = await lanesMainRuntime.getLaneComponentIds(lane);\n return componentIds.map((componentId) => componentId.toObject());\n },\n components: async (lane: LaneData) => {\n const laneComponents = await lanesMainRuntime.getLaneComponentModels(lane);\n return laneComponents;\n },\n updateDependentIds: async (lane: LaneData) => {\n const ids = await lanesMainRuntime.getLaneUpdateDependentIds(lane);\n return ids.map((id) => id.toObject());\n },\n updateDependentComponents: async (lane: LaneData) => {\n return lanesMainRuntime.getLaneUpdateDependentComponents(lane);\n },\n readmeComponent: async (lane: LaneData) => {\n const laneReadmeComponent = await lanesMainRuntime.getLaneReadmeComponent(lane);\n return laneReadmeComponent;\n },\n createdAt: async (lane: LaneData) => {\n return lane.log?.date;\n },\n createdBy: async (lane: LaneData) => {\n return {\n name: lane.log?.username,\n email: lane.log?.email,\n profileImage: lane.log?.profileImage,\n displayName: lane.log?.username,\n username: lane.log?.username,\n };\n },\n },\n Query: {\n lanes: () => lanesMainRuntime,\n },\n },\n };\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,aAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,YAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,YAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,WAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,QAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAwC,SAAAI,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAGjC,SAAS8B,WAAWA,CAACC,gBAA2B,EAAU;EAC/D,OAAO;IACLC,QAAQ,EAAE,IAAAC,iBAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,KAAK,EAAE;QACL;QACAC,EAAE,EAAEA,CAAA,KAAM,OAAO;QACjBC,IAAI,EAAE,MAAAA,CACJC,SAAoB,EACpB;UACEC,GAAG;UACHC,KAAK;UACLC,MAAM;UACNC,IAAI,EAAE;YAAEC,EAAE,GAAG,WAAW;YAAEC,SAAS,GAAG;UAAO,CAAC,GAAG;YAAED,EAAE,EAAE,WAAW;YAAEC,SAAS,EAAE;UAAO,CAAC;UACvFC;QAUF,CAAC,KACE;UACH,IAAIC,KAAiB,GAAG,EAAE;UAE1B,IAAI,CAACP,GAAG,IAAIA,GAAG,CAAC3B,MAAM,KAAK,CAAC,EAAE;YAC5BkC,KAAK,GAAG,MAAMR,SAAS,CAACS,QAAQ,CAAC;cAAEC,eAAe,EAAE;YAAK,CAAC,CAAC;UAC7D,CAAC,MAAM;YACLF,KAAK,GAAG,IAAAG,iBAAO,EACb,MAAMC,OAAO,CAACC,GAAG,CACfZ,GAAG,CAACa,GAAG,CAAEhB,EAAE,IAAK;cACd,IAAIA,EAAE,KAAKE,SAAS,CAACe,gBAAgB,CAAC,CAAC,CAACC,IAAI,EAAE;gBAC5C,OAAOhB,SAAS,CAACS,QAAQ,CAAC;kBAAEC,eAAe,EAAE,IAAI;kBAAEM,IAAI,EAAElB;gBAAG,CAAC,CAAC;cAChE;cACA,OAAOE,SAAS,CAACS,QAAQ,CAAC;gBAAEO,IAAI,EAAEC,gBAAM,CAACC,KAAK,CAACpB,EAAE,CAAC,CAACkB;cAAK,CAAC,CAAC;YAC5D,CAAC,CACH,CACF,CAAC;UACH;UAEA,IAAIT,MAAM,EAAE;YACV,MAAMY,WAAW,GAAG;cAClBvD,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,CAAC;cAC7EwD,SAAS,EAAEb,MAAM,CAACjC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG;cACxC+C,cAAc,EAAE,IAAI;cACpBC,QAAQ,EAAE,CAAC;cACXC,QAAQ,EAAEhB,MAAM,CAACjC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG;cACvCkD,kBAAkB,EAAE,CAAC;cACrBC,cAAc,EAAE,IAAI;cACpBC,UAAU,EAAE,KAAK;cACjBC,YAAY,EAAE;YAChB,CAAC;YACD,MAAMC,IAAI,GAAG,KAAIC,eAAI,EAACrB,KAAK,EAAEW,WAAW,CAAC;YACzCX,KAAK,GAAGoB,IAAI,CAACrB,MAAM,CAACA,MAAM,CAAC,CAACO,GAAG,CAAEgB,MAAM,IAAKA,MAAM,CAACC,IAAI,CAAC;UAC1D;UAEAvB,KAAK,GAAGA,KAAK,CAACJ,IAAI,CAAC,CAAC4B,CAAC,EAAEC,CAAC,KAAK;YAC3B,QAAQ5B,EAAE;cACR;gBAAS;kBACP,IAAI,CAAC2B,CAAC,CAAC3B,EAAE,CAAC,IAAI,CAAC4B,CAAC,CAAC5B,EAAE,CAAC,EAAE,OAAO,CAAC;kBAE9B,IAAI2B,CAAC,CAAC3B,EAAE,CAAC,GAAG4B,CAAC,CAAC5B,EAAE,CAAC,EAAE,OAAOC,SAAS,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;kBACtD,IAAI0B,CAAC,CAAC3B,EAAE,CAAC,GAAG4B,CAAC,CAAC5B,EAAE,CAAC,EAAE,OAAOC,SAAS,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;kBACtD,OAAO,CAAC;gBACV;cACA,KAAK,WAAW;cAChB,KAAK,WAAW;gBAAE;kBAChB,MAAM4B,KAAK,GAAGF,CAAC,CAACG,GAAG,EAAEC,IAAI;kBACzB,MAAMC,KAAK,GAAGJ,CAAC,CAACE,GAAG,EAAEC,IAAI;kBAEzB,IAAI,CAACF,KAAK,IAAI,CAACG,KAAK,EAAE,OAAO,CAAC;kBAE9B,IAAI,CAACH,KAAK,GAAG,CAACG,KAAK,EAAE,OAAO/B,SAAS,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;kBACxD,IAAI,CAAC4B,KAAK,GAAG,CAACG,KAAK,EAAE,OAAO/B,SAAS,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;kBACxD,OAAO,CAAC;gBACV;cACA,KAAK,IAAI;gBAAE;kBACT,MAAMgC,GAAG,GAAGN,CAAC,CAAC3B,EAAE,CAAC,CAACkC,QAAQ,CAAC,CAAC;kBAC5B,MAAMC,GAAG,GAAGP,CAAC,CAAC5B,EAAE,CAAC,CAACkC,QAAQ,CAAC,CAAC;kBAE5B,IAAID,GAAG,GAAGE,GAAG,EAAE,OAAOlC,SAAS,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;kBAClD,IAAIgC,GAAG,GAAGE,GAAG,EAAE,OAAOlC,SAAS,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;kBAClD,OAAO,CAAC;gBACV;YACF;UACF,CAAC,CAAC;UAEF,IAAIJ,KAAK,IAAIC,MAAM,EAAE;YACnBK,KAAK,GAAG,IAAAiC,eAAK,EAACjC,KAAK,EAAEL,MAAM,EAAED,KAAK,IAAIA,KAAK,IAAIC,MAAM,IAAI,CAAC,CAAC,CAAC;UAC9D;UAEA,OAAOK,KAAK;QACd,CAAC;QACDjD,OAAO,EAAE,MAAOyC,SAAoB,IAAK;UACvC,MAAM,CAAC0C,WAAW,CAAC,GAAG,MAAM1C,SAAS,CAACS,QAAQ,CAAC;YAC7CC,eAAe,EAAE,IAAI;YACrBM,IAAI,EAAEhB,SAAS,CAACe,gBAAgB,CAAC,CAAC,CAACC;UACrC,CAAC,CAAC;UACF,OAAO0B,WAAW;QACpB,CAAC;QACDC,OAAO,EAAE,MAAO3C,SAAoB,IAAK;UACvC,MAAM4C,eAAe,GAAG5C,SAAS,CAAC6C,kBAAkB,CAAC,CAAC;UACtD,IAAI,CAACD,eAAe,EAAE,OAAOE,SAAS;UACtC,MAAM,CAACC,WAAW,CAAC,GAAG,MAAM/C,SAAS,CAACS,QAAQ,CAAC;YAAEO,IAAI,EAAE4B;UAAgB,CAAC,CAAC;UACzE,OAAOG,WAAW;QACpB,CAAC;QACDC,IAAI,EAAE,MAAAA,CACJhD,SAAoB,EACpB;UAAEiD,IAAI;UAAEC,EAAE;UAAEC;QAAoE,CAAC,KAC9E;UACH,MAAMC,cAAc,GAAG,MAAMpD,SAAS,CAACqD,OAAO,CAAC,CAACJ,IAAI,EAAEC,EAAE,CAAC,EAAEC,OAAO,CAAC;UACnE,OAAA/E,aAAA,CAAAA,aAAA,KACKgF,cAAc;YACjBE,aAAa,EAAEF,cAAc,CAACE,aAAa,CAACxC,GAAG,CAAEiB,IAAI,IAAA3D,aAAA,CAAAA,aAAA,KAAW2D,IAAI;cAAEjC,EAAE,EAAEiC,IAAI,CAACjC,EAAE,CAACyC,QAAQ,CAAC;YAAC,EAAG;UAAC;QAEpG,CAAC;QACDgB,UAAU,EAAE,MAAAA,CACVvD,SAAoB,EACpB;UAAEwD,MAAM;UAAEC,MAAM;UAAEN;QAA8E,CAAC,KAC9F;UACH,MAAMO,YAAY,GAAGzC,gBAAM,CAACC,KAAK,CAACsC,MAAM,CAAC;UACzC,MAAMG,YAAY,GAAGF,MAAM,GAAGxC,gBAAM,CAACC,KAAK,CAACuC,MAAM,CAAC,GAAGX,SAAS;UAC9D,OAAO9C,SAAS,CAACuD,UAAU,CAACG,YAAY,EAAEC,YAAY,EAAER,OAAO,CAAC;QAClE,CAAC;QACDS,sBAAsB,EAAE,MAAAA,CAAO5D,SAAoB,EAAE;UAAE6D,MAAM;UAAE5D;QAAwC,CAAC,KAAK;UAC3G,MAAM6D,YAAY,GAAG7C,gBAAM,CAACC,KAAK,CAAC2C,MAAM,CAAC;UACzC,MAAME,OAAO,GAAG9D,GAAG,EAAEa,GAAG,CAAEhB,EAAE,IAAKkE,0BAAW,CAACC,UAAU,CAACnE,EAAE,CAAC,CAAC;UAC5D,OAAOE,SAAS,CAAC4D,sBAAsB,CAACE,YAAY,EAAEC,OAAO,CAAC;QAChE;MACF,CAAC;MACDG,cAAc,EAAE;QACdpE,EAAE,EAAGyD,UAA0B,IAAK,GAAGA,UAAU,CAACC,MAAM,CAACjB,QAAQ,CAAC,CAAC,IAAIgB,UAAU,CAACE,MAAM,CAAClB,QAAQ,CAAC,CAAC;MACrG,CAAC;MACD4B,uBAAuB,EAAE;QACvBrE,EAAE,EAAGsE,cAAuC,IAC1C,GAAGA,cAAc,CAACC,WAAW,CAACC,sBAAsB,CAAC,CAAC,IAAIF,cAAc,CAACG,UAAU,IACjFH,cAAc,CAACI,UAAU,EACzB;QACJH,WAAW,EAAGD,cAAuC,IAAKA,cAAc,CAACC,WAAW,CAACI,QAAQ,CAAC;MAChG,CAAC;MACDC,IAAI,EAAE;QACJ5E,EAAE,EAAG6E,IAAc,IAAKA,IAAI,CAAC7E,EAAE,CAAC2E,QAAQ,CAAC,CAAC;QAC1CG,gBAAgB,EAAE,MAAOD,IAAc,IAAK;UAC1C,MAAME,YAAY,GAAG,MAAMpF,gBAAgB,CAACqF,mBAAmB,CAACH,IAAI,CAAC;UACrE,OAAOE,YAAY,CAAC/D,GAAG,CAAEuD,WAAW,IAAKA,WAAW,CAACI,QAAQ,CAAC,CAAC,CAAC;QAClE,CAAC;QACDM,UAAU,EAAE,MAAOJ,IAAc,IAAK;UACpC,MAAMK,cAAc,GAAG,MAAMvF,gBAAgB,CAACwF,sBAAsB,CAACN,IAAI,CAAC;UAC1E,OAAOK,cAAc;QACvB,CAAC;QACDE,kBAAkB,EAAE,MAAOP,IAAc,IAAK;UAC5C,MAAM1E,GAAG,GAAG,MAAMR,gBAAgB,CAAC0F,yBAAyB,CAACR,IAAI,CAAC;UAClE,OAAO1E,GAAG,CAACa,GAAG,CAAEhB,EAAE,IAAKA,EAAE,CAAC2E,QAAQ,CAAC,CAAC,CAAC;QACvC,CAAC;QACDW,yBAAyB,EAAE,MAAOT,IAAc,IAAK;UACnD,OAAOlF,gBAAgB,CAAC4F,gCAAgC,CAACV,IAAI,CAAC;QAChE,CAAC;QACDW,eAAe,EAAE,MAAOX,IAAc,IAAK;UACzC,MAAMY,mBAAmB,GAAG,MAAM9F,gBAAgB,CAAC+F,sBAAsB,CAACb,IAAI,CAAC;UAC/E,OAAOY,mBAAmB;QAC5B,CAAC;QACDE,SAAS,EAAE,MAAOd,IAAc,IAAK;UACnC,OAAOA,IAAI,CAACxC,GAAG,EAAEC,IAAI;QACvB,CAAC;QACDsD,SAAS,EAAE,MAAOf,IAAc,IAAK;UACnC,OAAO;YACL3D,IAAI,EAAE2D,IAAI,CAACxC,GAAG,EAAEwD,QAAQ;YACxBC,KAAK,EAAEjB,IAAI,CAACxC,GAAG,EAAEyD,KAAK;YACtBC,YAAY,EAAElB,IAAI,CAACxC,GAAG,EAAE0D,YAAY;YACpCC,WAAW,EAAEnB,IAAI,CAACxC,GAAG,EAAEwD,QAAQ;YAC/BA,QAAQ,EAAEhB,IAAI,CAACxC,GAAG,EAAEwD;UACtB,CAAC;QACH;MACF,CAAC;MACDI,KAAK,EAAE;QACLvF,KAAK,EAAEA,CAAA,KAAMf;MACf;IACF;EACF,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_laneId","data","require","_componentId","_fuse","_interopRequireDefault","_graphqlTag","_lodash","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","lanesSchema","lanesMainRuntime","typeDefs","gql","resolvers","Lanes","id","list","lanesMain","ids","limit","offset","sort","by","direction","search","lanes","getLanes","showDefaultLane","flatten","Promise","all","map","getDefaultLaneId","name","LaneId","parse","fuseOptions","threshold","findAllMatches","location","distance","minMatchCharLength","ignoreLocation","shouldSort","includeScore","fuse","Fuse","result","item","a","b","aDate","log","date","bDate","aId","toString","bId","slice","defaultLane","current","currentLaneName","getCurrentLaneName","undefined","currentLane","diff","from","to","options","getDiffResults","getDiff","compsWithDiff","diffStatus","source","target","sourceLaneId","targetLaneId","deferChanges","prewarmCaches","removeUpdateDependents","laneId","laneIdParsed","compIds","ComponentID","fromString","LaneDiffStatus","LaneComponentDiffStatus","diffCompStatus","componentId","toStringWithoutVersion","sourceHead","targetHead","toObject","changes","deriveComponentChanges","changeType","Lane","lane","laneComponentIds","componentIds","getLaneComponentIds","components","laneComponents","getLaneComponentModels","updateDependentIds","getLaneUpdateDependentIds","updateDependentComponents","getLaneUpdateDependentComponents","readmeComponent","laneReadmeComponent","getLaneReadmeComponent","createdAt","createdBy","username","email","profileImage","displayName","Query"],"sources":["lanes.graphql.ts"],"sourcesContent":["import type { Schema } from '@teambit/graphql';\nimport { LaneId } from '@teambit/lane-id';\nimport { ComponentID } from '@teambit/component-id';\nimport Fuse from 'fuse.js';\nimport type { LaneData } from '@teambit/legacy.scope';\nimport { gql } from 'graphql-tag';\nimport { flatten, slice } from 'lodash';\nimport type { LaneComponentDiffStatus, LaneDiffStatus, LaneDiffStatusOptions, LanesMain } from './lanes.main.runtime';\n\nexport function lanesSchema(lanesMainRuntime: LanesMain): Schema {\n return {\n typeDefs: gql`\n type FileDiff {\n filePath: String!\n diffOutput: String\n }\n\n type SnapDistance {\n onSource: [String!]!\n onTarget: [String!]!\n common: String\n }\n\n type FieldsDiff {\n fieldName: String!\n diffOutput: String\n }\n\n type DiffResults {\n id: String\n hasDiff: Boolean\n filesDiff: [FileDiff]\n fieldsDiff: [FieldsDiff]\n }\n\n type GetDiffResult {\n newComps: [String]\n compsWithNoChanges: [String]\n toLaneName: String\n compsWithDiff: [DiffResults]\n }\n\n input DiffOptions {\n color: Boolean\n }\n\n input DiffStatusOptions {\n skipChanges: Boolean\n skipUpToDate: Boolean\n }\n\n type LaneId {\n name: String!\n scope: String!\n }\n\n type LaneComponentDiffStatus {\n \"\"\"\n for apollo caching - component id\n \"\"\"\n id: String!\n sourceHead: String!\n targetHead: String\n \"\"\"\n where the compared base was resolved from: \"workspace\" (already local) or \"scope\" (fetched\n on demand from the remote scope). null for a new component (no base) or a lane-vs-lane diff.\n \"\"\"\n baseSource: String\n componentId: ComponentID!\n changeType: String @deprecated(reason: \"Use changes\")\n \"\"\"\n list of all change types - Source Code, Dependency, Aspects, etc\n \"\"\"\n changes: [String!]\n upToDate: Boolean\n snapsDistance: SnapDistance\n unrelated: Boolean\n }\n\n type LaneDiffStatus {\n \"\"\"\n for apollo caching - source + target\n \"\"\"\n id: String!\n source: LaneId!\n target: LaneId!\n componentsStatus: [LaneComponentDiffStatus!]!\n }\n\n type LaneOwner {\n name: String\n username: String\n displayName: String\n email: String\n profileImage: String\n }\n\n type Lane {\n id: LaneId!\n hash: String\n laneComponentIds: [ComponentID!]!\n components(offset: Int, limit: Int): [Component!]!\n \"\"\"\n IDs of hidden cascade entries (lane.updateDependents). Separate from \\`laneComponentIds\\`\n so workspace-facing consumers don't surface them by default.\n \"\"\"\n updateDependentIds: [ComponentID!]!\n \"\"\"\n Hidden cascade entries materialized as Components. Separate from \\`components\\` for the\n same reason — consumers opt in by selecting this field.\n \"\"\"\n updateDependentComponents(offset: Int, limit: Int): [Component!]!\n readmeComponent: Component\n createdBy: LaneOwner\n createdAt: String\n updatedBy: LaneOwner\n updatedAt: String\n }\n\n input LaneSort {\n by: String\n direction: String\n }\n\n # Lane API\n type Lanes {\n id: String!\n list(ids: [String!], offset: Int, limit: Int, sort: LaneSort, search: String): [Lane!]!\n default: Lane\n diff(from: String!, to: String!, options: DiffOptions): GetDiffResult\n diffStatus(source: String!, target: String, options: DiffStatusOptions): LaneDiffStatus!\n removeUpdateDependents(laneId: String!, ids: [String!]): Boolean\n current: Lane\n }\n\n type Query {\n lanes: Lanes\n }\n `,\n resolvers: {\n Lanes: {\n // need this for Apollo InMemory Caching\n id: () => 'lanes',\n list: async (\n lanesMain: LanesMain,\n {\n ids,\n limit,\n offset,\n sort: { by = 'createdAt', direction = 'desc' } = { by: 'createdAt', direction: 'desc' },\n search,\n }: {\n ids?: string[];\n offset?: number;\n limit?: number;\n sort?: {\n by?: string;\n direction?: string;\n };\n search?: string;\n }\n ) => {\n let lanes: LaneData[] = [];\n\n if (!ids || ids.length === 0) {\n lanes = await lanesMain.getLanes({ showDefaultLane: true });\n } else {\n lanes = flatten(\n await Promise.all(\n ids.map((id) => {\n if (id === lanesMain.getDefaultLaneId().name) {\n return lanesMain.getLanes({ showDefaultLane: true, name: id });\n }\n return lanesMain.getLanes({ name: LaneId.parse(id).name });\n })\n )\n );\n }\n\n if (search) {\n const fuseOptions = {\n keys: ['id.name', 'id.scope', 'log.username', 'log.email', 'log.displayName'],\n threshold: search.length === 1 ? 0 : 0.3,\n findAllMatches: true,\n location: 0,\n distance: search.length === 1 ? 0 : 100,\n minMatchCharLength: 1,\n ignoreLocation: true,\n shouldSort: false,\n includeScore: true,\n };\n const fuse = new Fuse(lanes, fuseOptions);\n lanes = fuse.search(search).map((result) => result.item);\n }\n\n lanes = lanes.sort((a, b) => {\n switch (by) {\n default: {\n if (!a[by] || !b[by]) return 0;\n\n if (a[by] < b[by]) return direction === 'asc' ? -1 : 1;\n if (a[by] > b[by]) return direction === 'asc' ? -1 : 1;\n return 0;\n }\n case 'createdAt':\n case 'updatedAt': {\n const aDate = a.log?.date;\n const bDate = b.log?.date;\n\n if (!aDate || !bDate) return 0;\n\n if (+aDate < +bDate) return direction === 'asc' ? -1 : 1;\n if (+aDate > +bDate) return direction === 'asc' ? 1 : -1;\n return 0;\n }\n case 'id': {\n const aId = a[by].toString();\n const bId = b[by].toString();\n\n if (aId < bId) return direction === 'asc' ? -1 : 1;\n if (aId > bId) return direction === 'asc' ? -1 : 1;\n return 0;\n }\n }\n });\n\n if (limit || offset) {\n lanes = slice(lanes, offset, limit && limit + (offset || 0));\n }\n\n return lanes;\n },\n default: async (lanesMain: LanesMain) => {\n const [defaultLane] = await lanesMain.getLanes({\n showDefaultLane: true,\n name: lanesMain.getDefaultLaneId().name,\n });\n return defaultLane;\n },\n current: async (lanesMain: LanesMain) => {\n const currentLaneName = lanesMain.getCurrentLaneName();\n if (!currentLaneName) return undefined;\n const [currentLane] = await lanesMain.getLanes({ name: currentLaneName });\n return currentLane;\n },\n diff: async (\n lanesMain: LanesMain,\n { from, to, options }: { to: string; from: string; options: { color?: boolean } }\n ) => {\n const getDiffResults = await lanesMain.getDiff([from, to], options);\n return {\n ...getDiffResults,\n compsWithDiff: getDiffResults.compsWithDiff.map((item) => ({ ...item, id: item.id.toString() })),\n };\n },\n diffStatus: async (\n lanesMain: LanesMain,\n { source, target, options }: { source: string; target?: string; options?: LaneDiffStatusOptions }\n ) => {\n const sourceLaneId = LaneId.parse(source);\n const targetLaneId = target ? LaneId.parse(target) : undefined;\n // Defer `changes` derivation to the per-component field resolver so the eager pMap inside\n // `diffStatus` is fast. The field resolver only fires when the client selects `changes`,\n // and graphql-js runs each component's resolver in parallel via `Promise.all`.\n // `prewarmCaches`: this is the UI caller, which fires the follow-up compare/host queries the\n // prewarm warms. Non-UI callers of `diffStatus` leave it off so they don't pay the fan-out.\n return lanesMain.diffStatus(sourceLaneId, targetLaneId, {\n ...options,\n deferChanges: true,\n prewarmCaches: true,\n });\n },\n removeUpdateDependents: async (lanesMain: LanesMain, { laneId, ids }: { laneId: string; ids?: string[] }) => {\n const laneIdParsed = LaneId.parse(laneId);\n const compIds = ids?.map((id) => ComponentID.fromString(id));\n return lanesMain.removeUpdateDependents(laneIdParsed, compIds);\n },\n },\n LaneDiffStatus: {\n id: (diffStatus: LaneDiffStatus) => `${diffStatus.source.toString()}-${diffStatus.target.toString()}`,\n },\n LaneComponentDiffStatus: {\n id: (diffCompStatus: LaneComponentDiffStatus) =>\n `${diffCompStatus.componentId.toStringWithoutVersion()}-${diffCompStatus.sourceHead}-${\n diffCompStatus.targetHead\n }`,\n componentId: (diffCompStatus: LaneComponentDiffStatus) => diffCompStatus.componentId.toObject(),\n changes: (diffCompStatus: LaneComponentDiffStatus) => lanesMainRuntime.deriveComponentChanges(diffCompStatus),\n changeType: async (diffCompStatus: LaneComponentDiffStatus) => {\n const changes = await lanesMainRuntime.deriveComponentChanges(diffCompStatus);\n return changes?.[0];\n },\n },\n Lane: {\n id: (lane: LaneData) => lane.id.toObject(),\n laneComponentIds: async (lane: LaneData) => {\n const componentIds = await lanesMainRuntime.getLaneComponentIds(lane);\n return componentIds.map((componentId) => componentId.toObject());\n },\n components: async (lane: LaneData) => {\n const laneComponents = await lanesMainRuntime.getLaneComponentModels(lane);\n return laneComponents;\n },\n updateDependentIds: async (lane: LaneData) => {\n const ids = await lanesMainRuntime.getLaneUpdateDependentIds(lane);\n return ids.map((id) => id.toObject());\n },\n updateDependentComponents: async (lane: LaneData) => {\n return lanesMainRuntime.getLaneUpdateDependentComponents(lane);\n },\n readmeComponent: async (lane: LaneData) => {\n const laneReadmeComponent = await lanesMainRuntime.getLaneReadmeComponent(lane);\n return laneReadmeComponent;\n },\n createdAt: async (lane: LaneData) => {\n return lane.log?.date;\n },\n createdBy: async (lane: LaneData) => {\n return {\n name: lane.log?.username,\n email: lane.log?.email,\n profileImage: lane.log?.profileImage,\n displayName: lane.log?.username,\n username: lane.log?.username,\n };\n },\n },\n Query: {\n lanes: () => lanesMainRuntime,\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -53,10 +53,14 @@ export type SwitchLaneOptions = {
|
|
|
53
53
|
override?: boolean;
|
|
54
54
|
branch?: boolean;
|
|
55
55
|
};
|
|
56
|
+
/** where the base was resolved from: `workspace` (already local) or `scope` (fetched from remote). */
|
|
57
|
+
export type DiffBaseSource = 'workspace' | 'scope';
|
|
56
58
|
export type LaneComponentDiffStatus = {
|
|
57
59
|
componentId: ComponentID;
|
|
58
60
|
sourceHead: string;
|
|
59
61
|
targetHead?: string;
|
|
62
|
+
/** where the base was resolved from (workspace vs remote scope). @see DiffBaseSource */
|
|
63
|
+
baseSource?: DiffBaseSource;
|
|
60
64
|
/**
|
|
61
65
|
* @deprecated
|
|
62
66
|
* use changes to get list of all the changes
|
|
@@ -66,9 +70,40 @@ export type LaneComponentDiffStatus = {
|
|
|
66
70
|
upToDate?: boolean;
|
|
67
71
|
snapsDistance?: SnapsDistanceObj;
|
|
68
72
|
unrelated?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* internal context for deferred derivation of `changes`. not exposed on the GraphQL schema —
|
|
75
|
+
* the `changes` field resolver consumes this via `deriveComponentChanges` so the heavy
|
|
76
|
+
* `componentCompare.compare()` + `getAPIDiff()` work only runs when the field is selected,
|
|
77
|
+
* lazily per-component, in parallel via graphql-js list resolution.
|
|
78
|
+
*/
|
|
79
|
+
changesContext?: {
|
|
80
|
+
commonSnap?: {
|
|
81
|
+
hash: string;
|
|
82
|
+
} | null;
|
|
83
|
+
skipped?: boolean;
|
|
84
|
+
pending?: Promise<ChangeType[] | undefined>;
|
|
85
|
+
};
|
|
69
86
|
};
|
|
70
87
|
export type LaneDiffStatusOptions = {
|
|
88
|
+
/** skip importing the common snaps and computing `changes` entirely */
|
|
71
89
|
skipChanges?: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* drop components where the snaps-distance says the source already includes everything on the
|
|
92
|
+
* target. these contribute nothing to a target→source merge view but each costs an
|
|
93
|
+
* `importWithoutDeps` round trip + an `apiDiff` schema extraction.
|
|
94
|
+
*/
|
|
95
|
+
skipUpToDate?: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* still classify snap distance, but don't compute `changes` eagerly. callers derive them lazily
|
|
98
|
+
* via `deriveComponentChanges` (used by GraphQL field resolvers).
|
|
99
|
+
*/
|
|
100
|
+
deferChanges?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* after computing the result, eagerly warm the compare/host caches the lane-compare UI will hit next.
|
|
103
|
+
* UI-only: it fans out concurrent component loads, so CLI/programmatic callers (which never make those
|
|
104
|
+
* follow-up queries) must leave it off to avoid paying — and multiplying — that cold-load cost.
|
|
105
|
+
*/
|
|
106
|
+
prewarmCaches?: boolean;
|
|
72
107
|
};
|
|
73
108
|
export type DivergeDataPerId = {
|
|
74
109
|
id: ComponentID;
|
|
@@ -103,6 +138,36 @@ export declare class LanesMain {
|
|
|
103
138
|
readonly checkout: CheckoutMain;
|
|
104
139
|
private install;
|
|
105
140
|
constructor(workspace: Workspace | undefined, scope: ScopeMain, merging: MergingMain, componentAspect: ComponentMain, logger: Logger, importer: ImporterMain, exporter: ExportMain, componentCompare: ComponentCompareMain, componentWriter: ComponentWriterMain, remove: RemoveMain, checkout: CheckoutMain, install: InstallMain);
|
|
141
|
+
/**
|
|
142
|
+
* disk-persisted memo layer for the lane-diff computation (snaps-distance, change-types and the
|
|
143
|
+
* top-level result). extracted to its own class — see `LaneDiffCache` in lanes/diff.
|
|
144
|
+
*/
|
|
145
|
+
private _laneDiffCache?;
|
|
146
|
+
private get laneDiffCache();
|
|
147
|
+
/**
|
|
148
|
+
* Bound the parallelism of `deriveChangeTypes` across all in-flight requests. graphql-js resolves
|
|
149
|
+
* list fields in parallel via `Promise.all`, so an uncapped derivation fires one `compare()` per
|
|
150
|
+
* component at once. The old cap of 4 existed because derivation also ran `getAPIDiff` (serial
|
|
151
|
+
* tsserver schema extraction) — that's now deferred to the API view, so derivation only does the
|
|
152
|
+
* I/O+CPU-bound `compare()`, which parallelizes well. Cap to the component concurrency limit.
|
|
153
|
+
*/
|
|
154
|
+
private deriveChangesLimit;
|
|
155
|
+
/** single-flight for concurrent `deriveComponentChanges` calls on the same memo key. */
|
|
156
|
+
private changeTypesInflight;
|
|
157
|
+
private tryDiffStatusResultMemo;
|
|
158
|
+
/**
|
|
159
|
+
* Pre-warm the downstream caches the lane-compare UI hits right after `LaneDiffStatus`:
|
|
160
|
+
* - the scope's `ScopeComponentLoader.componentsCache` via `host.getMany([…])`
|
|
161
|
+
* - `componentCompare`'s disk-persisted result memo via `compareComponents(pairs)`
|
|
162
|
+
*
|
|
163
|
+
* Fire-and-forget. The UI's follow-up `Component` and `CompareComponents` queries arrive ~50–200 ms
|
|
164
|
+
* after we return; this kickoff happens *before* we return, so the work overlaps the UI's render
|
|
165
|
+
* tick and the response serialization. By the time the UI's queries land on the server, the caches
|
|
166
|
+
* are populated (or, worst case, the pre-warm work is in-flight and the resolver-level single-flight
|
|
167
|
+
* in `componentCompare` dedupes the load).
|
|
168
|
+
*/
|
|
169
|
+
private prewarmCompareCaches;
|
|
170
|
+
private populateDiffStatusMemoAsync;
|
|
106
171
|
/**
|
|
107
172
|
* return the lane data without the deleted components.
|
|
108
173
|
* the deleted components are filtered out in legacyScope.lanes.getLanesData()
|
|
@@ -152,9 +217,7 @@ export declare class LanesMain {
|
|
|
152
217
|
exportLane(lane: Lane): Promise<void>;
|
|
153
218
|
importLaneObject(laneId: LaneId, persistIfNotExists?: boolean, includeLaneHistory?: boolean): Promise<Lane>;
|
|
154
219
|
eject(pattern: string): Promise<ComponentID[]>;
|
|
155
|
-
/**
|
|
156
|
-
* get the head hash (snap) of main. return undefined if the component exists only on a lane and was never merged to main
|
|
157
|
-
*/
|
|
220
|
+
/** head hash of main, with remote-scope fallback. undefined only for a genuinely-new component. */
|
|
158
221
|
getHeadOnMain(componentId: ComponentID): Promise<string | undefined>;
|
|
159
222
|
/**
|
|
160
223
|
* fetch the lane object and its components from the remote.
|
|
@@ -206,7 +269,13 @@ export declare class LanesMain {
|
|
|
206
269
|
}>;
|
|
207
270
|
diffStatus(sourceLaneId: LaneId, targetLaneId?: LaneId, options?: LaneDiffStatusOptions): Promise<LaneDiffStatus>;
|
|
208
271
|
private componentDiffStatus;
|
|
209
|
-
|
|
272
|
+
/**
|
|
273
|
+
* Lazily derive the change types for a single component diff status. Used by the GraphQL `changes`
|
|
274
|
+
* field resolver so the (expensive) derivation only runs when the field is selected. Memoized per
|
|
275
|
+
* status object via `changesContext.pending`, so selecting both `changes` and `changeType` computes
|
|
276
|
+
* the value once.
|
|
277
|
+
*/
|
|
278
|
+
deriveComponentChanges(status: LaneComponentDiffStatus): Promise<ChangeType[] | undefined>;
|
|
210
279
|
private deriveChangeTypes;
|
|
211
280
|
private recreateNewLaneIfDeleted;
|
|
212
281
|
/**
|