comment-parser 1.4.1 → 1.4.2

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 (69) hide show
  1. package/CHANGELOG.md +50 -2
  2. package/es6/parser/tokenizers/name.js +11 -3
  3. package/es6/parser/tokenizers/tag.js +3 -0
  4. package/es6/parser/tokenizers/type.d.ts +1 -1
  5. package/es6/parser/tokenizers/type.js +15 -3
  6. package/es6/primitives.js +1 -1
  7. package/jest.config.cjs +5 -7
  8. package/package.json +14 -10
  9. package/src/parser/tokenizers/name.ts +13 -3
  10. package/src/parser/tokenizers/tag.ts +4 -0
  11. package/src/parser/tokenizers/type.ts +16 -3
  12. package/tests/unit/parser.spec.ts +234 -0
  13. package/tests/unit/spec-tag-tokenizer.spec.ts +30 -0
  14. package/tsconfig.node.json +0 -1
  15. package/browser/index.js +0 -650
  16. package/lib/index.cjs +0 -88
  17. package/lib/index.cjs.map +0 -1
  18. package/lib/index.d.ts +0 -32
  19. package/lib/parser/block-parser.cjs +0 -44
  20. package/lib/parser/block-parser.cjs.map +0 -1
  21. package/lib/parser/block-parser.d.ts +0 -24
  22. package/lib/parser/index.cjs +0 -65
  23. package/lib/parser/index.cjs.map +0 -1
  24. package/lib/parser/index.d.ts +0 -11
  25. package/lib/parser/source-parser.cjs +0 -68
  26. package/lib/parser/source-parser.cjs.map +0 -1
  27. package/lib/parser/source-parser.d.ts +0 -7
  28. package/lib/parser/spec-parser.cjs +0 -29
  29. package/lib/parser/spec-parser.cjs.map +0 -1
  30. package/lib/parser/spec-parser.d.ts +0 -7
  31. package/lib/parser/tokenizers/description.cjs +0 -62
  32. package/lib/parser/tokenizers/description.cjs.map +0 -1
  33. package/lib/parser/tokenizers/description.d.ts +0 -20
  34. package/lib/parser/tokenizers/index.cjs +0 -6
  35. package/lib/parser/tokenizers/index.cjs.map +0 -1
  36. package/lib/parser/tokenizers/index.d.ts +0 -7
  37. package/lib/parser/tokenizers/name.cjs +0 -109
  38. package/lib/parser/tokenizers/name.cjs.map +0 -1
  39. package/lib/parser/tokenizers/name.d.ts +0 -6
  40. package/lib/parser/tokenizers/tag.cjs +0 -37
  41. package/lib/parser/tokenizers/tag.cjs.map +0 -1
  42. package/lib/parser/tokenizers/tag.d.ts +0 -6
  43. package/lib/parser/tokenizers/type.cjs +0 -79
  44. package/lib/parser/tokenizers/type.cjs.map +0 -1
  45. package/lib/parser/tokenizers/type.d.ts +0 -27
  46. package/lib/primitives.cjs +0 -17
  47. package/lib/primitives.cjs.map +0 -1
  48. package/lib/primitives.d.ts +0 -54
  49. package/lib/stringifier/index.cjs +0 -18
  50. package/lib/stringifier/index.cjs.map +0 -1
  51. package/lib/stringifier/index.d.ts +0 -3
  52. package/lib/stringifier/inspect.cjs +0 -72
  53. package/lib/stringifier/inspect.cjs.map +0 -1
  54. package/lib/stringifier/inspect.d.ts +0 -2
  55. package/lib/transforms/align.cjs +0 -127
  56. package/lib/transforms/align.cjs.map +0 -1
  57. package/lib/transforms/align.d.ts +0 -3
  58. package/lib/transforms/crlf.cjs +0 -44
  59. package/lib/transforms/crlf.cjs.map +0 -1
  60. package/lib/transforms/crlf.d.ts +0 -3
  61. package/lib/transforms/indent.cjs +0 -58
  62. package/lib/transforms/indent.cjs.map +0 -1
  63. package/lib/transforms/indent.d.ts +0 -2
  64. package/lib/transforms/index.cjs +0 -13
  65. package/lib/transforms/index.cjs.map +0 -1
  66. package/lib/transforms/index.d.ts +0 -3
  67. package/lib/util.cjs +0 -113
  68. package/lib/util.cjs.map +0 -1
  69. package/lib/util.d.ts +0 -21
@@ -1,109 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- const util_js_1 = require("../../util.cjs");
8
-
9
- const isQuoted = s => s && s.startsWith('"') && s.endsWith('"');
10
- /**
11
- * Splits remaining `spec.lines[].tokens.description` into `name` and `descriptions` tokens,
12
- * and populates the `spec.name`
13
- */
14
-
15
-
16
- function nameTokenizer() {
17
- const typeEnd = (num, {
18
- tokens
19
- }, i) => tokens.type === '' ? num : i;
20
-
21
- 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
-
29
- if (quotedGroups.length > 1 && quotedGroups[0] === '' && quotedGroups.length % 2 === 1) {
30
- spec.name = quotedGroups[1];
31
- tokens.name = `"${quotedGroups[1]}"`;
32
- [tokens.postName, tokens.description] = (0, util_js_1.splitSpace)(source.slice(tokens.name.length));
33
- return spec;
34
- }
35
-
36
- let brackets = 0;
37
- let name = '';
38
- let optional = false;
39
- let defaultValue; // assume name is non-space string or anything wrapped into brackets
40
-
41
- for (const ch of source) {
42
- if (brackets === 0 && (0, util_js_1.isSpace)(ch)) break;
43
- if (ch === '[') brackets++;
44
- if (ch === ']') brackets--;
45
- name += ch;
46
- }
47
-
48
- if (brackets !== 0) {
49
- spec.problems.push({
50
- code: 'spec:name:unpaired-brackets',
51
- message: 'unpaired brackets',
52
- line: spec.source[0].number,
53
- critical: true
54
- });
55
- return spec;
56
- }
57
-
58
- const nameToken = name;
59
-
60
- if (name[0] === '[' && name[name.length - 1] === ']') {
61
- optional = true;
62
- name = name.slice(1, -1);
63
- const parts = name.split('=');
64
- name = parts[0].trim();
65
- if (parts[1] !== undefined) defaultValue = parts.slice(1).join('=').trim();
66
-
67
- if (name === '') {
68
- spec.problems.push({
69
- code: 'spec:name:empty-name',
70
- message: 'empty name',
71
- line: spec.source[0].number,
72
- critical: true
73
- });
74
- return spec;
75
- }
76
-
77
- if (defaultValue === '') {
78
- spec.problems.push({
79
- code: 'spec:name:empty-default',
80
- message: 'empty default value',
81
- line: spec.source[0].number,
82
- critical: true
83
- });
84
- return spec;
85
- } // has "=" and is not a string, except for "=>"
86
-
87
-
88
- if (!isQuoted(defaultValue) && /=(?!>)/.test(defaultValue)) {
89
- spec.problems.push({
90
- code: 'spec:name:invalid-default',
91
- message: 'invalid default value syntax',
92
- line: spec.source[0].number,
93
- critical: true
94
- });
95
- return spec;
96
- }
97
- }
98
-
99
- spec.optional = optional;
100
- spec.name = name;
101
- tokens.name = nameToken;
102
- if (defaultValue !== undefined) spec.default = defaultValue;
103
- [tokens.postName, tokens.description] = (0, util_js_1.splitSpace)(source.slice(tokens.name.length));
104
- return spec;
105
- };
106
- }
107
-
108
- exports.default = nameTokenizer;
109
- //# sourceMappingURL=name.cjs.map
@@ -1 +0,0 @@
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,6 +0,0 @@
1
- import { Tokenizer } from './index.js';
2
- /**
3
- * Splits remaining `spec.lines[].tokens.description` into `name` and `descriptions` tokens,
4
- * and populates the `spec.name`
5
- */
6
- export default function nameTokenizer(): Tokenizer;
@@ -1,37 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- /**
7
- * Splits the `@prefix` from remaining `Spec.lines[].token.description` into the `tag` token,
8
- * and populates `spec.tag`
9
- */
10
-
11
- function tagTokenizer() {
12
- return spec => {
13
- const {
14
- tokens
15
- } = spec.source[0];
16
- const match = tokens.description.match(/\s*(@(\S+))(\s*)/);
17
-
18
- if (match === null) {
19
- spec.problems.push({
20
- code: 'spec:tag:prefix',
21
- message: 'tag should start with "@" symbol',
22
- line: spec.source[0].number,
23
- critical: true
24
- });
25
- return spec;
26
- }
27
-
28
- tokens.tag = match[1];
29
- tokens.postTag = match[3];
30
- tokens.description = tokens.description.slice(match[0].length);
31
- spec.tag = match[2];
32
- return spec;
33
- };
34
- }
35
-
36
- exports.default = tagTokenizer;
37
- //# sourceMappingURL=tag.cjs.map
@@ -1 +0,0 @@
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,6 +0,0 @@
1
- import { Tokenizer } from './index.js';
2
- /**
3
- * Splits the `@prefix` from remaining `Spec.lines[].token.description` into the `tag` token,
4
- * and populates `spec.tag`
5
- */
6
- export default function tagTokenizer(): Tokenizer;
@@ -1,79 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- const util_js_1 = require("../../util.cjs");
8
- /**
9
- * Sets splits remaining `Spec.lines[].tokes.description` into `type` and `description`
10
- * tokens and populates Spec.type`
11
- *
12
- * @param {Spacing} spacing tells how to deal with a whitespace
13
- * for type values going over multiple lines
14
- */
15
-
16
-
17
- function typeTokenizer(spacing = 'compact') {
18
- const join = getJoiner(spacing);
19
- return spec => {
20
- let curlies = 0;
21
- let lines = [];
22
-
23
- for (const [i, {
24
- tokens
25
- }] of spec.source.entries()) {
26
- let type = '';
27
- if (i === 0 && tokens.description[0] !== '{') return spec;
28
-
29
- for (const ch of tokens.description) {
30
- if (ch === '{') curlies++;
31
- if (ch === '}') curlies--;
32
- type += ch;
33
- if (curlies === 0) break;
34
- }
35
-
36
- lines.push([tokens, type]);
37
- if (curlies === 0) break;
38
- }
39
-
40
- if (curlies !== 0) {
41
- spec.problems.push({
42
- code: 'spec:type:unpaired-curlies',
43
- message: 'unpaired curlies',
44
- line: spec.source[0].number,
45
- critical: true
46
- });
47
- return spec;
48
- }
49
-
50
- const parts = [];
51
- const offset = lines[0][0].postDelimiter.length;
52
-
53
- for (const [i, [tokens, type]] of lines.entries()) {
54
- tokens.type = type;
55
-
56
- if (i > 0) {
57
- tokens.type = tokens.postDelimiter.slice(offset) + type;
58
- tokens.postDelimiter = tokens.postDelimiter.slice(0, offset);
59
- }
60
-
61
- [tokens.postType, tokens.description] = (0, util_js_1.splitSpace)(tokens.description.slice(type.length));
62
- parts.push(tokens.type);
63
- }
64
-
65
- parts[0] = parts[0].slice(1);
66
- parts[parts.length - 1] = parts[parts.length - 1].slice(0, -1);
67
- spec.type = join(parts);
68
- return spec;
69
- };
70
- }
71
-
72
- exports.default = typeTokenizer;
73
-
74
- const trim = x => x.trim();
75
-
76
- function getJoiner(spacing) {
77
- if (spacing === 'compact') return t => t.map(trim).join('');else if (spacing === 'preserve') return t => t.join('\n');else return spacing;
78
- }
79
- //# sourceMappingURL=type.cjs.map
@@ -1 +0,0 @@
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,27 +0,0 @@
1
- import { Tokenizer } from './index.js';
2
- /**
3
- * Joiner is a function taking collected type token string parts,
4
- * and joining them together. In most of the cases this will be
5
- * a single piece like {type-name}, but type may go over multipe line
6
- * ```
7
- * @tag {function(
8
- * number,
9
- * string
10
- * )}
11
- * ```
12
- */
13
- export type Joiner = (parts: string[]) => string;
14
- /**
15
- * Shortcut for standard Joiners
16
- * compact - trim surrounding space, replace line breaks with a single space
17
- * preserve - concat as is
18
- */
19
- export type Spacing = 'compact' | 'preserve' | Joiner;
20
- /**
21
- * Sets splits remaining `Spec.lines[].tokes.description` into `type` and `description`
22
- * tokens and populates Spec.type`
23
- *
24
- * @param {Spacing} spacing tells how to deal with a whitespace
25
- * for type values going over multiple lines
26
- */
27
- export default function typeTokenizer(spacing?: Spacing): Tokenizer;
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Markers = void 0;
7
- /** @deprecated */
8
-
9
- var Markers;
10
-
11
- (function (Markers) {
12
- Markers["start"] = "/**";
13
- Markers["nostart"] = "/***";
14
- Markers["delim"] = "*";
15
- Markers["end"] = "*/";
16
- })(Markers = exports.Markers || (exports.Markers = {}));
17
- //# sourceMappingURL=primitives.cjs.map
@@ -1 +0,0 @@
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,54 +0,0 @@
1
- /** @deprecated */
2
- export declare enum Markers {
3
- start = "/**",
4
- nostart = "/***",
5
- delim = "*",
6
- end = "*/"
7
- }
8
- export interface BlockMarkers {
9
- start: string;
10
- nostart: string;
11
- delim: string;
12
- end: string;
13
- }
14
- export interface Block {
15
- description: string;
16
- tags: Spec[];
17
- source: Line[];
18
- problems: Problem[];
19
- }
20
- export interface Spec {
21
- tag: string;
22
- name: string;
23
- default?: string;
24
- type: string;
25
- optional: boolean;
26
- description: string;
27
- problems: Problem[];
28
- source: Line[];
29
- }
30
- export interface Line {
31
- number: number;
32
- source: string;
33
- tokens: Tokens;
34
- }
35
- export interface Tokens {
36
- start: string;
37
- delimiter: string;
38
- postDelimiter: string;
39
- tag: string;
40
- postTag: string;
41
- name: string;
42
- postName: string;
43
- type: string;
44
- postType: string;
45
- description: string;
46
- end: string;
47
- lineEnd: string;
48
- }
49
- export interface Problem {
50
- code: 'unhandled' | 'custom' | 'source:startline' | 'spec:tag:prefix' | 'spec:type:unpaired-curlies' | 'spec:name:unpaired-brackets' | 'spec:name:empty-name' | 'spec:name:invalid-default' | 'spec:name:empty-default';
51
- message: string;
52
- line: number;
53
- critical: boolean;
54
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- function join(tokens) {
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
- }
10
-
11
- function getStringifier() {
12
- return block => block.source.map(({
13
- tokens
14
- }) => join(tokens)).join('\n');
15
- }
16
-
17
- exports.default = getStringifier;
18
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
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,3 +0,0 @@
1
- import { Block } from '../primitives.js';
2
- export type Stringifier = (block: Block) => string;
3
- export default function getStringifier(): Stringifier;
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- const util_js_1 = require("../util.cjs");
8
-
9
- const zeroWidth = {
10
- line: 0,
11
- start: 0,
12
- delimiter: 0,
13
- postDelimiter: 0,
14
- tag: 0,
15
- postTag: 0,
16
- name: 0,
17
- postName: 0,
18
- type: 0,
19
- postType: 0,
20
- description: 0,
21
- end: 0,
22
- lineEnd: 0
23
- };
24
- const headers = {
25
- lineEnd: 'CR'
26
- };
27
- const fields = Object.keys(zeroWidth);
28
-
29
- const repr = x => (0, util_js_1.isSpace)(x) ? `{${x.length}}` : x;
30
-
31
- const frame = line => '|' + line.join('|') + '|';
32
-
33
- const align = (width, tokens) => Object.keys(tokens).map(k => repr(tokens[k]).padEnd(width[k]));
34
-
35
- function inspect({
36
- source
37
- }) {
38
- var _a, _b;
39
-
40
- if (source.length === 0) return '';
41
- const width = Object.assign({}, zeroWidth);
42
-
43
- for (const f of fields) width[f] = ((_a = headers[f]) !== null && _a !== void 0 ? _a : f).length;
44
-
45
- for (const {
46
- number,
47
- tokens
48
- } of source) {
49
- width.line = Math.max(width.line, number.toString().length);
50
-
51
- for (const k in tokens) width[k] = Math.max(width[k], repr(tokens[k]).length);
52
- }
53
-
54
- const lines = [[], []];
55
-
56
- for (const f of fields) lines[0].push(((_b = headers[f]) !== null && _b !== void 0 ? _b : f).padEnd(width[f]));
57
-
58
- for (const f of fields) lines[1].push('-'.padEnd(width[f], '-'));
59
-
60
- for (const {
61
- number,
62
- tokens
63
- } of source) {
64
- const line = number.toString().padStart(width.line);
65
- lines.push([line, ...align(width, tokens)]);
66
- }
67
-
68
- return lines.map(frame).join('\n');
69
- }
70
-
71
- exports.default = inspect;
72
- //# sourceMappingURL=inspect.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["inspect.js"],"names":["Object","defineProperty","exports","value","util_js_1","require","zeroWidth","line","start","delimiter","postDelimiter","tag","postTag","name","postName","type","postType","description","end","lineEnd","headers","fields","keys","repr","x","isSpace","length","frame","join","align","width","tokens","map","k","padEnd","inspect","source","_a","_b","assign","f","number","Math","max","toString","lines","push","padStart","default"],"mappings":"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","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_js_1 = require(\"../util.js\");\nconst zeroWidth = {\n line: 0,\n start: 0,\n delimiter: 0,\n postDelimiter: 0,\n tag: 0,\n postTag: 0,\n name: 0,\n postName: 0,\n type: 0,\n postType: 0,\n description: 0,\n end: 0,\n lineEnd: 0,\n};\nconst headers = { lineEnd: 'CR' };\nconst fields = Object.keys(zeroWidth);\nconst repr = (x) => ((0, util_js_1.isSpace)(x) ? `{${x.length}}` : x);\nconst frame = (line) => '|' + line.join('|') + '|';\nconst align = (width, tokens) => Object.keys(tokens).map((k) => repr(tokens[k]).padEnd(width[k]));\nfunction inspect({ source }) {\n var _a, _b;\n if (source.length === 0)\n return '';\n const width = Object.assign({}, zeroWidth);\n for (const f of fields)\n width[f] = ((_a = headers[f]) !== null && _a !== void 0 ? _a : f).length;\n for (const { number, tokens } of source) {\n width.line = Math.max(width.line, number.toString().length);\n for (const k in tokens)\n width[k] = Math.max(width[k], repr(tokens[k]).length);\n }\n const lines = [[], []];\n for (const f of fields)\n lines[0].push(((_b = headers[f]) !== null && _b !== void 0 ? _b : f).padEnd(width[f]));\n for (const f of fields)\n lines[1].push('-'.padEnd(width[f], '-'));\n for (const { number, tokens } of source) {\n const line = number.toString().padStart(width.line);\n lines.push([line, ...align(width, tokens)]);\n }\n return lines.map(frame).join('\\n');\n}\nexports.default = inspect;\n"],"file":"inspect.cjs"}
@@ -1,2 +0,0 @@
1
- import { Block } from '../primitives.js';
2
- export default function inspect({ source }: Block): string;
@@ -1,127 +0,0 @@
1
- "use strict";
2
-
3
- var __rest = this && this.__rest || function (s, e) {
4
- var t = {};
5
-
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
7
-
8
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
-
14
- Object.defineProperty(exports, "__esModule", {
15
- value: true
16
- });
17
-
18
- const primitives_js_1 = require("../primitives.cjs");
19
-
20
- const util_js_1 = require("../util.cjs");
21
-
22
- const zeroWidth = {
23
- start: 0,
24
- tag: 0,
25
- type: 0,
26
- name: 0
27
- };
28
-
29
- const getWidth = (markers = primitives_js_1.Markers) => (w, {
30
- tokens: t
31
- }) => ({
32
- start: t.delimiter === markers.start ? t.start.length : w.start,
33
- tag: Math.max(w.tag, t.tag.length),
34
- type: Math.max(w.type, t.type.length),
35
- name: Math.max(w.name, t.name.length)
36
- });
37
-
38
- const space = len => ''.padStart(len, ' ');
39
-
40
- function align(markers = primitives_js_1.Markers) {
41
- let intoTags = false;
42
- let w;
43
-
44
- function update(line) {
45
- const tokens = Object.assign({}, line.tokens);
46
- if (tokens.tag !== '') intoTags = true;
47
- const isEmpty = tokens.tag === '' && tokens.name === '' && tokens.type === '' && tokens.description === ''; // dangling '*/'
48
-
49
- if (tokens.end === markers.end && isEmpty) {
50
- tokens.start = space(w.start + 1);
51
- return Object.assign(Object.assign({}, line), {
52
- tokens
53
- });
54
- }
55
-
56
- switch (tokens.delimiter) {
57
- case markers.start:
58
- tokens.start = space(w.start);
59
- break;
60
-
61
- case markers.delim:
62
- tokens.start = space(w.start + 1);
63
- break;
64
-
65
- default:
66
- tokens.delimiter = '';
67
- tokens.start = space(w.start + 2);
68
- // compensate delimiter
69
- }
70
-
71
- if (!intoTags) {
72
- tokens.postDelimiter = tokens.description === '' ? '' : ' ';
73
- return Object.assign(Object.assign({}, line), {
74
- tokens
75
- });
76
- }
77
-
78
- const nothingAfter = {
79
- delim: false,
80
- tag: false,
81
- type: false,
82
- name: false
83
- };
84
-
85
- if (tokens.description === '') {
86
- nothingAfter.name = true;
87
- tokens.postName = '';
88
-
89
- if (tokens.name === '') {
90
- nothingAfter.type = true;
91
- tokens.postType = '';
92
-
93
- if (tokens.type === '') {
94
- nothingAfter.tag = true;
95
- tokens.postTag = '';
96
-
97
- if (tokens.tag === '') {
98
- nothingAfter.delim = true;
99
- }
100
- }
101
- }
102
- }
103
-
104
- tokens.postDelimiter = nothingAfter.delim ? '' : ' ';
105
- if (!nothingAfter.tag) tokens.postTag = space(w.tag - tokens.tag.length + 1);
106
- if (!nothingAfter.type) tokens.postType = space(w.type - tokens.type.length + 1);
107
- if (!nothingAfter.name) tokens.postName = space(w.name - tokens.name.length + 1);
108
- return Object.assign(Object.assign({}, line), {
109
- tokens
110
- });
111
- }
112
-
113
- return _a => {
114
- var {
115
- source
116
- } = _a,
117
- fields = __rest(_a, ["source"]);
118
-
119
- w = source.reduce(getWidth(markers), Object.assign({}, zeroWidth));
120
- return (0, util_js_1.rewireSource)(Object.assign(Object.assign({}, fields), {
121
- source: source.map(update)
122
- }));
123
- };
124
- }
125
-
126
- exports.default = align;
127
- //# sourceMappingURL=align.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["align.js"],"names":["__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","defineProperty","exports","value","primitives_js_1","require","util_js_1","zeroWidth","start","tag","type","name","getWidth","markers","Markers","w","tokens","delimiter","Math","max","space","len","padStart","align","intoTags","update","line","assign","isEmpty","description","end","delim","postDelimiter","nothingAfter","postName","postType","postTag","_a","source","fields","reduce","rewireSource","map","default"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst primitives_js_1 = require(\"../primitives.js\");\nconst util_js_1 = require(\"../util.js\");\nconst zeroWidth = {\n start: 0,\n tag: 0,\n type: 0,\n name: 0,\n};\nconst getWidth = (markers = primitives_js_1.Markers) => (w, { tokens: t }) => ({\n start: t.delimiter === markers.start ? t.start.length : w.start,\n tag: Math.max(w.tag, t.tag.length),\n type: Math.max(w.type, t.type.length),\n name: Math.max(w.name, t.name.length),\n});\nconst space = (len) => ''.padStart(len, ' ');\nfunction align(markers = primitives_js_1.Markers) {\n let intoTags = false;\n let w;\n function update(line) {\n const tokens = Object.assign({}, line.tokens);\n if (tokens.tag !== '')\n intoTags = true;\n const isEmpty = tokens.tag === '' &&\n tokens.name === '' &&\n tokens.type === '' &&\n tokens.description === '';\n // dangling '*/'\n if (tokens.end === markers.end && isEmpty) {\n tokens.start = space(w.start + 1);\n return Object.assign(Object.assign({}, line), { tokens });\n }\n switch (tokens.delimiter) {\n case markers.start:\n tokens.start = space(w.start);\n break;\n case markers.delim:\n tokens.start = space(w.start + 1);\n break;\n default:\n tokens.delimiter = '';\n tokens.start = space(w.start + 2); // compensate delimiter\n }\n if (!intoTags) {\n tokens.postDelimiter = tokens.description === '' ? '' : ' ';\n return Object.assign(Object.assign({}, line), { tokens });\n }\n const nothingAfter = {\n delim: false,\n tag: false,\n type: false,\n name: false,\n };\n if (tokens.description === '') {\n nothingAfter.name = true;\n tokens.postName = '';\n if (tokens.name === '') {\n nothingAfter.type = true;\n tokens.postType = '';\n if (tokens.type === '') {\n nothingAfter.tag = true;\n tokens.postTag = '';\n if (tokens.tag === '') {\n nothingAfter.delim = true;\n }\n }\n }\n }\n tokens.postDelimiter = nothingAfter.delim ? '' : ' ';\n if (!nothingAfter.tag)\n tokens.postTag = space(w.tag - tokens.tag.length + 1);\n if (!nothingAfter.type)\n tokens.postType = space(w.type - tokens.type.length + 1);\n if (!nothingAfter.name)\n tokens.postName = space(w.name - tokens.name.length + 1);\n return Object.assign(Object.assign({}, line), { tokens });\n }\n return (_a) => {\n var { source } = _a, fields = __rest(_a, [\"source\"]);\n w = source.reduce(getWidth(markers), Object.assign({}, zeroWidth));\n return (0, util_js_1.rewireSource)(Object.assign(Object.assign({}, fields), { source: source.map(update) }));\n };\n}\nexports.default = align;\n"],"file":"align.cjs"}
@@ -1,3 +0,0 @@
1
- import { Transform } from './index.js';
2
- import { Markers } from '../primitives.js';
3
- export default function align(markers?: typeof Markers): Transform;