@artel/artc 0.6.25255 → 0.6.25256

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.
Files changed (41) hide show
  1. package/build/Cli.js +3 -3
  2. package/build/api/Api.js +10 -6
  3. package/build/api/ApiNodeJS.js +3 -3
  4. package/build/api/ApiServices.js +42 -27
  5. package/build/{chunk-R2AFVF7W.js → chunk-CTEZ5IHI.js} +2 -2
  6. package/build/{chunk-Y23FSWAN.js → chunk-ER3TEZSN.js} +1239 -1066
  7. package/build/{chunk-SSG7MY2R.js → chunk-IHZZGWNS.js} +1 -1
  8. package/build/types/analysis/AccessedFunction.d.ts +10 -3
  9. package/build/types/analysis/Analyzer.d.ts +20 -24
  10. package/build/types/analysis/AutotypeCallExpressionMeaning.d.ts +4 -4
  11. package/build/types/analysis/CallExpressionMeaning.d.ts +3 -3
  12. package/build/types/analysis/ConstructorCallResolver.d.ts +2 -2
  13. package/build/types/analysis/DiagnosticArgumentFactory.d.ts +3 -1
  14. package/build/types/analysis/DisplayableEntity.d.ts +12 -6
  15. package/build/types/analysis/FunctionAccessResolver.d.ts +4 -4
  16. package/build/types/analysis/IdentifierExpressionMeaning.d.ts +3 -3
  17. package/build/types/analysis/MemberAccessExpressionMeaning.d.ts +3 -3
  18. package/build/types/analysis/OverloadResolver.d.ts +7 -7
  19. package/build/types/analysis/SourceFileMembers.d.ts +2 -0
  20. package/build/types/analysis/SubstitutedFunction.d.ts +18 -22
  21. package/build/types/analysis/TypeArgumentInferrer.d.ts +3 -3
  22. package/build/types/analysis/Visitor.d.ts +2 -2
  23. package/build/types/analysis/semantic-context/SemanticContextBase.d.ts +4 -0
  24. package/build/types/common/ArrayUtils.d.ts +2 -0
  25. package/build/types/common/Cached.d.ts +2 -0
  26. package/build/types/common/Lazy.d.ts +2 -0
  27. package/build/types/common/TreeQuery.d.ts +14 -47
  28. package/build/types/common/TreeTraversal.d.ts +1 -1
  29. package/build/types/common/index.d.ts +0 -1
  30. package/build/types/entities/PackageMembers.d.ts +1 -0
  31. package/build/types/entities/TypeEntityMembers.d.ts +2 -0
  32. package/build/types/entities/index.d.ts +1 -1
  33. package/build/types/services/DisplayService.d.ts +16 -10
  34. package/build/types/tree/BaseNode.d.ts +6 -0
  35. package/build/types/tree/Nodes.d.ts +3 -3
  36. package/build/types/types/IntersectionType.d.ts +1 -1
  37. package/build/types/types/Substitutions.d.ts +16 -4
  38. package/build/types/types/TypeMembers.d.ts +1 -1
  39. package/build/types/types/UnionType.d.ts +1 -1
  40. package/package.json +7 -1
  41. package/build/types/common/Errors.d.ts +0 -2
@@ -1,52 +1,19 @@
1
1
  import { Analyzer } from '../analysis/index.js';
2
- import { StructuredTypeDeclaration, TypeWithMembersDeclaration, VariantTypeDeclaration } from '../analysis/NodeTypeUtils.js';
3
- import { PackageEntity, TypeEntity, TypeEntityWithMembers } from '../entities/index.js';
4
- import { SourceFile } from '../project/index.js';
2
+ import { TypeWithMembersDeclaration } from '../analysis/NodeTypeUtils.js';
3
+ import { PackageEntity, TypeEntity } from '../entities/index.js';
4
+ import { SourceFile, SourcePackage } from '../project/index.js';
5
5
  import * as tree from '../tree/index.js';
6
6
  import { PackageLocale } from './PackageLocale.js';
7
- export declare abstract class TreeQuery {
8
- protected abstract get node(): tree.Node;
9
- static fromNode(node: tree.Node): NodeQuery;
10
- static fromTypeMemberDeclaration(node: tree.TypeMemberDeclaration): TypeMemberDeclarationQuery;
11
- sourceFile(): tree.SourceFile;
12
- projectSourceFile(analyzer: Analyzer): SourceFile;
13
- packageEntity(analyzer: Analyzer): PackageEntity;
14
- locale(analyzer: Analyzer): PackageLocale;
7
+ export declare class TreeQuery {
8
+ static getSourceFileNode(node: tree.Node): tree.SourceFile;
9
+ static getSourceFile(node: tree.Node, analyzer: Analyzer): SourceFile;
10
+ static getSourcePackage(node: tree.Node, analyzer: Analyzer): SourcePackage;
11
+ static getPackageEntity(node: tree.Node, analyzer: Analyzer): PackageEntity;
12
+ static getLocale(node: tree.Node, analyzer: Analyzer): PackageLocale;
15
13
  }
16
- declare class NodeQuery extends TreeQuery {
17
- private readonly _node;
18
- constructor(_node: tree.Node);
19
- protected get node(): tree.Node;
14
+ export declare class TypeMemberQuery {
15
+ static getContainingDeclaration(node: tree.TypeMemberDeclaration): TypeWithMemberOrTypeExtensionDeclaration;
16
+ static getOutermostMemberBlock(node: tree.TypeMemberDeclaration): tree.TypeMemberDeclarationBlock;
17
+ static getContextualTypeEntity(node: tree.TypeMemberDeclaration, analyzer: Analyzer): TypeEntity | undefined;
20
18
  }
21
- declare class TypeMemberDeclarationQuery extends TreeQuery {
22
- private readonly _node;
23
- constructor(_node: tree.TypeMemberDeclaration);
24
- protected get node(): tree.Node;
25
- container(): TypeMemberDeclarationContainer;
26
- }
27
- export type TypeMemberDeclarationContainer = TypeMemberDeclarationContainer_type | TypeMemberDeclarationContainer_typeExtension;
28
- declare class TypeMemberDeclarationContainer_type implements ITypeMemberDeclarationContainer {
29
- readonly declaration: TypeWithMembersDeclaration;
30
- readonly memberBlock: tree.TypeMemberDeclarationBlock;
31
- readonly kind = "type";
32
- constructor(declaration: TypeWithMembersDeclaration, memberBlock: tree.TypeMemberDeclarationBlock);
33
- getNode(): TypeWithMembersDeclaration;
34
- getMemberBlock(): tree.TypeMemberDeclarationBlock;
35
- getTypeEntity(analyzer: Analyzer): TypeEntityWithMembers;
36
- getContextualTypeEntity(analyzer: Analyzer): TypeEntity | undefined;
37
- }
38
- declare class TypeMemberDeclarationContainer_typeExtension implements ITypeMemberDeclarationContainer {
39
- readonly declaration: tree.TypeExtensionDeclaration;
40
- readonly memberBlock: tree.TypeMemberDeclarationBlock;
41
- readonly kind = "type-extension";
42
- constructor(declaration: tree.TypeExtensionDeclaration, memberBlock: tree.TypeMemberDeclarationBlock);
43
- getNode(): tree.TypeExtensionDeclaration;
44
- getMemberBlock(): tree.TypeMemberDeclarationBlock;
45
- getContextualTypeEntity(analyzer: Analyzer): TypeEntity | undefined;
46
- }
47
- interface ITypeMemberDeclarationContainer {
48
- getNode(): StructuredTypeDeclaration | VariantTypeDeclaration | tree.PackageAliasTypeDeclaration | tree.TypeExtensionDeclaration;
49
- getMemberBlock(): tree.TypeMemberDeclarationBlock;
50
- getContextualTypeEntity(analyzer: Analyzer): TypeEntity | undefined;
51
- }
52
- export {};
19
+ export type TypeWithMemberOrTypeExtensionDeclaration = TypeWithMembersDeclaration | tree.TypeExtensionDeclaration;
@@ -1,6 +1,6 @@
1
1
  import * as tree from '../tree/index.js';
2
2
  import { CancellationToken } from './index.js';
3
- export declare function traverseTreeWithCancellationToken(root: tree.Node, cancellationToken: CancellationToken | undefined, throttleTimeMs: number, visitNodeCb: (node: tree.Node, controller: TraversalController) => void): Promise<void>;
3
+ export declare function traverseTreeWithCancellationToken(root: tree.Node, cancellationToken: CancellationToken | undefined, throttleTimeMs: number, visitTokens: boolean, visitNodeCb: (node: tree.Node, controller: TraversalController) => void): Promise<void>;
4
4
  export declare function traverseTree(root: tree.Node, visitNodeCb: (node: tree.Node, controller: TraversalController) => void): void;
5
5
  export declare class TraversalController {
6
6
  isTraverseStopped: boolean;
@@ -7,7 +7,6 @@ export * from './Constants.js';
7
7
  export * from './Debug.js';
8
8
  export * from './Delayed.js';
9
9
  export * from './Displayable.js';
10
- export * from './Errors.js';
11
10
  export * from './FormatString.js';
12
11
  export * from './Interner.js';
13
12
  export * from './JavaScriptIdentifier.js';
@@ -3,6 +3,7 @@ import { NamedPackageMemberEntity, TypeEntity, TypeExtensionEntity } from '../en
3
3
  export declare class PackageEntityMembers {
4
4
  private readonly _namedMembers;
5
5
  private readonly _typeExtensions;
6
+ private static readonly _emptyNamedMembers;
6
7
  private readonly _membersByNameKey;
7
8
  private get membersByNameKey();
8
9
  constructor(_namedMembers: readonly NamedPackageMemberEntity[], _typeExtensions: readonly TypeExtensionEntity[]);
@@ -13,6 +13,8 @@ export declare class TypeEntityMembers {
13
13
  private readonly _destructors;
14
14
  private readonly _indexers;
15
15
  private readonly _dereferenceOperators;
16
+ private static readonly _emptyNamedMembers;
17
+ private static readonly _emptyOperators;
16
18
  private readonly _membersByNameKey;
17
19
  private readonly _operatorsByKind;
18
20
  private get membersByNameKey();
@@ -33,6 +33,7 @@ export * from './FunctionEntity.js';
33
33
  export * from './FunctionTypeEntity.js';
34
34
  export * from './GetterEntity.js';
35
35
  export * from './IndexerEntity.js';
36
+ export * from './LocalizableTextEntity.js';
36
37
  export * from './OperatorEntity.js';
37
38
  export * from './OperatorKind.js';
38
39
  export * from './PackageAliasEntity.js';
@@ -46,7 +47,6 @@ export * from './TypeMemberContainer.js';
46
47
  export * from './TypeParameterEntity.js';
47
48
  export * from './VariableEntity.js';
48
49
  export * from './VariantTypeEntity.js';
49
- export * from './LocalizableTextEntity.js';
50
50
  export declare const enum DefinitionKind {
51
51
  Source = 0,
52
52
  Intrinsic = 1,
@@ -3,16 +3,19 @@ import { PackageNameTreeNode } from '../analysis/ImportedPackageNameTree.js';
3
3
  import { SubstitutedFunction } from '../analysis/SubstitutedFunction.js';
4
4
  import { Analyzer } from '../analysis/index.js';
5
5
  import { HelperPhraseKind } from '../common/HelperPhrases.js';
6
- import { PackageDialect, PackageLocale } from '../common/index.js';
6
+ import { Name, PackageDialect, PackageLocale } from '../common/index.js';
7
7
  import * as e from '../entities/index.js';
8
8
  import { NamedEntity } from '../entities/index.js';
9
+ import { SourceFile } from '../project/index.js';
9
10
  import { KeywordKind } from '../tree/index.js';
10
11
  import * as types from '../types/index.js';
11
12
  export declare class DisplayService {
12
13
  private readonly _analyzer;
13
14
  private readonly _locale;
14
- private readonly _dialect?;
15
- constructor(_analyzer: Analyzer | undefined, _locale: PackageLocale, _dialect?: PackageDialect | undefined);
15
+ private readonly _dialect;
16
+ private readonly _contextualSourceFile?;
17
+ private _packageNameShorteningMap;
18
+ constructor(_analyzer: Analyzer | undefined, _locale: PackageLocale, _dialect: PackageDialect, _contextualSourceFile?: SourceFile | undefined);
16
19
  displayVariableDeclaration(variable: VariableDeclaration): string;
17
20
  displayType(type: types.Type): string;
18
21
  getFunctionTypeBodyDisplayParts(type: types.FunctionType): FunctionTypeBodyDisplayParts;
@@ -48,7 +51,8 @@ export declare class DisplayService {
48
51
  displayTypeMember(member: types.TypeMember): string;
49
52
  displayKeyword(kind: KeywordKind): string;
50
53
  displayHelperPhrase(kind: HelperPhraseKind): string;
51
- displayEntityNameText(entity: NamedEntity): string;
54
+ displayEntityName(entity: NamedEntity): string;
55
+ displayName(name: Name): string;
52
56
  private displayTypeEntityAsUsage;
53
57
  private displayStructuredTypeUsage;
54
58
  private displayVariantTypeUsage;
@@ -61,6 +65,8 @@ export declare class DisplayService {
61
65
  private displayTypeUsageInternal;
62
66
  private displayUnionOrIntersectionTypeTypes;
63
67
  private displayDeclarationContainer;
68
+ private displayDeclarationContainerWithEndingDot;
69
+ private getPackageNameShorteningMap;
64
70
  }
65
71
  interface TypeDisplayOptions {
66
72
  readonly unionAndAliasTypeDisplayKind: UnionAndAliasTypeDisplayKind;
@@ -233,7 +239,7 @@ export declare class ValueParameterDeclaration_entity implements IValueParameter
233
239
  readonly value: e.VariableEntity;
234
240
  readonly kind = "entity";
235
241
  constructor(value: e.VariableEntity);
236
- getName(): string;
242
+ getName(): Name;
237
243
  getEntity(): e.VariableEntity;
238
244
  isOptional(): boolean;
239
245
  getType(): types.Type;
@@ -242,7 +248,7 @@ export declare class ValueParameterDeclaration_typeMember implements IValueParam
242
248
  readonly value: types.ValueParameter;
243
249
  readonly kind = "type-member";
244
250
  constructor(value: types.ValueParameter);
245
- getName(): string;
251
+ getName(): Name;
246
252
  getEntity(): e.VariableEntity;
247
253
  isOptional(): boolean;
248
254
  getType(): types.Type;
@@ -251,7 +257,7 @@ export declare class ValueParameterDeclaration_substitutedFunction implements IV
251
257
  readonly entity: e.VariableEntity;
252
258
  readonly type: types.Type;
253
259
  constructor(entity: e.VariableEntity, type: types.Type);
254
- getName(): string;
260
+ getName(): Name;
255
261
  getEntity(): e.VariableEntity;
256
262
  isOptional(): boolean;
257
263
  getType(): types.Type;
@@ -266,7 +272,7 @@ export declare class ValueParameterDeclaration_matchResultValueParameter impleme
266
272
  entity: e.VariableEntity;
267
273
  type: types.Type;
268
274
  });
269
- getName(): string;
275
+ getName(): Name;
270
276
  getEntity(): e.VariableEntity;
271
277
  isOptional(): boolean;
272
278
  getType(): types.Type;
@@ -275,13 +281,13 @@ export declare class ValueParameterDeclaration_universal implements IValueParame
275
281
  readonly entity: e.VariableEntity;
276
282
  readonly type: types.Type;
277
283
  constructor(entity: e.VariableEntity, type: types.Type);
278
- getName(): string;
284
+ getName(): Name;
279
285
  getEntity(): e.VariableEntity;
280
286
  isOptional(): boolean;
281
287
  getType(): types.Type;
282
288
  }
283
289
  interface IValueParameter {
284
- getName(): string;
290
+ getName(): Name;
285
291
  getEntity(): e.VariableEntity;
286
292
  isOptional(): boolean;
287
293
  getType(): types.Type;
@@ -2,6 +2,7 @@ import { Range } from '../common/index.js';
2
2
  import { Node } from './Nodes.js';
3
3
  import { Token } from './Token.js';
4
4
  export declare abstract class BaseNode {
5
+ protected static readonly emptyChildren_: [];
5
6
  abstract readonly children: readonly (Node | undefined)[];
6
7
  protected parent_: BaseNode | undefined;
7
8
  protected rangeWithTrivia_: Range | undefined;
@@ -16,11 +17,16 @@ export declare abstract class BaseNode {
16
17
  * Информация для оценки размера дерева при отладке.
17
18
  */
18
19
  get descendantCount(): number;
20
+ /**
21
+ * Информация для оценки размера дерева при отладке.
22
+ */
23
+ get tokenCount(): number;
19
24
  findLeftmostToken(): Token | undefined;
20
25
  findRightmostToken(): Token | undefined;
21
26
  protected setParentForChildren(): void;
22
27
  protected getLengthWithTrivia(): number;
23
28
  protected getStartWithTrivia(): number;
24
29
  private countDescendants;
30
+ private countTokens;
25
31
  }
26
32
  export declare function toSourceCode(node: Node, lengthLimit?: number, excludeTrivia?: boolean): string;
@@ -195,7 +195,7 @@ export declare class AnonymousTypeSpecifier extends BaseNode {
195
195
  }
196
196
  export declare class MissingTypeSpecifier extends BaseNode {
197
197
  readonly kind = NodeKind.MissingTypeSpecifier;
198
- readonly children: never[];
198
+ get children(): readonly [];
199
199
  get parent(): NonNamedTypeSpecifierParent;
200
200
  protected get thisAsNode(): Node;
201
201
  constructor(rangeWithTrivia: Range | undefined);
@@ -1081,7 +1081,7 @@ export declare class IndexedAccessExpression extends BaseNode {
1081
1081
  }
1082
1082
  export declare class MissingExpression extends BaseNode {
1083
1083
  readonly kind = NodeKind.MissingExpression;
1084
- readonly children: never[];
1084
+ get children(): readonly [];
1085
1085
  get parent(): ExpressionParent;
1086
1086
  protected get thisAsNode(): Node;
1087
1087
  constructor(rangeWithTrivia: Range | undefined);
@@ -1617,7 +1617,7 @@ export declare class ElseClause extends BaseNode {
1617
1617
  }
1618
1618
  export declare class MissingStatement extends BaseNode {
1619
1619
  readonly kind = NodeKind.MissingStatement;
1620
- readonly children: never[];
1620
+ get children(): readonly [];
1621
1621
  get parent(): StatementList;
1622
1622
  protected get thisAsNode(): Node;
1623
1623
  constructor(rangeWithTrivia: Range | undefined);
@@ -16,5 +16,5 @@ export declare class IntersectionType implements IType {
16
16
  getEntity(): TypeEntity | undefined;
17
17
  getBaseObjectTypeOrAliasedType(): Type | undefined;
18
18
  toString(): string;
19
- private unaliasAndFlattenType;
19
+ private unaliasAndFlattenTypes;
20
20
  }
@@ -2,16 +2,28 @@ import { Analyzer } from '../analysis/index.js';
2
2
  import { TypeParameterEntity } from '../entities/index.js';
3
3
  import { Type } from './index.js';
4
4
  export declare class Substitutions {
5
+ private static _empty;
5
6
  /**
6
7
  * Ключом `SubstitutionMap` всегда является параметр на языке оригинала.
7
8
  */
8
9
  readonly map: SubstitutionMap;
9
- private readonly _analyzer;
10
10
  get size(): number;
11
- constructor(analyzer: Analyzer, parameters: readonly TypeParameterEntity[], types: readonly Type[]);
12
- constructor(analyzer: Analyzer, map: SubstitutionMap);
11
+ private constructor();
12
+ /**
13
+ * Создаёт словарь подстановок на основе массива параметров типа и массива аргументов типа. Если количество аргументов
14
+ * типа меньше, чем количество параметров, в качестве аргументов используются значения по умолчанию параметров типа,
15
+ * к которым применяются подстановки, переданные в параметре `outerSubstitutions`. Если значение по умолчанию
16
+ * отсутствует, в качестве аргумента используется тип `unresolved`.
17
+ */
18
+ static create(analyzer: Analyzer, parameters: readonly TypeParameterEntity[], types: readonly Type[] | undefined, outerSubstitutions: Substitutions | undefined): Substitutions;
19
+ /**
20
+ * Создаёт словарь подстановок на основе массива параметров типа и массива аргументов типа. Массивы должны иметь
21
+ * одинаковую длину.
22
+ */
23
+ static withExactArgumentCount(parameters: readonly TypeParameterEntity[], types: readonly Type[]): Substitutions;
24
+ static fromSubstitutionMap(map: SubstitutionMap): Substitutions;
13
25
  static identity(analyzer: Analyzer, parameters: readonly TypeParameterEntity[]): Substitutions;
14
- static empty(analyzer: Analyzer): Substitutions;
26
+ static empty(): Substitutions;
15
27
  getParameters(): Iterable<TypeParameterEntity>;
16
28
  getTypes(): Iterable<Type>;
17
29
  substituteTypes(substitutions: Substitutions): Substitutions;
@@ -14,7 +14,7 @@ export declare class Method implements ITypeMember {
14
14
  private readonly _substitutions;
15
15
  readonly kind = "method";
16
16
  private readonly _valueParameters;
17
- private readonly _signatureEntity;
17
+ private readonly _signatureType;
18
18
  get debuggerDisplay(): string;
19
19
  constructor(_analyzer: Analyzer, _entity: MethodEntity, _substitutions: Substitutions);
20
20
  getName(): Name;
@@ -16,5 +16,5 @@ export declare class UnionType implements IType {
16
16
  getEntity(): TypeEntity | undefined;
17
17
  getBaseObjectTypeOrAliasedType(): Type | undefined;
18
18
  toString(): string;
19
- private unaliasAndFlattenType;
19
+ private unaliasAndFlattenTypes;
20
20
  }
package/package.json CHANGED
@@ -1,10 +1,16 @@
1
1
  {
2
2
  "name": "@artel/artc",
3
- "version": "0.6.25255",
3
+ "version": "0.6.25256",
4
4
  "description": "Артель Компилятор | Artel Compiler",
5
5
  "author": "Nezaboodka Team <contact@nezaboodka.com>",
6
6
  "license": "LGPL-3.0-or-later",
7
7
  "type": "module",
8
+ "bin": {
9
+ "artel": "build/Cli.js",
10
+ "артель": "build/Cli.js",
11
+ "artc": "build/Cli.js",
12
+ "артк": "build/Cli.js"
13
+ },
8
14
  "files": [
9
15
  "build/**/*.*js",
10
16
  "build/types/**/*.d.ts",
@@ -1,2 +0,0 @@
1
- export declare class RecursiveAnalysisError extends Error {
2
- }