@kontur.candy/tools 2.221.0 → 2.222.0
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/distr/Common/ModelPath/AbsoluteModelFieldPath.js +1 -1
- package/distr/Common/ModelPath/AbsoluteModelFieldPath.js.map +1 -1
- package/distr/Common/ModelPath/ModelPathHelper.js +6 -0
- package/distr/Common/ModelPath/ModelPathHelper.js.map +1 -1
- package/distr/Common/SerializationUtils.js +14 -0
- package/distr/Common/SerializationUtils.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +4 -6
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +34 -29
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +9 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +11 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +2 -2
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js.map +1 -1
- package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js +10 -1
- package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js.map +1 -1
- package/distr/Tools/src/Commons/GitUtils.js +17 -0
- package/distr/Tools/src/Commons/GitUtils.js.map +1 -0
- package/package.json +1 -1
|
@@ -51,5 +51,5 @@ class AbsoluteModelFieldPath {
|
|
|
51
51
|
exports.AbsoluteModelFieldPath = AbsoluteModelFieldPath;
|
|
52
52
|
_AbsoluteModelFieldPath = AbsoluteModelFieldPath;
|
|
53
53
|
AbsoluteModelFieldPath.extraFieldNames = ["\\$errorCount", "\\$warningCount"];
|
|
54
|
-
AbsoluteModelFieldPath.fieldExtractRegex = new RegExp(`^(.*)\\.(${_AbsoluteModelFieldPath.extraFieldNames.concat((0, _CoreTypes.getKnownViewModelFieldNames)()).join("|")})$`);
|
|
54
|
+
AbsoluteModelFieldPath.fieldExtractRegex = new RegExp(`^(.*)\\.(${_AbsoluteModelFieldPath.extraFieldNames.concat(...(0, _CoreTypes.getKnownViewModelFieldNames)().values()).join("|")})$`);
|
|
55
55
|
//# sourceMappingURL=AbsoluteModelFieldPath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbsoluteModelFieldPath.js","names":["_CoreTypes","require","_hashUtils","_TypingUtils","_IterableUtils","_EachCurrentCollision","_ModelPath","_AbsoluteModelFieldPath","AbsoluteModelFieldPath","constructor","path","fieldName","field","getHash","getSimpleHashByString","isEquals","modelPath","eachCurrentCollision","EachCurrentCollision","AreSame","createFromString","pathWithFieldName","defaultFieldName","createFrom","createAbsolute","createFromMask","multiplicitySymbol","createAbsoluteFromMask","modelPathFactory","_match$","_ref","match","fieldExtractRegex","exec","undefined","reject","toString","includeLeadingSlash","toLegacyPath","lastToken","IterUtils","last","getPathParts","isLastTokenAnInstanceOrMultiplicity","PathTokens","isInstanceTokenOrInstancesSpec","isMultiToken","slashIfRequired","isNotNullOrEmpty","dotIfRequired","exports","extraFieldNames","RegExp","concat","getKnownViewModelFieldNames","join"],"sources":["../../../../Common/ModelPath/AbsoluteModelFieldPath.ts"],"sourcesContent":["import { getKnownViewModelFieldNames, ViewModelFieldName } from \"../../Engine/src/Engine/Core/CoreTypes\";\nimport { getSimpleHashByString } from \"../hashUtils\";\nimport { isNotNullOrEmpty, reject } from \"../TypingUtils\";\nimport { IterUtils } from \"../IterableUtils\";\n\nimport { EachCurrentCollision } from \"./EachCurrentCollision\";\nimport { IEquatable } from \"./IEquatable\";\nimport {\n AbsoluteModelPath,\n AbsoluteResolvedModelPath,\n createAbsolute,\n createAbsoluteFromMask,\n PathToken,\n PathTokens,\n} from \"./ModelPath\";\n\nexport type ViewModelFieldNameWithCustomFields = ViewModelFieldName | \"$errorCount\" | \"$warningCount\" | \"\";\n\nexport class AbsoluteModelFieldPath implements IEquatable<AbsoluteModelFieldPath> {\n private static readonly extraFieldNames = [\"\\\\$errorCount\", \"\\\\$warningCount\"];\n private static readonly fieldExtractRegex = new RegExp(\n `^(.*)\\\\.(${AbsoluteModelFieldPath.extraFieldNames.concat(getKnownViewModelFieldNames()).join(\"|\")})$`\n );\n public readonly path: AbsoluteModelPath;\n public readonly field: ViewModelFieldNameWithCustomFields;\n\n public constructor(path: AbsoluteModelPath, fieldName: ViewModelFieldNameWithCustomFields) {\n this.path = path;\n this.field = fieldName;\n }\n\n public getHash(): number {\n return this.path.getHash() + getSimpleHashByString(this.field);\n }\n\n public isEquals(\n modelPath: AbsoluteModelFieldPath,\n eachCurrentCollision: EachCurrentCollision = EachCurrentCollision.AreSame\n ): boolean {\n return this.path.isEquals(modelPath.path, eachCurrentCollision) && this.field === modelPath.field;\n }\n\n public static createFromString(\n pathWithFieldName: string,\n defaultFieldName?: ViewModelFieldNameWithCustomFields\n ): AbsoluteModelFieldPath {\n return this.createFrom(pathWithFieldName, path => createAbsolute(path), defaultFieldName);\n }\n\n public static createFromMask(\n pathWithFieldName: string,\n multiplicitySymbol: PathToken,\n defaultFieldName?: ViewModelFieldNameWithCustomFields\n ): AbsoluteModelFieldPath {\n return this.createFrom(\n pathWithFieldName,\n path => createAbsoluteFromMask(path, multiplicitySymbol),\n defaultFieldName\n );\n }\n\n private static createFrom<TModelPath extends AbsoluteModelPath | AbsoluteResolvedModelPath>(\n pathWithFieldName: string,\n modelPathFactory: (path: string) => TModelPath,\n defaultFieldName: ViewModelFieldNameWithCustomFields = \"value\"\n ): AbsoluteModelFieldPath {\n const match = AbsoluteModelFieldPath.fieldExtractRegex.exec(pathWithFieldName);\n const path = match != undefined ? (match[1] ?? reject()) : pathWithFieldName;\n const field =\n match != undefined ? ((match[2] as ViewModelFieldName | undefined) ?? reject()) : defaultFieldName;\n\n return new AbsoluteModelFieldPath(modelPathFactory(path), field);\n }\n\n public toString(includeLeadingSlash: boolean = false): string {\n return `${includeLeadingSlash ? \"/\" : \"\"}${this.path.toLegacyPath()}.${this.field}`;\n }\n\n public toLegacyPath(): string {\n const lastToken = IterUtils.last(this.path.getPathParts());\n const isLastTokenAnInstanceOrMultiplicity =\n PathTokens.isInstanceTokenOrInstancesSpec(lastToken) || PathTokens.isMultiToken(lastToken);\n const slashIfRequired = isLastTokenAnInstanceOrMultiplicity && isNotNullOrEmpty(this.field) ? \"/\" : \"\";\n const dotIfRequired = isNotNullOrEmpty(this.field) ? \".\" : \"\";\n return `${this.path.toLegacyPath()}${slashIfRequired}${dotIfRequired}${this.field}`;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAEA,IAAAI,qBAAA,GAAAJ,OAAA;AAEA,IAAAK,UAAA,GAAAL,OAAA;AAOqB,IAAAM,uBAAA;AAId,MAAMC,sBAAsB,CAA+C;
|
|
1
|
+
{"version":3,"file":"AbsoluteModelFieldPath.js","names":["_CoreTypes","require","_hashUtils","_TypingUtils","_IterableUtils","_EachCurrentCollision","_ModelPath","_AbsoluteModelFieldPath","AbsoluteModelFieldPath","constructor","path","fieldName","field","getHash","getSimpleHashByString","isEquals","modelPath","eachCurrentCollision","EachCurrentCollision","AreSame","createFromString","pathWithFieldName","defaultFieldName","createFrom","createAbsolute","createFromMask","multiplicitySymbol","createAbsoluteFromMask","modelPathFactory","_match$","_ref","match","fieldExtractRegex","exec","undefined","reject","toString","includeLeadingSlash","toLegacyPath","lastToken","IterUtils","last","getPathParts","isLastTokenAnInstanceOrMultiplicity","PathTokens","isInstanceTokenOrInstancesSpec","isMultiToken","slashIfRequired","isNotNullOrEmpty","dotIfRequired","exports","extraFieldNames","RegExp","concat","getKnownViewModelFieldNames","values","join"],"sources":["../../../../Common/ModelPath/AbsoluteModelFieldPath.ts"],"sourcesContent":["import { getKnownViewModelFieldNames, ViewModelFieldName } from \"../../Engine/src/Engine/Core/CoreTypes\";\nimport { getSimpleHashByString } from \"../hashUtils\";\nimport { isNotNullOrEmpty, reject } from \"../TypingUtils\";\nimport { IterUtils } from \"../IterableUtils\";\n\nimport { EachCurrentCollision } from \"./EachCurrentCollision\";\nimport { IEquatable } from \"./IEquatable\";\nimport {\n AbsoluteModelPath,\n AbsoluteResolvedModelPath,\n createAbsolute,\n createAbsoluteFromMask,\n PathToken,\n PathTokens,\n} from \"./ModelPath\";\n\nexport type ViewModelFieldNameWithCustomFields = ViewModelFieldName | \"$errorCount\" | \"$warningCount\" | \"\";\n\nexport class AbsoluteModelFieldPath implements IEquatable<AbsoluteModelFieldPath> {\n private static readonly extraFieldNames = [\"\\\\$errorCount\", \"\\\\$warningCount\"];\n private static readonly fieldExtractRegex = new RegExp(\n `^(.*)\\\\.(${AbsoluteModelFieldPath.extraFieldNames\n .concat(...getKnownViewModelFieldNames().values())\n .join(\"|\")})$`\n );\n public readonly path: AbsoluteModelPath;\n public readonly field: ViewModelFieldNameWithCustomFields;\n\n public constructor(path: AbsoluteModelPath, fieldName: ViewModelFieldNameWithCustomFields) {\n this.path = path;\n this.field = fieldName;\n }\n\n public getHash(): number {\n return this.path.getHash() + getSimpleHashByString(this.field);\n }\n\n public isEquals(\n modelPath: AbsoluteModelFieldPath,\n eachCurrentCollision: EachCurrentCollision = EachCurrentCollision.AreSame\n ): boolean {\n return this.path.isEquals(modelPath.path, eachCurrentCollision) && this.field === modelPath.field;\n }\n\n public static createFromString(\n pathWithFieldName: string,\n defaultFieldName?: ViewModelFieldNameWithCustomFields\n ): AbsoluteModelFieldPath {\n return this.createFrom(pathWithFieldName, path => createAbsolute(path), defaultFieldName);\n }\n\n public static createFromMask(\n pathWithFieldName: string,\n multiplicitySymbol: PathToken,\n defaultFieldName?: ViewModelFieldNameWithCustomFields\n ): AbsoluteModelFieldPath {\n return this.createFrom(\n pathWithFieldName,\n path => createAbsoluteFromMask(path, multiplicitySymbol),\n defaultFieldName\n );\n }\n\n private static createFrom<TModelPath extends AbsoluteModelPath | AbsoluteResolvedModelPath>(\n pathWithFieldName: string,\n modelPathFactory: (path: string) => TModelPath,\n defaultFieldName: ViewModelFieldNameWithCustomFields = \"value\"\n ): AbsoluteModelFieldPath {\n const match = AbsoluteModelFieldPath.fieldExtractRegex.exec(pathWithFieldName);\n const path = match != undefined ? (match[1] ?? reject()) : pathWithFieldName;\n const field =\n match != undefined ? ((match[2] as ViewModelFieldName | undefined) ?? reject()) : defaultFieldName;\n\n return new AbsoluteModelFieldPath(modelPathFactory(path), field);\n }\n\n public toString(includeLeadingSlash: boolean = false): string {\n return `${includeLeadingSlash ? \"/\" : \"\"}${this.path.toLegacyPath()}.${this.field}`;\n }\n\n public toLegacyPath(): string {\n const lastToken = IterUtils.last(this.path.getPathParts());\n const isLastTokenAnInstanceOrMultiplicity =\n PathTokens.isInstanceTokenOrInstancesSpec(lastToken) || PathTokens.isMultiToken(lastToken);\n const slashIfRequired = isLastTokenAnInstanceOrMultiplicity && isNotNullOrEmpty(this.field) ? \"/\" : \"\";\n const dotIfRequired = isNotNullOrEmpty(this.field) ? \".\" : \"\";\n return `${this.path.toLegacyPath()}${slashIfRequired}${dotIfRequired}${this.field}`;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAEA,IAAAI,qBAAA,GAAAJ,OAAA;AAEA,IAAAK,UAAA,GAAAL,OAAA;AAOqB,IAAAM,uBAAA;AAId,MAAMC,sBAAsB,CAA+C;EAUvEC,WAAWA,CAACC,IAAuB,EAAEC,SAA6C,EAAE;IAAA,KAH3ED,IAAI;IAAA,KACJE,KAAK;IAGjB,IAAI,CAACF,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACE,KAAK,GAAGD,SAAS;EAC1B;EAEOE,OAAOA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACH,IAAI,CAACG,OAAO,CAAC,CAAC,GAAG,IAAAC,gCAAqB,EAAC,IAAI,CAACF,KAAK,CAAC;EAClE;EAEOG,QAAQA,CACXC,SAAiC,EACjCC,oBAA0C,GAAGC,0CAAoB,CAACC,OAAO,EAClE;IACP,OAAO,IAAI,CAACT,IAAI,CAACK,QAAQ,CAACC,SAAS,CAACN,IAAI,EAAEO,oBAAoB,CAAC,IAAI,IAAI,CAACL,KAAK,KAAKI,SAAS,CAACJ,KAAK;EACrG;EAEA,OAAcQ,gBAAgBA,CAC1BC,iBAAyB,EACzBC,gBAAqD,EAC/B;IACtB,OAAO,IAAI,CAACC,UAAU,CAACF,iBAAiB,EAAEX,IAAI,IAAI,IAAAc,yBAAc,EAACd,IAAI,CAAC,EAAEY,gBAAgB,CAAC;EAC7F;EAEA,OAAcG,cAAcA,CACxBJ,iBAAyB,EACzBK,kBAA6B,EAC7BJ,gBAAqD,EAC/B;IACtB,OAAO,IAAI,CAACC,UAAU,CAClBF,iBAAiB,EACjBX,IAAI,IAAI,IAAAiB,iCAAsB,EAACjB,IAAI,EAAEgB,kBAAkB,CAAC,EACxDJ,gBACJ,CAAC;EACL;EAEA,OAAeC,UAAUA,CACrBF,iBAAyB,EACzBO,gBAA8C,EAC9CN,gBAAoD,GAAG,OAAO,EACxC;IAAA,IAAAO,OAAA,EAAAC,IAAA;IACtB,MAAMC,KAAK,GAAGvB,sBAAsB,CAACwB,iBAAiB,CAACC,IAAI,CAACZ,iBAAiB,CAAC;IAC9E,MAAMX,IAAI,GAAGqB,KAAK,IAAIG,SAAS,IAAAL,OAAA,GAAIE,KAAK,CAAC,CAAC,CAAC,cAAAF,OAAA,cAAAA,OAAA,GAAI,IAAAM,mBAAM,EAAC,CAAC,GAAId,iBAAiB;IAC5E,MAAMT,KAAK,GACPmB,KAAK,IAAIG,SAAS,IAAAJ,IAAA,GAAKC,KAAK,CAAC,CAAC,CAAC,cAAAD,IAAA,cAAAA,IAAA,GAAuC,IAAAK,mBAAM,EAAC,CAAC,GAAIb,gBAAgB;IAEtG,OAAO,IAAId,sBAAsB,CAACoB,gBAAgB,CAAClB,IAAI,CAAC,EAAEE,KAAK,CAAC;EACpE;EAEOwB,QAAQA,CAACC,mBAA4B,GAAG,KAAK,EAAU;IAC1D,OAAO,GAAGA,mBAAmB,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC3B,IAAI,CAAC4B,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC1B,KAAK,EAAE;EACvF;EAEO0B,YAAYA,CAAA,EAAW;IAC1B,MAAMC,SAAS,GAAGC,wBAAS,CAACC,IAAI,CAAC,IAAI,CAAC/B,IAAI,CAACgC,YAAY,CAAC,CAAC,CAAC;IAC1D,MAAMC,mCAAmC,GACrCC,qBAAU,CAACC,8BAA8B,CAACN,SAAS,CAAC,IAAIK,qBAAU,CAACE,YAAY,CAACP,SAAS,CAAC;IAC9F,MAAMQ,eAAe,GAAGJ,mCAAmC,IAAI,IAAAK,6BAAgB,EAAC,IAAI,CAACpC,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE;IACtG,MAAMqC,aAAa,GAAG,IAAAD,6BAAgB,EAAC,IAAI,CAACpC,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE;IAC7D,OAAO,GAAG,IAAI,CAACF,IAAI,CAAC4B,YAAY,CAAC,CAAC,GAAGS,eAAe,GAAGE,aAAa,GAAG,IAAI,CAACrC,KAAK,EAAE;EACvF;AACJ;AAACsC,OAAA,CAAA1C,sBAAA,GAAAA,sBAAA;AAAAD,uBAAA,GAtEYC,sBAAsB;AAAtBA,sBAAsB,CACP2C,eAAe,GAAG,CAAC,eAAe,EAAE,iBAAiB,CAAC;AADrE3C,sBAAsB,CAEPwB,iBAAiB,GAAG,IAAIoB,MAAM,CAClD,YAAY5C,uBAAsB,CAAC2C,eAAe,CAC7CE,MAAM,CAAC,GAAG,IAAAC,sCAA2B,EAAC,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC,CACjDC,IAAI,CAAC,GAAG,CAAC,IAClB,CAAC","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getMask = getMask;
|
|
7
7
|
exports.getMaskWithInstances = getMaskWithInstances;
|
|
8
8
|
exports.isAggregationPath = isAggregationPath;
|
|
9
|
+
exports.replaceInstancesWithMultiplicity = replaceInstancesWithMultiplicity;
|
|
9
10
|
var _ModelPath = require("./ModelPath");
|
|
10
11
|
function isAggregationPath(modelPath) {
|
|
11
12
|
const tokens = modelPath.getPathPartsAsArray();
|
|
@@ -31,4 +32,9 @@ function getMaskWithInstances(exactPath) {
|
|
|
31
32
|
instances: reduceResult.instances
|
|
32
33
|
};
|
|
33
34
|
}
|
|
35
|
+
function replaceInstancesWithMultiplicity(path, replaceToken = _ModelPath.PathTokens.each) {
|
|
36
|
+
const isAbsolute = path.isAbsolute();
|
|
37
|
+
const resultTokens = path.getPathPartsAsArray().map(x => _ModelPath.PathTokens.isInstanceToken(x) ? replaceToken : x);
|
|
38
|
+
return isAbsolute ? (0, _ModelPath.createAbsoluteFromTokens)(resultTokens) : (0, _ModelPath.createRelativeFromTokens)(resultTokens);
|
|
39
|
+
}
|
|
34
40
|
//# sourceMappingURL=ModelPathHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelPathHelper.js","names":["_ModelPath","require","isAggregationPath","modelPath","tokens","getPathPartsAsArray","lastToken","length","getMask","exactPath","createAbsoluteFromTokens","Iterator","from","getPathParts","map","x","PathTokens","isInstanceToken","each","toArray","getMaskWithInstances","reduceResult","reduce","result","token","isMultiToken","instances","push","mask"],"sources":["../../../../Common/ModelPath/ModelPathHelper.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ModelPathHelper.js","names":["_ModelPath","require","isAggregationPath","modelPath","tokens","getPathPartsAsArray","lastToken","length","getMask","exactPath","createAbsoluteFromTokens","Iterator","from","getPathParts","map","x","PathTokens","isInstanceToken","each","toArray","getMaskWithInstances","reduceResult","reduce","result","token","isMultiToken","instances","push","mask","replaceInstancesWithMultiplicity","path","replaceToken","isAbsolute","resultTokens","createRelativeFromTokens"],"sources":["../../../../Common/ModelPath/ModelPathHelper.ts"],"sourcesContent":["import {\n AbsoluteModelPath,\n createAbsoluteFromTokens,\n createRelativeFromTokens,\n ModelPath,\n PathToken,\n PathTokens,\n} from \"./ModelPath\";\n\nexport function isAggregationPath(modelPath: ModelPath) {\n const tokens = modelPath.getPathPartsAsArray();\n const lastToken = tokens[tokens.length - 1];\n return lastToken === \"Sum\" || lastToken === \"Count\";\n}\n\nexport function getMask(exactPath: AbsoluteModelPath): AbsoluteModelPath {\n return createAbsoluteFromTokens(\n Iterator.from(exactPath.getPathParts())\n .map(x => (PathTokens.isInstanceToken(x) ? PathTokens.each : x))\n .toArray()\n );\n}\n\nexport function getMaskWithInstances(exactPath: AbsoluteModelPath): {\n mask: AbsoluteModelPath;\n instances: PathToken[];\n} {\n const reduceResult = Iterator.from(exactPath.getPathParts()).reduce(\n (result, token) => {\n if (PathTokens.isInstanceToken(token) || PathTokens.isMultiToken(token)) {\n result.instances.push(token);\n }\n result.tokens.push(PathTokens.isInstanceToken(token) ? PathTokens.each : token);\n return result;\n },\n {\n tokens: [] as PathToken[],\n instances: [] as PathToken[],\n }\n );\n return {\n mask: createAbsoluteFromTokens(reduceResult.tokens),\n instances: reduceResult.instances,\n };\n}\n\nexport function replaceInstancesWithMultiplicity<T extends ModelPath>(\n path: T,\n replaceToken: typeof PathTokens.each | typeof PathTokens.current = PathTokens.each\n): T {\n const isAbsolute = path.isAbsolute();\n const resultTokens = path.getPathPartsAsArray().map(x => (PathTokens.isInstanceToken(x) ? replaceToken : x));\n return isAbsolute ? (createAbsoluteFromTokens(resultTokens) as T) : (createRelativeFromTokens(resultTokens) as T);\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AASO,SAASC,iBAAiBA,CAACC,SAAoB,EAAE;EACpD,MAAMC,MAAM,GAAGD,SAAS,CAACE,mBAAmB,CAAC,CAAC;EAC9C,MAAMC,SAAS,GAAGF,MAAM,CAACA,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC;EAC3C,OAAOD,SAAS,KAAK,KAAK,IAAIA,SAAS,KAAK,OAAO;AACvD;AAEO,SAASE,OAAOA,CAACC,SAA4B,EAAqB;EACrE,OAAO,IAAAC,mCAAwB,EAC3BC,QAAQ,CAACC,IAAI,CAACH,SAAS,CAACI,YAAY,CAAC,CAAC,CAAC,CAClCC,GAAG,CAACC,CAAC,IAAKC,qBAAU,CAACC,eAAe,CAACF,CAAC,CAAC,GAAGC,qBAAU,CAACE,IAAI,GAAGH,CAAE,CAAC,CAC/DI,OAAO,CAAC,CACjB,CAAC;AACL;AAEO,SAASC,oBAAoBA,CAACX,SAA4B,EAG/D;EACE,MAAMY,YAAY,GAAGV,QAAQ,CAACC,IAAI,CAACH,SAAS,CAACI,YAAY,CAAC,CAAC,CAAC,CAACS,MAAM,CAC/D,CAACC,MAAM,EAAEC,KAAK,KAAK;IACf,IAAIR,qBAAU,CAACC,eAAe,CAACO,KAAK,CAAC,IAAIR,qBAAU,CAACS,YAAY,CAACD,KAAK,CAAC,EAAE;MACrED,MAAM,CAACG,SAAS,CAACC,IAAI,CAACH,KAAK,CAAC;IAChC;IACAD,MAAM,CAACnB,MAAM,CAACuB,IAAI,CAACX,qBAAU,CAACC,eAAe,CAACO,KAAK,CAAC,GAAGR,qBAAU,CAACE,IAAI,GAAGM,KAAK,CAAC;IAC/E,OAAOD,MAAM;EACjB,CAAC,EACD;IACInB,MAAM,EAAE,EAAiB;IACzBsB,SAAS,EAAE;EACf,CACJ,CAAC;EACD,OAAO;IACHE,IAAI,EAAE,IAAAlB,mCAAwB,EAACW,YAAY,CAACjB,MAAM,CAAC;IACnDsB,SAAS,EAAEL,YAAY,CAACK;EAC5B,CAAC;AACL;AAEO,SAASG,gCAAgCA,CAC5CC,IAAO,EACPC,YAAgE,GAAGf,qBAAU,CAACE,IAAI,EACjF;EACD,MAAMc,UAAU,GAAGF,IAAI,CAACE,UAAU,CAAC,CAAC;EACpC,MAAMC,YAAY,GAAGH,IAAI,CAACzB,mBAAmB,CAAC,CAAC,CAACS,GAAG,CAACC,CAAC,IAAKC,qBAAU,CAACC,eAAe,CAACF,CAAC,CAAC,GAAGgB,YAAY,GAAGhB,CAAE,CAAC;EAC5G,OAAOiB,UAAU,GAAI,IAAAtB,mCAAwB,EAACuB,YAAY,CAAC,GAAU,IAAAC,mCAAwB,EAACD,YAAY,CAAO;AACrH","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.excludeUndefinedOrEmptyObjectJsonReplacer = excludeUndefinedOrEmptyObjectJsonReplacer;
|
|
7
|
+
function excludeUndefinedOrEmptyObjectJsonReplacer(key, value) {
|
|
8
|
+
const originalValue = this[key];
|
|
9
|
+
if (originalValue == undefined || typeof originalValue === "object" && Object.keys(originalValue).length == 0) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=SerializationUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SerializationUtils.js","names":["excludeUndefinedOrEmptyObjectJsonReplacer","key","value","originalValue","undefined","Object","keys","length"],"sources":["../../../Common/SerializationUtils.ts"],"sourcesContent":["export function excludeUndefinedOrEmptyObjectJsonReplacer(\n this: { [key: string | number]: object },\n key: string,\n value: unknown\n) {\n const originalValue: unknown = this[key];\n if (originalValue == undefined || (typeof originalValue === \"object\" && Object.keys(originalValue).length == 0)) {\n return undefined;\n }\n return value;\n}\n"],"mappings":";;;;;;AAAO,SAASA,yCAAyCA,CAErDC,GAAW,EACXC,KAAc,EAChB;EACE,MAAMC,aAAsB,GAAG,IAAI,CAACF,GAAG,CAAC;EACxC,IAAIE,aAAa,IAAIC,SAAS,IAAK,OAAOD,aAAa,KAAK,QAAQ,IAAIE,MAAM,CAACC,IAAI,CAACH,aAAa,CAAC,CAACI,MAAM,IAAI,CAAE,EAAE;IAC7G,OAAOH,SAAS;EACpB;EACA,OAAOF,KAAK;AAChB","ignoreList":[]}
|
|
@@ -38,22 +38,20 @@ let BuildServerBackendResourcesController = exports.BuildServerBackendResourcesC
|
|
|
38
38
|
}
|
|
39
39
|
async afterStart() {
|
|
40
40
|
_EventBus.eventBus.on(_EventBus.FORM_REMOVE_EVENT, () => {
|
|
41
|
-
this.
|
|
41
|
+
this.resetAllFarmDirectories();
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
44
|
async afterStop() {
|
|
45
45
|
_EventBus.eventBus.off(_EventBus.FORM_REMOVE_EVENT);
|
|
46
46
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
farmDirectory.resetAllGfvs();
|
|
50
|
-
}
|
|
47
|
+
resetAllFarmDirectories() {
|
|
48
|
+
this.allFarmDirectories = this.allFarmConfig.map(i => new _FarmDirectory.FarmDirectory(i.farmDirectory));
|
|
51
49
|
}
|
|
52
50
|
async getAllGfvs() {
|
|
53
51
|
return (await Promise.all(this.allFarmDirectories.map(x => x.getAllGfvs()))).flat();
|
|
54
52
|
}
|
|
55
53
|
async forceGetAllGfvs() {
|
|
56
|
-
this.
|
|
54
|
+
this.resetAllFarmDirectories();
|
|
57
55
|
return this.getAllGfvs();
|
|
58
56
|
}
|
|
59
57
|
async getAllPicklists() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildServerBackendResourcesController.js","names":["_fs","require","path","_interopRequireWildcard","_fsExtra","_lodash","_Methods","_NotFoundWebError","_Params","_Results","_StreamResultHandler","_SingletonController","_EventBus","_FarmDirectory","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","_dec10","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","_dec19","_dec20","_dec21","_dec22","_class","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","BuildServerBackendResourcesController","exports","httpGet","httpReturn","Json","PlainText","StreamWithMime","httpUrlParam","httpType","String","Stream","SingletonController","constructor","allFarmConfig","flangNormalizationSourcesProvider","generatedServerSideSourcesProvider","allSchemasFiles","resetAllSchemaFilesDebounced","allFarmDirectories","map","FarmDirectory","farmDirectory","debounce","undefined","afterStart","eventBus","on","FORM_REMOVE_EVENT","resetAllGfvs","afterStop","off","getAllGfvs","Promise","all","x","flat","forceGetAllGfvs","getAllPicklists","join","getPicklists","picklistFilename","allFilePath","pathFile","pathExists","createReadStream","Error","getAllConvertersFiles","flatMap","getAllConverterFilePaths","basename","getConverterFile","filename","filePath","getConverterFilePathByFileNameOrUndefined","FileStreamResult","NotFoundWebError","getAllMergersFiles","getAllMergersFilePaths","getMergerFile","getMergersFilePathByFileNameOrUndefined","getAllSchemasFiles","getAllSchemasFilePaths","getFormSchemas","getSchemaFilePathByFileNameOrUndefined","getAllNormalizeFiles","files","getAllNormalizeFilePaths","flangFiles","getAllNormalizationFileNames","getNormalizeFile","gfv","getNormalizeFilePathByFileNameOrUndefined","getFLangNormalizeFile","stream","getNormalizationFileContent","StreamResult","getAllAttachmentPathsFileNames","getAllAttachmentPathFileNames","getAttachmentPathFile","getAttachmentPathsFileContent","getAttachmentPathByGfvFile","getAttachmentPathsWithGfvsFileContent","getAllUnmapFiles","getAllUnmapFilePaths","getUnmapFile","getUnmapFilePathByFileNameOrUndefined","getAllMapFiles","getAllMapFilePaths","getMapFile","getMapFilePathByFileNameOrUndefined","getAllPatchFiles","getAllPatchFilePaths","getPatchFile","getPatchFilePathByFileNameOrUndefined","_applyDecoratedDescriptor2","prototype"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.ts"],"sourcesContent":["import { createReadStream, ReadStream } from \"fs\";\nimport * as path from \"path\";\n\nimport { pathExists } from \"fs-extra\";\nimport _, { debounce } from \"lodash\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { httpGet } from \"../../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { NotFoundWebError } from \"../../../Commons/HttpServer/AttributeRouting/NotFoundWebError\";\nimport { httpType, httpUrlParam } from \"../../../Commons/HttpServer/AttributeRouting/Params\";\nimport { httpReturn } from \"../../../Commons/HttpServer/AttributeRouting/Results\";\nimport {\n FileStreamResult,\n StreamResult,\n} from \"../../../Commons/HttpServer/AttributeRouting/Results/StreamResultHandler\";\nimport { SingletonController } from \"../../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { eventBus, FORM_REMOVE_EVENT } from \"../../../Commons/TasksCore/EventBus\";\n\nimport { IGeneratedServerSideSourcesProvider } from \"./IGeneratedServerSideSourcesProvider\";\nimport { FarmDirectory } from \"./Directories/FarmDirectory\";\n\nexport class BuildServerBackendResourcesController extends SingletonController {\n private readonly generatedServerSideSourcesProvider: IGeneratedServerSideSourcesProvider;\n private allSchemasFiles: undefined | string;\n private readonly resetAllSchemaFilesDebounced: () => void;\n private readonly allFarmDirectories: FarmDirectory[];\n private readonly allFarmConfig: FarmConfig[];\n\n public constructor(\n allFarmConfig: FarmConfig[],\n flangNormalizationSourcesProvider: IGeneratedServerSideSourcesProvider\n ) {\n super();\n this.generatedServerSideSourcesProvider = flangNormalizationSourcesProvider;\n this.allFarmConfig = allFarmConfig;\n this.allFarmDirectories = allFarmConfig.map(i => new FarmDirectory(i.farmDirectory));\n this.resetAllSchemaFilesDebounced = debounce(() => {\n this.allSchemasFiles = undefined;\n }, 5000);\n }\n\n public async afterStart(): Promise<void> {\n eventBus.on(FORM_REMOVE_EVENT, () => {\n this.resetAllGfvs();\n });\n }\n\n public async afterStop(): Promise<void> {\n eventBus.off(FORM_REMOVE_EVENT);\n }\n\n private resetAllGfvs() {\n for (const farmDirectory of this.allFarmDirectories) {\n farmDirectory.resetAllGfvs();\n }\n }\n\n @httpGet(\"/gfvs\", httpReturn.Json)\n public async getAllGfvs(): Promise<string[]> {\n return (await Promise.all(this.allFarmDirectories.map(x => x.getAllGfvs()))).flat();\n }\n\n @httpGet(\"/force-gfvs\", httpReturn.Json)\n public async forceGetAllGfvs(): Promise<string[]> {\n this.resetAllGfvs();\n return this.getAllGfvs();\n }\n\n @httpGet(\"/picklists\", httpReturn.PlainText)\n public async getAllPicklists(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.map(x => x.getAllPicklists()))).flat().join(\"\\n\");\n }\n\n @httpGet(\n \"/picklists/:picklistFilename\",\n httpReturn.StreamWithMime(\"application/json\"),\n httpUrlParam(\"picklistFilename\", httpType.String)\n )\n public async getPicklists(picklistFilename: string): Promise<ReadStream> {\n const allFilePath = this.allFarmConfig.map(i => path.join(i.farmDirectory, \"picklists\", picklistFilename));\n for (const pathFile of allFilePath) {\n if (await pathExists(pathFile)) {\n return createReadStream(pathFile);\n }\n }\n throw Error(`not found picklistFilename ${picklistFilename}`);\n }\n\n @httpGet(\"/converters\", httpReturn.PlainText)\n public async getAllConvertersFiles(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllConverterFilePaths())))\n .flat()\n .map(x => path.basename(x))\n .join(\"\\n\");\n }\n\n @httpGet(\"/converters/:filename\", httpReturn.Stream, httpUrlParam(\"filename\", httpType.String))\n public async getConverterFile(filename: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getConverterFilePathByFileNameOrUndefined(filename);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n @httpGet(\"/mergers\", httpReturn.PlainText)\n public async getAllMergersFiles(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllMergersFilePaths())))\n .flat()\n .map(x => path.basename(x))\n .join(\"\\n\");\n }\n\n @httpGet(\"/mergers/:filename\", httpReturn.Stream, httpUrlParam(\"filename\", httpType.String))\n public async getMergerFile(filename: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getMergersFilePathByFileNameOrUndefined(filename);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n @httpGet(\"/schemas\", httpReturn.PlainText)\n public async getAllSchemasFiles(): Promise<string> {\n if (this.allSchemasFiles === undefined) {\n this.allSchemasFiles = (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllSchemasFilePaths())))\n .flat()\n .map(x => path.basename(x))\n .join(\"\\n\");\n }\n this.resetAllSchemaFilesDebounced();\n return this.allSchemasFiles;\n }\n\n @httpGet(\"/schemas/:filename\", httpReturn.Stream, httpUrlParam(\"filename\", httpType.String))\n public async getFormSchemas(filename: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getSchemaFilePathByFileNameOrUndefined(filename);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n @httpGet(\"/normalize\", httpReturn.PlainText)\n public async getAllNormalizeFiles(): Promise<string> {\n const files = (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllNormalizeFilePaths()))).flat();\n const flangFiles = await this.generatedServerSideSourcesProvider.getAllNormalizationFileNames();\n return [...files.map(x => path.basename(x)), ...flangFiles].join(\"\\n\");\n }\n\n @httpGet(\"/normalize/:gfv.xml\", httpReturn.Stream, httpUrlParam(\"gfv\", httpType.String))\n public async getNormalizeFile(gfv: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getNormalizeFilePathByFileNameOrUndefined(`${gfv}.xml`);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n @httpGet(\"/normalize/:gfv.normalize\", httpReturn.Stream, httpUrlParam(\"gfv\", httpType.String))\n public async getFLangNormalizeFile(gfv: string): Promise<StreamResult> {\n const stream = await this.generatedServerSideSourcesProvider.getNormalizationFileContent(gfv);\n if (stream == null) {\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n return new StreamResult(stream);\n }\n\n @httpGet(\"/attachmentpaths\", httpReturn.PlainText)\n public async getAllAttachmentPathsFileNames(): Promise<string> {\n const flangFiles = await this.generatedServerSideSourcesProvider.getAllAttachmentPathFileNames();\n return flangFiles.join(\"\\n\");\n }\n\n @httpGet(\"/attachmentpaths/:gfv.json\", httpReturn.Stream, httpUrlParam(\"gfv\", httpType.String))\n public async getAttachmentPathFile(gfv: string): Promise<StreamResult> {\n return new StreamResult(await this.generatedServerSideSourcesProvider.getAttachmentPathsFileContent(gfv));\n }\n\n @httpGet(\"/attachmentpathswithgfvs/:gfv.json\", httpReturn.Stream, httpUrlParam(\"gfv\", httpType.String))\n public async getAttachmentPathByGfvFile(gfv: string): Promise<StreamResult> {\n return new StreamResult(\n await this.generatedServerSideSourcesProvider.getAttachmentPathsWithGfvsFileContent(gfv)\n );\n }\n\n @httpGet(\"/unmap\", httpReturn.PlainText)\n public async getAllUnmapFiles(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllUnmapFilePaths())))\n .flat()\n .map(x => path.basename(x))\n .join(\"\\n\");\n }\n\n @httpGet(\"/unmap/:filename\", httpReturn.Stream, httpUrlParam(\"filename\", httpType.String))\n public async getUnmapFile(filename: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getUnmapFilePathByFileNameOrUndefined(filename);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n @httpGet(\"/map\", httpReturn.PlainText)\n public async getAllMapFiles(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllMapFilePaths())))\n .flat()\n .map(x => path.basename(x))\n .join(\"\\n\");\n }\n\n @httpGet(\"/map/:filename\", httpReturn.Stream, httpUrlParam(\"filename\", httpType.String))\n public async getMapFile(filename: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getMapFilePathByFileNameOrUndefined(filename);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n @httpGet(\"/patch\", httpReturn.PlainText)\n public async getAllPatchFiles(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllPatchFilePaths())))\n .flat()\n .map(x => path.basename(x))\n .join(\"\\n\");\n }\n\n @httpGet(\"/patch/:filename\", httpReturn.Stream, httpUrlParam(\"gfv\", httpType.String))\n public async getPatchFile(filename: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getPatchFilePathByFileNameOrUndefined(filename);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"BuildServerBackendResourcesController.js","names":["_fs","require","path","_interopRequireWildcard","_fsExtra","_lodash","_Methods","_NotFoundWebError","_Params","_Results","_StreamResultHandler","_SingletonController","_EventBus","_FarmDirectory","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","_dec10","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","_dec19","_dec20","_dec21","_dec22","_class","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","BuildServerBackendResourcesController","exports","httpGet","httpReturn","Json","PlainText","StreamWithMime","httpUrlParam","httpType","String","Stream","SingletonController","constructor","allFarmConfig","flangNormalizationSourcesProvider","generatedServerSideSourcesProvider","allSchemasFiles","resetAllSchemaFilesDebounced","allFarmDirectories","map","FarmDirectory","farmDirectory","debounce","undefined","afterStart","eventBus","on","FORM_REMOVE_EVENT","resetAllFarmDirectories","afterStop","off","getAllGfvs","Promise","all","x","flat","forceGetAllGfvs","getAllPicklists","join","getPicklists","picklistFilename","allFilePath","pathFile","pathExists","createReadStream","Error","getAllConvertersFiles","flatMap","getAllConverterFilePaths","basename","getConverterFile","filename","filePath","getConverterFilePathByFileNameOrUndefined","FileStreamResult","NotFoundWebError","getAllMergersFiles","getAllMergersFilePaths","getMergerFile","getMergersFilePathByFileNameOrUndefined","getAllSchemasFiles","getAllSchemasFilePaths","getFormSchemas","getSchemaFilePathByFileNameOrUndefined","getAllNormalizeFiles","files","getAllNormalizeFilePaths","flangFiles","getAllNormalizationFileNames","getNormalizeFile","gfv","getNormalizeFilePathByFileNameOrUndefined","getFLangNormalizeFile","stream","getNormalizationFileContent","StreamResult","getAllAttachmentPathsFileNames","getAllAttachmentPathFileNames","getAttachmentPathFile","getAttachmentPathsFileContent","getAttachmentPathByGfvFile","getAttachmentPathsWithGfvsFileContent","getAllUnmapFiles","getAllUnmapFilePaths","getUnmapFile","getUnmapFilePathByFileNameOrUndefined","getAllMapFiles","getAllMapFilePaths","getMapFile","getMapFilePathByFileNameOrUndefined","getAllPatchFiles","getAllPatchFilePaths","getPatchFile","getPatchFilePathByFileNameOrUndefined","_applyDecoratedDescriptor2","prototype"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.ts"],"sourcesContent":["import { createReadStream, ReadStream } from \"fs\";\nimport * as path from \"path\";\n\nimport { pathExists } from \"fs-extra\";\nimport _, { debounce } from \"lodash\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { httpGet } from \"../../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { NotFoundWebError } from \"../../../Commons/HttpServer/AttributeRouting/NotFoundWebError\";\nimport { httpType, httpUrlParam } from \"../../../Commons/HttpServer/AttributeRouting/Params\";\nimport { httpReturn } from \"../../../Commons/HttpServer/AttributeRouting/Results\";\nimport {\n FileStreamResult,\n StreamResult,\n} from \"../../../Commons/HttpServer/AttributeRouting/Results/StreamResultHandler\";\nimport { SingletonController } from \"../../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { eventBus, FORM_REMOVE_EVENT } from \"../../../Commons/TasksCore/EventBus\";\n\nimport { IGeneratedServerSideSourcesProvider } from \"./IGeneratedServerSideSourcesProvider\";\nimport { FarmDirectory } from \"./Directories/FarmDirectory\";\n\nexport class BuildServerBackendResourcesController extends SingletonController {\n private readonly generatedServerSideSourcesProvider: IGeneratedServerSideSourcesProvider;\n private allSchemasFiles: undefined | string;\n private readonly resetAllSchemaFilesDebounced: () => void;\n private allFarmDirectories: FarmDirectory[];\n private readonly allFarmConfig: FarmConfig[];\n\n public constructor(\n allFarmConfig: FarmConfig[],\n flangNormalizationSourcesProvider: IGeneratedServerSideSourcesProvider\n ) {\n super();\n this.generatedServerSideSourcesProvider = flangNormalizationSourcesProvider;\n this.allFarmConfig = allFarmConfig;\n this.allFarmDirectories = allFarmConfig.map(i => new FarmDirectory(i.farmDirectory));\n this.resetAllSchemaFilesDebounced = debounce(() => {\n this.allSchemasFiles = undefined;\n }, 5000);\n }\n\n public async afterStart(): Promise<void> {\n eventBus.on(FORM_REMOVE_EVENT, () => {\n this.resetAllFarmDirectories();\n });\n }\n\n public async afterStop(): Promise<void> {\n eventBus.off(FORM_REMOVE_EVENT);\n }\n\n private resetAllFarmDirectories() {\n this.allFarmDirectories = this.allFarmConfig.map(i => new FarmDirectory(i.farmDirectory));\n }\n\n @httpGet(\"/gfvs\", httpReturn.Json)\n public async getAllGfvs(): Promise<string[]> {\n return (await Promise.all(this.allFarmDirectories.map(x => x.getAllGfvs()))).flat();\n }\n\n @httpGet(\"/force-gfvs\", httpReturn.Json)\n public async forceGetAllGfvs(): Promise<string[]> {\n this.resetAllFarmDirectories();\n return this.getAllGfvs();\n }\n\n @httpGet(\"/picklists\", httpReturn.PlainText)\n public async getAllPicklists(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.map(x => x.getAllPicklists()))).flat().join(\"\\n\");\n }\n\n @httpGet(\n \"/picklists/:picklistFilename\",\n httpReturn.StreamWithMime(\"application/json\"),\n httpUrlParam(\"picklistFilename\", httpType.String)\n )\n public async getPicklists(picklistFilename: string): Promise<ReadStream> {\n const allFilePath = this.allFarmConfig.map(i => path.join(i.farmDirectory, \"picklists\", picklistFilename));\n for (const pathFile of allFilePath) {\n if (await pathExists(pathFile)) {\n return createReadStream(pathFile);\n }\n }\n throw Error(`not found picklistFilename ${picklistFilename}`);\n }\n\n @httpGet(\"/converters\", httpReturn.PlainText)\n public async getAllConvertersFiles(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllConverterFilePaths())))\n .flat()\n .map(x => path.basename(x))\n .join(\"\\n\");\n }\n\n @httpGet(\"/converters/:filename\", httpReturn.Stream, httpUrlParam(\"filename\", httpType.String))\n public async getConverterFile(filename: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getConverterFilePathByFileNameOrUndefined(filename);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n @httpGet(\"/mergers\", httpReturn.PlainText)\n public async getAllMergersFiles(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllMergersFilePaths())))\n .flat()\n .map(x => path.basename(x))\n .join(\"\\n\");\n }\n\n @httpGet(\"/mergers/:filename\", httpReturn.Stream, httpUrlParam(\"filename\", httpType.String))\n public async getMergerFile(filename: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getMergersFilePathByFileNameOrUndefined(filename);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n @httpGet(\"/schemas\", httpReturn.PlainText)\n public async getAllSchemasFiles(): Promise<string> {\n if (this.allSchemasFiles === undefined) {\n this.allSchemasFiles = (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllSchemasFilePaths())))\n .flat()\n .map(x => path.basename(x))\n .join(\"\\n\");\n }\n this.resetAllSchemaFilesDebounced();\n return this.allSchemasFiles;\n }\n\n @httpGet(\"/schemas/:filename\", httpReturn.Stream, httpUrlParam(\"filename\", httpType.String))\n public async getFormSchemas(filename: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getSchemaFilePathByFileNameOrUndefined(filename);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n @httpGet(\"/normalize\", httpReturn.PlainText)\n public async getAllNormalizeFiles(): Promise<string> {\n const files = (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllNormalizeFilePaths()))).flat();\n const flangFiles = await this.generatedServerSideSourcesProvider.getAllNormalizationFileNames();\n return [...files.map(x => path.basename(x)), ...flangFiles].join(\"\\n\");\n }\n\n @httpGet(\"/normalize/:gfv.xml\", httpReturn.Stream, httpUrlParam(\"gfv\", httpType.String))\n public async getNormalizeFile(gfv: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getNormalizeFilePathByFileNameOrUndefined(`${gfv}.xml`);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n @httpGet(\"/normalize/:gfv.normalize\", httpReturn.Stream, httpUrlParam(\"gfv\", httpType.String))\n public async getFLangNormalizeFile(gfv: string): Promise<StreamResult> {\n const stream = await this.generatedServerSideSourcesProvider.getNormalizationFileContent(gfv);\n if (stream == null) {\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n return new StreamResult(stream);\n }\n\n @httpGet(\"/attachmentpaths\", httpReturn.PlainText)\n public async getAllAttachmentPathsFileNames(): Promise<string> {\n const flangFiles = await this.generatedServerSideSourcesProvider.getAllAttachmentPathFileNames();\n return flangFiles.join(\"\\n\");\n }\n\n @httpGet(\"/attachmentpaths/:gfv.json\", httpReturn.Stream, httpUrlParam(\"gfv\", httpType.String))\n public async getAttachmentPathFile(gfv: string): Promise<StreamResult> {\n return new StreamResult(await this.generatedServerSideSourcesProvider.getAttachmentPathsFileContent(gfv));\n }\n\n @httpGet(\"/attachmentpathswithgfvs/:gfv.json\", httpReturn.Stream, httpUrlParam(\"gfv\", httpType.String))\n public async getAttachmentPathByGfvFile(gfv: string): Promise<StreamResult> {\n return new StreamResult(\n await this.generatedServerSideSourcesProvider.getAttachmentPathsWithGfvsFileContent(gfv)\n );\n }\n\n @httpGet(\"/unmap\", httpReturn.PlainText)\n public async getAllUnmapFiles(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllUnmapFilePaths())))\n .flat()\n .map(x => path.basename(x))\n .join(\"\\n\");\n }\n\n @httpGet(\"/unmap/:filename\", httpReturn.Stream, httpUrlParam(\"filename\", httpType.String))\n public async getUnmapFile(filename: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getUnmapFilePathByFileNameOrUndefined(filename);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n @httpGet(\"/map\", httpReturn.PlainText)\n public async getAllMapFiles(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllMapFilePaths())))\n .flat()\n .map(x => path.basename(x))\n .join(\"\\n\");\n }\n\n @httpGet(\"/map/:filename\", httpReturn.Stream, httpUrlParam(\"filename\", httpType.String))\n public async getMapFile(filename: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getMapFilePathByFileNameOrUndefined(filename);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n\n @httpGet(\"/patch\", httpReturn.PlainText)\n public async getAllPatchFiles(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.flatMap(x => x.getAllPatchFilePaths())))\n .flat()\n .map(x => path.basename(x))\n .join(\"\\n\");\n }\n\n @httpGet(\"/patch/:filename\", httpReturn.Stream, httpUrlParam(\"gfv\", httpType.String))\n public async getPatchFile(filename: string): Promise<FileStreamResult> {\n for (const farmDirectory of this.allFarmDirectories) {\n const filePath = await farmDirectory.getPatchFilePathByFileNameOrUndefined(filename);\n if (filePath != null && (await pathExists(filePath))) {\n return new FileStreamResult(filePath);\n }\n }\n\n throw new NotFoundWebError(\"File not found\", false);\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAC,uBAAA,CAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAGA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,oBAAA,GAAAT,OAAA;AAIA,IAAAU,oBAAA,GAAAV,OAAA;AACA,IAAAW,SAAA,GAAAX,OAAA;AAGA,IAAAY,cAAA,GAAAZ,OAAA;AAA4D,IAAAa,IAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA;AAAA,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAnC,wBAAAmC,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,IAE/CW,qCAAqC,GAAAC,OAAA,CAAAD,qCAAA,IAAA3C,IAAA,GAkC7C,IAAA6C,gBAAO,EAAC,OAAO,EAAEC,mBAAU,CAACC,IAAI,CAAC,EAAA9C,KAAA,GAKjC,IAAA4C,gBAAO,EAAC,aAAa,EAAEC,mBAAU,CAACC,IAAI,CAAC,EAAA7C,KAAA,GAMvC,IAAA2C,gBAAO,EAAC,YAAY,EAAEC,mBAAU,CAACE,SAAS,CAAC,EAAA7C,KAAA,GAK3C,IAAA0C,gBAAO,EACJ,8BAA8B,EAC9BC,mBAAU,CAACG,cAAc,CAAC,kBAAkB,CAAC,EAC7C,IAAAC,oBAAY,EAAC,kBAAkB,EAAEC,gBAAQ,CAACC,MAAM,CACpD,CAAC,EAAAhD,KAAA,GAWA,IAAAyC,gBAAO,EAAC,aAAa,EAAEC,mBAAU,CAACE,SAAS,CAAC,EAAA3C,KAAA,GAQ5C,IAAAwC,gBAAO,EAAC,uBAAuB,EAAEC,mBAAU,CAACO,MAAM,EAAE,IAAAH,oBAAY,EAAC,UAAU,EAAEC,gBAAQ,CAACC,MAAM,CAAC,CAAC,EAAA9C,KAAA,GAY9F,IAAAuC,gBAAO,EAAC,UAAU,EAAEC,mBAAU,CAACE,SAAS,CAAC,EAAAzC,KAAA,GAQzC,IAAAsC,gBAAO,EAAC,oBAAoB,EAAEC,mBAAU,CAACO,MAAM,EAAE,IAAAH,oBAAY,EAAC,UAAU,EAAEC,gBAAQ,CAACC,MAAM,CAAC,CAAC,EAAA5C,KAAA,GAY3F,IAAAqC,gBAAO,EAAC,UAAU,EAAEC,mBAAU,CAACE,SAAS,CAAC,EAAAvC,MAAA,GAYzC,IAAAoC,gBAAO,EAAC,oBAAoB,EAAEC,mBAAU,CAACO,MAAM,EAAE,IAAAH,oBAAY,EAAC,UAAU,EAAEC,gBAAQ,CAACC,MAAM,CAAC,CAAC,EAAA1C,MAAA,GAY3F,IAAAmC,gBAAO,EAAC,YAAY,EAAEC,mBAAU,CAACE,SAAS,CAAC,EAAArC,MAAA,GAO3C,IAAAkC,gBAAO,EAAC,qBAAqB,EAAEC,mBAAU,CAACO,MAAM,EAAE,IAAAH,oBAAY,EAAC,KAAK,EAAEC,gBAAQ,CAACC,MAAM,CAAC,CAAC,EAAAxC,MAAA,GAYvF,IAAAiC,gBAAO,EAAC,2BAA2B,EAAEC,mBAAU,CAACO,MAAM,EAAE,IAAAH,oBAAY,EAAC,KAAK,EAAEC,gBAAQ,CAACC,MAAM,CAAC,CAAC,EAAAvC,MAAA,GAU7F,IAAAgC,gBAAO,EAAC,kBAAkB,EAAEC,mBAAU,CAACE,SAAS,CAAC,EAAAlC,MAAA,GAMjD,IAAA+B,gBAAO,EAAC,4BAA4B,EAAEC,mBAAU,CAACO,MAAM,EAAE,IAAAH,oBAAY,EAAC,KAAK,EAAEC,gBAAQ,CAACC,MAAM,CAAC,CAAC,EAAArC,MAAA,GAK9F,IAAA8B,gBAAO,EAAC,oCAAoC,EAAEC,mBAAU,CAACO,MAAM,EAAE,IAAAH,oBAAY,EAAC,KAAK,EAAEC,gBAAQ,CAACC,MAAM,CAAC,CAAC,EAAApC,MAAA,GAOtG,IAAA6B,gBAAO,EAAC,QAAQ,EAAEC,mBAAU,CAACE,SAAS,CAAC,EAAA/B,MAAA,GAQvC,IAAA4B,gBAAO,EAAC,kBAAkB,EAAEC,mBAAU,CAACO,MAAM,EAAE,IAAAH,oBAAY,EAAC,UAAU,EAAEC,gBAAQ,CAACC,MAAM,CAAC,CAAC,EAAAlC,MAAA,GAYzF,IAAA2B,gBAAO,EAAC,MAAM,EAAEC,mBAAU,CAACE,SAAS,CAAC,EAAA7B,MAAA,GAQrC,IAAA0B,gBAAO,EAAC,gBAAgB,EAAEC,mBAAU,CAACO,MAAM,EAAE,IAAAH,oBAAY,EAAC,UAAU,EAAEC,gBAAQ,CAACC,MAAM,CAAC,CAAC,EAAAhC,MAAA,GAYvF,IAAAyB,gBAAO,EAAC,QAAQ,EAAEC,mBAAU,CAACE,SAAS,CAAC,EAAA3B,MAAA,GAQvC,IAAAwB,gBAAO,EAAC,kBAAkB,EAAEC,mBAAU,CAACO,MAAM,EAAE,IAAAH,oBAAY,EAAC,KAAK,EAAEC,gBAAQ,CAACC,MAAM,CAAC,CAAC,GAAA9B,MAAA,GAhOlF,MAAMqB,qCAAqC,SAASW,wCAAmB,CAAC;EAOpEC,WAAWA,CACdC,aAA2B,EAC3BC,iCAAsE,EACxE;IACE,KAAK,CAAC,CAAC;IAAC,KAVKC,kCAAkC;IAAA,KAC3CC,eAAe;IAAA,KACNC,4BAA4B;IAAA,KACrCC,kBAAkB;IAAA,KACTL,aAAa;IAO1B,IAAI,CAACE,kCAAkC,GAAGD,iCAAiC;IAC3E,IAAI,CAACD,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACK,kBAAkB,GAAGL,aAAa,CAACM,GAAG,CAACrB,CAAC,IAAI,IAAIsB,4BAAa,CAACtB,CAAC,CAACuB,aAAa,CAAC,CAAC;IACpF,IAAI,CAACJ,4BAA4B,GAAG,IAAAK,gBAAQ,EAAC,MAAM;MAC/C,IAAI,CAACN,eAAe,GAAGO,SAAS;IACpC,CAAC,EAAE,IAAI,CAAC;EACZ;EAEA,MAAaC,UAAUA,CAAA,EAAkB;IACrCC,kBAAQ,CAACC,EAAE,CAACC,2BAAiB,EAAE,MAAM;MACjC,IAAI,CAACC,uBAAuB,CAAC,CAAC;IAClC,CAAC,CAAC;EACN;EAEA,MAAaC,SAASA,CAAA,EAAkB;IACpCJ,kBAAQ,CAACK,GAAG,CAACH,2BAAiB,CAAC;EACnC;EAEQC,uBAAuBA,CAAA,EAAG;IAC9B,IAAI,CAACV,kBAAkB,GAAG,IAAI,CAACL,aAAa,CAACM,GAAG,CAACrB,CAAC,IAAI,IAAIsB,4BAAa,CAACtB,CAAC,CAACuB,aAAa,CAAC,CAAC;EAC7F;EAEA,MACaU,UAAUA,CAAA,EAAsB;IACzC,OAAO,CAAC,MAAMC,OAAO,CAACC,GAAG,CAAC,IAAI,CAACf,kBAAkB,CAACC,GAAG,CAACe,CAAC,IAAIA,CAAC,CAACH,UAAU,CAAC,CAAC,CAAC,CAAC,EAAEI,IAAI,CAAC,CAAC;EACvF;EAEA,MACaC,eAAeA,CAAA,EAAsB;IAC9C,IAAI,CAACR,uBAAuB,CAAC,CAAC;IAC9B,OAAO,IAAI,CAACG,UAAU,CAAC,CAAC;EAC5B;EAEA,MACaM,eAAeA,CAAA,EAAoB;IAC5C,OAAO,CAAC,MAAML,OAAO,CAACC,GAAG,CAAC,IAAI,CAACf,kBAAkB,CAACC,GAAG,CAACe,CAAC,IAAIA,CAAC,CAACG,eAAe,CAAC,CAAC,CAAC,CAAC,EAAEF,IAAI,CAAC,CAAC,CAACG,IAAI,CAAC,IAAI,CAAC;EACvG;EAEA,MAKaC,YAAYA,CAACC,gBAAwB,EAAuB;IACrE,MAAMC,WAAW,GAAG,IAAI,CAAC5B,aAAa,CAACM,GAAG,CAACrB,CAAC,IAAIrD,IAAI,CAAC6F,IAAI,CAACxC,CAAC,CAACuB,aAAa,EAAE,WAAW,EAAEmB,gBAAgB,CAAC,CAAC;IAC1G,KAAK,MAAME,QAAQ,IAAID,WAAW,EAAE;MAChC,IAAI,MAAM,IAAAE,mBAAU,EAACD,QAAQ,CAAC,EAAE;QAC5B,OAAO,IAAAE,oBAAgB,EAACF,QAAQ,CAAC;MACrC;IACJ;IACA,MAAMG,KAAK,CAAC,8BAA8BL,gBAAgB,EAAE,CAAC;EACjE;EAEA,MACaM,qBAAqBA,CAAA,EAAoB;IAClD,OAAO,CAAC,MAAMd,OAAO,CAACC,GAAG,CAAC,IAAI,CAACf,kBAAkB,CAAC6B,OAAO,CAACb,CAAC,IAAIA,CAAC,CAACc,wBAAwB,CAAC,CAAC,CAAC,CAAC,EACxFb,IAAI,CAAC,CAAC,CACNhB,GAAG,CAACe,CAAC,IAAIzF,IAAI,CAACwG,QAAQ,CAACf,CAAC,CAAC,CAAC,CAC1BI,IAAI,CAAC,IAAI,CAAC;EACnB;EAEA,MACaY,gBAAgBA,CAACC,QAAgB,EAA6B;IACvE,KAAK,MAAM9B,aAAa,IAAI,IAAI,CAACH,kBAAkB,EAAE;MACjD,MAAMkC,QAAQ,GAAG,MAAM/B,aAAa,CAACgC,yCAAyC,CAACF,QAAQ,CAAC;MACxF,IAAIC,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAAT,mBAAU,EAACS,QAAQ,CAAC,CAAC,EAAE;QAClD,OAAO,IAAIE,qCAAgB,CAACF,QAAQ,CAAC;MACzC;IACJ;IAEA,MAAM,IAAIG,kCAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC;EACvD;EAEA,MACaC,kBAAkBA,CAAA,EAAoB;IAC/C,OAAO,CAAC,MAAMxB,OAAO,CAACC,GAAG,CAAC,IAAI,CAACf,kBAAkB,CAAC6B,OAAO,CAACb,CAAC,IAAIA,CAAC,CAACuB,sBAAsB,CAAC,CAAC,CAAC,CAAC,EACtFtB,IAAI,CAAC,CAAC,CACNhB,GAAG,CAACe,CAAC,IAAIzF,IAAI,CAACwG,QAAQ,CAACf,CAAC,CAAC,CAAC,CAC1BI,IAAI,CAAC,IAAI,CAAC;EACnB;EAEA,MACaoB,aAAaA,CAACP,QAAgB,EAA6B;IACpE,KAAK,MAAM9B,aAAa,IAAI,IAAI,CAACH,kBAAkB,EAAE;MACjD,MAAMkC,QAAQ,GAAG,MAAM/B,aAAa,CAACsC,uCAAuC,CAACR,QAAQ,CAAC;MACtF,IAAIC,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAAT,mBAAU,EAACS,QAAQ,CAAC,CAAC,EAAE;QAClD,OAAO,IAAIE,qCAAgB,CAACF,QAAQ,CAAC;MACzC;IACJ;IAEA,MAAM,IAAIG,kCAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC;EACvD;EAEA,MACaK,kBAAkBA,CAAA,EAAoB;IAC/C,IAAI,IAAI,CAAC5C,eAAe,KAAKO,SAAS,EAAE;MACpC,IAAI,CAACP,eAAe,GAAG,CAAC,MAAMgB,OAAO,CAACC,GAAG,CAAC,IAAI,CAACf,kBAAkB,CAAC6B,OAAO,CAACb,CAAC,IAAIA,CAAC,CAAC2B,sBAAsB,CAAC,CAAC,CAAC,CAAC,EACtG1B,IAAI,CAAC,CAAC,CACNhB,GAAG,CAACe,CAAC,IAAIzF,IAAI,CAACwG,QAAQ,CAACf,CAAC,CAAC,CAAC,CAC1BI,IAAI,CAAC,IAAI,CAAC;IACnB;IACA,IAAI,CAACrB,4BAA4B,CAAC,CAAC;IACnC,OAAO,IAAI,CAACD,eAAe;EAC/B;EAEA,MACa8C,cAAcA,CAACX,QAAgB,EAA6B;IACrE,KAAK,MAAM9B,aAAa,IAAI,IAAI,CAACH,kBAAkB,EAAE;MACjD,MAAMkC,QAAQ,GAAG,MAAM/B,aAAa,CAAC0C,sCAAsC,CAACZ,QAAQ,CAAC;MACrF,IAAIC,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAAT,mBAAU,EAACS,QAAQ,CAAC,CAAC,EAAE;QAClD,OAAO,IAAIE,qCAAgB,CAACF,QAAQ,CAAC;MACzC;IACJ;IAEA,MAAM,IAAIG,kCAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC;EACvD;EAEA,MACaS,oBAAoBA,CAAA,EAAoB;IACjD,MAAMC,KAAK,GAAG,CAAC,MAAMjC,OAAO,CAACC,GAAG,CAAC,IAAI,CAACf,kBAAkB,CAAC6B,OAAO,CAACb,CAAC,IAAIA,CAAC,CAACgC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE/B,IAAI,CAAC,CAAC;IAC5G,MAAMgC,UAAU,GAAG,MAAM,IAAI,CAACpD,kCAAkC,CAACqD,4BAA4B,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAGH,KAAK,CAAC9C,GAAG,CAACe,CAAC,IAAIzF,IAAI,CAACwG,QAAQ,CAACf,CAAC,CAAC,CAAC,EAAE,GAAGiC,UAAU,CAAC,CAAC7B,IAAI,CAAC,IAAI,CAAC;EAC1E;EAEA,MACa+B,gBAAgBA,CAACC,GAAW,EAA6B;IAClE,KAAK,MAAMjD,aAAa,IAAI,IAAI,CAACH,kBAAkB,EAAE;MACjD,MAAMkC,QAAQ,GAAG,MAAM/B,aAAa,CAACkD,yCAAyC,CAAC,GAAGD,GAAG,MAAM,CAAC;MAC5F,IAAIlB,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAAT,mBAAU,EAACS,QAAQ,CAAC,CAAC,EAAE;QAClD,OAAO,IAAIE,qCAAgB,CAACF,QAAQ,CAAC;MACzC;IACJ;IAEA,MAAM,IAAIG,kCAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC;EACvD;EAEA,MACaiB,qBAAqBA,CAACF,GAAW,EAAyB;IACnE,MAAMG,MAAM,GAAG,MAAM,IAAI,CAAC1D,kCAAkC,CAAC2D,2BAA2B,CAACJ,GAAG,CAAC;IAC7F,IAAIG,MAAM,IAAI,IAAI,EAAE;MAChB,MAAM,IAAIlB,kCAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACvD;IAEA,OAAO,IAAIoB,iCAAY,CAACF,MAAM,CAAC;EACnC;EAEA,MACaG,8BAA8BA,CAAA,EAAoB;IAC3D,MAAMT,UAAU,GAAG,MAAM,IAAI,CAACpD,kCAAkC,CAAC8D,6BAA6B,CAAC,CAAC;IAChG,OAAOV,UAAU,CAAC7B,IAAI,CAAC,IAAI,CAAC;EAChC;EAEA,MACawC,qBAAqBA,CAACR,GAAW,EAAyB;IACnE,OAAO,IAAIK,iCAAY,CAAC,MAAM,IAAI,CAAC5D,kCAAkC,CAACgE,6BAA6B,CAACT,GAAG,CAAC,CAAC;EAC7G;EAEA,MACaU,0BAA0BA,CAACV,GAAW,EAAyB;IACxE,OAAO,IAAIK,iCAAY,CACnB,MAAM,IAAI,CAAC5D,kCAAkC,CAACkE,qCAAqC,CAACX,GAAG,CAC3F,CAAC;EACL;EAEA,MACaY,gBAAgBA,CAAA,EAAoB;IAC7C,OAAO,CAAC,MAAMlD,OAAO,CAACC,GAAG,CAAC,IAAI,CAACf,kBAAkB,CAAC6B,OAAO,CAACb,CAAC,IAAIA,CAAC,CAACiD,oBAAoB,CAAC,CAAC,CAAC,CAAC,EACpFhD,IAAI,CAAC,CAAC,CACNhB,GAAG,CAACe,CAAC,IAAIzF,IAAI,CAACwG,QAAQ,CAACf,CAAC,CAAC,CAAC,CAC1BI,IAAI,CAAC,IAAI,CAAC;EACnB;EAEA,MACa8C,YAAYA,CAACjC,QAAgB,EAA6B;IACnE,KAAK,MAAM9B,aAAa,IAAI,IAAI,CAACH,kBAAkB,EAAE;MACjD,MAAMkC,QAAQ,GAAG,MAAM/B,aAAa,CAACgE,qCAAqC,CAAClC,QAAQ,CAAC;MACpF,IAAIC,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAAT,mBAAU,EAACS,QAAQ,CAAC,CAAC,EAAE;QAClD,OAAO,IAAIE,qCAAgB,CAACF,QAAQ,CAAC;MACzC;IACJ;IAEA,MAAM,IAAIG,kCAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC;EACvD;EAEA,MACa+B,cAAcA,CAAA,EAAoB;IAC3C,OAAO,CAAC,MAAMtD,OAAO,CAACC,GAAG,CAAC,IAAI,CAACf,kBAAkB,CAAC6B,OAAO,CAACb,CAAC,IAAIA,CAAC,CAACqD,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAClFpD,IAAI,CAAC,CAAC,CACNhB,GAAG,CAACe,CAAC,IAAIzF,IAAI,CAACwG,QAAQ,CAACf,CAAC,CAAC,CAAC,CAC1BI,IAAI,CAAC,IAAI,CAAC;EACnB;EAEA,MACakD,UAAUA,CAACrC,QAAgB,EAA6B;IACjE,KAAK,MAAM9B,aAAa,IAAI,IAAI,CAACH,kBAAkB,EAAE;MACjD,MAAMkC,QAAQ,GAAG,MAAM/B,aAAa,CAACoE,mCAAmC,CAACtC,QAAQ,CAAC;MAClF,IAAIC,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAAT,mBAAU,EAACS,QAAQ,CAAC,CAAC,EAAE;QAClD,OAAO,IAAIE,qCAAgB,CAACF,QAAQ,CAAC;MACzC;IACJ;IAEA,MAAM,IAAIG,kCAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC;EACvD;EAEA,MACamC,gBAAgBA,CAAA,EAAoB;IAC7C,OAAO,CAAC,MAAM1D,OAAO,CAACC,GAAG,CAAC,IAAI,CAACf,kBAAkB,CAAC6B,OAAO,CAACb,CAAC,IAAIA,CAAC,CAACyD,oBAAoB,CAAC,CAAC,CAAC,CAAC,EACpFxD,IAAI,CAAC,CAAC,CACNhB,GAAG,CAACe,CAAC,IAAIzF,IAAI,CAACwG,QAAQ,CAACf,CAAC,CAAC,CAAC,CAC1BI,IAAI,CAAC,IAAI,CAAC;EACnB;EAEA,MACasD,YAAYA,CAACzC,QAAgB,EAA6B;IACnE,KAAK,MAAM9B,aAAa,IAAI,IAAI,CAACH,kBAAkB,EAAE;MACjD,MAAMkC,QAAQ,GAAG,MAAM/B,aAAa,CAACwE,qCAAqC,CAAC1C,QAAQ,CAAC;MACpF,IAAIC,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAAT,mBAAU,EAACS,QAAQ,CAAC,CAAC,EAAE;QAClD,OAAO,IAAIE,qCAAgB,CAACF,QAAQ,CAAC;MACzC;IACJ;IAEA,MAAM,IAAIG,kCAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC;EACvD;AACJ,CAAC,OAAAuC,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,iBAAA1I,IAAA,GAAAmC,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,iBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,sBAAAzI,KAAA,GAAAkC,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,sBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,sBAAAxI,KAAA,GAAAiC,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,sBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,mBAAAvI,KAAA,GAAAgC,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,mBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,4BAAAtI,KAAA,GAAA+B,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,4BAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,uBAAArI,KAAA,GAAA8B,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,uBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,yBAAApI,KAAA,GAAA6B,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,yBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,oBAAAnI,KAAA,GAAA4B,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,oBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,yBAAAlI,KAAA,GAAA2B,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,yBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,qBAAAjI,MAAA,GAAA0B,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,qBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,2BAAAhI,MAAA,GAAAyB,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,2BAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,uBAAA/H,MAAA,GAAAwB,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,uBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,4BAAA9H,MAAA,GAAAuB,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,4BAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,qCAAA7H,MAAA,GAAAsB,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,qCAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,4BAAA5H,MAAA,GAAAqB,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,4BAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,iCAAA3H,MAAA,GAAAoB,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,iCAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,uBAAA1H,MAAA,GAAAmB,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,uBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,mBAAAzH,MAAA,GAAAkB,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,mBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,qBAAAxH,MAAA,GAAAiB,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,qBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,iBAAAvH,MAAA,GAAAgB,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,iBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,uBAAAtH,MAAA,GAAAe,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,uBAAApH,MAAA,CAAAoH,SAAA,OAAAD,0BAAA,CAAA5G,OAAA,EAAAP,MAAA,CAAAoH,SAAA,mBAAArH,MAAA,GAAAc,MAAA,CAAAE,wBAAA,CAAAf,MAAA,CAAAoH,SAAA,mBAAApH,MAAA,CAAAoH,SAAA,IAAApH,MAAA","ignoreList":[]}
|
|
@@ -14,8 +14,10 @@ var _Params = require("../../../Commons/HttpServer/AttributeRouting/Params");
|
|
|
14
14
|
var _Results = require("../../../Commons/HttpServer/AttributeRouting/Results");
|
|
15
15
|
var _SingletonController = require("../../../Commons/HttpServer/ExpressWrapper/SingletonController");
|
|
16
16
|
var _WellKnownDirectories = require("../../../../../Common/WellKnownDirectories");
|
|
17
|
+
var _GitUtils = require("../../../Commons/GitUtils");
|
|
17
18
|
var _GlobToRegexp = require("./GlobToRegexp");
|
|
18
19
|
var _dec, _class;
|
|
20
|
+
const GIT_BRANCH_POLL_DELAY = 3000;
|
|
19
21
|
let BuildServerBackendResourcesUpdatesController = exports.BuildServerBackendResourcesUpdatesController = (_dec = (0, _Methods.httpGet)("/updates-observer/check-last-update-long-poll", _Results.httpReturn.PlainText, (0, _Params.httpQueryParam)("prevLastUpdate", _Params.httpType.Number)), (_class = class BuildServerBackendResourcesUpdatesController extends _SingletonController.SingletonController {
|
|
20
22
|
constructor(allFarmConfig) {
|
|
21
23
|
super();
|
|
@@ -23,26 +25,14 @@ let BuildServerBackendResourcesUpdatesController = exports.BuildServerBackendRes
|
|
|
23
25
|
this.updateMonitor = new Monitor();
|
|
24
26
|
this.farmWatchers = void 0;
|
|
25
27
|
this.formWatchers = void 0;
|
|
26
|
-
this.resourcesWatcher = void 0;
|
|
27
28
|
this.allFarmConfig = void 0;
|
|
28
29
|
this.farmWatchingRegexps = ["sugarTemplates", "legacyfetchfunctions", "jsHelpers", `images`, "tour", "controls", "commonResources", "externalConverters"].map(_GlobToRegexp.globToRegexp);
|
|
29
30
|
this.formsWatchingRegexps = [`**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/schemas`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/converters`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/mergers`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/autocalc`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/validations`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/fetchfunctions`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/helpers`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/sugar`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/normalize`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/normalizers`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/unmap`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/map`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/patch`].map(_GlobToRegexp.globToRegexp);
|
|
30
|
-
this.
|
|
31
|
-
if (
|
|
31
|
+
this.getHandleFSUpdate = directoriesRegExps => (eventType, filePath, rootDir, force = false) => {
|
|
32
|
+
if (force || directoriesRegExps.some(x => x.test(filePath))) {
|
|
32
33
|
(0, _fs.stat)(_path.default.join(rootDir, filePath), (err, fileStat) => {
|
|
33
34
|
const fileTicks = Math.max(fileStat.mtimeMs, fileStat.ctimeMs);
|
|
34
|
-
if (fileTicks > this.lastUpdateTime) {
|
|
35
|
-
this.lastUpdateTime = Date.now();
|
|
36
|
-
this.updateMonitor.pulseAll();
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
this.handleFormFSUpdate = (eventType, filePath, rootDir) => {
|
|
42
|
-
if (this.formsWatchingRegexps.some(x => x.test(filePath))) {
|
|
43
|
-
(0, _fs.stat)(_path.default.join(rootDir, filePath), (err, fileStat) => {
|
|
44
|
-
const fileTicks = Math.max(fileStat.mtimeMs, fileStat.ctimeMs);
|
|
45
|
-
if (fileTicks > this.lastUpdateTime) {
|
|
35
|
+
if (force || fileTicks > this.lastUpdateTime) {
|
|
46
36
|
this.lastUpdateTime = Date.now();
|
|
47
37
|
this.updateMonitor.pulseAll();
|
|
48
38
|
}
|
|
@@ -53,28 +43,43 @@ let BuildServerBackendResourcesUpdatesController = exports.BuildServerBackendRes
|
|
|
53
43
|
this.lastUpdateTime = Date.now();
|
|
54
44
|
}
|
|
55
45
|
async beforeStart() {
|
|
56
|
-
this.farmWatchers = this.allFarmConfig.map(config =>
|
|
57
|
-
// @ts-ignore
|
|
58
|
-
(0, _fs.watch)(config.farmDirectory, {
|
|
59
|
-
recursive: true
|
|
60
|
-
}, _lodash.default.debounce((x, y) => this.handleFarmFSUpdate(x, y, config.farmDirectory), 200)));
|
|
46
|
+
this.farmWatchers = this.allFarmConfig.map(config => this.getDirectoryWatcher(config.farmDirectory, this.getHandleFSUpdate(this.farmWatchingRegexps)));
|
|
61
47
|
this.formWatchers = this.allFarmConfig.map(config => {
|
|
62
48
|
const formRootDirectory = _path.default.normalize(_path.default.join(config.farmDirectory, "..", _WellKnownDirectories.WellKnownDirectories.FormsDirectory));
|
|
63
|
-
|
|
64
|
-
// @ts-ignore
|
|
65
|
-
return (0, _fs.watch)(formRootDirectory, {
|
|
66
|
-
recursive: true
|
|
67
|
-
}, _lodash.default.debounce((x, y) => this.handleFormFSUpdate(x, y, formRootDirectory), 200));
|
|
49
|
+
return this.getDirectoryWatcher(formRootDirectory, this.getHandleFSUpdate(this.formsWatchingRegexps));
|
|
68
50
|
});
|
|
69
51
|
}
|
|
52
|
+
getDirectoryWatcher(directoryPath, fsUpdateHandler) {
|
|
53
|
+
// @ts-ignore
|
|
54
|
+
const fsWatcher = (0, _fs.watch)(directoryPath, {
|
|
55
|
+
recursive: true
|
|
56
|
+
}, _lodash.default.debounce((x, y) => fsUpdateHandler(x, y, directoryPath), 200));
|
|
57
|
+
let savedBranch = null;
|
|
58
|
+
const checkGitBranch = () => {
|
|
59
|
+
const currentBranch = (0, _GitUtils.getGitBranch)(directoryPath);
|
|
60
|
+
if (!savedBranch) {
|
|
61
|
+
savedBranch = currentBranch;
|
|
62
|
+
} else if (currentBranch !== savedBranch) {
|
|
63
|
+
savedBranch = currentBranch;
|
|
64
|
+
fsUpdateHandler("git", "", directoryPath, true);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
return {
|
|
68
|
+
fsWatcher: fsWatcher,
|
|
69
|
+
gitPollIntervalId: setInterval(checkGitBranch, GIT_BRANCH_POLL_DELAY)
|
|
70
|
+
};
|
|
71
|
+
}
|
|
70
72
|
async getLastUpdateTime(prevLastUpdateTime) {
|
|
71
73
|
return this.lastUpdateTime.toString();
|
|
72
74
|
}
|
|
73
75
|
async afterStop() {
|
|
74
|
-
var _this$farmWatchers, _this$formWatchers
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
var _this$farmWatchers, _this$formWatchers;
|
|
77
|
+
const clearWatcher = watcher => {
|
|
78
|
+
watcher.fsWatcher.close();
|
|
79
|
+
clearInterval(watcher.gitPollIntervalId);
|
|
80
|
+
};
|
|
81
|
+
(_this$farmWatchers = this.farmWatchers) === null || _this$farmWatchers === void 0 || _this$farmWatchers.forEach(clearWatcher);
|
|
82
|
+
(_this$formWatchers = this.formWatchers) === null || _this$formWatchers === void 0 || _this$formWatchers.forEach(clearWatcher);
|
|
78
83
|
}
|
|
79
84
|
}, ((0, _applyDecoratedDescriptor2.default)(_class.prototype, "getLastUpdateTime", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "getLastUpdateTime"), _class.prototype)), _class));
|
|
80
85
|
class Monitor {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildServerBackendResourcesUpdatesController.js","names":["_fs","require","_path","_interopRequireDefault","_lodash","_Methods","_Params","_Results","_SingletonController","_WellKnownDirectories","_GlobToRegexp","_dec","_class","BuildServerBackendResourcesUpdatesController","exports","httpGet","httpReturn","PlainText","httpQueryParam","httpType","Number","SingletonController","constructor","allFarmConfig","lastUpdateTime","updateMonitor","Monitor","farmWatchers","formWatchers","resourcesWatcher","farmWatchingRegexps","map","globToRegexp","formsWatchingRegexps","WellKnownDirectories","CandySubdirectoryName","FormJsonFileName","handleFarmFSUpdate","eventType","filePath","rootDir","some","x","test","stat","path","join","err","fileStat","fileTicks","Math","max","mtimeMs","ctimeMs","Date","now","pulseAll","handleFormFSUpdate","beforeStart","config","watch","farmDirectory","recursive","_","debounce","y","formRootDirectory","normalize","FormsDirectory","getLastUpdateTime","prevLastUpdateTime","toString","afterStop","_this$farmWatchers","_this$formWatchers","_this$resourcesWatche","i","close","_applyDecoratedDescriptor2","default","prototype","Object","getOwnPropertyDescriptor","awaiters","waitPromiseHandler","resolve","push","wait","Promise","awaiter"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.ts"],"sourcesContent":["import { FSWatcher, watch, stat } from \"fs\";\nimport path from \"path\";\n\nimport _ from \"lodash\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { httpGet } from \"../../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { httpQueryParam, httpType } from \"../../../Commons/HttpServer/AttributeRouting/Params\";\nimport { httpReturn } from \"../../../Commons/HttpServer/AttributeRouting/Results\";\nimport { SingletonController } from \"../../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { WellKnownDirectories } from \"../../../../../Common/WellKnownDirectories\";\n\nimport { globToRegexp } from \"./GlobToRegexp\";\n\nexport class BuildServerBackendResourcesUpdatesController extends SingletonController {\n private lastUpdateTime = 0;\n private readonly updateMonitor: Monitor = new Monitor();\n private farmWatchers?: FSWatcher[];\n private formWatchers?: FSWatcher[];\n private readonly resourcesWatcher?: FSWatcher;\n private readonly allFarmConfig: FarmConfig[];\n private readonly farmWatchingRegexps = [\n \"sugarTemplates\",\n \"legacyfetchfunctions\",\n \"jsHelpers\",\n `images`,\n \"tour\",\n \"controls\",\n \"commonResources\",\n \"externalConverters\",\n ].map(globToRegexp);\n private readonly formsWatchingRegexps = [\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/schemas`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/converters`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/mergers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/autocalc`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/validations`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/fetchfunctions`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/helpers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/${WellKnownDirectories.FormJsonFileName}`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/sugar`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/normalize`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/normalizers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/unmap`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/map`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/patch`,\n ].map(globToRegexp);\n\n public constructor(allFarmConfig: FarmConfig[]) {\n super();\n this.allFarmConfig = allFarmConfig;\n this.lastUpdateTime = Date.now();\n }\n\n public async beforeStart(): Promise<void> {\n this.farmWatchers = this.allFarmConfig.map(config =>\n // @ts-ignore\n watch(\n config.farmDirectory,\n { recursive: true },\n _.debounce((x: string, y: string) => this.handleFarmFSUpdate(x, y, config.farmDirectory), 200)\n )\n );\n this.formWatchers = this.allFarmConfig.map(config => {\n const formRootDirectory = path.normalize(\n path.join(config.farmDirectory, \"..\", WellKnownDirectories.FormsDirectory)\n );\n\n // @ts-ignore\n return watch(\n formRootDirectory,\n { recursive: true },\n _.debounce((x: string, y: string) => this.handleFormFSUpdate(x, y, formRootDirectory), 200)\n );\n });\n }\n\n @httpGet(\n \"/updates-observer/check-last-update-long-poll\",\n httpReturn.PlainText,\n httpQueryParam(\"prevLastUpdate\", httpType.Number)\n )\n public async getLastUpdateTime(prevLastUpdateTime?: number): Promise<string> {\n return this.lastUpdateTime.toString();\n }\n\n public async afterStop(): Promise<void> {\n this.farmWatchers?.map(i => i.close());\n this.formWatchers?.map(i => i.close());\n this.resourcesWatcher?.close();\n }\n\n private readonly handleFarmFSUpdate = (eventType: string, filePath: string, rootDir: string) => {\n if (this.farmWatchingRegexps.some(x => x.test(filePath))) {\n stat(path.join(rootDir, filePath), (err, fileStat) => {\n const fileTicks = Math.max(fileStat.mtimeMs, fileStat.ctimeMs);\n if (fileTicks > this.lastUpdateTime) {\n this.lastUpdateTime = Date.now();\n this.updateMonitor.pulseAll();\n }\n });\n }\n };\n\n private readonly handleFormFSUpdate = (eventType: string, filePath: string, rootDir: string) => {\n if (this.formsWatchingRegexps.some(x => x.test(filePath))) {\n stat(path.join(rootDir, filePath), (err, fileStat) => {\n const fileTicks = Math.max(fileStat.mtimeMs, fileStat.ctimeMs);\n if (fileTicks > this.lastUpdateTime) {\n this.lastUpdateTime = Date.now();\n this.updateMonitor.pulseAll();\n }\n });\n }\n };\n}\n\nclass Monitor {\n private awaiters: Array<() => void> = [];\n\n public wait(): Promise<void> {\n return new Promise(this.waitPromiseHandler);\n }\n\n public pulseAll(): void {\n const awaiters = [...this.awaiters];\n this.awaiters = [];\n for (const awaiter of awaiters) {\n awaiter();\n }\n }\n\n private readonly waitPromiseHandler = (resolve: () => void) => {\n this.awaiters.push(resolve);\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"BuildServerBackendResourcesUpdatesController.js","names":["_fs","require","_path","_interopRequireDefault","_lodash","_Methods","_Params","_Results","_SingletonController","_WellKnownDirectories","_GitUtils","_GlobToRegexp","_dec","_class","GIT_BRANCH_POLL_DELAY","BuildServerBackendResourcesUpdatesController","exports","httpGet","httpReturn","PlainText","httpQueryParam","httpType","Number","SingletonController","constructor","allFarmConfig","lastUpdateTime","updateMonitor","Monitor","farmWatchers","formWatchers","farmWatchingRegexps","map","globToRegexp","formsWatchingRegexps","WellKnownDirectories","CandySubdirectoryName","FormJsonFileName","getHandleFSUpdate","directoriesRegExps","eventType","filePath","rootDir","force","some","x","test","stat","path","join","err","fileStat","fileTicks","Math","max","mtimeMs","ctimeMs","Date","now","pulseAll","beforeStart","config","getDirectoryWatcher","farmDirectory","formRootDirectory","normalize","FormsDirectory","directoryPath","fsUpdateHandler","fsWatcher","watch","recursive","_","debounce","y","savedBranch","checkGitBranch","currentBranch","getGitBranch","gitPollIntervalId","setInterval","getLastUpdateTime","prevLastUpdateTime","toString","afterStop","_this$farmWatchers","_this$formWatchers","clearWatcher","watcher","close","clearInterval","forEach","_applyDecoratedDescriptor2","default","prototype","Object","getOwnPropertyDescriptor","awaiters","waitPromiseHandler","resolve","push","wait","Promise","awaiter"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.ts"],"sourcesContent":["import { FSWatcher, watch, stat } from \"fs\";\nimport path from \"path\";\n\nimport _ from \"lodash\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { httpGet } from \"../../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { httpQueryParam, httpType } from \"../../../Commons/HttpServer/AttributeRouting/Params\";\nimport { httpReturn } from \"../../../Commons/HttpServer/AttributeRouting/Results\";\nimport { SingletonController } from \"../../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { WellKnownDirectories } from \"../../../../../Common/WellKnownDirectories\";\nimport { getGitBranch } from \"../../../Commons/GitUtils\";\n\nimport { globToRegexp } from \"./GlobToRegexp\";\n\ntype FSUpdateHandler = (eventType: string, filePath: string, rootDir: string, force?: boolean) => void;\n\ninterface DirectoryWatcher {\n fsWatcher: FSWatcher;\n gitPollIntervalId: NodeJS.Timeout;\n}\nconst GIT_BRANCH_POLL_DELAY = 3000;\n\nexport class BuildServerBackendResourcesUpdatesController extends SingletonController {\n private lastUpdateTime = 0;\n private readonly updateMonitor: Monitor = new Monitor();\n private farmWatchers?: DirectoryWatcher[];\n private formWatchers?: DirectoryWatcher[];\n private readonly allFarmConfig: FarmConfig[];\n private readonly farmWatchingRegexps = [\n \"sugarTemplates\",\n \"legacyfetchfunctions\",\n \"jsHelpers\",\n `images`,\n \"tour\",\n \"controls\",\n \"commonResources\",\n \"externalConverters\",\n ].map(globToRegexp);\n private readonly formsWatchingRegexps = [\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/schemas`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/converters`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/mergers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/autocalc`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/validations`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/fetchfunctions`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/helpers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/${WellKnownDirectories.FormJsonFileName}`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/sugar`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/normalize`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/normalizers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/unmap`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/map`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/patch`,\n ].map(globToRegexp);\n\n public constructor(allFarmConfig: FarmConfig[]) {\n super();\n this.allFarmConfig = allFarmConfig;\n this.lastUpdateTime = Date.now();\n }\n\n public async beforeStart(): Promise<void> {\n this.farmWatchers = this.allFarmConfig.map(config =>\n this.getDirectoryWatcher(config.farmDirectory, this.getHandleFSUpdate(this.farmWatchingRegexps))\n );\n\n this.formWatchers = this.allFarmConfig.map(config => {\n const formRootDirectory = path.normalize(\n path.join(config.farmDirectory, \"..\", WellKnownDirectories.FormsDirectory)\n );\n\n return this.getDirectoryWatcher(formRootDirectory, this.getHandleFSUpdate(this.formsWatchingRegexps));\n });\n }\n\n private getDirectoryWatcher(directoryPath: string, fsUpdateHandler: FSUpdateHandler): DirectoryWatcher {\n // @ts-ignore\n const fsWatcher = watch(\n directoryPath,\n { recursive: true },\n _.debounce((x: string, y: string) => fsUpdateHandler(x, y, directoryPath), 200)\n );\n\n let savedBranch: string | null = null;\n const checkGitBranch = () => {\n const currentBranch = getGitBranch(directoryPath);\n\n if (!savedBranch) {\n savedBranch = currentBranch;\n } else if (currentBranch !== savedBranch) {\n savedBranch = currentBranch;\n fsUpdateHandler(\"git\", \"\", directoryPath, true);\n }\n };\n\n return { fsWatcher: fsWatcher, gitPollIntervalId: setInterval(checkGitBranch, GIT_BRANCH_POLL_DELAY) };\n }\n\n @httpGet(\n \"/updates-observer/check-last-update-long-poll\",\n httpReturn.PlainText,\n httpQueryParam(\"prevLastUpdate\", httpType.Number)\n )\n public async getLastUpdateTime(prevLastUpdateTime?: number): Promise<string> {\n return this.lastUpdateTime.toString();\n }\n\n public async afterStop(): Promise<void> {\n const clearWatcher = (watcher: DirectoryWatcher) => {\n watcher.fsWatcher.close();\n clearInterval(watcher.gitPollIntervalId);\n };\n this.farmWatchers?.forEach(clearWatcher);\n this.formWatchers?.forEach(clearWatcher);\n }\n\n private readonly getHandleFSUpdate: (directoriesRegExps: RegExp[]) => FSUpdateHandler =\n (directoriesRegExps: RegExp[]) =>\n (eventType: string, filePath: string, rootDir: string, force: boolean = false) => {\n if (force || directoriesRegExps.some(x => x.test(filePath))) {\n stat(path.join(rootDir, filePath), (err, fileStat) => {\n const fileTicks = Math.max(fileStat.mtimeMs, fileStat.ctimeMs);\n if (force || fileTicks > this.lastUpdateTime) {\n this.lastUpdateTime = Date.now();\n this.updateMonitor.pulseAll();\n }\n });\n }\n };\n}\n\nclass Monitor {\n private awaiters: Array<() => void> = [];\n\n public wait(): Promise<void> {\n return new Promise(this.waitPromiseHandler);\n }\n\n public pulseAll(): void {\n const awaiters = [...this.awaiters];\n this.awaiters = [];\n for (const awaiter of awaiters) {\n awaiter();\n }\n }\n\n private readonly waitPromiseHandler = (resolve: () => void) => {\n this.awaiters.push(resolve);\n };\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AAGA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,oBAAA,GAAAP,OAAA;AACA,IAAAQ,qBAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AAEA,IAAAU,aAAA,GAAAV,OAAA;AAA8C,IAAAW,IAAA,EAAAC,MAAA;AAQ9C,MAAMC,qBAAqB,GAAG,IAAI;AAAC,IAEtBC,4CAA4C,GAAAC,OAAA,CAAAD,4CAAA,IAAAH,IAAA,GA4EpD,IAAAK,gBAAO,EACJ,+CAA+C,EAC/CC,mBAAU,CAACC,SAAS,EACpB,IAAAC,sBAAc,EAAC,gBAAgB,EAAEC,gBAAQ,CAACC,MAAM,CACpD,CAAC,GAAAT,MAAA,GAhFE,MAAME,4CAA4C,SAASQ,wCAAmB,CAAC;EAiC3EC,WAAWA,CAACC,aAA2B,EAAE;IAC5C,KAAK,CAAC,CAAC;IAAC,KAjCJC,cAAc,GAAG,CAAC;IAAA,KACTC,aAAa,GAAY,IAAIC,OAAO,CAAC,CAAC;IAAA,KAC/CC,YAAY;IAAA,KACZC,YAAY;IAAA,KACHL,aAAa;IAAA,KACbM,mBAAmB,GAAG,CACnC,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,QAAQ,EACR,MAAM,EACN,UAAU,EACV,iBAAiB,EACjB,oBAAoB,CACvB,CAACC,GAAG,CAACC,0BAAY,CAAC;IAAA,KACFC,oBAAoB,GAAG,CACpC,YAAYC,0CAAoB,CAACC,qBAAqB,UAAU,EAChE,YAAYD,0CAAoB,CAACC,qBAAqB,aAAa,EACnE,YAAYD,0CAAoB,CAACC,qBAAqB,UAAU,EAChE,YAAYD,0CAAoB,CAACC,qBAAqB,WAAW,EACjE,YAAYD,0CAAoB,CAACC,qBAAqB,cAAc,EACpE,YAAYD,0CAAoB,CAACC,qBAAqB,iBAAiB,EACvE,YAAYD,0CAAoB,CAACC,qBAAqB,UAAU,EAChE,YAAYD,0CAAoB,CAACC,qBAAqB,IAAID,0CAAoB,CAACE,gBAAgB,EAAE,EACjG,YAAYF,0CAAoB,CAACC,qBAAqB,QAAQ,EAC9D,YAAYD,0CAAoB,CAACC,qBAAqB,YAAY,EAClE,YAAYD,0CAAoB,CAACC,qBAAqB,cAAc,EACpE,YAAYD,0CAAoB,CAACC,qBAAqB,QAAQ,EAC9D,YAAYD,0CAAoB,CAACC,qBAAqB,MAAM,EAC5D,YAAYD,0CAAoB,CAACC,qBAAqB,QAAQ,CACjE,CAACJ,GAAG,CAACC,0BAAY,CAAC;IAAA,KA+DFK,iBAAiB,GAC7BC,kBAA4B,IAC7B,CAACC,SAAiB,EAAEC,QAAgB,EAAEC,OAAe,EAAEC,KAAc,GAAG,KAAK,KAAK;MAC9E,IAAIA,KAAK,IAAIJ,kBAAkB,CAACK,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,IAAI,CAACL,QAAQ,CAAC,CAAC,EAAE;QACzD,IAAAM,QAAI,EAACC,aAAI,CAACC,IAAI,CAACP,OAAO,EAAED,QAAQ,CAAC,EAAE,CAACS,GAAG,EAAEC,QAAQ,KAAK;UAClD,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAACH,QAAQ,CAACI,OAAO,EAAEJ,QAAQ,CAACK,OAAO,CAAC;UAC9D,IAAIb,KAAK,IAAIS,SAAS,GAAG,IAAI,CAAC1B,cAAc,EAAE;YAC1C,IAAI,CAACA,cAAc,GAAG+B,IAAI,CAACC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC/B,aAAa,CAACgC,QAAQ,CAAC,CAAC;UACjC;QACJ,CAAC,CAAC;MACN;IACJ,CAAC;IAvED,IAAI,CAAClC,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,cAAc,GAAG+B,IAAI,CAACC,GAAG,CAAC,CAAC;EACpC;EAEA,MAAaE,WAAWA,CAAA,EAAkB;IACtC,IAAI,CAAC/B,YAAY,GAAG,IAAI,CAACJ,aAAa,CAACO,GAAG,CAAC6B,MAAM,IAC7C,IAAI,CAACC,mBAAmB,CAACD,MAAM,CAACE,aAAa,EAAE,IAAI,CAACzB,iBAAiB,CAAC,IAAI,CAACP,mBAAmB,CAAC,CACnG,CAAC;IAED,IAAI,CAACD,YAAY,GAAG,IAAI,CAACL,aAAa,CAACO,GAAG,CAAC6B,MAAM,IAAI;MACjD,MAAMG,iBAAiB,GAAGhB,aAAI,CAACiB,SAAS,CACpCjB,aAAI,CAACC,IAAI,CAACY,MAAM,CAACE,aAAa,EAAE,IAAI,EAAE5B,0CAAoB,CAAC+B,cAAc,CAC7E,CAAC;MAED,OAAO,IAAI,CAACJ,mBAAmB,CAACE,iBAAiB,EAAE,IAAI,CAAC1B,iBAAiB,CAAC,IAAI,CAACJ,oBAAoB,CAAC,CAAC;IACzG,CAAC,CAAC;EACN;EAEQ4B,mBAAmBA,CAACK,aAAqB,EAAEC,eAAgC,EAAoB;IACnG;IACA,MAAMC,SAAS,GAAG,IAAAC,SAAK,EACnBH,aAAa,EACb;MAAEI,SAAS,EAAE;IAAK,CAAC,EACnBC,eAAC,CAACC,QAAQ,CAAC,CAAC5B,CAAS,EAAE6B,CAAS,KAAKN,eAAe,CAACvB,CAAC,EAAE6B,CAAC,EAAEP,aAAa,CAAC,EAAE,GAAG,CAClF,CAAC;IAED,IAAIQ,WAA0B,GAAG,IAAI;IACrC,MAAMC,cAAc,GAAGA,CAAA,KAAM;MACzB,MAAMC,aAAa,GAAG,IAAAC,sBAAY,EAACX,aAAa,CAAC;MAEjD,IAAI,CAACQ,WAAW,EAAE;QACdA,WAAW,GAAGE,aAAa;MAC/B,CAAC,MAAM,IAAIA,aAAa,KAAKF,WAAW,EAAE;QACtCA,WAAW,GAAGE,aAAa;QAC3BT,eAAe,CAAC,KAAK,EAAE,EAAE,EAAED,aAAa,EAAE,IAAI,CAAC;MACnD;IACJ,CAAC;IAED,OAAO;MAAEE,SAAS,EAAEA,SAAS;MAAEU,iBAAiB,EAAEC,WAAW,CAACJ,cAAc,EAAE9D,qBAAqB;IAAE,CAAC;EAC1G;EAEA,MAKamE,iBAAiBA,CAACC,kBAA2B,EAAmB;IACzE,OAAO,IAAI,CAACxD,cAAc,CAACyD,QAAQ,CAAC,CAAC;EACzC;EAEA,MAAaC,SAASA,CAAA,EAAkB;IAAA,IAAAC,kBAAA,EAAAC,kBAAA;IACpC,MAAMC,YAAY,GAAIC,OAAyB,IAAK;MAChDA,OAAO,CAACnB,SAAS,CAACoB,KAAK,CAAC,CAAC;MACzBC,aAAa,CAACF,OAAO,CAACT,iBAAiB,CAAC;IAC5C,CAAC;IACD,CAAAM,kBAAA,OAAI,CAACxD,YAAY,cAAAwD,kBAAA,eAAjBA,kBAAA,CAAmBM,OAAO,CAACJ,YAAY,CAAC;IACxC,CAAAD,kBAAA,OAAI,CAACxD,YAAY,cAAAwD,kBAAA,eAAjBA,kBAAA,CAAmBK,OAAO,CAACJ,YAAY,CAAC;EAC5C;AAeJ,CAAC,OAAAK,0BAAA,CAAAC,OAAA,EAAAhF,MAAA,CAAAiF,SAAA,wBAAAlF,IAAA,GAAAmF,MAAA,CAAAC,wBAAA,CAAAnF,MAAA,CAAAiF,SAAA,wBAAAjF,MAAA,CAAAiF,SAAA,IAAAjF,MAAA;AAED,MAAMe,OAAO,CAAC;EAAAJ,YAAA;IAAA,KACFyE,QAAQ,GAAsB,EAAE;IAAA,KAcvBC,kBAAkB,GAAIC,OAAmB,IAAK;MAC3D,IAAI,CAACF,QAAQ,CAACG,IAAI,CAACD,OAAO,CAAC;IAC/B,CAAC;EAAA;EAdME,IAAIA,CAAA,EAAkB;IACzB,OAAO,IAAIC,OAAO,CAAC,IAAI,CAACJ,kBAAkB,CAAC;EAC/C;EAEOvC,QAAQA,CAAA,EAAS;IACpB,MAAMsC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAACA,QAAQ,CAAC;IACnC,IAAI,CAACA,QAAQ,GAAG,EAAE;IAClB,KAAK,MAAMM,OAAO,IAAIN,QAAQ,EAAE;MAC5BM,OAAO,CAAC,CAAC;IACb;EACJ;AAKJ","ignoreList":[]}
|
|
@@ -44,6 +44,15 @@ let BuildServerBuildFormsController = exports.BuildServerBuildFormsController =
|
|
|
44
44
|
this.engineDirectory = engineDirectory;
|
|
45
45
|
this.buildDebugOnly = buildDebugOnly;
|
|
46
46
|
}
|
|
47
|
+
async setupMiddleware(expressApplication) {
|
|
48
|
+
expressApplication.use("/force-gfvs", (req, res, next) => {
|
|
49
|
+
this.resetAllFarmDirectories();
|
|
50
|
+
next();
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
resetAllFarmDirectories() {
|
|
54
|
+
this.allFarmDirectory = this.allFarmConfig.map(i => new _FarmDirectory.FarmDirectory(i.farmDirectory));
|
|
55
|
+
}
|
|
47
56
|
async getDevServerUpdateJson(updateName) {
|
|
48
57
|
return await this.getFirstExistsFileAsStreamFromDevServer(`static/${updateName}.hot-update.json`);
|
|
49
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildServerBuildFormsController.js","names":["path","_interopRequireWildcard","require","_mimeTypes","_interopRequireDefault","_ResolveFormInfo","_Methods","_NotFoundWebError","_Params","_Results","_StreamResultHandler","_SingletonController","_StaticLogger","_WellKnownDirectories","_BuildFormDevServer","_FarmDirectory","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_class","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","BuildServerBuildFormsController","exports","httpGet","httpReturn","StreamWithMime","httpUrlParam","httpType","String","Stream","SingletonController","constructor","allFarmConfig","candyModulesDirectory","useGeneratorFromLocalSources","engineDirectory","buildDebugOnly","nightly","allFarmDirectory","allFarmDirectoryPath","nextFreePort","devServers","map","farm","FarmDirectory","farmDirectory","getDevServerUpdateJson","updateName","getFirstExistsFileAsStreamFromDevServer","getDevServerUpdateJs","getDevServerUpdateJsMap","getFormScript","fileName","fileNameWithoutExt","gfv","buildFormDevServer","getOrCreateBuildFormDevServer","StreamResult","getFileAsStream","getFormStyle","theme","replace","getFormImages","mime","lookup","filename","mimeType","devServer","values","undefined","NotFoundWebError","getAllAttachmentPathFileNames","Promise","all","getAllGfvs","flat","getAttachmentPathsFileContent","resultStream","getGeneratedFileAsStream","getAttachmentPathsWithGfvsFileContent","getAllNormalizationFileNames","result","gfvInfos","getAllGfvWithLocations","formPath","_formConfig$settings$","_formConfig$settings","formConfig","readFormConfig","join","WellKnownDirectories","FormJsonFileName","getLogger","useServerSideFLangNormalization","settings","push","getNormalizationFileContent","_formConfig$settings$2","_formConfig$settings2","gfvInfo","find","x","BuildFormDevServer","start","_applyDecoratedDescriptor2","prototype"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.ts"],"sourcesContent":["import * as path from \"path\";\n\nimport mime from \"mime-types\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { readFormConfig } from \"../../../BuildTasks/ResolveFormInfo\";\nimport { httpGet } from \"../../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { NotFoundWebError } from \"../../../Commons/HttpServer/AttributeRouting/NotFoundWebError\";\nimport { httpType, httpUrlParam } from \"../../../Commons/HttpServer/AttributeRouting/Params\";\nimport { httpReturn } from \"../../../Commons/HttpServer/AttributeRouting/Results\";\nimport { StreamResult } from \"../../../Commons/HttpServer/AttributeRouting/Results/StreamResultHandler\";\nimport { SingletonController } from \"../../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { getLogger } from \"../../../Commons/Logging/StaticLogger\";\nimport { WellKnownDirectories } from \"../../../../../Common/WellKnownDirectories\";\n\nimport { BuildFormDevServer } from \"./DevServers/BuildFormDevServer\";\nimport { FarmDirectory } from \"./Directories/FarmDirectory\";\nimport { IGeneratedServerSideSourcesProvider } from \"./IGeneratedServerSideSourcesProvider\";\n\nexport class BuildServerBuildFormsController\n extends SingletonController\n implements IGeneratedServerSideSourcesProvider\n{\n private readonly allFarmDirectory: FarmDirectory[];\n private readonly allFarmDirectoryPath: string[];\n private nextFreePort = 12001;\n private readonly devServers: { [gfv: string]: undefined | BuildFormDevServer } = {};\n private readonly candyModulesDirectory: string;\n private readonly allFarmConfig: FarmConfig[];\n private readonly useGeneratorFromLocalSources: boolean;\n private readonly engineDirectory: string;\n private readonly nightly: boolean;\n private readonly buildDebugOnly: boolean;\n\n public constructor(\n allFarmConfig: FarmConfig[],\n candyModulesDirectory: string,\n useGeneratorFromLocalSources: boolean,\n engineDirectory: string,\n buildDebugOnly: boolean,\n nightly: boolean = false\n ) {\n super();\n this.nightly = nightly;\n this.allFarmDirectory = allFarmConfig.map(farm => new FarmDirectory(farm.farmDirectory));\n this.allFarmDirectoryPath = allFarmConfig.map(farm => farm.farmDirectory);\n this.candyModulesDirectory = candyModulesDirectory;\n this.allFarmConfig = allFarmConfig;\n this.useGeneratorFromLocalSources = useGeneratorFromLocalSources;\n this.engineDirectory = engineDirectory;\n this.buildDebugOnly = buildDebugOnly;\n }\n\n @httpGet(\n \"/:update.hot-update.json\",\n httpReturn.StreamWithMime(\"application/json\"),\n httpUrlParam(\"update\", httpType.String)\n )\n public async getDevServerUpdateJson(updateName: string): Promise<StreamResult> {\n return await this.getFirstExistsFileAsStreamFromDevServer(`static/${updateName}.hot-update.json`);\n }\n\n @httpGet(\n \"/:update.hot-update.js\",\n httpReturn.StreamWithMime(\"application/javascript\"),\n httpUrlParam(\"update\", httpType.String)\n )\n public async getDevServerUpdateJs(updateName: string): Promise<StreamResult> {\n return await this.getFirstExistsFileAsStreamFromDevServer(`static/${updateName}.hot-update.js`);\n }\n\n @httpGet(\n \"/:update.hot-update.js.map\",\n httpReturn.StreamWithMime(\"application/json\"),\n httpUrlParam(\"update\", httpType.String)\n )\n public async getDevServerUpdateJsMap(updateName: string): Promise<StreamResult> {\n return await this.getFirstExistsFileAsStreamFromDevServer(`static/${updateName}.hot-update.js.map`);\n }\n\n @httpGet(\n /^\\/public\\/scripts\\/(((\\d{6,})(.[\\w\\-]*)?(.min)?).js)$/i,\n httpReturn.StreamWithMime(\"application/javascript\"),\n httpUrlParam(\"0\", httpType.String),\n httpUrlParam(\"1\", httpType.String),\n httpUrlParam(\"2\", httpType.String)\n )\n public async getFormScript(fileName: string, fileNameWithoutExt: string, gfv: string): Promise<StreamResult> {\n const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);\n return new StreamResult(await buildFormDevServer.getFileAsStream(`static/public/scripts/${fileName}`));\n }\n\n @httpGet(\n /^\\/public\\/styles\\/(((\\d{6,})(.[\\w\\-]*)?(.min)?).css)$/i,\n httpReturn.StreamWithMime(\"text/css\"),\n httpUrlParam(\"0\", httpType.String),\n httpUrlParam(\"1\", httpType.String),\n httpUrlParam(\"2\", httpType.String),\n httpUrlParam(\"3\", httpType.String)\n )\n public async getFormStyle(\n fileName: string,\n fileNameWithoutExt: string,\n gfv: string,\n theme: undefined | string\n ): Promise<StreamResult> {\n const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);\n return new StreamResult(\n await buildFormDevServer.getFileAsStream(`static/public/styles/${fileName.replace(theme ?? \"\", \"\")}`)\n );\n }\n\n @httpGet(\"/public/images/:filename\", httpReturn.Stream, httpUrlParam(\"filename\", httpType.String))\n public async getFormImages(fileName: string): Promise<StreamResult> {\n return await this.getFirstExistsFileAsStreamFromDevServer(\n `static/public/images/${fileName}`,\n mime.lookup(fileName)\n );\n }\n\n private async getFirstExistsFileAsStreamFromDevServer(filename: string, mimeType?: string | false) {\n for (const devServer of Object.values(this.devServers)) {\n if (devServer != undefined) {\n try {\n return new StreamResult(await devServer.getFileAsStream(filename), mimeType);\n } catch {\n // try next server\n }\n }\n }\n throw new NotFoundWebError(\"File not found\", true);\n }\n\n public async getAllAttachmentPathFileNames(): Promise<string[]> {\n return (await Promise.all(this.allFarmDirectory.map(i => i.getAllGfvs()))).flat().map(gfv => `${gfv}.json`);\n }\n\n public async getAttachmentPathsFileContent(gfv: string): Promise<NodeJS.ReadableStream> {\n const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);\n const resultStream = await buildFormDevServer.getGeneratedFileAsStream(`AttachmentPaths.json`);\n return resultStream;\n }\n\n public async getAttachmentPathsWithGfvsFileContent(gfv: string): Promise<NodeJS.ReadableStream> {\n const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);\n const resultStream = await buildFormDevServer.getGeneratedFileAsStream(`AttachmentPathsWithGfvs.json`);\n return resultStream;\n }\n\n public async getAllNormalizationFileNames(): Promise<string[]> {\n const result: string[] = [];\n const gfvInfos = (await Promise.all(this.allFarmDirectory.map(i => i.getAllGfvWithLocations()))).flat();\n for (const { gfv, formPath } of gfvInfos) {\n const formConfig = await readFormConfig(\n path.join(formPath, WellKnownDirectories.FormJsonFileName),\n getLogger()\n );\n const useServerSideFLangNormalization = formConfig.settings?.useServerSideFLangNormalization ?? false;\n if (useServerSideFLangNormalization) {\n result.push(`${gfv}.normalize`);\n }\n }\n return result;\n }\n\n public async getNormalizationFileContent(gfv: string): Promise<NodeJS.ReadableStream | null> {\n const gfvInfos = (await Promise.all(this.allFarmDirectory.map(i => i.getAllGfvWithLocations()))).flat();\n const gfvInfo = gfvInfos.find(x => x.gfv === gfv);\n if (gfvInfo == null) {\n return null;\n }\n const formConfig = await readFormConfig(\n path.join(gfvInfo.formPath, WellKnownDirectories.FormJsonFileName),\n getLogger()\n );\n const useServerSideFLangNormalization = formConfig.settings?.useServerSideFLangNormalization ?? false;\n if (!useServerSideFLangNormalization) {\n return null;\n }\n const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);\n const resultStream = await buildFormDevServer.getGeneratedFileAsStream(`ServerSide.normalize`);\n return resultStream;\n }\n\n private async getOrCreateBuildFormDevServer(gfv: string): Promise<BuildFormDevServer> {\n let devServer = this.devServers[gfv];\n if (devServer == undefined) {\n devServer = new BuildFormDevServer(\n this.nextFreePort++,\n this.allFarmDirectoryPath,\n gfv,\n this.candyModulesDirectory,\n this.allFarmConfig,\n this.useGeneratorFromLocalSources,\n this.engineDirectory,\n this.buildDebugOnly,\n false,\n this.nightly\n );\n this.devServers[gfv] = devServer;\n await devServer.start();\n }\n return devServer;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"BuildServerBuildFormsController.js","names":["path","_interopRequireWildcard","require","_mimeTypes","_interopRequireDefault","_ResolveFormInfo","_Methods","_NotFoundWebError","_Params","_Results","_StreamResultHandler","_SingletonController","_StaticLogger","_WellKnownDirectories","_BuildFormDevServer","_FarmDirectory","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_class","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","BuildServerBuildFormsController","exports","httpGet","httpReturn","StreamWithMime","httpUrlParam","httpType","String","Stream","SingletonController","constructor","allFarmConfig","candyModulesDirectory","useGeneratorFromLocalSources","engineDirectory","buildDebugOnly","nightly","allFarmDirectory","allFarmDirectoryPath","nextFreePort","devServers","map","farm","FarmDirectory","farmDirectory","setupMiddleware","expressApplication","use","req","res","next","resetAllFarmDirectories","getDevServerUpdateJson","updateName","getFirstExistsFileAsStreamFromDevServer","getDevServerUpdateJs","getDevServerUpdateJsMap","getFormScript","fileName","fileNameWithoutExt","gfv","buildFormDevServer","getOrCreateBuildFormDevServer","StreamResult","getFileAsStream","getFormStyle","theme","replace","getFormImages","mime","lookup","filename","mimeType","devServer","values","undefined","NotFoundWebError","getAllAttachmentPathFileNames","Promise","all","getAllGfvs","flat","getAttachmentPathsFileContent","resultStream","getGeneratedFileAsStream","getAttachmentPathsWithGfvsFileContent","getAllNormalizationFileNames","result","gfvInfos","getAllGfvWithLocations","formPath","_formConfig$settings$","_formConfig$settings","formConfig","readFormConfig","join","WellKnownDirectories","FormJsonFileName","getLogger","useServerSideFLangNormalization","settings","push","getNormalizationFileContent","_formConfig$settings$2","_formConfig$settings2","gfvInfo","find","x","BuildFormDevServer","start","_applyDecoratedDescriptor2","prototype"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.ts"],"sourcesContent":["import * as path from \"path\";\n\nimport { Express } from \"express\";\nimport mime from \"mime-types\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { readFormConfig } from \"../../../BuildTasks/ResolveFormInfo\";\nimport { httpGet } from \"../../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { NotFoundWebError } from \"../../../Commons/HttpServer/AttributeRouting/NotFoundWebError\";\nimport { httpType, httpUrlParam } from \"../../../Commons/HttpServer/AttributeRouting/Params\";\nimport { httpReturn } from \"../../../Commons/HttpServer/AttributeRouting/Results\";\nimport { StreamResult } from \"../../../Commons/HttpServer/AttributeRouting/Results/StreamResultHandler\";\nimport { SingletonController } from \"../../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { getLogger } from \"../../../Commons/Logging/StaticLogger\";\nimport { WellKnownDirectories } from \"../../../../../Common/WellKnownDirectories\";\n\nimport { BuildFormDevServer } from \"./DevServers/BuildFormDevServer\";\nimport { FarmDirectory } from \"./Directories/FarmDirectory\";\nimport { IGeneratedServerSideSourcesProvider } from \"./IGeneratedServerSideSourcesProvider\";\n\nexport class BuildServerBuildFormsController\n extends SingletonController\n implements IGeneratedServerSideSourcesProvider\n{\n private allFarmDirectory: FarmDirectory[];\n private readonly allFarmDirectoryPath: string[];\n private nextFreePort = 12001;\n private readonly devServers: { [gfv: string]: undefined | BuildFormDevServer } = {};\n private readonly candyModulesDirectory: string;\n private readonly allFarmConfig: FarmConfig[];\n private readonly useGeneratorFromLocalSources: boolean;\n private readonly engineDirectory: string;\n private readonly nightly: boolean;\n private readonly buildDebugOnly: boolean;\n\n public constructor(\n allFarmConfig: FarmConfig[],\n candyModulesDirectory: string,\n useGeneratorFromLocalSources: boolean,\n engineDirectory: string,\n buildDebugOnly: boolean,\n nightly: boolean = false\n ) {\n super();\n this.nightly = nightly;\n this.allFarmDirectory = allFarmConfig.map(farm => new FarmDirectory(farm.farmDirectory));\n this.allFarmDirectoryPath = allFarmConfig.map(farm => farm.farmDirectory);\n this.candyModulesDirectory = candyModulesDirectory;\n this.allFarmConfig = allFarmConfig;\n this.useGeneratorFromLocalSources = useGeneratorFromLocalSources;\n this.engineDirectory = engineDirectory;\n this.buildDebugOnly = buildDebugOnly;\n }\n\n public async setupMiddleware(expressApplication: Express) {\n expressApplication.use(\"/force-gfvs\", (req, res, next) => {\n this.resetAllFarmDirectories();\n next();\n });\n }\n\n private resetAllFarmDirectories() {\n this.allFarmDirectory = this.allFarmConfig.map(i => new FarmDirectory(i.farmDirectory));\n }\n\n @httpGet(\n \"/:update.hot-update.json\",\n httpReturn.StreamWithMime(\"application/json\"),\n httpUrlParam(\"update\", httpType.String)\n )\n public async getDevServerUpdateJson(updateName: string): Promise<StreamResult> {\n return await this.getFirstExistsFileAsStreamFromDevServer(`static/${updateName}.hot-update.json`);\n }\n\n @httpGet(\n \"/:update.hot-update.js\",\n httpReturn.StreamWithMime(\"application/javascript\"),\n httpUrlParam(\"update\", httpType.String)\n )\n public async getDevServerUpdateJs(updateName: string): Promise<StreamResult> {\n return await this.getFirstExistsFileAsStreamFromDevServer(`static/${updateName}.hot-update.js`);\n }\n\n @httpGet(\n \"/:update.hot-update.js.map\",\n httpReturn.StreamWithMime(\"application/json\"),\n httpUrlParam(\"update\", httpType.String)\n )\n public async getDevServerUpdateJsMap(updateName: string): Promise<StreamResult> {\n return await this.getFirstExistsFileAsStreamFromDevServer(`static/${updateName}.hot-update.js.map`);\n }\n\n @httpGet(\n /^\\/public\\/scripts\\/(((\\d{6,})(.[\\w\\-]*)?(.min)?).js)$/i,\n httpReturn.StreamWithMime(\"application/javascript\"),\n httpUrlParam(\"0\", httpType.String),\n httpUrlParam(\"1\", httpType.String),\n httpUrlParam(\"2\", httpType.String)\n )\n public async getFormScript(fileName: string, fileNameWithoutExt: string, gfv: string): Promise<StreamResult> {\n const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);\n return new StreamResult(await buildFormDevServer.getFileAsStream(`static/public/scripts/${fileName}`));\n }\n\n @httpGet(\n /^\\/public\\/styles\\/(((\\d{6,})(.[\\w\\-]*)?(.min)?).css)$/i,\n httpReturn.StreamWithMime(\"text/css\"),\n httpUrlParam(\"0\", httpType.String),\n httpUrlParam(\"1\", httpType.String),\n httpUrlParam(\"2\", httpType.String),\n httpUrlParam(\"3\", httpType.String)\n )\n public async getFormStyle(\n fileName: string,\n fileNameWithoutExt: string,\n gfv: string,\n theme: undefined | string\n ): Promise<StreamResult> {\n const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);\n return new StreamResult(\n await buildFormDevServer.getFileAsStream(`static/public/styles/${fileName.replace(theme ?? \"\", \"\")}`)\n );\n }\n\n @httpGet(\"/public/images/:filename\", httpReturn.Stream, httpUrlParam(\"filename\", httpType.String))\n public async getFormImages(fileName: string): Promise<StreamResult> {\n return await this.getFirstExistsFileAsStreamFromDevServer(\n `static/public/images/${fileName}`,\n mime.lookup(fileName)\n );\n }\n\n private async getFirstExistsFileAsStreamFromDevServer(filename: string, mimeType?: string | false) {\n for (const devServer of Object.values(this.devServers)) {\n if (devServer != undefined) {\n try {\n return new StreamResult(await devServer.getFileAsStream(filename), mimeType);\n } catch {\n // try next server\n }\n }\n }\n throw new NotFoundWebError(\"File not found\", true);\n }\n\n public async getAllAttachmentPathFileNames(): Promise<string[]> {\n return (await Promise.all(this.allFarmDirectory.map(i => i.getAllGfvs()))).flat().map(gfv => `${gfv}.json`);\n }\n\n public async getAttachmentPathsFileContent(gfv: string): Promise<NodeJS.ReadableStream> {\n const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);\n const resultStream = await buildFormDevServer.getGeneratedFileAsStream(`AttachmentPaths.json`);\n return resultStream;\n }\n\n public async getAttachmentPathsWithGfvsFileContent(gfv: string): Promise<NodeJS.ReadableStream> {\n const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);\n const resultStream = await buildFormDevServer.getGeneratedFileAsStream(`AttachmentPathsWithGfvs.json`);\n return resultStream;\n }\n\n public async getAllNormalizationFileNames(): Promise<string[]> {\n const result: string[] = [];\n const gfvInfos = (await Promise.all(this.allFarmDirectory.map(i => i.getAllGfvWithLocations()))).flat();\n for (const { gfv, formPath } of gfvInfos) {\n const formConfig = await readFormConfig(\n path.join(formPath, WellKnownDirectories.FormJsonFileName),\n getLogger()\n );\n const useServerSideFLangNormalization = formConfig.settings?.useServerSideFLangNormalization ?? false;\n if (useServerSideFLangNormalization) {\n result.push(`${gfv}.normalize`);\n }\n }\n return result;\n }\n\n public async getNormalizationFileContent(gfv: string): Promise<NodeJS.ReadableStream | null> {\n const gfvInfos = (await Promise.all(this.allFarmDirectory.map(i => i.getAllGfvWithLocations()))).flat();\n const gfvInfo = gfvInfos.find(x => x.gfv === gfv);\n if (gfvInfo == null) {\n return null;\n }\n const formConfig = await readFormConfig(\n path.join(gfvInfo.formPath, WellKnownDirectories.FormJsonFileName),\n getLogger()\n );\n const useServerSideFLangNormalization = formConfig.settings?.useServerSideFLangNormalization ?? false;\n if (!useServerSideFLangNormalization) {\n return null;\n }\n const buildFormDevServer = await this.getOrCreateBuildFormDevServer(gfv);\n const resultStream = await buildFormDevServer.getGeneratedFileAsStream(`ServerSide.normalize`);\n return resultStream;\n }\n\n private async getOrCreateBuildFormDevServer(gfv: string): Promise<BuildFormDevServer> {\n let devServer = this.devServers[gfv];\n if (devServer == undefined) {\n devServer = new BuildFormDevServer(\n this.nextFreePort++,\n this.allFarmDirectoryPath,\n gfv,\n this.candyModulesDirectory,\n this.allFarmConfig,\n this.useGeneratorFromLocalSources,\n this.engineDirectory,\n this.buildDebugOnly,\n false,\n this.nightly\n );\n this.devServers[gfv] = devServer;\n await devServer.start();\n }\n return devServer;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,13 +21,24 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
21
21
|
let BuildServerFormInfoController = exports.BuildServerFormInfoController = (_dec = (0, _Methods.httpGet)("/metas", _Results.httpReturn.PlainText), _dec2 = (0, _Methods.httpGet)("/metas/:gfv.metas.json", _Results.httpReturn.PlainText, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), (_class = class BuildServerFormInfoController extends _SingletonController.SingletonController {
|
|
22
22
|
constructor(allFarmConfig, useEngineFromLocalSources, nightly) {
|
|
23
23
|
super();
|
|
24
|
+
this.allFarmConfig = void 0;
|
|
24
25
|
this.allFarmDirectories = void 0;
|
|
25
26
|
this.nightly = void 0;
|
|
26
27
|
this.useEngineFromLocalSources = void 0;
|
|
27
28
|
this.nightly = nightly;
|
|
29
|
+
this.allFarmConfig = allFarmConfig;
|
|
28
30
|
this.allFarmDirectories = allFarmConfig.map(i => new _FarmDirectory.FarmDirectory(i.farmDirectory));
|
|
29
31
|
this.useEngineFromLocalSources = useEngineFromLocalSources;
|
|
30
32
|
}
|
|
33
|
+
async setupMiddleware(expressApplication) {
|
|
34
|
+
expressApplication.use("/force-gfvs", (req, res, next) => {
|
|
35
|
+
this.resetAllFarmDirectories();
|
|
36
|
+
next();
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
resetAllFarmDirectories() {
|
|
40
|
+
this.allFarmDirectories = this.allFarmConfig.map(i => new _FarmDirectory.FarmDirectory(i.farmDirectory));
|
|
41
|
+
}
|
|
31
42
|
async getAllFormMetas() {
|
|
32
43
|
return (await Promise.all(this.allFarmDirectories.map(i => i.getAllGfvs()))).flat().map(x => `${x}.metas.json`).join("\n");
|
|
33
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildServerFormInfoController.js","names":["path","_interopRequireWildcard","require","_EngineVersionUtils","_PublishedVersionUtils","_ResolveFormInfo","_Methods","_Params","_Results","_SingletonController","_FarmDirectory","_dec","_dec2","_class","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","BuildServerFormInfoController","exports","httpGet","httpReturn","PlainText","httpUrlParam","httpType","String","SingletonController","constructor","allFarmConfig","useEngineFromLocalSources","nightly","allFarmDirectories","map","FarmDirectory","farmDirectory","getAllFormMetas","Promise","all","getAllGfvs","flat","x","join","getFormMeta","gfv","localEngineMetaContent","engineName","resourcesHash","JSON","stringify","undefined","formJsonFile","getFormJsonPath","filter","Error","formInfo","resolveFormInfo","dirname","engineVersion","type","preId","engineSources","resolveEngineVersion","formMetaContent","EngineVersionUtils","engineVersionToName","version","themes","_applyDecoratedDescriptor2","prototype"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.ts"],"sourcesContent":["import * as path from \"path\";\n\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { EngineVersionUtils } from \"../../../BuildTasks/EngineVersionUtils\";\nimport { resolveEngineVersion } from \"../../../BuildTasks/PublishedVersionUtils\";\nimport { resolveFormInfo } from \"../../../BuildTasks/ResolveFormInfo\";\nimport { FormMetaContent } from \"../../../BuildTasks/WriteFormMeta\";\nimport { httpGet } from \"../../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { httpType, httpUrlParam } from \"../../../Commons/HttpServer/AttributeRouting/Params\";\nimport { httpReturn } from \"../../../Commons/HttpServer/AttributeRouting/Results\";\nimport { SingletonController } from \"../../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { CandyVersionSpec } from \"../../../BuildTasks/Version\";\n\nimport { FarmDirectory } from \"./Directories/FarmDirectory\";\n\nexport class BuildServerFormInfoController extends SingletonController {\n private readonly allFarmDirectories: FarmDirectory[];\n private readonly nightly: boolean;\n private readonly useEngineFromLocalSources: boolean;\n\n public constructor(allFarmConfig: FarmConfig[], useEngineFromLocalSources: boolean, nightly: boolean) {\n super();\n this.nightly = nightly;\n this.allFarmDirectories = allFarmConfig.map(i => new FarmDirectory(i.farmDirectory));\n this.useEngineFromLocalSources = useEngineFromLocalSources;\n }\n\n @httpGet(\"/metas\", httpReturn.PlainText)\n public async getAllFormMetas(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.map(i => i.getAllGfvs())))\n .flat()\n .map(x => `${x}.metas.json`)\n .join(\"\\n\");\n }\n\n @httpGet(\"/metas/:gfv.metas.json\", httpReturn.PlainText, httpUrlParam(\"gfv\", httpType.String))\n public async getFormMeta(gfv: string): Promise<string> {\n if (this.useEngineFromLocalSources) {\n const localEngineMetaContent: FormMetaContent = {\n engineName: \"local\",\n resourcesHash: \"local-hash\",\n };\n return JSON.stringify(localEngineMetaContent, undefined, \" \");\n }\n const formJsonFile = (await Promise.all(this.allFarmDirectories.map(i => i.getFormJsonPath(gfv))))\n .flat()\n .filter(i => i != undefined);\n if (formJsonFile[0] == undefined) {\n throw Error(`${gfv} not found in farm directories`);\n }\n const formInfo = await resolveFormInfo(formJsonFile[0], path.dirname(formJsonFile[0]), undefined);\n const engineVersion: undefined | CandyVersionSpec = this.nightly\n ? { type: \"pre\", preId: \"nightly\" }\n : formInfo.engineVersion;\n if (engineVersion == undefined) {\n throw new Error(\"!!!!\");\n }\n const engineSources = await resolveEngineVersion(engineVersion);\n const formMetaContent: FormMetaContent = {\n engineName:\n engineSources.type === \"LocalEngineSources\"\n ? \"local\"\n : EngineVersionUtils.engineVersionToName(engineSources.version),\n resourcesHash: \"local-hash\",\n };\n if (formInfo.themes != undefined) {\n formMetaContent.themes = formInfo.themes;\n }\n return JSON.stringify(formMetaContent, undefined, \" \");\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,IAAA,GAAAC,uBAAA,CAAAC,OAAA;
|
|
1
|
+
{"version":3,"file":"BuildServerFormInfoController.js","names":["path","_interopRequireWildcard","require","_EngineVersionUtils","_PublishedVersionUtils","_ResolveFormInfo","_Methods","_Params","_Results","_SingletonController","_FarmDirectory","_dec","_dec2","_class","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","BuildServerFormInfoController","exports","httpGet","httpReturn","PlainText","httpUrlParam","httpType","String","SingletonController","constructor","allFarmConfig","useEngineFromLocalSources","nightly","allFarmDirectories","map","FarmDirectory","farmDirectory","setupMiddleware","expressApplication","use","req","res","next","resetAllFarmDirectories","getAllFormMetas","Promise","all","getAllGfvs","flat","x","join","getFormMeta","gfv","localEngineMetaContent","engineName","resourcesHash","JSON","stringify","undefined","formJsonFile","getFormJsonPath","filter","Error","formInfo","resolveFormInfo","dirname","engineVersion","type","preId","engineSources","resolveEngineVersion","formMetaContent","EngineVersionUtils","engineVersionToName","version","themes","_applyDecoratedDescriptor2","prototype"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.ts"],"sourcesContent":["import * as path from \"path\";\n\nimport { Express } from \"express\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { EngineVersionUtils } from \"../../../BuildTasks/EngineVersionUtils\";\nimport { resolveEngineVersion } from \"../../../BuildTasks/PublishedVersionUtils\";\nimport { resolveFormInfo } from \"../../../BuildTasks/ResolveFormInfo\";\nimport { FormMetaContent } from \"../../../BuildTasks/WriteFormMeta\";\nimport { httpGet } from \"../../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { httpType, httpUrlParam } from \"../../../Commons/HttpServer/AttributeRouting/Params\";\nimport { httpReturn } from \"../../../Commons/HttpServer/AttributeRouting/Results\";\nimport { SingletonController } from \"../../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { CandyVersionSpec } from \"../../../BuildTasks/Version\";\n\nimport { FarmDirectory } from \"./Directories/FarmDirectory\";\n\nexport class BuildServerFormInfoController extends SingletonController {\n private readonly allFarmConfig: FarmConfig[];\n private allFarmDirectories: FarmDirectory[];\n private readonly nightly: boolean;\n private readonly useEngineFromLocalSources: boolean;\n\n public constructor(allFarmConfig: FarmConfig[], useEngineFromLocalSources: boolean, nightly: boolean) {\n super();\n this.nightly = nightly;\n this.allFarmConfig = allFarmConfig;\n this.allFarmDirectories = allFarmConfig.map(i => new FarmDirectory(i.farmDirectory));\n this.useEngineFromLocalSources = useEngineFromLocalSources;\n }\n\n public async setupMiddleware(expressApplication: Express) {\n expressApplication.use(\"/force-gfvs\", (req, res, next) => {\n this.resetAllFarmDirectories();\n next();\n });\n }\n\n private resetAllFarmDirectories() {\n this.allFarmDirectories = this.allFarmConfig.map(i => new FarmDirectory(i.farmDirectory));\n }\n\n @httpGet(\"/metas\", httpReturn.PlainText)\n public async getAllFormMetas(): Promise<string> {\n return (await Promise.all(this.allFarmDirectories.map(i => i.getAllGfvs())))\n .flat()\n .map(x => `${x}.metas.json`)\n .join(\"\\n\");\n }\n\n @httpGet(\"/metas/:gfv.metas.json\", httpReturn.PlainText, httpUrlParam(\"gfv\", httpType.String))\n public async getFormMeta(gfv: string): Promise<string> {\n if (this.useEngineFromLocalSources) {\n const localEngineMetaContent: FormMetaContent = {\n engineName: \"local\",\n resourcesHash: \"local-hash\",\n };\n return JSON.stringify(localEngineMetaContent, undefined, \" \");\n }\n const formJsonFile = (await Promise.all(this.allFarmDirectories.map(i => i.getFormJsonPath(gfv))))\n .flat()\n .filter(i => i != undefined);\n if (formJsonFile[0] == undefined) {\n throw Error(`${gfv} not found in farm directories`);\n }\n const formInfo = await resolveFormInfo(formJsonFile[0], path.dirname(formJsonFile[0]), undefined);\n const engineVersion: undefined | CandyVersionSpec = this.nightly\n ? { type: \"pre\", preId: \"nightly\" }\n : formInfo.engineVersion;\n if (engineVersion == undefined) {\n throw new Error(\"!!!!\");\n }\n const engineSources = await resolveEngineVersion(engineVersion);\n const formMetaContent: FormMetaContent = {\n engineName:\n engineSources.type === \"LocalEngineSources\"\n ? \"local\"\n : EngineVersionUtils.engineVersionToName(engineSources.version),\n resourcesHash: \"local-hash\",\n };\n if (formInfo.themes != undefined) {\n formMetaContent.themes = formInfo.themes;\n }\n return JSON.stringify(formMetaContent, undefined, \" \");\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -48,7 +48,7 @@ async function runBuildServer(context, options, allFarmConfig) {
|
|
|
48
48
|
webServer.registerSigletonController(buildServerCandyWidgetController);
|
|
49
49
|
webServer.registerSigletonController(buildFormsController);
|
|
50
50
|
webServer.registerSigletonController(new _BuildServerBackendResourcesController.BuildServerBackendResourcesController(allFarmConfig, buildFormsController));
|
|
51
|
-
webServer.registerSigletonController(new _ExtractTextsFromSugarController.ExtractTextsFromSugarController(allFarmConfig
|
|
51
|
+
webServer.registerSigletonController(new _ExtractTextsFromSugarController.ExtractTextsFromSugarController(allFarmConfig));
|
|
52
52
|
webServer.registerSigletonController(new _BuildServerFormInfoController.BuildServerFormInfoController(allFarmConfig, false, options.nightly));
|
|
53
53
|
webServer.registerSigletonController(new _BuildServerPrebuiltResourcesController.BuildServerPrebuiltResourcesController());
|
|
54
54
|
webServer.registerSigletonController(new _BuildServerPublishedEngineController.BuildServerPublishedEngineController(candyModulesDirectory));
|
|
@@ -92,7 +92,7 @@ async function runDevBuildServer(context, options, allFarmConfig) {
|
|
|
92
92
|
webServer.registerSigletonController(buildServerCandyWidgetController);
|
|
93
93
|
webServer.registerSigletonController(buildServerBuildFormsController);
|
|
94
94
|
webServer.registerSigletonController(new _BuildServerBackendResourcesController.BuildServerBackendResourcesController(allFarmConfig, buildServerBuildFormsController));
|
|
95
|
-
webServer.registerSigletonController(new _ExtractTextsFromSugarController.ExtractTextsFromSugarController(allFarmConfig
|
|
95
|
+
webServer.registerSigletonController(new _ExtractTextsFromSugarController.ExtractTextsFromSugarController(allFarmConfig));
|
|
96
96
|
webServer.registerSigletonController(new _BuildServerFormInfoController.BuildServerFormInfoController(allFarmConfig, true, false));
|
|
97
97
|
webServer.registerSigletonController(new _BuildServerPrebuiltResourcesController.BuildServerPrebuiltResourcesController());
|
|
98
98
|
webServer.registerSigletonController(new _BuildServerPublishedEngineController.BuildServerPublishedEngineController(candyModulesDirectory));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunBuildServer.js","names":["_TypingUtils","require","_ExpressServerWrapper","_FormsHelperController","_ExtractTextsFromSugarController","_BuildLogsWebsocketController","_BuildServerBackendResourcesController","_BuildServerBackendResourcesUpdatesController","_BuildServerBuildFormsController","_BuildServerClientJsController","_BuildServerClientJsFromResourcesController","_BuildServerFormInfoController","_BuildServerLocalSourcesEngineController","_BuildServerPrebuiltResourcesController","_BuildServerPublishedEngineController","_BuildServerCandyWidgetController","runBuildServer","context","options","allFarmConfig","ensureArrayIsNotEmpty","engineDirectory","conf","undefined","Error","candyModulesDirectory","formTestingHelpersWebServer","ExpressServerWrapper","logger","registerSigletonController","FormsHelperController","frontEndDevMode","developmentMode","webServer","disableClientOverride","BuildLogsWebsocketController","buildFormsController","BuildServerBuildFormsController","buildDebugOnly","nightly","buildServerCandyWidgetController","BuildServerCandyWidgetController","BuildServerBackendResourcesController","ExtractTextsFromSugarController","BuildServerFormInfoController","BuildServerPrebuiltResourcesController","BuildServerPublishedEngineController","BuildServerClientJsFromResourcesController","BuildServerBackendResourcesUpdatesController","start","waitForExit","stop","runDevBuildServer","buildServerBuildFormsController","BuildServerLocalSourcesEngineController","BuildServerClientJsController"],"sources":["../../../../../src/CLICommands/BuildServer/RunBuildServer.ts"],"sourcesContent":["import { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { ensureArrayIsNotEmpty } from \"../../../../Common/TypingUtils\";\nimport { ConsoleApplicationContext } from \"../../Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { ExpressServerWrapper } from \"../../Commons/HttpServer/ExpressWrapper/ExpressServerWrapper\";\nimport { FormsHelperController } from \"../FormsHelper/FormsHelperController\";\nimport { ExtractTextsFromSugarController } from \"../SugarExtractor/ExtractTextsFromSugarController\";\n\nimport { BuildLogsWebsocketController } from \"./BuildLogsWebsocketController\";\nimport { BuildServerOptions, DevBuildServerOptions } from \"./BuildServerServerOptions\";\nimport { BuildServerBackendResourcesController } from \"./ResourcesControllers/BuildServerBackendResourcesController\";\nimport { BuildServerBackendResourcesUpdatesController } from \"./ResourcesControllers/BuildServerBackendResourcesUpdatesController\";\nimport { BuildServerBuildFormsController } from \"./ResourcesControllers/BuildServerBuildFormsController\";\nimport { BuildServerClientJsController } from \"./ResourcesControllers/BuildServerClientJsController\";\nimport { BuildServerClientJsFromResourcesController } from \"./ResourcesControllers/BuildServerClientJsFromResourcesController\";\nimport { BuildServerFormInfoController } from \"./ResourcesControllers/BuildServerFormInfoController\";\nimport { BuildServerLocalSourcesEngineController } from \"./ResourcesControllers/BuildServerLocalSourcesEngineController\";\nimport { BuildServerPrebuiltResourcesController } from \"./ResourcesControllers/BuildServerPrebuiltResourcesController\";\nimport { BuildServerPublishedEngineController } from \"./ResourcesControllers/BuildServerPublishedEngineController\";\nimport { BuildServerCandyWidgetController } from \"./ResourcesControllers/BuildServerCandyWidgetController\";\n\nexport async function runBuildServer(\n context: ConsoleApplicationContext,\n options: BuildServerOptions,\n allFarmConfig: FarmConfig[]\n): Promise<void> {\n ensureArrayIsNotEmpty(allFarmConfig);\n\n let engineDirectory = \"\";\n for (const conf of allFarmConfig) {\n if (conf.engineDirectory != undefined) {\n engineDirectory = conf.engineDirectory;\n break;\n }\n }\n if (engineDirectory === \"\") {\n throw Error(\"All Engine directory is empty\");\n }\n\n const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;\n\n const formTestingHelpersWebServer = new ExpressServerWrapper(9010, undefined, context.logger, \"Forms helpers\");\n formTestingHelpersWebServer.registerSigletonController(\n new FormsHelperController({ frontEndDevMode: options.developmentMode })\n );\n\n const webServer = new ExpressServerWrapper(9000, 9043, context.logger);\n if (!options.disableClientOverride) {\n webServer.registerSigletonController(new BuildLogsWebsocketController());\n }\n const buildFormsController = new BuildServerBuildFormsController(\n allFarmConfig,\n candyModulesDirectory,\n false,\n engineDirectory,\n options.buildDebugOnly,\n options.nightly\n );\n const buildServerCandyWidgetController = new BuildServerCandyWidgetController(\n engineDirectory,\n options.buildDebugOnly,\n {\n frontEndDevMode: options.developmentMode,\n }\n );\n webServer.registerSigletonController(buildServerCandyWidgetController);\n webServer.registerSigletonController(buildFormsController);\n webServer.registerSigletonController(\n new BuildServerBackendResourcesController(allFarmConfig, buildFormsController)\n );\n\n webServer.registerSigletonController(new ExtractTextsFromSugarController(allFarmConfig, buildFormsController));\n\n webServer.registerSigletonController(new BuildServerFormInfoController(allFarmConfig, false, options.nightly));\n\n webServer.registerSigletonController(new BuildServerPrebuiltResourcesController());\n webServer.registerSigletonController(new BuildServerPublishedEngineController(candyModulesDirectory));\n webServer.registerSigletonController(\n new BuildServerClientJsFromResourcesController(options.disableClientOverride, {\n frontEndDevMode: options.developmentMode,\n })\n );\n webServer.registerSigletonController(new BuildServerBackendResourcesUpdatesController(allFarmConfig));\n await formTestingHelpersWebServer.start();\n await webServer.start();\n await context.waitForExit();\n await webServer.stop();\n await formTestingHelpersWebServer.stop();\n}\n\nexport async function runDevBuildServer(\n context: ConsoleApplicationContext,\n options: DevBuildServerOptions,\n allFarmConfig: FarmConfig[]\n): Promise<void> {\n if (allFarmConfig[0] == undefined) {\n throw Error(\"Config can't be length 0\");\n }\n\n let engineDirectory = \"\";\n for (const conf of allFarmConfig) {\n if (conf.engineDirectory != undefined) {\n engineDirectory = conf.engineDirectory;\n break;\n }\n }\n if (engineDirectory === \"\") {\n throw Error(\"All Engine directory is empty\");\n }\n\n const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;\n\n const formTestingHelpersWebServer = new ExpressServerWrapper(9010, undefined, context.logger, \"Forms helpers\");\n formTestingHelpersWebServer.registerSigletonController(\n new FormsHelperController({ frontEndDevMode: options.developmentMode })\n );\n\n const webServer = new ExpressServerWrapper(9000, 9043, context.logger);\n if (!options.disableClientOverride) {\n webServer.registerSigletonController(new BuildLogsWebsocketController());\n }\n\n const buildServerBuildFormsController = new BuildServerBuildFormsController(\n allFarmConfig,\n candyModulesDirectory,\n true,\n engineDirectory,\n options.buildDebugOnly\n );\n const buildServerCandyWidgetController = new BuildServerCandyWidgetController(\n engineDirectory,\n options.buildDebugOnly,\n {\n frontEndDevMode: options.developmentMode,\n }\n );\n webServer.registerSigletonController(buildServerCandyWidgetController);\n webServer.registerSigletonController(buildServerBuildFormsController);\n webServer.registerSigletonController(\n new BuildServerBackendResourcesController(allFarmConfig, buildServerBuildFormsController)\n );\n webServer.registerSigletonController(\n new ExtractTextsFromSugarController(allFarmConfig, buildServerBuildFormsController)\n );\n webServer.registerSigletonController(new BuildServerFormInfoController(allFarmConfig, true, false));\n\n webServer.registerSigletonController(new BuildServerPrebuiltResourcesController());\n webServer.registerSigletonController(new BuildServerPublishedEngineController(candyModulesDirectory));\n webServer.registerSigletonController(\n new BuildServerLocalSourcesEngineController(engineDirectory, options.buildDebugOnly)\n );\n\n webServer.registerSigletonController(\n new BuildServerClientJsController(engineDirectory, options.buildDebugOnly, options.disableClientOverride, {\n frontEndDevMode: options.developmentMode,\n })\n );\n webServer.registerSigletonController(new BuildServerBackendResourcesUpdatesController(allFarmConfig));\n await formTestingHelpersWebServer.start();\n await webServer.start();\n await context.waitForExit();\n await webServer.stop();\n await formTestingHelpersWebServer.stop();\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"RunBuildServer.js","names":["_TypingUtils","require","_ExpressServerWrapper","_FormsHelperController","_ExtractTextsFromSugarController","_BuildLogsWebsocketController","_BuildServerBackendResourcesController","_BuildServerBackendResourcesUpdatesController","_BuildServerBuildFormsController","_BuildServerClientJsController","_BuildServerClientJsFromResourcesController","_BuildServerFormInfoController","_BuildServerLocalSourcesEngineController","_BuildServerPrebuiltResourcesController","_BuildServerPublishedEngineController","_BuildServerCandyWidgetController","runBuildServer","context","options","allFarmConfig","ensureArrayIsNotEmpty","engineDirectory","conf","undefined","Error","candyModulesDirectory","formTestingHelpersWebServer","ExpressServerWrapper","logger","registerSigletonController","FormsHelperController","frontEndDevMode","developmentMode","webServer","disableClientOverride","BuildLogsWebsocketController","buildFormsController","BuildServerBuildFormsController","buildDebugOnly","nightly","buildServerCandyWidgetController","BuildServerCandyWidgetController","BuildServerBackendResourcesController","ExtractTextsFromSugarController","BuildServerFormInfoController","BuildServerPrebuiltResourcesController","BuildServerPublishedEngineController","BuildServerClientJsFromResourcesController","BuildServerBackendResourcesUpdatesController","start","waitForExit","stop","runDevBuildServer","buildServerBuildFormsController","BuildServerLocalSourcesEngineController","BuildServerClientJsController"],"sources":["../../../../../src/CLICommands/BuildServer/RunBuildServer.ts"],"sourcesContent":["import { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { ensureArrayIsNotEmpty } from \"../../../../Common/TypingUtils\";\nimport { ConsoleApplicationContext } from \"../../Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { ExpressServerWrapper } from \"../../Commons/HttpServer/ExpressWrapper/ExpressServerWrapper\";\nimport { FormsHelperController } from \"../FormsHelper/FormsHelperController\";\nimport { ExtractTextsFromSugarController } from \"../SugarExtractor/ExtractTextsFromSugarController\";\n\nimport { BuildLogsWebsocketController } from \"./BuildLogsWebsocketController\";\nimport { BuildServerOptions, DevBuildServerOptions } from \"./BuildServerServerOptions\";\nimport { BuildServerBackendResourcesController } from \"./ResourcesControllers/BuildServerBackendResourcesController\";\nimport { BuildServerBackendResourcesUpdatesController } from \"./ResourcesControllers/BuildServerBackendResourcesUpdatesController\";\nimport { BuildServerBuildFormsController } from \"./ResourcesControllers/BuildServerBuildFormsController\";\nimport { BuildServerClientJsController } from \"./ResourcesControllers/BuildServerClientJsController\";\nimport { BuildServerClientJsFromResourcesController } from \"./ResourcesControllers/BuildServerClientJsFromResourcesController\";\nimport { BuildServerFormInfoController } from \"./ResourcesControllers/BuildServerFormInfoController\";\nimport { BuildServerLocalSourcesEngineController } from \"./ResourcesControllers/BuildServerLocalSourcesEngineController\";\nimport { BuildServerPrebuiltResourcesController } from \"./ResourcesControllers/BuildServerPrebuiltResourcesController\";\nimport { BuildServerPublishedEngineController } from \"./ResourcesControllers/BuildServerPublishedEngineController\";\nimport { BuildServerCandyWidgetController } from \"./ResourcesControllers/BuildServerCandyWidgetController\";\n\nexport async function runBuildServer(\n context: ConsoleApplicationContext,\n options: BuildServerOptions,\n allFarmConfig: FarmConfig[]\n): Promise<void> {\n ensureArrayIsNotEmpty(allFarmConfig);\n\n let engineDirectory = \"\";\n for (const conf of allFarmConfig) {\n if (conf.engineDirectory != undefined) {\n engineDirectory = conf.engineDirectory;\n break;\n }\n }\n if (engineDirectory === \"\") {\n throw Error(\"All Engine directory is empty\");\n }\n\n const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;\n\n const formTestingHelpersWebServer = new ExpressServerWrapper(9010, undefined, context.logger, \"Forms helpers\");\n formTestingHelpersWebServer.registerSigletonController(\n new FormsHelperController({ frontEndDevMode: options.developmentMode })\n );\n\n const webServer = new ExpressServerWrapper(9000, 9043, context.logger);\n if (!options.disableClientOverride) {\n webServer.registerSigletonController(new BuildLogsWebsocketController());\n }\n const buildFormsController = new BuildServerBuildFormsController(\n allFarmConfig,\n candyModulesDirectory,\n false,\n engineDirectory,\n options.buildDebugOnly,\n options.nightly\n );\n const buildServerCandyWidgetController = new BuildServerCandyWidgetController(\n engineDirectory,\n options.buildDebugOnly,\n {\n frontEndDevMode: options.developmentMode,\n }\n );\n webServer.registerSigletonController(buildServerCandyWidgetController);\n webServer.registerSigletonController(buildFormsController);\n webServer.registerSigletonController(\n new BuildServerBackendResourcesController(allFarmConfig, buildFormsController)\n );\n\n webServer.registerSigletonController(new ExtractTextsFromSugarController(allFarmConfig));\n\n webServer.registerSigletonController(new BuildServerFormInfoController(allFarmConfig, false, options.nightly));\n\n webServer.registerSigletonController(new BuildServerPrebuiltResourcesController());\n webServer.registerSigletonController(new BuildServerPublishedEngineController(candyModulesDirectory));\n webServer.registerSigletonController(\n new BuildServerClientJsFromResourcesController(options.disableClientOverride, {\n frontEndDevMode: options.developmentMode,\n })\n );\n webServer.registerSigletonController(new BuildServerBackendResourcesUpdatesController(allFarmConfig));\n await formTestingHelpersWebServer.start();\n await webServer.start();\n await context.waitForExit();\n await webServer.stop();\n await formTestingHelpersWebServer.stop();\n}\n\nexport async function runDevBuildServer(\n context: ConsoleApplicationContext,\n options: DevBuildServerOptions,\n allFarmConfig: FarmConfig[]\n): Promise<void> {\n if (allFarmConfig[0] == undefined) {\n throw Error(\"Config can't be length 0\");\n }\n\n let engineDirectory = \"\";\n for (const conf of allFarmConfig) {\n if (conf.engineDirectory != undefined) {\n engineDirectory = conf.engineDirectory;\n break;\n }\n }\n if (engineDirectory === \"\") {\n throw Error(\"All Engine directory is empty\");\n }\n\n const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;\n\n const formTestingHelpersWebServer = new ExpressServerWrapper(9010, undefined, context.logger, \"Forms helpers\");\n formTestingHelpersWebServer.registerSigletonController(\n new FormsHelperController({ frontEndDevMode: options.developmentMode })\n );\n\n const webServer = new ExpressServerWrapper(9000, 9043, context.logger);\n if (!options.disableClientOverride) {\n webServer.registerSigletonController(new BuildLogsWebsocketController());\n }\n\n const buildServerBuildFormsController = new BuildServerBuildFormsController(\n allFarmConfig,\n candyModulesDirectory,\n true,\n engineDirectory,\n options.buildDebugOnly\n );\n const buildServerCandyWidgetController = new BuildServerCandyWidgetController(\n engineDirectory,\n options.buildDebugOnly,\n {\n frontEndDevMode: options.developmentMode,\n }\n );\n webServer.registerSigletonController(buildServerCandyWidgetController);\n webServer.registerSigletonController(buildServerBuildFormsController);\n webServer.registerSigletonController(\n new BuildServerBackendResourcesController(allFarmConfig, buildServerBuildFormsController)\n );\n webServer.registerSigletonController(new ExtractTextsFromSugarController(allFarmConfig));\n webServer.registerSigletonController(new BuildServerFormInfoController(allFarmConfig, true, false));\n\n webServer.registerSigletonController(new BuildServerPrebuiltResourcesController());\n webServer.registerSigletonController(new BuildServerPublishedEngineController(candyModulesDirectory));\n webServer.registerSigletonController(\n new BuildServerLocalSourcesEngineController(engineDirectory, options.buildDebugOnly)\n );\n\n webServer.registerSigletonController(\n new BuildServerClientJsController(engineDirectory, options.buildDebugOnly, options.disableClientOverride, {\n frontEndDevMode: options.developmentMode,\n })\n );\n webServer.registerSigletonController(new BuildServerBackendResourcesUpdatesController(allFarmConfig));\n await formTestingHelpersWebServer.start();\n await webServer.start();\n await context.waitForExit();\n await webServer.stop();\n await formTestingHelpersWebServer.stop();\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,13 +14,22 @@ var _Params = require("../../Commons/HttpServer/AttributeRouting/Params");
|
|
|
14
14
|
var _Utils = require("./Utils");
|
|
15
15
|
var _dec, _class;
|
|
16
16
|
let ExtractTextsFromSugarController = exports.ExtractTextsFromSugarController = (_dec = (0, _Methods.httpGet)("/extract-sugar-text/:gfv", _Results.httpReturn.Json, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String), (0, _Params.httpQueryParam)("server", _Params.httpType.String)), (_class = class ExtractTextsFromSugarController extends _SingletonController.SingletonController {
|
|
17
|
-
constructor(allFarmConfig
|
|
17
|
+
constructor(allFarmConfig) {
|
|
18
18
|
super();
|
|
19
19
|
this.allFarmDirectories = void 0;
|
|
20
20
|
this.allFarmConfig = void 0;
|
|
21
21
|
this.allFarmConfig = allFarmConfig;
|
|
22
22
|
this.allFarmDirectories = allFarmConfig.map(i => new _FarmDirectory.FarmDirectory(i.farmDirectory));
|
|
23
23
|
}
|
|
24
|
+
async setupMiddleware(expressApplication) {
|
|
25
|
+
expressApplication.use("/force-gfvs", (req, res, next) => {
|
|
26
|
+
this.resetAllFarmDirectories();
|
|
27
|
+
next();
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
resetAllFarmDirectories() {
|
|
31
|
+
this.allFarmDirectories = this.allFarmConfig.map(i => new _FarmDirectory.FarmDirectory(i.farmDirectory));
|
|
32
|
+
}
|
|
24
33
|
async getTextsFromSugar(gfv, server) {
|
|
25
34
|
const {
|
|
26
35
|
farmPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractTextsFromSugarController.js","names":["_SingletonController","require","_FarmDirectory","_Methods","_Results","_Params","_Utils","_dec","_class","ExtractTextsFromSugarController","exports","httpGet","httpReturn","Json","httpUrlParam","httpType","String","httpQueryParam","SingletonController","constructor","allFarmConfig","
|
|
1
|
+
{"version":3,"file":"ExtractTextsFromSugarController.js","names":["_SingletonController","require","_FarmDirectory","_Methods","_Results","_Params","_Utils","_dec","_class","ExtractTextsFromSugarController","exports","httpGet","httpReturn","Json","httpUrlParam","httpType","String","httpQueryParam","SingletonController","constructor","allFarmConfig","allFarmDirectories","map","i","FarmDirectory","farmDirectory","setupMiddleware","expressApplication","use","req","res","next","resetAllFarmDirectories","getTextsFromSugar","gfv","server","farmPath","hlFarmPath","formPath","resolveFormPath","isLocalEngine","toLowerCase","generatorModule","resolveGeneratorModule","result","getSugarTexts","_applyDecoratedDescriptor2","default","prototype","Object","getOwnPropertyDescriptor"],"sources":["../../../../../src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.ts"],"sourcesContent":["import { Express } from \"express\";\n\nimport { SingletonController } from \"../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { FarmDirectory } from \"../BuildServer/ResourcesControllers/Directories/FarmDirectory\";\nimport { FarmConfig } from \"../../CandyCLI\";\nimport { httpGet } from \"../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { httpReturn } from \"../../Commons/HttpServer/AttributeRouting/Results\";\nimport { httpQueryParam, httpType, httpUrlParam } from \"../../Commons/HttpServer/AttributeRouting/Params\";\nimport { ExtractorResult } from \"../../../../Common/TextExtractor/TextExtractorTypes\";\n\nimport { resolveFormPath, resolveGeneratorModule } from \"./Utils\";\n\nexport class ExtractTextsFromSugarController extends SingletonController {\n private allFarmDirectories: FarmDirectory[];\n private readonly allFarmConfig: FarmConfig[];\n\n public constructor(allFarmConfig: FarmConfig[]) {\n super();\n this.allFarmConfig = allFarmConfig;\n this.allFarmDirectories = allFarmConfig.map(i => new FarmDirectory(i.farmDirectory));\n }\n\n public async setupMiddleware(expressApplication: Express) {\n expressApplication.use(\"/force-gfvs\", (req, res, next) => {\n this.resetAllFarmDirectories();\n next();\n });\n }\n\n private resetAllFarmDirectories() {\n this.allFarmDirectories = this.allFarmConfig.map(i => new FarmDirectory(i.farmDirectory));\n }\n\n @httpGet(\n \"/extract-sugar-text/:gfv\",\n httpReturn.Json,\n httpUrlParam(\"gfv\", httpType.String),\n httpQueryParam(\"server\", httpType.String)\n )\n public async getTextsFromSugar(gfv: string, server?: \"dev\"): Promise<ExtractorResult> {\n const { farmPath, hlFarmPath, formPath } = await resolveFormPath(\n gfv,\n this.allFarmConfig[0],\n this.allFarmDirectories[0]\n );\n const isLocalEngine = server?.toLowerCase() === \"dev\";\n const generatorModule = await resolveGeneratorModule(\n gfv,\n this.allFarmConfig[0],\n this.allFarmDirectories[0],\n isLocalEngine\n );\n const result = await generatorModule.getSugarTexts(formPath, farmPath, hlFarmPath);\n return result;\n }\n}\n"],"mappings":";;;;;;;;AAEA,IAAAA,oBAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAGA,IAAAK,MAAA,GAAAL,OAAA;AAAkE,IAAAM,IAAA,EAAAC,MAAA;AAAA,IAErDC,+BAA+B,GAAAC,OAAA,CAAAD,+BAAA,IAAAF,IAAA,GAqBvC,IAAAI,gBAAO,EACJ,0BAA0B,EAC1BC,mBAAU,CAACC,IAAI,EACf,IAAAC,oBAAY,EAAC,KAAK,EAAEC,gBAAQ,CAACC,MAAM,CAAC,EACpC,IAAAC,sBAAc,EAAC,QAAQ,EAAEF,gBAAQ,CAACC,MAAM,CAC5C,CAAC,GAAAR,MAAA,GA1BE,MAAMC,+BAA+B,SAASS,wCAAmB,CAAC;EAI9DC,WAAWA,CAACC,aAA2B,EAAE;IAC5C,KAAK,CAAC,CAAC;IAAC,KAJJC,kBAAkB;IAAA,KACTD,aAAa;IAI1B,IAAI,CAACA,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,kBAAkB,GAAGD,aAAa,CAACE,GAAG,CAACC,CAAC,IAAI,IAAIC,4BAAa,CAACD,CAAC,CAACE,aAAa,CAAC,CAAC;EACxF;EAEA,MAAaC,eAAeA,CAACC,kBAA2B,EAAE;IACtDA,kBAAkB,CAACC,GAAG,CAAC,aAAa,EAAE,CAACC,GAAG,EAAEC,GAAG,EAAEC,IAAI,KAAK;MACtD,IAAI,CAACC,uBAAuB,CAAC,CAAC;MAC9BD,IAAI,CAAC,CAAC;IACV,CAAC,CAAC;EACN;EAEQC,uBAAuBA,CAAA,EAAG;IAC9B,IAAI,CAACX,kBAAkB,GAAG,IAAI,CAACD,aAAa,CAACE,GAAG,CAACC,CAAC,IAAI,IAAIC,4BAAa,CAACD,CAAC,CAACE,aAAa,CAAC,CAAC;EAC7F;EAEA,MAMaQ,iBAAiBA,CAACC,GAAW,EAAEC,MAAc,EAA4B;IAClF,MAAM;MAAEC,QAAQ;MAAEC,UAAU;MAAEC;IAAS,CAAC,GAAG,MAAM,IAAAC,sBAAe,EAC5DL,GAAG,EACH,IAAI,CAACd,aAAa,CAAC,CAAC,CAAC,EACrB,IAAI,CAACC,kBAAkB,CAAC,CAAC,CAC7B,CAAC;IACD,MAAMmB,aAAa,GAAG,CAAAL,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEM,WAAW,CAAC,CAAC,MAAK,KAAK;IACrD,MAAMC,eAAe,GAAG,MAAM,IAAAC,6BAAsB,EAChDT,GAAG,EACH,IAAI,CAACd,aAAa,CAAC,CAAC,CAAC,EACrB,IAAI,CAACC,kBAAkB,CAAC,CAAC,CAAC,EAC1BmB,aACJ,CAAC;IACD,MAAMI,MAAM,GAAG,MAAMF,eAAe,CAACG,aAAa,CAACP,QAAQ,EAAEF,QAAQ,EAAEC,UAAU,CAAC;IAClF,OAAOO,MAAM;EACjB;AACJ,CAAC,OAAAE,0BAAA,CAAAC,OAAA,EAAAvC,MAAA,CAAAwC,SAAA,wBAAAzC,IAAA,GAAA0C,MAAA,CAAAC,wBAAA,CAAA1C,MAAA,CAAAwC,SAAA,wBAAAxC,MAAA,CAAAwC,SAAA,IAAAxC,MAAA","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getGitBranch = void 0;
|
|
7
|
+
var _shelljs = require("shelljs");
|
|
8
|
+
const getGitBranch = directoryPath => {
|
|
9
|
+
(0, _shelljs.cd)(directoryPath);
|
|
10
|
+
const currentBranch = (0, _shelljs.exec)("git rev-parse --abbrev-ref HEAD", {
|
|
11
|
+
silent: true
|
|
12
|
+
});
|
|
13
|
+
(0, _shelljs.cd)(__dirname);
|
|
14
|
+
return currentBranch.toString();
|
|
15
|
+
};
|
|
16
|
+
exports.getGitBranch = getGitBranch;
|
|
17
|
+
//# sourceMappingURL=GitUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitUtils.js","names":["_shelljs","require","getGitBranch","directoryPath","cd","currentBranch","exec","silent","__dirname","toString","exports"],"sources":["../../../../src/Commons/GitUtils.ts"],"sourcesContent":["import { exec, cd } from \"shelljs\";\n\nexport const getGitBranch = (directoryPath: string): string => {\n cd(directoryPath);\n const currentBranch = exec(\"git rev-parse --abbrev-ref HEAD\", { silent: true });\n cd(__dirname);\n\n return currentBranch.toString();\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAIC,aAAqB,IAAa;EAC3D,IAAAC,WAAE,EAACD,aAAa,CAAC;EACjB,MAAME,aAAa,GAAG,IAAAC,aAAI,EAAC,iCAAiC,EAAE;IAAEC,MAAM,EAAE;EAAK,CAAC,CAAC;EAC/E,IAAAH,WAAE,EAACI,SAAS,CAAC;EAEb,OAAOH,aAAa,CAACI,QAAQ,CAAC,CAAC;AACnC,CAAC;AAACC,OAAA,CAAAR,YAAA,GAAAA,YAAA","ignoreList":[]}
|