comment-parser 1.4.1 → 1.4.3

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 (51) hide show
  1. package/CHANGELOG.md +56 -2
  2. package/browser/index.js +31 -10
  3. package/es6/parser/tokenizers/name.js +11 -3
  4. package/es6/parser/tokenizers/tag.js +3 -0
  5. package/es6/parser/tokenizers/type.d.ts +1 -1
  6. package/es6/parser/tokenizers/type.js +15 -3
  7. package/es6/primitives.js +1 -1
  8. package/jest.config.cjs +5 -7
  9. package/lib/index.cjs +2 -22
  10. package/lib/index.cjs.map +1 -1
  11. package/lib/parser/block-parser.cjs +1 -9
  12. package/lib/parser/block-parser.cjs.map +1 -1
  13. package/lib/parser/index.cjs +1 -14
  14. package/lib/parser/index.cjs.map +1 -1
  15. package/lib/parser/source-parser.cjs +1 -13
  16. package/lib/parser/source-parser.cjs.map +1 -1
  17. package/lib/parser/spec-parser.cjs +1 -7
  18. package/lib/parser/spec-parser.cjs.map +1 -1
  19. package/lib/parser/tokenizers/description.cjs +8 -19
  20. package/lib/parser/tokenizers/description.cjs.map +1 -1
  21. package/lib/parser/tokenizers/index.cjs.map +1 -1
  22. package/lib/parser/tokenizers/name.cjs +20 -26
  23. package/lib/parser/tokenizers/name.cjs.map +1 -1
  24. package/lib/parser/tokenizers/tag.cjs +4 -5
  25. package/lib/parser/tokenizers/tag.cjs.map +1 -1
  26. package/lib/parser/tokenizers/type.cjs +16 -20
  27. package/lib/parser/tokenizers/type.cjs.map +1 -1
  28. package/lib/parser/tokenizers/type.d.ts +1 -1
  29. package/lib/primitives.cjs +1 -3
  30. package/lib/primitives.cjs.map +1 -1
  31. package/lib/stringifier/index.cjs +1 -4
  32. package/lib/stringifier/index.cjs.map +1 -1
  33. package/lib/stringifier/inspect.cjs +1 -17
  34. package/lib/stringifier/inspect.cjs.map +1 -1
  35. package/lib/transforms/align.cjs +6 -29
  36. package/lib/transforms/align.cjs.map +1 -1
  37. package/lib/transforms/crlf.cjs +4 -13
  38. package/lib/transforms/crlf.cjs.map +1 -1
  39. package/lib/transforms/indent.cjs +4 -17
  40. package/lib/transforms/indent.cjs.map +1 -1
  41. package/lib/transforms/index.cjs +1 -4
  42. package/lib/transforms/index.cjs.map +1 -1
  43. package/lib/util.cjs +10 -33
  44. package/lib/util.cjs.map +1 -1
  45. package/package.json +17 -11
  46. package/src/parser/tokenizers/name.ts +13 -3
  47. package/src/parser/tokenizers/tag.ts +4 -0
  48. package/src/parser/tokenizers/type.ts +16 -3
  49. package/tests/unit/parser.spec.ts +234 -0
  50. package/tests/unit/spec-tag-tokenizer.spec.ts +30 -0
  51. package/tsconfig.node.json +0 -1
package/CHANGELOG.md CHANGED
@@ -1,63 +1,95 @@
1
1
  # v1.4.1
2
+
3
+ ## 1.4.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Add prepare and prepublishOnly scripts to ensure build runs before publishing
8
+
9
+ ## 1.4.2
10
+
11
+ ### Patch Changes
12
+
13
+ - npm audit
14
+ - ensure type, name and description on subsequent lines are properly parsed. @brettz9
15
+ - ensure type, name and description on subsequent lines are properly parsed. @brettz9
2
16
  - fix .prettierignore
3
17
  - add source trasformation example
4
18
 
5
19
  # v1.4.0
20
+
6
21
  - ESM compatibility improvements; fixes #159, #161
7
22
 
8
23
  # v1.3.1
24
+
9
25
  - allow for valid empty jsdoc; fixes #128
10
26
 
11
27
  # v1.3.0
28
+
12
29
  - add support for custom block markers
13
30
 
14
31
  # v1.2.4
32
+
15
33
  - reverting engine constraint back to ^12.0.0
16
34
 
17
35
  # v1.2.3
36
+
18
37
  - publishing missing fix: point package's main to .cjs file
19
38
 
20
39
  # v1.2.2
40
+
21
41
  - re-export ./util on the top-level for compatibility with older Node
22
42
  - point package's main to .cjs file
23
43
 
24
44
  # v1.2.1
45
+
25
46
  - bump `engines` per `exports` issues in earlier Node versions
26
47
 
27
48
  # v1.2.0
49
+
28
50
  - keep and handle appropriately CR line endings
29
51
 
30
52
  # v1.1.6-beta.3
53
+
31
54
  - process CRs as a separate .lineEnd toke
32
55
 
33
56
  # v1.1.6-beta.2
57
+
34
58
  - ESM/CJS compatibility fixes
35
59
 
36
60
  # v1.1.6-beta.1
61
+
37
62
  - support native ESM
38
63
 
39
64
  # v1.1.6-beta.0
65
+
40
66
  - keep original CR line endings
41
67
  - allow to normalize line endings with `crlf` transform
42
68
 
43
69
  # v1.1.5
70
+
44
71
  - drop unused variables
45
72
  - add .editorconfig
46
73
 
47
74
  # v1.1.4
75
+
48
76
  - `bugfix` fix unsynced lib/
49
77
 
50
78
  # v1.1.3
79
+
51
80
  - export primitive type on the top level: Markers, Block, Spec, Line, Tokens, Problem
52
81
 
53
82
  # v1.1.2
83
+
54
84
  - `bugfix` Allow to build nested tags from `name.subname` even if `name` wasn't d
55
85
  - `bugfix` Preserve indentation when extracting comments
56
86
 
57
87
  # v1.1.1
88
+
58
89
  - add helpers for rewiring Spec.source <-> Spec.tags.source
59
90
 
60
91
  # v1.1.0
92
+
61
93
  - split tokenizers into separate modules
62
94
  - allow multiline {type} definitions - issue #109
63
95
  - allow using "=>" in [name=default] defaults – issue #112
@@ -65,75 +97,97 @@
65
97
  - add tokenizers usage example - issue #111
66
98
 
67
99
  # v1.0.0
100
+
68
101
  - complete rewrite in TS with more flexible API
69
102
 
70
103
  # v0.7.6
104
+
71
105
  - distinct non-critical errors by providing `err.warning`
72
106
 
73
107
  # v0.7.5
108
+
74
109
  - name parsing fixes
75
110
 
76
111
  # v0.7.4
112
+
77
113
  - node 8 backward compatibility fixes
78
114
 
79
115
  # v0.7.3
116
+
80
117
  - make stringify result more close to the source
81
118
 
82
119
  # v0.7.2
83
- - make stringify to start each line with * in multiline comments
120
+
121
+ - make stringify to start each line with \* in multiline comments
84
122
 
85
123
  # v0.7.1
124
+
86
125
  - ensure non-space characters after asterisk are included in source
87
126
 
88
127
  # v0.7.0
128
+
89
129
  - allow fenced blocks in tag description, see opts.fence
90
130
 
91
131
  # v0.6.2
132
+
92
133
  - document TypeScript definitions
93
134
 
94
135
  # v0.6.1
136
+
95
137
  - adjust strigifier indentation
96
138
 
97
139
  # v0.6.0
140
+
98
141
  - soft-drop node@6 support
99
142
  - migrate to ES6 syntax
100
143
  - allow to generate comments out of parsed data
101
144
 
102
145
  # v0.5.5
146
+
103
147
  - allow loose tag names, e.g. @.tag, @-tag
104
148
 
105
149
  # v0.5.4
150
+
106
151
  - allow quoted literal names, e.g. `@tag "My Var" description`
107
152
 
108
153
  # v0.5.3
154
+
109
155
  - corrected TypeScript definitions
110
156
 
111
157
  # v0.5.2
158
+
112
159
  - added TypeScript definitions
113
160
  - removed `readable-stream` dependency
114
161
 
115
162
  # v0.5.1
163
+
116
164
  - Support for tab as separator between tag components.
117
165
  - Docs: Indicate when `optional` is `true`; `default` property
118
166
 
119
167
  # v0.5.0
168
+
120
169
  - line wrapping control with `opts.join`
121
170
 
122
171
  # v0.4.2
172
+
123
173
  - tolerate inconsistent lines alignment within block
124
174
 
125
175
  # v0.4.1
126
- - refactored parsing, allow to not start lines with "* " inside block
176
+
177
+ - refactored parsing, allow to not start lines with "\* " inside block
127
178
 
128
179
  # v0.3.2
180
+
129
181
  - fix RegExp for `description` extraction to allow $ char
130
182
 
131
183
  # v0.3.1
184
+
132
185
  - use `readable-stream` fro Node 0.8 comatibility
133
186
  - allow to pass optional parameters to `parse.file(path [,opts], done)`
134
187
  - allow `parse.stream` to work with Buffers in addition to strings
135
188
 
136
189
  # v0.3.0
190
+
137
191
  - `feature` allow to use custom parsers
138
192
  - `feature` always include source, no `raw_value` option needed
139
193
  - `bugfix` always provide `optional` tag property
package/browser/index.js CHANGED
@@ -8,7 +8,7 @@ var CommentParser = (function (exports) {
8
8
  Markers["nostart"] = "/***";
9
9
  Markers["delim"] = "*";
10
10
  Markers["end"] = "*/";
11
- })(exports.Markers = exports.Markers || (exports.Markers = {}));
11
+ })(exports.Markers || (exports.Markers = {}));
12
12
 
13
13
  function isSpace(source) {
14
14
  return /^\s+$/.test(source);
@@ -165,6 +165,9 @@ var CommentParser = (function (exports) {
165
165
  });
166
166
  return spec;
167
167
  }
168
+ if (match[1].includes('/')) {
169
+ return spec;
170
+ }
168
171
  tokens.tag = match[1];
169
172
  tokens.postTag = match[3];
170
173
  tokens.description = tokens.description.slice(match[0].length);
@@ -174,7 +177,7 @@ var CommentParser = (function (exports) {
174
177
  }
175
178
 
176
179
  /**
177
- * Sets splits remaining `Spec.lines[].tokes.description` into `type` and `description`
180
+ * Sets splits remaining `Spec.lines[].tokens.description` into `type` and `description`
178
181
  * tokens and populates Spec.type`
179
182
  *
180
183
  * @param {Spacing} spacing tells how to deal with a whitespace
@@ -185,10 +188,19 @@ var CommentParser = (function (exports) {
185
188
  return (spec) => {
186
189
  let curlies = 0;
187
190
  let lines = [];
188
- for (const [i, { tokens }] of spec.source.entries()) {
191
+ let descriptionBegun = false;
192
+ let firstTypeIteration = true;
193
+ for (const { tokens } of spec.source.values()) {
189
194
  let type = '';
190
- if (i === 0 && tokens.description[0] !== '{')
195
+ if (!descriptionBegun && tokens.description.trim()) {
196
+ descriptionBegun = true;
197
+ }
198
+ else if (!descriptionBegun) {
199
+ continue;
200
+ }
201
+ if (firstTypeIteration && tokens.description[0] !== '{')
191
202
  return spec;
203
+ firstTypeIteration = false;
192
204
  for (const ch of tokens.description) {
193
205
  if (ch === '{')
194
206
  curlies++;
@@ -202,6 +214,9 @@ var CommentParser = (function (exports) {
202
214
  if (curlies === 0)
203
215
  break;
204
216
  }
217
+ if (!descriptionBegun) {
218
+ return spec;
219
+ }
205
220
  if (curlies !== 0) {
206
221
  spec.problems.push({
207
222
  code: 'spec:type:unpaired-curlies',
@@ -246,9 +261,17 @@ var CommentParser = (function (exports) {
246
261
  function nameTokenizer() {
247
262
  const typeEnd = (num, { tokens }, i) => tokens.type === '' ? num : i;
248
263
  return (spec) => {
249
- // look for the name in the line where {type} ends
250
- const { tokens } = spec.source[spec.source.reduce(typeEnd, 0)];
251
- const source = tokens.description.trimLeft();
264
+ // look for the name starting in the line where {type} ends
265
+ let finalTypeLine = spec.source.reduce(typeEnd, 0);
266
+ let tokens;
267
+ do {
268
+ ({ tokens } = spec.source[finalTypeLine]);
269
+ if (tokens.description.trim()) {
270
+ break;
271
+ }
272
+ finalTypeLine++;
273
+ } while (spec.source[finalTypeLine]);
274
+ const source = tokens.description.trimStart();
252
275
  const quotedGroups = source.split('"');
253
276
  // if it starts with quoted group, assume it is a literal
254
277
  if (quotedGroups.length > 1 &&
@@ -643,8 +666,6 @@ var CommentParser = (function (exports) {
643
666
  exports.transforms = transforms;
644
667
  exports.util = util;
645
668
 
646
- Object.defineProperty(exports, '__esModule', { value: true });
647
-
648
669
  return exports;
649
670
 
650
- }({}));
671
+ })({});
@@ -7,9 +7,17 @@ const isQuoted = (s) => s && s.startsWith('"') && s.endsWith('"');
7
7
  export default function nameTokenizer() {
8
8
  const typeEnd = (num, { tokens }, i) => tokens.type === '' ? num : i;
9
9
  return (spec) => {
10
- // look for the name in the line where {type} ends
11
- const { tokens } = spec.source[spec.source.reduce(typeEnd, 0)];
12
- const source = tokens.description.trimLeft();
10
+ // look for the name starting in the line where {type} ends
11
+ let finalTypeLine = spec.source.reduce(typeEnd, 0);
12
+ let tokens;
13
+ do {
14
+ ({ tokens } = spec.source[finalTypeLine]);
15
+ if (tokens.description.trim()) {
16
+ break;
17
+ }
18
+ finalTypeLine++;
19
+ } while (spec.source[finalTypeLine]);
20
+ const source = tokens.description.trimStart();
13
21
  const quotedGroups = source.split('"');
14
22
  // if it starts with quoted group, assume it is a literal
15
23
  if (quotedGroups.length > 1 &&
@@ -15,6 +15,9 @@ export default function tagTokenizer() {
15
15
  });
16
16
  return spec;
17
17
  }
18
+ if (match[1].includes('/')) {
19
+ return spec;
20
+ }
18
21
  tokens.tag = match[1];
19
22
  tokens.postTag = match[3];
20
23
  tokens.description = tokens.description.slice(match[0].length);
@@ -18,7 +18,7 @@ export type Joiner = (parts: string[]) => string;
18
18
  */
19
19
  export type Spacing = 'compact' | 'preserve' | Joiner;
20
20
  /**
21
- * Sets splits remaining `Spec.lines[].tokes.description` into `type` and `description`
21
+ * Sets splits remaining `Spec.lines[].tokens.description` into `type` and `description`
22
22
  * tokens and populates Spec.type`
23
23
  *
24
24
  * @param {Spacing} spacing tells how to deal with a whitespace
@@ -1,6 +1,6 @@
1
1
  import { splitSpace } from '../../util.js';
2
2
  /**
3
- * Sets splits remaining `Spec.lines[].tokes.description` into `type` and `description`
3
+ * Sets splits remaining `Spec.lines[].tokens.description` into `type` and `description`
4
4
  * tokens and populates Spec.type`
5
5
  *
6
6
  * @param {Spacing} spacing tells how to deal with a whitespace
@@ -11,10 +11,19 @@ export default function typeTokenizer(spacing = 'compact') {
11
11
  return (spec) => {
12
12
  let curlies = 0;
13
13
  let lines = [];
14
- for (const [i, { tokens }] of spec.source.entries()) {
14
+ let descriptionBegun = false;
15
+ let firstTypeIteration = true;
16
+ for (const { tokens } of spec.source.values()) {
15
17
  let type = '';
16
- if (i === 0 && tokens.description[0] !== '{')
18
+ if (!descriptionBegun && tokens.description.trim()) {
19
+ descriptionBegun = true;
20
+ }
21
+ else if (!descriptionBegun) {
22
+ continue;
23
+ }
24
+ if (firstTypeIteration && tokens.description[0] !== '{')
17
25
  return spec;
26
+ firstTypeIteration = false;
18
27
  for (const ch of tokens.description) {
19
28
  if (ch === '{')
20
29
  curlies++;
@@ -28,6 +37,9 @@ export default function typeTokenizer(spacing = 'compact') {
28
37
  if (curlies === 0)
29
38
  break;
30
39
  }
40
+ if (!descriptionBegun) {
41
+ return spec;
42
+ }
31
43
  if (curlies !== 0) {
32
44
  spec.problems.push({
33
45
  code: 'spec:type:unpaired-curlies',
package/es6/primitives.js CHANGED
@@ -5,4 +5,4 @@ export var Markers;
5
5
  Markers["nostart"] = "/***";
6
6
  Markers["delim"] = "*";
7
7
  Markers["end"] = "*/";
8
- })(Markers = Markers || (Markers = {}));
8
+ })(Markers || (Markers = {}));
package/jest.config.cjs CHANGED
@@ -1,3 +1,5 @@
1
+ 'use strict';
2
+
1
3
  // For a detailed explanation regarding each configuration property, visit:
2
4
  // https://jestjs.io/docs/en/configuration.html
3
5
 
@@ -6,12 +8,6 @@ const { compilerOptions: tsconfig } = JSON.parse(
6
8
  );
7
9
 
8
10
  module.exports = {
9
- globals: {
10
- 'ts-jest': {
11
- tsconfig,
12
- },
13
- },
14
-
15
11
  // All imported modules in your tests should be mocked automatically
16
12
  // automock: false,
17
13
 
@@ -186,7 +182,9 @@ module.exports = {
186
182
 
187
183
  // A map from regular expressions to paths to transformers
188
184
  transform: {
189
- '^.+\\.ts$': 'ts-jest',
185
+ '^.+\\.ts$': ['ts-jest', {
186
+ tsconfig
187
+ }],
190
188
  },
191
189
 
192
190
  // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
package/lib/index.cjs CHANGED
@@ -3,7 +3,6 @@
3
3
  var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
4
4
  if (k2 === undefined) k2 = k;
5
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
6
-
7
6
  if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
7
  desc = {
9
8
  enumerable: true,
@@ -12,55 +11,36 @@ var __createBinding = this && this.__createBinding || (Object.create ? function
12
11
  }
13
12
  };
14
13
  }
15
-
16
14
  Object.defineProperty(o, k2, desc);
17
15
  } : function (o, m, k, k2) {
18
16
  if (k2 === undefined) k2 = k;
19
17
  o[k2] = m[k];
20
18
  });
21
-
22
19
  var __exportStar = this && this.__exportStar || function (m, exports) {
23
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
24
21
  };
25
-
26
22
  Object.defineProperty(exports, "__esModule", {
27
23
  value: true
28
24
  });
29
- exports.util = exports.tokenizers = exports.transforms = exports.inspect = exports.stringify = exports.parse = void 0;
30
-
25
+ exports.util = exports.tokenizers = exports.transforms = exports.inspect = exports.stringify = void 0;
26
+ exports.parse = parse;
31
27
  const index_js_1 = require("./parser/index.cjs");
32
-
33
28
  const description_js_1 = require("./parser/tokenizers/description.cjs");
34
-
35
29
  const name_js_1 = require("./parser/tokenizers/name.cjs");
36
-
37
30
  const tag_js_1 = require("./parser/tokenizers/tag.cjs");
38
-
39
31
  const type_js_1 = require("./parser/tokenizers/type.cjs");
40
-
41
32
  const index_js_2 = require("./stringifier/index.cjs");
42
-
43
33
  const align_js_1 = require("./transforms/align.cjs");
44
-
45
34
  const indent_js_1 = require("./transforms/indent.cjs");
46
-
47
35
  const crlf_js_1 = require("./transforms/crlf.cjs");
48
-
49
36
  const index_js_3 = require("./transforms/index.cjs");
50
-
51
37
  const util_js_1 = require("./util.cjs");
52
-
53
38
  __exportStar(require("./primitives.cjs"), exports);
54
-
55
39
  function parse(source, options = {}) {
56
40
  return (0, index_js_1.default)(options)(source);
57
41
  }
58
-
59
- exports.parse = parse;
60
42
  exports.stringify = (0, index_js_2.default)();
61
-
62
43
  var inspect_js_1 = require("./stringifier/inspect.cjs");
63
-
64
44
  Object.defineProperty(exports, "inspect", {
65
45
  enumerable: true,
66
46
  get: function () {
package/lib/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"names":["__createBinding","Object","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","defineProperty","__exportStar","exports","p","prototype","hasOwnProperty","call","value","util","tokenizers","transforms","inspect","stringify","parse","index_js_1","require","description_js_1","name_js_1","tag_js_1","type_js_1","index_js_2","align_js_1","indent_js_1","crlf_js_1","index_js_3","util_js_1","source","options","default","inspect_js_1","flow","align","indent","crlf","tag","type","name","description","rewireSpecs","rewireSource","seedBlock","seedTokens"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.util = exports.tokenizers = exports.transforms = exports.inspect = exports.stringify = exports.parse = void 0;\nconst index_js_1 = require(\"./parser/index.js\");\nconst description_js_1 = require(\"./parser/tokenizers/description.js\");\nconst name_js_1 = require(\"./parser/tokenizers/name.js\");\nconst tag_js_1 = require(\"./parser/tokenizers/tag.js\");\nconst type_js_1 = require(\"./parser/tokenizers/type.js\");\nconst index_js_2 = require(\"./stringifier/index.js\");\nconst align_js_1 = require(\"./transforms/align.js\");\nconst indent_js_1 = require(\"./transforms/indent.js\");\nconst crlf_js_1 = require(\"./transforms/crlf.js\");\nconst index_js_3 = require(\"./transforms/index.js\");\nconst util_js_1 = require(\"./util.js\");\n__exportStar(require(\"./primitives.js\"), exports);\nfunction parse(source, options = {}) {\n return (0, index_js_1.default)(options)(source);\n}\nexports.parse = parse;\nexports.stringify = (0, index_js_2.default)();\nvar inspect_js_1 = require(\"./stringifier/inspect.js\");\nObject.defineProperty(exports, \"inspect\", { enumerable: true, get: function () { return inspect_js_1.default; } });\nexports.transforms = {\n flow: index_js_3.flow,\n align: align_js_1.default,\n indent: indent_js_1.default,\n crlf: crlf_js_1.default,\n};\nexports.tokenizers = {\n tag: tag_js_1.default,\n type: type_js_1.default,\n name: name_js_1.default,\n description: description_js_1.default,\n};\nexports.util = { rewireSpecs: util_js_1.rewireSpecs, rewireSource: util_js_1.rewireSource, seedBlock: util_js_1.seedBlock, seedTokens: util_js_1.seedTokens };\n"],"file":"index.cjs"}
1
+ {"version":3,"file":"index.cjs","names":["__createBinding","Object","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","defineProperty","__exportStar","exports","p","prototype","hasOwnProperty","call","value","util","tokenizers","transforms","inspect","stringify","parse","index_js_1","require","description_js_1","name_js_1","tag_js_1","type_js_1","index_js_2","align_js_1","indent_js_1","crlf_js_1","index_js_3","util_js_1","source","options","default","inspect_js_1","flow","align","indent","crlf","tag","type","name","description","rewireSpecs","rewireSource","seedBlock","seedTokens"],"sources":["index.js"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.util = exports.tokenizers = exports.transforms = exports.inspect = exports.stringify = void 0;\nexports.parse = parse;\nconst index_js_1 = require(\"./parser/index.js\");\nconst description_js_1 = require(\"./parser/tokenizers/description.js\");\nconst name_js_1 = require(\"./parser/tokenizers/name.js\");\nconst tag_js_1 = require(\"./parser/tokenizers/tag.js\");\nconst type_js_1 = require(\"./parser/tokenizers/type.js\");\nconst index_js_2 = require(\"./stringifier/index.js\");\nconst align_js_1 = require(\"./transforms/align.js\");\nconst indent_js_1 = require(\"./transforms/indent.js\");\nconst crlf_js_1 = require(\"./transforms/crlf.js\");\nconst index_js_3 = require(\"./transforms/index.js\");\nconst util_js_1 = require(\"./util.js\");\n__exportStar(require(\"./primitives.js\"), exports);\nfunction parse(source, options = {}) {\n return (0, index_js_1.default)(options)(source);\n}\nexports.stringify = (0, index_js_2.default)();\nvar inspect_js_1 = require(\"./stringifier/inspect.js\");\nObject.defineProperty(exports, \"inspect\", { enumerable: true, get: function () { return inspect_js_1.default; } });\nexports.transforms = {\n flow: index_js_3.flow,\n align: align_js_1.default,\n indent: indent_js_1.default,\n crlf: crlf_js_1.default,\n};\nexports.tokenizers = {\n tag: tag_js_1.default,\n type: type_js_1.default,\n name: name_js_1.default,\n description: description_js_1.default,\n};\nexports.util = { rewireSpecs: util_js_1.rewireSpecs, rewireSource: util_js_1.rewireSource, seedBlock: util_js_1.seedBlock, seedTokens: util_js_1.seedTokens };\n"],"mappings":"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","ignoreList":[]}
@@ -3,40 +3,32 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = getParser;
6
7
  const reTag = /^@\S+/;
7
8
  /**
8
9
  * Creates configured `Parser`
9
10
  * @param {Partial<Options>} options
10
11
  */
11
-
12
12
  function getParser({
13
13
  fence = '```'
14
14
  } = {}) {
15
15
  const fencer = getFencer(fence);
16
-
17
16
  const toggleFence = (source, isFenced) => fencer(source) ? !isFenced : isFenced;
18
-
19
17
  return function parseBlock(source) {
20
18
  // start with description section
21
19
  const sections = [[]];
22
20
  let isFenced = false;
23
-
24
21
  for (const line of source) {
25
22
  if (reTag.test(line.tokens.description) && !isFenced) {
26
23
  sections.push([line]);
27
24
  } else {
28
25
  sections[sections.length - 1].push(line);
29
26
  }
30
-
31
27
  isFenced = toggleFence(line.tokens.description, isFenced);
32
28
  }
33
-
34
29
  return sections;
35
30
  };
36
31
  }
37
-
38
- exports.default = getParser;
39
-
40
32
  function getFencer(fence) {
41
33
  if (typeof fence === 'string') return source => source.split(fence).length % 2 === 0;
42
34
  return fence;
@@ -1 +1 @@
1
- {"version":3,"sources":["block-parser.js"],"names":["Object","defineProperty","exports","value","reTag","getParser","fence","fencer","getFencer","toggleFence","source","isFenced","parseBlock","sections","line","test","tokens","description","push","length","default","split"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACA,MAAMC,KAAK,GAAG,OAAd;AACA;AACA;AACA;AACA;;AACA,SAASC,SAAT,CAAmB;AAAEC,EAAAA,KAAK,GAAG;AAAV,IAAqB,EAAxC,EAA4C;AACxC,QAAMC,MAAM,GAAGC,SAAS,CAACF,KAAD,CAAxB;;AACA,QAAMG,WAAW,GAAG,CAACC,MAAD,EAASC,QAAT,KAAsBJ,MAAM,CAACG,MAAD,CAAN,GAAiB,CAACC,QAAlB,GAA6BA,QAAvE;;AACA,SAAO,SAASC,UAAT,CAAoBF,MAApB,EAA4B;AAC/B;AACA,UAAMG,QAAQ,GAAG,CAAC,EAAD,CAAjB;AACA,QAAIF,QAAQ,GAAG,KAAf;;AACA,SAAK,MAAMG,IAAX,IAAmBJ,MAAnB,EAA2B;AACvB,UAAIN,KAAK,CAACW,IAAN,CAAWD,IAAI,CAACE,MAAL,CAAYC,WAAvB,KAAuC,CAACN,QAA5C,EAAsD;AAClDE,QAAAA,QAAQ,CAACK,IAAT,CAAc,CAACJ,IAAD,CAAd;AACH,OAFD,MAGK;AACDD,QAAAA,QAAQ,CAACA,QAAQ,CAACM,MAAT,GAAkB,CAAnB,CAAR,CAA8BD,IAA9B,CAAmCJ,IAAnC;AACH;;AACDH,MAAAA,QAAQ,GAAGF,WAAW,CAACK,IAAI,CAACE,MAAL,CAAYC,WAAb,EAA0BN,QAA1B,CAAtB;AACH;;AACD,WAAOE,QAAP;AACH,GAdD;AAeH;;AACDX,OAAO,CAACkB,OAAR,GAAkBf,SAAlB;;AACA,SAASG,SAAT,CAAmBF,KAAnB,EAA0B;AACtB,MAAI,OAAOA,KAAP,KAAiB,QAArB,EACI,OAAQI,MAAD,IAAYA,MAAM,CAACW,KAAP,CAAaf,KAAb,EAAoBa,MAApB,GAA6B,CAA7B,KAAmC,CAAtD;AACJ,SAAOb,KAAP;AACH","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst reTag = /^@\\S+/;\n/**\n * Creates configured `Parser`\n * @param {Partial<Options>} options\n */\nfunction getParser({ fence = '```', } = {}) {\n const fencer = getFencer(fence);\n const toggleFence = (source, isFenced) => fencer(source) ? !isFenced : isFenced;\n return function parseBlock(source) {\n // start with description section\n const sections = [[]];\n let isFenced = false;\n for (const line of source) {\n if (reTag.test(line.tokens.description) && !isFenced) {\n sections.push([line]);\n }\n else {\n sections[sections.length - 1].push(line);\n }\n isFenced = toggleFence(line.tokens.description, isFenced);\n }\n return sections;\n };\n}\nexports.default = getParser;\nfunction getFencer(fence) {\n if (typeof fence === 'string')\n return (source) => source.split(fence).length % 2 === 0;\n return fence;\n}\n"],"file":"block-parser.cjs"}
1
+ {"version":3,"file":"block-parser.cjs","names":["Object","defineProperty","exports","value","default","getParser","reTag","fence","fencer","getFencer","toggleFence","source","isFenced","parseBlock","sections","line","test","tokens","description","push","length","split"],"sources":["block-parser.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = getParser;\nconst reTag = /^@\\S+/;\n/**\n * Creates configured `Parser`\n * @param {Partial<Options>} options\n */\nfunction getParser({ fence = '```', } = {}) {\n const fencer = getFencer(fence);\n const toggleFence = (source, isFenced) => fencer(source) ? !isFenced : isFenced;\n return function parseBlock(source) {\n // start with description section\n const sections = [[]];\n let isFenced = false;\n for (const line of source) {\n if (reTag.test(line.tokens.description) && !isFenced) {\n sections.push([line]);\n }\n else {\n sections[sections.length - 1].push(line);\n }\n isFenced = toggleFence(line.tokens.description, isFenced);\n }\n return sections;\n };\n}\nfunction getFencer(fence) {\n if (typeof fence === 'string')\n return (source) => source.split(fence).length % 2 === 0;\n return fence;\n}\n"],"mappings":"AAAA,YAAY;;AACZA,MAAM,CAACC,cAAc,CAACC,OAAO,EAAE,YAAY,EAAE;EAAEC,KAAK,EAAE;AAAK,CAAC,CAAC;AAC7DD,OAAO,CAACE,OAAO,GAAGC,SAAS;AAC3B,MAAMC,KAAK,GAAG,OAAO;AACrB;AACA;AACA;AACA;AACA,SAASD,SAASA,CAAC;EAAEE,KAAK,GAAG;AAAO,CAAC,GAAG,CAAC,CAAC,EAAE;EACxC,MAAMC,MAAM,GAAGC,SAAS,CAACF,KAAK,CAAC;EAC/B,MAAMG,WAAW,GAAGA,CAACC,MAAM,EAAEC,QAAQ,KAAKJ,MAAM,CAACG,MAAM,CAAC,GAAG,CAACC,QAAQ,GAAGA,QAAQ;EAC/E,OAAO,SAASC,UAAUA,CAACF,MAAM,EAAE;IAC/B;IACA,MAAMG,QAAQ,GAAG,CAAC,EAAE,CAAC;IACrB,IAAIF,QAAQ,GAAG,KAAK;IACpB,KAAK,MAAMG,IAAI,IAAIJ,MAAM,EAAE;MACvB,IAAIL,KAAK,CAACU,IAAI,CAACD,IAAI,CAACE,MAAM,CAACC,WAAW,CAAC,IAAI,CAACN,QAAQ,EAAE;QAClDE,QAAQ,CAACK,IAAI,CAAC,CAACJ,IAAI,CAAC,CAAC;MACzB,CAAC,MACI;QACDD,QAAQ,CAACA,QAAQ,CAACM,MAAM,GAAG,CAAC,CAAC,CAACD,IAAI,CAACJ,IAAI,CAAC;MAC5C;MACAH,QAAQ,GAAGF,WAAW,CAACK,IAAI,CAACE,MAAM,CAACC,WAAW,EAAEN,QAAQ,CAAC;IAC7D;IACA,OAAOE,QAAQ;EACnB,CAAC;AACL;AACA,SAASL,SAASA,CAACF,KAAK,EAAE;EACtB,IAAI,OAAOA,KAAK,KAAK,QAAQ,EACzB,OAAQI,MAAM,IAAKA,MAAM,CAACU,KAAK,CAACd,KAAK,CAAC,CAACa,MAAM,GAAG,CAAC,KAAK,CAAC;EAC3D,OAAOb,KAAK;AAChB","ignoreList":[]}
@@ -3,25 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
6
+ exports.default = getParser;
7
7
  const primitives_js_1 = require("../primitives.cjs");
8
-
9
8
  const util_js_1 = require("../util.cjs");
10
-
11
9
  const block_parser_js_1 = require("./block-parser.cjs");
12
-
13
10
  const source_parser_js_1 = require("./source-parser.cjs");
14
-
15
11
  const spec_parser_js_1 = require("./spec-parser.cjs");
16
-
17
12
  const tag_js_1 = require("./tokenizers/tag.cjs");
18
-
19
13
  const type_js_1 = require("./tokenizers/type.cjs");
20
-
21
14
  const name_js_1 = require("./tokenizers/name.cjs");
22
-
23
15
  const description_js_1 = require("./tokenizers/description.cjs");
24
-
25
16
  function getParser({
26
17
  startLine = 0,
27
18
  fence = '```',
@@ -43,7 +34,6 @@ function getParser({
43
34
  const joinDescription = (0, description_js_1.getJoiner)(spacing);
44
35
  return function (source) {
45
36
  const blocks = [];
46
-
47
37
  for (const line of (0, util_js_1.splitLines)(source)) {
48
38
  const lines = parseSource(line);
49
39
  if (lines === null) continue;
@@ -56,10 +46,7 @@ function getParser({
56
46
  problems: specs.reduce((acc, spec) => acc.concat(spec.problems), [])
57
47
  });
58
48
  }
59
-
60
49
  return blocks;
61
50
  };
62
51
  }
63
-
64
- exports.default = getParser;
65
52
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"names":["Object","defineProperty","exports","value","primitives_js_1","require","util_js_1","block_parser_js_1","source_parser_js_1","spec_parser_js_1","tag_js_1","type_js_1","name_js_1","description_js_1","getParser","startLine","fence","spacing","markers","Markers","tokenizers","default","Error","parseSource","parseBlock","parseSpec","joinDescription","getJoiner","source","blocks","line","splitLines","lines","sections","specs","slice","map","push","description","tags","problems","reduce","acc","spec","concat"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;;AACA,MAAMC,eAAe,GAAGC,OAAH,qBAArB;;AACA,MAAMC,SAAS,GAAGD,OAAH,eAAf;;AACA,MAAME,iBAAiB,GAAGF,OAAH,sBAAvB;;AACA,MAAMG,kBAAkB,GAAGH,OAAH,uBAAxB;;AACA,MAAMI,gBAAgB,GAAGJ,OAAH,qBAAtB;;AACA,MAAMK,QAAQ,GAAGL,OAAH,wBAAd;;AACA,MAAMM,SAAS,GAAGN,OAAH,yBAAf;;AACA,MAAMO,SAAS,GAAGP,OAAH,yBAAf;;AACA,MAAMQ,gBAAgB,GAAGR,OAAH,gCAAtB;;AACA,SAASS,SAAT,CAAmB;AAAEC,EAAAA,SAAS,GAAG,CAAd;AAAiBC,EAAAA,KAAK,GAAG,KAAzB;AAAgCC,EAAAA,OAAO,GAAG,SAA1C;AAAqDC,EAAAA,OAAO,GAAGd,eAAe,CAACe,OAA/E;AAAwFC,EAAAA,UAAU,GAAG,CACpH,CAAC,GAAGV,QAAQ,CAACW,OAAb,GADoH,EAEpH,CAAC,GAAGV,SAAS,CAACU,OAAd,EAAuBJ,OAAvB,CAFoH,EAGpH,CAAC,GAAGL,SAAS,CAACS,OAAd,GAHoH,EAIpH,CAAC,GAAGR,gBAAgB,CAACQ,OAArB,EAA8BJ,OAA9B,CAJoH;AAArG,IAKZ,EALP,EAKW;AACP,MAAIF,SAAS,GAAG,CAAZ,IAAiBA,SAAS,GAAG,CAAZ,GAAgB,CAArC,EACI,MAAM,IAAIO,KAAJ,CAAU,mBAAV,CAAN;AACJ,QAAMC,WAAW,GAAG,CAAC,GAAGf,kBAAkB,CAACa,OAAvB,EAAgC;AAAEN,IAAAA,SAAF;AAAaG,IAAAA;AAAb,GAAhC,CAApB;AACA,QAAMM,UAAU,GAAG,CAAC,GAAGjB,iBAAiB,CAACc,OAAtB,EAA+B;AAAEL,IAAAA;AAAF,GAA/B,CAAnB;AACA,QAAMS,SAAS,GAAG,CAAC,GAAGhB,gBAAgB,CAACY,OAArB,EAA8B;AAAED,IAAAA;AAAF,GAA9B,CAAlB;AACA,QAAMM,eAAe,GAAG,CAAC,GAAGb,gBAAgB,CAACc,SAArB,EAAgCV,OAAhC,CAAxB;AACA,SAAO,UAAUW,MAAV,EAAkB;AACrB,UAAMC,MAAM,GAAG,EAAf;;AACA,SAAK,MAAMC,IAAX,IAAmB,CAAC,GAAGxB,SAAS,CAACyB,UAAd,EAA0BH,MAA1B,CAAnB,EAAsD;AAClD,YAAMI,KAAK,GAAGT,WAAW,CAACO,IAAD,CAAzB;AACA,UAAIE,KAAK,KAAK,IAAd,EACI;AACJ,YAAMC,QAAQ,GAAGT,UAAU,CAACQ,KAAD,CAA3B;AACA,YAAME,KAAK,GAAGD,QAAQ,CAACE,KAAT,CAAe,CAAf,EAAkBC,GAAlB,CAAsBX,SAAtB,CAAd;AACAI,MAAAA,MAAM,CAACQ,IAAP,CAAY;AACRC,QAAAA,WAAW,EAAEZ,eAAe,CAACO,QAAQ,CAAC,CAAD,CAAT,EAAcf,OAAd,CADpB;AAERqB,QAAAA,IAAI,EAAEL,KAFE;AAGRN,QAAAA,MAAM,EAAEI,KAHA;AAIRQ,QAAAA,QAAQ,EAAEN,KAAK,CAACO,MAAN,CAAa,CAACC,GAAD,EAAMC,IAAN,KAAeD,GAAG,CAACE,MAAJ,CAAWD,IAAI,CAACH,QAAhB,CAA5B,EAAuD,EAAvD;AAJF,OAAZ;AAMH;;AACD,WAAOX,MAAP;AACH,GAhBD;AAiBH;;AACD3B,OAAO,CAACmB,OAAR,GAAkBP,SAAlB","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst primitives_js_1 = require(\"../primitives.js\");\nconst util_js_1 = require(\"../util.js\");\nconst block_parser_js_1 = require(\"./block-parser.js\");\nconst source_parser_js_1 = require(\"./source-parser.js\");\nconst spec_parser_js_1 = require(\"./spec-parser.js\");\nconst tag_js_1 = require(\"./tokenizers/tag.js\");\nconst type_js_1 = require(\"./tokenizers/type.js\");\nconst name_js_1 = require(\"./tokenizers/name.js\");\nconst description_js_1 = require(\"./tokenizers/description.js\");\nfunction getParser({ startLine = 0, fence = '```', spacing = 'compact', markers = primitives_js_1.Markers, tokenizers = [\n (0, tag_js_1.default)(),\n (0, type_js_1.default)(spacing),\n (0, name_js_1.default)(),\n (0, description_js_1.default)(spacing),\n], } = {}) {\n if (startLine < 0 || startLine % 1 > 0)\n throw new Error('Invalid startLine');\n const parseSource = (0, source_parser_js_1.default)({ startLine, markers });\n const parseBlock = (0, block_parser_js_1.default)({ fence });\n const parseSpec = (0, spec_parser_js_1.default)({ tokenizers });\n const joinDescription = (0, description_js_1.getJoiner)(spacing);\n return function (source) {\n const blocks = [];\n for (const line of (0, util_js_1.splitLines)(source)) {\n const lines = parseSource(line);\n if (lines === null)\n continue;\n const sections = parseBlock(lines);\n const specs = sections.slice(1).map(parseSpec);\n blocks.push({\n description: joinDescription(sections[0], markers),\n tags: specs,\n source: lines,\n problems: specs.reduce((acc, spec) => acc.concat(spec.problems), []),\n });\n }\n return blocks;\n };\n}\nexports.default = getParser;\n"],"file":"index.cjs"}
1
+ {"version":3,"file":"index.cjs","names":["Object","defineProperty","exports","value","default","getParser","primitives_js_1","require","util_js_1","block_parser_js_1","source_parser_js_1","spec_parser_js_1","tag_js_1","type_js_1","name_js_1","description_js_1","startLine","fence","spacing","markers","Markers","tokenizers","Error","parseSource","parseBlock","parseSpec","joinDescription","getJoiner","source","blocks","line","splitLines","lines","sections","specs","slice","map","push","description","tags","problems","reduce","acc","spec","concat"],"sources":["index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = getParser;\nconst primitives_js_1 = require(\"../primitives.js\");\nconst util_js_1 = require(\"../util.js\");\nconst block_parser_js_1 = require(\"./block-parser.js\");\nconst source_parser_js_1 = require(\"./source-parser.js\");\nconst spec_parser_js_1 = require(\"./spec-parser.js\");\nconst tag_js_1 = require(\"./tokenizers/tag.js\");\nconst type_js_1 = require(\"./tokenizers/type.js\");\nconst name_js_1 = require(\"./tokenizers/name.js\");\nconst description_js_1 = require(\"./tokenizers/description.js\");\nfunction getParser({ startLine = 0, fence = '```', spacing = 'compact', markers = primitives_js_1.Markers, tokenizers = [\n (0, tag_js_1.default)(),\n (0, type_js_1.default)(spacing),\n (0, name_js_1.default)(),\n (0, description_js_1.default)(spacing),\n], } = {}) {\n if (startLine < 0 || startLine % 1 > 0)\n throw new Error('Invalid startLine');\n const parseSource = (0, source_parser_js_1.default)({ startLine, markers });\n const parseBlock = (0, block_parser_js_1.default)({ fence });\n const parseSpec = (0, spec_parser_js_1.default)({ tokenizers });\n const joinDescription = (0, description_js_1.getJoiner)(spacing);\n return function (source) {\n const blocks = [];\n for (const line of (0, util_js_1.splitLines)(source)) {\n const lines = parseSource(line);\n if (lines === null)\n continue;\n const sections = parseBlock(lines);\n const specs = sections.slice(1).map(parseSpec);\n blocks.push({\n description: joinDescription(sections[0], markers),\n tags: specs,\n source: lines,\n problems: specs.reduce((acc, spec) => acc.concat(spec.problems), []),\n });\n }\n return blocks;\n };\n}\n"],"mappings":"AAAA,YAAY;;AACZA,MAAM,CAACC,cAAc,CAACC,OAAO,EAAE,YAAY,EAAE;EAAEC,KAAK,EAAE;AAAK,CAAC,CAAC;AAC7DD,OAAO,CAACE,OAAO,GAAGC,SAAS;AAC3B,MAAMC,eAAe,GAAGC,OAAO,qBAAoB;AACnD,MAAMC,SAAS,GAAGD,OAAO,eAAc;AACvC,MAAME,iBAAiB,GAAGF,OAAO,sBAAqB;AACtD,MAAMG,kBAAkB,GAAGH,OAAO,uBAAsB;AACxD,MAAMI,gBAAgB,GAAGJ,OAAO,qBAAoB;AACpD,MAAMK,QAAQ,GAAGL,OAAO,wBAAuB;AAC/C,MAAMM,SAAS,GAAGN,OAAO,yBAAwB;AACjD,MAAMO,SAAS,GAAGP,OAAO,yBAAwB;AACjD,MAAMQ,gBAAgB,GAAGR,OAAO,gCAA+B;AAC/D,SAASF,SAASA,CAAC;EAAEW,SAAS,GAAG,CAAC;EAAEC,KAAK,GAAG,KAAK;EAAEC,OAAO,GAAG,SAAS;EAAEC,OAAO,GAAGb,eAAe,CAACc,OAAO;EAAEC,UAAU,GAAG,CACpH,CAAC,CAAC,EAAET,QAAQ,CAACR,OAAO,EAAE,CAAC,EACvB,CAAC,CAAC,EAAES,SAAS,CAACT,OAAO,EAAEc,OAAO,CAAC,EAC/B,CAAC,CAAC,EAAEJ,SAAS,CAACV,OAAO,EAAE,CAAC,EACxB,CAAC,CAAC,EAAEW,gBAAgB,CAACX,OAAO,EAAEc,OAAO,CAAC;AACvC,CAAC,GAAG,CAAC,CAAC,EAAE;EACP,IAAIF,SAAS,GAAG,CAAC,IAAIA,SAAS,GAAG,CAAC,GAAG,CAAC,EAClC,MAAM,IAAIM,KAAK,CAAC,mBAAmB,CAAC;EACxC,MAAMC,WAAW,GAAG,CAAC,CAAC,EAAEb,kBAAkB,CAACN,OAAO,EAAE;IAAEY,SAAS;IAAEG;EAAQ,CAAC,CAAC;EAC3E,MAAMK,UAAU,GAAG,CAAC,CAAC,EAAEf,iBAAiB,CAACL,OAAO,EAAE;IAAEa;EAAM,CAAC,CAAC;EAC5D,MAAMQ,SAAS,GAAG,CAAC,CAAC,EAAEd,gBAAgB,CAACP,OAAO,EAAE;IAAEiB;EAAW,CAAC,CAAC;EAC/D,MAAMK,eAAe,GAAG,CAAC,CAAC,EAAEX,gBAAgB,CAACY,SAAS,EAAET,OAAO,CAAC;EAChE,OAAO,UAAUU,MAAM,EAAE;IACrB,MAAMC,MAAM,GAAG,EAAE;IACjB,KAAK,MAAMC,IAAI,IAAI,CAAC,CAAC,EAAEtB,SAAS,CAACuB,UAAU,EAAEH,MAAM,CAAC,EAAE;MAClD,MAAMI,KAAK,GAAGT,WAAW,CAACO,IAAI,CAAC;MAC/B,IAAIE,KAAK,KAAK,IAAI,EACd;MACJ,MAAMC,QAAQ,GAAGT,UAAU,CAACQ,KAAK,CAAC;MAClC,MAAME,KAAK,GAAGD,QAAQ,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,GAAG,CAACX,SAAS,CAAC;MAC9CI,MAAM,CAACQ,IAAI,CAAC;QACRC,WAAW,EAAEZ,eAAe,CAACO,QAAQ,CAAC,CAAC,CAAC,EAAEd,OAAO,CAAC;QAClDoB,IAAI,EAAEL,KAAK;QACXN,MAAM,EAAEI,KAAK;QACbQ,QAAQ,EAAEN,KAAK,CAACO,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAKD,GAAG,CAACE,MAAM,CAACD,IAAI,CAACH,QAAQ,CAAC,EAAE,EAAE;MACvE,CAAC,CAAC;IACN;IACA,OAAOX,MAAM;EACjB,CAAC;AACL","ignoreList":[]}