@kontur.candy/tools 2.226.0 → 2.228.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.
@@ -200,6 +200,9 @@ class ModelPathImpl {
200
200
  const firstIndex = this.tokens.find(PathTokens.isInstanceToken);
201
201
  return firstIndex ? Number(firstIndex) : -1;
202
202
  }
203
+ tokensCount() {
204
+ return this.tokens.length;
205
+ }
203
206
  isResolved() {
204
207
  return isAllTokensResolved(this.tokens);
205
208
  }
@@ -243,6 +246,13 @@ class ModelPathImpl {
243
246
  const tokensWithoutLastIteration = this.tokens.slice(0, lastIterationIndex);
244
247
  return new ModelPathImpl(tokensWithoutLastIteration, this.absolute);
245
248
  }
249
+ getPathWithoutIterations() {
250
+ if (!this.isContainCurrentOrEachIteration()) {
251
+ return this;
252
+ }
253
+ const tokens = this.tokens.filter(x => !PathTokens.isMultiToken(x));
254
+ return new ModelPathImpl(tokens, this.absolute);
255
+ }
246
256
  getLastIndexOfCurrentOrEachIteration() {
247
257
  if (!this.isContainCurrentOrEachIteration()) {
248
258
  return -1;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelPath.js","names":["_IterableUtils","require","_TypingUtils","_EachCurrentCollision","_ModelPathBuilder","_PathMatcher","EachSymbol","Symbol","for","CurrentSymbol","PathTokens","isMultiToken","part","each","current","isSimpleToken","isInstanceToken","test","isInstanceTokenOrInstancesSpec","exports","isModelPath","path","ModelPathImpl","convertToLegacyPath","toLegacyPath","convertToAbsoluteModelPath","createAbsoluteFromMask","convertToRelativeModelPath","createRelativeFromMask","emptyModelPath","emptyAbsoluteModelPath","createModelPath","absolute","partPartStrings","split","ensurePlainPathPartsDoesNotContainMultiplicity","startsWith","slice","createFromMask","multiplicitySymbol","map","x","parts","some","Error","createAbsolute","createRelativeResolvedModelPath","createAbsoluteFromTokens","tokens","createAbsoluteResolvedFromTokens","createRelativeFromTokens","joinModelPaths","resultParts","joinItem","push","isAbsolute","getPathPartsAsArray","Array","isArray","isAllTokensResolved","every","constructor","pathParts","legacyPath","cachedHash","filter","resolved","getPathParts","getSimpleTokensStrict","token","getSimpleTokensAsArrayStrict","joinWith","getFirstMultiplicityInstanceNumber","firstIndex","find","Number","isResolved","resolveAll","instance","isContainIteration","isContainCurrentIteration","isContainCurrentOrEachIteration","getLastListPath","lastIterationIndex","lastIndexOf","getPathWithoutLastIteration","getLastIndexOfCurrentOrEachIteration","tokensWithoutLastIteration","lastCurrentIterationIndex","Math","max","isEndsWithIteration","lastItem","IterUtils","last","isEndsWithCurrentIteration","toString","length","pathPartToString","join","_this$legacyPath","isEquals","modelPath","eachCurrentCollision","EachCurrentCollision","AreSame","Iterator","from","zip","t1","t2","getHash","undefined","hash","reverseArray","currentStr","AreDifferent","stringIndex","charCodeAt","isIncludes","targetTokens","i","leftPart","rightPart","isFinite","getIterationRank","count","isEmpty","matchFor","PathMatcher","match","thisParts","otherParts","value","index","endsWith","reverse","splitByMultiplicity","lastSimpleParts","ModelPathBuilder","append","empty","toResolvedPath","normalize","resultTokens","pathPart","pop","toCurrentIteration","toEachIteration","toAbsolute","getAllParentPaths","result","skipLast","toPath","trimLastStarIfLastToken","trimFirstStarIfLastToken","firstItem","first","getSuffixPathFrom","modelFieldPath","kind","MatchKind","DifferentSuffix","source","isNotNullOrUndefined","flatMap","getParentPath","applyInstancesDirty","instances","fillWithMultiplicityIfHasNoInstance","instanceCounter","_instances$instanceCo","instanceOrEach","reject","ensureAndGetString"],"sources":["../../../../Common/ModelPath/ModelPath.ts"],"sourcesContent":["import { BindingPath } from \"../../Engine/src/Engine/Core/CoreTypes\";\nimport { count, IterUtils, reverseArray } from \"../IterableUtils\";\nimport { ensureAndGetString, isNotNullOrUndefined, reject } from \"../TypingUtils\";\n\nimport { EachCurrentCollision } from \"./EachCurrentCollision\";\nimport { ModelPathBuilder } from \"./ModelPathBuilder\";\nimport { MatchKind, PathMatcher, PathMatching } from \"./PathMatcher\";\nimport { IEquatable } from \"./IEquatable\";\n\nconst EachSymbol = Symbol.for(\"__EACH__\");\nconst CurrentSymbol = Symbol.for(\"__CURRENT__\");\n\nexport class PathTokens {\n public static each: typeof EachSymbol = EachSymbol;\n public static current: typeof CurrentSymbol = CurrentSymbol;\n\n public static isMultiToken(part: undefined | PathToken): part is typeof EachSymbol | typeof CurrentSymbol {\n return part === PathTokens.each || part === PathTokens.current;\n }\n\n public static isSimpleToken(part: undefined | PathToken): part is string {\n return typeof part === \"string\";\n }\n\n public static isInstanceToken(part: undefined | PathToken): part is string {\n return typeof part === \"string\" && /^\\d+$/.test(part);\n }\n\n public static isInstanceTokenOrInstancesSpec(part: undefined | PathToken): part is string {\n return typeof part === \"string\" && (/^\\d+$/.test(part) || /^\\[(\\d+\\,?)+\\]$/i.test(part));\n }\n}\n\nexport type SimplePathToken = string;\n\nexport type PathToken = SimplePathToken | typeof EachSymbol | typeof CurrentSymbol;\n\nexport function isModelPath(path: BindingPath | ModelPath | unknown): path is ModelPath {\n return typeof path !== \"string\" && path instanceof ModelPathImpl;\n}\n\nexport function convertToLegacyPath(path: BindingPath | ModelPath): BindingPath {\n return isModelPath(path) ? path.toLegacyPath() : path;\n}\n\nexport function convertToAbsoluteModelPath<R extends boolean, A extends boolean>(\n path: BindingPath | IModelPath<R, A>\n): IModelPath<R, true>;\nexport function convertToAbsoluteModelPath(path: BindingPath | AbsoluteModelPath): AbsoluteModelPath {\n return isModelPath(path) ? path : createAbsoluteFromMask(path, PathTokens.each);\n}\n\nexport function convertToRelativeModelPath<R extends boolean, A extends boolean>(\n path: BindingPath | IModelPath<R, A>\n): IModelPath<R, false>;\nexport function convertToRelativeModelPath(path: BindingPath | RelativeModelPath): RelativeModelPath {\n return isModelPath(path) ? path : createRelativeFromMask(path, PathTokens.each);\n}\n\nexport function emptyModelPath(): RelativeResolvedModelPath {\n return new ModelPathImpl<true, false>([], false);\n}\n\nexport function emptyAbsoluteModelPath(): AbsoluteResolvedModelPath {\n return new ModelPathImpl<true, true>([], true);\n}\n\nexport function createModelPath(path: string, absolute: true): AbsoluteResolvedModelPath;\nexport function createModelPath(path: string, absolute: false): RelativeResolvedModelPath;\nexport function createModelPath(path: string, absolute: \"auto\"): ResolvedModelPath;\nexport function createModelPath(path: string, absolute: boolean | \"auto\"): ResolvedModelPath {\n const partPartStrings = path.split(\"/\");\n ensurePlainPathPartsDoesNotContainMultiplicity(partPartStrings);\n if (absolute === \"auto\") {\n if (path.startsWith(\"/\")) {\n return new ModelPathImpl<true, true>(partPartStrings.slice(1), true);\n } else {\n return new ModelPathImpl<true, false>(partPartStrings, false);\n }\n }\n if (absolute && path.startsWith(\"/\")) {\n return new ModelPathImpl<true, true>(partPartStrings.slice(1), true);\n }\n return new ModelPathImpl<true, boolean>(partPartStrings, absolute);\n}\n\nexport function createFromMask(path: string, absolute: true, multiplicitySymbol: PathToken): AbsoluteModelPath;\nexport function createFromMask(path: string, absolute: false, multiplicitySymbol: PathToken): ResolvedModelPath;\nexport function createFromMask(path: string, absolute: \"auto\", multiplicitySymbol: PathToken): ModelPath;\nexport function createFromMask(path: string, absolute: boolean | \"auto\", multiplicitySymbol: PathToken): ModelPath {\n const partPartStrings = path.split(\"/\").map(x => (x === \"*\" ? multiplicitySymbol : x));\n if (absolute === \"auto\") {\n if (path.startsWith(\"/\")) {\n return new ModelPathImpl(partPartStrings.slice(1), true);\n } else {\n return new ModelPathImpl(partPartStrings, false);\n }\n }\n if (absolute && path.startsWith(\"/\")) {\n return new ModelPathImpl(partPartStrings.slice(1), true);\n }\n return new ModelPathImpl(partPartStrings, absolute);\n}\n\nexport function createAbsoluteFromMask(path: string, multiplicitySymbol: PathToken): AbsoluteModelPath {\n const partPartStrings = path.split(\"/\").map(x => (x === \"*\" ? multiplicitySymbol : x));\n if (path.startsWith(\"/\")) {\n return new ModelPathImpl(partPartStrings.slice(1), true);\n }\n return new ModelPathImpl(partPartStrings, true);\n}\n\nexport function createRelativeFromMask(path: string, multiplicitySymbol: PathToken): RelativeModelPath {\n const partPartStrings = path.split(\"/\").map(x => (x === \"*\" ? multiplicitySymbol : x));\n return new ModelPathImpl(partPartStrings, false);\n}\n\nfunction ensurePlainPathPartsDoesNotContainMultiplicity(parts: readonly string[]): void {\n if (parts.some(x => x === \"*\")) {\n throw new Error(\"Path must not contain * symbol\");\n }\n}\n\nexport function createAbsolute(path: string): AbsoluteResolvedModelPath {\n const partPartStrings = path.split(\"/\");\n ensurePlainPathPartsDoesNotContainMultiplicity(partPartStrings);\n if (path.startsWith(\"/\")) {\n return new ModelPathImpl<true, true>(partPartStrings.slice(1), true);\n }\n return new ModelPathImpl<true, true>(partPartStrings, true);\n}\n\nexport function createRelativeResolvedModelPath(path: string): RelativeResolvedModelPath {\n const partPartStrings = path.split(\"/\");\n ensurePlainPathPartsDoesNotContainMultiplicity(partPartStrings);\n return new ModelPathImpl<true, false>(partPartStrings, false);\n}\n\nexport function createAbsoluteFromTokens(tokens: PathToken[]): AbsoluteModelPath {\n return new ModelPathImpl<false, true>(tokens, true);\n}\n\nexport function createAbsoluteResolvedFromTokens(tokens: readonly string[]): AbsoluteResolvedModelPath {\n ensurePlainPathPartsDoesNotContainMultiplicity(tokens);\n return new ModelPathImpl<true, true>(tokens, true);\n}\n\nexport function createRelativeFromTokens(tokens: readonly string[]): RelativeResolvedModelPath;\nexport function createRelativeFromTokens(tokens: readonly PathToken[]): RelativeModelPath;\nexport function createRelativeFromTokens(tokens: readonly PathToken[]): RelativeModelPath {\n return new ModelPathImpl<false, false>(tokens, false);\n}\n\nexport function joinModelPaths(...parts: Array<ModelPath | PathToken | PathToken[]>): ModelPath {\n let absolute = false;\n let resultParts: PathToken[] = [];\n for (const joinItem of parts) {\n if (typeof joinItem === \"string\") {\n resultParts.push(joinItem);\n } else if (isModelPath(joinItem)) {\n if (joinItem.isAbsolute()) {\n absolute = true;\n resultParts = [...joinItem.getPathPartsAsArray()];\n } else {\n resultParts.push(...joinItem.getPathPartsAsArray());\n }\n } else if (Array.isArray(joinItem)) {\n resultParts.push(...joinItem);\n } else if (PathTokens.isMultiToken(joinItem)) {\n resultParts.push(joinItem);\n }\n }\n\n return new ModelPathImpl(resultParts, absolute);\n}\n\nexport interface IModelPath<TResolved extends boolean, TAbsolute extends boolean>\n extends IEquatable<IModelPath<boolean, boolean>> {\n readonly resolved: TResolved;\n readonly absolute: TAbsolute;\n\n isEquals(modelPath: ModelPath, eachCurrentCollision?: EachCurrentCollision): boolean;\n getHash(eachCurrentCollision?: EachCurrentCollision): number;\n\n isResolved(): this is IModelPath<true, TAbsolute>;\n isAbsolute(): this is IModelPath<TResolved, true>;\n toAbsolute(): IModelPath<TResolved, true>;\n\n joinWith(...path: string[]): IModelPath<TResolved, TAbsolute>;\n joinWith(...path: PathToken[]): IModelPath<boolean, TAbsolute>;\n joinWith(...path: Array<ResolvedModelPath | string>): IModelPath<TResolved, TAbsolute>;\n joinWith(...path: Array<AbsoluteResolvedModelPath | string>): IModelPath<TResolved, true>;\n joinWith(...path: Array<ModelPath | PathToken>): IModelPath<boolean, TAbsolute>;\n\n getPathParts(): Iterable<PathTokenSpec<TResolved>>;\n getPathPartsAsArray(): ReadonlyArray<PathTokenSpec<TResolved>>;\n getSimpleTokensStrict(): Iterable<SimplePathToken>;\n getSimpleTokensAsArrayStrict(): readonly SimplePathToken[];\n\n resolveAll(instance: string): ModelPath;\n isContainIteration(): boolean;\n isContainCurrentIteration(): boolean;\n isContainCurrentOrEachIteration(): boolean;\n getLastListPath(): PathToken[];\n getPathWithoutLastIteration(): ModelPath;\n getLastIndexOfCurrentOrEachIteration(): number | -1;\n isEndsWithIteration(): boolean;\n isEndsWithCurrentIteration(): boolean;\n isIncludes(modelPath: ModelPath): boolean;\n getIterationRank(eachCurrentCollision?: EachCurrentCollision): number;\n isEmpty(): boolean;\n matchFor(modelPath: ModelPath): PathMatching;\n startsWith(modelPath: ModelPath): boolean;\n endsWith(modelPath: ModelPath): boolean;\n splitByMultiplicity(): Iterable<ResolvedModelPath | typeof EachSymbol | typeof CurrentSymbol>;\n normalize(): IModelPath<TResolved, TAbsolute>;\n toCurrentIteration(): IModelPath<TResolved, TAbsolute>;\n toEachIteration(): IModelPath<TResolved, TAbsolute>;\n getAllParentPaths(): Iterable<ModelPath>;\n trimLastStarIfLastToken(): IModelPath<TResolved, TAbsolute>;\n trimFirstStarIfLastToken(): IModelPath<TResolved, TAbsolute>;\n getSuffixPathFrom(modelFieldPath: ModelPath): RelativeModelPath;\n getParentPath(): IModelPath<TResolved, TAbsolute>;\n applyInstancesDirty(\n instances: SimplePathToken[],\n fillWithMultiplicityIfHasNoInstance?: boolean\n ): IModelPath<TResolved, TAbsolute>;\n getFirstMultiplicityInstanceNumber(): number;\n toString(): string;\n toLegacyPath(): string;\n}\n\nexport type ModelPath = IModelPath<boolean, boolean>;\nexport type ResolvedModelPath = IModelPath<true, boolean>;\nexport type AbsoluteModelPath = IModelPath<boolean, true>;\nexport type AbsoluteResolvedModelPath = IModelPath<true, true>;\n\nexport type RelativeModelPath = IModelPath<boolean, false>;\nexport type RelativeResolvedModelPath = IModelPath<true, false>;\n\ntype PathTokenSpec<TResolved extends boolean> = TResolved extends true ? string : PathToken;\n\ntype PathTokensSpec<TResolved extends boolean> = Array<PathTokenSpec<TResolved>>;\n\ntype ReadonlyPathTokensSpec<TResolved extends boolean> = ReadonlyArray<PathTokenSpec<TResolved>>;\n\nfunction isAllTokensResolved<TResolved extends boolean>(tokens: ReadonlyPathTokensSpec<TResolved>): TResolved {\n // Я что-то немогу сообразить как тут всё строго написать...\n // @ts-expect-error\n return tokens.every(PathTokens.isSimpleToken);\n}\n\nexport class ModelPathImpl<TResolved extends boolean, TAbsolute extends boolean>\n implements IEquatable<ModelPath>, IModelPath<TResolved, TAbsolute>\n{\n private readonly tokens: ReadonlyPathTokensSpec<TResolved>;\n public readonly absolute: TAbsolute;\n private legacyPath: undefined | string;\n private cachedHash: number | undefined;\n\n public constructor(pathParts: ReadonlyPathTokensSpec<TResolved>, absolute: TAbsolute) {\n this.tokens = pathParts.filter(x => x !== \"\");\n this.absolute = absolute;\n }\n\n public get resolved(): TResolved {\n return isAllTokensResolved(this.tokens);\n }\n\n public getPathParts(): Iterable<PathTokenSpec<TResolved>> {\n return this.tokens;\n }\n\n public getPathPartsAsArray(): ReadonlyArray<PathTokenSpec<TResolved>> {\n return this.tokens;\n }\n\n public *getSimpleTokensStrict(): Iterable<SimplePathToken> {\n for (const token of this.tokens) {\n if (!PathTokens.isSimpleToken(token)) {\n throw new Error(\"Path must not contain spec tokens\");\n }\n yield token;\n }\n }\n\n public getSimpleTokensAsArrayStrict(): readonly SimplePathToken[] {\n for (const token of this.tokens) {\n if (!PathTokens.isSimpleToken(token)) {\n throw new Error(\"Path must not contain spec tokens\");\n }\n }\n // Проверка выше гараентирует что будут только SimplePathToken.\n // Все map и filter убраны для производительности\n // @ts-ignore\n return this.tokens;\n }\n\n public joinWith(...path: string[]): IModelPath<TResolved, TAbsolute>;\n public joinWith(...path: PathToken[]): IModelPath<boolean, TAbsolute>;\n public joinWith(...path: Array<ResolvedModelPath | string>): IModelPath<TResolved, TAbsolute>;\n public joinWith(...path: Array<AbsoluteResolvedModelPath | string>): IModelPath<TResolved, true>;\n public joinWith(...path: Array<ModelPath | PathToken>): IModelPath<boolean, TAbsolute>;\n public joinWith(...path: Array<ModelPath | PathToken>): IModelPath<boolean, boolean> {\n return joinModelPaths(this, ...path);\n }\n\n public getFirstMultiplicityInstanceNumber(): number {\n const firstIndex = this.tokens.find(PathTokens.isInstanceToken);\n return firstIndex ? Number(firstIndex) : -1;\n }\n\n public isResolved(): this is IModelPath<true, TAbsolute> {\n return isAllTokensResolved(this.tokens);\n }\n\n public resolveAll(instance: string): ModelPath {\n const tokens = this.tokens.map(token => {\n if (PathTokens.isSimpleToken(token)) {\n return token;\n } else {\n return instance;\n }\n });\n\n return new ModelPathImpl(tokens, this.absolute);\n }\n\n public isContainIteration(): boolean {\n return this.tokens.some(x => x === PathTokens.each);\n }\n\n public isContainCurrentIteration(): boolean {\n return this.tokens.some(x => x === PathTokens.current);\n }\n\n public isContainCurrentOrEachIteration(): boolean {\n return this.tokens.some(x => x === PathTokens.current || x === PathTokens.each);\n }\n\n public getLastListPath(): PathToken[] {\n if (!this.isContainIteration()) {\n throw new Error(\"Path must contain iteration\");\n }\n\n // Проверка выше гарантирует, что будет PathTokens.each\n // @ts-ignore\n const lastIterationIndex = this.tokens.lastIndexOf(PathTokens.each);\n return this.tokens.slice(0, lastIterationIndex);\n }\n\n public getPathWithoutLastIteration(): ModelPath {\n if (!this.isContainCurrentOrEachIteration()) {\n return this;\n }\n\n const lastIterationIndex = this.getLastIndexOfCurrentOrEachIteration();\n if (lastIterationIndex === -1) {\n throw new Error(\"Path must contain current or each iteration\");\n }\n\n const tokensWithoutLastIteration = this.tokens.slice(0, lastIterationIndex);\n\n return new ModelPathImpl(tokensWithoutLastIteration, this.absolute);\n }\n\n public getLastIndexOfCurrentOrEachIteration(): number | -1 {\n if (!this.isContainCurrentOrEachIteration()) {\n return -1;\n }\n\n // Проверка выше гарантирует, что будет PathTokens.each или PathTokens.current\n // @ts-ignore\n const lastIterationIndex = this.tokens.lastIndexOf(PathTokens.each);\n // @ts-ignore\n const lastCurrentIterationIndex = this.tokens.lastIndexOf(PathTokens.current);\n\n return Math.max(lastIterationIndex, lastCurrentIterationIndex);\n }\n\n public isEndsWithIteration(): boolean {\n const lastItem = IterUtils.last(this.tokens);\n return lastItem == PathTokens.each;\n }\n\n public isEndsWithCurrentIteration(): boolean {\n const lastItem = IterUtils.last(this.tokens);\n return lastItem == PathTokens.current;\n }\n\n public isAbsolute(): this is IModelPath<TResolved, true> {\n return this.absolute;\n }\n\n public toString(): string {\n if (this.tokens.length === 0) {\n return \"\";\n }\n return (this.absolute ? \"/\" : \"\") + this.tokens.map(x => this.pathPartToString(x)).join(\"/\");\n }\n\n public toLegacyPath(): string {\n return this.legacyPath ?? (this.legacyPath = this.tokens.map(x => this.pathPartToString(x)).join(\"/\"));\n }\n\n public isEquals(\n modelPath: ModelPath,\n eachCurrentCollision: EachCurrentCollision = EachCurrentCollision.AreSame\n ): boolean {\n if (eachCurrentCollision === EachCurrentCollision.AreSame) {\n return this.toLegacyPath() === modelPath.toLegacyPath();\n } else {\n return (\n this.isAbsolute() === modelPath.isAbsolute() &&\n Iterator.from(IterUtils.zip(this.getPathParts(), modelPath.getPathParts())).every(\n ([t1, t2]) => t1 === t2\n )\n );\n }\n }\n\n /**\n * Всегда целое положительное беззнаковое 32-битное число\n */\n public getHash(eachCurrentCollision: EachCurrentCollision = EachCurrentCollision.AreSame): number {\n if (this.cachedHash == undefined) {\n let hash = 5381;\n for (const token of reverseArray(this.tokens)) {\n let currentStr: string;\n if (PathTokens.isSimpleToken(token)) {\n currentStr = token;\n } else {\n if (eachCurrentCollision === EachCurrentCollision.AreDifferent) {\n currentStr = token === PathTokens.each ? \"*\" : \"!\";\n } else {\n currentStr = \"*\";\n }\n }\n let stringIndex = currentStr.length;\n while (stringIndex) {\n hash = (hash * 33) ^ currentStr.charCodeAt(--stringIndex);\n }\n }\n\n /*\n JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n integers. Since we want the results to be always positive, convert the\n signed int to an unsigned by doing an unsigned bitshift.\n */\n this.cachedHash = hash >>> 0;\n }\n return this.cachedHash;\n }\n\n public isIncludes(modelPath: ModelPath): boolean {\n const targetTokens = modelPath.getPathPartsAsArray();\n if (this.tokens.length !== targetTokens.length) {\n return false;\n }\n for (let i = 0; i < this.tokens.length; i++) {\n const leftPart = this.tokens[i];\n const rightPart = targetTokens[i];\n if (typeof leftPart === \"string\") {\n if (typeof rightPart === \"string\") {\n if (leftPart !== rightPart) {\n return false;\n }\n continue;\n } else {\n return false;\n }\n } else if (leftPart === PathTokens.current || leftPart === PathTokens.each) {\n if (typeof rightPart === \"string\") {\n if (!isFinite(Number(rightPart))) {\n return false;\n }\n continue;\n } else {\n if (rightPart !== PathTokens.current && rightPart !== PathTokens.each) {\n return false;\n }\n continue;\n }\n }\n }\n return true;\n }\n\n public getIterationRank(eachCurrentCollision: EachCurrentCollision = EachCurrentCollision.AreDifferent): number {\n return count(\n Iterator.from(this.tokens).filter(x =>\n eachCurrentCollision == EachCurrentCollision.AreDifferent\n ? x === PathTokens.each\n : PathTokens.isMultiToken(x)\n )\n );\n }\n\n public isEmpty(): boolean {\n return this.tokens.length === 0;\n }\n\n public matchFor(modelPath: ModelPath): PathMatching {\n if (!this.isAbsolute()) {\n throw new Error(`Cannot match non absolute path '${this.toString()}'`);\n }\n if (!modelPath.isAbsolute()) {\n throw new Error(`Cannot match non absolute path '${modelPath.toString()}'`);\n }\n return PathMatcher.match(this.tokens, modelPath.getPathPartsAsArray());\n }\n\n public startsWith(modelPath: ModelPath): boolean {\n const thisParts = this.getPathPartsAsArray();\n const otherParts = modelPath.getPathPartsAsArray();\n return otherParts.every((value, index) => value === thisParts[index]);\n }\n\n public endsWith(modelPath: ModelPath): boolean {\n const thisParts = this.getPathPartsAsArray().slice().reverse();\n const otherParts = modelPath.getPathPartsAsArray().slice().reverse();\n return otherParts.every((value, index) => value === thisParts[index]);\n }\n\n public *splitByMultiplicity(): Iterable<ResolvedModelPath | typeof EachSymbol | typeof CurrentSymbol> {\n let lastSimpleParts = new ModelPathBuilder(this.isAbsolute());\n for (const token of this.tokens) {\n if (PathTokens.isSimpleToken(token)) {\n lastSimpleParts.append(token);\n } else {\n if (!lastSimpleParts.empty) {\n yield lastSimpleParts.toResolvedPath();\n lastSimpleParts = new ModelPathBuilder(false);\n }\n yield token;\n }\n }\n if (!lastSimpleParts.empty) {\n yield lastSimpleParts.toResolvedPath();\n }\n }\n\n public normalize(): IModelPath<TResolved, TAbsolute> {\n const resultTokens: PathTokensSpec<TResolved> = [];\n for (const pathPart of this.tokens) {\n if (pathPart === \"..\") {\n if (!resultTokens.pop()) {\n if (this.isAbsolute()) {\n throw new Error(`Path is invalid '${this.toString()}'`);\n } else {\n resultTokens.push(\"..\");\n }\n }\n continue;\n }\n\n if (pathPart === \".\") {\n continue;\n }\n resultTokens.push(pathPart);\n }\n return new ModelPathImpl<TResolved, TAbsolute>(resultTokens, this.absolute);\n }\n\n /**\n * @summary Спецификаторы множественности Each заменяет на Current\n */\n public toCurrentIteration(): IModelPath<TResolved, TAbsolute> {\n if (this.isResolved()) {\n return this;\n } else {\n // NOTE Тут не получается наложить дискриминатор\n // @ts-expect-error\n const pathParts: PathTokensSpec<TResolved> = this.tokens.map(x =>\n x === PathTokens.each ? PathTokens.current : x\n );\n return new ModelPathImpl<TResolved, TAbsolute>(pathParts, this.absolute);\n }\n }\n\n public toEachIteration(): IModelPath<TResolved, TAbsolute> {\n if (this.isResolved()) {\n return this;\n } else {\n // NOTE Тут не получается наложить дискриминатор\n // @ts-expect-error\n const pathParts: PathTokensSpec<TResolved> = this.tokens.map(x =>\n x === PathTokens.current ? PathTokens.each : x\n );\n return new ModelPathImpl<TResolved, TAbsolute>(pathParts, this.absolute);\n }\n }\n\n public toAbsolute(): IModelPath<TResolved, true> {\n if (!this.absolute) {\n throw new Error(`Path '${this.toLegacyPath()} is not absolute'`);\n }\n return new ModelPathImpl<TResolved, true>(this.tokens, true);\n }\n\n public *getAllParentPaths(): Iterable<ModelPath> {\n const result = new ModelPathBuilder(this.isAbsolute());\n for (const token of IterUtils.skipLast(this.getPathParts(), 1)) {\n result.append(token);\n yield result.toPath();\n }\n }\n\n public trimLastStarIfLastToken(): IModelPath<TResolved, TAbsolute> {\n const lastItem = IterUtils.last(this.tokens);\n if (lastItem != undefined && PathTokens.isMultiToken(lastItem)) {\n return new ModelPathImpl(this.tokens.slice(0, -1), this.absolute);\n }\n return this;\n }\n\n public trimFirstStarIfLastToken(): IModelPath<TResolved, TAbsolute> {\n const firstItem = IterUtils.first(this.tokens);\n if (firstItem != undefined && PathTokens.isMultiToken(firstItem)) {\n return new ModelPathImpl(this.tokens.slice(1), this.absolute);\n }\n return this;\n }\n\n public getSuffixPathFrom(modelFieldPath: ModelPath): RelativeModelPath {\n return createRelativeFromTokens(\n modelFieldPath\n .matchFor(this)\n .map(x => (x.kind === MatchKind.DifferentSuffix ? x.source : undefined))\n .filter(isNotNullOrUndefined)\n .flatMap(x => x.getPathPartsAsArray())\n );\n }\n\n public getParentPath(): IModelPath<TResolved, TAbsolute> {\n const result = new ModelPathBuilder(this.absolute);\n for (const token of IterUtils.skipLast(this.getPathParts(), 1)) {\n result.append(token);\n }\n // Тут получается так, что по другому никак\n // @ts-expect-error\n return result.toPath();\n }\n\n public applyInstancesDirty(\n instances: SimplePathToken[],\n fillWithMultiplicityIfHasNoInstance?: boolean\n ): IModelPath<TResolved, TAbsolute> {\n if (this.isResolved() || instances.length === 0) {\n return this;\n }\n let instanceCounter = 0;\n const result = new ModelPathBuilder(true);\n for (const token of this.getPathParts()) {\n if (PathTokens.isMultiToken(token) && instanceCounter < instances.length) {\n const instanceOrEach =\n instances[instanceCounter] ??\n (fillWithMultiplicityIfHasNoInstance == true ? PathTokens.each : reject());\n result.append(instanceOrEach);\n instanceCounter++;\n } else {\n result.append(token);\n }\n }\n // Тут получается так, что по другому никак\n // @ts-expect-error\n return result.toPath();\n }\n\n private pathPartToString(pathPart: PathToken): string {\n if (typeof pathPart === \"string\") {\n return pathPart;\n }\n if (pathPart === PathTokens.each) {\n return \"*\";\n }\n if (pathPart === PathTokens.current) {\n return \"*\";\n }\n throw new Error(`Unknown path part specified: ${ensureAndGetString(pathPart)}`);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ModelPath.js","names":["_IterableUtils","require","_TypingUtils","_EachCurrentCollision","_ModelPathBuilder","_PathMatcher","EachSymbol","Symbol","for","CurrentSymbol","PathTokens","isMultiToken","part","each","current","isSimpleToken","isInstanceToken","test","isInstanceTokenOrInstancesSpec","exports","isModelPath","path","ModelPathImpl","convertToLegacyPath","toLegacyPath","convertToAbsoluteModelPath","createAbsoluteFromMask","convertToRelativeModelPath","createRelativeFromMask","emptyModelPath","emptyAbsoluteModelPath","createModelPath","absolute","partPartStrings","split","ensurePlainPathPartsDoesNotContainMultiplicity","startsWith","slice","createFromMask","multiplicitySymbol","map","x","parts","some","Error","createAbsolute","createRelativeResolvedModelPath","createAbsoluteFromTokens","tokens","createAbsoluteResolvedFromTokens","createRelativeFromTokens","joinModelPaths","resultParts","joinItem","push","isAbsolute","getPathPartsAsArray","Array","isArray","isAllTokensResolved","every","constructor","pathParts","legacyPath","cachedHash","filter","resolved","getPathParts","getSimpleTokensStrict","token","getSimpleTokensAsArrayStrict","joinWith","getFirstMultiplicityInstanceNumber","firstIndex","find","Number","tokensCount","length","isResolved","resolveAll","instance","isContainIteration","isContainCurrentIteration","isContainCurrentOrEachIteration","getLastListPath","lastIterationIndex","lastIndexOf","getPathWithoutLastIteration","getLastIndexOfCurrentOrEachIteration","tokensWithoutLastIteration","getPathWithoutIterations","lastCurrentIterationIndex","Math","max","isEndsWithIteration","lastItem","IterUtils","last","isEndsWithCurrentIteration","toString","pathPartToString","join","_this$legacyPath","isEquals","modelPath","eachCurrentCollision","EachCurrentCollision","AreSame","Iterator","from","zip","t1","t2","getHash","undefined","hash","reverseArray","currentStr","AreDifferent","stringIndex","charCodeAt","isIncludes","targetTokens","i","leftPart","rightPart","isFinite","getIterationRank","count","isEmpty","matchFor","PathMatcher","match","thisParts","otherParts","value","index","endsWith","reverse","splitByMultiplicity","lastSimpleParts","ModelPathBuilder","append","empty","toResolvedPath","normalize","resultTokens","pathPart","pop","toCurrentIteration","toEachIteration","toAbsolute","getAllParentPaths","result","skipLast","toPath","trimLastStarIfLastToken","trimFirstStarIfLastToken","firstItem","first","getSuffixPathFrom","modelFieldPath","kind","MatchKind","DifferentSuffix","source","isNotNullOrUndefined","flatMap","getParentPath","applyInstancesDirty","instances","fillWithMultiplicityIfHasNoInstance","instanceCounter","_instances$instanceCo","instanceOrEach","reject","ensureAndGetString"],"sources":["../../../../Common/ModelPath/ModelPath.ts"],"sourcesContent":["import { BindingPath } from \"../../Engine/src/Engine/Core/CoreTypes\";\nimport { count, IterUtils, reverseArray } from \"../IterableUtils\";\nimport { ensureAndGetString, isNotNullOrUndefined, reject } from \"../TypingUtils\";\n\nimport { EachCurrentCollision } from \"./EachCurrentCollision\";\nimport { ModelPathBuilder } from \"./ModelPathBuilder\";\nimport { MatchKind, PathMatcher, PathMatching } from \"./PathMatcher\";\nimport { IEquatable } from \"./IEquatable\";\n\nconst EachSymbol = Symbol.for(\"__EACH__\");\nconst CurrentSymbol = Symbol.for(\"__CURRENT__\");\n\nexport class PathTokens {\n public static each: typeof EachSymbol = EachSymbol;\n public static current: typeof CurrentSymbol = CurrentSymbol;\n\n public static isMultiToken(part: undefined | PathToken): part is typeof EachSymbol | typeof CurrentSymbol {\n return part === PathTokens.each || part === PathTokens.current;\n }\n\n public static isSimpleToken(part: undefined | PathToken): part is string {\n return typeof part === \"string\";\n }\n\n public static isInstanceToken(part: undefined | PathToken): part is string {\n return typeof part === \"string\" && /^\\d+$/.test(part);\n }\n\n public static isInstanceTokenOrInstancesSpec(part: undefined | PathToken): part is string {\n return typeof part === \"string\" && (/^\\d+$/.test(part) || /^\\[(\\d+\\,?)+\\]$/i.test(part));\n }\n}\n\nexport type SimplePathToken = string;\n\nexport type PathToken = SimplePathToken | typeof EachSymbol | typeof CurrentSymbol;\n\nexport function isModelPath(path: BindingPath | ModelPath | unknown): path is ModelPath {\n return typeof path !== \"string\" && path instanceof ModelPathImpl;\n}\n\nexport function convertToLegacyPath(path: BindingPath | ModelPath): BindingPath {\n return isModelPath(path) ? path.toLegacyPath() : path;\n}\n\nexport function convertToAbsoluteModelPath<R extends boolean, A extends boolean>(\n path: BindingPath | IModelPath<R, A>\n): IModelPath<R, true>;\nexport function convertToAbsoluteModelPath(path: BindingPath | AbsoluteModelPath): AbsoluteModelPath {\n return isModelPath(path) ? path : createAbsoluteFromMask(path, PathTokens.each);\n}\n\nexport function convertToRelativeModelPath<R extends boolean, A extends boolean>(\n path: BindingPath | IModelPath<R, A>\n): IModelPath<R, false>;\nexport function convertToRelativeModelPath(path: BindingPath | RelativeModelPath): RelativeModelPath {\n return isModelPath(path) ? path : createRelativeFromMask(path, PathTokens.each);\n}\n\nexport function emptyModelPath(): RelativeResolvedModelPath {\n return new ModelPathImpl<true, false>([], false);\n}\n\nexport function emptyAbsoluteModelPath(): AbsoluteResolvedModelPath {\n return new ModelPathImpl<true, true>([], true);\n}\n\nexport function createModelPath(path: string, absolute: true): AbsoluteResolvedModelPath;\nexport function createModelPath(path: string, absolute: false): RelativeResolvedModelPath;\nexport function createModelPath(path: string, absolute: \"auto\"): ResolvedModelPath;\nexport function createModelPath(path: string, absolute: boolean | \"auto\"): ResolvedModelPath {\n const partPartStrings = path.split(\"/\");\n ensurePlainPathPartsDoesNotContainMultiplicity(partPartStrings);\n if (absolute === \"auto\") {\n if (path.startsWith(\"/\")) {\n return new ModelPathImpl<true, true>(partPartStrings.slice(1), true);\n } else {\n return new ModelPathImpl<true, false>(partPartStrings, false);\n }\n }\n if (absolute && path.startsWith(\"/\")) {\n return new ModelPathImpl<true, true>(partPartStrings.slice(1), true);\n }\n return new ModelPathImpl<true, boolean>(partPartStrings, absolute);\n}\n\nexport function createFromMask(path: string, absolute: true, multiplicitySymbol: PathToken): AbsoluteModelPath;\nexport function createFromMask(path: string, absolute: false, multiplicitySymbol: PathToken): ResolvedModelPath;\nexport function createFromMask(path: string, absolute: \"auto\", multiplicitySymbol: PathToken): ModelPath;\nexport function createFromMask(path: string, absolute: boolean | \"auto\", multiplicitySymbol: PathToken): ModelPath {\n const partPartStrings = path.split(\"/\").map(x => (x === \"*\" ? multiplicitySymbol : x));\n if (absolute === \"auto\") {\n if (path.startsWith(\"/\")) {\n return new ModelPathImpl(partPartStrings.slice(1), true);\n } else {\n return new ModelPathImpl(partPartStrings, false);\n }\n }\n if (absolute && path.startsWith(\"/\")) {\n return new ModelPathImpl(partPartStrings.slice(1), true);\n }\n return new ModelPathImpl(partPartStrings, absolute);\n}\n\nexport function createAbsoluteFromMask(path: string, multiplicitySymbol: PathToken): AbsoluteModelPath {\n const partPartStrings = path.split(\"/\").map(x => (x === \"*\" ? multiplicitySymbol : x));\n if (path.startsWith(\"/\")) {\n return new ModelPathImpl(partPartStrings.slice(1), true);\n }\n return new ModelPathImpl(partPartStrings, true);\n}\n\nexport function createRelativeFromMask(path: string, multiplicitySymbol: PathToken): RelativeModelPath {\n const partPartStrings = path.split(\"/\").map(x => (x === \"*\" ? multiplicitySymbol : x));\n return new ModelPathImpl(partPartStrings, false);\n}\n\nfunction ensurePlainPathPartsDoesNotContainMultiplicity(parts: readonly string[]): void {\n if (parts.some(x => x === \"*\")) {\n throw new Error(\"Path must not contain * symbol\");\n }\n}\n\nexport function createAbsolute(path: string): AbsoluteResolvedModelPath {\n const partPartStrings = path.split(\"/\");\n ensurePlainPathPartsDoesNotContainMultiplicity(partPartStrings);\n if (path.startsWith(\"/\")) {\n return new ModelPathImpl<true, true>(partPartStrings.slice(1), true);\n }\n return new ModelPathImpl<true, true>(partPartStrings, true);\n}\n\nexport function createRelativeResolvedModelPath(path: string): RelativeResolvedModelPath {\n const partPartStrings = path.split(\"/\");\n ensurePlainPathPartsDoesNotContainMultiplicity(partPartStrings);\n return new ModelPathImpl<true, false>(partPartStrings, false);\n}\n\nexport function createAbsoluteFromTokens(tokens: PathToken[]): AbsoluteModelPath {\n return new ModelPathImpl<false, true>(tokens, true);\n}\n\nexport function createAbsoluteResolvedFromTokens(tokens: readonly string[]): AbsoluteResolvedModelPath {\n ensurePlainPathPartsDoesNotContainMultiplicity(tokens);\n return new ModelPathImpl<true, true>(tokens, true);\n}\n\nexport function createRelativeFromTokens(tokens: readonly string[]): RelativeResolvedModelPath;\nexport function createRelativeFromTokens(tokens: readonly PathToken[]): RelativeModelPath;\nexport function createRelativeFromTokens(tokens: readonly PathToken[]): RelativeModelPath {\n return new ModelPathImpl<false, false>(tokens, false);\n}\n\nexport function joinModelPaths(...parts: Array<ModelPath | PathToken | PathToken[]>): ModelPath {\n let absolute = false;\n let resultParts: PathToken[] = [];\n for (const joinItem of parts) {\n if (typeof joinItem === \"string\") {\n resultParts.push(joinItem);\n } else if (isModelPath(joinItem)) {\n if (joinItem.isAbsolute()) {\n absolute = true;\n resultParts = [...joinItem.getPathPartsAsArray()];\n } else {\n resultParts.push(...joinItem.getPathPartsAsArray());\n }\n } else if (Array.isArray(joinItem)) {\n resultParts.push(...joinItem);\n } else if (PathTokens.isMultiToken(joinItem)) {\n resultParts.push(joinItem);\n }\n }\n\n return new ModelPathImpl(resultParts, absolute);\n}\n\nexport interface IModelPath<TResolved extends boolean, TAbsolute extends boolean>\n extends IEquatable<IModelPath<boolean, boolean>> {\n readonly resolved: TResolved;\n readonly absolute: TAbsolute;\n\n isEquals(modelPath: ModelPath, eachCurrentCollision?: EachCurrentCollision): boolean;\n getHash(eachCurrentCollision?: EachCurrentCollision): number;\n\n isResolved(): this is IModelPath<true, TAbsolute>;\n isAbsolute(): this is IModelPath<TResolved, true>;\n toAbsolute(): IModelPath<TResolved, true>;\n\n joinWith(...path: string[]): IModelPath<TResolved, TAbsolute>;\n joinWith(...path: PathToken[]): IModelPath<boolean, TAbsolute>;\n joinWith(...path: Array<ResolvedModelPath | string>): IModelPath<TResolved, TAbsolute>;\n joinWith(...path: Array<AbsoluteResolvedModelPath | string>): IModelPath<TResolved, true>;\n joinWith(...path: Array<ModelPath | PathToken>): IModelPath<boolean, TAbsolute>;\n\n getPathParts(): Iterable<PathTokenSpec<TResolved>>;\n getPathPartsAsArray(): ReadonlyArray<PathTokenSpec<TResolved>>;\n getSimpleTokensStrict(): Iterable<SimplePathToken>;\n getSimpleTokensAsArrayStrict(): readonly SimplePathToken[];\n\n resolveAll(instance: string): ModelPath;\n isContainIteration(): boolean;\n isContainCurrentIteration(): boolean;\n isContainCurrentOrEachIteration(): boolean;\n getLastListPath(): PathToken[];\n getPathWithoutLastIteration(): ModelPath;\n getPathWithoutIterations(): IModelPath<TResolved, TAbsolute>;\n getLastIndexOfCurrentOrEachIteration(): number | -1;\n isEndsWithIteration(): boolean;\n isEndsWithCurrentIteration(): boolean;\n isIncludes(modelPath: ModelPath): boolean;\n getIterationRank(eachCurrentCollision?: EachCurrentCollision): number;\n isEmpty(): boolean;\n matchFor(modelPath: ModelPath): PathMatching;\n startsWith(modelPath: ModelPath): boolean;\n endsWith(modelPath: ModelPath): boolean;\n splitByMultiplicity(): Iterable<ResolvedModelPath | typeof EachSymbol | typeof CurrentSymbol>;\n normalize(): IModelPath<TResolved, TAbsolute>;\n toCurrentIteration(): IModelPath<TResolved, TAbsolute>;\n toEachIteration(): IModelPath<TResolved, TAbsolute>;\n getAllParentPaths(): Iterable<ModelPath>;\n trimLastStarIfLastToken(): IModelPath<TResolved, TAbsolute>;\n trimFirstStarIfLastToken(): IModelPath<TResolved, TAbsolute>;\n getSuffixPathFrom(modelFieldPath: ModelPath): RelativeModelPath;\n getParentPath(): IModelPath<TResolved, TAbsolute>;\n applyInstancesDirty(\n instances: SimplePathToken[],\n fillWithMultiplicityIfHasNoInstance?: boolean\n ): IModelPath<TResolved, TAbsolute>;\n getFirstMultiplicityInstanceNumber(): number;\n tokensCount(): number;\n toString(): string;\n toLegacyPath(): string;\n}\n\nexport type ModelPath = IModelPath<boolean, boolean>;\nexport type ResolvedModelPath = IModelPath<true, boolean>;\nexport type AbsoluteModelPath = IModelPath<boolean, true>;\nexport type AbsoluteResolvedModelPath = IModelPath<true, true>;\n\nexport type RelativeModelPath = IModelPath<boolean, false>;\nexport type RelativeResolvedModelPath = IModelPath<true, false>;\n\ntype PathTokenSpec<TResolved extends boolean> = TResolved extends true ? string : PathToken;\n\ntype PathTokensSpec<TResolved extends boolean> = Array<PathTokenSpec<TResolved>>;\n\ntype ReadonlyPathTokensSpec<TResolved extends boolean> = ReadonlyArray<PathTokenSpec<TResolved>>;\n\nfunction isAllTokensResolved<TResolved extends boolean>(tokens: ReadonlyPathTokensSpec<TResolved>): TResolved {\n // Я что-то немогу сообразить как тут всё строго написать...\n // @ts-expect-error\n return tokens.every(PathTokens.isSimpleToken);\n}\n\nexport class ModelPathImpl<TResolved extends boolean, TAbsolute extends boolean>\n implements IEquatable<ModelPath>, IModelPath<TResolved, TAbsolute>\n{\n private readonly tokens: ReadonlyPathTokensSpec<TResolved>;\n public readonly absolute: TAbsolute;\n private legacyPath: undefined | string;\n private cachedHash: number | undefined;\n\n public constructor(pathParts: ReadonlyPathTokensSpec<TResolved>, absolute: TAbsolute) {\n this.tokens = pathParts.filter(x => x !== \"\");\n this.absolute = absolute;\n }\n\n public get resolved(): TResolved {\n return isAllTokensResolved(this.tokens);\n }\n\n public getPathParts(): Iterable<PathTokenSpec<TResolved>> {\n return this.tokens;\n }\n\n public getPathPartsAsArray(): ReadonlyArray<PathTokenSpec<TResolved>> {\n return this.tokens;\n }\n\n public *getSimpleTokensStrict(): Iterable<SimplePathToken> {\n for (const token of this.tokens) {\n if (!PathTokens.isSimpleToken(token)) {\n throw new Error(\"Path must not contain spec tokens\");\n }\n yield token;\n }\n }\n\n public getSimpleTokensAsArrayStrict(): readonly SimplePathToken[] {\n for (const token of this.tokens) {\n if (!PathTokens.isSimpleToken(token)) {\n throw new Error(\"Path must not contain spec tokens\");\n }\n }\n // Проверка выше гараентирует что будут только SimplePathToken.\n // Все map и filter убраны для производительности\n // @ts-ignore\n return this.tokens;\n }\n\n public joinWith(...path: string[]): IModelPath<TResolved, TAbsolute>;\n public joinWith(...path: PathToken[]): IModelPath<boolean, TAbsolute>;\n public joinWith(...path: Array<ResolvedModelPath | string>): IModelPath<TResolved, TAbsolute>;\n public joinWith(...path: Array<AbsoluteResolvedModelPath | string>): IModelPath<TResolved, true>;\n public joinWith(...path: Array<ModelPath | PathToken>): IModelPath<boolean, TAbsolute>;\n public joinWith(...path: Array<ModelPath | PathToken>): IModelPath<boolean, boolean> {\n return joinModelPaths(this, ...path);\n }\n\n public getFirstMultiplicityInstanceNumber(): number {\n const firstIndex = this.tokens.find(PathTokens.isInstanceToken);\n return firstIndex ? Number(firstIndex) : -1;\n }\n\n public tokensCount(): number {\n return this.tokens.length;\n }\n\n public isResolved(): this is IModelPath<true, TAbsolute> {\n return isAllTokensResolved(this.tokens);\n }\n\n public resolveAll(instance: string): ModelPath {\n const tokens = this.tokens.map(token => {\n if (PathTokens.isSimpleToken(token)) {\n return token;\n } else {\n return instance;\n }\n });\n\n return new ModelPathImpl(tokens, this.absolute);\n }\n\n public isContainIteration(): boolean {\n return this.tokens.some(x => x === PathTokens.each);\n }\n\n public isContainCurrentIteration(): boolean {\n return this.tokens.some(x => x === PathTokens.current);\n }\n\n public isContainCurrentOrEachIteration(): boolean {\n return this.tokens.some(x => x === PathTokens.current || x === PathTokens.each);\n }\n\n public getLastListPath(): PathToken[] {\n if (!this.isContainIteration()) {\n throw new Error(\"Path must contain iteration\");\n }\n\n // Проверка выше гарантирует, что будет PathTokens.each\n // @ts-ignore\n const lastIterationIndex = this.tokens.lastIndexOf(PathTokens.each);\n return this.tokens.slice(0, lastIterationIndex);\n }\n\n public getPathWithoutLastIteration(): ModelPath {\n if (!this.isContainCurrentOrEachIteration()) {\n return this;\n }\n\n const lastIterationIndex = this.getLastIndexOfCurrentOrEachIteration();\n if (lastIterationIndex === -1) {\n throw new Error(\"Path must contain current or each iteration\");\n }\n\n const tokensWithoutLastIteration = this.tokens.slice(0, lastIterationIndex);\n\n return new ModelPathImpl(tokensWithoutLastIteration, this.absolute);\n }\n\n public getPathWithoutIterations(): IModelPath<TResolved, TAbsolute> {\n if (!this.isContainCurrentOrEachIteration()) {\n return this;\n }\n const tokens = this.tokens.filter(x => !PathTokens.isMultiToken(x));\n return new ModelPathImpl(tokens, this.absolute);\n }\n\n public getLastIndexOfCurrentOrEachIteration(): number | -1 {\n if (!this.isContainCurrentOrEachIteration()) {\n return -1;\n }\n\n // Проверка выше гарантирует, что будет PathTokens.each или PathTokens.current\n // @ts-ignore\n const lastIterationIndex = this.tokens.lastIndexOf(PathTokens.each);\n // @ts-ignore\n const lastCurrentIterationIndex = this.tokens.lastIndexOf(PathTokens.current);\n\n return Math.max(lastIterationIndex, lastCurrentIterationIndex);\n }\n\n public isEndsWithIteration(): boolean {\n const lastItem = IterUtils.last(this.tokens);\n return lastItem == PathTokens.each;\n }\n\n public isEndsWithCurrentIteration(): boolean {\n const lastItem = IterUtils.last(this.tokens);\n return lastItem == PathTokens.current;\n }\n\n public isAbsolute(): this is IModelPath<TResolved, true> {\n return this.absolute;\n }\n\n public toString(): string {\n if (this.tokens.length === 0) {\n return \"\";\n }\n return (this.absolute ? \"/\" : \"\") + this.tokens.map(x => this.pathPartToString(x)).join(\"/\");\n }\n\n public toLegacyPath(): string {\n return this.legacyPath ?? (this.legacyPath = this.tokens.map(x => this.pathPartToString(x)).join(\"/\"));\n }\n\n public isEquals(\n modelPath: ModelPath,\n eachCurrentCollision: EachCurrentCollision = EachCurrentCollision.AreSame\n ): boolean {\n if (eachCurrentCollision === EachCurrentCollision.AreSame) {\n return this.toLegacyPath() === modelPath.toLegacyPath();\n } else {\n return (\n this.isAbsolute() === modelPath.isAbsolute() &&\n Iterator.from(IterUtils.zip(this.getPathParts(), modelPath.getPathParts())).every(\n ([t1, t2]) => t1 === t2\n )\n );\n }\n }\n\n /**\n * Всегда целое положительное беззнаковое 32-битное число\n */\n public getHash(eachCurrentCollision: EachCurrentCollision = EachCurrentCollision.AreSame): number {\n if (this.cachedHash == undefined) {\n let hash = 5381;\n for (const token of reverseArray(this.tokens)) {\n let currentStr: string;\n if (PathTokens.isSimpleToken(token)) {\n currentStr = token;\n } else {\n if (eachCurrentCollision === EachCurrentCollision.AreDifferent) {\n currentStr = token === PathTokens.each ? \"*\" : \"!\";\n } else {\n currentStr = \"*\";\n }\n }\n let stringIndex = currentStr.length;\n while (stringIndex) {\n hash = (hash * 33) ^ currentStr.charCodeAt(--stringIndex);\n }\n }\n\n /*\n JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n integers. Since we want the results to be always positive, convert the\n signed int to an unsigned by doing an unsigned bitshift.\n */\n this.cachedHash = hash >>> 0;\n }\n return this.cachedHash;\n }\n\n public isIncludes(modelPath: ModelPath): boolean {\n const targetTokens = modelPath.getPathPartsAsArray();\n if (this.tokens.length !== targetTokens.length) {\n return false;\n }\n for (let i = 0; i < this.tokens.length; i++) {\n const leftPart = this.tokens[i];\n const rightPart = targetTokens[i];\n if (typeof leftPart === \"string\") {\n if (typeof rightPart === \"string\") {\n if (leftPart !== rightPart) {\n return false;\n }\n continue;\n } else {\n return false;\n }\n } else if (leftPart === PathTokens.current || leftPart === PathTokens.each) {\n if (typeof rightPart === \"string\") {\n if (!isFinite(Number(rightPart))) {\n return false;\n }\n continue;\n } else {\n if (rightPart !== PathTokens.current && rightPart !== PathTokens.each) {\n return false;\n }\n continue;\n }\n }\n }\n return true;\n }\n\n public getIterationRank(eachCurrentCollision: EachCurrentCollision = EachCurrentCollision.AreDifferent): number {\n return count(\n Iterator.from(this.tokens).filter(x =>\n eachCurrentCollision == EachCurrentCollision.AreDifferent\n ? x === PathTokens.each\n : PathTokens.isMultiToken(x)\n )\n );\n }\n\n public isEmpty(): boolean {\n return this.tokens.length === 0;\n }\n\n public matchFor(modelPath: ModelPath): PathMatching {\n if (!this.isAbsolute()) {\n throw new Error(`Cannot match non absolute path '${this.toString()}'`);\n }\n if (!modelPath.isAbsolute()) {\n throw new Error(`Cannot match non absolute path '${modelPath.toString()}'`);\n }\n return PathMatcher.match(this.tokens, modelPath.getPathPartsAsArray());\n }\n\n public startsWith(modelPath: ModelPath): boolean {\n const thisParts = this.getPathPartsAsArray();\n const otherParts = modelPath.getPathPartsAsArray();\n return otherParts.every((value, index) => value === thisParts[index]);\n }\n\n public endsWith(modelPath: ModelPath): boolean {\n const thisParts = this.getPathPartsAsArray().slice().reverse();\n const otherParts = modelPath.getPathPartsAsArray().slice().reverse();\n return otherParts.every((value, index) => value === thisParts[index]);\n }\n\n public *splitByMultiplicity(): Iterable<ResolvedModelPath | typeof EachSymbol | typeof CurrentSymbol> {\n let lastSimpleParts = new ModelPathBuilder(this.isAbsolute());\n for (const token of this.tokens) {\n if (PathTokens.isSimpleToken(token)) {\n lastSimpleParts.append(token);\n } else {\n if (!lastSimpleParts.empty) {\n yield lastSimpleParts.toResolvedPath();\n lastSimpleParts = new ModelPathBuilder(false);\n }\n yield token;\n }\n }\n if (!lastSimpleParts.empty) {\n yield lastSimpleParts.toResolvedPath();\n }\n }\n\n public normalize(): IModelPath<TResolved, TAbsolute> {\n const resultTokens: PathTokensSpec<TResolved> = [];\n for (const pathPart of this.tokens) {\n if (pathPart === \"..\") {\n if (!resultTokens.pop()) {\n if (this.isAbsolute()) {\n throw new Error(`Path is invalid '${this.toString()}'`);\n } else {\n resultTokens.push(\"..\");\n }\n }\n continue;\n }\n\n if (pathPart === \".\") {\n continue;\n }\n resultTokens.push(pathPart);\n }\n return new ModelPathImpl<TResolved, TAbsolute>(resultTokens, this.absolute);\n }\n\n /**\n * @summary Спецификаторы множественности Each заменяет на Current\n */\n public toCurrentIteration(): IModelPath<TResolved, TAbsolute> {\n if (this.isResolved()) {\n return this;\n } else {\n // NOTE Тут не получается наложить дискриминатор\n // @ts-expect-error\n const pathParts: PathTokensSpec<TResolved> = this.tokens.map(x =>\n x === PathTokens.each ? PathTokens.current : x\n );\n return new ModelPathImpl<TResolved, TAbsolute>(pathParts, this.absolute);\n }\n }\n\n public toEachIteration(): IModelPath<TResolved, TAbsolute> {\n if (this.isResolved()) {\n return this;\n } else {\n // NOTE Тут не получается наложить дискриминатор\n // @ts-expect-error\n const pathParts: PathTokensSpec<TResolved> = this.tokens.map(x =>\n x === PathTokens.current ? PathTokens.each : x\n );\n return new ModelPathImpl<TResolved, TAbsolute>(pathParts, this.absolute);\n }\n }\n\n public toAbsolute(): IModelPath<TResolved, true> {\n if (!this.absolute) {\n throw new Error(`Path '${this.toLegacyPath()} is not absolute'`);\n }\n return new ModelPathImpl<TResolved, true>(this.tokens, true);\n }\n\n public *getAllParentPaths(): Iterable<ModelPath> {\n const result = new ModelPathBuilder(this.isAbsolute());\n for (const token of IterUtils.skipLast(this.getPathParts(), 1)) {\n result.append(token);\n yield result.toPath();\n }\n }\n\n public trimLastStarIfLastToken(): IModelPath<TResolved, TAbsolute> {\n const lastItem = IterUtils.last(this.tokens);\n if (lastItem != undefined && PathTokens.isMultiToken(lastItem)) {\n return new ModelPathImpl(this.tokens.slice(0, -1), this.absolute);\n }\n return this;\n }\n\n public trimFirstStarIfLastToken(): IModelPath<TResolved, TAbsolute> {\n const firstItem = IterUtils.first(this.tokens);\n if (firstItem != undefined && PathTokens.isMultiToken(firstItem)) {\n return new ModelPathImpl(this.tokens.slice(1), this.absolute);\n }\n return this;\n }\n\n public getSuffixPathFrom(modelFieldPath: ModelPath): RelativeModelPath {\n return createRelativeFromTokens(\n modelFieldPath\n .matchFor(this)\n .map(x => (x.kind === MatchKind.DifferentSuffix ? x.source : undefined))\n .filter(isNotNullOrUndefined)\n .flatMap(x => x.getPathPartsAsArray())\n );\n }\n\n public getParentPath(): IModelPath<TResolved, TAbsolute> {\n const result = new ModelPathBuilder(this.absolute);\n for (const token of IterUtils.skipLast(this.getPathParts(), 1)) {\n result.append(token);\n }\n // Тут получается так, что по другому никак\n // @ts-expect-error\n return result.toPath();\n }\n\n public applyInstancesDirty(\n instances: SimplePathToken[],\n fillWithMultiplicityIfHasNoInstance?: boolean\n ): IModelPath<TResolved, TAbsolute> {\n if (this.isResolved() || instances.length === 0) {\n return this;\n }\n let instanceCounter = 0;\n const result = new ModelPathBuilder(true);\n for (const token of this.getPathParts()) {\n if (PathTokens.isMultiToken(token) && instanceCounter < instances.length) {\n const instanceOrEach =\n instances[instanceCounter] ??\n (fillWithMultiplicityIfHasNoInstance == true ? PathTokens.each : reject());\n result.append(instanceOrEach);\n instanceCounter++;\n } else {\n result.append(token);\n }\n }\n // Тут получается так, что по другому никак\n // @ts-expect-error\n return result.toPath();\n }\n\n private pathPartToString(pathPart: PathToken): string {\n if (typeof pathPart === \"string\") {\n return pathPart;\n }\n if (pathPart === PathTokens.each) {\n return \"*\";\n }\n if (pathPart === PathTokens.current) {\n return \"*\";\n }\n throw new Error(`Unknown path part specified: ${ensureAndGetString(pathPart)}`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AAGA,MAAMK,UAAU,GAAGC,MAAM,CAACC,GAAG,CAAC,UAAU,CAAC;AACzC,MAAMC,aAAa,GAAGF,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC;AAExC,MAAME,UAAU,CAAC;EAIpB,OAAcC,YAAYA,CAACC,IAA2B,EAAoD;IACtG,OAAOA,IAAI,KAAKF,UAAU,CAACG,IAAI,IAAID,IAAI,KAAKF,UAAU,CAACI,OAAO;EAClE;EAEA,OAAcC,aAAaA,CAACH,IAA2B,EAAkB;IACrE,OAAO,OAAOA,IAAI,KAAK,QAAQ;EACnC;EAEA,OAAcI,eAAeA,CAACJ,IAA2B,EAAkB;IACvE,OAAO,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAO,CAACK,IAAI,CAACL,IAAI,CAAC;EACzD;EAEA,OAAcM,8BAA8BA,CAACN,IAA2B,EAAkB;IACtF,OAAO,OAAOA,IAAI,KAAK,QAAQ,KAAK,OAAO,CAACK,IAAI,CAACL,IAAI,CAAC,IAAI,kBAAkB,CAACK,IAAI,CAACL,IAAI,CAAC,CAAC;EAC5F;AACJ;AAACO,OAAA,CAAAT,UAAA,GAAAA,UAAA;AAnBYA,UAAU,CACLG,IAAI,GAAsBP,UAAU;AADzCI,UAAU,CAELI,OAAO,GAAyBL,aAAa;AAuBxD,SAASW,WAAWA,CAACC,IAAuC,EAAqB;EACpF,OAAO,OAAOA,IAAI,KAAK,QAAQ,IAAIA,IAAI,YAAYC,aAAa;AACpE;AAEO,SAASC,mBAAmBA,CAACF,IAA6B,EAAe;EAC5E,OAAOD,WAAW,CAACC,IAAI,CAAC,GAAGA,IAAI,CAACG,YAAY,CAAC,CAAC,GAAGH,IAAI;AACzD;AAKO,SAASI,0BAA0BA,CAACJ,IAAqC,EAAqB;EACjG,OAAOD,WAAW,CAACC,IAAI,CAAC,GAAGA,IAAI,GAAGK,sBAAsB,CAACL,IAAI,EAAEX,UAAU,CAACG,IAAI,CAAC;AACnF;AAKO,SAASc,0BAA0BA,CAACN,IAAqC,EAAqB;EACjG,OAAOD,WAAW,CAACC,IAAI,CAAC,GAAGA,IAAI,GAAGO,sBAAsB,CAACP,IAAI,EAAEX,UAAU,CAACG,IAAI,CAAC;AACnF;AAEO,SAASgB,cAAcA,CAAA,EAA8B;EACxD,OAAO,IAAIP,aAAa,CAAc,EAAE,EAAE,KAAK,CAAC;AACpD;AAEO,SAASQ,sBAAsBA,CAAA,EAA8B;EAChE,OAAO,IAAIR,aAAa,CAAa,EAAE,EAAE,IAAI,CAAC;AAClD;AAKO,SAASS,eAAeA,CAACV,IAAY,EAAEW,QAA0B,EAAqB;EACzF,MAAMC,eAAe,GAAGZ,IAAI,CAACa,KAAK,CAAC,GAAG,CAAC;EACvCC,8CAA8C,CAACF,eAAe,CAAC;EAC/D,IAAID,QAAQ,KAAK,MAAM,EAAE;IACrB,IAAIX,IAAI,CAACe,UAAU,CAAC,GAAG,CAAC,EAAE;MACtB,OAAO,IAAId,aAAa,CAAaW,eAAe,CAACI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACxE,CAAC,MAAM;MACH,OAAO,IAAIf,aAAa,CAAcW,eAAe,EAAE,KAAK,CAAC;IACjE;EACJ;EACA,IAAID,QAAQ,IAAIX,IAAI,CAACe,UAAU,CAAC,GAAG,CAAC,EAAE;IAClC,OAAO,IAAId,aAAa,CAAaW,eAAe,CAACI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;EACxE;EACA,OAAO,IAAIf,aAAa,CAAgBW,eAAe,EAAED,QAAQ,CAAC;AACtE;AAKO,SAASM,cAAcA,CAACjB,IAAY,EAAEW,QAA0B,EAAEO,kBAA6B,EAAa;EAC/G,MAAMN,eAAe,GAAGZ,IAAI,CAACa,KAAK,CAAC,GAAG,CAAC,CAACM,GAAG,CAACC,CAAC,IAAKA,CAAC,KAAK,GAAG,GAAGF,kBAAkB,GAAGE,CAAE,CAAC;EACtF,IAAIT,QAAQ,KAAK,MAAM,EAAE;IACrB,IAAIX,IAAI,CAACe,UAAU,CAAC,GAAG,CAAC,EAAE;MACtB,OAAO,IAAId,aAAa,CAACW,eAAe,CAACI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IAC5D,CAAC,MAAM;MACH,OAAO,IAAIf,aAAa,CAACW,eAAe,EAAE,KAAK,CAAC;IACpD;EACJ;EACA,IAAID,QAAQ,IAAIX,IAAI,CAACe,UAAU,CAAC,GAAG,CAAC,EAAE;IAClC,OAAO,IAAId,aAAa,CAACW,eAAe,CAACI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;EAC5D;EACA,OAAO,IAAIf,aAAa,CAACW,eAAe,EAAED,QAAQ,CAAC;AACvD;AAEO,SAASN,sBAAsBA,CAACL,IAAY,EAAEkB,kBAA6B,EAAqB;EACnG,MAAMN,eAAe,GAAGZ,IAAI,CAACa,KAAK,CAAC,GAAG,CAAC,CAACM,GAAG,CAACC,CAAC,IAAKA,CAAC,KAAK,GAAG,GAAGF,kBAAkB,GAAGE,CAAE,CAAC;EACtF,IAAIpB,IAAI,CAACe,UAAU,CAAC,GAAG,CAAC,EAAE;IACtB,OAAO,IAAId,aAAa,CAACW,eAAe,CAACI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;EAC5D;EACA,OAAO,IAAIf,aAAa,CAACW,eAAe,EAAE,IAAI,CAAC;AACnD;AAEO,SAASL,sBAAsBA,CAACP,IAAY,EAAEkB,kBAA6B,EAAqB;EACnG,MAAMN,eAAe,GAAGZ,IAAI,CAACa,KAAK,CAAC,GAAG,CAAC,CAACM,GAAG,CAACC,CAAC,IAAKA,CAAC,KAAK,GAAG,GAAGF,kBAAkB,GAAGE,CAAE,CAAC;EACtF,OAAO,IAAInB,aAAa,CAACW,eAAe,EAAE,KAAK,CAAC;AACpD;AAEA,SAASE,8CAA8CA,CAACO,KAAwB,EAAQ;EACpF,IAAIA,KAAK,CAACC,IAAI,CAACF,CAAC,IAAIA,CAAC,KAAK,GAAG,CAAC,EAAE;IAC5B,MAAM,IAAIG,KAAK,CAAC,gCAAgC,CAAC;EACrD;AACJ;AAEO,SAASC,cAAcA,CAACxB,IAAY,EAA6B;EACpE,MAAMY,eAAe,GAAGZ,IAAI,CAACa,KAAK,CAAC,GAAG,CAAC;EACvCC,8CAA8C,CAACF,eAAe,CAAC;EAC/D,IAAIZ,IAAI,CAACe,UAAU,CAAC,GAAG,CAAC,EAAE;IACtB,OAAO,IAAId,aAAa,CAAaW,eAAe,CAACI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;EACxE;EACA,OAAO,IAAIf,aAAa,CAAaW,eAAe,EAAE,IAAI,CAAC;AAC/D;AAEO,SAASa,+BAA+BA,CAACzB,IAAY,EAA6B;EACrF,MAAMY,eAAe,GAAGZ,IAAI,CAACa,KAAK,CAAC,GAAG,CAAC;EACvCC,8CAA8C,CAACF,eAAe,CAAC;EAC/D,OAAO,IAAIX,aAAa,CAAcW,eAAe,EAAE,KAAK,CAAC;AACjE;AAEO,SAASc,wBAAwBA,CAACC,MAAmB,EAAqB;EAC7E,OAAO,IAAI1B,aAAa,CAAc0B,MAAM,EAAE,IAAI,CAAC;AACvD;AAEO,SAASC,gCAAgCA,CAACD,MAAyB,EAA6B;EACnGb,8CAA8C,CAACa,MAAM,CAAC;EACtD,OAAO,IAAI1B,aAAa,CAAa0B,MAAM,EAAE,IAAI,CAAC;AACtD;AAIO,SAASE,wBAAwBA,CAACF,MAA4B,EAAqB;EACtF,OAAO,IAAI1B,aAAa,CAAe0B,MAAM,EAAE,KAAK,CAAC;AACzD;AAEO,SAASG,cAAcA,CAAC,GAAGT,KAAiD,EAAa;EAC5F,IAAIV,QAAQ,GAAG,KAAK;EACpB,IAAIoB,WAAwB,GAAG,EAAE;EACjC,KAAK,MAAMC,QAAQ,IAAIX,KAAK,EAAE;IAC1B,IAAI,OAAOW,QAAQ,KAAK,QAAQ,EAAE;MAC9BD,WAAW,CAACE,IAAI,CAACD,QAAQ,CAAC;IAC9B,CAAC,MAAM,IAAIjC,WAAW,CAACiC,QAAQ,CAAC,EAAE;MAC9B,IAAIA,QAAQ,CAACE,UAAU,CAAC,CAAC,EAAE;QACvBvB,QAAQ,GAAG,IAAI;QACfoB,WAAW,GAAG,CAAC,GAAGC,QAAQ,CAACG,mBAAmB,CAAC,CAAC,CAAC;MACrD,CAAC,MAAM;QACHJ,WAAW,CAACE,IAAI,CAAC,GAAGD,QAAQ,CAACG,mBAAmB,CAAC,CAAC,CAAC;MACvD;IACJ,CAAC,MAAM,IAAIC,KAAK,CAACC,OAAO,CAACL,QAAQ,CAAC,EAAE;MAChCD,WAAW,CAACE,IAAI,CAAC,GAAGD,QAAQ,CAAC;IACjC,CAAC,MAAM,IAAI3C,UAAU,CAACC,YAAY,CAAC0C,QAAQ,CAAC,EAAE;MAC1CD,WAAW,CAACE,IAAI,CAACD,QAAQ,CAAC;IAC9B;EACJ;EAEA,OAAO,IAAI/B,aAAa,CAAC8B,WAAW,EAAEpB,QAAQ,CAAC;AACnD;AA0EA,SAAS2B,mBAAmBA,CAA4BX,MAAyC,EAAa;EAC1G;EACA;EACA,OAAOA,MAAM,CAACY,KAAK,CAAClD,UAAU,CAACK,aAAa,CAAC;AACjD;AAEO,MAAMO,aAAa,CAE1B;EAMWuC,WAAWA,CAACC,SAA4C,EAAE9B,QAAmB,EAAE;IAAA,KALrEgB,MAAM;IAAA,KACPhB,QAAQ;IAAA,KAChB+B,UAAU;IAAA,KACVC,UAAU;IAGd,IAAI,CAAChB,MAAM,GAAGc,SAAS,CAACG,MAAM,CAACxB,CAAC,IAAIA,CAAC,KAAK,EAAE,CAAC;IAC7C,IAAI,CAACT,QAAQ,GAAGA,QAAQ;EAC5B;EAEA,IAAWkC,QAAQA,CAAA,EAAc;IAC7B,OAAOP,mBAAmB,CAAC,IAAI,CAACX,MAAM,CAAC;EAC3C;EAEOmB,YAAYA,CAAA,EAAuC;IACtD,OAAO,IAAI,CAACnB,MAAM;EACtB;EAEOQ,mBAAmBA,CAAA,EAA4C;IAClE,OAAO,IAAI,CAACR,MAAM;EACtB;EAEA,CAAQoB,qBAAqBA,CAAA,EAA8B;IACvD,KAAK,MAAMC,KAAK,IAAI,IAAI,CAACrB,MAAM,EAAE;MAC7B,IAAI,CAACtC,UAAU,CAACK,aAAa,CAACsD,KAAK,CAAC,EAAE;QAClC,MAAM,IAAIzB,KAAK,CAAC,mCAAmC,CAAC;MACxD;MACA,MAAMyB,KAAK;IACf;EACJ;EAEOC,4BAA4BA,CAAA,EAA+B;IAC9D,KAAK,MAAMD,KAAK,IAAI,IAAI,CAACrB,MAAM,EAAE;MAC7B,IAAI,CAACtC,UAAU,CAACK,aAAa,CAACsD,KAAK,CAAC,EAAE;QAClC,MAAM,IAAIzB,KAAK,CAAC,mCAAmC,CAAC;MACxD;IACJ;IACA;IACA;IACA;IACA,OAAO,IAAI,CAACI,MAAM;EACtB;EAOOuB,QAAQA,CAAC,GAAGlD,IAAkC,EAAgC;IACjF,OAAO8B,cAAc,CAAC,IAAI,EAAE,GAAG9B,IAAI,CAAC;EACxC;EAEOmD,kCAAkCA,CAAA,EAAW;IAChD,MAAMC,UAAU,GAAG,IAAI,CAACzB,MAAM,CAAC0B,IAAI,CAAChE,UAAU,CAACM,eAAe,CAAC;IAC/D,OAAOyD,UAAU,GAAGE,MAAM,CAACF,UAAU,CAAC,GAAG,CAAC,CAAC;EAC/C;EAEOG,WAAWA,CAAA,EAAW;IACzB,OAAO,IAAI,CAAC5B,MAAM,CAAC6B,MAAM;EAC7B;EAEOC,UAAUA,CAAA,EAAwC;IACrD,OAAOnB,mBAAmB,CAAC,IAAI,CAACX,MAAM,CAAC;EAC3C;EAEO+B,UAAUA,CAACC,QAAgB,EAAa;IAC3C,MAAMhC,MAAM,GAAG,IAAI,CAACA,MAAM,CAACR,GAAG,CAAC6B,KAAK,IAAI;MACpC,IAAI3D,UAAU,CAACK,aAAa,CAACsD,KAAK,CAAC,EAAE;QACjC,OAAOA,KAAK;MAChB,CAAC,MAAM;QACH,OAAOW,QAAQ;MACnB;IACJ,CAAC,CAAC;IAEF,OAAO,IAAI1D,aAAa,CAAC0B,MAAM,EAAE,IAAI,CAAChB,QAAQ,CAAC;EACnD;EAEOiD,kBAAkBA,CAAA,EAAY;IACjC,OAAO,IAAI,CAACjC,MAAM,CAACL,IAAI,CAACF,CAAC,IAAIA,CAAC,KAAK/B,UAAU,CAACG,IAAI,CAAC;EACvD;EAEOqE,yBAAyBA,CAAA,EAAY;IACxC,OAAO,IAAI,CAAClC,MAAM,CAACL,IAAI,CAACF,CAAC,IAAIA,CAAC,KAAK/B,UAAU,CAACI,OAAO,CAAC;EAC1D;EAEOqE,+BAA+BA,CAAA,EAAY;IAC9C,OAAO,IAAI,CAACnC,MAAM,CAACL,IAAI,CAACF,CAAC,IAAIA,CAAC,KAAK/B,UAAU,CAACI,OAAO,IAAI2B,CAAC,KAAK/B,UAAU,CAACG,IAAI,CAAC;EACnF;EAEOuE,eAAeA,CAAA,EAAgB;IAClC,IAAI,CAAC,IAAI,CAACH,kBAAkB,CAAC,CAAC,EAAE;MAC5B,MAAM,IAAIrC,KAAK,CAAC,6BAA6B,CAAC;IAClD;;IAEA;IACA;IACA,MAAMyC,kBAAkB,GAAG,IAAI,CAACrC,MAAM,CAACsC,WAAW,CAAC5E,UAAU,CAACG,IAAI,CAAC;IACnE,OAAO,IAAI,CAACmC,MAAM,CAACX,KAAK,CAAC,CAAC,EAAEgD,kBAAkB,CAAC;EACnD;EAEOE,2BAA2BA,CAAA,EAAc;IAC5C,IAAI,CAAC,IAAI,CAACJ,+BAA+B,CAAC,CAAC,EAAE;MACzC,OAAO,IAAI;IACf;IAEA,MAAME,kBAAkB,GAAG,IAAI,CAACG,oCAAoC,CAAC,CAAC;IACtE,IAAIH,kBAAkB,KAAK,CAAC,CAAC,EAAE;MAC3B,MAAM,IAAIzC,KAAK,CAAC,6CAA6C,CAAC;IAClE;IAEA,MAAM6C,0BAA0B,GAAG,IAAI,CAACzC,MAAM,CAACX,KAAK,CAAC,CAAC,EAAEgD,kBAAkB,CAAC;IAE3E,OAAO,IAAI/D,aAAa,CAACmE,0BAA0B,EAAE,IAAI,CAACzD,QAAQ,CAAC;EACvE;EAEO0D,wBAAwBA,CAAA,EAAqC;IAChE,IAAI,CAAC,IAAI,CAACP,+BAA+B,CAAC,CAAC,EAAE;MACzC,OAAO,IAAI;IACf;IACA,MAAMnC,MAAM,GAAG,IAAI,CAACA,MAAM,CAACiB,MAAM,CAACxB,CAAC,IAAI,CAAC/B,UAAU,CAACC,YAAY,CAAC8B,CAAC,CAAC,CAAC;IACnE,OAAO,IAAInB,aAAa,CAAC0B,MAAM,EAAE,IAAI,CAAChB,QAAQ,CAAC;EACnD;EAEOwD,oCAAoCA,CAAA,EAAgB;IACvD,IAAI,CAAC,IAAI,CAACL,+BAA+B,CAAC,CAAC,EAAE;MACzC,OAAO,CAAC,CAAC;IACb;;IAEA;IACA;IACA,MAAME,kBAAkB,GAAG,IAAI,CAACrC,MAAM,CAACsC,WAAW,CAAC5E,UAAU,CAACG,IAAI,CAAC;IACnE;IACA,MAAM8E,yBAAyB,GAAG,IAAI,CAAC3C,MAAM,CAACsC,WAAW,CAAC5E,UAAU,CAACI,OAAO,CAAC;IAE7E,OAAO8E,IAAI,CAACC,GAAG,CAACR,kBAAkB,EAAEM,yBAAyB,CAAC;EAClE;EAEOG,mBAAmBA,CAAA,EAAY;IAClC,MAAMC,QAAQ,GAAGC,wBAAS,CAACC,IAAI,CAAC,IAAI,CAACjD,MAAM,CAAC;IAC5C,OAAO+C,QAAQ,IAAIrF,UAAU,CAACG,IAAI;EACtC;EAEOqF,0BAA0BA,CAAA,EAAY;IACzC,MAAMH,QAAQ,GAAGC,wBAAS,CAACC,IAAI,CAAC,IAAI,CAACjD,MAAM,CAAC;IAC5C,OAAO+C,QAAQ,IAAIrF,UAAU,CAACI,OAAO;EACzC;EAEOyC,UAAUA,CAAA,EAAwC;IACrD,OAAO,IAAI,CAACvB,QAAQ;EACxB;EAEOmE,QAAQA,CAAA,EAAW;IACtB,IAAI,IAAI,CAACnD,MAAM,CAAC6B,MAAM,KAAK,CAAC,EAAE;MAC1B,OAAO,EAAE;IACb;IACA,OAAO,CAAC,IAAI,CAAC7C,QAAQ,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,CAACgB,MAAM,CAACR,GAAG,CAACC,CAAC,IAAI,IAAI,CAAC2D,gBAAgB,CAAC3D,CAAC,CAAC,CAAC,CAAC4D,IAAI,CAAC,GAAG,CAAC;EAChG;EAEO7E,YAAYA,CAAA,EAAW;IAAA,IAAA8E,gBAAA;IAC1B,QAAAA,gBAAA,GAAO,IAAI,CAACvC,UAAU,cAAAuC,gBAAA,cAAAA,gBAAA,GAAK,IAAI,CAACvC,UAAU,GAAG,IAAI,CAACf,MAAM,CAACR,GAAG,CAACC,CAAC,IAAI,IAAI,CAAC2D,gBAAgB,CAAC3D,CAAC,CAAC,CAAC,CAAC4D,IAAI,CAAC,GAAG,CAAC;EACzG;EAEOE,QAAQA,CACXC,SAAoB,EACpBC,oBAA0C,GAAGC,0CAAoB,CAACC,OAAO,EAClE;IACP,IAAIF,oBAAoB,KAAKC,0CAAoB,CAACC,OAAO,EAAE;MACvD,OAAO,IAAI,CAACnF,YAAY,CAAC,CAAC,KAAKgF,SAAS,CAAChF,YAAY,CAAC,CAAC;IAC3D,CAAC,MAAM;MACH,OACI,IAAI,CAAC+B,UAAU,CAAC,CAAC,KAAKiD,SAAS,CAACjD,UAAU,CAAC,CAAC,IAC5CqD,QAAQ,CAACC,IAAI,CAACb,wBAAS,CAACc,GAAG,CAAC,IAAI,CAAC3C,YAAY,CAAC,CAAC,EAAEqC,SAAS,CAACrC,YAAY,CAAC,CAAC,CAAC,CAAC,CAACP,KAAK,CAC7E,CAAC,CAACmD,EAAE,EAAEC,EAAE,CAAC,KAAKD,EAAE,KAAKC,EACzB,CAAC;IAET;EACJ;;EAEA;AACJ;AACA;EACWC,OAAOA,CAACR,oBAA0C,GAAGC,0CAAoB,CAACC,OAAO,EAAU;IAC9F,IAAI,IAAI,CAAC3C,UAAU,IAAIkD,SAAS,EAAE;MAC9B,IAAIC,IAAI,GAAG,IAAI;MACf,KAAK,MAAM9C,KAAK,IAAI,IAAA+C,2BAAY,EAAC,IAAI,CAACpE,MAAM,CAAC,EAAE;QAC3C,IAAIqE,UAAkB;QACtB,IAAI3G,UAAU,CAACK,aAAa,CAACsD,KAAK,CAAC,EAAE;UACjCgD,UAAU,GAAGhD,KAAK;QACtB,CAAC,MAAM;UACH,IAAIoC,oBAAoB,KAAKC,0CAAoB,CAACY,YAAY,EAAE;YAC5DD,UAAU,GAAGhD,KAAK,KAAK3D,UAAU,CAACG,IAAI,GAAG,GAAG,GAAG,GAAG;UACtD,CAAC,MAAM;YACHwG,UAAU,GAAG,GAAG;UACpB;QACJ;QACA,IAAIE,WAAW,GAAGF,UAAU,CAACxC,MAAM;QACnC,OAAO0C,WAAW,EAAE;UAChBJ,IAAI,GAAIA,IAAI,GAAG,EAAE,GAAIE,UAAU,CAACG,UAAU,CAAC,EAAED,WAAW,CAAC;QAC7D;MACJ;;MAEA;AACZ;AACA;AACA;AACA;MACY,IAAI,CAACvD,UAAU,GAAGmD,IAAI,KAAK,CAAC;IAChC;IACA,OAAO,IAAI,CAACnD,UAAU;EAC1B;EAEOyD,UAAUA,CAACjB,SAAoB,EAAW;IAC7C,MAAMkB,YAAY,GAAGlB,SAAS,CAAChD,mBAAmB,CAAC,CAAC;IACpD,IAAI,IAAI,CAACR,MAAM,CAAC6B,MAAM,KAAK6C,YAAY,CAAC7C,MAAM,EAAE;MAC5C,OAAO,KAAK;IAChB;IACA,KAAK,IAAI8C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAAC3E,MAAM,CAAC6B,MAAM,EAAE8C,CAAC,EAAE,EAAE;MACzC,MAAMC,QAAQ,GAAG,IAAI,CAAC5E,MAAM,CAAC2E,CAAC,CAAC;MAC/B,MAAME,SAAS,GAAGH,YAAY,CAACC,CAAC,CAAC;MACjC,IAAI,OAAOC,QAAQ,KAAK,QAAQ,EAAE;QAC9B,IAAI,OAAOC,SAAS,KAAK,QAAQ,EAAE;UAC/B,IAAID,QAAQ,KAAKC,SAAS,EAAE;YACxB,OAAO,KAAK;UAChB;UACA;QACJ,CAAC,MAAM;UACH,OAAO,KAAK;QAChB;MACJ,CAAC,MAAM,IAAID,QAAQ,KAAKlH,UAAU,CAACI,OAAO,IAAI8G,QAAQ,KAAKlH,UAAU,CAACG,IAAI,EAAE;QACxE,IAAI,OAAOgH,SAAS,KAAK,QAAQ,EAAE;UAC/B,IAAI,CAACC,QAAQ,CAACnD,MAAM,CAACkD,SAAS,CAAC,CAAC,EAAE;YAC9B,OAAO,KAAK;UAChB;UACA;QACJ,CAAC,MAAM;UACH,IAAIA,SAAS,KAAKnH,UAAU,CAACI,OAAO,IAAI+G,SAAS,KAAKnH,UAAU,CAACG,IAAI,EAAE;YACnE,OAAO,KAAK;UAChB;UACA;QACJ;MACJ;IACJ;IACA,OAAO,IAAI;EACf;EAEOkH,gBAAgBA,CAACtB,oBAA0C,GAAGC,0CAAoB,CAACY,YAAY,EAAU;IAC5G,OAAO,IAAAU,oBAAK,EACRpB,QAAQ,CAACC,IAAI,CAAC,IAAI,CAAC7D,MAAM,CAAC,CAACiB,MAAM,CAACxB,CAAC,IAC/BgE,oBAAoB,IAAIC,0CAAoB,CAACY,YAAY,GACnD7E,CAAC,KAAK/B,UAAU,CAACG,IAAI,GACrBH,UAAU,CAACC,YAAY,CAAC8B,CAAC,CACnC,CACJ,CAAC;EACL;EAEOwF,OAAOA,CAAA,EAAY;IACtB,OAAO,IAAI,CAACjF,MAAM,CAAC6B,MAAM,KAAK,CAAC;EACnC;EAEOqD,QAAQA,CAAC1B,SAAoB,EAAgB;IAChD,IAAI,CAAC,IAAI,CAACjD,UAAU,CAAC,CAAC,EAAE;MACpB,MAAM,IAAIX,KAAK,CAAC,mCAAmC,IAAI,CAACuD,QAAQ,CAAC,CAAC,GAAG,CAAC;IAC1E;IACA,IAAI,CAACK,SAAS,CAACjD,UAAU,CAAC,CAAC,EAAE;MACzB,MAAM,IAAIX,KAAK,CAAC,mCAAmC4D,SAAS,CAACL,QAAQ,CAAC,CAAC,GAAG,CAAC;IAC/E;IACA,OAAOgC,wBAAW,CAACC,KAAK,CAAC,IAAI,CAACpF,MAAM,EAAEwD,SAAS,CAAChD,mBAAmB,CAAC,CAAC,CAAC;EAC1E;EAEOpB,UAAUA,CAACoE,SAAoB,EAAW;IAC7C,MAAM6B,SAAS,GAAG,IAAI,CAAC7E,mBAAmB,CAAC,CAAC;IAC5C,MAAM8E,UAAU,GAAG9B,SAAS,CAAChD,mBAAmB,CAAC,CAAC;IAClD,OAAO8E,UAAU,CAAC1E,KAAK,CAAC,CAAC2E,KAAK,EAAEC,KAAK,KAAKD,KAAK,KAAKF,SAAS,CAACG,KAAK,CAAC,CAAC;EACzE;EAEOC,QAAQA,CAACjC,SAAoB,EAAW;IAC3C,MAAM6B,SAAS,GAAG,IAAI,CAAC7E,mBAAmB,CAAC,CAAC,CAACnB,KAAK,CAAC,CAAC,CAACqG,OAAO,CAAC,CAAC;IAC9D,MAAMJ,UAAU,GAAG9B,SAAS,CAAChD,mBAAmB,CAAC,CAAC,CAACnB,KAAK,CAAC,CAAC,CAACqG,OAAO,CAAC,CAAC;IACpE,OAAOJ,UAAU,CAAC1E,KAAK,CAAC,CAAC2E,KAAK,EAAEC,KAAK,KAAKD,KAAK,KAAKF,SAAS,CAACG,KAAK,CAAC,CAAC;EACzE;EAEA,CAAQG,mBAAmBA,CAAA,EAA2E;IAClG,IAAIC,eAAe,GAAG,IAAIC,kCAAgB,CAAC,IAAI,CAACtF,UAAU,CAAC,CAAC,CAAC;IAC7D,KAAK,MAAMc,KAAK,IAAI,IAAI,CAACrB,MAAM,EAAE;MAC7B,IAAItC,UAAU,CAACK,aAAa,CAACsD,KAAK,CAAC,EAAE;QACjCuE,eAAe,CAACE,MAAM,CAACzE,KAAK,CAAC;MACjC,CAAC,MAAM;QACH,IAAI,CAACuE,eAAe,CAACG,KAAK,EAAE;UACxB,MAAMH,eAAe,CAACI,cAAc,CAAC,CAAC;UACtCJ,eAAe,GAAG,IAAIC,kCAAgB,CAAC,KAAK,CAAC;QACjD;QACA,MAAMxE,KAAK;MACf;IACJ;IACA,IAAI,CAACuE,eAAe,CAACG,KAAK,EAAE;MACxB,MAAMH,eAAe,CAACI,cAAc,CAAC,CAAC;IAC1C;EACJ;EAEOC,SAASA,CAAA,EAAqC;IACjD,MAAMC,YAAuC,GAAG,EAAE;IAClD,KAAK,MAAMC,QAAQ,IAAI,IAAI,CAACnG,MAAM,EAAE;MAChC,IAAImG,QAAQ,KAAK,IAAI,EAAE;QACnB,IAAI,CAACD,YAAY,CAACE,GAAG,CAAC,CAAC,EAAE;UACrB,IAAI,IAAI,CAAC7F,UAAU,CAAC,CAAC,EAAE;YACnB,MAAM,IAAIX,KAAK,CAAC,oBAAoB,IAAI,CAACuD,QAAQ,CAAC,CAAC,GAAG,CAAC;UAC3D,CAAC,MAAM;YACH+C,YAAY,CAAC5F,IAAI,CAAC,IAAI,CAAC;UAC3B;QACJ;QACA;MACJ;MAEA,IAAI6F,QAAQ,KAAK,GAAG,EAAE;QAClB;MACJ;MACAD,YAAY,CAAC5F,IAAI,CAAC6F,QAAQ,CAAC;IAC/B;IACA,OAAO,IAAI7H,aAAa,CAAuB4H,YAAY,EAAE,IAAI,CAAClH,QAAQ,CAAC;EAC/E;;EAEA;AACJ;AACA;EACWqH,kBAAkBA,CAAA,EAAqC;IAC1D,IAAI,IAAI,CAACvE,UAAU,CAAC,CAAC,EAAE;MACnB,OAAO,IAAI;IACf,CAAC,MAAM;MACH;MACA;MACA,MAAMhB,SAAoC,GAAG,IAAI,CAACd,MAAM,CAACR,GAAG,CAACC,CAAC,IAC1DA,CAAC,KAAK/B,UAAU,CAACG,IAAI,GAAGH,UAAU,CAACI,OAAO,GAAG2B,CACjD,CAAC;MACD,OAAO,IAAInB,aAAa,CAAuBwC,SAAS,EAAE,IAAI,CAAC9B,QAAQ,CAAC;IAC5E;EACJ;EAEOsH,eAAeA,CAAA,EAAqC;IACvD,IAAI,IAAI,CAACxE,UAAU,CAAC,CAAC,EAAE;MACnB,OAAO,IAAI;IACf,CAAC,MAAM;MACH;MACA;MACA,MAAMhB,SAAoC,GAAG,IAAI,CAACd,MAAM,CAACR,GAAG,CAACC,CAAC,IAC1DA,CAAC,KAAK/B,UAAU,CAACI,OAAO,GAAGJ,UAAU,CAACG,IAAI,GAAG4B,CACjD,CAAC;MACD,OAAO,IAAInB,aAAa,CAAuBwC,SAAS,EAAE,IAAI,CAAC9B,QAAQ,CAAC;IAC5E;EACJ;EAEOuH,UAAUA,CAAA,EAAgC;IAC7C,IAAI,CAAC,IAAI,CAACvH,QAAQ,EAAE;MAChB,MAAM,IAAIY,KAAK,CAAC,SAAS,IAAI,CAACpB,YAAY,CAAC,CAAC,mBAAmB,CAAC;IACpE;IACA,OAAO,IAAIF,aAAa,CAAkB,IAAI,CAAC0B,MAAM,EAAE,IAAI,CAAC;EAChE;EAEA,CAAQwG,iBAAiBA,CAAA,EAAwB;IAC7C,MAAMC,MAAM,GAAG,IAAIZ,kCAAgB,CAAC,IAAI,CAACtF,UAAU,CAAC,CAAC,CAAC;IACtD,KAAK,MAAMc,KAAK,IAAI2B,wBAAS,CAAC0D,QAAQ,CAAC,IAAI,CAACvF,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;MAC5DsF,MAAM,CAACX,MAAM,CAACzE,KAAK,CAAC;MACpB,MAAMoF,MAAM,CAACE,MAAM,CAAC,CAAC;IACzB;EACJ;EAEOC,uBAAuBA,CAAA,EAAqC;IAC/D,MAAM7D,QAAQ,GAAGC,wBAAS,CAACC,IAAI,CAAC,IAAI,CAACjD,MAAM,CAAC;IAC5C,IAAI+C,QAAQ,IAAImB,SAAS,IAAIxG,UAAU,CAACC,YAAY,CAACoF,QAAQ,CAAC,EAAE;MAC5D,OAAO,IAAIzE,aAAa,CAAC,IAAI,CAAC0B,MAAM,CAACX,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAACL,QAAQ,CAAC;IACrE;IACA,OAAO,IAAI;EACf;EAEO6H,wBAAwBA,CAAA,EAAqC;IAChE,MAAMC,SAAS,GAAG9D,wBAAS,CAAC+D,KAAK,CAAC,IAAI,CAAC/G,MAAM,CAAC;IAC9C,IAAI8G,SAAS,IAAI5C,SAAS,IAAIxG,UAAU,CAACC,YAAY,CAACmJ,SAAS,CAAC,EAAE;MAC9D,OAAO,IAAIxI,aAAa,CAAC,IAAI,CAAC0B,MAAM,CAACX,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAACL,QAAQ,CAAC;IACjE;IACA,OAAO,IAAI;EACf;EAEOgI,iBAAiBA,CAACC,cAAyB,EAAqB;IACnE,OAAO/G,wBAAwB,CAC3B+G,cAAc,CACT/B,QAAQ,CAAC,IAAI,CAAC,CACd1F,GAAG,CAACC,CAAC,IAAKA,CAAC,CAACyH,IAAI,KAAKC,sBAAS,CAACC,eAAe,GAAG3H,CAAC,CAAC4H,MAAM,GAAGnD,SAAU,CAAC,CACvEjD,MAAM,CAACqG,iCAAoB,CAAC,CAC5BC,OAAO,CAAC9H,CAAC,IAAIA,CAAC,CAACe,mBAAmB,CAAC,CAAC,CAC7C,CAAC;EACL;EAEOgH,aAAaA,CAAA,EAAqC;IACrD,MAAMf,MAAM,GAAG,IAAIZ,kCAAgB,CAAC,IAAI,CAAC7G,QAAQ,CAAC;IAClD,KAAK,MAAMqC,KAAK,IAAI2B,wBAAS,CAAC0D,QAAQ,CAAC,IAAI,CAACvF,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;MAC5DsF,MAAM,CAACX,MAAM,CAACzE,KAAK,CAAC;IACxB;IACA;IACA;IACA,OAAOoF,MAAM,CAACE,MAAM,CAAC,CAAC;EAC1B;EAEOc,mBAAmBA,CACtBC,SAA4B,EAC5BC,mCAA6C,EACb;IAChC,IAAI,IAAI,CAAC7F,UAAU,CAAC,CAAC,IAAI4F,SAAS,CAAC7F,MAAM,KAAK,CAAC,EAAE;MAC7C,OAAO,IAAI;IACf;IACA,IAAI+F,eAAe,GAAG,CAAC;IACvB,MAAMnB,MAAM,GAAG,IAAIZ,kCAAgB,CAAC,IAAI,CAAC;IACzC,KAAK,MAAMxE,KAAK,IAAI,IAAI,CAACF,YAAY,CAAC,CAAC,EAAE;MACrC,IAAIzD,UAAU,CAACC,YAAY,CAAC0D,KAAK,CAAC,IAAIuG,eAAe,GAAGF,SAAS,CAAC7F,MAAM,EAAE;QAAA,IAAAgG,qBAAA;QACtE,MAAMC,cAAc,IAAAD,qBAAA,GAChBH,SAAS,CAACE,eAAe,CAAC,cAAAC,qBAAA,cAAAA,qBAAA,GACzBF,mCAAmC,IAAI,IAAI,GAAGjK,UAAU,CAACG,IAAI,GAAG,IAAAkK,mBAAM,EAAC,CAAE;QAC9EtB,MAAM,CAACX,MAAM,CAACgC,cAAc,CAAC;QAC7BF,eAAe,EAAE;MACrB,CAAC,MAAM;QACHnB,MAAM,CAACX,MAAM,CAACzE,KAAK,CAAC;MACxB;IACJ;IACA;IACA;IACA,OAAOoF,MAAM,CAACE,MAAM,CAAC,CAAC;EAC1B;EAEQvD,gBAAgBA,CAAC+C,QAAmB,EAAU;IAClD,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;MAC9B,OAAOA,QAAQ;IACnB;IACA,IAAIA,QAAQ,KAAKzI,UAAU,CAACG,IAAI,EAAE;MAC9B,OAAO,GAAG;IACd;IACA,IAAIsI,QAAQ,KAAKzI,UAAU,CAACI,OAAO,EAAE;MACjC,OAAO,GAAG;IACd;IACA,MAAM,IAAI8B,KAAK,CAAC,gCAAgC,IAAAoI,+BAAkB,EAAC7B,QAAQ,CAAC,EAAE,CAAC;EACnF;AACJ;AAAChI,OAAA,CAAAG,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.writeAllKClangFiles = writeAllKClangFiles;
7
+ var path = _interopRequireWildcard(require("path"));
8
+ var _StaticLogger = require("../../Commons/Logging/StaticLogger");
9
+ var _WriteResourceFile = require("./WriteResourceFile");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ async function writeAllKClangFiles(gfv, formDirectory, resourcesDirectory, parentLogger = (0, _StaticLogger.getLogger)(), buildCache, buildCacheOptions, buildCacheExist) {
13
+ return (0, _WriteResourceFile.writeResourceFile)("FLASHNORM", "All.kclang", path.join("normalize", `${gfv}.All.kclang`), gfv, formDirectory, resourcesDirectory, parentLogger, buildCache, buildCacheOptions, buildCacheExist);
14
+ }
15
+ //# sourceMappingURL=WriteAllKClangFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteAllKClangFiles.js","names":["path","_interopRequireWildcard","require","_StaticLogger","_WriteResourceFile","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","writeAllKClangFiles","gfv","formDirectory","resourcesDirectory","parentLogger","getLogger","buildCache","buildCacheOptions","buildCacheExist","writeResourceFile","join"],"sources":["../../../../../src/BuildTasks/Form/WriteAllKClangFiles.ts"],"sourcesContent":["import * as path from \"path\";\n\nimport { ILogger } from \"../../Commons/Logging/ILogger\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { BuildCache, FormBuildCacheOptions } from \"../../FormWebpackConfiguration/CacheAssetsPlugin\";\n\nimport { writeResourceFile } from \"./WriteResourceFile\";\n\nexport async function writeAllKClangFiles(\n gfv: string,\n formDirectory: string,\n resourcesDirectory: string,\n parentLogger: ILogger = getLogger(),\n buildCache?: BuildCache,\n buildCacheOptions?: FormBuildCacheOptions,\n buildCacheExist?: boolean\n): Promise<void> {\n return writeResourceFile(\n \"FLASHNORM\",\n \"All.kclang\",\n path.join(\"normalize\", `${gfv}.All.kclang`),\n gfv,\n formDirectory,\n resourcesDirectory,\n parentLogger,\n buildCache,\n buildCacheOptions,\n buildCacheExist\n );\n}\n"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,aAAA,GAAAD,OAAA;AAGA,IAAAE,kBAAA,GAAAF,OAAA;AAAwD,SAAAG,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,SAAAL,wBAAAK,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;AAEjD,eAAeW,mBAAmBA,CACrCC,GAAW,EACXC,aAAqB,EACrBC,kBAA0B,EAC1BC,YAAqB,GAAG,IAAAC,uBAAS,EAAC,CAAC,EACnCC,UAAuB,EACvBC,iBAAyC,EACzCC,eAAyB,EACZ;EACb,OAAO,IAAAC,oCAAiB,EACpB,WAAW,EACX,YAAY,EACZlC,IAAI,CAACmC,IAAI,CAAC,WAAW,EAAE,GAAGT,GAAG,aAAa,CAAC,EAC3CA,GAAG,EACHC,aAAa,EACbC,kBAAkB,EAClBC,YAAY,EACZE,UAAU,EACVC,iBAAiB,EACjBC,eACJ,CAAC;AACL","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.writeExtendedSchemaFiles = writeExtendedSchemaFiles;
7
+ var path = _interopRequireWildcard(require("path"));
8
+ var _StaticLogger = require("../../Commons/Logging/StaticLogger");
9
+ var _WriteResourceFile = require("./WriteResourceFile");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ async function writeExtendedSchemaFiles(gfv, formDirectory, resourcesDirectory, parentLogger = (0, _StaticLogger.getLogger)(), buildCache, buildCacheOptions, buildCacheExist) {
13
+ return (0, _WriteResourceFile.writeResourceFile)("FLASHNORM", "extendedSchema.json", path.join("schemas", `${gfv}.extendedSchema.json`), gfv, formDirectory, resourcesDirectory, parentLogger, buildCache, buildCacheOptions, buildCacheExist);
14
+ }
15
+ //# sourceMappingURL=WriteExtendedSchemaFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteExtendedSchemaFiles.js","names":["path","_interopRequireWildcard","require","_StaticLogger","_WriteResourceFile","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","writeExtendedSchemaFiles","gfv","formDirectory","resourcesDirectory","parentLogger","getLogger","buildCache","buildCacheOptions","buildCacheExist","writeResourceFile","join"],"sources":["../../../../../src/BuildTasks/Form/WriteExtendedSchemaFiles.ts"],"sourcesContent":["import * as path from \"path\";\n\nimport { ILogger } from \"../../Commons/Logging/ILogger\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { BuildCache, FormBuildCacheOptions } from \"../../FormWebpackConfiguration/CacheAssetsPlugin\";\n\nimport { writeResourceFile } from \"./WriteResourceFile\";\n\nexport async function writeExtendedSchemaFiles(\n gfv: string,\n formDirectory: string,\n resourcesDirectory: string,\n parentLogger: ILogger = getLogger(),\n buildCache?: BuildCache,\n buildCacheOptions?: FormBuildCacheOptions,\n buildCacheExist?: boolean\n): Promise<void> {\n return writeResourceFile(\n \"FLASHNORM\",\n \"extendedSchema.json\",\n path.join(\"schemas\", `${gfv}.extendedSchema.json`),\n gfv,\n formDirectory,\n resourcesDirectory,\n parentLogger,\n buildCache,\n buildCacheOptions,\n buildCacheExist\n );\n}\n"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,aAAA,GAAAD,OAAA;AAGA,IAAAE,kBAAA,GAAAF,OAAA;AAAwD,SAAAG,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,SAAAL,wBAAAK,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;AAEjD,eAAeW,wBAAwBA,CAC1CC,GAAW,EACXC,aAAqB,EACrBC,kBAA0B,EAC1BC,YAAqB,GAAG,IAAAC,uBAAS,EAAC,CAAC,EACnCC,UAAuB,EACvBC,iBAAyC,EACzCC,eAAyB,EACZ;EACb,OAAO,IAAAC,oCAAiB,EACpB,WAAW,EACX,qBAAqB,EACrBlC,IAAI,CAACmC,IAAI,CAAC,SAAS,EAAE,GAAGT,GAAG,sBAAsB,CAAC,EAClDA,GAAG,EACHC,aAAa,EACbC,kBAAkB,EAClBC,YAAY,EACZE,UAAU,EACVC,iBAAiB,EACjBC,eACJ,CAAC;AACL","ignoreList":[]}
@@ -5,27 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.writeFLangNormalizationFiles = writeFLangNormalizationFiles;
7
7
  var path = _interopRequireWildcard(require("path"));
8
- var _fsExtra = require("fs-extra");
9
8
  var _StaticLogger = require("../../Commons/Logging/StaticLogger");
10
- var _BuildCacheMode = require("../../CLICommands/BuildForms/BuildCacheMode");
9
+ var _WriteResourceFile = require("./WriteResourceFile");
11
10
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
11
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
12
  async function writeFLangNormalizationFiles(gfv, formDirectory, resourcesDirectory, parentLogger = (0, _StaticLogger.getLogger)(), buildCache, buildCacheOptions, buildCacheExist) {
14
- const logger = parentLogger.withPrefix(`FLASHNORM:${gfv}`);
15
- const sourceFile = path.join(formDirectory, "form", "ServerSide.normalize");
16
- const targetFile = path.join(resourcesDirectory, "normalize", `${gfv}.normalize`);
17
- const sourceFileExists = await (0, _fsExtra.pathExists)(sourceFile);
18
- const targetFileExists = await (0, _fsExtra.pathExists)(targetFile);
19
- if (sourceFileExists) {
20
- if (!targetFileExists || !buildCacheExist) {
21
- logger.log(`copy\n from: ${sourceFile}\n to: ${targetFile}`);
22
- await (0, _fsExtra.copy)(sourceFile, targetFile);
23
- }
24
- if (buildCache != undefined && buildCacheOptions != undefined && (buildCacheOptions.mode === _BuildCacheMode.BuildCacheMode.ForceUpdate || buildCacheOptions.mode === _BuildCacheMode.BuildCacheMode.UpdateIfNeed)) {
25
- await buildCache.setContent(buildCacheOptions.generatorVersion, buildCacheOptions.gfv, buildCacheOptions.depsHash, path.join("normalize", `${gfv}.normalize`), await (0, _fsExtra.readFile)(sourceFile, "utf-8"));
26
- }
27
- } else {
28
- logger.log(`No server side normalization\n at: ${sourceFile} \n or file got from build-cache`);
29
- }
13
+ return (0, _WriteResourceFile.writeResourceFile)("FLASHNORM", "ServerSide.normalize", path.join("normalize", `${gfv}.normalize`), gfv, formDirectory, resourcesDirectory, parentLogger, buildCache, buildCacheOptions, buildCacheExist);
30
14
  }
31
15
  //# sourceMappingURL=WriteFLangNormalizationFiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WriteFLangNormalizationFiles.js","names":["path","_interopRequireWildcard","require","_fsExtra","_StaticLogger","_BuildCacheMode","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","writeFLangNormalizationFiles","gfv","formDirectory","resourcesDirectory","parentLogger","getLogger","buildCache","buildCacheOptions","buildCacheExist","logger","withPrefix","sourceFile","join","targetFile","sourceFileExists","pathExists","targetFileExists","log","copy","undefined","mode","BuildCacheMode","ForceUpdate","UpdateIfNeed","setContent","generatorVersion","depsHash","readFile"],"sources":["../../../../../src/BuildTasks/Form/WriteFLangNormalizationFiles.ts"],"sourcesContent":["import * as path from \"path\";\n\nimport { copy, pathExists, readFile } from \"fs-extra\";\n\nimport { ILogger } from \"../../Commons/Logging/ILogger\";\nimport { BuildCache, FormBuildCacheOptions } from \"../../FormWebpackConfiguration/CacheAssetsPlugin\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { BuildCacheMode } from \"../../CLICommands/BuildForms/BuildCacheMode\";\n\nexport async function writeFLangNormalizationFiles(\n gfv: string,\n formDirectory: string,\n resourcesDirectory: string,\n parentLogger: ILogger = getLogger(),\n buildCache?: BuildCache,\n buildCacheOptions?: FormBuildCacheOptions,\n buildCacheExist?: boolean\n): Promise<void> {\n const logger = parentLogger.withPrefix(`FLASHNORM:${gfv}`);\n const sourceFile = path.join(formDirectory, \"form\", \"ServerSide.normalize\");\n const targetFile = path.join(resourcesDirectory, \"normalize\", `${gfv}.normalize`);\n const sourceFileExists = await pathExists(sourceFile);\n const targetFileExists = await pathExists(targetFile);\n\n if (sourceFileExists) {\n if (!targetFileExists || !buildCacheExist) {\n logger.log(`copy\\n from: ${sourceFile}\\n to: ${targetFile}`);\n await copy(sourceFile, targetFile);\n }\n\n if (\n buildCache != undefined &&\n buildCacheOptions != undefined &&\n (buildCacheOptions.mode === BuildCacheMode.ForceUpdate ||\n buildCacheOptions.mode === BuildCacheMode.UpdateIfNeed)\n ) {\n await buildCache.setContent(\n buildCacheOptions.generatorVersion,\n buildCacheOptions.gfv,\n buildCacheOptions.depsHash,\n path.join(\"normalize\", `${gfv}.normalize`),\n await readFile(sourceFile, \"utf-8\")\n );\n }\n } else {\n logger.log(`No server side normalization\\n at: ${sourceFile} \\n or file got from build-cache`);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WriteFLangNormalizationFiles.js","names":["path","_interopRequireWildcard","require","_StaticLogger","_WriteResourceFile","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","writeFLangNormalizationFiles","gfv","formDirectory","resourcesDirectory","parentLogger","getLogger","buildCache","buildCacheOptions","buildCacheExist","writeResourceFile","join"],"sources":["../../../../../src/BuildTasks/Form/WriteFLangNormalizationFiles.ts"],"sourcesContent":["import * as path from \"path\";\n\nimport { ILogger } from \"../../Commons/Logging/ILogger\";\nimport { BuildCache, FormBuildCacheOptions } from \"../../FormWebpackConfiguration/CacheAssetsPlugin\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\n\nimport { writeResourceFile } from \"./WriteResourceFile\";\n\nexport async function writeFLangNormalizationFiles(\n gfv: string,\n formDirectory: string,\n resourcesDirectory: string,\n parentLogger: ILogger = getLogger(),\n buildCache?: BuildCache,\n buildCacheOptions?: FormBuildCacheOptions,\n buildCacheExist?: boolean\n): Promise<void> {\n return writeResourceFile(\n \"FLASHNORM\",\n \"ServerSide.normalize\",\n path.join(\"normalize\", `${gfv}.normalize`),\n gfv,\n formDirectory,\n resourcesDirectory,\n parentLogger,\n buildCache,\n buildCacheOptions,\n buildCacheExist\n );\n}\n"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,uBAAA,CAAAC,OAAA;AAIA,IAAAC,aAAA,GAAAD,OAAA;AAEA,IAAAE,kBAAA,GAAAF,OAAA;AAAwD,SAAAG,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,SAAAL,wBAAAK,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;AAEjD,eAAeW,4BAA4BA,CAC9CC,GAAW,EACXC,aAAqB,EACrBC,kBAA0B,EAC1BC,YAAqB,GAAG,IAAAC,uBAAS,EAAC,CAAC,EACnCC,UAAuB,EACvBC,iBAAyC,EACzCC,eAAyB,EACZ;EACb,OAAO,IAAAC,oCAAiB,EACpB,WAAW,EACX,sBAAsB,EACtBlC,IAAI,CAACmC,IAAI,CAAC,WAAW,EAAE,GAAGT,GAAG,YAAY,CAAC,EAC1CA,GAAG,EACHC,aAAa,EACbC,kBAAkB,EAClBC,YAAY,EACZE,UAAU,EACVC,iBAAiB,EACjBC,eACJ,CAAC;AACL","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.writeResourceFile = writeResourceFile;
7
+ var path = _interopRequireWildcard(require("path"));
8
+ var _fsExtra = require("fs-extra");
9
+ var _StaticLogger = require("../../Commons/Logging/StaticLogger");
10
+ var _BuildCacheMode = require("../../CLICommands/BuildForms/BuildCacheMode");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ async function writeResourceFile(loggerPrefix, sourceFileFormRelatedName, targetFileResourceRelativeName, gfv, formDirectory, resourcesDirectory, parentLogger = (0, _StaticLogger.getLogger)(), buildCache, buildCacheOptions, buildCacheExist) {
14
+ const logger = parentLogger.withPrefix(`${loggerPrefix}:${gfv}`);
15
+ const sourceFile = path.join(formDirectory, "form", sourceFileFormRelatedName);
16
+ const targetFile = path.join(resourcesDirectory, targetFileResourceRelativeName);
17
+ const sourceFileExists = await (0, _fsExtra.pathExists)(sourceFile);
18
+ const targetFileExists = await (0, _fsExtra.pathExists)(targetFile);
19
+ if (sourceFileExists) {
20
+ if (!targetFileExists || !buildCacheExist) {
21
+ logger.log(`copy\n from: ${sourceFile}\n to: ${targetFile}`);
22
+ await (0, _fsExtra.copy)(sourceFile, targetFile);
23
+ }
24
+ if (buildCache != undefined && buildCacheOptions != undefined && (buildCacheOptions.mode === _BuildCacheMode.BuildCacheMode.ForceUpdate || buildCacheOptions.mode === _BuildCacheMode.BuildCacheMode.UpdateIfNeed)) {
25
+ await buildCache.setContent(buildCacheOptions.generatorVersion, buildCacheOptions.gfv, buildCacheOptions.depsHash, targetFileResourceRelativeName, await (0, _fsExtra.readFile)(sourceFile, "utf-8"));
26
+ }
27
+ }
28
+ }
29
+ //# sourceMappingURL=WriteResourceFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteResourceFile.js","names":["path","_interopRequireWildcard","require","_fsExtra","_StaticLogger","_BuildCacheMode","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","writeResourceFile","loggerPrefix","sourceFileFormRelatedName","targetFileResourceRelativeName","gfv","formDirectory","resourcesDirectory","parentLogger","getLogger","buildCache","buildCacheOptions","buildCacheExist","logger","withPrefix","sourceFile","join","targetFile","sourceFileExists","pathExists","targetFileExists","log","copy","undefined","mode","BuildCacheMode","ForceUpdate","UpdateIfNeed","setContent","generatorVersion","depsHash","readFile"],"sources":["../../../../../src/BuildTasks/Form/WriteResourceFile.ts"],"sourcesContent":["import * as path from \"path\";\n\nimport { copy, pathExists, readFile } from \"fs-extra\";\n\nimport { ILogger } from \"../../Commons/Logging/ILogger\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { BuildCache, FormBuildCacheOptions } from \"../../FormWebpackConfiguration/CacheAssetsPlugin\";\nimport { BuildCacheMode } from \"../../CLICommands/BuildForms/BuildCacheMode\";\n\nexport async function writeResourceFile(\n loggerPrefix: string,\n sourceFileFormRelatedName: string,\n targetFileResourceRelativeName: string,\n gfv: string,\n formDirectory: string,\n resourcesDirectory: string,\n parentLogger: ILogger = getLogger(),\n buildCache?: BuildCache,\n buildCacheOptions?: FormBuildCacheOptions,\n buildCacheExist?: boolean\n): Promise<void> {\n const logger = parentLogger.withPrefix(`${loggerPrefix}:${gfv}`);\n const sourceFile = path.join(formDirectory, \"form\", sourceFileFormRelatedName);\n const targetFile = path.join(resourcesDirectory, targetFileResourceRelativeName);\n const sourceFileExists = await pathExists(sourceFile);\n const targetFileExists = await pathExists(targetFile);\n\n if (sourceFileExists) {\n if (!targetFileExists || !buildCacheExist) {\n logger.log(`copy\\n from: ${sourceFile}\\n to: ${targetFile}`);\n await copy(sourceFile, targetFile);\n }\n\n if (\n buildCache != undefined &&\n buildCacheOptions != undefined &&\n (buildCacheOptions.mode === BuildCacheMode.ForceUpdate ||\n buildCacheOptions.mode === BuildCacheMode.UpdateIfNeed)\n ) {\n await buildCache.setContent(\n buildCacheOptions.generatorVersion,\n buildCacheOptions.gfv,\n buildCacheOptions.depsHash,\n targetFileResourceRelativeName,\n await readFile(sourceFile, \"utf-8\")\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -32,6 +32,8 @@ var _GetRngSchemaFileExtension = require("../../../../Common/GetRngSchemaFileExt
32
32
  var _FormPathUtils = require("../../../../Common/FormPathUtils");
33
33
  var _WellKnownDirectories = require("../../../../Common/WellKnownDirectories");
34
34
  var _WriteAttachmentPathByGfvFiles = require("../../BuildTasks/Form/WriteAttachmentPathByGfvFiles");
35
+ var _WriteAllKClangFiles = require("../../BuildTasks/Form/WriteAllKClangFiles");
36
+ var _WriteExtendedSchemaFiles = require("../../BuildTasks/Form/WriteExtendedSchemaFiles");
35
37
  function getGeneratorVersion(generatorSource) {
36
38
  if (generatorSource.type === "PublishedGenerator") {
37
39
  return generatorSource.version;
@@ -56,7 +58,7 @@ async function runBuildForms(context, options, farmDirectory, resourcesDirectory
56
58
  const copiedEngines = new Set();
57
59
  const repositoryRoot = _path.default.join(farmDirectory, "..");
58
60
  const buildCache = new _CacheAssetsPlugin.BuildCache(farmDirectory, options.buildCacheMode);
59
- const buildFormsChain = _Observe.Observe.fixedFormDirectories(formInfos.map(x => _path.default.relative(repositoryRoot, x.formPath))).splitToParallelChains(x => x, x => x, async formRelativePath => {
61
+ const createChainForForm = async formRelativePath => {
60
62
  const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formRelativePath);
61
63
  const formDirPath = _path.default.join(repositoryRoot, formRelativePath);
62
64
  if (!(await (0, _fsExtra.pathExists)(_path.default.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName)))) {
@@ -104,7 +106,7 @@ async function runBuildForms(context, options, farmDirectory, resourcesDirectory
104
106
  copiedEngines.add((0, _EngineSource.getEngineSourceKey)(fi.engineSource));
105
107
  }
106
108
  });
107
- }, async fi => fi, async fi => fi.engineSource != undefined ? (0, _EngineSource.getEngineSourceKey)(fi.engineSource) : "NullEngine").attach(async fi => _Observe.Observe.files(fi.formSourcesPath, "../../controls/**/*", "../../xsltTemplates/**/*", "../../jsHelpers/**/*", `./${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, "schemas/**/*", "sugar/**/*", "controls/**/*", "autocalc/**/*", "helpers/**/*", "normalizers/**/*", "validations/**/*", "localization/**/*")).transform(async fi => {
109
+ }, async fi => fi, async fi => fi.engineSource != undefined ? (0, _EngineSource.getEngineSourceKey)(fi.engineSource) : "NullEngine").attach(async fi => buildOptions.watch ? _Observe.Observe.files(fi.formSourcesPath, "../../controls/**/*", "../../xsltTemplates/**/*", "../../jsHelpers/**/*", `./${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, "schemas/**/*", "sugar/**/*", "controls/**/*", "autocalc/**/*", "helpers/**/*", "normalizers/**/*", "validations/**/*", "localization/**/*") : _Observe.Observe.value(fi.formSourcesPath)).transform(async fi => {
108
110
  let dependenciesHash;
109
111
  if (fi.mode !== _ResolveFormInfo.FormBuildMode.NormalBuild) {
110
112
  return {
@@ -141,7 +143,7 @@ async function runBuildForms(context, options, farmDirectory, resourcesDirectory
141
143
  skipCodeReformatting: options.skipGeneratedCodeReformatting,
142
144
  resourcesHash: (_fi$dependenciesHash = fi.dependenciesHash) !== null && _fi$dependenciesHash !== void 0 ? _fi$dependenciesHash : "UndefinedResourcesHash"
143
145
  });
144
- }).attach(async () => _Observe.Observe.files(_path.default.join(formDirPath, "form"), "**/*")).do(async fi => {
146
+ }).attach(async () => buildOptions.watch ? _Observe.Observe.files(_path.default.join(formDirPath, "form"), "**/*") : _Observe.Observe.value(_path.default.join(formDirPath, "form"))).do(async fi => {
145
147
  var _fi$dependenciesHash2, _fi$dependenciesHash3;
146
148
  if (fi.generatorSource == undefined) {
147
149
  return;
@@ -172,6 +174,8 @@ async function runBuildForms(context, options, farmDirectory, resourcesDirectory
172
174
  farmDirectory: farmDirectory
173
175
  } : undefined;
174
176
  await (0, _WriteFLangNormalizationFiles.writeFLangNormalizationFiles)(fi.formName, formDirPath, resourcesDirectory, undefined, buildCache, buildCacheOptions, fi.buildCacheExist);
177
+ await (0, _WriteAllKClangFiles.writeAllKClangFiles)(fi.formName, formDirPath, resourcesDirectory, undefined, buildCache, buildCacheOptions, fi.buildCacheExist);
178
+ await (0, _WriteExtendedSchemaFiles.writeExtendedSchemaFiles)(fi.formName, formDirPath, resourcesDirectory, undefined, buildCache, buildCacheOptions, fi.buildCacheExist);
175
179
  await (0, _WriteAttachmentPathFiles.writeAttachmentPathFiles)(fi.formName, formDirPath, resourcesDirectory, undefined, buildCache, buildCacheOptions);
176
180
  await (0, _WriteAttachmentPathByGfvFiles.writeAttachmentPathByGfvFiles)(fi.formName, formDirPath, resourcesDirectory, undefined, buildCache, buildCacheOptions);
177
181
  }).attach(async fi => {
@@ -191,11 +195,12 @@ async function runBuildForms(context, options, farmDirectory, resourcesDirectory
191
195
  });
192
196
  }
193
197
  });
194
- });
198
+ };
199
+ const buildFormsChain = _Observe.Observe.fixedFormDirectories(formInfos.map(x => _path.default.relative(repositoryRoot, x.formPath))).splitToParallelChains(x => x, x => x, createChainForForm);
200
+ if (options.clean) {
201
+ await cleanTargetDirectory(resourcesDirectory, context.logger);
202
+ }
195
203
  if (buildOptions.watch) {
196
- if (options.clean) {
197
- await cleanTargetDirectory(resourcesDirectory, context.logger);
198
- }
199
204
  const stopObserve1 = await pickListsChain.observe();
200
205
  const stopObserve2 = await buildFormsChain.observe();
201
206
  const stopObserve3 = await staticResourcesForProductionChain.observe();
@@ -212,13 +217,10 @@ async function runBuildForms(context, options, farmDirectory, resourcesDirectory
212
217
  } else {
213
218
  const startDate = Date.now();
214
219
  try {
215
- if (options.clean) {
216
- await cleanTargetDirectory(resourcesDirectory, context.logger);
217
- }
218
220
  await pickListsChain.currentValue;
219
221
  await resourcesExternalConvertersChain.currentValue;
220
- await buildFormsChain.currentValue;
221
222
  await staticResourcesForProductionChain.currentValue;
223
+ await buildFormsChain.currentValue;
222
224
  // eslint-disable-next-line no-console
223
225
  console.log(_chalk.default.greenBright("Build success"));
224
226
  } finally {