treedoc 0.3.48 → 0.3.50

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 (179) hide show
  1. package/lib/Bookmark.js +1 -1
  2. package/lib/Bookmark.js.map +1 -1
  3. package/lib/TD.d.ts +2 -2
  4. package/lib/TD.js +8 -6
  5. package/lib/TD.js.map +1 -1
  6. package/lib/TDNode.d.ts +1 -1
  7. package/lib/TDNode.js +11 -9
  8. package/lib/TDNode.js.map +1 -1
  9. package/lib/TDNodeProxyHandler.js +1 -1
  10. package/lib/TDNodeProxyHandler.js.map +1 -1
  11. package/lib/TDPath.js +1 -1
  12. package/lib/TDPath.js.map +1 -1
  13. package/lib/TreeDoc.js +4 -4
  14. package/lib/TreeDoc.js.map +1 -1
  15. package/lib/core/CharSource.js +1 -1
  16. package/lib/core/CharSource.js.map +1 -1
  17. package/lib/core/ClassUtil.js.map +1 -1
  18. package/lib/core/EOFRuntimeException.js +2 -0
  19. package/lib/core/EOFRuntimeException.js.map +1 -1
  20. package/lib/core/LangUtil.d.ts +8 -8
  21. package/lib/core/LangUtil.js +11 -9
  22. package/lib/core/LangUtil.js.map +1 -1
  23. package/lib/core/ParseRuntimeException.js +2 -0
  24. package/lib/core/ParseRuntimeException.js.map +1 -1
  25. package/lib/core/StringBuilder.js.map +1 -1
  26. package/lib/core/StringCharSource.js +2 -0
  27. package/lib/core/StringCharSource.js.map +1 -1
  28. package/lib/core/StringUtil.js.map +1 -1
  29. package/lib/csv/CSV.spec.js +3 -3
  30. package/lib/csv/CSV.spec.js.map +1 -1
  31. package/lib/csv/CSVParser.js +12 -6
  32. package/lib/csv/CSVParser.js.map +1 -1
  33. package/lib/csv/CSVWriter.js.map +1 -1
  34. package/lib/index.js +5 -1
  35. package/lib/index.js.map +1 -1
  36. package/lib/json/JSONPointer.js.map +1 -1
  37. package/lib/json/NodeFilter.js +12 -8
  38. package/lib/json/NodeFilter.js.map +1 -1
  39. package/lib/json/TDJSONOption.js.map +1 -1
  40. package/lib/json/TDJSONParser.js +5 -5
  41. package/lib/json/TDJSONParser.js.map +1 -1
  42. package/lib/json/TDJSONParserOption.js +2 -0
  43. package/lib/json/TDJSONParserOption.js.map +1 -1
  44. package/lib/json/TDJSONWriter.js.map +1 -1
  45. package/lib/json/TDJSONWriterOption.js +3 -1
  46. package/lib/json/TDJSONWriterOption.js.map +1 -1
  47. package/lib/objcoder/TDObjectCoder.d.ts +1 -1
  48. package/lib/objcoder/TDObjectCoder.js +2 -2
  49. package/lib/objcoder/TDObjectCoder.js.map +1 -1
  50. package/lib/src/Bookmark.d.ts +9 -0
  51. package/lib/src/Bookmark.js +31 -0
  52. package/lib/src/Bookmark.js.map +1 -0
  53. package/lib/src/TD.d.ts +20 -0
  54. package/lib/src/TD.js +53 -0
  55. package/lib/src/TD.js.map +1 -0
  56. package/lib/src/TDNode.d.ts +84 -0
  57. package/lib/src/TDNode.js +378 -0
  58. package/lib/src/TDNode.js.map +1 -0
  59. package/lib/src/TDNodeProxyHandler.d.ts +7 -0
  60. package/lib/src/TDNodeProxyHandler.js +50 -0
  61. package/lib/src/TDNodeProxyHandler.js.map +1 -0
  62. package/lib/src/TDPath.d.ts +31 -0
  63. package/lib/src/TDPath.js +87 -0
  64. package/lib/src/TDPath.js.map +1 -0
  65. package/lib/src/TreeDoc.d.ts +27 -0
  66. package/lib/src/TreeDoc.js +93 -0
  67. package/lib/src/TreeDoc.js.map +1 -0
  68. package/lib/src/__tests__/TD.spec.d.ts +1 -0
  69. package/lib/src/__tests__/TD.spec.js +90 -0
  70. package/lib/src/__tests__/TD.spec.js.map +1 -0
  71. package/lib/src/__tests__/TDNode.spec.d.ts +1 -0
  72. package/lib/src/__tests__/TDNode.spec.js +49 -0
  73. package/lib/src/__tests__/TDNode.spec.js.map +1 -0
  74. package/lib/src/__tests__/TDPath.spec.d.ts +1 -0
  75. package/lib/src/__tests__/TDPath.spec.js +15 -0
  76. package/lib/src/__tests__/TDPath.spec.js.map +1 -0
  77. package/lib/src/core/Appendable.d.ts +3 -0
  78. package/lib/src/core/Appendable.js +3 -0
  79. package/lib/src/core/Appendable.js.map +1 -0
  80. package/lib/src/core/CharSource.d.ts +47 -0
  81. package/lib/src/core/CharSource.js +199 -0
  82. package/lib/src/core/CharSource.js.map +1 -0
  83. package/lib/src/core/ClassUtil.d.ts +9 -0
  84. package/lib/src/core/ClassUtil.js +34 -0
  85. package/lib/src/core/ClassUtil.js.map +1 -0
  86. package/lib/src/core/EOFRuntimeException.d.ts +5 -0
  87. package/lib/src/core/EOFRuntimeException.js +32 -0
  88. package/lib/src/core/EOFRuntimeException.js.map +1 -0
  89. package/lib/src/core/LangUtil.d.ts +38 -0
  90. package/lib/src/core/LangUtil.js +110 -0
  91. package/lib/src/core/LangUtil.js.map +1 -0
  92. package/lib/src/core/ListUtil.d.ts +19 -0
  93. package/lib/src/core/ListUtil.js +38 -0
  94. package/lib/src/core/ListUtil.js.map +1 -0
  95. package/lib/src/core/ParseRuntimeException.d.ts +11 -0
  96. package/lib/src/core/ParseRuntimeException.js +40 -0
  97. package/lib/src/core/ParseRuntimeException.js.map +1 -0
  98. package/lib/src/core/StringBuilder.d.ts +9 -0
  99. package/lib/src/core/StringBuilder.js +30 -0
  100. package/lib/src/core/StringBuilder.js.map +1 -0
  101. package/lib/src/core/StringCharSource.d.ts +11 -0
  102. package/lib/src/core/StringCharSource.js +60 -0
  103. package/lib/src/core/StringCharSource.js.map +1 -0
  104. package/lib/src/core/StringUtil.d.ts +16 -0
  105. package/lib/src/core/StringUtil.js +75 -0
  106. package/lib/src/core/StringUtil.js.map +1 -0
  107. package/lib/src/core/__test__/ClassUtil.spec.d.ts +1 -0
  108. package/lib/src/core/__test__/ClassUtil.spec.js +16 -0
  109. package/lib/src/core/__test__/ClassUtil.spec.js.map +1 -0
  110. package/lib/src/core/__test__/StringCharSource.spec.d.ts +1 -0
  111. package/lib/src/core/__test__/StringCharSource.spec.js +18 -0
  112. package/lib/src/core/__test__/StringCharSource.spec.js.map +1 -0
  113. package/lib/src/core/__test__/StringUtil.spec.d.ts +1 -0
  114. package/lib/src/core/__test__/StringUtil.spec.js +23 -0
  115. package/lib/src/core/__test__/StringUtil.spec.js.map +1 -0
  116. package/lib/src/csv/CSV.spec.d.ts +1 -0
  117. package/lib/src/csv/CSV.spec.js +45 -0
  118. package/lib/src/csv/CSV.spec.js.map +1 -0
  119. package/lib/src/csv/CSVOption.d.ts +12 -0
  120. package/lib/src/csv/CSVOption.js +23 -0
  121. package/lib/src/csv/CSVOption.js.map +1 -0
  122. package/lib/src/csv/CSVParser.d.ts +13 -0
  123. package/lib/src/csv/CSVParser.js +133 -0
  124. package/lib/src/csv/CSVParser.js.map +1 -0
  125. package/lib/src/csv/CSVWriter.d.ts +14 -0
  126. package/lib/src/csv/CSVWriter.js +77 -0
  127. package/lib/src/csv/CSVWriter.js.map +1 -0
  128. package/lib/src/index.d.ts +21 -0
  129. package/lib/src/index.js +34 -0
  130. package/lib/src/index.js.map +1 -0
  131. package/lib/src/json/JSONPointer.d.ts +30 -0
  132. package/lib/src/json/JSONPointer.js +87 -0
  133. package/lib/src/json/JSONPointer.js.map +1 -0
  134. package/lib/src/json/NodeFilter.d.ts +25 -0
  135. package/lib/src/json/NodeFilter.js +115 -0
  136. package/lib/src/json/NodeFilter.js.map +1 -0
  137. package/lib/src/json/TDJSONOption.d.ts +26 -0
  138. package/lib/src/json/TDJSONOption.js +56 -0
  139. package/lib/src/json/TDJSONOption.js.map +1 -0
  140. package/lib/src/json/TDJSONParser.d.ts +19 -0
  141. package/lib/src/json/TDJSONParser.js +233 -0
  142. package/lib/src/json/TDJSONParser.js.map +1 -0
  143. package/lib/src/json/TDJSONParserOption.d.ts +24 -0
  144. package/lib/src/json/TDJSONParserOption.js +50 -0
  145. package/lib/src/json/TDJSONParserOption.js.map +1 -0
  146. package/lib/src/json/TDJSONWriter.d.ts +17 -0
  147. package/lib/src/json/TDJSONWriter.js +143 -0
  148. package/lib/src/json/TDJSONWriter.js.map +1 -0
  149. package/lib/src/json/TDJSONWriterOption.d.ts +36 -0
  150. package/lib/src/json/TDJSONWriterOption.js +88 -0
  151. package/lib/src/json/TDJSONWriterOption.js.map +1 -0
  152. package/lib/src/json/__test__/CharSource.spec.d.ts +1 -0
  153. package/lib/src/json/__test__/CharSource.spec.js +58 -0
  154. package/lib/src/json/__test__/CharSource.spec.js.map +1 -0
  155. package/lib/src/json/__test__/JSONPointer.spec.d.ts +1 -0
  156. package/lib/src/json/__test__/JSONPointer.spec.js +16 -0
  157. package/lib/src/json/__test__/JSONPointer.spec.js.map +1 -0
  158. package/lib/src/json/__test__/TDJsonParser.spec.d.ts +1 -0
  159. package/lib/src/json/__test__/TDJsonParser.spec.js +183 -0
  160. package/lib/src/json/__test__/TDJsonParser.spec.js.map +1 -0
  161. package/lib/src/json/__test__/TDJsonWriter.spec.d.ts +1 -0
  162. package/lib/src/json/__test__/TDJsonWriter.spec.js +71 -0
  163. package/lib/src/json/__test__/TDJsonWriter.spec.js.map +1 -0
  164. package/lib/src/json/__test__/TDNode.spec.d.ts +1 -0
  165. package/lib/src/json/__test__/TDNode.spec.js +17 -0
  166. package/lib/src/json/__test__/TDNode.spec.js.map +1 -0
  167. package/lib/src/json/__test__/TestData.d.ts +7 -0
  168. package/lib/src/json/__test__/TestData.js +15 -0
  169. package/lib/src/json/__test__/TestData.js.map +1 -0
  170. package/lib/src/objcoder/CustomCoder.d.ts +7 -0
  171. package/lib/src/objcoder/CustomCoder.js +27 -0
  172. package/lib/src/objcoder/CustomCoder.js.map +1 -0
  173. package/lib/src/objcoder/TDObjectCoder.d.ts +35 -0
  174. package/lib/src/objcoder/TDObjectCoder.js +141 -0
  175. package/lib/src/objcoder/TDObjectCoder.js.map +1 -0
  176. package/lib/vitest.config.d.ts +2 -0
  177. package/lib/vitest.config.js +10 -0
  178. package/lib/vitest.config.js.map +1 -0
  179. package/package.json +10 -12
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TDJSONWriter = void 0;
4
+ var TDJSONWriterOption_1 = require("./TDJSONWriterOption");
5
+ var TDNode_1 = require("../TDNode");
6
+ var StringBuilder_1 = require("../core/StringBuilder");
7
+ var StringUtil_1 = require("../core/StringUtil");
8
+ var LangUtil_1 = require("../core/LangUtil");
9
+ var NON_STRING = TDJSONWriterOption_1.TextType.NON_STRING;
10
+ var STRING = TDJSONWriterOption_1.TextType.STRING;
11
+ var KEY = TDJSONWriterOption_1.TextType.KEY;
12
+ var OPERATOR = TDJSONWriterOption_1.TextType.OPERATOR;
13
+ var TDJSONWriter = /** @class */ (function () {
14
+ function TDJSONWriter() {
15
+ }
16
+ TDJSONWriter.get = function () {
17
+ return TDJSONWriter.instance;
18
+ };
19
+ TDJSONWriter.writeAsString = function (node, opt) {
20
+ if (opt === void 0) { opt = {}; }
21
+ return TDJSONWriter.get().writeAsString(node, opt);
22
+ };
23
+ TDJSONWriter.write = function (out, node, opt, indentStr) {
24
+ if (opt === void 0) { opt = {}; }
25
+ if (indentStr === void 0) { indentStr = ''; }
26
+ return TDJSONWriter.get().write(out, node, opt, (indentStr = ''));
27
+ };
28
+ TDJSONWriter.prototype.writeAsString = function (node, opt) {
29
+ if (opt === void 0) { opt = {}; }
30
+ var out = new StringBuilder_1.StringBuilder();
31
+ this.write(out, node, opt);
32
+ return out.toString();
33
+ };
34
+ TDJSONWriter.prototype.write = function (out, node, option, indentStr) {
35
+ if (option === void 0) { option = {}; }
36
+ if (indentStr === void 0) { indentStr = ''; }
37
+ var opt = option instanceof TDJSONWriterOption_1.TDJSONWriterOption ? option : LangUtil_1.LangUtil.mergeDeep(new TDJSONWriterOption_1.TDJSONWriterOption(), option);
38
+ opt.buildTerms();
39
+ // console.log("TDJSONWriter.write: opt=", opt);
40
+ if (!node)
41
+ return out.append(opt.deco("null", NON_STRING));
42
+ var childIndentStr = '';
43
+ if (opt.hasIndent())
44
+ childIndentStr = indentStr + opt.indentStr;
45
+ switch (node.type) {
46
+ case TDNode_1.TDNodeType.MAP:
47
+ return this.writeMap(out, node, opt, indentStr, childIndentStr);
48
+ case TDNode_1.TDNodeType.ARRAY:
49
+ return this.writeArray(out, node, opt, indentStr, childIndentStr);
50
+ default:
51
+ return this.writeSimple(out, node, opt);
52
+ }
53
+ };
54
+ TDJSONWriter.prototype.writeMap = function (out, node, opt, indentStr, childIndentStr) {
55
+ if (opt.useTypeWrapper) {
56
+ var type = node.getChildValue(opt.KEY_TYPE);
57
+ if (type != null)
58
+ out.append(opt.deco(type, TDJSONWriterOption_1.TextType.TYPE));
59
+ }
60
+ out.append(opt.deco(opt.deliminatorObjectStart.substring(0, 1), OPERATOR));
61
+ if (node.children != null) {
62
+ for (var i = 0; i < node.getChildrenSize(); i++) {
63
+ var cn = opt.applyFilters(node.children[i]);
64
+ if (cn == null || (opt.useTypeWrapper && cn.key === opt.KEY_TYPE))
65
+ continue;
66
+ if (opt.hasIndent()) {
67
+ out.append('\n');
68
+ out.append(childIndentStr);
69
+ }
70
+ // Quote the key in case it's not valid java identifier so that it can be parsed back in Javascript
71
+ this.writeQuotedString(out, cn.key, opt, KEY, !StringUtil_1.StringUtil.isJavaIdentifier(cn.key) || opt.alwaysQuoteKey);
72
+ out.append(opt.deco(opt.deliminatorKey, OPERATOR));
73
+ this.write(out, cn, opt, childIndentStr);
74
+ if (i < node.getChildrenSize() - 1)
75
+ // No need "," for last entry
76
+ out.append(opt.deco(opt.deliminatorValue, OPERATOR));
77
+ }
78
+ if (opt.hasIndent() && node.hasChildren()) {
79
+ out.append('\n');
80
+ out.append(indentStr);
81
+ }
82
+ }
83
+ return out.append(opt.deco(opt.deliminatorObjectEnd.substring(0, 1), OPERATOR));
84
+ };
85
+ TDJSONWriter.prototype.writeArray = function (out, node, opt, indentStr, childIndentStr) {
86
+ out.append(opt.deco(opt.deliminatorArrayStart.substring(0, 1), OPERATOR));
87
+ if (node.children != null) {
88
+ for (var i = 0; i < node.getChildrenSize(); i++) {
89
+ var cn = node.children[i];
90
+ if (opt.hasIndent()) {
91
+ out.append('\n');
92
+ out.append(childIndentStr);
93
+ }
94
+ this.write(out, cn, opt, childIndentStr);
95
+ if (i < node.getChildrenSize() - 1)
96
+ // No need "," for last entry
97
+ out.append(opt.deco(opt.deliminatorValue, OPERATOR));
98
+ }
99
+ if (opt.hasIndent() && node.children.length > 0) {
100
+ out.append('\n');
101
+ out.append(indentStr);
102
+ }
103
+ }
104
+ return out.append(opt.deco(opt.deliminatorArrayEnd.substring(0, 1), OPERATOR));
105
+ };
106
+ TDJSONWriter.prototype.writeSimple = function (out, node, opt) {
107
+ var value = node.value;
108
+ return typeof value === 'string'
109
+ ? this.writeQuotedString(out, value, opt, STRING, opt.alwaysQuoteValue)
110
+ : out.append(opt.deco("" + value, NON_STRING));
111
+ };
112
+ TDJSONWriter.prototype.writeQuotedString = function (out, str, opt, type, alwaysQuote) {
113
+ var quoteChar = this.determineQuoteChar(str, opt, alwaysQuote);
114
+ return quoteChar === '' ? out.append(opt.deco(str, type)) : out.append(quoteChar)
115
+ .append(opt.deco(StringUtil_1.StringUtil.cEscape(str, quoteChar), type))
116
+ .append(quoteChar);
117
+ };
118
+ /** return '' indicate quote is not necessary */
119
+ TDJSONWriter.prototype.determineQuoteChar = function (str, opt, alwaysQuote) {
120
+ var needQuote = alwaysQuote || StringUtil_1.StringUtil.indexOfAnyChar(str, opt._quoteNeededChars) >= 0;
121
+ if (!needQuote)
122
+ return '';
123
+ if (opt.quoteChars.length === 1)
124
+ return opt.quoteChars.charAt(0);
125
+ // Determine which quote char to use
126
+ var counts = new Array(opt.quoteChars.length);
127
+ for (var _i = 0, str_1 = str; _i < str_1.length; _i++) {
128
+ var ch = str_1[_i];
129
+ var idx = opt.quoteChars.indexOf(ch);
130
+ if (idx >= 0)
131
+ counts[idx]++;
132
+ }
133
+ var minIdx = 0; // default to first quote char
134
+ for (var i = 1; i < counts.length; i++)
135
+ if (counts[i] < counts[minIdx])
136
+ minIdx = i;
137
+ return opt.quoteChars.charAt(minIdx);
138
+ };
139
+ TDJSONWriter.instance = new TDJSONWriter();
140
+ return TDJSONWriter;
141
+ }());
142
+ exports.TDJSONWriter = TDJSONWriter;
143
+ //# sourceMappingURL=TDJSONWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDJSONWriter.js","sourceRoot":"","sources":["../../../src/json/TDJSONWriter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { TDNode } from "..";
2
+ import { NodeFilter } from "./NodeFilter";
3
+ import { TDJSONOption } from "./TDJSONOption";
4
+ export declare enum TextType {
5
+ OPERATOR = 0,
6
+ KEY = 1,
7
+ STRING = 2,
8
+ NON_STRING = 3,
9
+ TYPE = 4
10
+ }
11
+ export declare class TDJSONWriterOption extends TDJSONOption {
12
+ static ofIndentFactor(factor: number): TDJSONWriterOption;
13
+ static ofCompact(): TDJSONWriterOption;
14
+ private mIndentFactor;
15
+ alwaysQuoteKey: boolean;
16
+ alwaysQuoteValue: boolean;
17
+ useTypeWrapper: boolean;
18
+ /** @internal */
19
+ indentStr: string;
20
+ textDecorator?: (str: string, textType: TextType) => string;
21
+ /** Node mapper, if it returns null, node will be skipped */
22
+ nodeFilters: NodeFilter[];
23
+ constructor();
24
+ set indentFactor(indentFactor: number);
25
+ get indentFactor(): number;
26
+ setIndentFactor(indentFactor: number): this;
27
+ setIndentStr(str: string): this;
28
+ setAlwaysQuoteKey(alwaysQuoteKey: boolean): this;
29
+ setAlwaysQuoteValue(alwaysQuoteValue: boolean): this;
30
+ setUseTypeWrapper(useTypeWrapper: boolean): this;
31
+ setTextDecorator(deco: (str: string, textType: TextType) => string): this;
32
+ hasIndent(): boolean;
33
+ applyFilters(n: TDNode): TDNode | undefined;
34
+ addNodeFilter(...filters: NodeFilter[]): this;
35
+ deco(text: string, type: TextType): string;
36
+ }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.TDJSONWriterOption = exports.TextType = void 0;
17
+ var TDJSONOption_1 = require("./TDJSONOption");
18
+ var TextType;
19
+ (function (TextType) {
20
+ TextType[TextType["OPERATOR"] = 0] = "OPERATOR";
21
+ TextType[TextType["KEY"] = 1] = "KEY";
22
+ TextType[TextType["STRING"] = 2] = "STRING";
23
+ TextType[TextType["NON_STRING"] = 3] = "NON_STRING";
24
+ TextType[TextType["TYPE"] = 4] = "TYPE";
25
+ })(TextType = exports.TextType || (exports.TextType = {}));
26
+ var TDJSONWriterOption = /** @class */ (function (_super) {
27
+ __extends(TDJSONWriterOption, _super);
28
+ function TDJSONWriterOption() {
29
+ var _this = _super.call(this) || this;
30
+ _this.mIndentFactor = 0;
31
+ _this.alwaysQuoteKey = true;
32
+ _this.alwaysQuoteValue = true;
33
+ _this.useTypeWrapper = false;
34
+ /** @internal */
35
+ _this.indentStr = ''; // Used internally
36
+ /** Node mapper, if it returns null, node will be skipped */
37
+ _this.nodeFilters = [];
38
+ _this.buildTerms();
39
+ return _this;
40
+ }
41
+ TDJSONWriterOption.ofIndentFactor = function (factor) { return new TDJSONWriterOption().setIndentFactor(factor); };
42
+ TDJSONWriterOption.ofCompact = function () { return new TDJSONWriterOption().setAlwaysQuoteKey(false).setAlwaysQuoteValue(false).setIndentFactor(0); };
43
+ Object.defineProperty(TDJSONWriterOption.prototype, "indentFactor", {
44
+ get: function () { return this.mIndentFactor; },
45
+ set: function (indentFactor) {
46
+ this.mIndentFactor = indentFactor;
47
+ this.indentStr = ' '.repeat(this.mIndentFactor);
48
+ },
49
+ enumerable: false,
50
+ configurable: true
51
+ });
52
+ TDJSONWriterOption.prototype.setIndentFactor = function (indentFactor) { this.indentFactor = indentFactor; return this; };
53
+ TDJSONWriterOption.prototype.setIndentStr = function (str) { this.indentStr = str; return this; };
54
+ TDJSONWriterOption.prototype.setAlwaysQuoteKey = function (alwaysQuoteKey) { this.alwaysQuoteKey = alwaysQuoteKey; return this; };
55
+ TDJSONWriterOption.prototype.setAlwaysQuoteValue = function (alwaysQuoteValue) { this.alwaysQuoteValue = alwaysQuoteValue; return this; };
56
+ TDJSONWriterOption.prototype.setUseTypeWrapper = function (useTypeWrapper) { this.useTypeWrapper = useTypeWrapper; return this; };
57
+ TDJSONWriterOption.prototype.setTextDecorator = function (deco) { this.textDecorator = deco; return this; };
58
+ TDJSONWriterOption.prototype.hasIndent = function () {
59
+ return this.indentStr.length > 0;
60
+ };
61
+ TDJSONWriterOption.prototype.applyFilters = function (n) {
62
+ var result = n;
63
+ for (var _i = 0, _a = this.nodeFilters; _i < _a.length; _i++) {
64
+ var f = _a[_i];
65
+ if (result == null)
66
+ break;
67
+ result = f.apply(result);
68
+ }
69
+ return result;
70
+ };
71
+ TDJSONWriterOption.prototype.addNodeFilter = function () {
72
+ var filters = [];
73
+ for (var _i = 0; _i < arguments.length; _i++) {
74
+ filters[_i] = arguments[_i];
75
+ }
76
+ for (var _a = 0, filters_1 = filters; _a < filters_1.length; _a++) {
77
+ var f = filters_1[_a];
78
+ this.nodeFilters.push(f);
79
+ }
80
+ return this;
81
+ };
82
+ TDJSONWriterOption.prototype.deco = function (text, type) {
83
+ return this.textDecorator == null ? text : this.textDecorator(text, type);
84
+ };
85
+ return TDJSONWriterOption;
86
+ }(TDJSONOption_1.TDJSONOption));
87
+ exports.TDJSONWriterOption = TDJSONWriterOption;
88
+ //# sourceMappingURL=TDJSONWriterOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDJSONWriterOption.js","sourceRoot":"","sources":["../../../src/json/TDJSONWriterOption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var StringCharSource_1 = require("../../core/StringCharSource");
4
+ var EOFRuntimeException_1 = require("../../core/EOFRuntimeException");
5
+ var StringBuilder_1 = require("../../core/StringBuilder");
6
+ test('testCharArraySource', function () {
7
+ var cs = new StringCharSource_1.StringCharSource('0123\n');
8
+ expect(cs.read()).toBe('0');
9
+ expect(cs.read()).toBe('1');
10
+ expect(cs.peek()).toBe('2');
11
+ expect(cs.peek(1)).toBe('3');
12
+ expect(cs.read()).toBe('2');
13
+ expect(cs.read()).toBe('3');
14
+ expect(cs.getBookmark().toString()).toBe('Bookmark(line=0, col=4, pos=4)');
15
+ expect(cs.read()).toBe('\n');
16
+ expect(cs.getBookmark().toString()).toBe('Bookmark(line=1, col=0, pos=5)');
17
+ expect(function () { return cs.read(); }).toThrow(new EOFRuntimeException_1.EOFRuntimeException());
18
+ });
19
+ test('testParseText', function () {
20
+ var cs = new StringCharSource_1.StringCharSource(' Text before /* some comments */ Text after');
21
+ cs.skipSpacesAndReturns();
22
+ expect(cs.getBookmark().pos).toBe(2);
23
+ var target = new StringBuilder_1.StringBuilder();
24
+ // should match '/*'
25
+ expect(cs.readUntilMatch(target, '/*', false, 0, 1000)).toBeTruthy();
26
+ expect(target.toString()).toBe('Text before ');
27
+ // should start with '/*'
28
+ expect(cs.startsWith('/*')).toBeTruthy();
29
+ cs.skip(2); // skip /*
30
+ target = new StringBuilder_1.StringBuilder();
31
+ // should match with '*/'
32
+ expect(cs.readUntilMatch(target, '*/', false)).toBeTruthy();
33
+ expect(target.toString()).toBe(' some comments ');
34
+ target = new StringBuilder_1.StringBuilder();
35
+ // should match with '*/'
36
+ expect(cs.readUntilMatch(target, '*/', false)).toBeTruthy();
37
+ });
38
+ test('testReadQuotedString', function () {
39
+ assertReadQuotedString("'It\\'s a quoted \\\"string\\\" with escape \\n \\r \\f \\t \\v \\? \\u9829'", 'It\'s a quoted "string" with escape \n \r \f \t \u000b ? \u9829');
40
+ });
41
+ test('testReadQuotedStringWithOctEscape', function () {
42
+ assertReadQuotedString("'\\040b'", ' b');
43
+ assertReadQuotedString("'\\40b'", ' b');
44
+ assertReadQuotedString("'\\401b'", ' 1b');
45
+ assertReadQuotedString("'\\491b'", '\u000491b');
46
+ assertReadQuotedString("'\\0220\\022'", '\u00120\u0012');
47
+ });
48
+ function assertReadQuotedString(source, expected) {
49
+ var cs = new StringCharSource_1.StringCharSource(source);
50
+ var c = cs.read(); // skip first quote
51
+ expect(cs.readQuotedString(c)).toBe(expected);
52
+ }
53
+ test('testReadQuotedStringError', function () {
54
+ var cs = new StringCharSource_1.StringCharSource("'Missing closing quote");
55
+ var c = cs.read(); // skip first quote
56
+ expect(function () { return cs.readQuotedString(c); }).toThrow("Can't find matching quote at position:1");
57
+ });
58
+ //# sourceMappingURL=CharSource.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CharSource.spec.js","sourceRoot":"","sources":["../../../../src/json/__test__/CharSource.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var JSONPointer_1 = require("../../json/JSONPointer");
4
+ var TDPath_1 = require("../../TDPath");
5
+ test('testParse', function () {
6
+ verify('//ab.c/p1#/p1', new TDPath_1.TDPath('//ab.c/p1').addParts(TDPath_1.Part.ofRoot(), TDPath_1.Part.ofChild('p1')));
7
+ verify('//ab.c/p1#p1/p2', new TDPath_1.TDPath('//ab.c/p1').addParts(TDPath_1.Part.ofChildOrId('p1', 'p1'), TDPath_1.Part.ofChild('p2')));
8
+ expect(JSONPointer_1.JSONPointer.get().parse('1/p1', true)).toStrictEqual(new TDPath_1.TDPath().addParts(TDPath_1.Part.ofRelative(1), TDPath_1.Part.ofChild('p1')));
9
+ verify('#../p1', new TDPath_1.TDPath().addParts(TDPath_1.Part.ofRelative(1), TDPath_1.Part.ofChild('p1')));
10
+ verify('#./p1', new TDPath_1.TDPath().addParts(TDPath_1.Part.ofRelative(0), TDPath_1.Part.ofChild('p1')));
11
+ verify('../', new TDPath_1.TDPath().addParts(TDPath_1.Part.ofRelative(1)));
12
+ });
13
+ function verify(str, expected) {
14
+ expect(JSONPointer_1.JSONPointer.get().parse(str)).toStrictEqual(expected);
15
+ }
16
+ //# sourceMappingURL=JSONPointer.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JSONPointer.spec.js","sourceRoot":"","sources":["../../../../src/json/__test__/JSONPointer.spec.ts"],"names":[],"mappings":";;AAAA,sDAAqD;AACrD,uCAA4C;AAE5C,IAAI,CAAC,WAAW,EAAE;IAChB,MAAM,CAAC,eAAe,EAAE,IAAI,eAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,aAAI,CAAC,MAAM,EAAE,EAAE,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,CAAC,iBAAiB,EAAE,IAAI,eAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,aAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9G,MAAM,CAAC,yBAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CACzD,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,aAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,QAAQ,EAAE,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,aAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,CAAC,OAAO,EAAE,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,aAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,CAAC,KAAK,EAAE,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,aAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,SAAS,MAAM,CAAC,GAAW,EAAE,QAAgB;IAC3C,MAAM,CAAC,yBAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var StringCharSource_1 = require("../../core/StringCharSource");
4
+ var TDJSONParser_1 = require("../../json/TDJSONParser");
5
+ var TDJSONParserOption_1 = require("../../json/TDJSONParserOption");
6
+ var TDNode_1 = require("../../TDNode");
7
+ var TDJSONWriter_1 = require("../../json/TDJSONWriter");
8
+ var TDJSONWriterOption_1 = require("../../json/TDJSONWriterOption");
9
+ var JSONPointer_1 = require("../../json/JSONPointer");
10
+ var TreeDoc_1 = require("../../TreeDoc");
11
+ var TestData_1 = require("./TestData");
12
+ var ParseRuntimeException_1 = require("../../core/ParseRuntimeException");
13
+ var testData = new TestData_1.TestData();
14
+ describe('TDJsonParser', function () {
15
+ test('testSkipSpaceAndComments', function () {
16
+ var src = new StringCharSource_1.StringCharSource(' //abcd \n // defghi \n abc');
17
+ expect(TDJSONParser_1.TDJSONParser.skipSpaceAndComments(src)).toBe('a');
18
+ expect(src.readString(3)).toBe('abc');
19
+ src = new StringCharSource_1.StringCharSource(' #abcd \n # defghi \n abc');
20
+ expect(TDJSONParser_1.TDJSONParser.skipSpaceAndComments(src)).toBe('a');
21
+ expect(src.readString(3)).toBe('abc');
22
+ src = new StringCharSource_1.StringCharSource('/* abcd*/ \n /* defghi*/ \n abc');
23
+ expect(TDJSONParser_1.TDJSONParser.skipSpaceAndComments(src)).toBe('a');
24
+ expect(src.readString(3)).toBe('abc');
25
+ });
26
+ test('testParse', function () {
27
+ var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testData);
28
+ var json = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node);
29
+ console.log("testParse:json=" + json);
30
+ expect(node.getChildValue('3')).toBe('valueWithoutKey');
31
+ expect(node.getChildValue('6')).toBe('lastValueWithoutKey');
32
+ expect(node.getChildValue('limit')).toBe(10);
33
+ expect(node.getChildValue('total')).toBe('100000000000000000000');
34
+ expect(node.getChildValue('maxSafeInt')).toBe(9007199254740991);
35
+ expect(node.getValueByPath('data/0/name')).toBe('Some Name 1');
36
+ expect(node.getValueByPath('data/1/address/streetLine')).toBe('2nd st');
37
+ var n = node.getByPath('data/1');
38
+ expect(node.getByPath('data/1').key).toBe('1');
39
+ expect(node.getByPath(['data', '1']).key).toBe('1');
40
+ expect(node.getChild('total').isLeaf()).toBeTruthy();
41
+ expect(node.getChild('data').isLeaf()).toBeFalsy();
42
+ expect(node.getByPath('data/1').path).toEqual(['data', '1']);
43
+ var node1 = TDJSONParser_1.TDJSONParser.get().parse(json);
44
+ expect(TDJSONWriter_1.TDJSONWriter.get().writeAsString(node1)).toBe(json);
45
+ });
46
+ test('testParseProto', function () {
47
+ var node = TDJSONParser_1.TDJSONParser.get().parse(testData.proto, { defaultRootType: TDNode_1.TDNodeType.MAP });
48
+ var json = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, new TDJSONWriterOption_1.TDJSONWriterOption().setIndentFactor(2).setAlwaysQuoteKey(false));
49
+ console.log("testParseProto:json=" + json);
50
+ expect(node.getValueByPath('n/n1/0/n11/1/n111')).toBeFalsy();
51
+ expect(node.getValueByPath('n/n1/1/[d.e.f]')).toBe(4);
52
+ expect(node.getValueByPath('n/n3/0')).toBe(6);
53
+ expect(node.getByPath('n/n1/0').key).toBe('0');
54
+ expect(node.getByPath('n/n1/1').key).toBe('1');
55
+ });
56
+ test('testParseJson5', function () {
57
+ var node = TDJSONParser_1.TDJSONParser.get().parse(testData.JSON5);
58
+ var json = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, new TDJSONWriterOption_1.TDJSONWriterOption().setIndentFactor(2).setAlwaysQuoteKey(false));
59
+ console.log("testParseJson5:json=" + json);
60
+ expect(node.getValueByPath('unquoted')).toBe('and you can quote me on that');
61
+ expect(node.getValueByPath('hexadecimal')).toBe(912559);
62
+ expect(node.getValueByPath('leadingDecimalPoint')).toBe(0.8675309);
63
+ expect(node.getValueByPath('positiveSign')).toBe(1);
64
+ });
65
+ test('testRootMap', function () {
66
+ var node = TDJSONParser_1.TDJSONParser.get().parse("'a':1\nb:2,", new TDJSONParserOption_1.TDJSONParserOption().setDefaultRootType(TDNode_1.TDNodeType.MAP));
67
+ expect(node.getValueByPath('a')).toBe(1);
68
+ expect(node.getValueByPath('b')).toBe(2);
69
+ });
70
+ test('testRootArray', function () {
71
+ var testDataRootArray = "\n ,\n 1\n 2\n {\n v: 3\n },\n ,\n 4,\n ,\n ";
72
+ var node = TDJSONParser_1.TDJSONParser.get().parse(testDataRootArray, new TDJSONParserOption_1.TDJSONParserOption().setDefaultRootType(TDNode_1.TDNodeType.ARRAY));
73
+ var json = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, new TDJSONWriterOption_1.TDJSONWriterOption().setIndentFactor(2).setAlwaysQuoteKey(false));
74
+ console.log("testParseJson5:json=" + json);
75
+ expect(node.getChildrenSize()).toBe(7);
76
+ expect(node.getValueByPath('2')).toBe(2);
77
+ expect(node.getValueByPath('3/v')).toBe(3);
78
+ });
79
+ test('testInvalid', function () {
80
+ var node = TDJSONParser_1.TDJSONParser.get().parse('}');
81
+ expect(node.value).toBe('}');
82
+ node = TDJSONParser_1.TDJSONParser.get().parse('');
83
+ expect(node.value).toBeNull();
84
+ node = TDJSONParser_1.TDJSONParser.get().parse('[}]');
85
+ expect(node.getChild(0).value).toBe('}');
86
+ });
87
+ test('testTDPath', function () {
88
+ var jp = JSONPointer_1.JSONPointer.get();
89
+ var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testData);
90
+ var node1 = jp.query(node, '#1');
91
+ expect(node1.getChildValue('name')).toBe('Some Name 1');
92
+ // Relative with number support removed
93
+ // expect(jp.query(node1, '2/limit')!.value).toBe(10);
94
+ expect(node.value).toBeNull();
95
+ });
96
+ test('TDNode.toString', function () {
97
+ var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testData, new TDJSONParserOption_1.TDJSONParserOption().setDefaultRootType(TDNode_1.TDNodeType.MAP));
98
+ var str = node.toString();
99
+ console.log('testToString:str=' + str);
100
+ var str1 = node.toString();
101
+ expect(str1).toBe(str);
102
+ var city = node.getByPath('/data/0/address/city');
103
+ expect(city).not.toBeNull();
104
+ city.setValue(city.value);
105
+ var str2 = node.toString();
106
+ // expect(str2).not.toBe(str); // Javascript doesn't have real identity equality operator to verify it.
107
+ expect(str2).toEqual(str);
108
+ city.setValue('other city');
109
+ node.freeze();
110
+ var str3 = node.toString();
111
+ console.log('testToString:str=' + str3);
112
+ // toString should return different value when node value changed
113
+ expect(str3).not.toEqual(str);
114
+ expect(str3).toEqual("{total: '100000000000000000000', maxSafeInt: 9007199254740991, limit: 10, 3: 'valueWithoutKey', data: [{$id: '1', name: 'Some Name 1', address: {streetLine: '1st st', city: 'other city'}, createdAt: '2017-07-14T17:17:33.010Z', ip: '10.1.22.22'}, {$id: '2', name: 'Some Name 2', address: {streetLine: '2nd st', city: 'san jose'}, createdAt: '2017-07-14T17:17:33.010Z'}, 'Multiple line literal\\n Line2'], objRef: {$ref: '1'}, 6: 'lastValueWithoutKey'}");
115
+ var strWithoutRootKey = node.getChild("data").toStringInternal('', false, false, 100).toString();
116
+ expect(strWithoutRootKey).toEqual("[{name: 'Some Name 1', address: {streetLine: '1st st', city: 'other city'}, createdAt: '2017-07-14T17...', ...}, ...]");
117
+ var strWithoutRootKeyLimited = node.getChild("data").toStringInternal('', false, false, 10).toString();
118
+ expect(strWithoutRootKeyLimited).toEqual("[{name: 'So...', ...}, ...]");
119
+ });
120
+ test('testStream', function () {
121
+ var _a, _b, _c;
122
+ var reader = new StringCharSource_1.StringCharSource(testData.stream);
123
+ var nodes = [];
124
+ while (reader.skipSpacesAndReturnsAndCommas())
125
+ nodes.push(TDJSONParser_1.TDJSONParser.get().parse(reader));
126
+ var node = TreeDoc_1.TreeDoc_merge(nodes).root;
127
+ console.log("testStream=" + node.toString());
128
+ expect((_a = node.getChild(1)) === null || _a === void 0 ? void 0 : _a.key).toEqual("1");
129
+ expect((_c = (_b = node.getChild(1)) === null || _b === void 0 ? void 0 : _b.getChild(0)) === null || _c === void 0 ? void 0 : _c.doc).toBe(node.doc);
130
+ expect(node.toString()).toMatchSnapshot();
131
+ });
132
+ test('testParseAll', function () {
133
+ var node = TDJSONParser_1.TDJSONParser.get().parseAll(testData.stream);
134
+ console.log("testStream=" + node.toString());
135
+ expect(node.toString()).toMatchSnapshot();
136
+ var docFirstElement = node.doc.retain(node.children[0]);
137
+ node = docFirstElement.root;
138
+ console.log("testStream=" + node.toString());
139
+ expect(node.key).toEqual("root");
140
+ expect(node.toString()).toMatchSnapshot();
141
+ });
142
+ function parseWithException(str, expectedError) {
143
+ var error = null;
144
+ try {
145
+ TDJSONParser_1.TDJSONParser.get().parse(str);
146
+ }
147
+ catch (e) {
148
+ error = e.message;
149
+ }
150
+ expect(error).toBe(expectedError);
151
+ }
152
+ test('testParseAll', function () {
153
+ parseWithException("{abc:1", "EOF while expecting matching '}' with '{' at Bookmark(line=0, col=0, pos=0), Bookmark(line=0, col=6, pos=6), digest:");
154
+ parseWithException("{a:[abc,def}", "EOF while expecting matching ']' with '[' at Bookmark(line=0, col=3, pos=3), Bookmark(line=0, col=12, pos=12), digest:");
155
+ parseWithException("{a", "No ':' after key:a, Bookmark(line=0, col=2, pos=2), digest:");
156
+ parseWithException("{'a'", "No ':' after key:a, Bookmark(line=0, col=4, pos=4), digest:");
157
+ });
158
+ test('testParseMapToString', function () {
159
+ var str = "{K1=v1, k2=123, k3={c=Test with ,in}, k4=[ab,c, def]}";
160
+ console.log(TDJSONParserOption_1.TDJSONParserOption.ofMapToString());
161
+ var node = TDJSONParser_1.TDJSONParser.get().parse(str, TDJSONParserOption_1.TDJSONParserOption.ofMapToString());
162
+ expect(node.toString()).toBe("{K1: 'v1', k2: 123, k3: {c: 'Test with ,in'}, k4: ['ab,c', 'def']}");
163
+ });
164
+ function verifyParsePartialJson(name, src, expected) {
165
+ try {
166
+ TDJSONParser_1.TDJSONParser.get().parse(src);
167
+ fail(name + ":Expected ParseRuntimeException");
168
+ }
169
+ catch (e) {
170
+ expect(ParseRuntimeException_1.ParseRuntimeException.is(e)).toBe(true);
171
+ var node = e.partialObject;
172
+ expect(node).toBeDefined();
173
+ var root = node.doc.root;
174
+ expect(TDJSONWriter_1.TDJSONWriter.get().writeAsString(root, TDJSONWriterOption_1.TDJSONWriterOption.ofCompact())).toBe(expected);
175
+ }
176
+ }
177
+ test('testParsePartialJsonReturnsPartialNode', function () {
178
+ verifyParsePartialJson("Partial object", "{'a': 1, 'b': 2, ''c.: ", "{a:1,b:2}");
179
+ verifyParsePartialJson("Partial string value", "{'a': 'hello", "{a:hello}");
180
+ verifyParsePartialJson("Partial date value", '{"createdAt": "2026-04-07T11:30:', '{createdAt:"2026-04-07T11:30:"}');
181
+ });
182
+ });
183
+ //# sourceMappingURL=TDJsonParser.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDJsonParser.spec.js","sourceRoot":"","sources":["../../../../src/json/__test__/TDJsonParser.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};