@typespec/compiler 0.67.0-dev.10 → 0.67.0-dev.12

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 (143) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/core/binder.d.ts.map +1 -1
  3. package/dist/src/core/binder.js +17 -130
  4. package/dist/src/core/binder.js.map +1 -1
  5. package/dist/src/core/checker.d.ts +3 -8
  6. package/dist/src/core/checker.d.ts.map +1 -1
  7. package/dist/src/core/checker.js +30 -674
  8. package/dist/src/core/checker.js.map +1 -1
  9. package/dist/src/core/cli/cli.js +8 -2
  10. package/dist/src/core/cli/cli.js.map +1 -1
  11. package/dist/src/core/decorator-utils.d.ts.map +1 -1
  12. package/dist/src/core/decorator-utils.js +1 -3
  13. package/dist/src/core/decorator-utils.js.map +1 -1
  14. package/dist/src/core/diagnostic-error.d.ts +7 -0
  15. package/dist/src/core/diagnostic-error.d.ts.map +1 -0
  16. package/dist/src/core/diagnostic-error.js +9 -0
  17. package/dist/src/core/diagnostic-error.js.map +1 -0
  18. package/dist/src/core/diagnostics.d.ts +0 -6
  19. package/dist/src/core/diagnostics.d.ts.map +1 -1
  20. package/dist/src/core/diagnostics.js +2 -11
  21. package/dist/src/core/diagnostics.js.map +1 -1
  22. package/dist/src/core/inspector/symbol.d.ts.map +1 -1
  23. package/dist/src/core/inspector/symbol.js +9 -11
  24. package/dist/src/core/inspector/symbol.js.map +1 -1
  25. package/dist/src/core/messages.d.ts +20 -40
  26. package/dist/src/core/messages.d.ts.map +1 -1
  27. package/dist/src/core/messages.js +6 -10
  28. package/dist/src/core/messages.js.map +1 -1
  29. package/dist/src/core/name-resolver.d.ts.map +1 -1
  30. package/dist/src/core/name-resolver.js +12 -23
  31. package/dist/src/core/name-resolver.js.map +1 -1
  32. package/dist/src/core/parser.d.ts.map +1 -1
  33. package/dist/src/core/parser.js +0 -642
  34. package/dist/src/core/parser.js.map +1 -1
  35. package/dist/src/core/program.d.ts +1 -10
  36. package/dist/src/core/program.d.ts.map +1 -1
  37. package/dist/src/core/program.js +2 -7
  38. package/dist/src/core/program.js.map +1 -1
  39. package/dist/src/core/semantic-walker.d.ts.map +1 -1
  40. package/dist/src/core/semantic-walker.js +0 -9
  41. package/dist/src/core/semantic-walker.js.map +1 -1
  42. package/dist/src/core/state-accessors.d.ts +53 -12
  43. package/dist/src/core/state-accessors.d.ts.map +1 -1
  44. package/dist/src/core/state-accessors.js +75 -48
  45. package/dist/src/core/state-accessors.js.map +1 -1
  46. package/dist/src/core/type-relation-checker.d.ts.map +1 -1
  47. package/dist/src/core/type-relation-checker.js +3 -6
  48. package/dist/src/core/type-relation-checker.js.map +1 -1
  49. package/dist/src/core/type-utils.js +2 -2
  50. package/dist/src/core/type-utils.js.map +1 -1
  51. package/dist/src/core/types.d.ts +41 -274
  52. package/dist/src/core/types.d.ts.map +1 -1
  53. package/dist/src/core/types.js +24 -55
  54. package/dist/src/core/types.js.map +1 -1
  55. package/dist/src/core/visibility/lifecycle.d.ts.map +1 -1
  56. package/dist/src/core/visibility/lifecycle.js +2 -11
  57. package/dist/src/core/visibility/lifecycle.js.map +1 -1
  58. package/dist/src/experimental/freeze-graph.d.ts.map +1 -1
  59. package/dist/src/experimental/freeze-graph.js +0 -3
  60. package/dist/src/experimental/freeze-graph.js.map +1 -1
  61. package/dist/src/experimental/mutators.d.ts +2 -2
  62. package/dist/src/experimental/mutators.d.ts.map +1 -1
  63. package/dist/src/experimental/mutators.js +0 -6
  64. package/dist/src/experimental/mutators.js.map +1 -1
  65. package/dist/src/experimental/typekit/kits/type.js +0 -3
  66. package/dist/src/experimental/typekit/kits/type.js.map +1 -1
  67. package/dist/src/formatter/print/needs-parens.d.ts.map +1 -1
  68. package/dist/src/formatter/print/needs-parens.js +0 -4
  69. package/dist/src/formatter/print/needs-parens.js.map +1 -1
  70. package/dist/src/formatter/print/printer.d.ts +4 -12
  71. package/dist/src/formatter/print/printer.d.ts.map +1 -1
  72. package/dist/src/formatter/print/printer.js +0 -187
  73. package/dist/src/formatter/print/printer.js.map +1 -1
  74. package/dist/src/index.d.ts +3 -4
  75. package/dist/src/index.d.ts.map +1 -1
  76. package/dist/src/index.js +1 -2
  77. package/dist/src/index.js.map +1 -1
  78. package/dist/src/init/init.d.ts.map +1 -1
  79. package/dist/src/init/init.js +6 -2
  80. package/dist/src/init/init.js.map +1 -1
  81. package/dist/src/install/config.d.ts +9 -0
  82. package/dist/src/install/config.d.ts.map +1 -0
  83. package/dist/src/install/config.js +16 -0
  84. package/dist/src/install/config.js.map +1 -0
  85. package/dist/src/install/install.d.ts +14 -0
  86. package/dist/src/install/install.d.ts.map +1 -0
  87. package/dist/src/install/install.js +159 -0
  88. package/dist/src/install/install.js.map +1 -0
  89. package/dist/src/install/spec.d.ts +39 -0
  90. package/dist/src/install/spec.d.ts.map +1 -0
  91. package/dist/src/install/spec.js +152 -0
  92. package/dist/src/install/spec.js.map +1 -0
  93. package/dist/src/lib/decorators.d.ts +3 -3
  94. package/dist/src/lib/decorators.d.ts.map +1 -1
  95. package/dist/src/lib/decorators.js +14 -29
  96. package/dist/src/lib/decorators.js.map +1 -1
  97. package/dist/src/lib/examples.js +1 -5
  98. package/dist/src/lib/examples.js.map +1 -1
  99. package/dist/src/lib/tsp-index.d.ts.map +1 -1
  100. package/dist/src/lib/tsp-index.js +0 -1
  101. package/dist/src/lib/tsp-index.js.map +1 -1
  102. package/dist/src/package-manger/npm-registry-utils.d.ts +83 -0
  103. package/dist/src/package-manger/npm-registry-utils.d.ts.map +1 -0
  104. package/dist/src/package-manger/npm-registry-utils.js +42 -0
  105. package/dist/src/package-manger/npm-registry-utils.js.map +1 -0
  106. package/dist/src/server/classify.d.ts.map +1 -1
  107. package/dist/src/server/classify.js +0 -26
  108. package/dist/src/server/classify.js.map +1 -1
  109. package/dist/src/server/completion.js +1 -1
  110. package/dist/src/server/completion.js.map +1 -1
  111. package/dist/src/server/tmlanguage.d.ts.map +1 -1
  112. package/dist/src/server/tmlanguage.js +0 -125
  113. package/dist/src/server/tmlanguage.js.map +1 -1
  114. package/dist/src/server/type-signature.js +0 -11
  115. package/dist/src/server/type-signature.js.map +1 -1
  116. package/dist/src/types/package-json.d.ts +14 -0
  117. package/dist/src/types/package-json.d.ts.map +1 -1
  118. package/dist/src/utils/fs-utils.d.ts +3 -0
  119. package/dist/src/utils/fs-utils.d.ts.map +1 -0
  120. package/dist/src/utils/fs-utils.js +19 -0
  121. package/dist/src/utils/fs-utils.js.map +1 -0
  122. package/dist/typespec.tmLanguage +0 -342
  123. package/package.json +3 -3
  124. package/dist/src/core/helpers/projected-names-utils.d.ts +0 -20
  125. package/dist/src/core/helpers/projected-names-utils.d.ts.map +0 -1
  126. package/dist/src/core/helpers/projected-names-utils.js +0 -42
  127. package/dist/src/core/helpers/projected-names-utils.js.map +0 -1
  128. package/dist/src/core/install.d.ts +0 -3
  129. package/dist/src/core/install.d.ts.map +0 -1
  130. package/dist/src/core/install.js +0 -60
  131. package/dist/src/core/install.js.map +0 -1
  132. package/dist/src/core/projected-program.d.ts +0 -3
  133. package/dist/src/core/projected-program.d.ts.map +0 -1
  134. package/dist/src/core/projected-program.js +0 -4
  135. package/dist/src/core/projected-program.js.map +0 -1
  136. package/dist/src/core/projection-members.d.ts +0 -8
  137. package/dist/src/core/projection-members.d.ts.map +0 -1
  138. package/dist/src/core/projection-members.js +0 -382
  139. package/dist/src/core/projection-members.js.map +0 -1
  140. package/dist/src/core/projector.d.ts +0 -26
  141. package/dist/src/core/projector.d.ts.map +0 -1
  142. package/dist/src/core/projector.js +0 -572
  143. package/dist/src/core/projector.js.map +0 -1
@@ -30,16 +30,6 @@ export interface BaseType {
30
30
  kind: string;
31
31
  node?: Node;
32
32
  instantiationParameters?: Type[];
33
- /** @deprecated */
34
- get projections(): ProjectionStatementNode[];
35
- /** @deprecated */
36
- projectionsByName(name: string): ProjectionStatementNode[];
37
- /** @deprecated */
38
- projectionSource?: Type;
39
- /** @deprecated */
40
- projectionBase?: Type;
41
- /** @deprecated */
42
- projector?: Projector;
43
33
  /**
44
34
  * Reflect if a type has been finished(Decorators have been called).
45
35
  * There is multiple reasons a type might not be finished:
@@ -72,37 +62,16 @@ export interface TemplatedTypeBase {
72
62
  * - Value Constraints
73
63
  */
74
64
  export type Entity = Type | Value | MixedParameterConstraint | IndeterminateEntity;
75
- export type Type = BooleanLiteral | Decorator | Enum | EnumMember | FunctionParameter | FunctionType | Interface | IntrinsicType | Model | ModelProperty | Namespace | NumericLiteral | ObjectType | Operation | Projection | Scalar | ScalarConstructor | StringLiteral | StringTemplate | StringTemplateSpan | TemplateParameter | Tuple | Union | UnionVariant;
65
+ export type Type = BooleanLiteral | Decorator | Enum | EnumMember | FunctionParameter | Interface | IntrinsicType | Model | ModelProperty | Namespace | NumericLiteral | Operation | Scalar | ScalarConstructor | StringLiteral | StringTemplate | StringTemplateSpan | TemplateParameter | Tuple | Union | UnionVariant;
76
66
  export type StdTypes = {
77
67
  Array: Model;
78
68
  Record: Model;
79
69
  } & Record<IntrinsicScalarName, Scalar>;
80
70
  export type StdTypeName = keyof StdTypes;
81
- export type TypeOrReturnRecord = Type | ReturnRecord;
82
71
  export interface ObjectType extends BaseType {
83
72
  kind: "Object";
84
73
  properties: Record<string, Type>;
85
74
  }
86
- export interface Projection extends BaseType {
87
- kind: "Projection";
88
- node: undefined;
89
- nodeByKind: Map<string, ProjectionStatementNode>;
90
- nodeByType: Map<Type, ProjectionStatementNode>;
91
- }
92
- export interface ProjectionApplication {
93
- scope?: Type;
94
- projectionName: string;
95
- arguments: DecoratorArgumentValue[];
96
- direction?: "from" | "to";
97
- }
98
- export interface Projector {
99
- parentProjector?: Projector;
100
- projections: ProjectionApplication[];
101
- projectedTypes: Map<Type, Type>;
102
- projectType(type: Type | Value): Type | Value;
103
- projectedStartNode?: Type;
104
- projectedGlobalNamespace?: Namespace;
105
- }
106
75
  export interface MixedParameterConstraint {
107
76
  readonly entityKind: "MixedParameterConstraint";
108
77
  readonly node?: UnionExpressionNode | Expression;
@@ -135,10 +104,6 @@ export interface UnknownType extends IntrinsicType {
135
104
  export interface NullType extends IntrinsicType {
136
105
  name: "null";
137
106
  }
138
- export interface ReturnRecord {
139
- kind: "Return";
140
- value: Type;
141
- }
142
107
  export type IntrinsicScalarName = "bytes" | "numeric" | "integer" | "float" | "int64" | "int32" | "int16" | "int8" | "uint64" | "uint32" | "uint16" | "uint8" | "safeint" | "float32" | "float64" | "decimal" | "decimal128" | "string" | "plainDate" | "plainTime" | "utcDateTime" | "offsetDateTime" | "duration" | "boolean" | "url";
143
108
  /**
144
109
  * Valid keys when looking up meta members for a particular type.
@@ -176,7 +141,7 @@ export interface RecordModelType extends Model {
176
141
  export interface Model extends BaseType, DecoratedType, TemplatedTypeBase {
177
142
  kind: "Model";
178
143
  name: string;
179
- node?: ModelStatementNode | ModelExpressionNode | IntersectionExpressionNode | ProjectionModelExpressionNode | ObjectLiteralNode;
144
+ node?: ModelStatementNode | ModelExpressionNode | IntersectionExpressionNode | ObjectLiteralNode;
180
145
  namespace?: Namespace;
181
146
  indexer?: ModelIndexer;
182
147
  /**
@@ -222,7 +187,7 @@ export interface SourceModel {
222
187
  }
223
188
  export interface ModelProperty extends BaseType, DecoratedType {
224
189
  kind: "ModelProperty";
225
- node: ModelPropertyNode | ModelSpreadPropertyNode | ProjectionModelPropertyNode | ProjectionModelSpreadPropertyNode | ObjectLiteralPropertyNode;
190
+ node: ModelPropertyNode | ModelSpreadPropertyNode | ObjectLiteralPropertyNode;
226
191
  name: string;
227
192
  type: Type;
228
193
  sourceProperty?: ModelProperty;
@@ -430,12 +395,6 @@ export interface Namespace extends BaseType, DecoratedType {
430
395
  * Order is implementation-defined and may change.
431
396
  */
432
397
  decoratorDeclarations: Map<string, Decorator>;
433
- /**
434
- * The functions declared in the namespace.
435
- *
436
- * Order is implementation-defined and may change.
437
- */
438
- functionDeclarations: Map<string, FunctionType>;
439
398
  }
440
399
  export type LiteralType = StringLiteral | NumericLiteral | BooleanLiteral;
441
400
  export interface StringLiteral extends BaseType {
@@ -515,15 +474,6 @@ export interface Decorator extends BaseType {
515
474
  parameters: MixedFunctionParameter[];
516
475
  implementation: (...args: unknown[]) => void;
517
476
  }
518
- export interface FunctionType extends BaseType {
519
- kind: "Function";
520
- node?: FunctionDeclarationStatementNode;
521
- namespace?: Namespace;
522
- name: string;
523
- parameters: MixedFunctionParameter[];
524
- returnType: Type;
525
- implementation: (...args: unknown[]) => unknown;
526
- }
527
477
  export interface FunctionParameterBase extends BaseType {
528
478
  kind: "FunctionParameter";
529
479
  node: FunctionParameterNode;
@@ -707,17 +657,15 @@ export declare const enum SymbolFlags {
707
657
  Union = 64,
708
658
  Alias = 128,
709
659
  Namespace = 256,
710
- Projection = 512,
711
- Decorator = 1024,
712
- TemplateParameter = 2048,
713
- ProjectionParameter = 4096,
714
- Function = 8192,
715
- FunctionParameter = 16384,
716
- Using = 32768,
717
- DuplicateUsing = 65536,
718
- SourceFile = 131072,
719
- Member = 262144,
720
- Const = 524288,
660
+ Decorator = 512,
661
+ TemplateParameter = 1024,
662
+ Function = 2048,
663
+ FunctionParameter = 4096,
664
+ Using = 8192,
665
+ DuplicateUsing = 16384,
666
+ SourceFile = 32768,
667
+ Member = 65536,
668
+ Const = 131072,
721
669
  /**
722
670
  * A symbol which represents a declaration. Such symbols will have at least
723
671
  * one entry in the `declarations[]` array referring to a node with an `id`.
@@ -731,7 +679,7 @@ export declare const enum SymbolFlags {
731
679
  * by this symbol is stored directly in the symbol.
732
680
  */
733
681
  LateBound = 4194304,
734
- ExportContainer = 131328,
682
+ ExportContainer = 33024,
735
683
  /**
736
684
  * Symbols whose members will be late bound (and stored on the type)
737
685
  */
@@ -808,61 +756,30 @@ export declare enum SyntaxKind {
808
756
  UnknownKeyword = 43,
809
757
  ValueOfExpression = 44,
810
758
  TypeReference = 45,
811
- ProjectionReference = 46,
812
- TemplateParameterDeclaration = 47,
813
- EmptyStatement = 48,
814
- InvalidStatement = 49,
815
- LineComment = 50,
816
- BlockComment = 51,
817
- Doc = 52,
818
- DocText = 53,
819
- DocParamTag = 54,
820
- DocPropTag = 55,
821
- DocReturnsTag = 56,
822
- DocErrorsTag = 57,
823
- DocTemplateTag = 58,
824
- DocUnknownTag = 59,
825
- Projection = 60,
826
- ProjectionParameterDeclaration = 61,
827
- ProjectionModelSelector = 62,
828
- ProjectionModelPropertySelector = 63,
829
- ProjectionScalarSelector = 64,
830
- ProjectionOperationSelector = 65,
831
- ProjectionUnionSelector = 66,
832
- ProjectionUnionVariantSelector = 67,
833
- ProjectionInterfaceSelector = 68,
834
- ProjectionEnumSelector = 69,
835
- ProjectionEnumMemberSelector = 70,
836
- ProjectionExpressionStatement = 71,
837
- ProjectionIfExpression = 72,
838
- ProjectionBlockExpression = 73,
839
- ProjectionMemberExpression = 74,
840
- ProjectionLogicalExpression = 75,
841
- ProjectionEqualityExpression = 76,
842
- ProjectionUnaryExpression = 77,
843
- ProjectionRelationalExpression = 78,
844
- ProjectionArithmeticExpression = 79,
845
- ProjectionCallExpression = 80,
846
- ProjectionLambdaExpression = 81,
847
- ProjectionLambdaParameterDeclaration = 82,
848
- ProjectionModelExpression = 83,
849
- ProjectionModelProperty = 84,
850
- ProjectionModelSpreadProperty = 85,
851
- ProjectionSpreadProperty = 86,
852
- ProjectionTupleExpression = 87,
853
- ProjectionStatement = 88,
854
- ProjectionDecoratorReferenceExpression = 89,
855
- Return = 90,
856
- JsNamespaceDeclaration = 91,
857
- TemplateArgument = 92,
858
- TypeOfExpression = 93,
859
- ObjectLiteral = 94,
860
- ObjectLiteralProperty = 95,
861
- ObjectLiteralSpreadProperty = 96,
862
- ArrayLiteral = 97,
863
- ConstStatement = 98,
864
- CallExpression = 99,
865
- ScalarConstructor = 100
759
+ TemplateParameterDeclaration = 46,
760
+ EmptyStatement = 47,
761
+ InvalidStatement = 48,
762
+ LineComment = 49,
763
+ BlockComment = 50,
764
+ Doc = 51,
765
+ DocText = 52,
766
+ DocParamTag = 53,
767
+ DocPropTag = 54,
768
+ DocReturnsTag = 55,
769
+ DocErrorsTag = 56,
770
+ DocTemplateTag = 57,
771
+ DocUnknownTag = 58,
772
+ Return = 59,
773
+ JsNamespaceDeclaration = 60,
774
+ TemplateArgument = 61,
775
+ TypeOfExpression = 62,
776
+ ObjectLiteral = 63,
777
+ ObjectLiteralProperty = 64,
778
+ ObjectLiteralSpreadProperty = 65,
779
+ ArrayLiteral = 66,
780
+ ConstStatement = 67,
781
+ CallExpression = 68,
782
+ ScalarConstructor = 69
866
783
  }
867
784
  export declare const enum NodeFlags {
868
785
  None = 0,
@@ -944,7 +861,7 @@ export interface PositionDetail {
944
861
  /** get the PositionDetail of positionAfterTrivia */
945
862
  readonly getPositionDetailAfterTrivia: () => PositionDetail;
946
863
  }
947
- export type Node = TypeSpecScriptNode | JsSourceFileNode | JsNamespaceDeclarationNode | TemplateArgumentNode | TemplateParameterDeclarationNode | ProjectionParameterDeclarationNode | ProjectionLambdaParameterDeclarationNode | ModelPropertyNode | UnionVariantNode | OperationStatementNode | OperationSignatureDeclarationNode | OperationSignatureReferenceNode | EnumMemberNode | EnumSpreadMemberNode | ModelSpreadPropertyNode | DecoratorExpressionNode | DirectiveExpressionNode | Statement | Expression | FunctionParameterNode | StringTemplateSpanNode | StringTemplateHeadNode | StringTemplateMiddleNode | StringTemplateTailNode | Modifier | DocNode | DocContent | DocTag | ProjectionStatementItem | ProjectionExpression | ProjectionModelSelectorNode | ProjectionModelPropertySelectorNode | ProjectionScalarSelectorNode | ProjectionInterfaceSelectorNode | ProjectionOperationSelectorNode | ProjectionEnumSelectorNode | ProjectionEnumMemberSelectorNode | ProjectionUnionSelectorNode | ProjectionUnionVariantSelectorNode | ProjectionModelPropertyNode | ProjectionModelSpreadPropertyNode | ProjectionStatementNode | ProjectionNode | ObjectLiteralNode | ObjectLiteralPropertyNode | ObjectLiteralSpreadPropertyNode | ScalarConstructorNode | ArrayLiteralNode;
864
+ export type Node = TypeSpecScriptNode | JsSourceFileNode | JsNamespaceDeclarationNode | TemplateArgumentNode | TemplateParameterDeclarationNode | ModelPropertyNode | UnionVariantNode | OperationStatementNode | OperationSignatureDeclarationNode | OperationSignatureReferenceNode | EnumMemberNode | EnumSpreadMemberNode | ModelSpreadPropertyNode | DecoratorExpressionNode | DirectiveExpressionNode | Statement | Expression | FunctionParameterNode | StringTemplateSpanNode | StringTemplateHeadNode | StringTemplateMiddleNode | StringTemplateTailNode | Modifier | DocNode | DocContent | DocTag | ReferenceExpression | ObjectLiteralNode | ObjectLiteralPropertyNode | ObjectLiteralSpreadPropertyNode | ScalarConstructorNode | ArrayLiteralNode;
948
865
  /**
949
866
  * Node that can be used as template
950
867
  */
@@ -987,12 +904,12 @@ export interface TypeSpecScriptNode extends DeclarationNode, BaseNode {
987
904
  readonly locals: SymbolTable;
988
905
  readonly parseOptions: ParseOptions;
989
906
  }
990
- export type Statement = ImportStatementNode | ModelStatementNode | ScalarStatementNode | NamespaceStatementNode | InterfaceStatementNode | UnionStatementNode | UsingStatementNode | EnumStatementNode | AliasStatementNode | OperationStatementNode | DecoratorDeclarationStatementNode | FunctionDeclarationStatementNode | AugmentDecoratorStatementNode | ConstStatementNode | CallExpressionNode | EmptyStatementNode | InvalidStatementNode | ProjectionStatementNode;
907
+ export type Statement = ImportStatementNode | ModelStatementNode | ScalarStatementNode | NamespaceStatementNode | InterfaceStatementNode | UnionStatementNode | UsingStatementNode | EnumStatementNode | AliasStatementNode | OperationStatementNode | DecoratorDeclarationStatementNode | FunctionDeclarationStatementNode | AugmentDecoratorStatementNode | ConstStatementNode | CallExpressionNode | EmptyStatementNode | InvalidStatementNode;
991
908
  export interface DeclarationNode {
992
909
  readonly id: IdentifierNode;
993
910
  }
994
- export type Declaration = ModelStatementNode | ScalarStatementNode | InterfaceStatementNode | UnionStatementNode | NamespaceStatementNode | OperationStatementNode | TemplateParameterDeclarationNode | ProjectionStatementNode | ProjectionParameterDeclarationNode | ProjectionLambdaParameterDeclarationNode | EnumStatementNode | AliasStatementNode | ConstStatementNode | DecoratorDeclarationStatementNode | FunctionDeclarationStatementNode;
995
- export type ScopeNode = NamespaceStatementNode | ModelStatementNode | InterfaceStatementNode | AliasStatementNode | TypeSpecScriptNode | JsSourceFileNode | ProjectionLambdaExpressionNode | ProjectionNode;
911
+ export type Declaration = ModelStatementNode | ScalarStatementNode | InterfaceStatementNode | UnionStatementNode | NamespaceStatementNode | OperationStatementNode | TemplateParameterDeclarationNode | EnumStatementNode | AliasStatementNode | ConstStatementNode | DecoratorDeclarationStatementNode | FunctionDeclarationStatementNode;
912
+ export type ScopeNode = NamespaceStatementNode | ModelStatementNode | InterfaceStatementNode | AliasStatementNode | TypeSpecScriptNode | JsSourceFileNode;
996
913
  export interface ImportStatementNode extends BaseNode {
997
914
  readonly kind: SyntaxKind.ImportStatement;
998
915
  readonly path: StringLiteralNode;
@@ -1021,7 +938,6 @@ export interface DirectiveExpressionNode extends BaseNode {
1021
938
  }
1022
939
  export type DirectiveArgument = StringLiteralNode | IdentifierNode;
1023
940
  export type Expression = ArrayExpressionNode | MemberExpressionNode | ModelExpressionNode | ObjectLiteralNode | ArrayLiteralNode | TupleExpressionNode | UnionExpressionNode | IntersectionExpressionNode | TypeReferenceNode | ValueOfExpressionNode | TypeOfExpressionNode | CallExpressionNode | StringLiteralNode | NumericLiteralNode | BooleanLiteralNode | StringTemplateExpressionNode | VoidKeywordNode | NeverKeywordNode | AnyKeywordNode;
1024
- export type ProjectionExpression = ProjectionLogicalExpressionNode | ProjectionRelationalExpressionNode | ProjectionEqualityExpressionNode | ProjectionUnaryExpressionNode | ProjectionArithmeticExpressionNode | ProjectionCallExpressionNode | ProjectionMemberExpressionNode | ProjectionDecoratorReferenceExpressionNode | ProjectionTupleExpressionNode | ProjectionModelExpressionNode | ProjectionIfExpressionNode | ProjectionBlockExpressionNode | ProjectionLambdaExpressionNode | StringLiteralNode | NumericLiteralNode | BooleanLiteralNode | IdentifierNode | VoidKeywordNode | NeverKeywordNode | AnyKeywordNode | ReturnExpressionNode;
1025
941
  export type ReferenceExpression = TypeReferenceNode | MemberExpressionNode | IdentifierNode | VoidKeywordNode | NeverKeywordNode;
1026
942
  export interface MemberExpressionNode extends BaseNode {
1027
943
  readonly kind: SyntaxKind.MemberExpression;
@@ -1236,10 +1152,6 @@ export interface NeverKeywordNode extends BaseNode {
1236
1152
  export interface AnyKeywordNode extends BaseNode {
1237
1153
  readonly kind: SyntaxKind.UnknownKeyword;
1238
1154
  }
1239
- export interface ReturnExpressionNode extends BaseNode {
1240
- readonly kind: SyntaxKind.Return;
1241
- readonly value: ProjectionExpression;
1242
- }
1243
1155
  export interface UnionExpressionNode extends BaseNode {
1244
1156
  readonly kind: SyntaxKind.UnionExpression;
1245
1157
  readonly options: readonly Expression[];
@@ -1266,11 +1178,6 @@ export interface TemplateArgumentNode extends BaseNode {
1266
1178
  readonly name?: IdentifierNode;
1267
1179
  readonly argument: Expression;
1268
1180
  }
1269
- export interface ProjectionReferenceNode extends BaseNode {
1270
- readonly kind: SyntaxKind.ProjectionReference;
1271
- readonly target: MemberExpressionNode | IdentifierNode;
1272
- readonly arguments: readonly Expression[];
1273
- }
1274
1181
  export interface TemplateParameterDeclarationNode extends DeclarationNode, BaseNode {
1275
1182
  readonly kind: SyntaxKind.TemplateParameterDeclaration;
1276
1183
  readonly constraint?: Expression;
@@ -1331,146 +1238,6 @@ export interface FunctionDeclarationStatementNode extends BaseNode, DeclarationN
1331
1238
  readonly returnType?: Expression;
1332
1239
  readonly parent?: TypeSpecScriptNode | NamespaceStatementNode;
1333
1240
  }
1334
- export interface ProjectionModelSelectorNode extends BaseNode {
1335
- readonly kind: SyntaxKind.ProjectionModelSelector;
1336
- }
1337
- export interface ProjectionScalarSelectorNode extends BaseNode {
1338
- readonly kind: SyntaxKind.ProjectionScalarSelector;
1339
- }
1340
- export interface ProjectionModelPropertySelectorNode extends BaseNode {
1341
- readonly kind: SyntaxKind.ProjectionModelPropertySelector;
1342
- }
1343
- export interface ProjectionInterfaceSelectorNode extends BaseNode {
1344
- readonly kind: SyntaxKind.ProjectionInterfaceSelector;
1345
- }
1346
- export interface ProjectionOperationSelectorNode extends BaseNode {
1347
- readonly kind: SyntaxKind.ProjectionOperationSelector;
1348
- }
1349
- export interface ProjectionUnionSelectorNode extends BaseNode {
1350
- readonly kind: SyntaxKind.ProjectionUnionSelector;
1351
- }
1352
- export interface ProjectionUnionVariantSelectorNode extends BaseNode {
1353
- readonly kind: SyntaxKind.ProjectionUnionVariantSelector;
1354
- }
1355
- export interface ProjectionEnumSelectorNode extends BaseNode {
1356
- readonly kind: SyntaxKind.ProjectionEnumSelector;
1357
- }
1358
- export interface ProjectionEnumMemberSelectorNode extends BaseNode {
1359
- readonly kind: SyntaxKind.ProjectionEnumMemberSelector;
1360
- }
1361
- export type ProjectionStatementItem = ProjectionExpressionStatementNode;
1362
- export interface ProjectionParameterDeclarationNode extends DeclarationNode, BaseNode {
1363
- readonly kind: SyntaxKind.ProjectionParameterDeclaration;
1364
- }
1365
- export interface ProjectionExpressionStatementNode extends BaseNode {
1366
- readonly kind: SyntaxKind.ProjectionExpressionStatement;
1367
- readonly expr: ProjectionExpression;
1368
- }
1369
- export interface ProjectionLogicalExpressionNode extends BaseNode {
1370
- readonly kind: SyntaxKind.ProjectionLogicalExpression;
1371
- readonly op: "||" | "&&";
1372
- readonly left: ProjectionExpression;
1373
- readonly right: ProjectionExpression;
1374
- }
1375
- export interface ProjectionRelationalExpressionNode extends BaseNode {
1376
- readonly kind: SyntaxKind.ProjectionRelationalExpression;
1377
- readonly op: "<=" | "<" | ">" | ">=";
1378
- readonly left: ProjectionExpression;
1379
- readonly right: ProjectionExpression;
1380
- }
1381
- export interface ProjectionEqualityExpressionNode extends BaseNode {
1382
- readonly kind: SyntaxKind.ProjectionEqualityExpression;
1383
- readonly op: "==" | "!=";
1384
- readonly left: ProjectionExpression;
1385
- readonly right: ProjectionExpression;
1386
- }
1387
- export interface ProjectionArithmeticExpressionNode extends BaseNode {
1388
- readonly kind: SyntaxKind.ProjectionArithmeticExpression;
1389
- readonly op: "+" | "-" | "*" | "/";
1390
- readonly left: ProjectionExpression;
1391
- readonly right: ProjectionExpression;
1392
- }
1393
- export interface ProjectionUnaryExpressionNode extends BaseNode {
1394
- readonly kind: SyntaxKind.ProjectionUnaryExpression;
1395
- readonly op: "!";
1396
- readonly target: ProjectionExpression;
1397
- }
1398
- export interface ProjectionCallExpressionNode extends BaseNode {
1399
- readonly kind: SyntaxKind.ProjectionCallExpression;
1400
- readonly callKind: "method" | "template";
1401
- readonly target: ProjectionExpression;
1402
- readonly arguments: ProjectionExpression[];
1403
- }
1404
- export interface ProjectionMemberExpressionNode extends BaseNode {
1405
- readonly kind: SyntaxKind.ProjectionMemberExpression;
1406
- readonly base: ProjectionExpression;
1407
- readonly id: IdentifierNode;
1408
- readonly selector: "." | "::";
1409
- }
1410
- export interface ProjectionModelExpressionNode extends BaseNode {
1411
- readonly kind: SyntaxKind.ProjectionModelExpression;
1412
- readonly properties: (ProjectionModelPropertyNode | ProjectionModelSpreadPropertyNode)[];
1413
- }
1414
- export interface ProjectionTupleExpressionNode extends BaseNode {
1415
- readonly kind: SyntaxKind.ProjectionTupleExpression;
1416
- readonly values: ProjectionExpression[];
1417
- }
1418
- export interface ProjectionModelPropertyNode extends BaseNode {
1419
- readonly kind: SyntaxKind.ProjectionModelProperty;
1420
- readonly id: IdentifierNode;
1421
- readonly value: ProjectionExpression;
1422
- readonly decorators: readonly DecoratorExpressionNode[];
1423
- readonly optional: boolean;
1424
- readonly default?: ProjectionExpression;
1425
- }
1426
- export interface ProjectionModelSpreadPropertyNode extends BaseNode {
1427
- readonly kind: SyntaxKind.ProjectionModelSpreadProperty;
1428
- readonly target: ProjectionExpression;
1429
- }
1430
- export interface ProjectionIfExpressionNode extends BaseNode {
1431
- readonly kind: SyntaxKind.ProjectionIfExpression;
1432
- readonly test: ProjectionExpression;
1433
- readonly consequent: ProjectionBlockExpressionNode;
1434
- readonly alternate?: ProjectionBlockExpressionNode | ProjectionIfExpressionNode;
1435
- }
1436
- export interface ProjectionBlockExpressionNode extends BaseNode {
1437
- readonly kind: SyntaxKind.ProjectionBlockExpression;
1438
- readonly statements: ProjectionStatementItem[];
1439
- }
1440
- export interface ProjectionLambdaExpressionNode extends BaseNode {
1441
- readonly kind: SyntaxKind.ProjectionLambdaExpression;
1442
- readonly parameters: readonly ProjectionLambdaParameterDeclarationNode[];
1443
- readonly locals?: SymbolTable;
1444
- readonly body: ProjectionBlockExpressionNode;
1445
- }
1446
- export interface ProjectionLambdaParameterDeclarationNode extends DeclarationNode, BaseNode {
1447
- readonly kind: SyntaxKind.ProjectionLambdaParameterDeclaration;
1448
- }
1449
- export interface ProjectionNode extends BaseNode {
1450
- readonly kind: SyntaxKind.Projection;
1451
- readonly direction: "to" | "from" | "pre_to" | "pre_from" | "<error>";
1452
- readonly directionId: IdentifierNode;
1453
- readonly modifierIds: readonly IdentifierNode[];
1454
- readonly parameters: ProjectionParameterDeclarationNode[];
1455
- readonly body: readonly ProjectionStatementItem[];
1456
- readonly locals?: SymbolTable;
1457
- }
1458
- /** @deprecated */
1459
- export interface ProjectionStatementNode extends BaseNode, DeclarationNode {
1460
- readonly kind: SyntaxKind.ProjectionStatement;
1461
- readonly selector: ProjectionModelSelectorNode | ProjectionModelPropertySelectorNode | ProjectionScalarSelectorNode | ProjectionInterfaceSelectorNode | ProjectionOperationSelectorNode | ProjectionUnionSelectorNode | ProjectionUnionVariantSelectorNode | ProjectionEnumSelectorNode | ProjectionEnumMemberSelectorNode | MemberExpressionNode | IdentifierNode;
1462
- readonly to?: ProjectionNode;
1463
- readonly from?: ProjectionNode;
1464
- readonly preTo?: ProjectionNode;
1465
- readonly preFrom?: ProjectionNode;
1466
- readonly projections: readonly ProjectionNode[];
1467
- readonly parent?: TypeSpecScriptNode | NamespaceStatementNode;
1468
- }
1469
- /** @deprecated */
1470
- export interface ProjectionDecoratorReferenceExpressionNode extends BaseNode {
1471
- readonly kind: SyntaxKind.ProjectionDecoratorReferenceExpression;
1472
- readonly target: MemberExpressionNode | IdentifierNode;
1473
- }
1474
1241
  export interface IdentifierContext {
1475
1242
  kind: IdentifierKind;
1476
1243
  node: Node;