@kontur.candy/tools 2.213.0 → 2.214.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/distr/Common/ArrayUtils.js +20 -0
- package/distr/Common/ArrayUtils.js.map +1 -0
- package/distr/Common/CandyApiClient/CandyApiClient.js +30 -7
- package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -1
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js +7 -4
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -1
- package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -1
- package/distr/Common/CandyApiClient/Types/ErrorLog/AttachmentErrorLog.js +6 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/AttachmentErrorLog.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/HistoryEditing/InnerHistoryResponse.js.map +1 -1
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js +3 -3
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js.map +1 -1
- package/distr/Common/CommonConstants/DefaultServicesUrls.js +19 -0
- package/distr/Common/CommonConstants/DefaultServicesUrls.js.map +1 -0
- package/distr/Common/FSPrinterClient/IFSPrinterClient.js.map +1 -1
- package/distr/Common/FormActionHandlers/ContextualActionNames.js +2 -1
- package/distr/Common/FormActionHandlers/ContextualActionNames.js.map +1 -1
- package/distr/Common/KCLangRuntimeUtils.js +12 -0
- package/distr/Common/KCLangRuntimeUtils.js.map +1 -1
- package/distr/Common/ModelPath/ModelPath.js +39 -2
- package/distr/Common/ModelPath/ModelPath.js.map +1 -1
- package/distr/Common/TypingUtils.js +5 -0
- package/distr/Common/TypingUtils.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildForms/ClearSourceMapForProduction.js +4 -2
- package/distr/Tools/src/CLICommands/BuildForms/ClearSourceMapForProduction.js.map +1 -1
- package/distr/Tools/src/CheckNodeJsVersion.js +2 -2
- package/distr/Tools/src/CheckNodeJsVersion.js.map +1 -1
- package/distr/Tools/src/Commons/FsUtils.js +1 -3
- package/distr/Tools/src/Commons/FsUtils.js.map +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +33 -18
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +35 -20
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
- package/package.json +1 -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","isResolved","resolveAll","instance","isContainIteration","isContainCurrentIteration","isContainCurrentOrEachIteration","getLastListPath","lastIterationIndex","lastIndexOf","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","Number","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","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, reject } from \"../TypingUtils\";\n\nimport { EachCurrentCollision } from \"./EachCurrentCollision\";\nimport { ModelPathBuilder } from \"./ModelPathBuilder\";\nimport { 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+$/i.test(part);\n }\n\n public static isInstanceTokenOrInstancesSpec(part: undefined | PathToken): part is string {\n return typeof part === \"string\" && (/^\\d+$/i.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 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 getParentPath(): IModelPath<TResolved, TAbsolute>;\n applyInstancesDirty(\n instances: SimplePathToken[],\n fillWithMultiplicityIfHasNoInstance?: boolean\n ): IModelPath<TResolved, TAbsolute>;\n\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 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 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 // tslint:disable-next-line:no-bitwise\n hash = (hash * 33) ^ currentStr.charCodeAt(--stringIndex);\n }\n }\n\n /*\n tslint:disable-next-line:no-bitwise\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 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","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 // tslint:disable-next-line:no-bitwise\n hash = (hash * 33) ^ currentStr.charCodeAt(--stringIndex);\n }\n }\n\n /*\n tslint:disable-next-line:no-bitwise\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":[]}
|
|
@@ -115,4 +115,9 @@ function trimLastSlash(url) {
|
|
|
115
115
|
function assertIs(value) {
|
|
116
116
|
// noop
|
|
117
117
|
}
|
|
118
|
+
|
|
119
|
+
// region FS.Glob hardcode type
|
|
120
|
+
// Костыль с типом, т.к. свежая версия @types/node требует TS 5 FS-8883
|
|
121
|
+
|
|
122
|
+
// endregion
|
|
118
123
|
//# sourceMappingURL=TypingUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypingUtils.js","names":["isNotNullOrUndefined","input","undefined","stringifyUnknownError","error","ensureNotNullOrUndefined","Error","noop","reject","message","isLengthGreaterThenOrEqual","items","minLength","length","minLengthOrUndefined","ensureIsArray","Array","isArray","arrayHasLength","arrayIsNotEmpty","arrayHasAtLeastOneItem","ensureArrayIsNotEmpty","ensureArrayHasLength","ensureArrayLengthGreaterThenOrEqual","ensureNever","neverArgument","ensureAndGetString","runAsyncAction","action","isNullOrEmpty","isNotNullOrEmpty","isNullOrWhiteSpace","trim","trimLastSlash","url","slice","assertIs","value"],"sources":["../../../Common/TypingUtils.ts"],"sourcesContent":["/***\n * Строготипизированная замена для Boolean(...)\n * Обычно используется для [...].filter(isNotNullOrUndefined)\n */\nexport function isNotNullOrUndefined<T>(input: T): input is NonNullable<T> {\n return input != undefined;\n}\n\nexport function stringifyUnknownError(error: unknown): undefined | string {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return typeof error === \"object\" && error?.[\"message\"];\n}\n\nexport function ensureNotNullOrUndefined<T>(input: T): asserts input is NonNullable<T> {\n if (!isNotNullOrUndefined(input)) {\n throw new Error(`Value must be defined`);\n }\n}\n\nexport function noop(): void {\n // noop\n}\n\nexport type ErrorFirstCallback<T> = (...args: [Error, null | undefined] | [null | undefined, T] | [Error]) => void;\n\nexport function reject(message?: string | Error): never {\n if (typeof message === \"string\" || message == undefined) {\n throw new Error(message ?? \"Undefined is not allowed\");\n } else {\n throw message;\n }\n}\n\ntype ArrayOfLength<TItem, TLength extends number, TRest extends TItem[] = []> = TRest extends { length: TLength }\n ? TRest\n : ArrayOfLength<TItem, TLength, [TItem, ...TRest]>;\n\nexport type MinLengthArray<TItem, TLength extends number, TRest extends TItem[] = []> = TRest extends {\n length: TLength;\n}\n ? [...TRest, ...TItem[]]\n : MinLengthArray<TItem, TLength, [...TRest, TItem]>;\n\nexport function isLengthGreaterThenOrEqual<T, TNum extends number>(\n items: readonly T[],\n minLength: TNum\n): items is MinLengthArray<T, TNum> {\n return items.length >= minLength;\n}\n\nexport function minLengthOrUndefined<T, TNum extends number>(\n items: T[],\n minLength: TNum\n): undefined | MinLengthArray<T, TNum> {\n if (isLengthGreaterThenOrEqual(items, minLength)) {\n return items;\n }\n return undefined;\n}\n\nexport function ensureIsArray<T>(items: unknown): T[] {\n if (!Array.isArray(items)) {\n throw new Error(`Must be an array!`);\n }\n return items as T[];\n}\n\nexport function arrayHasLength<T, TNum extends number>(\n items: readonly T[],\n length: TNum\n): items is ArrayOfLength<T, TNum> {\n return items.length === length;\n}\n\nexport function arrayIsNotEmpty<T>(items: readonly T[]): items is MinLengthArray<T, 1> {\n return items.length > 0;\n}\n\nexport function arrayHasAtLeastOneItem<T>(items: readonly T[]): items is MinLengthArray<T, 1> {\n return items.length > 0;\n}\n\nexport function ensureArrayIsNotEmpty<T>(items: readonly T[]): asserts items is MinLengthArray<T, 1> {\n if (!arrayIsNotEmpty(items)) {\n throw new Error(`Array must be not empty`);\n }\n}\n\nexport function ensureArrayHasLength<T, TNum extends number>(\n items: readonly T[],\n length: TNum\n): asserts items is ArrayOfLength<T, TNum> {\n if (!arrayHasLength(items, length)) {\n throw new Error(`Array should has length ${length}`);\n }\n}\n\nexport function ensureArrayLengthGreaterThenOrEqual<T, TNum extends number>(\n items: readonly T[],\n length: TNum\n): asserts items is ArrayOfLength<T, TNum> {\n if (!isLengthGreaterThenOrEqual(items, length)) {\n throw new Error(`Array must have minimal length ${length}`);\n }\n}\n\nexport function ensureNever(neverArgument: never): void {\n // noop\n}\n\nexport function ensureAndGetString(neverArgument: never): string {\n return `${neverArgument}`;\n}\n\nexport function runAsyncAction(action: () => Promise<void>): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n action();\n}\n\nexport function isNullOrEmpty(input: string | undefined): input is undefined {\n return input == undefined || input === \"\";\n}\n\nexport function isNotNullOrEmpty(input: string | undefined): input is string {\n return !isNullOrEmpty(input);\n}\n\nexport function isNullOrWhiteSpace(input: string | undefined | null): input is undefined | null {\n return input == undefined || input.trim() === \"\";\n}\n\nexport function trimLastSlash(url: string): string {\n return url.slice(-1) === \"/\" ? url.slice(0, -1) : url;\n}\n\nexport function assertIs<T>(value: T): void {\n // noop\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACO,SAASA,oBAAoBA,CAAIC,KAAQ,EAA2B;EACvE,OAAOA,KAAK,IAAIC,SAAS;AAC7B;AAEO,SAASC,qBAAqBA,CAACC,KAAc,EAAsB;EACtE;EACA,OAAO,OAAOA,KAAK,KAAK,QAAQ,KAAIA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,SAAS,CAAC;AAC1D;AAEO,SAASC,wBAAwBA,CAAIJ,KAAQ,EAAmC;EACnF,IAAI,CAACD,oBAAoB,CAACC,KAAK,CAAC,EAAE;IAC9B,MAAM,IAAIK,KAAK,CAAC,uBAAuB,CAAC;EAC5C;AACJ;AAEO,SAASC,IAAIA,CAAA,EAAS;EACzB;AAAA;AAKG,SAASC,MAAMA,CAACC,OAAwB,EAAS;EACpD,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAIA,OAAO,IAAIP,SAAS,EAAE;IACrD,MAAM,IAAII,KAAK,CAACG,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,0BAA0B,CAAC;EAC1D,CAAC,MAAM;IACH,MAAMA,OAAO;EACjB;AACJ;AAYO,SAASC,0BAA0BA,CACtCC,KAAmB,EACnBC,SAAe,EACiB;EAChC,OAAOD,KAAK,CAACE,MAAM,IAAID,SAAS;AACpC;AAEO,SAASE,oBAAoBA,CAChCH,KAAU,EACVC,SAAe,EACoB;EACnC,IAAIF,0BAA0B,CAACC,KAAK,EAAEC,SAAS,CAAC,EAAE;IAC9C,OAAOD,KAAK;EAChB;EACA,OAAOT,SAAS;AACpB;AAEO,SAASa,aAAaA,CAAIJ,KAAc,EAAO;EAClD,IAAI,CAACK,KAAK,CAACC,OAAO,CAACN,KAAK,CAAC,EAAE;IACvB,MAAM,IAAIL,KAAK,CAAC,mBAAmB,CAAC;EACxC;EACA,OAAOK,KAAK;AAChB;AAEO,SAASO,cAAcA,CAC1BP,KAAmB,EACnBE,MAAY,EACmB;EAC/B,OAAOF,KAAK,CAACE,MAAM,KAAKA,MAAM;AAClC;AAEO,SAASM,eAAeA,CAAIR,KAAmB,EAAiC;EACnF,OAAOA,KAAK,CAACE,MAAM,GAAG,CAAC;AAC3B;AAEO,SAASO,sBAAsBA,CAAIT,KAAmB,EAAiC;EAC1F,OAAOA,KAAK,CAACE,MAAM,GAAG,CAAC;AAC3B;AAEO,SAASQ,qBAAqBA,CAAIV,KAAmB,EAAyC;EACjG,IAAI,CAACQ,eAAe,CAACR,KAAK,CAAC,EAAE;IACzB,MAAM,IAAIL,KAAK,CAAC,yBAAyB,CAAC;EAC9C;AACJ;AAEO,SAASgB,oBAAoBA,CAChCX,KAAmB,EACnBE,MAAY,EAC2B;EACvC,IAAI,CAACK,cAAc,CAACP,KAAK,EAAEE,MAAM,CAAC,EAAE;IAChC,MAAM,IAAIP,KAAK,CAAC,2BAA2BO,MAAM,EAAE,CAAC;EACxD;AACJ;AAEO,SAASU,mCAAmCA,CAC/CZ,KAAmB,EACnBE,MAAY,EAC2B;EACvC,IAAI,CAACH,0BAA0B,CAACC,KAAK,EAAEE,MAAM,CAAC,EAAE;IAC5C,MAAM,IAAIP,KAAK,CAAC,kCAAkCO,MAAM,EAAE,CAAC;EAC/D;AACJ;AAEO,SAASW,WAAWA,CAACC,aAAoB,EAAQ;EACpD;AAAA;AAGG,SAASC,kBAAkBA,CAACD,aAAoB,EAAU;EAC7D,OAAO,GAAGA,aAAa,EAAE;AAC7B;AAEO,SAASE,cAAcA,CAACC,MAA2B,EAAQ;EAC9D;EACAA,MAAM,CAAC,CAAC;AACZ;AAEO,SAASC,aAAaA,CAAC5B,KAAyB,EAAsB;EACzE,OAAOA,KAAK,IAAIC,SAAS,IAAID,KAAK,KAAK,EAAE;AAC7C;AAEO,SAAS6B,gBAAgBA,CAAC7B,KAAyB,EAAmB;EACzE,OAAO,CAAC4B,aAAa,CAAC5B,KAAK,CAAC;AAChC;AAEO,SAAS8B,kBAAkBA,CAAC9B,KAAgC,EAA6B;EAC5F,OAAOA,KAAK,IAAIC,SAAS,IAAID,KAAK,CAAC+B,IAAI,CAAC,CAAC,KAAK,EAAE;AACpD;AAEO,SAASC,aAAaA,CAACC,GAAW,EAAU;EAC/C,OAAOA,GAAG,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAGD,GAAG,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGD,GAAG;AACzD;AAEO,SAASE,QAAQA,CAAIC,KAAQ,EAAQ;EACxC;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TypingUtils.js","names":["isNotNullOrUndefined","input","undefined","stringifyUnknownError","error","ensureNotNullOrUndefined","Error","noop","reject","message","isLengthGreaterThenOrEqual","items","minLength","length","minLengthOrUndefined","ensureIsArray","Array","isArray","arrayHasLength","arrayIsNotEmpty","arrayHasAtLeastOneItem","ensureArrayIsNotEmpty","ensureArrayHasLength","ensureArrayLengthGreaterThenOrEqual","ensureNever","neverArgument","ensureAndGetString","runAsyncAction","action","isNullOrEmpty","isNotNullOrEmpty","isNullOrWhiteSpace","trim","trimLastSlash","url","slice","assertIs","value"],"sources":["../../../Common/TypingUtils.ts"],"sourcesContent":["/***\n * Строготипизированная замена для Boolean(...)\n * Обычно используется для [...].filter(isNotNullOrUndefined)\n */\nexport function isNotNullOrUndefined<T>(input: T): input is NonNullable<T> {\n return input != undefined;\n}\n\nexport function stringifyUnknownError(error: unknown): undefined | string {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return typeof error === \"object\" && error?.[\"message\"];\n}\n\nexport function ensureNotNullOrUndefined<T>(input: T): asserts input is NonNullable<T> {\n if (!isNotNullOrUndefined(input)) {\n throw new Error(`Value must be defined`);\n }\n}\n\nexport function noop(): void {\n // noop\n}\n\nexport type ErrorFirstCallback<T> = (...args: [Error, null | undefined] | [null | undefined, T] | [Error]) => void;\n\nexport function reject(message?: string | Error): never {\n if (typeof message === \"string\" || message == undefined) {\n throw new Error(message ?? \"Undefined is not allowed\");\n } else {\n throw message;\n }\n}\n\ntype ArrayOfLength<TItem, TLength extends number, TRest extends TItem[] = []> = TRest extends { length: TLength }\n ? TRest\n : ArrayOfLength<TItem, TLength, [TItem, ...TRest]>;\n\nexport type MinLengthArray<TItem, TLength extends number, TRest extends TItem[] = []> = TRest extends {\n length: TLength;\n}\n ? [...TRest, ...TItem[]]\n : MinLengthArray<TItem, TLength, [...TRest, TItem]>;\n\nexport function isLengthGreaterThenOrEqual<T, TNum extends number>(\n items: readonly T[],\n minLength: TNum\n): items is MinLengthArray<T, TNum> {\n return items.length >= minLength;\n}\n\nexport function minLengthOrUndefined<T, TNum extends number>(\n items: T[],\n minLength: TNum\n): undefined | MinLengthArray<T, TNum> {\n if (isLengthGreaterThenOrEqual(items, minLength)) {\n return items;\n }\n return undefined;\n}\n\nexport function ensureIsArray<T>(items: unknown): T[] {\n if (!Array.isArray(items)) {\n throw new Error(`Must be an array!`);\n }\n return items as T[];\n}\n\nexport function arrayHasLength<T, TNum extends number>(\n items: readonly T[],\n length: TNum\n): items is ArrayOfLength<T, TNum> {\n return items.length === length;\n}\n\nexport function arrayIsNotEmpty<T>(items: readonly T[]): items is MinLengthArray<T, 1> {\n return items.length > 0;\n}\n\nexport function arrayHasAtLeastOneItem<T>(items: readonly T[]): items is MinLengthArray<T, 1> {\n return items.length > 0;\n}\n\nexport function ensureArrayIsNotEmpty<T>(items: readonly T[]): asserts items is MinLengthArray<T, 1> {\n if (!arrayIsNotEmpty(items)) {\n throw new Error(`Array must be not empty`);\n }\n}\n\nexport function ensureArrayHasLength<T, TNum extends number>(\n items: readonly T[],\n length: TNum\n): asserts items is ArrayOfLength<T, TNum> {\n if (!arrayHasLength(items, length)) {\n throw new Error(`Array should has length ${length}`);\n }\n}\n\nexport function ensureArrayLengthGreaterThenOrEqual<T, TNum extends number>(\n items: readonly T[],\n length: TNum\n): asserts items is ArrayOfLength<T, TNum> {\n if (!isLengthGreaterThenOrEqual(items, length)) {\n throw new Error(`Array must have minimal length ${length}`);\n }\n}\n\nexport function ensureNever(neverArgument: never): void {\n // noop\n}\n\nexport function ensureAndGetString(neverArgument: never): string {\n return `${neverArgument}`;\n}\n\nexport function runAsyncAction(action: () => Promise<void>): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n action();\n}\n\nexport function isNullOrEmpty(input: string | undefined): input is undefined {\n return input == undefined || input === \"\";\n}\n\nexport function isNotNullOrEmpty(input: string | undefined): input is string {\n return !isNullOrEmpty(input);\n}\n\nexport function isNullOrWhiteSpace(input: string | undefined | null): input is undefined | null {\n return input == undefined || input.trim() === \"\";\n}\n\nexport function trimLastSlash(url: string): string {\n return url.slice(-1) === \"/\" ? url.slice(0, -1) : url;\n}\n\nexport function assertIs<T>(value: T): void {\n // noop\n}\n\n// region FS.Glob hardcode type\n// Костыль с типом, т.к. свежая версия @types/node требует TS 5 FS-8883\ndeclare module \"fs\" {\n function globSync(\n pattern: string | string[],\n options?: {\n cwd?: string | undefined;\n exclude?: ((fileName: string) => boolean) | undefined;\n withFileTypes?: boolean;\n }\n ): string[];\n\n export function glob(\n pattern: string | string[],\n callback: (err: NodeJS.ErrnoException | null, matches: string[]) => void\n ): void;\n export function glob(\n pattern: string | string[],\n options: GlobOptionsWithFileTypes,\n callback: (err: NodeJS.ErrnoException | null, matches: Dirent[]) => void\n ): void;\n export function glob(\n pattern: string | string[],\n options: GlobOptionsWithoutFileTypes,\n callback: (err: NodeJS.ErrnoException | null, matches: string[]) => void\n ): void;\n export function glob(\n pattern: string | string[],\n options: GlobOptions,\n callback: (err: NodeJS.ErrnoException | null, matches: Dirent[] | string[]) => void\n ): void;\n}\n\nexport interface Dirent {\n isFile(): boolean;\n isDirectory(): boolean;\n isBlockDevice(): boolean;\n isCharacterDevice(): boolean;\n isSymbolicLink(): boolean;\n isFIFO(): boolean;\n isSocket(): boolean;\n name: string;\n parentPath: string;\n path: string;\n}\n\ninterface GlobOptionsWithFileTypes {\n cwd?: string | undefined;\n exclude?: ((fileName: Dirent) => boolean) | undefined;\n withFileTypes: true;\n}\nexport type GlobAsyncWithFileTypes = (\n pattern: string | string[],\n options?: GlobOptionsWithFileTypes\n) => Promise<Dirent[]>;\n\ninterface GlobOptionsWithoutFileTypes {\n cwd?: string | undefined;\n exclude?: ((fileName: string) => boolean) | undefined;\n withFileTypes?: false;\n}\nexport type GlobAsyncWithoutFileTypes = (\n pattern: string | string[],\n options?: GlobOptionsWithoutFileTypes\n) => Promise<string[]>;\n\ninterface GlobOptions {\n cwd?: string | undefined;\n exclude?: ((fileName: string) => boolean) | undefined;\n withFileTypes?: boolean;\n}\nexport type GlobSync = (pattern: string | string[], options: GlobOptions) => string[];\n// endregion\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,16 +6,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.clearSourceMapForProduction = clearSourceMapForProduction;
|
|
8
8
|
var _path = _interopRequireDefault(require("path"));
|
|
9
|
+
var fs = _interopRequireWildcard(require("fs"));
|
|
9
10
|
var _util = require("util");
|
|
10
11
|
var _fsExtra = require("fs-extra");
|
|
11
|
-
|
|
12
|
+
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); }
|
|
13
|
+
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
14
|
// Движок публикуется с мапами и исходниками. после просто перекладывается в папку. надо исходники из продовой папки почистить
|
|
13
15
|
// + выпилить из сборки dev-билды форм - {gfv}.js. Оставив только {gfv}.min.js
|
|
14
16
|
// подробнее FS-8649
|
|
15
17
|
async function clearSourceMapForProduction(resourcesDirectory) {
|
|
16
18
|
const scriptsPath = _path.default.join(resourcesDirectory, "public", "scripts");
|
|
17
19
|
const stylePath = _path.default.join(resourcesDirectory, "public", "styles");
|
|
18
|
-
const globAsync = (0, _util.promisify)(
|
|
20
|
+
const globAsync = (0, _util.promisify)(fs.glob);
|
|
19
21
|
const filesToDelete = [await globAsync(`${scriptsPath}/!(*.min.js|client.js)`), await globAsync(`${stylePath}/!(*.min.css)`)].flat(1);
|
|
20
22
|
for (const file of filesToDelete) {
|
|
21
23
|
await (0, _fsExtra.remove)(file);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClearSourceMapForProduction.js","names":["_path","_interopRequireDefault","require","_util","_fsExtra","
|
|
1
|
+
{"version":3,"file":"ClearSourceMapForProduction.js","names":["_path","_interopRequireDefault","require","fs","_interopRequireWildcard","_util","_fsExtra","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","clearSourceMapForProduction","resourcesDirectory","scriptsPath","path","join","stylePath","globAsync","promisify","glob","filesToDelete","flat","file","remove"],"sources":["../../../../../src/CLICommands/BuildForms/ClearSourceMapForProduction.ts"],"sourcesContent":["import path from \"path\";\nimport * as fs from \"fs\";\nimport { promisify } from \"util\";\n\nimport { remove } from \"fs-extra\";\n\n// Движок публикуется с мапами и исходниками. после просто перекладывается в папку. надо исходники из продовой папки почистить\n// + выпилить из сборки dev-билды форм - {gfv}.js. Оставив только {gfv}.min.js\n// подробнее FS-8649\nexport async function clearSourceMapForProduction(resourcesDirectory: string) {\n const scriptsPath = path.join(resourcesDirectory, \"public\", \"scripts\");\n const stylePath = path.join(resourcesDirectory, \"public\", \"styles\");\n const globAsync: (pattern: string | string[]) => Promise<string[]> = promisify(fs.glob);\n const filesToDelete = [\n await globAsync(`${scriptsPath}/!(*.min.js|client.js)`),\n await globAsync(`${stylePath}/!(*.min.css)`),\n ].flat(1);\n\n for (const file of filesToDelete) {\n await remove(file);\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,EAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AAAkC,SAAAK,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,SAAAJ,wBAAAI,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;AAElC;AACA;AACA;AACO,eAAeW,2BAA2BA,CAACC,kBAA0B,EAAE;EAC1E,MAAMC,WAAW,GAAGC,aAAI,CAACC,IAAI,CAACH,kBAAkB,EAAE,QAAQ,EAAE,SAAS,CAAC;EACtE,MAAMI,SAAS,GAAGF,aAAI,CAACC,IAAI,CAACH,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,CAAC;EACnE,MAAMK,SAA4D,GAAG,IAAAC,eAAS,EAAC/B,EAAE,CAACgC,IAAI,CAAC;EACvF,MAAMC,aAAa,GAAG,CAClB,MAAMH,SAAS,CAAC,GAAGJ,WAAW,wBAAwB,CAAC,EACvD,MAAMI,SAAS,CAAC,GAAGD,SAAS,eAAe,CAAC,CAC/C,CAACK,IAAI,CAAC,CAAC,CAAC;EAET,KAAK,MAAMC,IAAI,IAAIF,aAAa,EAAE;IAC9B,MAAM,IAAAG,eAAM,EAACD,IAAI,CAAC;EACtB;AACJ","ignoreList":[]}
|
|
@@ -14,9 +14,9 @@ const nodejsVersion = {
|
|
|
14
14
|
minor: versionArray[1] || 0,
|
|
15
15
|
patch: versionArray[2] || 0
|
|
16
16
|
};
|
|
17
|
-
const checkNodeJsVersion = exports.checkNodeJsVersion = nodejsVersion.major >=
|
|
17
|
+
const checkNodeJsVersion = exports.checkNodeJsVersion = nodejsVersion.major >= 22;
|
|
18
18
|
if (!checkNodeJsVersion) {
|
|
19
|
-
const message = `Your version of NodeJS ${process.version} is outdated, expected version
|
|
19
|
+
const message = `Your version of NodeJS ${process.version} is outdated, expected version 22.x.x or greater
|
|
20
20
|
Please update the NodeJS from http://nodejs.org`;
|
|
21
21
|
_ELKLogger.ELKLogger.error(message, {
|
|
22
22
|
stackTrace: new Error().stack
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckNodeJsVersion.js","names":["_boxen","_interopRequireDefault","require","_ELKLogger","versionArray","process","version","replace","split","map","x","parseInt","nodejsVersion","major","minor","patch","checkNodeJsVersion","exports","message","ELKLogger","error","stackTrace","Error","stack","console","log","boxen","borderStyle","borderColor","padding","margin"],"sources":["../../../src/CheckNodeJsVersion.ts"],"sourcesContent":["import boxen from \"boxen\";\n\nimport { ELKLogger } from \"./Commons/Logging/ELKLogger\";\n\n/* tslint:disable:no-console */\nconst versionArray = process.version\n .replace(/[^0-9.]/g, \"\")\n .split(\".\")\n .map(x => parseInt(x, 10));\n\nconst nodejsVersion = {\n major: versionArray[0] || 0,\n minor: versionArray[1] || 0,\n patch: versionArray[2] || 0,\n};\n\nexport const checkNodeJsVersion = nodejsVersion.major >=
|
|
1
|
+
{"version":3,"file":"CheckNodeJsVersion.js","names":["_boxen","_interopRequireDefault","require","_ELKLogger","versionArray","process","version","replace","split","map","x","parseInt","nodejsVersion","major","minor","patch","checkNodeJsVersion","exports","message","ELKLogger","error","stackTrace","Error","stack","console","log","boxen","borderStyle","borderColor","padding","margin"],"sources":["../../../src/CheckNodeJsVersion.ts"],"sourcesContent":["import boxen from \"boxen\";\n\nimport { ELKLogger } from \"./Commons/Logging/ELKLogger\";\n\n/* tslint:disable:no-console */\nconst versionArray = process.version\n .replace(/[^0-9.]/g, \"\")\n .split(\".\")\n .map(x => parseInt(x, 10));\n\nconst nodejsVersion = {\n major: versionArray[0] || 0,\n minor: versionArray[1] || 0,\n patch: versionArray[2] || 0,\n};\n\nexport const checkNodeJsVersion = nodejsVersion.major >= 22;\n\nif (!checkNodeJsVersion) {\n const message = `Your version of NodeJS ${process.version} is outdated, expected version 22.x.x or greater\nPlease update the NodeJS from http://nodejs.org`;\n\n ELKLogger.error(message, { stackTrace: new Error().stack });\n // eslint-disable-next-line no-console\n console.log(boxen(message, { borderStyle: \"double\", borderColor: \"green\", padding: 2, margin: 3 }));\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA;AACA,MAAME,YAAY,GAAGC,OAAO,CAACC,OAAO,CAC/BC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CACvBC,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAACC,CAAC,IAAIC,QAAQ,CAACD,CAAC,EAAE,EAAE,CAAC,CAAC;AAE9B,MAAME,aAAa,GAAG;EAClBC,KAAK,EAAET,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;EAC3BU,KAAK,EAAEV,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;EAC3BW,KAAK,EAAEX,YAAY,CAAC,CAAC,CAAC,IAAI;AAC9B,CAAC;AAEM,MAAMY,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAGJ,aAAa,CAACC,KAAK,IAAI,EAAE;AAE3D,IAAI,CAACG,kBAAkB,EAAE;EACrB,MAAME,OAAO,GAAG,0BAA0Bb,OAAO,CAACC,OAAO;AAC7D,gDAAgD;EAE5Ca,oBAAS,CAACC,KAAK,CAACF,OAAO,EAAE;IAAEG,UAAU,EAAE,IAAIC,KAAK,CAAC,CAAC,CAACC;EAAM,CAAC,CAAC;EAC3D;EACAC,OAAO,CAACC,GAAG,CAAC,IAAAC,cAAK,EAACR,OAAO,EAAE;IAAES,WAAW,EAAE,QAAQ;IAAEC,WAAW,EAAE,OAAO;IAAEC,OAAO,EAAE,CAAC;IAAEC,MAAM,EAAE;EAAE,CAAC,CAAC,CAAC;AACvG","ignoreList":[]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -10,7 +9,6 @@ exports.isFileExists = isFileExists;
|
|
|
10
9
|
exports.writeFileAsync = void 0;
|
|
11
10
|
var fs = _interopRequireWildcard(require("fs"));
|
|
12
11
|
var _util = _interopRequireWildcard(require("util"));
|
|
13
|
-
var _glob = _interopRequireDefault(require("glob"));
|
|
14
12
|
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); }
|
|
15
13
|
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; }
|
|
16
14
|
const statAsync = (0, _util.promisify)(fs.stat);
|
|
@@ -31,5 +29,5 @@ async function isFileExists(directoryPath) {
|
|
|
31
29
|
}
|
|
32
30
|
}
|
|
33
31
|
const writeFileAsync = exports.writeFileAsync = _util.default.promisify(fs.writeFile);
|
|
34
|
-
const globAsync = exports.globAsync = (0, _util.promisify)(
|
|
32
|
+
const globAsync = exports.globAsync = (0, _util.promisify)(fs.glob);
|
|
35
33
|
//# sourceMappingURL=FsUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FsUtils.js","names":["fs","_interopRequireWildcard","require","_util","
|
|
1
|
+
{"version":3,"file":"FsUtils.js","names":["fs","_interopRequireWildcard","require","_util","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","statAsync","promisify","stat","isDirectoryExists","directoryPath","dirStat","isDirectory","ignoreError","isFileExists","isFile","writeFileAsync","exports","util","writeFile","globAsync","glob"],"sources":["../../../../src/Commons/FsUtils.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport util, { promisify } from \"util\";\n\nimport { GlobAsyncWithoutFileTypes } from \"../../../Common/TypingUtils\";\n\nconst statAsync = promisify(fs.stat);\n\nexport async function isDirectoryExists(directoryPath: string): Promise<boolean> {\n try {\n const dirStat = await statAsync(directoryPath);\n return dirStat.isDirectory();\n } catch (ignoreError) {\n return false;\n }\n}\n\nexport async function isFileExists(directoryPath: string): Promise<boolean> {\n try {\n const dirStat = await statAsync(directoryPath);\n return dirStat.isFile();\n } catch (ignoreError) {\n return false;\n }\n}\n\nexport const writeFileAsync = util.promisify(fs.writeFile);\n\nexport const globAsync: GlobAsyncWithoutFileTypes = promisify(fs.glob);\n"],"mappings":";;;;;;;;;AAAA,IAAAA,EAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,uBAAA,CAAAC,OAAA;AAAuC,SAAAE,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,SAAAJ,wBAAAI,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;AAIvC,MAAMW,SAAS,GAAG,IAAAC,eAAS,EAACzB,EAAE,CAAC0B,IAAI,CAAC;AAE7B,eAAeC,iBAAiBA,CAACC,aAAqB,EAAoB;EAC7E,IAAI;IACA,MAAMC,OAAO,GAAG,MAAML,SAAS,CAACI,aAAa,CAAC;IAC9C,OAAOC,OAAO,CAACC,WAAW,CAAC,CAAC;EAChC,CAAC,CAAC,OAAOC,WAAW,EAAE;IAClB,OAAO,KAAK;EAChB;AACJ;AAEO,eAAeC,YAAYA,CAACJ,aAAqB,EAAoB;EACxE,IAAI;IACA,MAAMC,OAAO,GAAG,MAAML,SAAS,CAACI,aAAa,CAAC;IAC9C,OAAOC,OAAO,CAACI,MAAM,CAAC,CAAC;EAC3B,CAAC,CAAC,OAAOF,WAAW,EAAE;IAClB,OAAO,KAAK;EAChB;AACJ;AAEO,MAAMG,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAGE,aAAI,CAACX,SAAS,CAACzB,EAAE,CAACqC,SAAS,CAAC;AAEnD,MAAMC,SAAoC,GAAAH,OAAA,CAAAG,SAAA,GAAG,IAAAb,eAAS,EAACzB,EAAE,CAACuC,IAAI,CAAC","ignoreList":[]}
|