@teambit/workspace 0.0.520 → 0.0.524

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,9 +1,10 @@
1
1
  import { Component, ComponentID, AspectData } from '@teambit/component';
2
+ import { CompilationInitiator } from '@teambit/compiler';
2
3
  export declare type SerializableResults = {
3
4
  results: any;
4
5
  toString: () => string;
5
6
  };
6
- export declare type OnComponentChange = (component: Component) => Promise<SerializableResults>;
7
+ export declare type OnComponentChange = (component: Component, initiator?: CompilationInitiator) => Promise<SerializableResults>;
7
8
  export declare type OnComponentAdd = (component: Component) => Promise<SerializableResults>;
8
9
  export declare type OnComponentRemove = (componentId: ComponentID) => Promise<SerializableResults>;
9
10
  export declare type OnComponentEventResult = {
package/dist/tag-cmd.js CHANGED
@@ -112,7 +112,7 @@ https://${_constants().BASE_DOCS_DOMAIN}/docs/tag-component-version
112
112
  ${(0, _constants().WILDCARD_HELP)('tag')}`);
113
113
  (0, _defineProperty2().default)(this, "alias", 't');
114
114
  (0, _defineProperty2().default)(this, "loader", true);
115
- (0, _defineProperty2().default)(this, "options", [['m', 'message <message>', 'log message describing the user changes'], ['a', 'all [version]', 'tag all new and modified components'], ['s', 'scope [version]', 'tag all components of the current scope'], ['', 'snapped [version]', 'tag components that their head is a snap (not a tag)'], ['', 'ver <version>', 'tag specified components with the given version'], ['p', 'patch', 'increment the patch version number'], ['', 'minor', 'increment the minor version number'], ['', 'major', 'increment the major version number'], ['', 'pre-release [identifier]', 'EXPERIMENTAL. increment a pre-release version (e.g. 1.0.0-dev.1)'], ['f', 'force', 'force-tag even if tests are failing and even when component has not changed'], ['v', 'verbose', 'show specs output on failure'], ['', 'ignore-unresolved-dependencies', 'DEPRECATED. use --ignore-issues instead'], ['i', 'ignore-issues', 'ignore component issues (shown in "bit status" as "issues found")'], ['I', 'ignore-newest-version', 'ignore existing of newer versions (default = false)'], ['', 'skip-tests', 'skip running component tests during tag process'], ['', 'skip-auto-tag', 'skip auto tagging dependents'], ['', 'build', 'EXPERIMENTAL. not needed for now. run the pipeline build and complete the tag'], ['', 'soft', 'do not persist. only keep note of the changes to be made'], ['', 'persist', 'persist the changes generated by --soft tag'], ['', 'disable-deploy-pipeline', 'DEPRECATED. use --disable-tag-pipeline instead'], ['', 'disable-tag-pipeline', 'skip the tag pipeline to avoid publishing the components'], ['', 'force-deploy', 'run the tag pipeline although the build failed'], ['', 'increment-by <number>', '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.']]);
115
+ (0, _defineProperty2().default)(this, "options", [['m', 'message <message>', 'log message describing the user changes'], ['a', 'all [version]', 'tag all new and modified components'], ['s', 'scope [version]', 'tag all components of the current scope'], ['', 'snapped [version]', 'tag components that their head is a snap (not a tag)'], ['', 'ver <version>', 'tag specified components with the given version'], ['p', 'patch', 'increment the patch version number'], ['', 'minor', 'increment the minor version number'], ['', 'major', 'increment the major version number'], ['', 'pre-release [identifier]', 'EXPERIMENTAL. increment a pre-release version (e.g. 1.0.0-dev.1)'], ['f', 'force', 'force-tag even if tests are failing and even when component has not changed'], ['v', 'verbose', 'show specs output on failure'], ['', 'ignore-unresolved-dependencies', 'DEPRECATED. use --ignore-issues instead'], ['i', 'ignore-issues', 'ignore component issues (shown in "bit status" as "issues found")'], ['I', 'ignore-newest-version', 'ignore existing of newer versions (default = false)'], ['', 'skip-tests', 'skip running component tests during tag process'], ['', 'skip-auto-tag', 'skip auto tagging dependents'], ['b', 'build', 'EXPERIMENTAL. not needed for now. run the pipeline build and complete the tag'], ['', 'soft', 'do not persist. only keep note of the changes to be made'], ['', 'persist', 'persist the changes generated by --soft tag'], ['', 'disable-deploy-pipeline', 'DEPRECATED. use --disable-tag-pipeline instead'], ['', 'disable-tag-pipeline', 'skip the tag pipeline to avoid publishing the components'], ['', 'force-deploy', 'run the tag pipeline although the build failed'], ['', 'increment-by <number>', '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.']]);
116
116
  (0, _defineProperty2().default)(this, "migration", true);
117
117
  (0, _defineProperty2().default)(this, "remoteOp", true);
118
118
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["tag-cmd.ts"],"names":["Tag","BASE_DOCS_DOMAIN","report","id","message","ver","all","snapped","patch","minor","major","preRelease","force","verbose","ignoreUnresolvedDependencies","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","scope","build","soft","persist","disableDeployPipeline","disableTagPipeline","forceDeploy","incrementBy","BUILD_ON_CI","Boolean","getVersion","length","GeneralError","secondArg","semver","valid","disableTagAndSnapPipelines","releaseFlags","filter","x","releaseType","DEFAULT_BIT_RELEASE_TYPE","includeImported","params","ids","exactVersion","results","chalk","yellow","NOTHING_TO_TAG_MSG","taggedComponents","autoTaggedResults","warnings","newComponents","changedComponents","component","searchWithoutVersion","addedComponents","autoTaggedCount","warningsOutput","join","tagExplanationPersist","tagExplanationSoft","tagExplanation","isSoftTag","outputComponents","comps","map","componentOutput","toString","autoTag","result","triggeredBy","searchWithoutScopeAndVersion","autoTagComp","a","AUTO_TAGGED_MSG","publishOutput","publishedPackages","successTitle","green","successCompsStr","successOutput","softTagPrefix","outputIfExists","label","explanation","components","underline","newDesc","changedDesc","softTagClarification","bold"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAMA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,GAAN,CAA6B;AAAA;AAAA,kDAC3B,aAD2B;AAAA,mDAE1B,aAF0B;AAAA,8DAGf,4CAHe;AAAA,yDAInB;AACjB;AACA,UAAUC,6BAAiB;AAC3B,EAAE,gCAAc,KAAd,CAAqB,EAPa;AAAA,mDAQ1B,GAR0B;AAAA,oDASzB,IATyB;AAAA,qDAUxB,CACR,CAAC,GAAD,EAAM,mBAAN,EAA2B,yCAA3B,CADQ,EAER,CAAC,GAAD,EAAM,eAAN,EAAuB,qCAAvB,CAFQ,EAGR,CAAC,GAAD,EAAM,iBAAN,EAAyB,yCAAzB,CAHQ,EAIR,CAAC,EAAD,EAAK,mBAAL,EAA0B,sDAA1B,CAJQ,EAKR,CAAC,EAAD,EAAK,eAAL,EAAsB,iDAAtB,CALQ,EAMR,CAAC,GAAD,EAAM,OAAN,EAAe,oCAAf,CANQ,EAOR,CAAC,EAAD,EAAK,OAAL,EAAc,oCAAd,CAPQ,EAQR,CAAC,EAAD,EAAK,OAAL,EAAc,oCAAd,CARQ,EASR,CAAC,EAAD,EAAK,0BAAL,EAAiC,kEAAjC,CATQ,EAUR,CAAC,GAAD,EAAM,OAAN,EAAe,6EAAf,CAVQ,EAWR,CAAC,GAAD,EAAM,SAAN,EAAiB,8BAAjB,CAXQ,EAYR,CAAC,EAAD,EAAK,gCAAL,EAAuC,yCAAvC,CAZQ,EAaR,CAAC,GAAD,EAAM,eAAN,EAAuB,mEAAvB,CAbQ,EAcR,CAAC,GAAD,EAAM,uBAAN,EAA+B,qDAA/B,CAdQ,EAeR,CAAC,EAAD,EAAK,YAAL,EAAmB,iDAAnB,CAfQ,EAgBR,CAAC,EAAD,EAAK,eAAL,EAAsB,8BAAtB,CAhBQ,EAiBR,CAAC,EAAD,EAAK,OAAL,EAAc,+EAAd,CAjBQ,EAkBR,CAAC,EAAD,EAAK,MAAL,EAAa,0DAAb,CAlBQ,EAmBR,CAAC,EAAD,EAAK,SAAL,EAAgB,6CAAhB,CAnBQ,EAoBR,CAAC,EAAD,EAAK,yBAAL,EAAgC,gDAAhC,CApBQ,EAqBR,CAAC,EAAD,EAAK,sBAAL,EAA6B,0DAA7B,CArBQ,EAsBR,CAAC,EAAD,EAAK,cAAL,EAAqB,gDAArB,CAtBQ,EAuBR,CACE,EADF,EAEE,uBAFF,EAGE,4GAHF,CAvBQ,CAVwB;AAAA,uDAuCtB,IAvCsB;AAAA,sDAwCvB,IAxCuB;AAAA;;AAwCjB;AAEjB;AACY,QAANC,MAAM,CACV,CAACC,EAAE,GAAG,EAAN,CADU,EAEV;AACEC,IAAAA,OAAO,GAAG,EADZ;AAEEC,IAAAA,GAFF;AAGEC,IAAAA,GAAG,GAAG,KAHR;AAIEC,IAAAA,OAAO,GAAG,KAJZ;AAKEC,IAAAA,KALF;AAMEC,IAAAA,KANF;AAOEC,IAAAA,KAPF;AAQEC,IAAAA,UARF;AASEC,IAAAA,KAAK,GAAG,KATV;AAUEC,IAAAA,OAAO,GAAG,KAVZ;AAWEC,IAAAA,4BAXF;AAYEC,IAAAA,YAAY,GAAG,KAZjB;AAaEC,IAAAA,mBAAmB,GAAG,KAbxB;AAcEC,IAAAA,SAAS,GAAG,KAdd;AAeEC,IAAAA,WAAW,GAAG,KAfhB;AAgBEC,IAAAA,KAhBF;AAiBEC,IAAAA,KAjBF;AAkBEC,IAAAA,IAAI,GAAG,KAlBT;AAmBEC,IAAAA,OAAO,GAAG,KAnBZ;AAoBEC,IAAAA,qBAAqB,GAAG,KApB1B;AAqBEC,IAAAA,kBAAkB,GAAG,KArBvB;AAsBEC,IAAAA,WAAW,GAAG,KAtBhB;AAuBEC,IAAAA,WAAW,GAAG;AAvBhB,GAFU,EAwCO;AACjBN,IAAAA,KAAK,GAAG,uCAAiBO,4BAAjB,IAAgCC,OAAO,CAACR,KAAD,CAAvC,GAAiD,IAAzD;AACA,QAAIC,IAAJ,EAAUD,KAAK,GAAG,KAAR;;AACV,aAASS,UAAT,GAA0C;AACxC,UAAIV,KAAK,IAAI,uBAASA,KAAT,CAAb,EAA8B,OAAOA,KAAP;AAC9B,UAAIb,GAAG,IAAI,uBAASA,GAAT,CAAX,EAA0B,OAAOA,GAAP;AAC1B,UAAIC,OAAO,IAAI,uBAASA,OAAT,CAAf,EAAkC,OAAOA,OAAP;AAClC,aAAOF,GAAP;AACD;;AAED,QAAI,CAACF,EAAE,CAAC2B,MAAJ,IAAc,CAACxB,GAAf,IAAsB,CAACC,OAAvB,IAAkC,CAACY,KAAnC,IAA4C,CAACG,OAAjD,EAA0D;AACxD,YAAM,KAAIS,uBAAJ,EAAiB,4DAAjB,CAAN;AACD;;AACD,QAAI5B,EAAE,CAAC2B,MAAH,IAAaxB,GAAjB,EAAsB;AACpB,YAAM,KAAIyB,uBAAJ,EACJ,0GADI,CAAN;AAGD;;AACD,QAAI,OAAOjB,4BAAP,KAAwC,SAA5C,EAAuD;AACrDC,MAAAA,YAAY,GAAGD,4BAAf;AACD;;AACD,QAAIX,EAAE,CAAC2B,MAAH,KAAc,CAAlB,EAAqB;AACnB,YAAME,SAAS,GAAG7B,EAAE,CAAC,CAAD,CAApB,CADmB,CAEnB;AACA;;AACA,UAAI8B,kBAAOC,KAAP,CAAaF,SAAb,CAAJ,EAA6B;AAC3B,cAAM,KAAID,uBAAJ,EACH,8HADG,CAAN;AAGD;AACF;;AACD,UAAMI,0BAA0B,GAAGX,kBAAkB,IAAID,qBAAzD;;AACA,QAAIY,0BAA0B,IAAIV,WAAlC,EAA+C;AAC7C,YAAM,KAAIM,uBAAJ,EAAiB,uEAAjB,CAAN;AACD;;AACD,QAAIzB,GAAG,IAAIgB,OAAX,EAAoB;AAClB,YAAM,KAAIS,uBAAJ,EAAiB,qDAAjB,CAAN;AACD;;AAED,UAAMK,YAAY,GAAG,CAAC5B,KAAD,EAAQC,KAAR,EAAeC,KAAf,EAAsBC,UAAtB,EAAkC0B,MAAlC,CAA0CC,CAAD,IAAOA,CAAhD,CAArB;;AACA,QAAIF,YAAY,CAACN,MAAb,GAAsB,CAA1B,EAA6B;AAC3B,YAAM,KAAIC,uBAAJ,EAAiB,0EAAjB,CAAN;AACD;;AAED,QAAIQ,WAAwB,GAAGC,qCAA/B;;AACA,UAAMC,eAAe,GAAGb,OAAO,CAACT,KAAK,IAAIb,GAAV,CAA/B;AAEA,QAAII,KAAJ,EAAW6B,WAAW,GAAG,OAAd,CAAX,KACK,IAAI9B,KAAJ,EAAW8B,WAAW,GAAG,OAAd,CAAX,KACA,IAAI/B,KAAJ,EAAW+B,WAAW,GAAG,OAAd,CAAX,KACA,IAAI5B,UAAJ,EAAgB4B,WAAW,GAAG,YAAd;AAErB,UAAMG,MAAM,GAAG;AACbC,MAAAA,GAAG,EAAExC,EADQ;AAEbG,MAAAA,GAAG,EAAEsB,OAAO,CAACtB,GAAD,CAFC;AAGbC,MAAAA,OAAO,EAAEqB,OAAO,CAACrB,OAAD,CAHH;AAIbH,MAAAA,OAJa;AAKbwC,MAAAA,YAAY,EAAEf,UAAU,EALX;AAMbU,MAAAA,WANa;AAOb5B,MAAAA,UAAU,EAAE,OAAOA,UAAP,KAAsB,QAAtB,GAAiCA,UAAjC,GAA8C,EAP7C;AAQbC,MAAAA,KARa;AASbC,MAAAA,OATa;AAUbE,MAAAA,YAVa;AAWbC,MAAAA,mBAXa;AAYbC,MAAAA,SAZa;AAabC,MAAAA,WAba;AAcbE,MAAAA,KAda;AAebC,MAAAA,IAfa;AAgBbC,MAAAA,OAhBa;AAiBbH,MAAAA,KAjBa;AAkBbsB,MAAAA,eAlBa;AAmBbN,MAAAA,0BAnBa;AAoBbV,MAAAA,WApBa;AAqBbC,MAAAA;AArBa,KAAf;AAwBA,UAAMmB,OAAO,GAAG,MAAM,2BAAUH,MAAV,CAAtB;AACA,QAAI,CAACG,OAAL,EAAc,OAAOC,iBAAMC,MAAN,CAAaC,yBAAb,CAAP;AACd,UAAM;AAAEC,MAAAA,gBAAF;AAAoBC,MAAAA,iBAApB;AAAuCC,MAAAA,QAAvC;AAAiDC,MAAAA;AAAjD,QAA+EP,OAArF;AACA,UAAMQ,iBAAiB,GAAGJ,gBAAgB,CAACZ,MAAjB,CAAyBiB,SAAD,IAAe,CAACF,aAAa,CAACG,oBAAd,CAAmCD,SAAS,CAACnD,EAA7C,CAAxC,CAA1B;AACA,UAAMqD,eAAe,GAAGP,gBAAgB,CAACZ,MAAjB,CAAyBiB,SAAD,IAAeF,aAAa,CAACG,oBAAd,CAAmCD,SAAS,CAACnD,EAA7C,CAAvC,CAAxB;AACA,UAAMsD,eAAe,GAAGP,iBAAiB,GAAGA,iBAAiB,CAACpB,MAArB,GAA8B,CAAvE;AAEA,UAAM4B,cAAc,GAAGP,QAAQ,IAAIA,QAAQ,CAACrB,MAArB,GAA+B,GAAEgB,iBAAMC,MAAN,CAAaI,QAAQ,CAACQ,IAAT,CAAc,IAAd,CAAb,CAAkC,MAAnE,GAA2E,EAAlG;AACA,UAAMC,qBAAqB,GAAI;AACnC,wCADI;AAEA,UAAMC,kBAAkB,GAAI;AAChC,mDADI;AAGA,UAAMC,cAAc,GAAGjB,OAAO,CAACkB,SAAR,GAAoBF,kBAApB,GAAyCD,qBAAhE;;AAEA,UAAMI,gBAAgB,GAAIC,KAAD,IAAW;AAClC,aAAOA,KAAK,CACTC,GADI,CACCZ,SAAD,IAAe;AAClB,YAAIa,eAAe,GAAI,UAASb,SAAS,CAACnD,EAAV,CAAaiE,QAAb,EAAwB,EAAxD;AACA,cAAMC,OAAO,GAAGnB,iBAAiB,CAACb,MAAlB,CAA0BiC,MAAD,IACvCA,MAAM,CAACC,WAAP,CAAmBC,4BAAnB,CAAgDlB,SAAS,CAACnD,EAA1D,CADc,CAAhB;;AAGA,YAAIkE,OAAO,CAACvC,MAAZ,EAAoB;AAClB,gBAAM2C,WAAW,GAAGJ,OAAO,CAACH,GAAR,CAAaQ,CAAD,IAAOA,CAAC,CAACpB,SAAF,CAAYnD,EAAZ,CAAeiE,QAAf,EAAnB,CAApB;AACAD,UAAAA,eAAe,IAAK,YAAWQ,sBAAgB;AAC3D,cAAcF,WAAW,CAACd,IAAZ,CAAiB,gBAAjB,CAAmC,EADrC;AAED;;AACD,eAAOQ,eAAP;AACD,OAZI,EAaJR,IAbI,CAaC,IAbD,CAAP;AAcD,KAfD;;AAiBA,UAAMiB,aAAa,GAAG,MAAM;AAC1B,YAAM;AAAEC,QAAAA;AAAF,UAAwBhC,OAA9B;AACA,UAAI,CAACgC,iBAAD,IAAsB,CAACA,iBAAiB,CAAC/C,MAA7C,EAAqD,OAAO,EAAP;AACrD,YAAMgD,YAAY,GAAI,OAAMhC,iBAAMiC,KAAN,CACzB,2BAA0BF,iBAAiB,CAAC/C,MAAO,8BAD1B,CAE1B,EAFF;AAGA,YAAMkD,eAAe,GAAGH,iBAAiB,CAAClB,IAAlB,CAAuB,IAAvB,CAAxB;AACA,YAAMsB,aAAa,GAAGD,eAAe,GAAGF,YAAY,GAAGE,eAAlB,GAAoC,EAAzE;AACA,aAAOC,aAAP;AACD,KATD;;AAWA,UAAMC,aAAa,GAAGrC,OAAO,CAACkB,SAAR,GAAoB,cAApB,GAAqC,EAA3D;;AACA,UAAMoB,cAAc,GAAG,CAACC,KAAD,EAAQC,WAAR,EAAqBC,UAArB,KAAoC;AACzD,UAAI,CAACA,UAAU,CAACxD,MAAhB,EAAwB,OAAO,EAAP;AACxB,aAAQ,KAAIgB,iBAAMyC,SAAN,CAAgBL,aAAa,GAAGE,KAAhC,CAAuC,MAAKC,WAAY,MAAKrB,gBAAgB,CAACsB,UAAD,CAAa,IAAtG;AACD,KAHD;;AAKA,UAAME,OAAO,GAAG3C,OAAO,CAACkB,SAAR,GACZ,+CADY,GAEZ,8BAFJ;AAGA,UAAM0B,WAAW,GAAG5C,OAAO,CAACkB,SAAR,GAChB,2CADgB,GAEhB,oCAFJ;AAGA,UAAM2B,oBAAoB,GAAG7C,OAAO,CAACkB,SAAR,GACzBjB,iBAAM6C,IAAN,CACE,iHADF,CADyB,GAIzB,EAJJ;AAKA,WACEjC,cAAc,GACdZ,iBAAMiC,KAAN,CACG,GAAE9B,gBAAgB,CAACnB,MAAjB,GAA0B2B,eAAgB,iBAAgBZ,OAAO,CAACkB,SAAR,GAAoB,OAApB,GAA8B,EAAG,QADhG,CADA,GAIAD,cAJA,GAKAqB,cAAc,CAAC,gBAAD,EAAmBK,OAAnB,EAA4BhC,eAA5B,CALd,GAMA2B,cAAc,CAAC,oBAAD,EAAuBM,WAAvB,EAAoCpC,iBAApC,CANd,GAOAuB,aAAa,EAPb,GAQAc,oBATF;AAWD;;AAtOiC","sourcesContent":["import chalk from 'chalk';\nimport semver, { ReleaseType } from 'semver';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { tagAction } from '@teambit/legacy/dist/api/consumer';\nimport {\n TagResults,\n NOTHING_TO_TAG_MSG,\n AUTO_TAGGED_MSG,\n BasicTagParams,\n} from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport { isString } from '@teambit/legacy/dist/utils';\nimport { DEFAULT_BIT_RELEASE_TYPE, BASE_DOCS_DOMAIN, WILDCARD_HELP } from '@teambit/legacy/dist/constants';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\n\nexport class Tag implements Command {\n name = 'tag [id...]';\n group = 'development';\n shortDescription = 'record component changes and lock versions';\n description = `record component changes and lock versions.\nif component ids are entered, you can specify a version per id using \"@\" sign, e.g. bit tag foo@1.0.0 bar@minor baz@major\nhttps://${BASE_DOCS_DOMAIN}/docs/tag-component-version\n${WILDCARD_HELP('tag')}`;\n alias = 't';\n loader = true;\n options = [\n ['m', 'message <message>', 'log message describing the user changes'],\n ['a', 'all [version]', 'tag all new and modified components'],\n ['s', 'scope [version]', 'tag all components of the current scope'],\n ['', 'snapped [version]', 'tag components that their head is a snap (not a tag)'],\n ['', 'ver <version>', 'tag specified components with the given version'],\n ['p', 'patch', 'increment the patch version number'],\n ['', 'minor', 'increment the minor version number'],\n ['', 'major', 'increment the major version number'],\n ['', 'pre-release [identifier]', 'EXPERIMENTAL. increment a pre-release version (e.g. 1.0.0-dev.1)'],\n ['f', 'force', 'force-tag even if tests are failing and even when component has not changed'],\n ['v', 'verbose', 'show specs output on failure'],\n ['', 'ignore-unresolved-dependencies', 'DEPRECATED. use --ignore-issues instead'],\n ['i', 'ignore-issues', 'ignore component issues (shown in \"bit status\" as \"issues found\")'],\n ['I', 'ignore-newest-version', 'ignore existing of newer versions (default = false)'],\n ['', 'skip-tests', 'skip running component tests during tag process'],\n ['', 'skip-auto-tag', 'skip auto tagging dependents'],\n ['', 'build', 'EXPERIMENTAL. not needed for now. run the pipeline build and complete the tag'],\n ['', 'soft', 'do not persist. only keep note of the changes to be made'],\n ['', 'persist', 'persist the changes generated by --soft tag'],\n ['', 'disable-deploy-pipeline', 'DEPRECATED. use --disable-tag-pipeline instead'],\n ['', 'disable-tag-pipeline', 'skip the tag pipeline to avoid publishing the components'],\n ['', 'force-deploy', 'run the tag pipeline although the build failed'],\n [\n '',\n 'increment-by <number>',\n '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.',\n ],\n ] as CommandOptions;\n migration = true;\n remoteOp = true; // In case a compiler / tester is not installed\n\n // eslint-disable-next-line complexity\n async report(\n [id = []]: [string[]],\n {\n message = '',\n ver,\n all = false,\n snapped = false,\n patch,\n minor,\n major,\n preRelease,\n force = false,\n verbose = false,\n ignoreUnresolvedDependencies,\n ignoreIssues = false,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n scope,\n build,\n soft = false,\n persist = false,\n disableDeployPipeline = false,\n disableTagPipeline = false,\n forceDeploy = false,\n incrementBy = 1,\n }: {\n all?: boolean | string;\n snapped?: boolean | string;\n ver?: string;\n patch?: boolean;\n minor?: boolean;\n major?: boolean;\n ignoreUnresolvedDependencies?: boolean;\n ignoreIssues?: boolean;\n scope?: string | boolean;\n incrementBy?: number;\n disableDeployPipeline?: boolean;\n disableTagPipeline?: boolean;\n } & Partial<BasicTagParams>\n ): Promise<string> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n if (soft) build = false;\n function getVersion(): string | undefined {\n if (scope && isString(scope)) return scope;\n if (all && isString(all)) return all;\n if (snapped && isString(snapped)) return snapped;\n return ver;\n }\n\n if (!id.length && !all && !snapped && !scope && !persist) {\n throw new GeneralError('missing [id]. to tag all components, please use --all flag');\n }\n if (id.length && all) {\n throw new GeneralError(\n 'you can use either a specific component [id] to tag a particular component or --all flag to tag them all'\n );\n }\n if (typeof ignoreUnresolvedDependencies === 'boolean') {\n ignoreIssues = ignoreUnresolvedDependencies;\n }\n if (id.length === 2) {\n const secondArg = id[1];\n // previously, the synopsis of this command was `bit tag [id] [version]`, show a descriptive\n // error when users still use it.\n if (semver.valid(secondArg)) {\n throw new GeneralError(\n `seems like you entered a version as the second arg, this is not supported anymore, please use \"@\" sign or --ver flag instead`\n );\n }\n }\n const disableTagAndSnapPipelines = disableTagPipeline || disableDeployPipeline;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new GeneralError('you can use either force-deploy or disable-tag-pipeline, but not both');\n }\n if (all && persist) {\n throw new GeneralError('you can use either --all or --persist, but not both');\n }\n\n const releaseFlags = [patch, minor, major, preRelease].filter((x) => x);\n if (releaseFlags.length > 1) {\n throw new GeneralError('you can use only one of the following - patch, minor, major, pre-release');\n }\n\n let releaseType: ReleaseType = DEFAULT_BIT_RELEASE_TYPE;\n const includeImported = Boolean(scope && all);\n\n if (major) releaseType = 'major';\n else if (minor) releaseType = 'minor';\n else if (patch) releaseType = 'patch';\n else if (preRelease) releaseType = 'prerelease';\n\n const params = {\n ids: id,\n all: Boolean(all),\n snapped: Boolean(snapped),\n message,\n exactVersion: getVersion(),\n releaseType,\n preRelease: typeof preRelease === 'string' ? preRelease : '',\n force,\n verbose,\n ignoreIssues,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n build,\n soft,\n persist,\n scope,\n includeImported,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n };\n\n const results = await tagAction(params);\n if (!results) return chalk.yellow(NOTHING_TO_TAG_MSG);\n const { taggedComponents, autoTaggedResults, warnings, newComponents }: TagResults = results;\n const changedComponents = taggedComponents.filter((component) => !newComponents.searchWithoutVersion(component.id));\n const addedComponents = taggedComponents.filter((component) => newComponents.searchWithoutVersion(component.id));\n const autoTaggedCount = autoTaggedResults ? autoTaggedResults.length : 0;\n\n const warningsOutput = warnings && warnings.length ? `${chalk.yellow(warnings.join('\\n'))}\\n\\n` : '';\n const tagExplanationPersist = `\\n(use \"bit export [collection]\" to push these components to a remote\")\n(use \"bit untag\" to unstage versions)\\n`;\n const tagExplanationSoft = `\\n(use \"bit tag --persist\" to persist the changes\")\n(use \"bit untag --soft\" to remove the soft-tags)\\n`;\n\n const tagExplanation = results.isSoftTag ? tagExplanationSoft : tagExplanationPersist;\n\n const outputComponents = (comps) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${component.id.toString()}`;\n const autoTag = autoTaggedResults.filter((result) =>\n result.triggeredBy.searchWithoutScopeAndVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) => a.component.id.toString());\n componentOutput += `\\n ${AUTO_TAGGED_MSG}:\n ${autoTagComp.join('\\n ')}`;\n }\n return componentOutput;\n })\n .join('\\n');\n };\n\n const publishOutput = () => {\n const { publishedPackages } = results;\n if (!publishedPackages || !publishedPackages.length) return '';\n const successTitle = `\\n\\n${chalk.green(\n `published the following ${publishedPackages.length} component(s) successfully\\n`\n )}`;\n const successCompsStr = publishedPackages.join('\\n');\n const successOutput = successCompsStr ? successTitle + successCompsStr : '';\n return successOutput;\n };\n\n const softTagPrefix = results.isSoftTag ? 'soft-tagged ' : '';\n const outputIfExists = (label, explanation, components) => {\n if (!components.length) return '';\n return `\\n${chalk.underline(softTagPrefix + label)}\\n(${explanation})\\n${outputComponents(components)}\\n`;\n };\n\n const newDesc = results.isSoftTag\n ? 'set to be tagged first version for components'\n : 'first version for components';\n const changedDesc = results.isSoftTag\n ? 'components that set to get a version bump'\n : 'components that got a version bump';\n const softTagClarification = results.isSoftTag\n ? chalk.bold(\n 'keep in mind that this is a soft-tag (changes recorded to be tagged), to persist the changes use --persist flag'\n )\n : '';\n return (\n warningsOutput +\n chalk.green(\n `${taggedComponents.length + autoTaggedCount} component(s) ${results.isSoftTag ? 'soft-' : ''}tagged`\n ) +\n tagExplanation +\n outputIfExists('new components', newDesc, addedComponents) +\n outputIfExists('changed components', changedDesc, changedComponents) +\n publishOutput() +\n softTagClarification\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["tag-cmd.ts"],"names":["Tag","BASE_DOCS_DOMAIN","report","id","message","ver","all","snapped","patch","minor","major","preRelease","force","verbose","ignoreUnresolvedDependencies","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","scope","build","soft","persist","disableDeployPipeline","disableTagPipeline","forceDeploy","incrementBy","BUILD_ON_CI","Boolean","getVersion","length","GeneralError","secondArg","semver","valid","disableTagAndSnapPipelines","releaseFlags","filter","x","releaseType","DEFAULT_BIT_RELEASE_TYPE","includeImported","params","ids","exactVersion","results","chalk","yellow","NOTHING_TO_TAG_MSG","taggedComponents","autoTaggedResults","warnings","newComponents","changedComponents","component","searchWithoutVersion","addedComponents","autoTaggedCount","warningsOutput","join","tagExplanationPersist","tagExplanationSoft","tagExplanation","isSoftTag","outputComponents","comps","map","componentOutput","toString","autoTag","result","triggeredBy","searchWithoutScopeAndVersion","autoTagComp","a","AUTO_TAGGED_MSG","publishOutput","publishedPackages","successTitle","green","successCompsStr","successOutput","softTagPrefix","outputIfExists","label","explanation","components","underline","newDesc","changedDesc","softTagClarification","bold"],"mappings":"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","sourcesContent":["import chalk from 'chalk';\nimport semver, { ReleaseType } from 'semver';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { tagAction } from '@teambit/legacy/dist/api/consumer';\nimport {\n TagResults,\n NOTHING_TO_TAG_MSG,\n AUTO_TAGGED_MSG,\n BasicTagParams,\n} from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport { isString } from '@teambit/legacy/dist/utils';\nimport { DEFAULT_BIT_RELEASE_TYPE, BASE_DOCS_DOMAIN, WILDCARD_HELP } from '@teambit/legacy/dist/constants';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\n\nexport class Tag implements Command {\n name = 'tag [id...]';\n group = 'development';\n shortDescription = 'record component changes and lock versions';\n description = `record component changes and lock versions.\nif component ids are entered, you can specify a version per id using \"@\" sign, e.g. bit tag foo@1.0.0 bar@minor baz@major\nhttps://${BASE_DOCS_DOMAIN}/docs/tag-component-version\n${WILDCARD_HELP('tag')}`;\n alias = 't';\n loader = true;\n options = [\n ['m', 'message <message>', 'log message describing the user changes'],\n ['a', 'all [version]', 'tag all new and modified components'],\n ['s', 'scope [version]', 'tag all components of the current scope'],\n ['', 'snapped [version]', 'tag components that their head is a snap (not a tag)'],\n ['', 'ver <version>', 'tag specified components with the given version'],\n ['p', 'patch', 'increment the patch version number'],\n ['', 'minor', 'increment the minor version number'],\n ['', 'major', 'increment the major version number'],\n ['', 'pre-release [identifier]', 'EXPERIMENTAL. increment a pre-release version (e.g. 1.0.0-dev.1)'],\n ['f', 'force', 'force-tag even if tests are failing and even when component has not changed'],\n ['v', 'verbose', 'show specs output on failure'],\n ['', 'ignore-unresolved-dependencies', 'DEPRECATED. use --ignore-issues instead'],\n ['i', 'ignore-issues', 'ignore component issues (shown in \"bit status\" as \"issues found\")'],\n ['I', 'ignore-newest-version', 'ignore existing of newer versions (default = false)'],\n ['', 'skip-tests', 'skip running component tests during tag process'],\n ['', 'skip-auto-tag', 'skip auto tagging dependents'],\n ['b', 'build', 'EXPERIMENTAL. not needed for now. run the pipeline build and complete the tag'],\n ['', 'soft', 'do not persist. only keep note of the changes to be made'],\n ['', 'persist', 'persist the changes generated by --soft tag'],\n ['', 'disable-deploy-pipeline', 'DEPRECATED. use --disable-tag-pipeline instead'],\n ['', 'disable-tag-pipeline', 'skip the tag pipeline to avoid publishing the components'],\n ['', 'force-deploy', 'run the tag pipeline although the build failed'],\n [\n '',\n 'increment-by <number>',\n '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.',\n ],\n ] as CommandOptions;\n migration = true;\n remoteOp = true; // In case a compiler / tester is not installed\n\n // eslint-disable-next-line complexity\n async report(\n [id = []]: [string[]],\n {\n message = '',\n ver,\n all = false,\n snapped = false,\n patch,\n minor,\n major,\n preRelease,\n force = false,\n verbose = false,\n ignoreUnresolvedDependencies,\n ignoreIssues = false,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n scope,\n build,\n soft = false,\n persist = false,\n disableDeployPipeline = false,\n disableTagPipeline = false,\n forceDeploy = false,\n incrementBy = 1,\n }: {\n all?: boolean | string;\n snapped?: boolean | string;\n ver?: string;\n patch?: boolean;\n minor?: boolean;\n major?: boolean;\n ignoreUnresolvedDependencies?: boolean;\n ignoreIssues?: boolean;\n scope?: string | boolean;\n incrementBy?: number;\n disableDeployPipeline?: boolean;\n disableTagPipeline?: boolean;\n } & Partial<BasicTagParams>\n ): Promise<string> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n if (soft) build = false;\n function getVersion(): string | undefined {\n if (scope && isString(scope)) return scope;\n if (all && isString(all)) return all;\n if (snapped && isString(snapped)) return snapped;\n return ver;\n }\n\n if (!id.length && !all && !snapped && !scope && !persist) {\n throw new GeneralError('missing [id]. to tag all components, please use --all flag');\n }\n if (id.length && all) {\n throw new GeneralError(\n 'you can use either a specific component [id] to tag a particular component or --all flag to tag them all'\n );\n }\n if (typeof ignoreUnresolvedDependencies === 'boolean') {\n ignoreIssues = ignoreUnresolvedDependencies;\n }\n if (id.length === 2) {\n const secondArg = id[1];\n // previously, the synopsis of this command was `bit tag [id] [version]`, show a descriptive\n // error when users still use it.\n if (semver.valid(secondArg)) {\n throw new GeneralError(\n `seems like you entered a version as the second arg, this is not supported anymore, please use \"@\" sign or --ver flag instead`\n );\n }\n }\n const disableTagAndSnapPipelines = disableTagPipeline || disableDeployPipeline;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new GeneralError('you can use either force-deploy or disable-tag-pipeline, but not both');\n }\n if (all && persist) {\n throw new GeneralError('you can use either --all or --persist, but not both');\n }\n\n const releaseFlags = [patch, minor, major, preRelease].filter((x) => x);\n if (releaseFlags.length > 1) {\n throw new GeneralError('you can use only one of the following - patch, minor, major, pre-release');\n }\n\n let releaseType: ReleaseType = DEFAULT_BIT_RELEASE_TYPE;\n const includeImported = Boolean(scope && all);\n\n if (major) releaseType = 'major';\n else if (minor) releaseType = 'minor';\n else if (patch) releaseType = 'patch';\n else if (preRelease) releaseType = 'prerelease';\n\n const params = {\n ids: id,\n all: Boolean(all),\n snapped: Boolean(snapped),\n message,\n exactVersion: getVersion(),\n releaseType,\n preRelease: typeof preRelease === 'string' ? preRelease : '',\n force,\n verbose,\n ignoreIssues,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n build,\n soft,\n persist,\n scope,\n includeImported,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n };\n\n const results = await tagAction(params);\n if (!results) return chalk.yellow(NOTHING_TO_TAG_MSG);\n const { taggedComponents, autoTaggedResults, warnings, newComponents }: TagResults = results;\n const changedComponents = taggedComponents.filter((component) => !newComponents.searchWithoutVersion(component.id));\n const addedComponents = taggedComponents.filter((component) => newComponents.searchWithoutVersion(component.id));\n const autoTaggedCount = autoTaggedResults ? autoTaggedResults.length : 0;\n\n const warningsOutput = warnings && warnings.length ? `${chalk.yellow(warnings.join('\\n'))}\\n\\n` : '';\n const tagExplanationPersist = `\\n(use \"bit export [collection]\" to push these components to a remote\")\n(use \"bit untag\" to unstage versions)\\n`;\n const tagExplanationSoft = `\\n(use \"bit tag --persist\" to persist the changes\")\n(use \"bit untag --soft\" to remove the soft-tags)\\n`;\n\n const tagExplanation = results.isSoftTag ? tagExplanationSoft : tagExplanationPersist;\n\n const outputComponents = (comps) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${component.id.toString()}`;\n const autoTag = autoTaggedResults.filter((result) =>\n result.triggeredBy.searchWithoutScopeAndVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) => a.component.id.toString());\n componentOutput += `\\n ${AUTO_TAGGED_MSG}:\n ${autoTagComp.join('\\n ')}`;\n }\n return componentOutput;\n })\n .join('\\n');\n };\n\n const publishOutput = () => {\n const { publishedPackages } = results;\n if (!publishedPackages || !publishedPackages.length) return '';\n const successTitle = `\\n\\n${chalk.green(\n `published the following ${publishedPackages.length} component(s) successfully\\n`\n )}`;\n const successCompsStr = publishedPackages.join('\\n');\n const successOutput = successCompsStr ? successTitle + successCompsStr : '';\n return successOutput;\n };\n\n const softTagPrefix = results.isSoftTag ? 'soft-tagged ' : '';\n const outputIfExists = (label, explanation, components) => {\n if (!components.length) return '';\n return `\\n${chalk.underline(softTagPrefix + label)}\\n(${explanation})\\n${outputComponents(components)}\\n`;\n };\n\n const newDesc = results.isSoftTag\n ? 'set to be tagged first version for components'\n : 'first version for components';\n const changedDesc = results.isSoftTag\n ? 'components that set to get a version bump'\n : 'components that got a version bump';\n const softTagClarification = results.isSoftTag\n ? chalk.bold(\n 'keep in mind that this is a soft-tag (changes recorded to be tagged), to persist the changes use --persist flag'\n )\n : '';\n return (\n warningsOutput +\n chalk.green(\n `${taggedComponents.length + autoTaggedCount} component(s) ${results.isSoftTag ? 'soft-' : ''}tagged`\n ) +\n tagExplanation +\n outputIfExists('new components', newDesc, addedComponents) +\n outputIfExists('changed components', changedDesc, changedComponents) +\n publishOutput() +\n softTagClarification\n );\n }\n}\n"]}
@@ -5,6 +5,7 @@ import { BitId } from '@teambit/legacy-bit-id';
5
5
  import { Consumer } from '@teambit/legacy/dist/consumer';
6
6
  import { ChildProcess } from 'child_process';
7
7
  import { PathLinux } from '@teambit/legacy/dist/utils/path';
8
+ import { CompilationInitiator } from '@teambit/compiler';
8
9
  import { Workspace } from '../workspace';
9
10
  export declare type WatcherProcessData = {
10
11
  watchProcess: ChildProcess;
@@ -29,6 +30,7 @@ export declare class Watcher {
29
30
  watchAll(opts?: {
30
31
  msgs: any;
31
32
  verbose?: boolean;
33
+ initiator?: CompilationInitiator;
32
34
  }): Promise<unknown>;
33
35
  private handleChange;
34
36
  private handleBitmapChanges;
@@ -188,7 +188,7 @@ class Watcher {
188
188
  var _opts$msgs5;
189
189
 
190
190
  const startTime = new Date().getTime();
191
- const buildResults = (await this.handleChange(filePath)) || [];
191
+ const buildResults = (await this.handleChange(filePath, opts === null || opts === void 0 ? void 0 : opts.initiator)) || [];
192
192
  const duration = new Date().getTime() - startTime;
193
193
  opts === null || opts === void 0 ? void 0 : (_opts$msgs5 = opts.msgs) === null || _opts$msgs5 === void 0 ? void 0 : _opts$msgs5.onChange(filePath, buildResults, _verbose, duration);
194
194
  }); // eslint-disable-next-line @typescript-eslint/no-misused-promises
@@ -217,7 +217,7 @@ class Watcher {
217
217
  });
218
218
  }
219
219
 
220
- async handleChange(filePath) {
220
+ async handleChange(filePath, initiator) {
221
221
  try {
222
222
  if (filePath.endsWith(_constants().BIT_MAP)) {
223
223
  const buildResults = await this.handleBitmapChanges();
@@ -233,7 +233,7 @@ class Watcher {
233
233
  return this.completeWatch();
234
234
  }
235
235
 
236
- const buildResults = await this.executeWatchOperationsOnComponent(componentId);
236
+ const buildResults = await this.executeWatchOperationsOnComponent(componentId, true, initiator);
237
237
  this.completeWatch();
238
238
  return buildResults;
239
239
  } catch (err) {
@@ -281,7 +281,7 @@ class Watcher {
281
281
  await this.workspace.triggerOnComponentRemove(componentId);
282
282
  }
283
283
 
284
- async executeWatchOperationsOnComponent(componentId, isChange = true) {
284
+ async executeWatchOperationsOnComponent(componentId, isChange = true, initiator) {
285
285
  if (this.isComponentWatchedExternally(componentId)) {
286
286
  // update capsule, once done, it automatically triggers the external watcher
287
287
  await this.workspace.get(componentId);
@@ -303,7 +303,7 @@ class Watcher {
303
303
  let buildResults;
304
304
 
305
305
  try {
306
- buildResults = isChange ? await this.workspace.triggerOnComponentChange(componentId) : await this.workspace.triggerOnComponentAdd(componentId);
306
+ buildResults = isChange ? await this.workspace.triggerOnComponentChange(componentId, initiator) : await this.workspace.triggerOnComponentAdd(componentId);
307
307
  } catch (err) {
308
308
  // do not exist the watch process on errors, just print them
309
309
  _logger().default.console(err.message || err);
@@ -1 +1 @@
1
- {"version":3,"sources":["watcher.ts"],"names":["Watcher","constructor","workspace","pubsub","trackDirs","verbose","multipleWatchers","watch","opts","Boolean","watchAll","msgs","consumer","_verbose","createWatcher","watcher","fsWatcher","onStart","Promise","resolve","reject","process","env","BIT_LOG","onAll","on","onReady","filePath","startTime","Date","getTime","buildResults","handleChange","duration","onChange","onAdd","p","onUnlink","err","onError","endsWith","BIT_MAP","handleBitmapChanges","completeWatch","componentId","getComponentIdAndClearItsCache","logger","debug","executeWatchOperationsOnComponent","msg","error","console","message","previewsTrackDirs","_reloadConsumer","setTrackDirs","newDirs","Object","keys","removedDirs","results","length","add","addResults","dir","push","flat","unwatch","executeWatchOperationsOnRemove","chalk","bold","toString","pub","WorkspaceAspect","id","creatOnComponentRemovedEvent","triggerOnComponentRemove","isChange","isComponentWatchedExternally","get","idStr","creatOnComponentChangeEvent","creatOnComponentAddEvent","triggerOnComponentChange","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","loader","stop","watcherData","find","m","componentIds","isEqual","_legacy","compilerId","relativeFile","getPathRelativeToConsumer","trackDir","findTrackDirByFilePathRecursively","clearComponentCache","component","componentMap","state","_consumer","getFilesRelativeToConsumer","parentDir","pathsToWatch","getPathsToWatch","chokidar","ignoreInitial","ignored","path","includes","sep","persistent","useFsEvents","componentsFromBitMap","bitMap","getAllComponents","COMPONENT_ORIGINS","AUTHORED","IMPORTED","all","map","bitId","getTrackDir","Error","resolveComponentId","paths","pathsAbsolute","toAbsolutePath"],"mappings":"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","sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport { dirname, sep } from 'path';\nimport { difference } from 'lodash';\nimport { ComponentID } from '@teambit/component';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { BIT_MAP, COMPONENT_ORIGINS } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport mapSeries from 'p-map-series';\nimport chalk from 'chalk';\nimport { ChildProcess } from 'child_process';\nimport chokidar, { FSWatcher } from 'chokidar';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { PathLinux, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { WorkspaceAspect } from '../';\nimport { OnComponentChangeEvent, OnComponentAddEvent, OnComponentRemovedEvent } from '../events';\nimport { Workspace } from '../workspace';\nimport { OnComponentEventResult } from '../on-component-events';\n\nexport type WatcherProcessData = { watchProcess: ChildProcess; compilerId: BitId; componentIds: BitId[] };\n\nexport class Watcher {\n private fsWatcher: FSWatcher;\n constructor(\n private workspace: Workspace,\n private pubsub: PubsubMain,\n private trackDirs: { [dir: PathLinux]: ComponentID } = {},\n private verbose = false,\n private multipleWatchers: WatcherProcessData[] = []\n ) {}\n\n async watch(opts: { msgs; verbose?: boolean }) {\n this.verbose = Boolean(opts.verbose);\n await this.watchAll({ msgs: opts.msgs, verbose: this.verbose });\n }\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async watchAll(opts?: { msgs; verbose?: boolean }) {\n // TODO: run build in the beginning of process (it's work like this in other envs)\n const _verbose = opts?.verbose || false;\n await this.createWatcher();\n const watcher = this.fsWatcher;\n opts?.msgs?.onStart(this.workspace);\n\n return new Promise((resolve, reject) => {\n // prefix your command with \"BIT_LOG=*\" to see all watch events\n if (process.env.BIT_LOG) {\n if (opts?.msgs?.onAll) watcher.on('all', opts?.msgs?.onAll);\n }\n watcher.on('ready', () => {\n opts?.msgs?.onReady(this.workspace, this.trackDirs, _verbose);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('change', async (filePath) => {\n const startTime = new Date().getTime();\n const buildResults = (await this.handleChange(filePath)) || [];\n const duration = new Date().getTime() - startTime;\n opts?.msgs?.onChange(filePath, buildResults, _verbose, duration);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('add', async (filePath) => {\n const startTime = new Date().getTime();\n const buildResults = (await this.handleChange(filePath)) || [];\n const duration = new Date().getTime() - startTime;\n opts?.msgs?.onAdd(filePath, buildResults, _verbose, duration);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('unlink', async (p) => {\n opts?.msgs?.onUnlink(p);\n await this.handleChange(p);\n });\n watcher.on('error', (err) => {\n opts?.msgs?.onError(err);\n reject(err);\n });\n });\n }\n\n private async handleChange(filePath: string): Promise<OnComponentEventResult[]> {\n try {\n if (filePath.endsWith(BIT_MAP)) {\n const buildResults = await this.handleBitmapChanges();\n this.completeWatch();\n return buildResults;\n }\n const componentId = await this.getComponentIdAndClearItsCache(filePath);\n if (!componentId) {\n logger.debug(`file ${filePath} is not part of any component, ignoring it`);\n return this.completeWatch();\n }\n\n const buildResults = await this.executeWatchOperationsOnComponent(componentId);\n this.completeWatch();\n return buildResults;\n } catch (err: any) {\n const msg = `watcher found an error while handling ${filePath}`;\n logger.error(msg, err);\n logger.console(`${msg}, ${err.message}`);\n return [];\n }\n }\n\n /**\n * if .bitmap changed, it's possible that a new component has been added. trigger onComponentAdd.\n */\n private async handleBitmapChanges(): Promise<OnComponentEventResult[]> {\n const previewsTrackDirs = { ...this.trackDirs };\n await this.workspace._reloadConsumer();\n await this.setTrackDirs();\n const newDirs: string[] = difference(Object.keys(this.trackDirs), Object.keys(previewsTrackDirs));\n const removedDirs: string[] = difference(Object.keys(previewsTrackDirs), Object.keys(this.trackDirs));\n const results: OnComponentEventResult[] = [];\n if (newDirs.length) {\n this.fsWatcher.add(newDirs);\n const addResults = await mapSeries(newDirs, (dir) =>\n this.executeWatchOperationsOnComponent(this.trackDirs[dir], false)\n );\n results.push(...addResults.flat());\n }\n if (removedDirs.length) {\n await this.fsWatcher.unwatch(removedDirs);\n await mapSeries(removedDirs, (dir) => this.executeWatchOperationsOnRemove(previewsTrackDirs[dir]));\n }\n return results;\n }\n\n private async executeWatchOperationsOnRemove(componentId: ComponentID) {\n logger.debug(`running OnComponentRemove hook for ${chalk.bold(componentId.toString())}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentRemovedEvent(componentId.toString()));\n await this.workspace.triggerOnComponentRemove(componentId);\n }\n\n private async executeWatchOperationsOnComponent(\n componentId: ComponentID,\n isChange = true\n ): Promise<OnComponentEventResult[]> {\n if (this.isComponentWatchedExternally(componentId)) {\n // update capsule, once done, it automatically triggers the external watcher\n await this.workspace.get(componentId);\n return [];\n }\n const idStr = componentId.toString();\n\n if (isChange) {\n logger.debug(`running OnComponentChange hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentChangeEvent(idStr, 'OnComponentChange'));\n } else {\n logger.debug(`running OnComponentAdd hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentAddEvent(idStr, 'OnComponentAdd'));\n }\n\n let buildResults: OnComponentEventResult[];\n try {\n buildResults = isChange\n ? await this.workspace.triggerOnComponentChange(componentId)\n : await this.workspace.triggerOnComponentAdd(componentId);\n } catch (err: any) {\n // do not exist the watch process on errors, just print them\n logger.console(err.message || err);\n return [];\n }\n if (buildResults && buildResults.length) {\n return buildResults;\n }\n logger.console(`${idStr} doesn't have a compiler, nothing to build`);\n return [];\n }\n\n private creatOnComponentRemovedEvent(idStr) {\n return new OnComponentRemovedEvent(Date.now(), idStr);\n }\n\n private creatOnComponentChangeEvent(idStr, hook) {\n return new OnComponentChangeEvent(Date.now(), idStr, hook);\n }\n\n private creatOnComponentAddEvent(idStr, hook) {\n return new OnComponentAddEvent(Date.now(), idStr, hook);\n }\n\n private completeWatch() {\n loader.stop();\n return [];\n }\n\n private isComponentWatchedExternally(componentId: ComponentID) {\n const watcherData = this.multipleWatchers.find((m) => m.componentIds.find((id) => id.isEqual(componentId._legacy)));\n if (watcherData) {\n logger.debug(`${componentId.toString()} is watched by ${watcherData.compilerId.toString()}`);\n return true;\n }\n return false;\n }\n\n /**\n * if a file was added/remove, once the component is loaded, it changes .bitmap, and then the\n * entire cache is invalidated and the consumer is reloaded.\n * when a file just changed, no need to reload the consumer, it is enough to just delete the\n * component from the cache (both, workspace and consumer)\n */\n private async getComponentIdAndClearItsCache(filePath: string): Promise<ComponentID | null> {\n const relativeFile = pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(filePath));\n const trackDir = this.findTrackDirByFilePathRecursively(relativeFile);\n if (!trackDir) {\n // the file is not part of any component. If it was a new component, or a new file of\n // existing component, then, handleBitmapChanges() should deal with it.\n return null;\n }\n const componentId = this.trackDirs[trackDir];\n this.workspace.clearComponentCache(componentId);\n const component = await this.workspace.get(componentId);\n const componentMap: ComponentMap = component.state._consumer.componentMap;\n if (componentMap.getFilesRelativeToConsumer().find((p) => p === relativeFile)) {\n return componentId;\n }\n // the file is inside the component dir but it's ignored. (e.g. it's in IGNORE_LIST)\n return null;\n }\n\n private findTrackDirByFilePathRecursively(filePath: string): string | null {\n if (this.trackDirs[filePath]) return filePath;\n const parentDir = dirname(filePath);\n if (parentDir === filePath) return null;\n return this.findTrackDirByFilePathRecursively(parentDir);\n }\n\n private async createWatcher() {\n const pathsToWatch = await this.getPathsToWatch();\n this.fsWatcher = chokidar.watch(pathsToWatch, {\n ignoreInitial: true,\n // Using the function way since the regular way not working as expected\n // It might be solved when upgrading to chokidar > 3.0.0\n // See:\n // https://github.com/paulmillr/chokidar/issues/773\n // https://github.com/paulmillr/chokidar/issues/492\n // https://github.com/paulmillr/chokidar/issues/724\n ignored: (path) => {\n // Ignore package.json temporarily since it cerates endless loop since it's re-written after each build\n if (path.includes(`${sep}node_modules${sep}`) || path.includes(`${sep}package.json`)) {\n return true;\n }\n return false;\n },\n persistent: true,\n useFsEvents: false,\n });\n }\n\n async setTrackDirs() {\n this.trackDirs = {};\n const componentsFromBitMap = this.consumer.bitMap.getAllComponents([\n COMPONENT_ORIGINS.AUTHORED,\n COMPONENT_ORIGINS.IMPORTED,\n ]);\n await Promise.all(\n componentsFromBitMap.map(async (componentMap) => {\n const bitId = componentMap.id;\n const trackDir = componentMap.getTrackDir();\n if (!trackDir) throw new Error(`${bitId.toString()} has no rootDir, which is invalid in Harmony`);\n const componentId = await this.workspace.resolveComponentId(bitId);\n this.trackDirs[trackDir] = componentId;\n })\n );\n }\n\n private async getPathsToWatch(): Promise<PathOsBasedAbsolute[]> {\n await this.setTrackDirs();\n const paths = [...Object.keys(this.trackDirs), BIT_MAP];\n const pathsAbsolute = paths.map((dir) => this.consumer.toAbsolutePath(dir));\n return pathsAbsolute;\n }\n}\n"]}
1
+ {"version":3,"sources":["watcher.ts"],"names":["Watcher","constructor","workspace","pubsub","trackDirs","verbose","multipleWatchers","watch","opts","Boolean","watchAll","msgs","consumer","_verbose","createWatcher","watcher","fsWatcher","onStart","Promise","resolve","reject","process","env","BIT_LOG","onAll","on","onReady","filePath","startTime","Date","getTime","buildResults","handleChange","initiator","duration","onChange","onAdd","p","onUnlink","err","onError","endsWith","BIT_MAP","handleBitmapChanges","completeWatch","componentId","getComponentIdAndClearItsCache","logger","debug","executeWatchOperationsOnComponent","msg","error","console","message","previewsTrackDirs","_reloadConsumer","setTrackDirs","newDirs","Object","keys","removedDirs","results","length","add","addResults","dir","push","flat","unwatch","executeWatchOperationsOnRemove","chalk","bold","toString","pub","WorkspaceAspect","id","creatOnComponentRemovedEvent","triggerOnComponentRemove","isChange","isComponentWatchedExternally","get","idStr","creatOnComponentChangeEvent","creatOnComponentAddEvent","triggerOnComponentChange","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","loader","stop","watcherData","find","m","componentIds","isEqual","_legacy","compilerId","relativeFile","getPathRelativeToConsumer","trackDir","findTrackDirByFilePathRecursively","clearComponentCache","component","componentMap","state","_consumer","getFilesRelativeToConsumer","parentDir","pathsToWatch","getPathsToWatch","chokidar","ignoreInitial","ignored","path","includes","sep","persistent","useFsEvents","componentsFromBitMap","bitMap","getAllComponents","COMPONENT_ORIGINS","AUTHORED","IMPORTED","all","map","bitId","getTrackDir","Error","resolveComponentId","paths","pathsAbsolute","toAbsolutePath"],"mappings":"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","sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport { dirname, sep } from 'path';\nimport { difference } from 'lodash';\nimport { ComponentID } from '@teambit/component';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { BIT_MAP, COMPONENT_ORIGINS } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport mapSeries from 'p-map-series';\nimport chalk from 'chalk';\nimport { ChildProcess } from 'child_process';\nimport chokidar, { FSWatcher } from 'chokidar';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { PathLinux, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport { WorkspaceAspect } from '../';\nimport { OnComponentChangeEvent, OnComponentAddEvent, OnComponentRemovedEvent } from '../events';\nimport { Workspace } from '../workspace';\nimport { OnComponentEventResult } from '../on-component-events';\n\nexport type WatcherProcessData = { watchProcess: ChildProcess; compilerId: BitId; componentIds: BitId[] };\n\nexport class Watcher {\n private fsWatcher: FSWatcher;\n constructor(\n private workspace: Workspace,\n private pubsub: PubsubMain,\n private trackDirs: { [dir: PathLinux]: ComponentID } = {},\n private verbose = false,\n private multipleWatchers: WatcherProcessData[] = []\n ) {}\n\n async watch(opts: { msgs; verbose?: boolean }) {\n this.verbose = Boolean(opts.verbose);\n await this.watchAll({ msgs: opts.msgs, verbose: this.verbose });\n }\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async watchAll(opts?: { msgs; verbose?: boolean; initiator?: CompilationInitiator }) {\n // TODO: run build in the beginning of process (it's work like this in other envs)\n const _verbose = opts?.verbose || false;\n await this.createWatcher();\n const watcher = this.fsWatcher;\n opts?.msgs?.onStart(this.workspace);\n\n return new Promise((resolve, reject) => {\n // prefix your command with \"BIT_LOG=*\" to see all watch events\n if (process.env.BIT_LOG) {\n if (opts?.msgs?.onAll) watcher.on('all', opts?.msgs?.onAll);\n }\n watcher.on('ready', () => {\n opts?.msgs?.onReady(this.workspace, this.trackDirs, _verbose);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('change', async (filePath) => {\n const startTime = new Date().getTime();\n const buildResults = (await this.handleChange(filePath, opts?.initiator)) || [];\n const duration = new Date().getTime() - startTime;\n opts?.msgs?.onChange(filePath, buildResults, _verbose, duration);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('add', async (filePath) => {\n const startTime = new Date().getTime();\n const buildResults = (await this.handleChange(filePath)) || [];\n const duration = new Date().getTime() - startTime;\n opts?.msgs?.onAdd(filePath, buildResults, _verbose, duration);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('unlink', async (p) => {\n opts?.msgs?.onUnlink(p);\n await this.handleChange(p);\n });\n watcher.on('error', (err) => {\n opts?.msgs?.onError(err);\n reject(err);\n });\n });\n }\n\n private async handleChange(filePath: string, initiator?: CompilationInitiator): Promise<OnComponentEventResult[]> {\n try {\n if (filePath.endsWith(BIT_MAP)) {\n const buildResults = await this.handleBitmapChanges();\n this.completeWatch();\n return buildResults;\n }\n const componentId = await this.getComponentIdAndClearItsCache(filePath);\n if (!componentId) {\n logger.debug(`file ${filePath} is not part of any component, ignoring it`);\n return this.completeWatch();\n }\n\n const buildResults = await this.executeWatchOperationsOnComponent(componentId, true, initiator);\n this.completeWatch();\n return buildResults;\n } catch (err: any) {\n const msg = `watcher found an error while handling ${filePath}`;\n logger.error(msg, err);\n logger.console(`${msg}, ${err.message}`);\n return [];\n }\n }\n\n /**\n * if .bitmap changed, it's possible that a new component has been added. trigger onComponentAdd.\n */\n private async handleBitmapChanges(): Promise<OnComponentEventResult[]> {\n const previewsTrackDirs = { ...this.trackDirs };\n await this.workspace._reloadConsumer();\n await this.setTrackDirs();\n const newDirs: string[] = difference(Object.keys(this.trackDirs), Object.keys(previewsTrackDirs));\n const removedDirs: string[] = difference(Object.keys(previewsTrackDirs), Object.keys(this.trackDirs));\n const results: OnComponentEventResult[] = [];\n if (newDirs.length) {\n this.fsWatcher.add(newDirs);\n const addResults = await mapSeries(newDirs, (dir) =>\n this.executeWatchOperationsOnComponent(this.trackDirs[dir], false)\n );\n results.push(...addResults.flat());\n }\n if (removedDirs.length) {\n await this.fsWatcher.unwatch(removedDirs);\n await mapSeries(removedDirs, (dir) => this.executeWatchOperationsOnRemove(previewsTrackDirs[dir]));\n }\n return results;\n }\n\n private async executeWatchOperationsOnRemove(componentId: ComponentID) {\n logger.debug(`running OnComponentRemove hook for ${chalk.bold(componentId.toString())}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentRemovedEvent(componentId.toString()));\n await this.workspace.triggerOnComponentRemove(componentId);\n }\n\n private async executeWatchOperationsOnComponent(\n componentId: ComponentID,\n isChange = true,\n initiator?: CompilationInitiator\n ): Promise<OnComponentEventResult[]> {\n if (this.isComponentWatchedExternally(componentId)) {\n // update capsule, once done, it automatically triggers the external watcher\n await this.workspace.get(componentId);\n return [];\n }\n const idStr = componentId.toString();\n\n if (isChange) {\n logger.debug(`running OnComponentChange hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentChangeEvent(idStr, 'OnComponentChange'));\n } else {\n logger.debug(`running OnComponentAdd hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentAddEvent(idStr, 'OnComponentAdd'));\n }\n\n let buildResults: OnComponentEventResult[];\n try {\n buildResults = isChange\n ? await this.workspace.triggerOnComponentChange(componentId, initiator)\n : await this.workspace.triggerOnComponentAdd(componentId);\n } catch (err: any) {\n // do not exist the watch process on errors, just print them\n logger.console(err.message || err);\n return [];\n }\n if (buildResults && buildResults.length) {\n return buildResults;\n }\n logger.console(`${idStr} doesn't have a compiler, nothing to build`);\n return [];\n }\n\n private creatOnComponentRemovedEvent(idStr) {\n return new OnComponentRemovedEvent(Date.now(), idStr);\n }\n\n private creatOnComponentChangeEvent(idStr, hook) {\n return new OnComponentChangeEvent(Date.now(), idStr, hook);\n }\n\n private creatOnComponentAddEvent(idStr, hook) {\n return new OnComponentAddEvent(Date.now(), idStr, hook);\n }\n\n private completeWatch() {\n loader.stop();\n return [];\n }\n\n private isComponentWatchedExternally(componentId: ComponentID) {\n const watcherData = this.multipleWatchers.find((m) => m.componentIds.find((id) => id.isEqual(componentId._legacy)));\n if (watcherData) {\n logger.debug(`${componentId.toString()} is watched by ${watcherData.compilerId.toString()}`);\n return true;\n }\n return false;\n }\n\n /**\n * if a file was added/remove, once the component is loaded, it changes .bitmap, and then the\n * entire cache is invalidated and the consumer is reloaded.\n * when a file just changed, no need to reload the consumer, it is enough to just delete the\n * component from the cache (both, workspace and consumer)\n */\n private async getComponentIdAndClearItsCache(filePath: string): Promise<ComponentID | null> {\n const relativeFile = pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(filePath));\n const trackDir = this.findTrackDirByFilePathRecursively(relativeFile);\n if (!trackDir) {\n // the file is not part of any component. If it was a new component, or a new file of\n // existing component, then, handleBitmapChanges() should deal with it.\n return null;\n }\n const componentId = this.trackDirs[trackDir];\n this.workspace.clearComponentCache(componentId);\n const component = await this.workspace.get(componentId);\n const componentMap: ComponentMap = component.state._consumer.componentMap;\n if (componentMap.getFilesRelativeToConsumer().find((p) => p === relativeFile)) {\n return componentId;\n }\n // the file is inside the component dir but it's ignored. (e.g. it's in IGNORE_LIST)\n return null;\n }\n\n private findTrackDirByFilePathRecursively(filePath: string): string | null {\n if (this.trackDirs[filePath]) return filePath;\n const parentDir = dirname(filePath);\n if (parentDir === filePath) return null;\n return this.findTrackDirByFilePathRecursively(parentDir);\n }\n\n private async createWatcher() {\n const pathsToWatch = await this.getPathsToWatch();\n this.fsWatcher = chokidar.watch(pathsToWatch, {\n ignoreInitial: true,\n // Using the function way since the regular way not working as expected\n // It might be solved when upgrading to chokidar > 3.0.0\n // See:\n // https://github.com/paulmillr/chokidar/issues/773\n // https://github.com/paulmillr/chokidar/issues/492\n // https://github.com/paulmillr/chokidar/issues/724\n ignored: (path) => {\n // Ignore package.json temporarily since it cerates endless loop since it's re-written after each build\n if (path.includes(`${sep}node_modules${sep}`) || path.includes(`${sep}package.json`)) {\n return true;\n }\n return false;\n },\n persistent: true,\n useFsEvents: false,\n });\n }\n\n async setTrackDirs() {\n this.trackDirs = {};\n const componentsFromBitMap = this.consumer.bitMap.getAllComponents([\n COMPONENT_ORIGINS.AUTHORED,\n COMPONENT_ORIGINS.IMPORTED,\n ]);\n await Promise.all(\n componentsFromBitMap.map(async (componentMap) => {\n const bitId = componentMap.id;\n const trackDir = componentMap.getTrackDir();\n if (!trackDir) throw new Error(`${bitId.toString()} has no rootDir, which is invalid in Harmony`);\n const componentId = await this.workspace.resolveComponentId(bitId);\n this.trackDirs[trackDir] = componentId;\n })\n );\n }\n\n private async getPathsToWatch(): Promise<PathOsBasedAbsolute[]> {\n await this.setTrackDirs();\n const paths = [...Object.keys(this.trackDirs), BIT_MAP];\n const pathsAbsolute = paths.map((dir) => this.consumer.toAbsolutePath(dir));\n return pathsAbsolute;\n }\n}\n"]}
@@ -24,6 +24,7 @@ import { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extensio
24
24
  import { PathOsBased, PathOsBasedRelative, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';
25
25
  import ConsumerComponent from '@teambit/legacy/dist/consumer/component';
26
26
  import type { ComponentLog } from '@teambit/legacy/dist/scope/models/model-component';
27
+ import { CompilationInitiator } from '@teambit/compiler';
27
28
  import { OnComponentAdd, OnComponentChange, OnComponentEventResult, OnComponentLoad, OnComponentRemove } from './on-component-events';
28
29
  import { WorkspaceExtConfig } from './types';
29
30
  import { Watcher } from './watch/watcher';
@@ -121,7 +122,7 @@ export declare class Workspace implements ComponentFactory {
121
122
  getEnvSystemDescriptor(component: Component): Promise<AspectData>;
122
123
  clearCache(): void;
123
124
  clearComponentCache(id: ComponentID): void;
124
- triggerOnComponentChange(id: ComponentID): Promise<OnComponentEventResult[]>;
125
+ triggerOnComponentChange(id: ComponentID, initiator?: CompilationInitiator): Promise<OnComponentEventResult[]>;
125
126
  triggerOnComponentAdd(id: ComponentID): Promise<OnComponentEventResult[]>;
126
127
  triggerOnComponentRemove(id: ComponentID): Promise<OnComponentEventResult[]>;
127
128
  getState(id: ComponentID, hash: string): Promise<import("@teambit/component").State>;
package/dist/workspace.js CHANGED
@@ -717,7 +717,7 @@ class Workspace {
717
717
  this.componentList = new (_componentsList().default)(this.consumer);
718
718
  }
719
719
 
720
- async triggerOnComponentChange(id) {
720
+ async triggerOnComponentChange(id, initiator) {
721
721
  const component = await this.get(id); // if a new file was added, upon component-load, its .bitmap entry is updated to include the
722
722
  // new file. write these changes to the .bitmap file so then other processes have access to
723
723
  // this new file. If the .bitmap wasn't change, it won't do anything.
@@ -727,7 +727,7 @@ class Workspace {
727
727
 
728
728
  const results = [];
729
729
  await (0, _pMapSeries().default)(onChangeEntries, async ([extension, onChangeFunc]) => {
730
- const onChangeResult = await onChangeFunc(component);
730
+ const onChangeResult = await onChangeFunc(component, initiator);
731
731
  results.push({
732
732
  extensionId: extension,
733
733
  results: onChangeResult
@@ -1241,9 +1241,12 @@ class Workspace {
1241
1241
  } = await this.groupComponentsByWorkspaceAndScope(aspects); // load the scope first because we might need it for custom envs that extend external aspects
1242
1242
 
1243
1243
  const scopeIds = scopeComps.map(aspect => aspect.id.toString());
1244
- await this.scope.loadAspects(scopeIds, throwOnError);
1245
1244
  const workspaceAspects = await this.requireComponents(workspaceComps);
1246
- await this.aspectLoader.loadRequireableExtensions(workspaceAspects, throwOnError);
1245
+ const workspaceManifests = await this.aspectLoader.getManifestsFromRequireableExtensions(workspaceAspects, throwOnError);
1246
+ const manifestsIds = workspaceManifests.map(m => m.id);
1247
+ const scopeManifests = await this.scope.getManifestsGraphRecursively(scopeIds, (0, _lodash().compact)(manifestsIds), throwOnError);
1248
+ const allManifests = [...scopeManifests, ...workspaceManifests];
1249
+ await this.aspectLoader.loadExtensionsByManifests(allManifests, throwOnError);
1247
1250
  }
1248
1251
 
1249
1252
  async resolveAspects(runtimeName, componentIds) {
@@ -1390,7 +1393,13 @@ class Workspace {
1390
1393
  }
1391
1394
 
1392
1395
  const requireFunc = async () => {
1393
- // eslint-disable-next-line global-require, import/no-dynamic-require
1396
+ const plugins = this.aspectLoader.getPlugins(component, localPath);
1397
+
1398
+ if (plugins.has()) {
1399
+ return plugins.load(_cli().MainRuntime.name);
1400
+ } // eslint-disable-next-line global-require, import/no-dynamic-require
1401
+
1402
+
1394
1403
  const aspect = require(localPath); // require aspect runtimes
1395
1404
 
1396
1405