@rightcapital/phpdoc-parser 0.3.2 → 0.3.3-feature-add-basic-ci.8.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.
Files changed (157) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.js +3 -2
  3. package/dist/phpdoc-parser/ast/abstract-node-visitor.js +0 -1
  4. package/dist/phpdoc-parser/ast/base-node.js +0 -1
  5. package/dist/phpdoc-parser/ast/const-expr/const-expr-array-item-node.js +1 -2
  6. package/dist/phpdoc-parser/ast/const-expr/const-expr-array-node.js +0 -1
  7. package/dist/phpdoc-parser/ast/const-expr/const-expr-false-node.js +0 -1
  8. package/dist/phpdoc-parser/ast/const-expr/const-expr-float-node.js +0 -1
  9. package/dist/phpdoc-parser/ast/const-expr/const-expr-integer-node.js +0 -1
  10. package/dist/phpdoc-parser/ast/const-expr/const-expr-node.js +0 -1
  11. package/dist/phpdoc-parser/ast/const-expr/const-expr-null-node.js +0 -1
  12. package/dist/phpdoc-parser/ast/const-expr/const-expr-string-node.js +0 -1
  13. package/dist/phpdoc-parser/ast/const-expr/const-expr-true-node.js +0 -1
  14. package/dist/phpdoc-parser/ast/const-expr/const-fetch-node.js +0 -1
  15. package/dist/phpdoc-parser/ast/const-expr/quote-aware-const-expr-string-node.js +0 -1
  16. package/dist/phpdoc-parser/ast/node-traverser.js +18 -2
  17. package/dist/phpdoc-parser/ast/node-visitor/cloning-visitor.js +0 -1
  18. package/dist/phpdoc-parser/ast/node-visitor.js +0 -1
  19. package/dist/phpdoc-parser/ast/node.js +0 -1
  20. package/dist/phpdoc-parser/ast/php-doc/assert-tag-method-value-node.js +1 -2
  21. package/dist/phpdoc-parser/ast/php-doc/assert-tag-property-value-node.js +1 -2
  22. package/dist/phpdoc-parser/ast/php-doc/assert-tag-value-node.js +1 -2
  23. package/dist/phpdoc-parser/ast/php-doc/deprecated-tag-value-node.js +0 -1
  24. package/dist/phpdoc-parser/ast/php-doc/extends-tag-value-node.js +1 -2
  25. package/dist/phpdoc-parser/ast/php-doc/generic-tag-value-node.js +0 -1
  26. package/dist/phpdoc-parser/ast/php-doc/implements-tag-value-node.js +1 -2
  27. package/dist/phpdoc-parser/ast/php-doc/invalid-tag-value-node.js +0 -1
  28. package/dist/phpdoc-parser/ast/php-doc/method-tag-value-node.js +1 -2
  29. package/dist/phpdoc-parser/ast/php-doc/method-tag-value-parameter-node.js +4 -3
  30. package/dist/phpdoc-parser/ast/php-doc/mixin-tag-value-node.js +1 -2
  31. package/dist/phpdoc-parser/ast/php-doc/param-out-tag-value-node.js +1 -2
  32. package/dist/phpdoc-parser/ast/php-doc/param-tag-value-node.js +0 -1
  33. package/dist/phpdoc-parser/ast/php-doc/php-doc-child-node.js +0 -1
  34. package/dist/phpdoc-parser/ast/php-doc/php-doc-node.js +0 -1
  35. package/dist/phpdoc-parser/ast/php-doc/php-doc-tag-node.js +1 -2
  36. package/dist/phpdoc-parser/ast/php-doc/php-doc-tag-value-node.js +0 -1
  37. package/dist/phpdoc-parser/ast/php-doc/php-doc-text-node.js +0 -1
  38. package/dist/phpdoc-parser/ast/php-doc/property-tag-value-node.js +1 -2
  39. package/dist/phpdoc-parser/ast/php-doc/return-tag-value-node.js +1 -2
  40. package/dist/phpdoc-parser/ast/php-doc/self-out-tag-value-node.js +1 -2
  41. package/dist/phpdoc-parser/ast/php-doc/template-tag-value-node.js +4 -3
  42. package/dist/phpdoc-parser/ast/php-doc/throws-tag-value-node.js +1 -2
  43. package/dist/phpdoc-parser/ast/php-doc/type-alias-import-tag-value-node.js +2 -2
  44. package/dist/phpdoc-parser/ast/php-doc/type-alias-tag-value-node.js +1 -2
  45. package/dist/phpdoc-parser/ast/php-doc/typeless-param-tag-value-node.js +0 -1
  46. package/dist/phpdoc-parser/ast/php-doc/uses-tag-value-node.js +1 -2
  47. package/dist/phpdoc-parser/ast/php-doc/var-tag-value-node.js +1 -2
  48. package/dist/phpdoc-parser/ast/type/array-shape-item-node.js +0 -1
  49. package/dist/phpdoc-parser/ast/type/array-shape-node.js +0 -1
  50. package/dist/phpdoc-parser/ast/type/array-type-node.js +0 -1
  51. package/dist/phpdoc-parser/ast/type/callable-type-node.js +2 -3
  52. package/dist/phpdoc-parser/ast/type/callable-type-parameter-node.js +1 -2
  53. package/dist/phpdoc-parser/ast/type/conditional-type-for-parameter-node.js +1 -2
  54. package/dist/phpdoc-parser/ast/type/conditional-type-node.js +1 -2
  55. package/dist/phpdoc-parser/ast/type/const-type-node.js +0 -1
  56. package/dist/phpdoc-parser/ast/type/generic-type-node.js +2 -3
  57. package/dist/phpdoc-parser/ast/type/identifier-type-node.js +0 -1
  58. package/dist/phpdoc-parser/ast/type/intersection-type-node.js +0 -1
  59. package/dist/phpdoc-parser/ast/type/invalid-type-node.js +0 -1
  60. package/dist/phpdoc-parser/ast/type/nullable-type-node.js +1 -2
  61. package/dist/phpdoc-parser/ast/type/object-shape-item-node.js +1 -2
  62. package/dist/phpdoc-parser/ast/type/object-shape-node.js +0 -1
  63. package/dist/phpdoc-parser/ast/type/offset-access-type-node.js +2 -3
  64. package/dist/phpdoc-parser/ast/type/this-type-node.js +0 -1
  65. package/dist/phpdoc-parser/ast/type/type-node.js +0 -1
  66. package/dist/phpdoc-parser/ast/type/union-type-node.js +0 -1
  67. package/dist/phpdoc-parser/ast/types.js +0 -1
  68. package/dist/phpdoc-parser/lexer/lexer.js +0 -1
  69. package/dist/phpdoc-parser/parser/const-expr-parser.js +0 -1
  70. package/dist/phpdoc-parser/parser/node-collecting-visitor.js +0 -1
  71. package/dist/phpdoc-parser/parser/parser-exception.js +0 -1
  72. package/dist/phpdoc-parser/parser/php-doc-parser.d.ts +3 -1
  73. package/dist/phpdoc-parser/parser/php-doc-parser.js +72 -37
  74. package/dist/phpdoc-parser/parser/string-unescaper.js +0 -1
  75. package/dist/phpdoc-parser/parser/token-iterator.js +0 -1
  76. package/dist/phpdoc-parser/parser/type-parser.js +4 -5
  77. package/dist/phpdoc-parser/printer/diff-elem.d.ts +12 -0
  78. package/dist/phpdoc-parser/printer/diff-elem.js +19 -0
  79. package/dist/phpdoc-parser/printer/differ.d.ts +10 -0
  80. package/dist/phpdoc-parser/printer/differ.js +111 -0
  81. package/dist/phpdoc-parser/printer/printer.d.ts +20 -0
  82. package/dist/phpdoc-parser/printer/printer.js +612 -0
  83. package/package.json +11 -11
  84. package/dist/index.js.map +0 -1
  85. package/dist/phpdoc-parser/ast/abstract-node-visitor.js.map +0 -1
  86. package/dist/phpdoc-parser/ast/base-node.js.map +0 -1
  87. package/dist/phpdoc-parser/ast/const-expr/const-expr-array-item-node.js.map +0 -1
  88. package/dist/phpdoc-parser/ast/const-expr/const-expr-array-node.js.map +0 -1
  89. package/dist/phpdoc-parser/ast/const-expr/const-expr-false-node.js.map +0 -1
  90. package/dist/phpdoc-parser/ast/const-expr/const-expr-float-node.js.map +0 -1
  91. package/dist/phpdoc-parser/ast/const-expr/const-expr-integer-node.js.map +0 -1
  92. package/dist/phpdoc-parser/ast/const-expr/const-expr-node.js.map +0 -1
  93. package/dist/phpdoc-parser/ast/const-expr/const-expr-null-node.js.map +0 -1
  94. package/dist/phpdoc-parser/ast/const-expr/const-expr-string-node.js.map +0 -1
  95. package/dist/phpdoc-parser/ast/const-expr/const-expr-true-node.js.map +0 -1
  96. package/dist/phpdoc-parser/ast/const-expr/const-fetch-node.js.map +0 -1
  97. package/dist/phpdoc-parser/ast/const-expr/quote-aware-const-expr-string-node.js.map +0 -1
  98. package/dist/phpdoc-parser/ast/node-traverser.js.map +0 -1
  99. package/dist/phpdoc-parser/ast/node-visitor/cloning-visitor.js.map +0 -1
  100. package/dist/phpdoc-parser/ast/node-visitor.js.map +0 -1
  101. package/dist/phpdoc-parser/ast/node.js.map +0 -1
  102. package/dist/phpdoc-parser/ast/php-doc/assert-tag-method-value-node.js.map +0 -1
  103. package/dist/phpdoc-parser/ast/php-doc/assert-tag-property-value-node.js.map +0 -1
  104. package/dist/phpdoc-parser/ast/php-doc/assert-tag-value-node.js.map +0 -1
  105. package/dist/phpdoc-parser/ast/php-doc/deprecated-tag-value-node.js.map +0 -1
  106. package/dist/phpdoc-parser/ast/php-doc/extends-tag-value-node.js.map +0 -1
  107. package/dist/phpdoc-parser/ast/php-doc/generic-tag-value-node.js.map +0 -1
  108. package/dist/phpdoc-parser/ast/php-doc/implements-tag-value-node.js.map +0 -1
  109. package/dist/phpdoc-parser/ast/php-doc/invalid-tag-value-node.js.map +0 -1
  110. package/dist/phpdoc-parser/ast/php-doc/method-tag-value-node.js.map +0 -1
  111. package/dist/phpdoc-parser/ast/php-doc/method-tag-value-parameter-node.js.map +0 -1
  112. package/dist/phpdoc-parser/ast/php-doc/mixin-tag-value-node.js.map +0 -1
  113. package/dist/phpdoc-parser/ast/php-doc/param-out-tag-value-node.js.map +0 -1
  114. package/dist/phpdoc-parser/ast/php-doc/param-tag-value-node.js.map +0 -1
  115. package/dist/phpdoc-parser/ast/php-doc/php-doc-child-node.js.map +0 -1
  116. package/dist/phpdoc-parser/ast/php-doc/php-doc-node.js.map +0 -1
  117. package/dist/phpdoc-parser/ast/php-doc/php-doc-tag-node.js.map +0 -1
  118. package/dist/phpdoc-parser/ast/php-doc/php-doc-tag-value-node.js.map +0 -1
  119. package/dist/phpdoc-parser/ast/php-doc/php-doc-text-node.js.map +0 -1
  120. package/dist/phpdoc-parser/ast/php-doc/property-tag-value-node.js.map +0 -1
  121. package/dist/phpdoc-parser/ast/php-doc/return-tag-value-node.js.map +0 -1
  122. package/dist/phpdoc-parser/ast/php-doc/self-out-tag-value-node.js.map +0 -1
  123. package/dist/phpdoc-parser/ast/php-doc/template-tag-value-node.js.map +0 -1
  124. package/dist/phpdoc-parser/ast/php-doc/throws-tag-value-node.js.map +0 -1
  125. package/dist/phpdoc-parser/ast/php-doc/type-alias-import-tag-value-node.js.map +0 -1
  126. package/dist/phpdoc-parser/ast/php-doc/type-alias-tag-value-node.js.map +0 -1
  127. package/dist/phpdoc-parser/ast/php-doc/typeless-param-tag-value-node.js.map +0 -1
  128. package/dist/phpdoc-parser/ast/php-doc/uses-tag-value-node.js.map +0 -1
  129. package/dist/phpdoc-parser/ast/php-doc/var-tag-value-node.js.map +0 -1
  130. package/dist/phpdoc-parser/ast/type/array-shape-item-node.js.map +0 -1
  131. package/dist/phpdoc-parser/ast/type/array-shape-node.js.map +0 -1
  132. package/dist/phpdoc-parser/ast/type/array-type-node.js.map +0 -1
  133. package/dist/phpdoc-parser/ast/type/callable-type-node.js.map +0 -1
  134. package/dist/phpdoc-parser/ast/type/callable-type-parameter-node.js.map +0 -1
  135. package/dist/phpdoc-parser/ast/type/conditional-type-for-parameter-node.js.map +0 -1
  136. package/dist/phpdoc-parser/ast/type/conditional-type-node.js.map +0 -1
  137. package/dist/phpdoc-parser/ast/type/const-type-node.js.map +0 -1
  138. package/dist/phpdoc-parser/ast/type/generic-type-node.js.map +0 -1
  139. package/dist/phpdoc-parser/ast/type/identifier-type-node.js.map +0 -1
  140. package/dist/phpdoc-parser/ast/type/intersection-type-node.js.map +0 -1
  141. package/dist/phpdoc-parser/ast/type/invalid-type-node.js.map +0 -1
  142. package/dist/phpdoc-parser/ast/type/nullable-type-node.js.map +0 -1
  143. package/dist/phpdoc-parser/ast/type/object-shape-item-node.js.map +0 -1
  144. package/dist/phpdoc-parser/ast/type/object-shape-node.js.map +0 -1
  145. package/dist/phpdoc-parser/ast/type/offset-access-type-node.js.map +0 -1
  146. package/dist/phpdoc-parser/ast/type/this-type-node.js.map +0 -1
  147. package/dist/phpdoc-parser/ast/type/type-node.js.map +0 -1
  148. package/dist/phpdoc-parser/ast/type/union-type-node.js.map +0 -1
  149. package/dist/phpdoc-parser/ast/types.js.map +0 -1
  150. package/dist/phpdoc-parser/lexer/lexer.js.map +0 -1
  151. package/dist/phpdoc-parser/parser/const-expr-parser.js.map +0 -1
  152. package/dist/phpdoc-parser/parser/node-collecting-visitor.js.map +0 -1
  153. package/dist/phpdoc-parser/parser/parser-exception.js.map +0 -1
  154. package/dist/phpdoc-parser/parser/php-doc-parser.js.map +0 -1
  155. package/dist/phpdoc-parser/parser/string-unescaper.js.map +0 -1
  156. package/dist/phpdoc-parser/parser/token-iterator.js.map +0 -1
  157. package/dist/phpdoc-parser/parser/type-parser.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -70,3 +70,4 @@ export { MixinTagValueNode } from './phpdoc-parser/ast/php-doc/mixin-tag-value-n
70
70
  export { PhpDocTagNode } from './phpdoc-parser/ast/php-doc/php-doc-tag-node';
71
71
  export { PhpDocTagValueNode } from './phpdoc-parser/ast/php-doc/php-doc-tag-value-node';
72
72
  export { ReturnTagValueNode } from './phpdoc-parser/ast/php-doc/return-tag-value-node';
73
+ export { Printer } from './phpdoc-parser/printer/printer';
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DeprecatedTagValueNode = exports.MethodTagValueNode = exports.InvalidTagValueNode = exports.UsesTagValueNode = exports.AssertTagValueNode = exports.PhpDocNode = exports.ParamOutTagValueNode = exports.ConstFetchNode = exports.ConstExprTrueNode = exports.ConstExprStringNode = exports.ConstExprArrayNode = exports.ConstExprNode = exports.ConstExprIntegerNode = exports.ConstExprNullNode = exports.QuoteAwareConstExprStringNode = exports.ConstExprFalseNode = exports.ConstExprArrayItemNode = exports.ConstExprFloatNode = exports.AbstractNodeVisitor = exports.NullableTypeNode = exports.ObjectShapeNode = exports.ConstTypeNode = exports.InvalidTypeNode = exports.ArrayShapeNode = exports.ArrayTypeNode = exports.CallableTypeNode = exports.GenericTypeNode = exports.TypeNode = exports.UnionTypeNode = exports.ObjectShapeItemNode = exports.IntersectionTypeNode = exports.ThisTypeNode = exports.ConditionalTypeForParameterNode = exports.ConditionalTypeNode = exports.ArrayShapeItemNode = exports.OffsetAccessTypeNode = exports.CallableTypeParameterNode = exports.IdentifierTypeNode = exports.Attribute = exports.NodeTraverserState = exports.CloningVisitor = exports.NodeTraverser = exports.BaseNode = exports.TypeParser = exports.PhpDocParser = exports.TokenIterator = exports.ParserException = exports.StringUnescaper = exports.ConstExprParser = exports.Lexer = void 0;
4
- exports.ReturnTagValueNode = exports.PhpDocTagValueNode = exports.PhpDocTagNode = exports.MixinTagValueNode = exports.PhpDocChildNode = exports.TypeAliasImportTagValueNode = exports.PropertyTagValueNode = exports.SelfOutTagValueNode = exports.ThrowsTagValueNode = exports.ImplementsTagValueNode = exports.TemplateTagValueNode = exports.AssertTagMethodValueNode = exports.MethodTagValueParameterNode = exports.PhpDocTextNode = exports.VarTagValueNode = exports.TypelessParamTagValueNode = exports.AssertTagPropertyValueNode = exports.TypeAliasTagValueNode = exports.GenericTagValueNode = exports.ParamTagValueNode = exports.ExtendsTagValueNode = void 0;
4
+ exports.Printer = exports.ReturnTagValueNode = exports.PhpDocTagValueNode = exports.PhpDocTagNode = exports.MixinTagValueNode = exports.PhpDocChildNode = exports.TypeAliasImportTagValueNode = exports.PropertyTagValueNode = exports.SelfOutTagValueNode = exports.ThrowsTagValueNode = exports.ImplementsTagValueNode = exports.TemplateTagValueNode = exports.AssertTagMethodValueNode = exports.MethodTagValueParameterNode = exports.PhpDocTextNode = exports.VarTagValueNode = exports.TypelessParamTagValueNode = exports.AssertTagPropertyValueNode = exports.TypeAliasTagValueNode = exports.GenericTagValueNode = exports.ParamTagValueNode = exports.ExtendsTagValueNode = void 0;
5
5
  var lexer_1 = require("./phpdoc-parser/lexer/lexer");
6
6
  Object.defineProperty(exports, "Lexer", { enumerable: true, get: function () { return lexer_1.Lexer; } });
7
7
  var const_expr_parser_1 = require("./phpdoc-parser/parser/const-expr-parser");
@@ -143,4 +143,5 @@ var php_doc_tag_value_node_1 = require("./phpdoc-parser/ast/php-doc/php-doc-tag-
143
143
  Object.defineProperty(exports, "PhpDocTagValueNode", { enumerable: true, get: function () { return php_doc_tag_value_node_1.PhpDocTagValueNode; } });
144
144
  var return_tag_value_node_1 = require("./phpdoc-parser/ast/php-doc/return-tag-value-node");
145
145
  Object.defineProperty(exports, "ReturnTagValueNode", { enumerable: true, get: function () { return return_tag_value_node_1.ReturnTagValueNode; } });
146
- //# sourceMappingURL=index.js.map
146
+ var printer_1 = require("./phpdoc-parser/printer/printer");
147
+ Object.defineProperty(exports, "Printer", { enumerable: true, get: function () { return printer_1.Printer; } });
@@ -16,4 +16,3 @@ class AbstractNodeVisitor {
16
16
  }
17
17
  }
18
18
  exports.AbstractNodeVisitor = AbstractNodeVisitor;
19
- //# sourceMappingURL=abstract-node-visitor.js.map
@@ -25,4 +25,3 @@ class BaseNode {
25
25
  }
26
26
  }
27
27
  exports.BaseNode = BaseNode;
28
- //# sourceMappingURL=base-node.js.map
@@ -10,7 +10,7 @@ class ConstExprArrayItemNode extends const_expr_node_1.ConstExprNode {
10
10
  }
11
11
  toString() {
12
12
  if (this.key !== null) {
13
- return `${this.key} => ${this.value}`;
13
+ return `${this.key.toString()} => ${this.value.toString()}`;
14
14
  }
15
15
  return this.value.toString();
16
16
  }
@@ -19,4 +19,3 @@ class ConstExprArrayItemNode extends const_expr_node_1.ConstExprNode {
19
19
  }
20
20
  }
21
21
  exports.ConstExprArrayItemNode = ConstExprArrayItemNode;
22
- //# sourceMappingURL=const-expr-array-item-node.js.map
@@ -15,4 +15,3 @@ class ConstExprArrayNode extends const_expr_node_1.ConstExprNode {
15
15
  }
16
16
  }
17
17
  exports.ConstExprArrayNode = ConstExprArrayNode;
18
- //# sourceMappingURL=const-expr-array-node.js.map
@@ -11,4 +11,3 @@ class ConstExprFalseNode extends const_expr_node_1.ConstExprNode {
11
11
  }
12
12
  }
13
13
  exports.ConstExprFalseNode = ConstExprFalseNode;
14
- //# sourceMappingURL=const-expr-false-node.js.map
@@ -15,4 +15,3 @@ class ConstExprFloatNode extends const_expr_node_1.ConstExprNode {
15
15
  }
16
16
  }
17
17
  exports.ConstExprFloatNode = ConstExprFloatNode;
18
- //# sourceMappingURL=const-expr-float-node.js.map
@@ -15,4 +15,3 @@ class ConstExprIntegerNode extends const_expr_node_1.ConstExprNode {
15
15
  }
16
16
  }
17
17
  exports.ConstExprIntegerNode = ConstExprIntegerNode;
18
- //# sourceMappingURL=const-expr-integer-node.js.map
@@ -41,4 +41,3 @@ class ConstExprNode extends base_node_1.BaseNode {
41
41
  }
42
42
  }
43
43
  exports.ConstExprNode = ConstExprNode;
44
- //# sourceMappingURL=const-expr-node.js.map
@@ -11,4 +11,3 @@ class ConstExprNullNode extends const_expr_node_1.ConstExprNode {
11
11
  }
12
12
  }
13
13
  exports.ConstExprNullNode = ConstExprNullNode;
14
- //# sourceMappingURL=const-expr-null-node.js.map
@@ -15,4 +15,3 @@ class ConstExprStringNode extends const_expr_node_1.ConstExprNode {
15
15
  }
16
16
  }
17
17
  exports.ConstExprStringNode = ConstExprStringNode;
18
- //# sourceMappingURL=const-expr-string-node.js.map
@@ -11,4 +11,3 @@ class ConstExprTrueNode extends const_expr_node_1.ConstExprNode {
11
11
  }
12
12
  }
13
13
  exports.ConstExprTrueNode = ConstExprTrueNode;
14
- //# sourceMappingURL=const-expr-true-node.js.map
@@ -19,4 +19,3 @@ class ConstFetchNode extends const_expr_node_1.ConstExprNode {
19
19
  }
20
20
  }
21
21
  exports.ConstFetchNode = ConstFetchNode;
22
- //# sourceMappingURL=const-fetch-node.js.map
@@ -45,4 +45,3 @@ class QuoteAwareConstExprStringNode extends const_expr_string_node_1.ConstExprSt
45
45
  exports.QuoteAwareConstExprStringNode = QuoteAwareConstExprStringNode;
46
46
  QuoteAwareConstExprStringNode.SINGLE_QUOTED = 1;
47
47
  QuoteAwareConstExprStringNode.DOUBLE_QUOTED = 2;
48
- //# sourceMappingURL=quote-aware-const-expr-string-node.js.map
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodeTraverser = void 0;
4
4
  const base_node_1 = require("./base-node");
5
+ const const_expr_node_1 = require("./const-expr/const-expr-node");
6
+ const php_doc_child_node_1 = require("./php-doc/php-doc-child-node");
7
+ const php_doc_tag_value_node_1 = require("./php-doc/php-doc-tag-value-node");
8
+ const type_node_1 = require("./type/type-node");
5
9
  class NodeTraverser {
6
10
  constructor(visitors) {
7
11
  this.visitors = visitors;
@@ -193,8 +197,20 @@ class NodeTraverser {
193
197
  return nodes;
194
198
  }
195
199
  ensureReplacementReasonable(old, newNode) {
196
- console.log(old === newNode);
200
+ if (old instanceof type_node_1.TypeNode && !(newNode instanceof type_node_1.TypeNode)) {
201
+ throw new Error(`Trying to replace TypeNode with ${newNode.constructor.name}`);
202
+ }
203
+ if (old instanceof const_expr_node_1.ConstExprNode && !(newNode instanceof const_expr_node_1.ConstExprNode)) {
204
+ throw new Error(`Trying to replace ConstExprNode with ${newNode.constructor.name}`);
205
+ }
206
+ if (old instanceof php_doc_child_node_1.PhpDocChildNode &&
207
+ !(newNode instanceof php_doc_child_node_1.PhpDocChildNode)) {
208
+ throw new Error(`Trying to replace PhpDocChildNode with ${newNode.constructor.name}`);
209
+ }
210
+ if (old instanceof php_doc_tag_value_node_1.PhpDocTagValueNode &&
211
+ !(newNode instanceof php_doc_tag_value_node_1.PhpDocTagValueNode)) {
212
+ throw new Error(`Trying to replace PhpDocTagValueNode with ${newNode.constructor.name}`);
213
+ }
197
214
  }
198
215
  }
199
216
  exports.NodeTraverser = NodeTraverser;
200
- //# sourceMappingURL=node-traverser.js.map
@@ -12,4 +12,3 @@ class CloningVisitor extends abstract_node_visitor_1.AbstractNodeVisitor {
12
12
  }
13
13
  }
14
14
  exports.CloningVisitor = CloningVisitor;
15
- //# sourceMappingURL=cloning-visitor.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=node-visitor.js.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=node.js.map
@@ -15,11 +15,10 @@ class AssertTagMethodValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNo
15
15
  toString() {
16
16
  const isNegated = this.isNegated ? '!' : '';
17
17
  const isEquality = this.isEquality ? '=' : '';
18
- return `${isNegated}${isEquality}${this.type} ${this.parameter}->${this.method}() ${this.description}`.trim();
18
+ return `${isNegated}${isEquality}${this.type.toString()} ${this.parameter}->${this.method}() ${this.description}`.trim();
19
19
  }
20
20
  getNodeType() {
21
21
  return 'AssertTagMethodValueNode';
22
22
  }
23
23
  }
24
24
  exports.AssertTagMethodValueNode = AssertTagMethodValueNode;
25
- //# sourceMappingURL=assert-tag-method-value-node.js.map
@@ -15,11 +15,10 @@ class AssertTagPropertyValueNode extends php_doc_tag_value_node_1.PhpDocTagValue
15
15
  toString() {
16
16
  const isNegated = this.isNegated ? '!' : '';
17
17
  const isEquality = this.isEquality ? '=' : '';
18
- return `${isNegated}${isEquality}${this.type} ${this.parameter}->${this.property} ${this.description}`.trim();
18
+ return `${isNegated}${isEquality}${this.type.toString()} ${this.parameter}->${this.property} ${this.description}`.trim();
19
19
  }
20
20
  getNodeType() {
21
21
  return 'AssertTagPropertyValueNode';
22
22
  }
23
23
  }
24
24
  exports.AssertTagPropertyValueNode = AssertTagPropertyValueNode;
25
- //# sourceMappingURL=assert-tag-property-value-node.js.map
@@ -14,11 +14,10 @@ class AssertTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
14
14
  toString() {
15
15
  const isNegated = this.isNegated ? '!' : '';
16
16
  const isEquality = this.isEquality ? '=' : '';
17
- return `${isNegated}${isEquality}${this.type} ${this.parameter} ${this.description}`.trim();
17
+ return `${isNegated}${isEquality}${this.type.toString()} ${this.parameter} ${this.description}`.trim();
18
18
  }
19
19
  getNodeType() {
20
20
  return 'AssertTagValueNode';
21
21
  }
22
22
  }
23
23
  exports.AssertTagValueNode = AssertTagValueNode;
24
- //# sourceMappingURL=assert-tag-value-node.js.map
@@ -15,4 +15,3 @@ class DeprecatedTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode
15
15
  }
16
16
  }
17
17
  exports.DeprecatedTagValueNode = DeprecatedTagValueNode;
18
- //# sourceMappingURL=deprecated-tag-value-node.js.map
@@ -9,11 +9,10 @@ class ExtendsTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
9
9
  this.description = description;
10
10
  }
11
11
  toString() {
12
- return `${this.type} ${this.description}`.trim();
12
+ return `${this.type.toString()} ${this.description}`.trim();
13
13
  }
14
14
  getNodeType() {
15
15
  return 'ExtendsTagValueNode';
16
16
  }
17
17
  }
18
18
  exports.ExtendsTagValueNode = ExtendsTagValueNode;
19
- //# sourceMappingURL=extends-tag-value-node.js.map
@@ -15,4 +15,3 @@ class GenericTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
15
15
  }
16
16
  }
17
17
  exports.GenericTagValueNode = GenericTagValueNode;
18
- //# sourceMappingURL=generic-tag-value-node.js.map
@@ -9,11 +9,10 @@ class ImplementsTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode
9
9
  this.description = description;
10
10
  }
11
11
  toString() {
12
- return `${this.type} ${this.description}`.trim();
12
+ return `${this.type.toString()} ${this.description}`.trim();
13
13
  }
14
14
  getNodeType() {
15
15
  return 'ImplementsTagValueNode';
16
16
  }
17
17
  }
18
18
  exports.ImplementsTagValueNode = ImplementsTagValueNode;
19
- //# sourceMappingURL=implements-tag-value-node.js.map
@@ -31,4 +31,3 @@ class InvalidTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
31
31
  }
32
32
  }
33
33
  exports.InvalidTagValueNode = InvalidTagValueNode;
34
- //# sourceMappingURL=invalid-tag-value-node.js.map
@@ -14,7 +14,7 @@ class MethodTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
14
14
  }
15
15
  toString() {
16
16
  const staticKeyword = this.isStatic ? 'static ' : '';
17
- const returnTypeStr = this.returnType !== null ? `${this.returnType} ` : '';
17
+ const returnTypeStr = this.returnType !== null ? `${this.returnType.toString()} ` : '';
18
18
  const parametersStr = this.parameters.join(', ');
19
19
  const descriptionStr = this.description !== '' ? ` ${this.description}` : '';
20
20
  const templateTypesStr = this.templateTypes.length > 0 ? `<${this.templateTypes.join(', ')}>` : '';
@@ -25,4 +25,3 @@ class MethodTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
25
25
  }
26
26
  }
27
27
  exports.MethodTagValueNode = MethodTagValueNode;
28
- //# sourceMappingURL=method-tag-value-node.js.map
@@ -12,10 +12,12 @@ class MethodTagValueParameterNode extends php_doc_tag_value_node_1.PhpDocTagValu
12
12
  this.defaultValue = defaultValue;
13
13
  }
14
14
  toString() {
15
- const type = this.type ? `${this.type} ` : '';
15
+ const type = this.type ? `${this.type.toString()} ` : '';
16
16
  const isReference = this.isReference ? '&' : '';
17
17
  const isVariadic = this.isVariadic ? '...' : '';
18
- const defaultVal = this.defaultValue !== undefined ? ` = ${this.defaultValue}` : '';
18
+ const defaultVal = this.defaultValue !== undefined
19
+ ? ` = ${this.defaultValue.toString()}`
20
+ : '';
19
21
  return `${type}${isReference}${isVariadic}${this.parameterName}${defaultVal}`;
20
22
  }
21
23
  getNodeType() {
@@ -23,4 +25,3 @@ class MethodTagValueParameterNode extends php_doc_tag_value_node_1.PhpDocTagValu
23
25
  }
24
26
  }
25
27
  exports.MethodTagValueParameterNode = MethodTagValueParameterNode;
26
- //# sourceMappingURL=method-tag-value-parameter-node.js.map
@@ -9,11 +9,10 @@ class MixinTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
9
9
  this.description = description;
10
10
  }
11
11
  toString() {
12
- return `${this.type} ${this.description}`.trim();
12
+ return `${this.type.toString()} ${this.description}`.trim();
13
13
  }
14
14
  getNodeType() {
15
15
  return 'MixinTagValueNode';
16
16
  }
17
17
  }
18
18
  exports.MixinTagValueNode = MixinTagValueNode;
19
- //# sourceMappingURL=mixin-tag-value-node.js.map
@@ -10,11 +10,10 @@ class ParamOutTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
10
10
  this.description = description;
11
11
  }
12
12
  toString() {
13
- return `${this.type} ${this.parameterName} ${this.description}`.trim();
13
+ return `${this.type.toString()} ${this.parameterName} ${this.description}`.trim();
14
14
  }
15
15
  getNodeType() {
16
16
  return 'ParamOutTagValueNode';
17
17
  }
18
18
  }
19
19
  exports.ParamOutTagValueNode = ParamOutTagValueNode;
20
- //# sourceMappingURL=param-out-tag-value-node.js.map
@@ -26,4 +26,3 @@ class ParamTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
26
26
  }
27
27
  }
28
28
  exports.ParamTagValueNode = ParamTagValueNode;
29
- //# sourceMappingURL=param-tag-value-node.js.map
@@ -8,4 +8,3 @@ class PhpDocChildNode extends base_node_1.BaseNode {
8
8
  }
9
9
  }
10
10
  exports.PhpDocChildNode = PhpDocChildNode;
11
- //# sourceMappingURL=php-doc-child-node.js.map
@@ -95,4 +95,3 @@ class PhpDocNode extends base_node_1.BaseNode {
95
95
  }
96
96
  }
97
97
  exports.PhpDocNode = PhpDocNode;
98
- //# sourceMappingURL=php-doc-node.js.map
@@ -9,7 +9,7 @@ class PhpDocTagNode extends php_doc_child_node_1.PhpDocChildNode {
9
9
  this.value = value;
10
10
  }
11
11
  toString() {
12
- return `${this.name} ${this.value}`.trim();
12
+ return `${this.name} ${this.value.toString()}`.trim();
13
13
  }
14
14
  getNodeType() {
15
15
  return 'PhpDocTagNode';
@@ -88,4 +88,3 @@ class PhpDocTagNode extends php_doc_child_node_1.PhpDocChildNode {
88
88
  }
89
89
  }
90
90
  exports.PhpDocTagNode = PhpDocTagNode;
91
- //# sourceMappingURL=php-doc-tag-node.js.map
@@ -8,4 +8,3 @@ class PhpDocTagValueNode extends base_node_1.BaseNode {
8
8
  }
9
9
  }
10
10
  exports.PhpDocTagValueNode = PhpDocTagValueNode;
11
- //# sourceMappingURL=php-doc-tag-value-node.js.map
@@ -15,4 +15,3 @@ class PhpDocTextNode extends php_doc_child_node_1.PhpDocChildNode {
15
15
  }
16
16
  }
17
17
  exports.PhpDocTextNode = PhpDocTextNode;
18
- //# sourceMappingURL=php-doc-text-node.js.map
@@ -10,11 +10,10 @@ class PropertyTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
10
10
  this.description = description;
11
11
  }
12
12
  toString() {
13
- return `${this.type} ${this.propertyName} ${this.description}`.trim();
13
+ return `${this.type.toString()} ${this.propertyName} ${this.description}`.trim();
14
14
  }
15
15
  getNodeType() {
16
16
  return 'PropertyTagValueNode';
17
17
  }
18
18
  }
19
19
  exports.PropertyTagValueNode = PropertyTagValueNode;
20
- //# sourceMappingURL=property-tag-value-node.js.map
@@ -9,11 +9,10 @@ class ReturnTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
9
9
  this.description = description;
10
10
  }
11
11
  toString() {
12
- return `${this.type} ${this.description}`.trim();
12
+ return `${this.type.toString()} ${this.description}`.trim();
13
13
  }
14
14
  getNodeType() {
15
15
  return 'ReturnTagValueNode';
16
16
  }
17
17
  }
18
18
  exports.ReturnTagValueNode = ReturnTagValueNode;
19
- //# sourceMappingURL=return-tag-value-node.js.map
@@ -9,11 +9,10 @@ class SelfOutTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
9
9
  this.description = description;
10
10
  }
11
11
  toString() {
12
- return `${this.type} ${this.description}`.trim();
12
+ return `${this.type.toString()} ${this.description}`.trim();
13
13
  }
14
14
  getNodeType() {
15
15
  return 'SelfOutTagValueNode';
16
16
  }
17
17
  }
18
18
  exports.SelfOutTagValueNode = SelfOutTagValueNode;
19
- //# sourceMappingURL=self-out-tag-value-node.js.map
@@ -11,8 +11,10 @@ class TemplateTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
11
11
  this.defaultTypeNode = defaultTypeNode;
12
12
  }
13
13
  toString() {
14
- const bound = this.bound !== null ? ` of ${this.bound}` : '';
15
- const defaultString = this.defaultTypeNode !== null ? ` = ${this.defaultTypeNode}` : '';
14
+ const bound = this.bound !== null ? ` of ${this.bound.toString()}` : '';
15
+ const defaultString = this.defaultTypeNode !== null
16
+ ? ` = ${this.defaultTypeNode.toString()}`
17
+ : '';
16
18
  return `${this.name}${bound}${defaultString} ${this.description}`.trim();
17
19
  }
18
20
  getNodeType() {
@@ -20,4 +22,3 @@ class TemplateTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
20
22
  }
21
23
  }
22
24
  exports.TemplateTagValueNode = TemplateTagValueNode;
23
- //# sourceMappingURL=template-tag-value-node.js.map
@@ -9,11 +9,10 @@ class ThrowsTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
9
9
  this.description = description;
10
10
  }
11
11
  toString() {
12
- return `${this.type} ${this.description}`.trim();
12
+ return `${this.type.toString()} ${this.description}`.trim();
13
13
  }
14
14
  getNodeType() {
15
15
  return 'ThrowsTagValueNode';
16
16
  }
17
17
  }
18
18
  exports.ThrowsTagValueNode = ThrowsTagValueNode;
19
- //# sourceMappingURL=throws-tag-value-node.js.map
@@ -10,7 +10,8 @@ class TypeAliasImportTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValu
10
10
  this.importedAs = importedAs;
11
11
  }
12
12
  toString() {
13
- return `${this.importedAlias} from ${this.importedFrom}${(this.importedAs
13
+ return `${this.importedAlias} from ${this.importedFrom.toString()}${(this
14
+ .importedAs
14
15
  ? ` as ${this.importedAs}`
15
16
  : '').trim()}`;
16
17
  }
@@ -19,4 +20,3 @@ class TypeAliasImportTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValu
19
20
  }
20
21
  }
21
22
  exports.TypeAliasImportTagValueNode = TypeAliasImportTagValueNode;
22
- //# sourceMappingURL=type-alias-import-tag-value-node.js.map
@@ -9,11 +9,10 @@ class TypeAliasTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode
9
9
  this.type = type;
10
10
  }
11
11
  toString() {
12
- return `${this.alias} ${this.type}`.trim();
12
+ return `${this.alias} ${this.type.toString()}`.trim();
13
13
  }
14
14
  getNodeType() {
15
15
  return 'TypeAliasTagValueNode';
16
16
  }
17
17
  }
18
18
  exports.TypeAliasTagValueNode = TypeAliasTagValueNode;
19
- //# sourceMappingURL=type-alias-tag-value-node.js.map
@@ -20,4 +20,3 @@ class TypelessParamTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueN
20
20
  }
21
21
  }
22
22
  exports.TypelessParamTagValueNode = TypelessParamTagValueNode;
23
- //# sourceMappingURL=typeless-param-tag-value-node.js.map
@@ -9,11 +9,10 @@ class UsesTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
9
9
  this.description = description;
10
10
  }
11
11
  toString() {
12
- return `${this.type} ${this.description}`.trim();
12
+ return `${this.type.toString()} ${this.description}`.trim();
13
13
  }
14
14
  getNodeType() {
15
15
  return 'UsesTagValueNode';
16
16
  }
17
17
  }
18
18
  exports.UsesTagValueNode = UsesTagValueNode;
19
- //# sourceMappingURL=uses-tag-value-node.js.map
@@ -10,11 +10,10 @@ class VarTagValueNode extends php_doc_tag_value_node_1.PhpDocTagValueNode {
10
10
  this.description = description;
11
11
  }
12
12
  toString() {
13
- return `${this.type} ${this.variableName} ${this.description}`.trim();
13
+ return `${this.type.toString()} ${this.variableName} ${this.description}`.trim();
14
14
  }
15
15
  getNodeType() {
16
16
  return 'VarTagValueNode';
17
17
  }
18
18
  }
19
19
  exports.VarTagValueNode = VarTagValueNode;
20
- //# sourceMappingURL=var-tag-value-node.js.map
@@ -20,4 +20,3 @@ class ArrayShapeItemNode extends type_node_1.TypeNode {
20
20
  }
21
21
  }
22
22
  exports.ArrayShapeItemNode = ArrayShapeItemNode;
23
- //# sourceMappingURL=array-shape-item-node.js.map
@@ -29,4 +29,3 @@ class ArrayShapeNode extends type_node_1.TypeNode {
29
29
  }
30
30
  }
31
31
  exports.ArrayShapeNode = ArrayShapeNode;
32
- //# sourceMappingURL=array-shape-node.js.map
@@ -23,4 +23,3 @@ class ArrayTypeNode extends type_node_1.TypeNode {
23
23
  }
24
24
  }
25
25
  exports.ArrayTypeNode = ArrayTypeNode;
26
- //# sourceMappingURL=array-type-node.js.map
@@ -12,14 +12,13 @@ class CallableTypeNode extends type_node_1.TypeNode {
12
12
  toString() {
13
13
  let { returnType } = this;
14
14
  if (returnType instanceof CallableTypeNode) {
15
- returnType = `(${returnType})`;
15
+ returnType = `(${returnType.toString()})`;
16
16
  }
17
17
  const parameters = this.parameters.join(', ');
18
- return `${this.identifier}(${parameters}): ${returnType}`;
18
+ return `${this.identifier.toString()}(${parameters}): ${returnType.toString()}`;
19
19
  }
20
20
  getNodeType() {
21
21
  return 'CallableTypeNode';
22
22
  }
23
23
  }
24
24
  exports.CallableTypeNode = CallableTypeNode;
25
- //# sourceMappingURL=callable-type-node.js.map
@@ -12,7 +12,7 @@ class CallableTypeParameterNode extends type_node_1.TypeNode {
12
12
  this.isOptional = isOptional;
13
13
  }
14
14
  toString() {
15
- const type = `${this.type} `;
15
+ const type = `${this.type.toString()} `;
16
16
  const isReference = this.isReference ? '&' : '';
17
17
  const isVariadic = this.isVariadic ? '...' : '';
18
18
  const isOptional = this.isOptional ? '=' : '';
@@ -24,4 +24,3 @@ class CallableTypeParameterNode extends type_node_1.TypeNode {
24
24
  }
25
25
  }
26
26
  exports.CallableTypeParameterNode = CallableTypeParameterNode;
27
- //# sourceMappingURL=callable-type-parameter-node.js.map
@@ -12,11 +12,10 @@ class ConditionalTypeForParameterNode extends type_node_1.TypeNode {
12
12
  this.negated = negated;
13
13
  }
14
14
  toString() {
15
- return `(${this.parameterName} ${this.negated ? 'is not' : 'is'} ${this.targetType} ? ${this.ifCondition} : ${this.elseCondition})`;
15
+ return `(${this.parameterName} ${this.negated ? 'is not' : 'is'} ${this.targetType.toString()} ? ${this.ifCondition.toString()} : ${this.elseCondition.toString()})`;
16
16
  }
17
17
  getNodeType() {
18
18
  return 'ConditionalTypeForParameterNode';
19
19
  }
20
20
  }
21
21
  exports.ConditionalTypeForParameterNode = ConditionalTypeForParameterNode;
22
- //# sourceMappingURL=conditional-type-for-parameter-node.js.map
@@ -12,11 +12,10 @@ class ConditionalTypeNode extends type_node_1.TypeNode {
12
12
  this.negated = negated;
13
13
  }
14
14
  toString() {
15
- return `(${this.subjectType} ${this.negated ? 'is not' : 'is'} ${this.targetType} ? ${this.ifType} : ${this.elseType})`;
15
+ return `(${this.subjectType.toString()} ${this.negated ? 'is not' : 'is'} ${this.targetType.toString()} ? ${this.ifType.toString()} : ${this.elseType.toString()})`;
16
16
  }
17
17
  getNodeType() {
18
18
  return 'ConditionalTypeNode';
19
19
  }
20
20
  }
21
21
  exports.ConditionalTypeNode = ConditionalTypeNode;
22
- //# sourceMappingURL=conditional-type-node.js.map
@@ -15,4 +15,3 @@ class ConstTypeNode extends type_node_1.TypeNode {
15
15
  }
16
16
  }
17
17
  exports.ConstTypeNode = ConstTypeNode;
18
- //# sourceMappingURL=const-type-node.js.map
@@ -21,10 +21,10 @@ class GenericTypeNode extends type_node_1.TypeNode {
21
21
  genericTypes.push('*');
22
22
  }
23
23
  else {
24
- genericTypes.push(`${variance} ${type}`);
24
+ genericTypes.push(`${variance} ${type.toString()}`);
25
25
  }
26
26
  }
27
- return `${this.type}<${genericTypes.join(', ')}>`;
27
+ return `${this.type.toString()}<${genericTypes.join(', ')}>`;
28
28
  }
29
29
  getNodeType() {
30
30
  return 'GenericTypeNode';
@@ -35,4 +35,3 @@ GenericTypeNode.VARIANCE_INVARIANT = 'invariant';
35
35
  GenericTypeNode.VARIANCE_COVARIANT = 'covariant';
36
36
  GenericTypeNode.VARIANCE_CONTRAVARIANT = 'contravariant';
37
37
  GenericTypeNode.VARIANCE_BIVARIANT = 'bivariant';
38
- //# sourceMappingURL=generic-type-node.js.map
@@ -15,4 +15,3 @@ class IdentifierTypeNode extends type_node_1.TypeNode {
15
15
  }
16
16
  }
17
17
  exports.IdentifierTypeNode = IdentifierTypeNode;
18
- //# sourceMappingURL=identifier-type-node.js.map
@@ -23,4 +23,3 @@ class IntersectionTypeNode extends type_node_1.TypeNode {
23
23
  }
24
24
  }
25
25
  exports.IntersectionTypeNode = IntersectionTypeNode;
26
- //# sourceMappingURL=intersection-type-node.js.map