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
@@ -3,11 +3,9 @@
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
  function getParser({
12
10
  startLine = 0,
13
11
  markers = primitives_js_1.Markers
@@ -19,33 +17,27 @@ function getParser({
19
17
  const tokens = (0, util_js_1.seedTokens)();
20
18
  [tokens.lineEnd, rest] = (0, util_js_1.splitCR)(rest);
21
19
  [tokens.start, rest] = (0, util_js_1.splitSpace)(rest);
22
-
23
20
  if (block === null && rest.startsWith(markers.start) && !rest.startsWith(markers.nostart)) {
24
21
  block = [];
25
22
  tokens.delimiter = rest.slice(0, markers.start.length);
26
23
  rest = rest.slice(markers.start.length);
27
24
  [tokens.postDelimiter, rest] = (0, util_js_1.splitSpace)(rest);
28
25
  }
29
-
30
26
  if (block === null) {
31
27
  num++;
32
28
  return null;
33
29
  }
34
-
35
30
  const isClosed = rest.trimRight().endsWith(markers.end);
36
-
37
31
  if (tokens.delimiter === '' && rest.startsWith(markers.delim) && !rest.startsWith(markers.end)) {
38
32
  tokens.delimiter = markers.delim;
39
33
  rest = rest.slice(markers.delim.length);
40
34
  [tokens.postDelimiter, rest] = (0, util_js_1.splitSpace)(rest);
41
35
  }
42
-
43
36
  if (isClosed) {
44
37
  const trimmed = rest.trimRight();
45
38
  tokens.end = rest.slice(trimmed.length - markers.end.length);
46
39
  rest = trimmed.slice(0, -markers.end.length);
47
40
  }
48
-
49
41
  tokens.description = rest;
50
42
  block.push({
51
43
  number: num,
@@ -53,16 +45,12 @@ function getParser({
53
45
  tokens
54
46
  });
55
47
  num++;
56
-
57
48
  if (isClosed) {
58
49
  const result = block.slice();
59
50
  block = null;
60
51
  return result;
61
52
  }
62
-
63
53
  return null;
64
54
  };
65
55
  }
66
-
67
- exports.default = getParser;
68
56
  //# sourceMappingURL=source-parser.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["source-parser.js"],"names":["Object","defineProperty","exports","value","primitives_js_1","require","util_js_1","getParser","startLine","markers","Markers","block","num","parseSource","source","rest","tokens","seedTokens","lineEnd","splitCR","start","splitSpace","startsWith","nostart","delimiter","slice","length","postDelimiter","isClosed","trimRight","endsWith","end","delim","trimmed","description","push","number","result","default"],"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,SAASE,SAAT,CAAmB;AAAEC,EAAAA,SAAS,GAAG,CAAd;AAAiBC,EAAAA,OAAO,GAAGL,eAAe,CAACM;AAA3C,IAAwD,EAA3E,EAA+E;AAC3E,MAAIC,KAAK,GAAG,IAAZ;AACA,MAAIC,GAAG,GAAGJ,SAAV;AACA,SAAO,SAASK,WAAT,CAAqBC,MAArB,EAA6B;AAChC,QAAIC,IAAI,GAAGD,MAAX;AACA,UAAME,MAAM,GAAG,CAAC,GAAGV,SAAS,CAACW,UAAd,GAAf;AACA,KAACD,MAAM,CAACE,OAAR,EAAiBH,IAAjB,IAAyB,CAAC,GAAGT,SAAS,CAACa,OAAd,EAAuBJ,IAAvB,CAAzB;AACA,KAACC,MAAM,CAACI,KAAR,EAAeL,IAAf,IAAuB,CAAC,GAAGT,SAAS,CAACe,UAAd,EAA0BN,IAA1B,CAAvB;;AACA,QAAIJ,KAAK,KAAK,IAAV,IACAI,IAAI,CAACO,UAAL,CAAgBb,OAAO,CAACW,KAAxB,CADA,IAEA,CAACL,IAAI,CAACO,UAAL,CAAgBb,OAAO,CAACc,OAAxB,CAFL,EAEuC;AACnCZ,MAAAA,KAAK,GAAG,EAAR;AACAK,MAAAA,MAAM,CAACQ,SAAP,GAAmBT,IAAI,CAACU,KAAL,CAAW,CAAX,EAAchB,OAAO,CAACW,KAAR,CAAcM,MAA5B,CAAnB;AACAX,MAAAA,IAAI,GAAGA,IAAI,CAACU,KAAL,CAAWhB,OAAO,CAACW,KAAR,CAAcM,MAAzB,CAAP;AACA,OAACV,MAAM,CAACW,aAAR,EAAuBZ,IAAvB,IAA+B,CAAC,GAAGT,SAAS,CAACe,UAAd,EAA0BN,IAA1B,CAA/B;AACH;;AACD,QAAIJ,KAAK,KAAK,IAAd,EAAoB;AAChBC,MAAAA,GAAG;AACH,aAAO,IAAP;AACH;;AACD,UAAMgB,QAAQ,GAAGb,IAAI,CAACc,SAAL,GAAiBC,QAAjB,CAA0BrB,OAAO,CAACsB,GAAlC,CAAjB;;AACA,QAAIf,MAAM,CAACQ,SAAP,KAAqB,EAArB,IACAT,IAAI,CAACO,UAAL,CAAgBb,OAAO,CAACuB,KAAxB,CADA,IAEA,CAACjB,IAAI,CAACO,UAAL,CAAgBb,OAAO,CAACsB,GAAxB,CAFL,EAEmC;AAC/Bf,MAAAA,MAAM,CAACQ,SAAP,GAAmBf,OAAO,CAACuB,KAA3B;AACAjB,MAAAA,IAAI,GAAGA,IAAI,CAACU,KAAL,CAAWhB,OAAO,CAACuB,KAAR,CAAcN,MAAzB,CAAP;AACA,OAACV,MAAM,CAACW,aAAR,EAAuBZ,IAAvB,IAA+B,CAAC,GAAGT,SAAS,CAACe,UAAd,EAA0BN,IAA1B,CAA/B;AACH;;AACD,QAAIa,QAAJ,EAAc;AACV,YAAMK,OAAO,GAAGlB,IAAI,CAACc,SAAL,EAAhB;AACAb,MAAAA,MAAM,CAACe,GAAP,GAAahB,IAAI,CAACU,KAAL,CAAWQ,OAAO,CAACP,MAAR,GAAiBjB,OAAO,CAACsB,GAAR,CAAYL,MAAxC,CAAb;AACAX,MAAAA,IAAI,GAAGkB,OAAO,CAACR,KAAR,CAAc,CAAd,EAAiB,CAAChB,OAAO,CAACsB,GAAR,CAAYL,MAA9B,CAAP;AACH;;AACDV,IAAAA,MAAM,CAACkB,WAAP,GAAqBnB,IAArB;AACAJ,IAAAA,KAAK,CAACwB,IAAN,CAAW;AAAEC,MAAAA,MAAM,EAAExB,GAAV;AAAeE,MAAAA,MAAf;AAAuBE,MAAAA;AAAvB,KAAX;AACAJ,IAAAA,GAAG;;AACH,QAAIgB,QAAJ,EAAc;AACV,YAAMS,MAAM,GAAG1B,KAAK,CAACc,KAAN,EAAf;AACAd,MAAAA,KAAK,GAAG,IAAR;AACA,aAAO0B,MAAP;AACH;;AACD,WAAO,IAAP;AACH,GAvCD;AAwCH;;AACDnC,OAAO,CAACoC,OAAR,GAAkB/B,SAAlB","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst primitives_js_1 = require(\"../primitives.js\");\nconst util_js_1 = require(\"../util.js\");\nfunction getParser({ startLine = 0, markers = primitives_js_1.Markers, } = {}) {\n let block = null;\n let num = startLine;\n return function parseSource(source) {\n let rest = source;\n const tokens = (0, util_js_1.seedTokens)();\n [tokens.lineEnd, rest] = (0, util_js_1.splitCR)(rest);\n [tokens.start, rest] = (0, util_js_1.splitSpace)(rest);\n if (block === null &&\n rest.startsWith(markers.start) &&\n !rest.startsWith(markers.nostart)) {\n block = [];\n tokens.delimiter = rest.slice(0, markers.start.length);\n rest = rest.slice(markers.start.length);\n [tokens.postDelimiter, rest] = (0, util_js_1.splitSpace)(rest);\n }\n if (block === null) {\n num++;\n return null;\n }\n const isClosed = rest.trimRight().endsWith(markers.end);\n if (tokens.delimiter === '' &&\n rest.startsWith(markers.delim) &&\n !rest.startsWith(markers.end)) {\n tokens.delimiter = markers.delim;\n rest = rest.slice(markers.delim.length);\n [tokens.postDelimiter, rest] = (0, util_js_1.splitSpace)(rest);\n }\n if (isClosed) {\n const trimmed = rest.trimRight();\n tokens.end = rest.slice(trimmed.length - markers.end.length);\n rest = trimmed.slice(0, -markers.end.length);\n }\n tokens.description = rest;\n block.push({ number: num, source, tokens });\n num++;\n if (isClosed) {\n const result = block.slice();\n block = null;\n return result;\n }\n return null;\n };\n}\nexports.default = getParser;\n"],"file":"source-parser.cjs"}
1
+ {"version":3,"file":"source-parser.cjs","names":["Object","defineProperty","exports","value","default","getParser","primitives_js_1","require","util_js_1","startLine","markers","Markers","block","num","parseSource","source","rest","tokens","seedTokens","lineEnd","splitCR","start","splitSpace","startsWith","nostart","delimiter","slice","length","postDelimiter","isClosed","trimRight","endsWith","end","delim","trimmed","description","push","number","result"],"sources":["source-parser.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\");\nfunction getParser({ startLine = 0, markers = primitives_js_1.Markers, } = {}) {\n let block = null;\n let num = startLine;\n return function parseSource(source) {\n let rest = source;\n const tokens = (0, util_js_1.seedTokens)();\n [tokens.lineEnd, rest] = (0, util_js_1.splitCR)(rest);\n [tokens.start, rest] = (0, util_js_1.splitSpace)(rest);\n if (block === null &&\n rest.startsWith(markers.start) &&\n !rest.startsWith(markers.nostart)) {\n block = [];\n tokens.delimiter = rest.slice(0, markers.start.length);\n rest = rest.slice(markers.start.length);\n [tokens.postDelimiter, rest] = (0, util_js_1.splitSpace)(rest);\n }\n if (block === null) {\n num++;\n return null;\n }\n const isClosed = rest.trimRight().endsWith(markers.end);\n if (tokens.delimiter === '' &&\n rest.startsWith(markers.delim) &&\n !rest.startsWith(markers.end)) {\n tokens.delimiter = markers.delim;\n rest = rest.slice(markers.delim.length);\n [tokens.postDelimiter, rest] = (0, util_js_1.splitSpace)(rest);\n }\n if (isClosed) {\n const trimmed = rest.trimRight();\n tokens.end = rest.slice(trimmed.length - markers.end.length);\n rest = trimmed.slice(0, -markers.end.length);\n }\n tokens.description = rest;\n block.push({ number: num, source, tokens });\n num++;\n if (isClosed) {\n const result = block.slice();\n block = null;\n return result;\n }\n return null;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,27 +3,21 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
6
+ exports.default = getParser;
7
7
  const util_js_1 = require("../util.cjs");
8
-
9
8
  function getParser({
10
9
  tokenizers
11
10
  }) {
12
11
  return function parseSpec(source) {
13
12
  var _a;
14
-
15
13
  let spec = (0, util_js_1.seedSpec)({
16
14
  source
17
15
  });
18
-
19
16
  for (const tokenize of tokenizers) {
20
17
  spec = tokenize(spec);
21
18
  if ((_a = spec.problems[spec.problems.length - 1]) === null || _a === void 0 ? void 0 : _a.critical) break;
22
19
  }
23
-
24
20
  return spec;
25
21
  };
26
22
  }
27
-
28
- exports.default = getParser;
29
23
  //# sourceMappingURL=spec-parser.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["spec-parser.js"],"names":["Object","defineProperty","exports","value","util_js_1","require","getParser","tokenizers","parseSpec","source","_a","spec","seedSpec","tokenize","problems","length","critical","default"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;;AACA,MAAMC,SAAS,GAAGC,OAAH,eAAf;;AACA,SAASC,SAAT,CAAmB;AAAEC,EAAAA;AAAF,CAAnB,EAAmC;AAC/B,SAAO,SAASC,SAAT,CAAmBC,MAAnB,EAA2B;AAC9B,QAAIC,EAAJ;;AACA,QAAIC,IAAI,GAAG,CAAC,GAAGP,SAAS,CAACQ,QAAd,EAAwB;AAAEH,MAAAA;AAAF,KAAxB,CAAX;;AACA,SAAK,MAAMI,QAAX,IAAuBN,UAAvB,EAAmC;AAC/BI,MAAAA,IAAI,GAAGE,QAAQ,CAACF,IAAD,CAAf;AACA,UAAI,CAACD,EAAE,GAAGC,IAAI,CAACG,QAAL,CAAcH,IAAI,CAACG,QAAL,CAAcC,MAAd,GAAuB,CAArC,CAAN,MAAmD,IAAnD,IAA2DL,EAAE,KAAK,KAAK,CAAvE,GAA2E,KAAK,CAAhF,GAAoFA,EAAE,CAACM,QAA3F,EACI;AACP;;AACD,WAAOL,IAAP;AACH,GATD;AAUH;;AACDT,OAAO,CAACe,OAAR,GAAkBX,SAAlB","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_js_1 = require(\"../util.js\");\nfunction getParser({ tokenizers }) {\n return function parseSpec(source) {\n var _a;\n let spec = (0, util_js_1.seedSpec)({ source });\n for (const tokenize of tokenizers) {\n spec = tokenize(spec);\n if ((_a = spec.problems[spec.problems.length - 1]) === null || _a === void 0 ? void 0 : _a.critical)\n break;\n }\n return spec;\n };\n}\nexports.default = getParser;\n"],"file":"spec-parser.cjs"}
1
+ {"version":3,"file":"spec-parser.cjs","names":["Object","defineProperty","exports","value","default","getParser","util_js_1","require","tokenizers","parseSpec","source","_a","spec","seedSpec","tokenize","problems","length","critical"],"sources":["spec-parser.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = getParser;\nconst util_js_1 = require(\"../util.js\");\nfunction getParser({ tokenizers }) {\n return function parseSpec(source) {\n var _a;\n let spec = (0, util_js_1.seedSpec)({ source });\n for (const tokenize of tokenizers) {\n spec = tokenize(spec);\n if ((_a = spec.problems[spec.problems.length - 1]) === null || _a === void 0 ? void 0 : _a.critical)\n break;\n }\n return spec;\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,SAAS,GAAGC,OAAO,eAAc;AACvC,SAASF,SAASA,CAAC;EAAEG;AAAW,CAAC,EAAE;EAC/B,OAAO,SAASC,SAASA,CAACC,MAAM,EAAE;IAC9B,IAAIC,EAAE;IACN,IAAIC,IAAI,GAAG,CAAC,CAAC,EAAEN,SAAS,CAACO,QAAQ,EAAE;MAAEH;IAAO,CAAC,CAAC;IAC9C,KAAK,MAAMI,QAAQ,IAAIN,UAAU,EAAE;MAC/BI,IAAI,GAAGE,QAAQ,CAACF,IAAI,CAAC;MACrB,IAAI,CAACD,EAAE,GAAGC,IAAI,CAACG,QAAQ,CAACH,IAAI,CAACG,QAAQ,CAACC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,IAAIL,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAACM,QAAQ,EAC/F;IACR;IACA,OAAOL,IAAI;EACf,CAAC;AACL","ignoreList":[]}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getJoiner = void 0;
7
-
6
+ exports.default = descriptionTokenizer;
7
+ exports.getJoiner = getJoiner;
8
8
  const primitives_js_1 = require("../../primitives.cjs");
9
9
  /**
10
10
  * Makes no changes to `spec.lines[].tokens` but joins them into `spec.description`
@@ -12,8 +12,6 @@ const primitives_js_1 = require("../../primitives.cjs");
12
12
  * @param {Spacing} spacing tells how to handle the whitespace
13
13
  * @param {BlockMarkers} markers tells how to handle comment block delimitation
14
14
  */
15
-
16
-
17
15
  function descriptionTokenizer(spacing = 'compact', markers = primitives_js_1.Markers) {
18
16
  const join = getJoiner(spacing);
19
17
  return spec => {
@@ -21,17 +19,11 @@ function descriptionTokenizer(spacing = 'compact', markers = primitives_js_1.Mar
21
19
  return spec;
22
20
  };
23
21
  }
24
-
25
- exports.default = descriptionTokenizer;
26
-
27
22
  function getJoiner(spacing) {
28
23
  if (spacing === 'compact') return compactJoiner;
29
24
  if (spacing === 'preserve') return preserveJoiner;
30
25
  return spacing;
31
26
  }
32
-
33
- exports.getJoiner = getJoiner;
34
-
35
27
  function compactJoiner(lines, markers = primitives_js_1.Markers) {
36
28
  return lines.map(({
37
29
  tokens: {
@@ -39,23 +31,20 @@ function compactJoiner(lines, markers = primitives_js_1.Markers) {
39
31
  }
40
32
  }) => description.trim()).filter(description => description !== '').join(' ');
41
33
  }
42
-
43
34
  const lineNo = (num, {
44
35
  tokens
45
36
  }, i) => tokens.type === '' ? num : i;
46
-
47
37
  const getDescription = ({
48
38
  tokens
49
39
  }) => (tokens.delimiter === '' ? tokens.start : tokens.postDelimiter.slice(1)) + tokens.description;
50
-
51
40
  function preserveJoiner(lines, markers = primitives_js_1.Markers) {
52
- if (lines.length === 0) return ''; // skip the opening line with no description
53
-
54
- if (lines[0].tokens.description === '' && lines[0].tokens.delimiter === markers.start) lines = lines.slice(1); // skip the closing line with no description
55
-
41
+ if (lines.length === 0) return '';
42
+ // skip the opening line with no description
43
+ if (lines[0].tokens.description === '' && lines[0].tokens.delimiter === markers.start) lines = lines.slice(1);
44
+ // skip the closing line with no description
56
45
  const lastLine = lines[lines.length - 1];
57
- if (lastLine !== undefined && lastLine.tokens.description === '' && lastLine.tokens.end.endsWith(markers.end)) lines = lines.slice(0, -1); // description starts at the last line of type definition
58
-
46
+ if (lastLine !== undefined && lastLine.tokens.description === '' && lastLine.tokens.end.endsWith(markers.end)) lines = lines.slice(0, -1);
47
+ // description starts at the last line of type definition
59
48
  lines = lines.slice(lines.reduce(lineNo, 0));
60
49
  return lines.map(getDescription).join('\n');
61
50
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["description.js"],"names":["Object","defineProperty","exports","value","getJoiner","primitives_js_1","require","descriptionTokenizer","spacing","markers","Markers","join","spec","description","source","default","compactJoiner","preserveJoiner","lines","map","tokens","trim","filter","lineNo","num","i","type","getDescription","delimiter","start","postDelimiter","slice","length","lastLine","undefined","end","endsWith","reduce"],"mappings":"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","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getJoiner = void 0;\nconst primitives_js_1 = require(\"../../primitives.js\");\n/**\n * Makes no changes to `spec.lines[].tokens` but joins them into `spec.description`\n * following given spacing srtategy\n * @param {Spacing} spacing tells how to handle the whitespace\n * @param {BlockMarkers} markers tells how to handle comment block delimitation\n */\nfunction descriptionTokenizer(spacing = 'compact', markers = primitives_js_1.Markers) {\n const join = getJoiner(spacing);\n return (spec) => {\n spec.description = join(spec.source, markers);\n return spec;\n };\n}\nexports.default = descriptionTokenizer;\nfunction getJoiner(spacing) {\n if (spacing === 'compact')\n return compactJoiner;\n if (spacing === 'preserve')\n return preserveJoiner;\n return spacing;\n}\nexports.getJoiner = getJoiner;\nfunction compactJoiner(lines, markers = primitives_js_1.Markers) {\n return lines\n .map(({ tokens: { description } }) => description.trim())\n .filter((description) => description !== '')\n .join(' ');\n}\nconst lineNo = (num, { tokens }, i) => tokens.type === '' ? num : i;\nconst getDescription = ({ tokens }) => (tokens.delimiter === '' ? tokens.start : tokens.postDelimiter.slice(1)) +\n tokens.description;\nfunction preserveJoiner(lines, markers = primitives_js_1.Markers) {\n if (lines.length === 0)\n return '';\n // skip the opening line with no description\n if (lines[0].tokens.description === '' &&\n lines[0].tokens.delimiter === markers.start)\n lines = lines.slice(1);\n // skip the closing line with no description\n const lastLine = lines[lines.length - 1];\n if (lastLine !== undefined &&\n lastLine.tokens.description === '' &&\n lastLine.tokens.end.endsWith(markers.end))\n lines = lines.slice(0, -1);\n // description starts at the last line of type definition\n lines = lines.slice(lines.reduce(lineNo, 0));\n return lines.map(getDescription).join('\\n');\n}\n"],"file":"description.cjs"}
1
+ {"version":3,"file":"description.cjs","names":["Object","defineProperty","exports","value","default","descriptionTokenizer","getJoiner","primitives_js_1","require","spacing","markers","Markers","join","spec","description","source","compactJoiner","preserveJoiner","lines","map","tokens","trim","filter","lineNo","num","i","type","getDescription","delimiter","start","postDelimiter","slice","length","lastLine","undefined","end","endsWith","reduce"],"sources":["description.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = descriptionTokenizer;\nexports.getJoiner = getJoiner;\nconst primitives_js_1 = require(\"../../primitives.js\");\n/**\n * Makes no changes to `spec.lines[].tokens` but joins them into `spec.description`\n * following given spacing srtategy\n * @param {Spacing} spacing tells how to handle the whitespace\n * @param {BlockMarkers} markers tells how to handle comment block delimitation\n */\nfunction descriptionTokenizer(spacing = 'compact', markers = primitives_js_1.Markers) {\n const join = getJoiner(spacing);\n return (spec) => {\n spec.description = join(spec.source, markers);\n return spec;\n };\n}\nfunction getJoiner(spacing) {\n if (spacing === 'compact')\n return compactJoiner;\n if (spacing === 'preserve')\n return preserveJoiner;\n return spacing;\n}\nfunction compactJoiner(lines, markers = primitives_js_1.Markers) {\n return lines\n .map(({ tokens: { description } }) => description.trim())\n .filter((description) => description !== '')\n .join(' ');\n}\nconst lineNo = (num, { tokens }, i) => tokens.type === '' ? num : i;\nconst getDescription = ({ tokens }) => (tokens.delimiter === '' ? tokens.start : tokens.postDelimiter.slice(1)) +\n tokens.description;\nfunction preserveJoiner(lines, markers = primitives_js_1.Markers) {\n if (lines.length === 0)\n return '';\n // skip the opening line with no description\n if (lines[0].tokens.description === '' &&\n lines[0].tokens.delimiter === markers.start)\n lines = lines.slice(1);\n // skip the closing line with no description\n const lastLine = lines[lines.length - 1];\n if (lastLine !== undefined &&\n lastLine.tokens.description === '' &&\n lastLine.tokens.end.endsWith(markers.end))\n lines = lines.slice(0, -1);\n // description starts at the last line of type definition\n lines = lines.slice(lines.reduce(lineNo, 0));\n return lines.map(getDescription).join('\\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,oBAAoB;AACtCH,OAAO,CAACI,SAAS,GAAGA,SAAS;AAC7B,MAAMC,eAAe,GAAGC,OAAO,wBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,SAASH,oBAAoBA,CAACI,OAAO,GAAG,SAAS,EAAEC,OAAO,GAAGH,eAAe,CAACI,OAAO,EAAE;EAClF,MAAMC,IAAI,GAAGN,SAAS,CAACG,OAAO,CAAC;EAC/B,OAAQI,IAAI,IAAK;IACbA,IAAI,CAACC,WAAW,GAAGF,IAAI,CAACC,IAAI,CAACE,MAAM,EAAEL,OAAO,CAAC;IAC7C,OAAOG,IAAI;EACf,CAAC;AACL;AACA,SAASP,SAASA,CAACG,OAAO,EAAE;EACxB,IAAIA,OAAO,KAAK,SAAS,EACrB,OAAOO,aAAa;EACxB,IAAIP,OAAO,KAAK,UAAU,EACtB,OAAOQ,cAAc;EACzB,OAAOR,OAAO;AAClB;AACA,SAASO,aAAaA,CAACE,KAAK,EAAER,OAAO,GAAGH,eAAe,CAACI,OAAO,EAAE;EAC7D,OAAOO,KAAK,CACPC,GAAG,CAAC,CAAC;IAAEC,MAAM,EAAE;MAAEN;IAAY;EAAE,CAAC,KAAKA,WAAW,CAACO,IAAI,CAAC,CAAC,CAAC,CACxDC,MAAM,CAAER,WAAW,IAAKA,WAAW,KAAK,EAAE,CAAC,CAC3CF,IAAI,CAAC,GAAG,CAAC;AAClB;AACA,MAAMW,MAAM,GAAGA,CAACC,GAAG,EAAE;EAAEJ;AAAO,CAAC,EAAEK,CAAC,KAAKL,MAAM,CAACM,IAAI,KAAK,EAAE,GAAGF,GAAG,GAAGC,CAAC;AACnE,MAAME,cAAc,GAAGA,CAAC;EAAEP;AAAO,CAAC,KAAK,CAACA,MAAM,CAACQ,SAAS,KAAK,EAAE,GAAGR,MAAM,CAACS,KAAK,GAAGT,MAAM,CAACU,aAAa,CAACC,KAAK,CAAC,CAAC,CAAC,IAC1GX,MAAM,CAACN,WAAW;AACtB,SAASG,cAAcA,CAACC,KAAK,EAAER,OAAO,GAAGH,eAAe,CAACI,OAAO,EAAE;EAC9D,IAAIO,KAAK,CAACc,MAAM,KAAK,CAAC,EAClB,OAAO,EAAE;EACb;EACA,IAAId,KAAK,CAAC,CAAC,CAAC,CAACE,MAAM,CAACN,WAAW,KAAK,EAAE,IAClCI,KAAK,CAAC,CAAC,CAAC,CAACE,MAAM,CAACQ,SAAS,KAAKlB,OAAO,CAACmB,KAAK,EAC3CX,KAAK,GAAGA,KAAK,CAACa,KAAK,CAAC,CAAC,CAAC;EAC1B;EACA,MAAME,QAAQ,GAAGf,KAAK,CAACA,KAAK,CAACc,MAAM,GAAG,CAAC,CAAC;EACxC,IAAIC,QAAQ,KAAKC,SAAS,IACtBD,QAAQ,CAACb,MAAM,CAACN,WAAW,KAAK,EAAE,IAClCmB,QAAQ,CAACb,MAAM,CAACe,GAAG,CAACC,QAAQ,CAAC1B,OAAO,CAACyB,GAAG,CAAC,EACzCjB,KAAK,GAAGA,KAAK,CAACa,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAC9B;EACAb,KAAK,GAAGA,KAAK,CAACa,KAAK,CAACb,KAAK,CAACmB,MAAM,CAACd,MAAM,EAAE,CAAC,CAAC,CAAC;EAC5C,OAAOL,KAAK,CAACC,GAAG,CAACQ,cAAc,CAAC,CAACf,IAAI,CAAC,IAAI,CAAC;AAC/C","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"names":["Object","defineProperty","exports","value"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n"],"file":"index.cjs"}
1
+ {"version":3,"file":"index.cjs","names":["Object","defineProperty","exports","value"],"sources":["index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n"],"mappings":"AAAA,YAAY;;AACZA,MAAM,CAACC,cAAc,CAACC,OAAO,EAAE,YAAY,EAAE;EAAEC,KAAK,EAAE;AAAK,CAAC,CAAC","ignoreList":[]}
@@ -3,48 +3,50 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
6
+ exports.default = nameTokenizer;
7
7
  const util_js_1 = require("../../util.cjs");
8
-
9
8
  const isQuoted = s => s && s.startsWith('"') && s.endsWith('"');
10
9
  /**
11
10
  * Splits remaining `spec.lines[].tokens.description` into `name` and `descriptions` tokens,
12
11
  * and populates the `spec.name`
13
12
  */
14
-
15
-
16
13
  function nameTokenizer() {
17
14
  const typeEnd = (num, {
18
15
  tokens
19
16
  }, i) => tokens.type === '' ? num : i;
20
-
21
17
  return spec => {
22
- // look for the name in the line where {type} ends
23
- const {
24
- tokens
25
- } = spec.source[spec.source.reduce(typeEnd, 0)];
26
- const source = tokens.description.trimLeft();
27
- const quotedGroups = source.split('"'); // if it starts with quoted group, assume it is a literal
28
-
18
+ // look for the name starting in the line where {type} ends
19
+ let finalTypeLine = spec.source.reduce(typeEnd, 0);
20
+ let tokens;
21
+ do {
22
+ ({
23
+ tokens
24
+ } = spec.source[finalTypeLine]);
25
+ if (tokens.description.trim()) {
26
+ break;
27
+ }
28
+ finalTypeLine++;
29
+ } while (spec.source[finalTypeLine]);
30
+ const source = tokens.description.trimStart();
31
+ const quotedGroups = source.split('"');
32
+ // if it starts with quoted group, assume it is a literal
29
33
  if (quotedGroups.length > 1 && quotedGroups[0] === '' && quotedGroups.length % 2 === 1) {
30
34
  spec.name = quotedGroups[1];
31
35
  tokens.name = `"${quotedGroups[1]}"`;
32
36
  [tokens.postName, tokens.description] = (0, util_js_1.splitSpace)(source.slice(tokens.name.length));
33
37
  return spec;
34
38
  }
35
-
36
39
  let brackets = 0;
37
40
  let name = '';
38
41
  let optional = false;
39
- let defaultValue; // assume name is non-space string or anything wrapped into brackets
40
-
42
+ let defaultValue;
43
+ // assume name is non-space string or anything wrapped into brackets
41
44
  for (const ch of source) {
42
45
  if (brackets === 0 && (0, util_js_1.isSpace)(ch)) break;
43
46
  if (ch === '[') brackets++;
44
47
  if (ch === ']') brackets--;
45
48
  name += ch;
46
49
  }
47
-
48
50
  if (brackets !== 0) {
49
51
  spec.problems.push({
50
52
  code: 'spec:name:unpaired-brackets',
@@ -54,16 +56,13 @@ function nameTokenizer() {
54
56
  });
55
57
  return spec;
56
58
  }
57
-
58
59
  const nameToken = name;
59
-
60
60
  if (name[0] === '[' && name[name.length - 1] === ']') {
61
61
  optional = true;
62
62
  name = name.slice(1, -1);
63
63
  const parts = name.split('=');
64
64
  name = parts[0].trim();
65
65
  if (parts[1] !== undefined) defaultValue = parts.slice(1).join('=').trim();
66
-
67
66
  if (name === '') {
68
67
  spec.problems.push({
69
68
  code: 'spec:name:empty-name',
@@ -73,7 +72,6 @@ function nameTokenizer() {
73
72
  });
74
73
  return spec;
75
74
  }
76
-
77
75
  if (defaultValue === '') {
78
76
  spec.problems.push({
79
77
  code: 'spec:name:empty-default',
@@ -82,9 +80,8 @@ function nameTokenizer() {
82
80
  critical: true
83
81
  });
84
82
  return spec;
85
- } // has "=" and is not a string, except for "=>"
86
-
87
-
83
+ }
84
+ // has "=" and is not a string, except for "=>"
88
85
  if (!isQuoted(defaultValue) && /=(?!>)/.test(defaultValue)) {
89
86
  spec.problems.push({
90
87
  code: 'spec:name:invalid-default',
@@ -95,7 +92,6 @@ function nameTokenizer() {
95
92
  return spec;
96
93
  }
97
94
  }
98
-
99
95
  spec.optional = optional;
100
96
  spec.name = name;
101
97
  tokens.name = nameToken;
@@ -104,6 +100,4 @@ function nameTokenizer() {
104
100
  return spec;
105
101
  };
106
102
  }
107
-
108
- exports.default = nameTokenizer;
109
103
  //# sourceMappingURL=name.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["name.js"],"names":["Object","defineProperty","exports","value","util_js_1","require","isQuoted","s","startsWith","endsWith","nameTokenizer","typeEnd","num","tokens","i","type","spec","source","reduce","description","trimLeft","quotedGroups","split","length","name","postName","splitSpace","slice","brackets","optional","defaultValue","ch","isSpace","problems","push","code","message","line","number","critical","nameToken","parts","trim","undefined","join","test","default"],"mappings":"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","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_js_1 = require(\"../../util.js\");\nconst isQuoted = (s) => s && s.startsWith('\"') && s.endsWith('\"');\n/**\n * Splits remaining `spec.lines[].tokens.description` into `name` and `descriptions` tokens,\n * and populates the `spec.name`\n */\nfunction nameTokenizer() {\n const typeEnd = (num, { tokens }, i) => tokens.type === '' ? num : i;\n return (spec) => {\n // look for the name in the line where {type} ends\n const { tokens } = spec.source[spec.source.reduce(typeEnd, 0)];\n const source = tokens.description.trimLeft();\n const quotedGroups = source.split('\"');\n // if it starts with quoted group, assume it is a literal\n if (quotedGroups.length > 1 &&\n quotedGroups[0] === '' &&\n quotedGroups.length % 2 === 1) {\n spec.name = quotedGroups[1];\n tokens.name = `\"${quotedGroups[1]}\"`;\n [tokens.postName, tokens.description] = (0, util_js_1.splitSpace)(source.slice(tokens.name.length));\n return spec;\n }\n let brackets = 0;\n let name = '';\n let optional = false;\n let defaultValue;\n // assume name is non-space string or anything wrapped into brackets\n for (const ch of source) {\n if (brackets === 0 && (0, util_js_1.isSpace)(ch))\n break;\n if (ch === '[')\n brackets++;\n if (ch === ']')\n brackets--;\n name += ch;\n }\n if (brackets !== 0) {\n spec.problems.push({\n code: 'spec:name:unpaired-brackets',\n message: 'unpaired brackets',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n const nameToken = name;\n if (name[0] === '[' && name[name.length - 1] === ']') {\n optional = true;\n name = name.slice(1, -1);\n const parts = name.split('=');\n name = parts[0].trim();\n if (parts[1] !== undefined)\n defaultValue = parts.slice(1).join('=').trim();\n if (name === '') {\n spec.problems.push({\n code: 'spec:name:empty-name',\n message: 'empty name',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n if (defaultValue === '') {\n spec.problems.push({\n code: 'spec:name:empty-default',\n message: 'empty default value',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n // has \"=\" and is not a string, except for \"=>\"\n if (!isQuoted(defaultValue) && /=(?!>)/.test(defaultValue)) {\n spec.problems.push({\n code: 'spec:name:invalid-default',\n message: 'invalid default value syntax',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n }\n spec.optional = optional;\n spec.name = name;\n tokens.name = nameToken;\n if (defaultValue !== undefined)\n spec.default = defaultValue;\n [tokens.postName, tokens.description] = (0, util_js_1.splitSpace)(source.slice(tokens.name.length));\n return spec;\n };\n}\nexports.default = nameTokenizer;\n"],"file":"name.cjs"}
1
+ {"version":3,"file":"name.cjs","names":["Object","defineProperty","exports","value","default","nameTokenizer","util_js_1","require","isQuoted","s","startsWith","endsWith","typeEnd","num","tokens","i","type","spec","finalTypeLine","source","reduce","description","trim","trimStart","quotedGroups","split","length","name","postName","splitSpace","slice","brackets","optional","defaultValue","ch","isSpace","problems","push","code","message","line","number","critical","nameToken","parts","undefined","join","test"],"sources":["name.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = nameTokenizer;\nconst util_js_1 = require(\"../../util.js\");\nconst isQuoted = (s) => s && s.startsWith('\"') && s.endsWith('\"');\n/**\n * Splits remaining `spec.lines[].tokens.description` into `name` and `descriptions` tokens,\n * and populates the `spec.name`\n */\nfunction nameTokenizer() {\n const typeEnd = (num, { tokens }, i) => tokens.type === '' ? num : i;\n return (spec) => {\n // look for the name starting in the line where {type} ends\n let finalTypeLine = spec.source.reduce(typeEnd, 0);\n let tokens;\n do {\n ({ tokens } = spec.source[finalTypeLine]);\n if (tokens.description.trim()) {\n break;\n }\n finalTypeLine++;\n } while (spec.source[finalTypeLine]);\n const source = tokens.description.trimStart();\n const quotedGroups = source.split('\"');\n // if it starts with quoted group, assume it is a literal\n if (quotedGroups.length > 1 &&\n quotedGroups[0] === '' &&\n quotedGroups.length % 2 === 1) {\n spec.name = quotedGroups[1];\n tokens.name = `\"${quotedGroups[1]}\"`;\n [tokens.postName, tokens.description] = (0, util_js_1.splitSpace)(source.slice(tokens.name.length));\n return spec;\n }\n let brackets = 0;\n let name = '';\n let optional = false;\n let defaultValue;\n // assume name is non-space string or anything wrapped into brackets\n for (const ch of source) {\n if (brackets === 0 && (0, util_js_1.isSpace)(ch))\n break;\n if (ch === '[')\n brackets++;\n if (ch === ']')\n brackets--;\n name += ch;\n }\n if (brackets !== 0) {\n spec.problems.push({\n code: 'spec:name:unpaired-brackets',\n message: 'unpaired brackets',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n const nameToken = name;\n if (name[0] === '[' && name[name.length - 1] === ']') {\n optional = true;\n name = name.slice(1, -1);\n const parts = name.split('=');\n name = parts[0].trim();\n if (parts[1] !== undefined)\n defaultValue = parts.slice(1).join('=').trim();\n if (name === '') {\n spec.problems.push({\n code: 'spec:name:empty-name',\n message: 'empty name',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n if (defaultValue === '') {\n spec.problems.push({\n code: 'spec:name:empty-default',\n message: 'empty default value',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n // has \"=\" and is not a string, except for \"=>\"\n if (!isQuoted(defaultValue) && /=(?!>)/.test(defaultValue)) {\n spec.problems.push({\n code: 'spec:name:invalid-default',\n message: 'invalid default value syntax',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n }\n spec.optional = optional;\n spec.name = name;\n tokens.name = nameToken;\n if (defaultValue !== undefined)\n spec.default = defaultValue;\n [tokens.postName, tokens.description] = (0, util_js_1.splitSpace)(source.slice(tokens.name.length));\n return spec;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,18 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = tagTokenizer;
6
7
  /**
7
8
  * Splits the `@prefix` from remaining `Spec.lines[].token.description` into the `tag` token,
8
9
  * and populates `spec.tag`
9
10
  */
10
-
11
11
  function tagTokenizer() {
12
12
  return spec => {
13
13
  const {
14
14
  tokens
15
15
  } = spec.source[0];
16
16
  const match = tokens.description.match(/\s*(@(\S+))(\s*)/);
17
-
18
17
  if (match === null) {
19
18
  spec.problems.push({
20
19
  code: 'spec:tag:prefix',
@@ -24,7 +23,9 @@ function tagTokenizer() {
24
23
  });
25
24
  return spec;
26
25
  }
27
-
26
+ if (match[1].includes('/')) {
27
+ return spec;
28
+ }
28
29
  tokens.tag = match[1];
29
30
  tokens.postTag = match[3];
30
31
  tokens.description = tokens.description.slice(match[0].length);
@@ -32,6 +33,4 @@ function tagTokenizer() {
32
33
  return spec;
33
34
  };
34
35
  }
35
-
36
- exports.default = tagTokenizer;
37
36
  //# sourceMappingURL=tag.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["tag.js"],"names":["Object","defineProperty","exports","value","tagTokenizer","spec","tokens","source","match","description","problems","push","code","message","line","number","critical","tag","postTag","slice","length","default"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACA;AACA;AACA;AACA;;AACA,SAASC,YAAT,GAAwB;AACpB,SAAQC,IAAD,IAAU;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAaD,IAAI,CAACE,MAAL,CAAY,CAAZ,CAAnB;AACA,UAAMC,KAAK,GAAGF,MAAM,CAACG,WAAP,CAAmBD,KAAnB,CAAyB,kBAAzB,CAAd;;AACA,QAAIA,KAAK,KAAK,IAAd,EAAoB;AAChBH,MAAAA,IAAI,CAACK,QAAL,CAAcC,IAAd,CAAmB;AACfC,QAAAA,IAAI,EAAE,iBADS;AAEfC,QAAAA,OAAO,EAAE,kCAFM;AAGfC,QAAAA,IAAI,EAAET,IAAI,CAACE,MAAL,CAAY,CAAZ,EAAeQ,MAHN;AAIfC,QAAAA,QAAQ,EAAE;AAJK,OAAnB;AAMA,aAAOX,IAAP;AACH;;AACDC,IAAAA,MAAM,CAACW,GAAP,GAAaT,KAAK,CAAC,CAAD,CAAlB;AACAF,IAAAA,MAAM,CAACY,OAAP,GAAiBV,KAAK,CAAC,CAAD,CAAtB;AACAF,IAAAA,MAAM,CAACG,WAAP,GAAqBH,MAAM,CAACG,WAAP,CAAmBU,KAAnB,CAAyBX,KAAK,CAAC,CAAD,CAAL,CAASY,MAAlC,CAArB;AACAf,IAAAA,IAAI,CAACY,GAAL,GAAWT,KAAK,CAAC,CAAD,CAAhB;AACA,WAAOH,IAAP;AACH,GAjBD;AAkBH;;AACDH,OAAO,CAACmB,OAAR,GAAkBjB,YAAlB","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Splits the `@prefix` from remaining `Spec.lines[].token.description` into the `tag` token,\n * and populates `spec.tag`\n */\nfunction tagTokenizer() {\n return (spec) => {\n const { tokens } = spec.source[0];\n const match = tokens.description.match(/\\s*(@(\\S+))(\\s*)/);\n if (match === null) {\n spec.problems.push({\n code: 'spec:tag:prefix',\n message: 'tag should start with \"@\" symbol',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n tokens.tag = match[1];\n tokens.postTag = match[3];\n tokens.description = tokens.description.slice(match[0].length);\n spec.tag = match[2];\n return spec;\n };\n}\nexports.default = tagTokenizer;\n"],"file":"tag.cjs"}
1
+ {"version":3,"file":"tag.cjs","names":["Object","defineProperty","exports","value","default","tagTokenizer","spec","tokens","source","match","description","problems","push","code","message","line","number","critical","includes","tag","postTag","slice","length"],"sources":["tag.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = tagTokenizer;\n/**\n * Splits the `@prefix` from remaining `Spec.lines[].token.description` into the `tag` token,\n * and populates `spec.tag`\n */\nfunction tagTokenizer() {\n return (spec) => {\n const { tokens } = spec.source[0];\n const match = tokens.description.match(/\\s*(@(\\S+))(\\s*)/);\n if (match === null) {\n spec.problems.push({\n code: 'spec:tag:prefix',\n message: 'tag should start with \"@\" symbol',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n if (match[1].includes('/')) {\n return spec;\n }\n tokens.tag = match[1];\n tokens.postTag = match[3];\n tokens.description = tokens.description.slice(match[0].length);\n spec.tag = match[2];\n return spec;\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,YAAY;AAC9B;AACA;AACA;AACA;AACA,SAASA,YAAYA,CAAA,EAAG;EACpB,OAAQC,IAAI,IAAK;IACb,MAAM;MAAEC;IAAO,CAAC,GAAGD,IAAI,CAACE,MAAM,CAAC,CAAC,CAAC;IACjC,MAAMC,KAAK,GAAGF,MAAM,CAACG,WAAW,CAACD,KAAK,CAAC,kBAAkB,CAAC;IAC1D,IAAIA,KAAK,KAAK,IAAI,EAAE;MAChBH,IAAI,CAACK,QAAQ,CAACC,IAAI,CAAC;QACfC,IAAI,EAAE,iBAAiB;QACvBC,OAAO,EAAE,kCAAkC;QAC3CC,IAAI,EAAET,IAAI,CAACE,MAAM,CAAC,CAAC,CAAC,CAACQ,MAAM;QAC3BC,QAAQ,EAAE;MACd,CAAC,CAAC;MACF,OAAOX,IAAI;IACf;IACA,IAAIG,KAAK,CAAC,CAAC,CAAC,CAACS,QAAQ,CAAC,GAAG,CAAC,EAAE;MACxB,OAAOZ,IAAI;IACf;IACAC,MAAM,CAACY,GAAG,GAAGV,KAAK,CAAC,CAAC,CAAC;IACrBF,MAAM,CAACa,OAAO,GAAGX,KAAK,CAAC,CAAC,CAAC;IACzBF,MAAM,CAACG,WAAW,GAAGH,MAAM,CAACG,WAAW,CAACW,KAAK,CAACZ,KAAK,CAAC,CAAC,CAAC,CAACa,MAAM,CAAC;IAC9DhB,IAAI,CAACa,GAAG,GAAGV,KAAK,CAAC,CAAC,CAAC;IACnB,OAAOH,IAAI;EACf,CAAC;AACL","ignoreList":[]}
@@ -3,40 +3,45 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
6
+ exports.default = typeTokenizer;
7
7
  const util_js_1 = require("../../util.cjs");
8
8
  /**
9
- * Sets splits remaining `Spec.lines[].tokes.description` into `type` and `description`
9
+ * Sets splits remaining `Spec.lines[].tokens.description` into `type` and `description`
10
10
  * tokens and populates Spec.type`
11
11
  *
12
12
  * @param {Spacing} spacing tells how to deal with a whitespace
13
13
  * for type values going over multiple lines
14
14
  */
15
-
16
-
17
15
  function typeTokenizer(spacing = 'compact') {
18
16
  const join = getJoiner(spacing);
19
17
  return spec => {
20
18
  let curlies = 0;
21
19
  let lines = [];
22
-
23
- for (const [i, {
20
+ let descriptionBegun = false;
21
+ let firstTypeIteration = true;
22
+ for (const {
24
23
  tokens
25
- }] of spec.source.entries()) {
24
+ } of spec.source.values()) {
26
25
  let type = '';
27
- if (i === 0 && tokens.description[0] !== '{') return spec;
28
-
26
+ if (!descriptionBegun && tokens.description.trim()) {
27
+ descriptionBegun = true;
28
+ } else if (!descriptionBegun) {
29
+ continue;
30
+ }
31
+ if (firstTypeIteration && tokens.description[0] !== '{') return spec;
32
+ firstTypeIteration = false;
29
33
  for (const ch of tokens.description) {
30
34
  if (ch === '{') curlies++;
31
35
  if (ch === '}') curlies--;
32
36
  type += ch;
33
37
  if (curlies === 0) break;
34
38
  }
35
-
36
39
  lines.push([tokens, type]);
37
40
  if (curlies === 0) break;
38
41
  }
39
-
42
+ if (!descriptionBegun) {
43
+ return spec;
44
+ }
40
45
  if (curlies !== 0) {
41
46
  spec.problems.push({
42
47
  code: 'spec:type:unpaired-curlies',
@@ -46,33 +51,24 @@ function typeTokenizer(spacing = 'compact') {
46
51
  });
47
52
  return spec;
48
53
  }
49
-
50
54
  const parts = [];
51
55
  const offset = lines[0][0].postDelimiter.length;
52
-
53
56
  for (const [i, [tokens, type]] of lines.entries()) {
54
57
  tokens.type = type;
55
-
56
58
  if (i > 0) {
57
59
  tokens.type = tokens.postDelimiter.slice(offset) + type;
58
60
  tokens.postDelimiter = tokens.postDelimiter.slice(0, offset);
59
61
  }
60
-
61
62
  [tokens.postType, tokens.description] = (0, util_js_1.splitSpace)(tokens.description.slice(type.length));
62
63
  parts.push(tokens.type);
63
64
  }
64
-
65
65
  parts[0] = parts[0].slice(1);
66
66
  parts[parts.length - 1] = parts[parts.length - 1].slice(0, -1);
67
67
  spec.type = join(parts);
68
68
  return spec;
69
69
  };
70
70
  }
71
-
72
- exports.default = typeTokenizer;
73
-
74
71
  const trim = x => x.trim();
75
-
76
72
  function getJoiner(spacing) {
77
73
  if (spacing === 'compact') return t => t.map(trim).join('');else if (spacing === 'preserve') return t => t.join('\n');else return spacing;
78
74
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["type.js"],"names":["Object","defineProperty","exports","value","util_js_1","require","typeTokenizer","spacing","join","getJoiner","spec","curlies","lines","i","tokens","source","entries","type","description","ch","push","problems","code","message","line","number","critical","parts","offset","postDelimiter","length","slice","postType","splitSpace","default","trim","x","t","map"],"mappings":"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","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_js_1 = require(\"../../util.js\");\n/**\n * Sets splits remaining `Spec.lines[].tokes.description` into `type` and `description`\n * tokens and populates Spec.type`\n *\n * @param {Spacing} spacing tells how to deal with a whitespace\n * for type values going over multiple lines\n */\nfunction typeTokenizer(spacing = 'compact') {\n const join = getJoiner(spacing);\n return (spec) => {\n let curlies = 0;\n let lines = [];\n for (const [i, { tokens }] of spec.source.entries()) {\n let type = '';\n if (i === 0 && tokens.description[0] !== '{')\n return spec;\n for (const ch of tokens.description) {\n if (ch === '{')\n curlies++;\n if (ch === '}')\n curlies--;\n type += ch;\n if (curlies === 0)\n break;\n }\n lines.push([tokens, type]);\n if (curlies === 0)\n break;\n }\n if (curlies !== 0) {\n spec.problems.push({\n code: 'spec:type:unpaired-curlies',\n message: 'unpaired curlies',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n const parts = [];\n const offset = lines[0][0].postDelimiter.length;\n for (const [i, [tokens, type]] of lines.entries()) {\n tokens.type = type;\n if (i > 0) {\n tokens.type = tokens.postDelimiter.slice(offset) + type;\n tokens.postDelimiter = tokens.postDelimiter.slice(0, offset);\n }\n [tokens.postType, tokens.description] = (0, util_js_1.splitSpace)(tokens.description.slice(type.length));\n parts.push(tokens.type);\n }\n parts[0] = parts[0].slice(1);\n parts[parts.length - 1] = parts[parts.length - 1].slice(0, -1);\n spec.type = join(parts);\n return spec;\n };\n}\nexports.default = typeTokenizer;\nconst trim = (x) => x.trim();\nfunction getJoiner(spacing) {\n if (spacing === 'compact')\n return (t) => t.map(trim).join('');\n else if (spacing === 'preserve')\n return (t) => t.join('\\n');\n else\n return spacing;\n}\n"],"file":"type.cjs"}
1
+ {"version":3,"file":"type.cjs","names":["Object","defineProperty","exports","value","default","typeTokenizer","util_js_1","require","spacing","join","getJoiner","spec","curlies","lines","descriptionBegun","firstTypeIteration","tokens","source","values","type","description","trim","ch","push","problems","code","message","line","number","critical","parts","offset","postDelimiter","length","i","entries","slice","postType","splitSpace","x","t","map"],"sources":["type.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = typeTokenizer;\nconst util_js_1 = require(\"../../util.js\");\n/**\n * Sets splits remaining `Spec.lines[].tokens.description` into `type` and `description`\n * tokens and populates Spec.type`\n *\n * @param {Spacing} spacing tells how to deal with a whitespace\n * for type values going over multiple lines\n */\nfunction typeTokenizer(spacing = 'compact') {\n const join = getJoiner(spacing);\n return (spec) => {\n let curlies = 0;\n let lines = [];\n let descriptionBegun = false;\n let firstTypeIteration = true;\n for (const { tokens } of spec.source.values()) {\n let type = '';\n if (!descriptionBegun && tokens.description.trim()) {\n descriptionBegun = true;\n }\n else if (!descriptionBegun) {\n continue;\n }\n if (firstTypeIteration && tokens.description[0] !== '{')\n return spec;\n firstTypeIteration = false;\n for (const ch of tokens.description) {\n if (ch === '{')\n curlies++;\n if (ch === '}')\n curlies--;\n type += ch;\n if (curlies === 0)\n break;\n }\n lines.push([tokens, type]);\n if (curlies === 0)\n break;\n }\n if (!descriptionBegun) {\n return spec;\n }\n if (curlies !== 0) {\n spec.problems.push({\n code: 'spec:type:unpaired-curlies',\n message: 'unpaired curlies',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n const parts = [];\n const offset = lines[0][0].postDelimiter.length;\n for (const [i, [tokens, type]] of lines.entries()) {\n tokens.type = type;\n if (i > 0) {\n tokens.type = tokens.postDelimiter.slice(offset) + type;\n tokens.postDelimiter = tokens.postDelimiter.slice(0, offset);\n }\n [tokens.postType, tokens.description] = (0, util_js_1.splitSpace)(tokens.description.slice(type.length));\n parts.push(tokens.type);\n }\n parts[0] = parts[0].slice(1);\n parts[parts.length - 1] = parts[parts.length - 1].slice(0, -1);\n spec.type = join(parts);\n return spec;\n };\n}\nconst trim = (x) => x.trim();\nfunction getJoiner(spacing) {\n if (spacing === 'compact')\n return (t) => t.map(trim).join('');\n else if (spacing === 'preserve')\n return (t) => t.join('\\n');\n else\n return spacing;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -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
@@ -5,13 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Markers = void 0;
7
7
  /** @deprecated */
8
-
9
8
  var Markers;
10
-
11
9
  (function (Markers) {
12
10
  Markers["start"] = "/**";
13
11
  Markers["nostart"] = "/***";
14
12
  Markers["delim"] = "*";
15
13
  Markers["end"] = "*/";
16
- })(Markers = exports.Markers || (exports.Markers = {}));
14
+ })(Markers || (exports.Markers = Markers = {}));
17
15
  //# sourceMappingURL=primitives.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["primitives.js"],"names":["Object","defineProperty","exports","value","Markers"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;AACA;;AACA,IAAIA,OAAJ;;AACA,CAAC,UAAUA,OAAV,EAAmB;AAChBA,EAAAA,OAAO,CAAC,OAAD,CAAP,GAAmB,KAAnB;AACAA,EAAAA,OAAO,CAAC,SAAD,CAAP,GAAqB,MAArB;AACAA,EAAAA,OAAO,CAAC,OAAD,CAAP,GAAmB,GAAnB;AACAA,EAAAA,OAAO,CAAC,KAAD,CAAP,GAAiB,IAAjB;AACH,CALD,EAKGA,OAAO,GAAGF,OAAO,CAACE,OAAR,KAAoBF,OAAO,CAACE,OAAR,GAAkB,EAAtC,CALb","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Markers = void 0;\n/** @deprecated */\nvar Markers;\n(function (Markers) {\n Markers[\"start\"] = \"/**\";\n Markers[\"nostart\"] = \"/***\";\n Markers[\"delim\"] = \"*\";\n Markers[\"end\"] = \"*/\";\n})(Markers = exports.Markers || (exports.Markers = {}));\n"],"file":"primitives.cjs"}
1
+ {"version":3,"file":"primitives.cjs","names":["Object","defineProperty","exports","value","Markers"],"sources":["primitives.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Markers = void 0;\n/** @deprecated */\nvar Markers;\n(function (Markers) {\n Markers[\"start\"] = \"/**\";\n Markers[\"nostart\"] = \"/***\";\n Markers[\"delim\"] = \"*\";\n Markers[\"end\"] = \"*/\";\n})(Markers || (exports.Markers = Markers = {}));\n"],"mappings":"AAAA,YAAY;;AACZA,MAAM,CAACC,cAAc,CAACC,OAAO,EAAE,YAAY,EAAE;EAAEC,KAAK,EAAE;AAAK,CAAC,CAAC;AAC7DD,OAAO,CAACE,OAAO,GAAG,KAAK,CAAC;AACxB;AACA,IAAIA,OAAO;AACX,CAAC,UAAUA,OAAO,EAAE;EAChBA,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK;EACxBA,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM;EAC3BA,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG;EACtBA,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI;AACzB,CAAC,EAAEA,OAAO,KAAKF,OAAO,CAACE,OAAO,GAAGA,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC","ignoreList":[]}
@@ -3,16 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
6
+ exports.default = getStringifier;
7
7
  function join(tokens) {
8
8
  return tokens.start + tokens.delimiter + tokens.postDelimiter + tokens.tag + tokens.postTag + tokens.type + tokens.postType + tokens.name + tokens.postName + tokens.description + tokens.end + tokens.lineEnd;
9
9
  }
10
-
11
10
  function getStringifier() {
12
11
  return block => block.source.map(({
13
12
  tokens
14
13
  }) => join(tokens)).join('\n');
15
14
  }
16
-
17
- exports.default = getStringifier;
18
15
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"names":["Object","defineProperty","exports","value","join","tokens","start","delimiter","postDelimiter","tag","postTag","type","postType","name","postName","description","end","lineEnd","getStringifier","block","source","map","default"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;;AACA,SAASC,IAAT,CAAcC,MAAd,EAAsB;AAClB,SAAQA,MAAM,CAACC,KAAP,GACJD,MAAM,CAACE,SADH,GAEJF,MAAM,CAACG,aAFH,GAGJH,MAAM,CAACI,GAHH,GAIJJ,MAAM,CAACK,OAJH,GAKJL,MAAM,CAACM,IALH,GAMJN,MAAM,CAACO,QANH,GAOJP,MAAM,CAACQ,IAPH,GAQJR,MAAM,CAACS,QARH,GASJT,MAAM,CAACU,WATH,GAUJV,MAAM,CAACW,GAVH,GAWJX,MAAM,CAACY,OAXX;AAYH;;AACD,SAASC,cAAT,GAA0B;AACtB,SAAQC,KAAD,IAAWA,KAAK,CAACC,MAAN,CAAaC,GAAb,CAAiB,CAAC;AAAEhB,IAAAA;AAAF,GAAD,KAAgBD,IAAI,CAACC,MAAD,CAArC,EAA+CD,IAA/C,CAAoD,IAApD,CAAlB;AACH;;AACDF,OAAO,CAACoB,OAAR,GAAkBJ,cAAlB","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction join(tokens) {\n return (tokens.start +\n tokens.delimiter +\n tokens.postDelimiter +\n tokens.tag +\n tokens.postTag +\n tokens.type +\n tokens.postType +\n tokens.name +\n tokens.postName +\n tokens.description +\n tokens.end +\n tokens.lineEnd);\n}\nfunction getStringifier() {\n return (block) => block.source.map(({ tokens }) => join(tokens)).join('\\n');\n}\nexports.default = getStringifier;\n"],"file":"index.cjs"}
1
+ {"version":3,"file":"index.cjs","names":["Object","defineProperty","exports","value","default","getStringifier","join","tokens","start","delimiter","postDelimiter","tag","postTag","type","postType","name","postName","description","end","lineEnd","block","source","map"],"sources":["index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = getStringifier;\nfunction join(tokens) {\n return (tokens.start +\n tokens.delimiter +\n tokens.postDelimiter +\n tokens.tag +\n tokens.postTag +\n tokens.type +\n tokens.postType +\n tokens.name +\n tokens.postName +\n tokens.description +\n tokens.end +\n tokens.lineEnd);\n}\nfunction getStringifier() {\n return (block) => block.source.map(({ tokens }) => join(tokens)).join('\\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,cAAc;AAChC,SAASC,IAAIA,CAACC,MAAM,EAAE;EAClB,OAAQA,MAAM,CAACC,KAAK,GAChBD,MAAM,CAACE,SAAS,GAChBF,MAAM,CAACG,aAAa,GACpBH,MAAM,CAACI,GAAG,GACVJ,MAAM,CAACK,OAAO,GACdL,MAAM,CAACM,IAAI,GACXN,MAAM,CAACO,QAAQ,GACfP,MAAM,CAACQ,IAAI,GACXR,MAAM,CAACS,QAAQ,GACfT,MAAM,CAACU,WAAW,GAClBV,MAAM,CAACW,GAAG,GACVX,MAAM,CAACY,OAAO;AACtB;AACA,SAASd,cAAcA,CAAA,EAAG;EACtB,OAAQe,KAAK,IAAKA,KAAK,CAACC,MAAM,CAACC,GAAG,CAAC,CAAC;IAAEf;EAAO,CAAC,KAAKD,IAAI,CAACC,MAAM,CAAC,CAAC,CAACD,IAAI,CAAC,IAAI,CAAC;AAC/E","ignoreList":[]}