@kontur.candy/generator 5.102.0 → 5.103.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/dist/index.js +71 -5
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -67846,7 +67846,8 @@ class FormulaProcessor {
|
|
|
67846
67846
|
if (this.isStringExpression(leftExpression) && this.isStringExpression(rightExpression)) {
|
|
67847
67847
|
this.returnExpression(_babel_types__WEBPACK_IMPORTED_MODULE_0__.binaryExpression("===", leftExpression, rightExpression));
|
|
67848
67848
|
} else {
|
|
67849
|
-
|
|
67849
|
+
const rightArgument = _babel_types__WEBPACK_IMPORTED_MODULE_0__.isStringLiteral(rightExpression) ? _babel_types__WEBPACK_IMPORTED_MODULE_0__.callExpression(_babel_types__WEBPACK_IMPORTED_MODULE_0__.identifier("wrapDecimalOperand"), [rightExpression]) : rightExpression;
|
|
67850
|
+
this.returnExpression(_babel_types__WEBPACK_IMPORTED_MODULE_0__.callExpression(_babel_types__WEBPACK_IMPORTED_MODULE_0__.memberExpression(leftExpression, _babel_types__WEBPACK_IMPORTED_MODULE_0__.identifier("eq")), [rightArgument]));
|
|
67850
67851
|
}
|
|
67851
67852
|
}
|
|
67852
67853
|
beforeChooseExpression() {
|
|
@@ -72065,6 +72066,10 @@ class KCXmlGeneratorBase {
|
|
|
72065
72066
|
if (expression instanceof _AutoCalculationsGenerator_AutoCalculationsFromFormulas_KCXmlContract_Formula__WEBPACK_IMPORTED_MODULE_1__.FormulaPropertyByNameExpression) {
|
|
72066
72067
|
return gcf(x => x.getProperty, JSON.stringify(expression.name));
|
|
72067
72068
|
}
|
|
72069
|
+
if (expression instanceof _AutoCalculationsGenerator_AutoCalculationsFromFormulas_KCXmlContract_Formula__WEBPACK_IMPORTED_MODULE_1__.FormulaCastExpression) {
|
|
72070
|
+
const compiledExpression = this.compileExpression(prefix, targetFullPath, expression.expression, deps);
|
|
72071
|
+
return compiledExpression;
|
|
72072
|
+
}
|
|
72068
72073
|
// -- не работает в рантайм калькуляторе
|
|
72069
72074
|
if (expression instanceof _AutoCalculationsGenerator_AutoCalculationsFromFormulas_KCXmlContract_Formula__WEBPACK_IMPORTED_MODULE_1__.FormulaFirstOrDefaultExpression) {
|
|
72070
72075
|
return "null";
|
|
@@ -72830,12 +72835,17 @@ async function readFormSources(formSourcesPath, farmDirectory) {
|
|
|
72830
72835
|
const legacyfetchfunctionsDirectory = (await (0,fs_extra__WEBPACK_IMPORTED_MODULE_12__.pathExists)(path__WEBPACK_IMPORTED_MODULE_1___default().join(farmDirectory, "legacyfetchfunctions"))) ? path__WEBPACK_IMPORTED_MODULE_1___default().join(farmDirectory, "legacyfetchfunctions") : path__WEBPACK_IMPORTED_MODULE_1___default().join(farmDirectory, "candy.farm", "legacyfetchfunctions");
|
|
72831
72836
|
sugarReferences.fetchFunctionFiles = (await readdirAsync(legacyfetchfunctionsDirectory)).map(x => path__WEBPACK_IMPORTED_MODULE_1___default().resolve(legacyfetchfunctionsDirectory, x));
|
|
72832
72837
|
}
|
|
72838
|
+
const additionalNormalizers = await readAdditionalNormalizersFiles(formSourcesPath);
|
|
72839
|
+
const formJsonSettings = (_JSON$parse$settings = JSON.parse(await readFileSource(formSourcesPath, "form.json", "{}"))["settings"]) !== null && _JSON$parse$settings !== void 0 ? _JSON$parse$settings : {};
|
|
72840
|
+
if (additionalNormalizers.length > 0 && !formJsonSettings.useServerSideFLangNormalization) {
|
|
72841
|
+
throw new Error("[ERROR] Не проставлен флаг useServerSideFLangNormalization, но папка normalizers не пустая");
|
|
72842
|
+
}
|
|
72833
72843
|
const result = {
|
|
72834
72844
|
sugarContent: sugarContent,
|
|
72835
72845
|
resources: {
|
|
72836
72846
|
gfv: gfv,
|
|
72837
72847
|
formSourcesPath: formSourcesPath,
|
|
72838
|
-
formJsonSettings:
|
|
72848
|
+
formJsonSettings: formJsonSettings,
|
|
72839
72849
|
additionalSettings: await readFileSource(formSourcesPath, "settings.json", "{}"),
|
|
72840
72850
|
autocalcsContent: await readAutoCalcFiles(path__WEBPACK_IMPORTED_MODULE_1___default().join(formSourcesPath, "autocalc")),
|
|
72841
72851
|
helpersContent: await readJavaScriptFilesWithNames(path__WEBPACK_IMPORTED_MODULE_1___default().join(formSourcesPath, "helpers")),
|
|
@@ -72850,7 +72860,7 @@ async function readFormSources(formSourcesPath, farmDirectory) {
|
|
|
72850
72860
|
fetchFunctionSources: await readFiles(sugarReferences.fetchFunctionFiles.map(x => path__WEBPACK_IMPORTED_MODULE_1___default().resolve(formSugarDirectoryPath, x))),
|
|
72851
72861
|
localization: await connectJSFilesWithNames(path__WEBPACK_IMPORTED_MODULE_1___default().join(formSourcesPath, "localization")),
|
|
72852
72862
|
importedFiles: await readImportedFiles(formSourcesPath),
|
|
72853
|
-
additionalNormalizers:
|
|
72863
|
+
additionalNormalizers: additionalNormalizers
|
|
72854
72864
|
}
|
|
72855
72865
|
};
|
|
72856
72866
|
if (gfv.startsWith("4")) {
|
|
@@ -73326,9 +73336,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
73326
73336
|
/* harmony export */ });
|
|
73327
73337
|
/* harmony import */ var _Common_ModelPath_ModelPath__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../Common/ModelPath/ModelPath */ "./Common/ModelPath/ModelPath.ts");
|
|
73328
73338
|
/* harmony import */ var _Common_hashUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../Common/hashUtils */ "./Common/hashUtils.ts");
|
|
73339
|
+
/* harmony import */ var _Common_TypingUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../Common/TypingUtils */ "./Common/TypingUtils.ts");
|
|
73329
73340
|
var _BuildInTypeExpression;
|
|
73330
73341
|
|
|
73331
73342
|
|
|
73343
|
+
|
|
73332
73344
|
class FLangNode {
|
|
73333
73345
|
toString() {
|
|
73334
73346
|
return this.convertToString();
|
|
@@ -73606,6 +73618,33 @@ class BuildInTypeExpression extends TypeReferenceExpression {
|
|
|
73606
73618
|
convertToString() {
|
|
73607
73619
|
return this.buildInTypeName;
|
|
73608
73620
|
}
|
|
73621
|
+
static getByName(typeName) {
|
|
73622
|
+
switch (typeName) {
|
|
73623
|
+
case "string":
|
|
73624
|
+
return BuildInTypeExpression.string;
|
|
73625
|
+
case "decimal":
|
|
73626
|
+
return BuildInTypeExpression.decimal;
|
|
73627
|
+
case "dict":
|
|
73628
|
+
return BuildInTypeExpression.dict;
|
|
73629
|
+
case "bool":
|
|
73630
|
+
return BuildInTypeExpression.bool;
|
|
73631
|
+
case "null":
|
|
73632
|
+
return BuildInTypeExpression.null;
|
|
73633
|
+
case "dateTime":
|
|
73634
|
+
return BuildInTypeExpression.dateTime;
|
|
73635
|
+
case "int":
|
|
73636
|
+
return BuildInTypeExpression.int;
|
|
73637
|
+
case "array":
|
|
73638
|
+
return BuildInTypeExpression.array;
|
|
73639
|
+
case "hashSet":
|
|
73640
|
+
return BuildInTypeExpression.hashSet;
|
|
73641
|
+
case "object":
|
|
73642
|
+
return BuildInTypeExpression.object;
|
|
73643
|
+
default:
|
|
73644
|
+
(0,_Common_TypingUtils__WEBPACK_IMPORTED_MODULE_2__.ensureNever)(typeName);
|
|
73645
|
+
return (0,_Common_TypingUtils__WEBPACK_IMPORTED_MODULE_2__.reject)();
|
|
73646
|
+
}
|
|
73647
|
+
}
|
|
73609
73648
|
}
|
|
73610
73649
|
_BuildInTypeExpression = BuildInTypeExpression;
|
|
73611
73650
|
BuildInTypeExpression.object = new _BuildInTypeExpression("object");
|
|
@@ -74734,7 +74773,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
74734
74773
|
/* harmony export */ dictFieldNameSuffix: () => (/* binding */ dictFieldNameSuffix),
|
|
74735
74774
|
/* harmony export */ ensureCorrectFieldNameByExpressionType: () => (/* binding */ ensureCorrectFieldNameByExpressionType),
|
|
74736
74775
|
/* harmony export */ ensureOperandsOfTypeOrNull: () => (/* binding */ ensureOperandsOfTypeOrNull),
|
|
74776
|
+
/* harmony export */ extractOriginalStringValueOrCastToStringIfNeeded: () => (/* binding */ extractOriginalStringValueOrCastToStringIfNeeded),
|
|
74737
74777
|
/* harmony export */ extractValueReferenceFromCast: () => (/* binding */ extractValueReferenceFromCast),
|
|
74778
|
+
/* harmony export */ extractValueReferenceFromCastSafe: () => (/* binding */ extractValueReferenceFromCastSafe),
|
|
74738
74779
|
/* harmony export */ getAllExpressionChildren: () => (/* binding */ getAllExpressionChildren),
|
|
74739
74780
|
/* harmony export */ getSelectorIdFromRule: () => (/* binding */ getSelectorIdFromRule),
|
|
74740
74781
|
/* harmony export */ hashSetFieldNameSuffix: () => (/* binding */ hashSetFieldNameSuffix),
|
|
@@ -74945,6 +74986,26 @@ function extractValueReferenceFromCast(expression) {
|
|
|
74945
74986
|
}
|
|
74946
74987
|
return (0,_Common_TypingUtils__WEBPACK_IMPORTED_MODULE_2__.reject)(`Cannot extract ValueReferenceExpression! ${(0,util__WEBPACK_IMPORTED_MODULE_0__.inspect)(expression)}`);
|
|
74947
74988
|
}
|
|
74989
|
+
function extractValueReferenceFromCastSafe(expression) {
|
|
74990
|
+
if (expression instanceof _FLangCodeDom__WEBPACK_IMPORTED_MODULE_6__.ValueReferenceExpression) {
|
|
74991
|
+
return [true, expression];
|
|
74992
|
+
}
|
|
74993
|
+
if (expression instanceof _FLangCodeDom__WEBPACK_IMPORTED_MODULE_6__.CastExpression && expression.targetExpression instanceof _FLangCodeDom__WEBPACK_IMPORTED_MODULE_6__.ValueReferenceExpression) {
|
|
74994
|
+
return [true, expression.targetExpression];
|
|
74995
|
+
}
|
|
74996
|
+
if (expression instanceof _FLangCodeDom__WEBPACK_IMPORTED_MODULE_6__.CastExpression && expression.targetExpression instanceof _FLangCodeDom__WEBPACK_IMPORTED_MODULE_6__.NoDepsExpression && expression.targetExpression.expression instanceof _FLangCodeDom__WEBPACK_IMPORTED_MODULE_6__.ValueReferenceExpression) {
|
|
74997
|
+
return [true, expression.targetExpression.expression];
|
|
74998
|
+
}
|
|
74999
|
+
return [false];
|
|
75000
|
+
}
|
|
75001
|
+
function extractOriginalStringValueOrCastToStringIfNeeded(expression) {
|
|
75002
|
+
if (expression instanceof _FLangCodeDom__WEBPACK_IMPORTED_MODULE_6__.DecimalLiteralExpression) {
|
|
75003
|
+
return new _FLangCodeDom__WEBPACK_IMPORTED_MODULE_6__.StringLiteralExpression(expression.value.toString());
|
|
75004
|
+
}
|
|
75005
|
+
const [success, extractedExpr] = extractValueReferenceFromCastSafe(expression);
|
|
75006
|
+
const exprToCast = success ? extractedExpr : expression;
|
|
75007
|
+
return castOperandToStringIfNeed(exprToCast);
|
|
75008
|
+
}
|
|
74948
75009
|
function ensureCorrectFieldNameByExpressionType(statement) {
|
|
74949
75010
|
if (statement instanceof _FLangCodeDom__WEBPACK_IMPORTED_MODULE_6__.SetStatement) {
|
|
74950
75011
|
const lastPart = _Common_IterableUtils__WEBPACK_IMPORTED_MODULE_1__.IterUtils.last(statement.left.modePath.getPathParts());
|
|
@@ -75431,8 +75492,8 @@ class FormulaExpressionToFlangExpressionConverter {
|
|
|
75431
75492
|
return this.compileGetSumByKeysExpression(prefix, target, expression, addPrecalculationRule);
|
|
75432
75493
|
}
|
|
75433
75494
|
if (expression instanceof _AutoCalculationsGenerator_AutoCalculationsFromFormulas_KCXmlContract_Formula__WEBPACK_IMPORTED_MODULE_0__.FormulaOneOfExpression) {
|
|
75434
|
-
const arg = (0,_FLang_FlangUtils__WEBPACK_IMPORTED_MODULE_8__.
|
|
75435
|
-
const items = expression.items.expressions.map(item => (0,_FLang_FlangUtils__WEBPACK_IMPORTED_MODULE_8__.
|
|
75495
|
+
const arg = (0,_FLang_FlangUtils__WEBPACK_IMPORTED_MODULE_8__.extractOriginalStringValueOrCastToStringIfNeeded)(this.compileExpressionToFlangExpressionInternal(expression.argument, prefix, target, addPrecalculationRule));
|
|
75496
|
+
const items = expression.items.expressions.map(item => (0,_FLang_FlangUtils__WEBPACK_IMPORTED_MODULE_8__.extractOriginalStringValueOrCastToStringIfNeeded)(this.compileExpressionToFlangExpressionInternal(item, prefix, target, addPrecalculationRule)));
|
|
75436
75497
|
return new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_9__.OneOfExpression(arg, items);
|
|
75437
75498
|
}
|
|
75438
75499
|
if (expression instanceof _AutoCalculationsGenerator_AutoCalculationsFromFormulas_KCXmlContract_Formula__WEBPACK_IMPORTED_MODULE_0__.FormulaHasAutoFlagExpression) {
|
|
@@ -75468,6 +75529,11 @@ class FormulaExpressionToFlangExpressionConverter {
|
|
|
75468
75529
|
if (expression instanceof _AutoCalculationsGenerator_AutoCalculationsFromFormulas_KCXmlContract_Formula__WEBPACK_IMPORTED_MODULE_0__.FormulaPropertyByNameExpression) {
|
|
75469
75530
|
return new _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_9__.StringLiteralExpression("");
|
|
75470
75531
|
}
|
|
75532
|
+
if (expression instanceof _AutoCalculationsGenerator_AutoCalculationsFromFormulas_KCXmlContract_Formula__WEBPACK_IMPORTED_MODULE_0__.FormulaCastExpression) {
|
|
75533
|
+
const targetType = _FLang_FLangCodeDom__WEBPACK_IMPORTED_MODULE_9__.BuildInTypeExpression.getByName(expression.type);
|
|
75534
|
+
const arg = (0,_FLang_FlangUtils__WEBPACK_IMPORTED_MODULE_8__.castOperandToStringIfNeed)(this.compileExpressionToFlangExpressionInternal(expression.expression, prefix, target, addPrecalculationRule));
|
|
75535
|
+
return (0,_FLang_FlangUtils__WEBPACK_IMPORTED_MODULE_8__.castOperandIfNeed)(arg, targetType);
|
|
75536
|
+
}
|
|
75471
75537
|
throw new Error(`Unsupported type of node: ${expression.constructor.name}, ${expression.sourceXmlNode.name}`);
|
|
75472
75538
|
}
|
|
75473
75539
|
castOperandForComparisonExpression(formulaExpression, flangExpression) {
|