treedoc 0.3.49 → 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 (176) 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/CSVParser.js.map +1 -1
  30. package/lib/csv/CSVWriter.js.map +1 -1
  31. package/lib/index.js +5 -1
  32. package/lib/index.js.map +1 -1
  33. package/lib/json/JSONPointer.js.map +1 -1
  34. package/lib/json/NodeFilter.js +12 -8
  35. package/lib/json/NodeFilter.js.map +1 -1
  36. package/lib/json/TDJSONOption.js.map +1 -1
  37. package/lib/json/TDJSONParser.js +5 -5
  38. package/lib/json/TDJSONParser.js.map +1 -1
  39. package/lib/json/TDJSONParserOption.js +2 -0
  40. package/lib/json/TDJSONParserOption.js.map +1 -1
  41. package/lib/json/TDJSONWriter.js.map +1 -1
  42. package/lib/json/TDJSONWriterOption.js +3 -1
  43. package/lib/json/TDJSONWriterOption.js.map +1 -1
  44. package/lib/objcoder/TDObjectCoder.d.ts +1 -1
  45. package/lib/objcoder/TDObjectCoder.js +2 -2
  46. package/lib/objcoder/TDObjectCoder.js.map +1 -1
  47. package/lib/src/Bookmark.d.ts +9 -0
  48. package/lib/src/Bookmark.js +31 -0
  49. package/lib/src/Bookmark.js.map +1 -0
  50. package/lib/src/TD.d.ts +20 -0
  51. package/lib/src/TD.js +53 -0
  52. package/lib/src/TD.js.map +1 -0
  53. package/lib/src/TDNode.d.ts +84 -0
  54. package/lib/src/TDNode.js +378 -0
  55. package/lib/src/TDNode.js.map +1 -0
  56. package/lib/src/TDNodeProxyHandler.d.ts +7 -0
  57. package/lib/src/TDNodeProxyHandler.js +50 -0
  58. package/lib/src/TDNodeProxyHandler.js.map +1 -0
  59. package/lib/src/TDPath.d.ts +31 -0
  60. package/lib/src/TDPath.js +87 -0
  61. package/lib/src/TDPath.js.map +1 -0
  62. package/lib/src/TreeDoc.d.ts +27 -0
  63. package/lib/src/TreeDoc.js +93 -0
  64. package/lib/src/TreeDoc.js.map +1 -0
  65. package/lib/src/__tests__/TD.spec.d.ts +1 -0
  66. package/lib/src/__tests__/TD.spec.js +90 -0
  67. package/lib/src/__tests__/TD.spec.js.map +1 -0
  68. package/lib/src/__tests__/TDNode.spec.d.ts +1 -0
  69. package/lib/src/__tests__/TDNode.spec.js +49 -0
  70. package/lib/src/__tests__/TDNode.spec.js.map +1 -0
  71. package/lib/src/__tests__/TDPath.spec.d.ts +1 -0
  72. package/lib/src/__tests__/TDPath.spec.js +15 -0
  73. package/lib/src/__tests__/TDPath.spec.js.map +1 -0
  74. package/lib/src/core/Appendable.d.ts +3 -0
  75. package/lib/src/core/Appendable.js +3 -0
  76. package/lib/src/core/Appendable.js.map +1 -0
  77. package/lib/src/core/CharSource.d.ts +47 -0
  78. package/lib/src/core/CharSource.js +199 -0
  79. package/lib/src/core/CharSource.js.map +1 -0
  80. package/lib/src/core/ClassUtil.d.ts +9 -0
  81. package/lib/src/core/ClassUtil.js +34 -0
  82. package/lib/src/core/ClassUtil.js.map +1 -0
  83. package/lib/src/core/EOFRuntimeException.d.ts +5 -0
  84. package/lib/src/core/EOFRuntimeException.js +32 -0
  85. package/lib/src/core/EOFRuntimeException.js.map +1 -0
  86. package/lib/src/core/LangUtil.d.ts +38 -0
  87. package/lib/src/core/LangUtil.js +110 -0
  88. package/lib/src/core/LangUtil.js.map +1 -0
  89. package/lib/src/core/ListUtil.d.ts +19 -0
  90. package/lib/src/core/ListUtil.js +38 -0
  91. package/lib/src/core/ListUtil.js.map +1 -0
  92. package/lib/src/core/ParseRuntimeException.d.ts +11 -0
  93. package/lib/src/core/ParseRuntimeException.js +40 -0
  94. package/lib/src/core/ParseRuntimeException.js.map +1 -0
  95. package/lib/src/core/StringBuilder.d.ts +9 -0
  96. package/lib/src/core/StringBuilder.js +30 -0
  97. package/lib/src/core/StringBuilder.js.map +1 -0
  98. package/lib/src/core/StringCharSource.d.ts +11 -0
  99. package/lib/src/core/StringCharSource.js +60 -0
  100. package/lib/src/core/StringCharSource.js.map +1 -0
  101. package/lib/src/core/StringUtil.d.ts +16 -0
  102. package/lib/src/core/StringUtil.js +75 -0
  103. package/lib/src/core/StringUtil.js.map +1 -0
  104. package/lib/src/core/__test__/ClassUtil.spec.d.ts +1 -0
  105. package/lib/src/core/__test__/ClassUtil.spec.js +16 -0
  106. package/lib/src/core/__test__/ClassUtil.spec.js.map +1 -0
  107. package/lib/src/core/__test__/StringCharSource.spec.d.ts +1 -0
  108. package/lib/src/core/__test__/StringCharSource.spec.js +18 -0
  109. package/lib/src/core/__test__/StringCharSource.spec.js.map +1 -0
  110. package/lib/src/core/__test__/StringUtil.spec.d.ts +1 -0
  111. package/lib/src/core/__test__/StringUtil.spec.js +23 -0
  112. package/lib/src/core/__test__/StringUtil.spec.js.map +1 -0
  113. package/lib/src/csv/CSV.spec.d.ts +1 -0
  114. package/lib/src/csv/CSV.spec.js +45 -0
  115. package/lib/src/csv/CSV.spec.js.map +1 -0
  116. package/lib/src/csv/CSVOption.d.ts +12 -0
  117. package/lib/src/csv/CSVOption.js +23 -0
  118. package/lib/src/csv/CSVOption.js.map +1 -0
  119. package/lib/src/csv/CSVParser.d.ts +13 -0
  120. package/lib/src/csv/CSVParser.js +133 -0
  121. package/lib/src/csv/CSVParser.js.map +1 -0
  122. package/lib/src/csv/CSVWriter.d.ts +14 -0
  123. package/lib/src/csv/CSVWriter.js +77 -0
  124. package/lib/src/csv/CSVWriter.js.map +1 -0
  125. package/lib/src/index.d.ts +21 -0
  126. package/lib/src/index.js +34 -0
  127. package/lib/src/index.js.map +1 -0
  128. package/lib/src/json/JSONPointer.d.ts +30 -0
  129. package/lib/src/json/JSONPointer.js +87 -0
  130. package/lib/src/json/JSONPointer.js.map +1 -0
  131. package/lib/src/json/NodeFilter.d.ts +25 -0
  132. package/lib/src/json/NodeFilter.js +115 -0
  133. package/lib/src/json/NodeFilter.js.map +1 -0
  134. package/lib/src/json/TDJSONOption.d.ts +26 -0
  135. package/lib/src/json/TDJSONOption.js +56 -0
  136. package/lib/src/json/TDJSONOption.js.map +1 -0
  137. package/lib/src/json/TDJSONParser.d.ts +19 -0
  138. package/lib/src/json/TDJSONParser.js +233 -0
  139. package/lib/src/json/TDJSONParser.js.map +1 -0
  140. package/lib/src/json/TDJSONParserOption.d.ts +24 -0
  141. package/lib/src/json/TDJSONParserOption.js +50 -0
  142. package/lib/src/json/TDJSONParserOption.js.map +1 -0
  143. package/lib/src/json/TDJSONWriter.d.ts +17 -0
  144. package/lib/src/json/TDJSONWriter.js +143 -0
  145. package/lib/src/json/TDJSONWriter.js.map +1 -0
  146. package/lib/src/json/TDJSONWriterOption.d.ts +36 -0
  147. package/lib/src/json/TDJSONWriterOption.js +88 -0
  148. package/lib/src/json/TDJSONWriterOption.js.map +1 -0
  149. package/lib/src/json/__test__/CharSource.spec.d.ts +1 -0
  150. package/lib/src/json/__test__/CharSource.spec.js +58 -0
  151. package/lib/src/json/__test__/CharSource.spec.js.map +1 -0
  152. package/lib/src/json/__test__/JSONPointer.spec.d.ts +1 -0
  153. package/lib/src/json/__test__/JSONPointer.spec.js +16 -0
  154. package/lib/src/json/__test__/JSONPointer.spec.js.map +1 -0
  155. package/lib/src/json/__test__/TDJsonParser.spec.d.ts +1 -0
  156. package/lib/src/json/__test__/TDJsonParser.spec.js +183 -0
  157. package/lib/src/json/__test__/TDJsonParser.spec.js.map +1 -0
  158. package/lib/src/json/__test__/TDJsonWriter.spec.d.ts +1 -0
  159. package/lib/src/json/__test__/TDJsonWriter.spec.js +71 -0
  160. package/lib/src/json/__test__/TDJsonWriter.spec.js.map +1 -0
  161. package/lib/src/json/__test__/TDNode.spec.d.ts +1 -0
  162. package/lib/src/json/__test__/TDNode.spec.js +17 -0
  163. package/lib/src/json/__test__/TDNode.spec.js.map +1 -0
  164. package/lib/src/json/__test__/TestData.d.ts +7 -0
  165. package/lib/src/json/__test__/TestData.js +15 -0
  166. package/lib/src/json/__test__/TestData.js.map +1 -0
  167. package/lib/src/objcoder/CustomCoder.d.ts +7 -0
  168. package/lib/src/objcoder/CustomCoder.js +27 -0
  169. package/lib/src/objcoder/CustomCoder.js.map +1 -0
  170. package/lib/src/objcoder/TDObjectCoder.d.ts +35 -0
  171. package/lib/src/objcoder/TDObjectCoder.js +141 -0
  172. package/lib/src/objcoder/TDObjectCoder.js.map +1 -0
  173. package/lib/vitest.config.d.ts +2 -0
  174. package/lib/vitest.config.js +10 -0
  175. package/lib/vitest.config.js.map +1 -0
  176. package/package.json +10 -12
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var TDJSONParser_1 = require("../../json/TDJSONParser");
4
+ var TDJSONWriter_1 = require("../../json/TDJSONWriter");
5
+ var TDJSONWriterOption_1 = require("../../json/TDJSONWriterOption");
6
+ var TestData_1 = require("./TestData");
7
+ var NodeFilter_1 = require("../../json/NodeFilter");
8
+ var __1 = require("../..");
9
+ var testData = new TestData_1.TestData();
10
+ describe('TDJsonWriter', function () {
11
+ test('testWriterWithNodeFilter', function () {
12
+ var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testData);
13
+ var opt = new TDJSONWriterOption_1.TDJSONWriterOption()
14
+ .setIndentFactor(2)
15
+ .addNodeFilter(NodeFilter_1.NodeFilter.mask('.*/address', '.*/ip'))
16
+ .addNodeFilter(NodeFilter_1.NodeFilter.exclude('.*/\\$id'));
17
+ var str = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, opt);
18
+ console.log(str);
19
+ expect(str).toMatchSnapshot();
20
+ node = TDJSONParser_1.TDJSONParser.get().parse(str);
21
+ expect(node.getValueByPath('/data/0/$id')).toBeNull();
22
+ expect(node.getValueByPath('/data/0/ip')).toEqual('<Masked:len=10>');
23
+ expect(node.getValueByPath('/data/0/address')).toEqual('{Masked:size=2}');
24
+ });
25
+ test('testQuote', function () {
26
+ var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testQuote);
27
+ var opt = TDJSONWriterOption_1.TDJSONWriterOption.ofIndentFactor(2)
28
+ .setQuoteChars('"\'')
29
+ .setAlwaysQuoteKey(false)
30
+ .setAlwaysQuoteValue(false);
31
+ var result = __1.TD.stringify(node.toObject(), { jsonOption: opt }) + '\n';
32
+ expect(result).toMatchSnapshot();
33
+ expect(TDJSONParser_1.TDJSONParser.get()
34
+ .parse(result)
35
+ .toString()).toEqual(node.toString());
36
+ });
37
+ test('testQuote1', function () {
38
+ var obj = { name: 'test', columns: [{ field: '#' }, { field2: 'val2' }] };
39
+ var result = __1.TD.stringify(obj, { jsonOption: { alwaysQuoteKey: false, alwaysQuoteValue: false } });
40
+ expect(result).toMatchInlineSnapshot("\"{name:test,columns:[{field:\\\"#\\\"},{field2:val2}]}\"");
41
+ });
42
+ test('testWriterWithTextDeco', function () {
43
+ var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testData);
44
+ var opt = new TDJSONWriterOption_1.TDJSONWriterOption().setIndentFactor(2).setTextDecorator(function (s, type) {
45
+ switch (type) {
46
+ case TDJSONWriterOption_1.TextType.KEY:
47
+ return '<b>' + s + '</b>';
48
+ case TDJSONWriterOption_1.TextType.OPERATOR:
49
+ return '<font color=red>' + s + '</font>';
50
+ case TDJSONWriterOption_1.TextType.NON_STRING:
51
+ return '<font color=green>' + s + '</font>';
52
+ case TDJSONWriterOption_1.TextType.STRING:
53
+ default:
54
+ return s;
55
+ }
56
+ });
57
+ var str = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, opt);
58
+ console.log(str);
59
+ expect(str).toMatchSnapshot();
60
+ expect(str).toContain('<b>total</b>');
61
+ expect(str).toContain('<font color=red>:</font>');
62
+ expect(str).toContain('<font color=green>9007199254740991</font>');
63
+ });
64
+ test('testWriterWithTypeWrapper', function () {
65
+ var node = TDJSONParser_1.TDJSONParser.get().parse('{key:113, $type: someType}');
66
+ var opt = TDJSONWriterOption_1.TDJSONWriterOption.ofIndentFactor(0).setUseTypeWrapper(true);
67
+ var str = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, opt);
68
+ expect(str).toMatchInlineSnapshot("\"someType{\\\"key\\\":113,}\"");
69
+ });
70
+ });
71
+ //# sourceMappingURL=TDJsonWriter.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDJsonWriter.spec.js","sourceRoot":"","sources":["../../../../src/json/__test__/TDJsonWriter.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var TDNode_1 = require("../../TDNode");
4
+ var TreeDoc_1 = require("../../TreeDoc");
5
+ test('testCreateLastNumberOfChildren', function () {
6
+ var node = new TreeDoc_1.TreeDoc().root.setType(TDNode_1.TDNodeType.ARRAY);
7
+ var start = new Date().getTime();
8
+ for (var i = 0; i < 1000000; i++) {
9
+ node.createChild("name_" + i).setType(TDNode_1.TDNodeType.MAP).createChild("name_" + i + "_1").setValue("value_" + i + "_1");
10
+ }
11
+ expect(node.getChild("name_0")).not.toBeNull();
12
+ var keys = node.getChildrenKeys();
13
+ var time = new Date().getTime() - start;
14
+ console.log(time);
15
+ expect(time).toBeLessThan(5000);
16
+ });
17
+ //# sourceMappingURL=TDNode.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDNode.spec.js","sourceRoot":"","sources":["../../../../src/json/__test__/TDNode.spec.ts"],"names":[],"mappings":";;AAAA,uCAAkD;AAClD,yCAAwC;AAExC,IAAI,CAAC,gCAAgC,EAAE;IACrC,IAAM,IAAI,GAAG,IAAI,iBAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAU,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;QAChC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAU,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;KACrH;IACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC/C,IAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACpC,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare class TestData {
2
+ testData: string;
3
+ proto: string;
4
+ JSON5: string;
5
+ stream: string;
6
+ testQuote: string;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestData = void 0;
4
+ var TestData = /** @class */ (function () {
5
+ function TestData() {
6
+ this.testData = "\n// Some comments\n{\u00A0\n \"total\": 100000000000000000000,\n \"maxSafeInt\": 9007199254740991,\n \"limit\": 10,\n \"valueWithoutKey\",\n\n /* block comments */\n \"data\": [\n {\n \"$id\": \"1\",\n \"name\": \"Some Name 1\", // More line comments\n \"address\": {\n \"streetLine\": \"1st st\",\n city: \"san jose\",\n },\n \"createdAt\": \"2017-07-14T17:17:33.010Z\",\n 'ip': 10.1.22.22\n },\n {\n \"$id\": \"2\",\n \"name\": \"Some Name 2\",\n \"address\": /*comments*/ {\n \"streetLine\": \"2nd st\",\n city: \"san jose\",\n },\n \"createdAt\": \"2017-07-14T17:17:33.010Z\",\n },\n `Multiple line literal\n Line2`\n ],\n \"objRef\": {\"$ref\": \"1\"},\n lastValueWithoutKey\n}";
7
+ this.proto = "\nn: {\n n1: {\n n11: 1\n # Duplicated key; ':' is emitted before '{'\n n11 {\n n111: false\n }\n n12: \"2\"\n }\n # Multi-line comments\n # Line2\n ########\n n1: {\n n11: \"abcd\"\n # Extension keys\n [d.e.f]: 4\n n11: \"multiline 1\n\"\n 'line2'\n }\n n2: [1,2,3]\n n2 [3,4,5] # ':' is emitted before '['\n \"n3\" [6, 7, 8, 9]\n noVal:\n}";
8
+ this.JSON5 = "\n // https://spec.json5.org/\n {\n // comments\n unquoted: 'and you can quote me on that',\n singleQuotes: 'I can use \"double quotes\" here',\n lineBreaks: \"Look, Mom! No \\n's!\",\n hexadecimal: 0xdecaf,\n leadingDecimalPoint: .8675309, andTrailing: 8675309.,\n positiveSign: +1,\n trailingComma: 'in objects', andIn: ['arrays',],\n \"backwardsCompatible\": \"with JSON\",\n }";
9
+ this.stream = "\n{\"a\": 1, \"obj\": {\"$id\": 1}, \"ref\": {\"$ref\": \"#1\"}}\n{\"b\": 2, \"obj\": {\"$id\": 1}, \"ref\": {\"$ref\": \"#1\"}},\na:1\nb:2\n";
10
+ this.testQuote = "{\n \"key with space\": \"value contains special chars: [\",\n \"normalKey\": \"normal Value\",\n \"keyWith:\": \"value has quotes: \" \", '\",\n \"keyWIth\n\": \"value with\n newline\",\n \"keyWith#\": \"#\",\n \"$type\": \"TestQuote\"\n}\n";
11
+ }
12
+ return TestData;
13
+ }());
14
+ exports.TestData = TestData;
15
+ //# sourceMappingURL=TestData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestData.js","sourceRoot":"","sources":["../../../../src/json/__test__/TestData.ts"],"names":[],"mappings":";;;AAAA;IAAA;QACA,aAAQ,GAAG,4xBAkCT,CAAC;QAEH,UAAK,GAAG,uYAwBN,CAAC;QAEH,UAAK,GAAG,8ZAaJ,CAAC;QAEL,WAAM,GAAG,mJAKR,CAAA;QAED,cAAS,GAAG,yPAQX,CAAA;IACD,CAAC;IAAD,eAAC;AAAD,CAAC,AA9FD,IA8FC;AA9FY,4BAAQ"}
@@ -0,0 +1,7 @@
1
+ import { ICoder, ObjectCoderContext, TDObjectCoderOption } from './TDObjectCoder';
2
+ import { TDNode } from '../TDNode';
3
+ export declare class CustomCoder implements ICoder {
4
+ static it: CustomCoder;
5
+ static get(): CustomCoder;
6
+ encode(obj: any, opt: TDObjectCoderOption, target: TDNode, ctx: ObjectCoderContext): boolean;
7
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomCoder = void 0;
4
+ var TDNode_1 = require("../TDNode");
5
+ var TDJSONParser_1 = require("../json/TDJSONParser");
6
+ var TDJSONParserOption_1 = require("../json/TDJSONParserOption");
7
+ var CustomCoder = /** @class */ (function () {
8
+ function CustomCoder() {
9
+ }
10
+ CustomCoder.get = function () {
11
+ return CustomCoder.it;
12
+ };
13
+ CustomCoder.prototype.encode = function (obj, opt, target, ctx) {
14
+ if (!obj.toJSON)
15
+ return false;
16
+ var jsonStr = obj.toJSON();
17
+ if (typeof (jsonStr) !== 'string')
18
+ return false;
19
+ var node = TDJSONParser_1.TDJSONParser.get().parse(jsonStr, TDJSONParserOption_1.TDJSONParserOption.ofDefaultRootType(TDNode_1.TDNodeType.SIMPLE));
20
+ target.setType(node.type).setValue(node.value).children = node.children;
21
+ return true;
22
+ };
23
+ CustomCoder.it = new CustomCoder();
24
+ return CustomCoder;
25
+ }());
26
+ exports.CustomCoder = CustomCoder;
27
+ //# sourceMappingURL=CustomCoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomCoder.js","sourceRoot":"","sources":["../../../src/objcoder/CustomCoder.ts"],"names":[],"mappings":";;;AACA,oCAAuC;AAEvC,qDAAoD;AACpD,iEAAgE;AAEhE;IAAA;IAeA,CAAC;IAbe,eAAG,GAAjB;QACE,OAAO,WAAW,CAAC,EAAE,CAAC;IACxB,CAAC;IACM,4BAAM,GAAb,UAAc,GAAQ,EAAE,GAAwB,EAAE,MAAc,EAAE,GAAuB;QACvF,IAAI,CAAC,GAAG,CAAC,MAAM;YACb,OAAO,KAAK,CAAC;QACf,IAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,OAAM,CAAC,OAAO,CAAC,KAAK,QAAQ;YAC9B,OAAO,KAAK,CAAC;QACf,IAAM,IAAI,GAAG,2BAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,uCAAkB,CAAC,iBAAiB,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACxG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAba,cAAE,GAAG,IAAI,WAAW,EAAE,CAAC;IAcvC,kBAAC;CAAA,AAfD,IAeC;AAfY,kCAAW"}
@@ -0,0 +1,35 @@
1
+ import { TDNode } from '..';
2
+ export declare class ObjectCoderContext {
3
+ nextId: number;
4
+ /** only used for encoding */
5
+ objNodeMap: Map<any, TDNode>;
6
+ /** only used for decoding */
7
+ idToObjMap: Map<string, TDNode>;
8
+ path: any[];
9
+ }
10
+ export interface ICoder {
11
+ /** return true means encoded */
12
+ encode(obj: any, opt: TDObjectCoderOption, target: TDNode, ctx: ObjectCoderContext): boolean;
13
+ }
14
+ export declare class TDObjectCoderOption {
15
+ coders: ICoder[];
16
+ showType: boolean;
17
+ showFunction: boolean;
18
+ setShowType(showType: boolean): this;
19
+ setShowFunction(showFunction: boolean): this;
20
+ }
21
+ /** Javascript specific class that map JS object to/from TDNode */
22
+ export declare class TDObjectCoder {
23
+ static it: TDObjectCoder;
24
+ readonly KEY_ID = "$id";
25
+ readonly KEY_REF = "$ref";
26
+ readonly KEY_TYPE = "$type";
27
+ static get(): TDObjectCoder;
28
+ static encode(obj: any, opt?: Partial<TDObjectCoderOption>, target?: TDNode, ctx?: ObjectCoderContext): TDNode;
29
+ encode(obj: any, option?: Partial<TDObjectCoderOption>, target?: TDNode, ctx?: ObjectCoderContext): TDNode;
30
+ private setRef;
31
+ private isNullOrUndefined;
32
+ private isPrimitive;
33
+ private isArrayLikeObject;
34
+ private isLength;
35
+ }
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TDObjectCoder = exports.TDObjectCoderOption = exports.ObjectCoderContext = void 0;
4
+ var TDNode_1 = require("../TDNode");
5
+ var TreeDoc_1 = require("../TreeDoc");
6
+ var CustomCoder_1 = require("./CustomCoder");
7
+ var StringUtil_1 = require("../core/StringUtil");
8
+ var __1 = require("..");
9
+ var ObjectCoderContext = /** @class */ (function () {
10
+ function ObjectCoderContext() {
11
+ this.nextId = 1;
12
+ /** only used for encoding */
13
+ this.objNodeMap = new Map();
14
+ /** only used for decoding */
15
+ this.idToObjMap = new Map();
16
+ this.path = [];
17
+ }
18
+ return ObjectCoderContext;
19
+ }());
20
+ exports.ObjectCoderContext = ObjectCoderContext;
21
+ var TDObjectCoderOption = /** @class */ (function () {
22
+ function TDObjectCoderOption() {
23
+ this.coders = [CustomCoder_1.CustomCoder.get()];
24
+ this.showType = false;
25
+ this.showFunction = false;
26
+ }
27
+ TDObjectCoderOption.prototype.setShowType = function (showType) {
28
+ this.showType = showType;
29
+ return this;
30
+ };
31
+ TDObjectCoderOption.prototype.setShowFunction = function (showFunction) {
32
+ this.showFunction = showFunction;
33
+ return this;
34
+ };
35
+ return TDObjectCoderOption;
36
+ }());
37
+ exports.TDObjectCoderOption = TDObjectCoderOption;
38
+ /** Javascript specific class that map JS object to/from TDNode */
39
+ var TDObjectCoder = /** @class */ (function () {
40
+ function TDObjectCoder() {
41
+ this.KEY_ID = '$id';
42
+ this.KEY_REF = '$ref';
43
+ this.KEY_TYPE = '$type';
44
+ }
45
+ TDObjectCoder.get = function () {
46
+ return TDObjectCoder.it;
47
+ };
48
+ TDObjectCoder.encode = function (obj, opt, target, ctx) {
49
+ if (opt === void 0) { opt = {}; }
50
+ if (target === void 0) { target = new TreeDoc_1.TreeDoc().root; }
51
+ if (ctx === void 0) { ctx = new ObjectCoderContext(); }
52
+ return TDObjectCoder.get().encode(obj, opt, target, ctx);
53
+ };
54
+ TDObjectCoder.prototype.encode = function (obj, option, target, ctx) {
55
+ if (option === void 0) { option = {}; }
56
+ if (target === void 0) { target = new TreeDoc_1.TreeDoc().root; }
57
+ if (ctx === void 0) { ctx = new ObjectCoderContext(); }
58
+ var opt = __1.LangUtil.mergeDeep(new TDObjectCoderOption(), option);
59
+ if (this.isNullOrUndefined(obj))
60
+ return target;
61
+ if (this.isPrimitive(obj))
62
+ return target.setValue(obj);
63
+ if (typeof obj === 'function')
64
+ return target.setValue(opt.showFunction ? obj.toString() : null);
65
+ for (var _i = 0, _a = opt.coders; _i < _a.length; _i++) {
66
+ var coder = _a[_i];
67
+ if (coder.encode(obj, opt, target, ctx))
68
+ return target;
69
+ }
70
+ var idx = ctx.path.indexOf(obj);
71
+ if (idx >= 0)
72
+ return this.setRef(target, StringUtil_1.StringUtil.repeat('../', ctx.path.length - idx));
73
+ var existNode = ctx.objNodeMap.get(obj);
74
+ if (existNode) {
75
+ if (existNode.type === TDNode_1.TDNodeType.MAP) {
76
+ if (!existNode.getChild(this.KEY_ID)) {
77
+ var id = ctx.nextId++;
78
+ existNode.createChild(this.KEY_ID).setValue(id);
79
+ target.doc.idMap[id] = existNode;
80
+ }
81
+ return this.setRef(target, '#' + existNode.getChildValue(this.KEY_ID));
82
+ }
83
+ else
84
+ return this.setRef(target, existNode.pathAsString);
85
+ }
86
+ ctx.path.push(obj);
87
+ ctx.objNodeMap.set(obj, target);
88
+ if (this.isArrayLikeObject(obj)) {
89
+ target.type = TDNode_1.TDNodeType.ARRAY;
90
+ // tslint:disable-next-line: prefer-for-of
91
+ for (var i = 0; i < obj.length; i++)
92
+ this.encode(obj[i], opt, target.createChild(), ctx);
93
+ }
94
+ else {
95
+ // Object or Map
96
+ target.type = TDNode_1.TDNodeType.MAP;
97
+ if (opt.showType && obj.constructor && obj.constructor.name !== 'Object')
98
+ target.createChild(this.KEY_TYPE).setValue(obj.constructor.name);
99
+ for (var _b = 0, _c = Object.keys(obj); _b < _c.length; _b++) {
100
+ var k = _c[_b];
101
+ if (k.startsWith("$$tdNode"))
102
+ continue;
103
+ if (this.isNullOrUndefined(obj[k]))
104
+ continue;
105
+ if (!opt.showFunction && typeof obj === 'function')
106
+ continue;
107
+ this.encode(obj[k], opt, target.createChild(k), ctx);
108
+ }
109
+ }
110
+ ctx.path.pop();
111
+ return target;
112
+ };
113
+ TDObjectCoder.prototype.setRef = function (node, ref) {
114
+ node
115
+ .setType(TDNode_1.TDNodeType.MAP)
116
+ .createChild(this.KEY_REF)
117
+ .setValue(ref);
118
+ return node;
119
+ };
120
+ // Utilities methods
121
+ TDObjectCoder.prototype.isNullOrUndefined = function (obj) {
122
+ return obj === null || obj === undefined || typeof obj === 'symbol';
123
+ };
124
+ TDObjectCoder.prototype.isPrimitive = function (obj) {
125
+ var type = typeof obj;
126
+ if (obj === null || obj === undefined || type !== 'object' && type !== 'function')
127
+ return true;
128
+ var cstr = obj.constructor && obj.constructor.name;
129
+ return cstr === 'Number' || cstr === 'String' || cstr === 'Boolean';
130
+ };
131
+ TDObjectCoder.prototype.isArrayLikeObject = function (obj) {
132
+ return !this.isPrimitive(obj) && this.isLength(obj.length);
133
+ };
134
+ TDObjectCoder.prototype.isLength = function (value) {
135
+ return typeof value === 'number' && value > -1 && value % 1 === 0 && value <= Number.MAX_SAFE_INTEGER;
136
+ };
137
+ TDObjectCoder.it = new TDObjectCoder();
138
+ return TDObjectCoder;
139
+ }());
140
+ exports.TDObjectCoder = TDObjectCoder;
141
+ //# sourceMappingURL=TDObjectCoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDObjectCoder.js","sourceRoot":"","sources":["../../../src/objcoder/TDObjectCoder.ts"],"names":[],"mappings":";;;AACA,oCAAuC;AACvC,sCAAqC;AACrC,6CAA4C;AAC5C,iDAAgD;AAChD,wBAA8B;AAE9B;IAAA;QACS,WAAM,GAAG,CAAC,CAAC;QAElB,6BAA6B;QACtB,eAAU,GAAG,IAAI,GAAG,EAAe,CAAC;QAE3C,6BAA6B;QACtB,eAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEvC,SAAI,GAAU,EAAE,CAAC;IAC1B,CAAC;IAAD,yBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,gDAAkB;AAiB/B;IAAA;QACS,WAAM,GAAa,CAAC,yBAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QACvC,aAAQ,GAAG,KAAK,CAAC;QACjB,iBAAY,GAAG,KAAK,CAAC;IAW9B,CAAC;IATQ,yCAAW,GAAlB,UAAmB,QAAiB;QAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,6CAAe,GAAtB,UAAuB,YAAqB;QAC1C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACH,0BAAC;AAAD,CAAC,AAdD,IAcC;AAdY,kDAAmB;AAgBhC,kEAAkE;AAClE;IAAA;QAEkB,WAAM,GAAG,KAAK,CAAC;QACf,YAAO,GAAG,MAAM,CAAC;QACjB,aAAQ,GAAG,OAAO,CAAC;IAmGrC,CAAC;IAlGe,iBAAG,GAAjB;QACE,OAAO,aAAa,CAAC,EAAE,CAAC;IAC1B,CAAC;IAEa,oBAAM,GAApB,UACE,GAAQ,EAAE,GAAsC,EAAE,MAA2B,EAAE,GAA8B;QAAnG,oBAAA,EAAA,QAAsC;QAAE,uBAAA,EAAA,SAAS,IAAI,iBAAO,EAAE,CAAC,IAAI;QAAE,oBAAA,EAAA,UAAU,kBAAkB,EAAE;QAC7G,OAAO,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAEM,8BAAM,GAAb,UACE,GAAQ,EAAE,MAAyC,EAAE,MAA2B,EAAE,GAA8B;QAAtG,uBAAA,EAAA,WAAyC;QAAE,uBAAA,EAAA,SAAS,IAAI,iBAAO,EAAE,CAAC,IAAI;QAAE,oBAAA,EAAA,UAAU,kBAAkB,EAAE;QAChH,IAAM,GAAG,GAAG,YAAQ,CAAC,SAAS,CAAC,IAAI,mBAAmB,EAAE,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;YAC7B,OAAO,MAAM,CAAC;QAEhB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;YACvB,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,OAAO,GAAG,KAAK,UAAU;YAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEnE,KAAoB,UAAU,EAAV,KAAA,GAAG,CAAC,MAAM,EAAV,cAAU,EAAV,IAAU;YAAzB,IAAM,KAAK,SAAA;YACd,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC;gBACrC,OAAO,MAAM,CAAC;SAAA;QAElB,IAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,GAAG,IAAI,CAAC;YACV,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAU,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;QAE9E,IAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,SAAS,EAAE;YACb,IAAI,SAAS,CAAC,IAAI,KAAK,mBAAU,CAAC,GAAG,EAAE;gBACrC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBACpC,IAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;oBACxB,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAChD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;iBAClC;gBAED,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aACxE;;gBACC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;SACtD;QAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE;YAC/B,MAAM,CAAC,IAAI,GAAG,mBAAU,CAAC,KAAK,CAAC;YAC/B,0CAA0C;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;gBACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAG;SACzD;aAAM;YACL,gBAAgB;YAChB,MAAM,CAAC,IAAI,GAAG,mBAAU,CAAC,GAAG,CAAC;YAC7B,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ;gBACtE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YAClE,KAAgB,UAAgB,EAAhB,KAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAhB,cAAgB,EAAhB,IAAgB,EAAE;gBAA7B,IAAM,CAAC,SAAA;gBACV,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;oBAC1B,SAAS;gBACX,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAChC,SAAS;gBACX,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,GAAG,KAAK,UAAU;oBAChD,SAAS;gBACX,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACtD;SACF;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,8BAAM,GAAd,UAAe,IAAY,EAAE,GAAW;QACtC,IAAI;aACD,OAAO,CAAC,mBAAU,CAAC,GAAG,CAAC;aACvB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;aACzB,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB;IACZ,yCAAiB,GAAzB,UAA0B,GAAQ;QAChC,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;IACtE,CAAC;IAEO,mCAAW,GAAnB,UAAoB,GAAQ;QAC1B,IAAM,IAAI,GAAG,OAAO,GAAG,CAAC;QACxB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAI,SAAS,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU;YAC9E,OAAO,IAAI,CAAC;QACd,IAAM,IAAI,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;QACrD,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,CAAC;IACtE,CAAC;IAEO,yCAAiB,GAAzB,UAA0B,GAAQ;QAChC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAEO,gCAAQ,GAAhB,UAAiB,KAAU;QACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,gBAAgB,CAAC;IACxG,CAAC;IArGa,gBAAE,GAAkB,IAAI,aAAa,EAAE,CAAC;IAsGxD,oBAAC;CAAA,AAvGD,IAuGC;AAvGY,sCAAa"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var config_1 = require("vitest/config");
4
+ exports.default = config_1.defineConfig({
5
+ test: {
6
+ globals: true,
7
+ include: ['src/**/*.spec.ts'],
8
+ },
9
+ });
10
+ //# sourceMappingURL=vitest.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";;AAAA,wCAA6C;AAE7C,kBAAe,qBAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,kBAAkB,CAAC;KAC9B;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "name": "treedoc",
3
- "version": "0.3.49",
3
+ "version": "0.3.50",
4
4
  "description": "JSONex TreeDoc Json Parser",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "scripts": {
8
- "test": "jest --config jestconfig.json",
8
+ "test": "vitest run",
9
+ "test:watch": "vitest",
10
+ "test:coverage": "vitest run --coverage",
9
11
  "build": "tsc",
10
12
  "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
11
13
  "lint": "tslint -p tsconfig.json",
@@ -36,19 +38,15 @@
36
38
  "license": "MIT",
37
39
  "homepage": "https://github.com/jianwu/jsonextreedoc_ts/#readme",
38
40
  "devDependencies": {
39
- "@types/jest": "^26.0.15",
41
+ "@types/node": "^22.15.21",
40
42
  "codecov": "^3.6.1",
41
- "jest": "^26.6.3",
42
- "prettier": "^1.13.2",
43
- "ts-jest": "^26.2.0",
44
- "tslint": "^5.20.1",
43
+ "prettier": "^3.5.3",
44
+ "tslint": "^6.1.3",
45
45
  "tslint-config-prettier": "^1.18.0",
46
- "typescript": "^4.1.2"
46
+ "typescript": "^5.8.3",
47
+ "vitest": "^3.2.2"
47
48
  },
48
49
  "files": [
49
50
  "lib/**/*"
50
- ],
51
- "jest": {
52
- "testEnvironment": "node"
53
- }
51
+ ]
54
52
  }