@diplodoc/transform 4.57.7 → 4.58.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 (152) hide show
  1. package/dist/css/_yfm-only.css.map +1 -1
  2. package/dist/css/_yfm-only.min.css.map +1 -1
  3. package/dist/css/base.css.map +1 -1
  4. package/dist/css/base.min.css.map +1 -1
  5. package/dist/css/print.css.map +1 -1
  6. package/dist/css/yfm.css.map +1 -1
  7. package/dist/css/yfm.min.css.map +1 -1
  8. package/lib/constants.d.ts +1 -1
  9. package/lib/headings.d.ts +2 -2
  10. package/lib/headings.js.map +1 -1
  11. package/lib/highlight.d.ts +1 -1
  12. package/lib/highlight.js.map +1 -1
  13. package/lib/liquid/conditions.js.map +1 -1
  14. package/lib/liquid/index.d.ts +1 -1
  15. package/lib/liquid/index.js.map +1 -1
  16. package/lib/plugins/anchors/collect.d.ts +1 -1
  17. package/lib/plugins/anchors/collect.js.map +1 -1
  18. package/lib/plugins/anchors/constants.d.ts +1 -1
  19. package/lib/plugins/anchors/index.d.ts +1 -1
  20. package/lib/plugins/anchors/index.js.map +1 -1
  21. package/lib/plugins/block-anchor/block-anchor.d.ts +2 -2
  22. package/lib/plugins/block-anchor/index.d.ts +1 -1
  23. package/lib/plugins/changelog/collect.d.ts +2 -2
  24. package/lib/plugins/changelog/collect.js.map +1 -1
  25. package/lib/plugins/changelog/index.d.ts +1 -1
  26. package/lib/plugins/changelog/index.js.map +1 -1
  27. package/lib/plugins/checkbox/index.d.ts +1 -1
  28. package/lib/plugins/checkbox/index.js.map +1 -1
  29. package/lib/plugins/code.d.ts +1 -1
  30. package/lib/plugins/code.js +1 -1
  31. package/lib/plugins/code.js.map +1 -1
  32. package/lib/plugins/deflist.d.ts +1 -1
  33. package/lib/plugins/deflist.js.map +1 -1
  34. package/lib/plugins/images/collect.d.ts +1 -1
  35. package/lib/plugins/images/collect.js.map +1 -1
  36. package/lib/plugins/images/index.d.ts +1 -1
  37. package/lib/plugins/images/index.js.map +1 -1
  38. package/lib/plugins/imsize/index.d.ts +2 -2
  39. package/lib/plugins/imsize/index.js.map +1 -1
  40. package/lib/plugins/includes/collect.d.ts +1 -1
  41. package/lib/plugins/includes/collect.js.map +1 -1
  42. package/lib/plugins/includes/index.d.ts +2 -2
  43. package/lib/plugins/includes/index.js +1 -1
  44. package/lib/plugins/includes/index.js.map +1 -1
  45. package/lib/plugins/includes/types.d.ts +2 -2
  46. package/lib/plugins/links/index.d.ts +4 -4
  47. package/lib/plugins/links/index.js.map +1 -1
  48. package/lib/plugins/meta.d.ts +1 -1
  49. package/lib/plugins/meta.js.map +1 -1
  50. package/lib/plugins/monospace.d.ts +1 -1
  51. package/lib/plugins/notes/constants.d.ts +1 -1
  52. package/lib/plugins/notes/index.d.ts +1 -1
  53. package/lib/plugins/notes/index.js.map +1 -1
  54. package/lib/plugins/ol-attr-conversion.d.ts +1 -1
  55. package/lib/plugins/sup.d.ts +1 -1
  56. package/lib/plugins/sup.js.map +1 -1
  57. package/lib/plugins/table/index.d.ts +3 -2
  58. package/lib/plugins/table/index.js +152 -28
  59. package/lib/plugins/table/index.js.map +1 -1
  60. package/lib/plugins/table/types.d.ts +34 -0
  61. package/lib/plugins/table/types.js +3 -0
  62. package/lib/plugins/table/types.js.map +1 -0
  63. package/lib/plugins/term/index.d.ts +1 -1
  64. package/lib/plugins/term/termDefinitions.d.ts +3 -3
  65. package/lib/plugins/term/termDefinitions.js.map +1 -1
  66. package/lib/plugins/utils.d.ts +2 -2
  67. package/lib/plugins/utils.js.map +1 -1
  68. package/lib/preprocessors/included/index.d.ts +1 -1
  69. package/lib/preprocessors/included/index.js.map +1 -1
  70. package/lib/sanitize.d.ts +1 -1
  71. package/lib/sanitize.js.map +1 -1
  72. package/lib/title.d.ts +1 -1
  73. package/lib/typings.d.ts +7 -6
  74. package/lib/utils.d.ts +1 -1
  75. package/lib/utils.js.map +1 -1
  76. package/lib/utilsFS.d.ts +1 -1
  77. package/lib/utilsFS.js.map +1 -1
  78. package/lib/yfmlint/index.d.ts +3 -3
  79. package/lib/yfmlint/index.js.map +1 -1
  80. package/lib/yfmlint/markdownlint-custom-rule/yfm001.d.ts +1 -1
  81. package/lib/yfmlint/markdownlint-custom-rule/yfm001.js.map +1 -1
  82. package/lib/yfmlint/markdownlint-custom-rule/yfm002.d.ts +1 -1
  83. package/lib/yfmlint/markdownlint-custom-rule/yfm003.d.ts +1 -1
  84. package/lib/yfmlint/markdownlint-custom-rule/yfm004.d.ts +1 -1
  85. package/lib/yfmlint/markdownlint-custom-rule/yfm005.d.ts +1 -1
  86. package/lib/yfmlint/markdownlint-custom-rule/yfm006.d.ts +1 -1
  87. package/lib/yfmlint/markdownlint-custom-rule/yfm007.d.ts +1 -1
  88. package/lib/yfmlint/markdownlint-custom-rule/yfm008.d.ts +1 -1
  89. package/lib/yfmlint/markdownlint-custom-rule/yfm009.d.ts +1 -1
  90. package/lib/yfmlint/typings.d.ts +3 -3
  91. package/lib/yfmlint/utils.d.ts +2 -2
  92. package/lib/yfmlint/utils.js.map +1 -1
  93. package/lib/yfmlint/yfmlint.d.ts +1 -1
  94. package/lib/yfmlint/yfmlint.js.map +1 -1
  95. package/package.json +2 -1
  96. package/src/transform/constants.ts +1 -1
  97. package/src/transform/headings.ts +2 -3
  98. package/src/transform/highlight.ts +2 -2
  99. package/src/transform/liquid/conditions.ts +3 -1
  100. package/src/transform/liquid/index.ts +2 -1
  101. package/src/transform/plugins/anchors/collect.ts +2 -1
  102. package/src/transform/plugins/anchors/constants.ts +1 -1
  103. package/src/transform/plugins/anchors/index.ts +4 -3
  104. package/src/transform/plugins/block-anchor/block-anchor.ts +2 -2
  105. package/src/transform/plugins/block-anchor/index.ts +1 -1
  106. package/src/transform/plugins/changelog/collect.ts +3 -3
  107. package/src/transform/plugins/changelog/index.ts +5 -5
  108. package/src/transform/plugins/checkbox/index.ts +2 -1
  109. package/src/transform/plugins/code.ts +3 -2
  110. package/src/transform/plugins/deflist.ts +2 -2
  111. package/src/transform/plugins/images/collect.ts +2 -1
  112. package/src/transform/plugins/images/index.ts +4 -3
  113. package/src/transform/plugins/imsize/index.ts +3 -2
  114. package/src/transform/plugins/includes/collect.ts +2 -2
  115. package/src/transform/plugins/includes/index.ts +8 -13
  116. package/src/transform/plugins/includes/types.ts +2 -2
  117. package/src/transform/plugins/links/index.ts +6 -6
  118. package/src/transform/plugins/meta.ts +2 -2
  119. package/src/transform/plugins/monospace.ts +3 -3
  120. package/src/transform/plugins/notes/constants.ts +1 -1
  121. package/src/transform/plugins/notes/index.ts +6 -4
  122. package/src/transform/plugins/ol-attr-conversion.ts +1 -1
  123. package/src/transform/plugins/sup.ts +2 -2
  124. package/src/transform/plugins/table/index.ts +190 -31
  125. package/src/transform/plugins/table/types.ts +35 -0
  126. package/src/transform/plugins/term/index.ts +3 -3
  127. package/src/transform/plugins/term/termDefinitions.ts +3 -4
  128. package/src/transform/plugins/utils.ts +3 -3
  129. package/src/transform/plugins/video/parsers.ts +2 -2
  130. package/src/transform/preprocessors/included/index.ts +3 -2
  131. package/src/transform/sanitize.ts +4 -2
  132. package/src/transform/title.ts +1 -1
  133. package/src/transform/typings.ts +7 -7
  134. package/src/transform/utils.ts +2 -1
  135. package/src/transform/utilsFS.ts +1 -1
  136. package/src/transform/yfmlint/index.ts +4 -3
  137. package/src/transform/yfmlint/markdownlint-custom-rule/yfm001.ts +2 -1
  138. package/src/transform/yfmlint/markdownlint-custom-rule/yfm002.ts +1 -1
  139. package/src/transform/yfmlint/markdownlint-custom-rule/yfm003.ts +1 -1
  140. package/src/transform/yfmlint/markdownlint-custom-rule/yfm004.ts +1 -1
  141. package/src/transform/yfmlint/markdownlint-custom-rule/yfm005.ts +1 -1
  142. package/src/transform/yfmlint/markdownlint-custom-rule/yfm006.ts +1 -1
  143. package/src/transform/yfmlint/markdownlint-custom-rule/yfm007.ts +1 -1
  144. package/src/transform/yfmlint/markdownlint-custom-rule/yfm008.ts +1 -1
  145. package/src/transform/yfmlint/markdownlint-custom-rule/yfm009.ts +1 -1
  146. package/src/transform/yfmlint/typings.ts +3 -6
  147. package/src/transform/yfmlint/utils.ts +2 -3
  148. package/src/transform/yfmlint/yfmlint.ts +2 -2
  149. package/lib/plugins/table/attrs.d.ts +0 -18
  150. package/lib/plugins/table/attrs.js +0 -172
  151. package/lib/plugins/table/attrs.js.map +0 -1
  152. package/src/transform/plugins/table/attrs.ts +0 -199
@@ -1,172 +0,0 @@
1
- "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
- if (kind === "m") throw new TypeError("Private method is not writable");
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
- };
13
- var _AttrsParser_key, _AttrsParser_pending, _AttrsParser_isInsideQuotation, _AttrsParser_didQuotationClosed, _AttrsParser_currentKeyType, _AttrsParser_selectors, _AttrsParser_handlers, _AttrsParser_state;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.AttrsParser = void 0;
16
- class AttrsParser {
17
- constructor() {
18
- this.DELIMITER = '=';
19
- this.SEPARATOR = ' ';
20
- this.QUOTATION = '"';
21
- /* allowed in keys / values chars */
22
- this.ALLOWED_CHARS = /[a-zA-Z0-9_\- {}.|/]/;
23
- /* allowed in all query chars */
24
- this.VALIDATION_CHARS = /[a-zA-Z0-9_\- {}.#="|/]/;
25
- _AttrsParser_key.set(this, '');
26
- _AttrsParser_pending.set(this, '');
27
- _AttrsParser_isInsideQuotation.set(this, false);
28
- _AttrsParser_didQuotationClosed.set(this, false);
29
- _AttrsParser_currentKeyType.set(this, void 0);
30
- _AttrsParser_selectors.set(this, {
31
- id: /#/,
32
- class: /\./,
33
- attr: /[a-zA-Z-_]/,
34
- });
35
- _AttrsParser_handlers.set(this, Object.entries(__classPrivateFieldGet(this, _AttrsParser_selectors, "f")));
36
- _AttrsParser_state.set(this, {});
37
- }
38
- parse(target) {
39
- /* escape from {} */
40
- const content = this.extract(target);
41
- if (!content) {
42
- return {};
43
- }
44
- for (const char of content) {
45
- this.next(char);
46
- }
47
- /* end-of-content mark */
48
- this.next(this.SEPARATOR);
49
- this.clear();
50
- return __classPrivateFieldGet(this, _AttrsParser_state, "f");
51
- }
52
- extract(target) {
53
- if (!target.startsWith('{')) {
54
- return false;
55
- }
56
- let balance = 1;
57
- for (let i = 1; i < target.length; i++) {
58
- const char = target[i];
59
- if (char === '}') {
60
- balance--;
61
- }
62
- if (char === '{') {
63
- balance++;
64
- }
65
- if (balance === 0) {
66
- const contentInside = target.slice(1, i).trim();
67
- return contentInside;
68
- }
69
- if (balance < 0) {
70
- return false;
71
- }
72
- if (!this.VALIDATION_CHARS.test(char)) {
73
- return false;
74
- }
75
- }
76
- return false;
77
- }
78
- next(value) {
79
- if (!__classPrivateFieldGet(this, _AttrsParser_currentKeyType, "f")) {
80
- __classPrivateFieldSet(this, _AttrsParser_currentKeyType, this.type(value), "f");
81
- if (__classPrivateFieldGet(this, _AttrsParser_currentKeyType, "f") === 'attr') {
82
- __classPrivateFieldSet(this, _AttrsParser_pending, value, "f");
83
- }
84
- return;
85
- }
86
- if (this.isSeparator(value)) {
87
- if (!__classPrivateFieldGet(this, _AttrsParser_pending, "f")) {
88
- /* (name= ) construction */
89
- if (!__classPrivateFieldGet(this, _AttrsParser_isInsideQuotation, "f")) {
90
- this.append(__classPrivateFieldGet(this, _AttrsParser_key, "f"), ' ');
91
- this.clear();
92
- return;
93
- }
94
- }
95
- /* single key (.name #id contenteditable) */
96
- if (!__classPrivateFieldGet(this, _AttrsParser_key, "f") && __classPrivateFieldGet(this, _AttrsParser_pending, "f")) {
97
- this.append();
98
- this.clear();
99
- return;
100
- }
101
- /* trying to find close quotation */
102
- if (__classPrivateFieldGet(this, _AttrsParser_isInsideQuotation, "f") && !__classPrivateFieldGet(this, _AttrsParser_didQuotationClosed, "f")) {
103
- __classPrivateFieldSet(this, _AttrsParser_pending, __classPrivateFieldGet(this, _AttrsParser_pending, "f") + value, "f");
104
- return;
105
- }
106
- if (__classPrivateFieldGet(this, _AttrsParser_isInsideQuotation, "f") && __classPrivateFieldGet(this, _AttrsParser_didQuotationClosed, "f")) {
107
- this.append(__classPrivateFieldGet(this, _AttrsParser_key, "f"), __classPrivateFieldGet(this, _AttrsParser_pending, "f"));
108
- }
109
- if (!__classPrivateFieldGet(this, _AttrsParser_isInsideQuotation, "f") && !__classPrivateFieldGet(this, _AttrsParser_didQuotationClosed, "f")) {
110
- this.append(__classPrivateFieldGet(this, _AttrsParser_key, "f"), __classPrivateFieldGet(this, _AttrsParser_pending, "f"));
111
- }
112
- this.clear();
113
- return;
114
- }
115
- if (this.isAllowedChar(value)) {
116
- __classPrivateFieldSet(this, _AttrsParser_pending, __classPrivateFieldGet(this, _AttrsParser_pending, "f") + value, "f");
117
- return;
118
- }
119
- if (this.isQuotation(value)) {
120
- if (__classPrivateFieldGet(this, _AttrsParser_isInsideQuotation, "f")) {
121
- __classPrivateFieldSet(this, _AttrsParser_didQuotationClosed, true, "f");
122
- }
123
- else {
124
- __classPrivateFieldSet(this, _AttrsParser_isInsideQuotation, true, "f");
125
- }
126
- }
127
- if (this.isDelimiter(value)) {
128
- /* symbol is not delimiter, adding it to value */
129
- if (__classPrivateFieldGet(this, _AttrsParser_key, "f")) {
130
- __classPrivateFieldSet(this, _AttrsParser_pending, __classPrivateFieldGet(this, _AttrsParser_pending, "f") + value, "f");
131
- return;
132
- }
133
- __classPrivateFieldSet(this, _AttrsParser_key, __classPrivateFieldGet(this, _AttrsParser_pending, "f"), "f");
134
- __classPrivateFieldSet(this, _AttrsParser_pending, '', "f");
135
- }
136
- }
137
- type(of) {
138
- var _a;
139
- return (_a = __classPrivateFieldGet(this, _AttrsParser_handlers, "f").find(([_, regex]) => regex.test(of))) === null || _a === void 0 ? void 0 : _a[0];
140
- }
141
- append(key = __classPrivateFieldGet(this, _AttrsParser_currentKeyType, "f"), value = __classPrivateFieldGet(this, _AttrsParser_pending, "f")) {
142
- if (!key) {
143
- return;
144
- }
145
- if (!__classPrivateFieldGet(this, _AttrsParser_state, "f")[key]) {
146
- __classPrivateFieldGet(this, _AttrsParser_state, "f")[key] = [];
147
- }
148
- __classPrivateFieldGet(this, _AttrsParser_state, "f")[key].push(value);
149
- }
150
- clear() {
151
- __classPrivateFieldSet(this, _AttrsParser_key, '', "f");
152
- __classPrivateFieldSet(this, _AttrsParser_pending, '', "f");
153
- __classPrivateFieldSet(this, _AttrsParser_isInsideQuotation, false, "f");
154
- __classPrivateFieldSet(this, _AttrsParser_didQuotationClosed, false, "f");
155
- __classPrivateFieldSet(this, _AttrsParser_currentKeyType, undefined, "f");
156
- }
157
- isDelimiter(target) {
158
- return target === this.DELIMITER;
159
- }
160
- isSeparator(target) {
161
- return target === this.SEPARATOR;
162
- }
163
- isQuotation(target) {
164
- return target === this.QUOTATION;
165
- }
166
- isAllowedChar(target) {
167
- return this.ALLOWED_CHARS.test(target);
168
- }
169
- }
170
- exports.AttrsParser = AttrsParser;
171
- _AttrsParser_key = new WeakMap(), _AttrsParser_pending = new WeakMap(), _AttrsParser_isInsideQuotation = new WeakMap(), _AttrsParser_didQuotationClosed = new WeakMap(), _AttrsParser_currentKeyType = new WeakMap(), _AttrsParser_selectors = new WeakMap(), _AttrsParser_handlers = new WeakMap(), _AttrsParser_state = new WeakMap();
172
- //# sourceMappingURL=attrs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attrs.js","sourceRoot":"","sources":["../../../src/transform/plugins/table/attrs.ts"],"names":[],"mappings":"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"}
@@ -1,199 +0,0 @@
1
- type Attrs = 'class' | 'id' | 'attr';
2
-
3
- export class AttrsParser {
4
- DELIMITER = '=';
5
- SEPARATOR = ' ';
6
- QUOTATION = '"';
7
- /* allowed in keys / values chars */
8
- ALLOWED_CHARS = /[a-zA-Z0-9_\- {}.|/]/;
9
- /* allowed in all query chars */
10
- VALIDATION_CHARS = /[a-zA-Z0-9_\- {}.#="|/]/;
11
-
12
- #key = '';
13
- #pending = '';
14
- #isInsideQuotation = false;
15
- #didQuotationClosed = false;
16
- #currentKeyType: Attrs | undefined;
17
-
18
- #selectors: Record<Attrs, RegExp> = {
19
- id: /#/,
20
- class: /\./,
21
- attr: /[a-zA-Z-_]/,
22
- };
23
-
24
- #handlers = Object.entries(this.#selectors) as [Attrs, RegExp][];
25
- #state: Record<string, string[]> = {};
26
-
27
- parse(target: string): Record<string, string[]> {
28
- /* escape from {} */
29
- const content = this.extract(target);
30
-
31
- if (!content) {
32
- return {};
33
- }
34
-
35
- for (const char of content) {
36
- this.next(char);
37
- }
38
-
39
- /* end-of-content mark */
40
- this.next(this.SEPARATOR);
41
-
42
- this.clear();
43
-
44
- return this.#state;
45
- }
46
-
47
- private extract(target: string): string | false {
48
- if (!target.startsWith('{')) {
49
- return false;
50
- }
51
- let balance = 1;
52
-
53
- for (let i = 1; i < target.length; i++) {
54
- const char = target[i];
55
-
56
- if (char === '}') {
57
- balance--;
58
- }
59
-
60
- if (char === '{') {
61
- balance++;
62
- }
63
-
64
- if (balance === 0) {
65
- const contentInside = target.slice(1, i).trim();
66
-
67
- return contentInside;
68
- }
69
-
70
- if (balance < 0) {
71
- return false;
72
- }
73
-
74
- if (!this.VALIDATION_CHARS.test(char)) {
75
- return false;
76
- }
77
- }
78
-
79
- return false;
80
- }
81
-
82
- private next(value: string) {
83
- if (!this.#currentKeyType) {
84
- this.#currentKeyType = this.type(value);
85
-
86
- if (this.#currentKeyType === 'attr') {
87
- this.#pending = value;
88
- }
89
-
90
- return;
91
- }
92
-
93
- if (this.isSeparator(value)) {
94
- if (!this.#pending) {
95
- /* (name= ) construction */
96
- if (!this.#isInsideQuotation) {
97
- this.append(this.#key, ' ');
98
- this.clear();
99
-
100
- return;
101
- }
102
- }
103
-
104
- /* single key (.name #id contenteditable) */
105
- if (!this.#key && this.#pending) {
106
- this.append();
107
- this.clear();
108
-
109
- return;
110
- }
111
-
112
- /* trying to find close quotation */
113
- if (this.#isInsideQuotation && !this.#didQuotationClosed) {
114
- this.#pending += value;
115
- return;
116
- }
117
-
118
- if (this.#isInsideQuotation && this.#didQuotationClosed) {
119
- this.append(this.#key, this.#pending);
120
- }
121
-
122
- if (!this.#isInsideQuotation && !this.#didQuotationClosed) {
123
- this.append(this.#key, this.#pending);
124
- }
125
-
126
- this.clear();
127
-
128
- return;
129
- }
130
-
131
- if (this.isAllowedChar(value)) {
132
- this.#pending += value;
133
-
134
- return;
135
- }
136
-
137
- if (this.isQuotation(value)) {
138
- if (this.#isInsideQuotation) {
139
- this.#didQuotationClosed = true;
140
- } else {
141
- this.#isInsideQuotation = true;
142
- }
143
- }
144
-
145
- if (this.isDelimiter(value)) {
146
- /* symbol is not delimiter, adding it to value */
147
- if (this.#key) {
148
- this.#pending += value;
149
-
150
- return;
151
- }
152
-
153
- this.#key = this.#pending;
154
- this.#pending = '';
155
- }
156
- }
157
-
158
- private type(of: string): Attrs | undefined {
159
- return this.#handlers.find(([_, regex]) => regex.test(of))?.[0];
160
- }
161
-
162
- private append(key: string | undefined = this.#currentKeyType, value: string = this.#pending) {
163
- if (!key) {
164
- return;
165
- }
166
-
167
- if (!this.#state[key]) {
168
- this.#state[key] = [];
169
- }
170
-
171
- this.#state[key].push(value);
172
- }
173
-
174
- private clear() {
175
- this.#key = '';
176
- this.#pending = '';
177
-
178
- this.#isInsideQuotation = false;
179
- this.#didQuotationClosed = false;
180
-
181
- this.#currentKeyType = undefined;
182
- }
183
-
184
- private isDelimiter(target: string) {
185
- return target === this.DELIMITER;
186
- }
187
-
188
- private isSeparator(target: string) {
189
- return target === this.SEPARATOR;
190
- }
191
-
192
- private isQuotation(target: string) {
193
- return target === this.QUOTATION;
194
- }
195
-
196
- private isAllowedChar(target: string) {
197
- return this.ALLOWED_CHARS.test(target);
198
- }
199
- }