doc-detective-common 4.0.0-beta.0-dev.7 → 4.0.0-beta.0-dev.9

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 (45) hide show
  1. package/dist/detectTests.d.ts +17 -22
  2. package/dist/detectTests.d.ts.map +1 -1
  3. package/dist/detectTests.js +81 -4
  4. package/dist/detectTests.js.map +1 -1
  5. package/dist/fileTypes.d.ts +35 -0
  6. package/dist/fileTypes.d.ts.map +1 -0
  7. package/dist/fileTypes.js +293 -0
  8. package/dist/fileTypes.js.map +1 -0
  9. package/dist/index.cjs +7288 -162
  10. package/dist/index.d.cts +2 -1
  11. package/dist/index.d.ts +2 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/schemas/schemas.json +6786 -0
  16. package/dist/types/generated/step_v3.d.ts +288 -0
  17. package/dist/types/generated/step_v3.d.ts.map +1 -1
  18. package/dist/types/generated/test_v3.d.ts +576 -0
  19. package/dist/types/generated/test_v3.d.ts.map +1 -1
  20. package/package.json +8 -7
  21. package/dist/schemas/checkLink_v3.schema.json +0 -145
  22. package/dist/schemas/click_v3.schema.json +0 -252
  23. package/dist/schemas/config_v3.schema.json +0 -16470
  24. package/dist/schemas/context_v3.schema.json +0 -374
  25. package/dist/schemas/dragAndDrop_v3.schema.json +0 -496
  26. package/dist/schemas/find_v3.schema.json +0 -1349
  27. package/dist/schemas/goTo_v3.schema.json +0 -419
  28. package/dist/schemas/httpRequest_v3.schema.json +0 -994
  29. package/dist/schemas/loadCookie_v3.schema.json +0 -228
  30. package/dist/schemas/loadVariables_v3.schema.json +0 -9
  31. package/dist/schemas/openApi_v3.schema.json +0 -162
  32. package/dist/schemas/record_v3.schema.json +0 -101
  33. package/dist/schemas/report_v3.schema.json +0 -16826
  34. package/dist/schemas/resolvedTests_v3.schema.json +0 -33331
  35. package/dist/schemas/runCode_v3.schema.json +0 -222
  36. package/dist/schemas/runShell_v3.schema.json +0 -236
  37. package/dist/schemas/saveCookie_v3.schema.json +0 -245
  38. package/dist/schemas/screenshot_v3.schema.json +0 -681
  39. package/dist/schemas/sourceIntegration_v3.schema.json +0 -50
  40. package/dist/schemas/spec_v3.schema.json +0 -16630
  41. package/dist/schemas/step_v3.schema.json +0 -7317
  42. package/dist/schemas/stopRecord_v3.schema.json +0 -12
  43. package/dist/schemas/test_v3.schema.json +0 -15863
  44. package/dist/schemas/type_v3.schema.json +0 -244
  45. package/dist/schemas/wait_v3.schema.json +0 -41
@@ -0,0 +1,293 @@
1
+ /**
2
+ * Default file type definitions for Doc Detective.
3
+ * These are pure data definitions with no Node.js dependencies,
4
+ * shared by both core and vscode extension.
5
+ */
6
+ const defaultFileTypesBase = {
7
+ asciidoc_1_0: {
8
+ name: "asciidoc",
9
+ extensions: ["adoc", "asciidoc", "asc"],
10
+ inlineStatements: {
11
+ testStart: ["\\/\\/\\s+\\(\\s*test\\s+([\\s\\S]*?)\\s*\\)"],
12
+ testEnd: ["\\/\\/\\s+\\(\\s*test end\\s*\\)"],
13
+ ignoreStart: ["\\/\\/\\s+\\(\\s*test ignore start\\s*\\)"],
14
+ ignoreEnd: ["\\/\\/\\s+\\(\\s*test ignore end\\s*\\)"],
15
+ step: ["\\/\\/\\s+\\(\\s*step\\s+([\\s\\S]*?)\\s*\\)"],
16
+ },
17
+ markup: [],
18
+ },
19
+ dita_1_0: {
20
+ name: "dita",
21
+ extensions: ["dita", "ditamap", "xml"],
22
+ inlineStatements: {
23
+ testStart: [
24
+ "<\\?doc-detective\\s+test([\\s\\S]*?)\\?>",
25
+ "<!--\\s*test([\\s\\S]+?)-->",
26
+ ],
27
+ testEnd: [
28
+ "<\\?doc-detective\\s+test\\s+end\\s*\\?>",
29
+ "<!--\\s*test end([\\s\\S]+?)-->",
30
+ ],
31
+ ignoreStart: [
32
+ "<\\?doc-detective\\s+test\\s+ignore\\s+start\\s*\\?>",
33
+ "<!--\\s*test ignore\\s+start\\s*-->",
34
+ ],
35
+ ignoreEnd: [
36
+ "<\\?doc-detective\\s+test\\s+ignore\\s+end\\s*\\?>",
37
+ "<!--\\s*test ignore\\s+end\\s*-->",
38
+ ],
39
+ step: [
40
+ "<\\?doc-detective\\s+step\\s+([\\s\\S]*?)\\s*\\?>",
41
+ "<!--\\s*step([\\s\\S]+?)-->",
42
+ '<data\\s+name="step"\\s*>([\\s\\S]*?)<\\/data>',
43
+ ],
44
+ },
45
+ markup: [
46
+ {
47
+ name: "clickUiControl",
48
+ regex: [
49
+ "(?:[Cc]lick|[Tt]ap|[Ss]elect|[Pp]ress|[Cc]hoose)\\s+(?:the\\s+)?<uicontrol>([^<]+)<\\/uicontrol>",
50
+ ],
51
+ actions: ["click"],
52
+ },
53
+ {
54
+ name: "typeIntoUiControl",
55
+ regex: [
56
+ "(?:[Tt]ype|[Ee]nter|[Ii]nput)\\s+<userinput>([^<]+)<\\/userinput>\\s+(?:in|into)(?:\\s+the)?\\s+<uicontrol>([^<]+)<\\/uicontrol>",
57
+ ],
58
+ actions: [
59
+ {
60
+ type: {
61
+ keys: "$1",
62
+ selector: "$2",
63
+ },
64
+ },
65
+ ],
66
+ },
67
+ {
68
+ name: "navigateToXref",
69
+ regex: [
70
+ '(?:[Nn]avigate\\s+to|[Oo]pen|[Gg]o\\s+to|[Vv]isit|[Bb]rowse\\s+to)\\s+<xref\\s+[^>]*href="(https?:\\/\\/[^"]+)"[^>]*>',
71
+ ],
72
+ actions: ["goTo"],
73
+ },
74
+ {
75
+ name: "findUiControl",
76
+ regex: ["<uicontrol>([^<]+)<\\/uicontrol>"],
77
+ actions: ["find"],
78
+ },
79
+ {
80
+ name: "verifyWindowTitle",
81
+ regex: ["<wintitle>([^<]+)<\\/wintitle>"],
82
+ actions: ["find"],
83
+ },
84
+ {
85
+ name: "checkExternalXref",
86
+ regex: [
87
+ '<xref\\s+[^>]*scope="external"[^>]*href="(https?:\\/\\/[^"]+)"[^>]*>',
88
+ '<xref\\s+[^>]*href="(https?:\\/\\/[^"]+)"[^>]*scope="external"[^>]*>',
89
+ ],
90
+ actions: ["checkLink"],
91
+ },
92
+ {
93
+ name: "checkHyperlink",
94
+ regex: ['<xref\\s+href="(https?:\\/\\/[^"]+)"[^>]*>'],
95
+ actions: ["checkLink"],
96
+ },
97
+ {
98
+ name: "checkLinkElement",
99
+ regex: ['<link\\s+href="(https?:\\/\\/[^"]+)"[^>]*>'],
100
+ actions: ["checkLink"],
101
+ },
102
+ {
103
+ name: "clickOnscreenText",
104
+ regex: [
105
+ "\\b(?:[Cc]lick|[Tt]ap|[Ll]eft-click|[Cc]hoose|[Ss]elect|[Cc]heck)\\b\\s+<b>((?:(?!<\\/b>).)+)<\\/b>",
106
+ ],
107
+ actions: ["click"],
108
+ },
109
+ {
110
+ name: "findOnscreenText",
111
+ regex: ["<b>((?:(?!<\\/b>).)+)<\\/b>"],
112
+ actions: ["find"],
113
+ },
114
+ {
115
+ name: "goToUrl",
116
+ regex: [
117
+ '\\b(?:[Gg]o\\s+to|[Oo]pen|[Nn]avigate\\s+to|[Vv]isit|[Aa]ccess|[Pp]roceed\\s+to|[Ll]aunch)\\b\\s+<xref\\s+href="(https?:\\/\\/[^"]+)"[^>]*>',
118
+ ],
119
+ actions: ["goTo"],
120
+ },
121
+ {
122
+ name: "typeText",
123
+ regex: ['\\b(?:[Pp]ress|[Ee]nter|[Tt]ype)\\b\\s+"([^"]+)"'],
124
+ actions: ["type"],
125
+ },
126
+ ],
127
+ },
128
+ html_1_0: {
129
+ name: "html",
130
+ extensions: ["html", "htm"],
131
+ inlineStatements: {
132
+ testStart: ["<!--\\s*test\\s+?([\\s\\S]*?)\\s*-->"],
133
+ testEnd: ["<!--\\s*test end\\s*([\\s\\S]*?)\\s*-->"],
134
+ ignoreStart: ["<!--\\s*test ignore start\\s*-->"],
135
+ ignoreEnd: ["<!--\\s*test ignore end\\s*-->"],
136
+ step: ["<!--\\s*step\\s+?([\\s\\S]*?)\\s*-->"],
137
+ },
138
+ markup: [],
139
+ },
140
+ markdown_1_0: {
141
+ name: "markdown",
142
+ extensions: ["md", "markdown", "mdx"],
143
+ inlineStatements: {
144
+ testStart: [
145
+ "{\\/\\*\\s*test\\s+?([\\s\\S]*?)\\s*\\*\\/}",
146
+ "<!--\\s*test\\s*([\\s\\S]*?)\\s*-->",
147
+ "\\[comment\\]:\\s+#\\s+\\(test\\s*(.*?)\\s*\\)",
148
+ "\\[comment\\]:\\s+#\\s+\\(test start\\s*(.*?)\\s*\\)",
149
+ "\\[comment\\]:\\s+#\\s+'test\\s*(.*?)\\s*'",
150
+ "\\[comment\\]:\\s+#\\s+'test start\\s*(.*?)\\s*'",
151
+ '\\[comment\\]:\\s+#\\s+"test\\s*((?:[^"\\\\]|\\\\.)*)\\s*"',
152
+ '\\[comment\\]:\\s+#\\s+"test start\\s*((?:[^"\\\\]|\\\\.)*)\\s*"',
153
+ ],
154
+ testEnd: [
155
+ "{\\/\\*\\s*test end\\s*\\*\\/}",
156
+ "<!--\\s*test end\\s*([\\s\\S]*?)\\s*-->",
157
+ "\\[comment\\]:\\s+#\\s+\\(test end\\)",
158
+ "\\[comment\\]:\\s+#\\s+'test end'",
159
+ '\\[comment\\]:\\s+#\\s+"test end"',
160
+ ],
161
+ ignoreStart: [
162
+ "{\\/\\*\\s*test ignore start\\s*\\*\\/}",
163
+ "<!--\\s*test ignore start\\s*-->",
164
+ "\\[comment\\]:\\s+#\\s+\\(test ignore start\\)",
165
+ "\\[comment\\]:\\s+#\\s+'test ignore start'",
166
+ '\\[comment\\]:\\s+#\\s+"test ignore start"',
167
+ ],
168
+ ignoreEnd: [
169
+ "{\\/\\*\\s*test ignore end\\s*\\*\\/}",
170
+ "<!--\\s*test ignore end\\s*-->",
171
+ "\\[comment\\]:\\s+#\\s+\\(test ignore end\\)",
172
+ "\\[comment\\]:\\s+#\\s+'test ignore end'",
173
+ '\\[comment\\]:\\s+#\\s+"test ignore end"',
174
+ ],
175
+ step: [
176
+ "{\\/\\*\\s*step\\s+?([\\s\\S]*?)\\s*\\*\\/}",
177
+ "<!--\\s*step\\s*([\\s\\S]*?)\\s*-->",
178
+ "\\[comment\\]:\\s+#\\s+\\(step\\s*(.*?)\\s*\\)",
179
+ "\\[comment\\]:\\s+#\\s+'step\\s*(.*?)\\s*'",
180
+ '\\[comment\\]:\\s+#\\s+"step\\s*((?:[^"\\\\]|\\\\.)*)\\s*"',
181
+ ],
182
+ },
183
+ markup: [
184
+ {
185
+ name: "checkHyperlink",
186
+ regex: [
187
+ '(?<!\\!)\\[[^\\]]+\\]\\(\\s*(https?:\\/\\/[^\\s)]+)(?:\\s+"[^"]*")?\\s*\\)',
188
+ ],
189
+ actions: ["checkLink"],
190
+ },
191
+ {
192
+ name: "clickOnscreenText",
193
+ regex: [
194
+ "\\b(?:[Cc]lick|[Tt]ap|[Ll]eft-click|[Cc]hoose|[Ss]elect|[Cc]heck)\\b\\s+\\*\\*((?:(?!\\*\\*).)+)\\*\\*",
195
+ ],
196
+ actions: ["click"],
197
+ },
198
+ {
199
+ name: "findOnscreenText",
200
+ regex: ["\\*\\*((?:(?!\\*\\*).)+)\\*\\*"],
201
+ actions: ["find"],
202
+ },
203
+ {
204
+ name: "goToUrl",
205
+ regex: [
206
+ '\\b(?:[Gg]o\\s+to|[Oo]pen|[Nn]avigate\\s+to|[Vv]isit|[Aa]ccess|[Pp]roceed\\s+to|[Ll]aunch)\\b\\s+\\[[^\\]]+\\]\\(\\s*(https?:\\/\\/[^\\s)]+)(?:\\s+"[^"]*")?\\s*\\)',
207
+ ],
208
+ actions: ["goTo"],
209
+ },
210
+ {
211
+ name: "screenshotImage",
212
+ regex: [
213
+ '!\\[[^\\]]*\\]\\(\\s*([^\\s)]+)(?:\\s+"[^"]*")?\\s*\\)\\s*\\{(?=[^}]*\\.screenshot)[^}]*\\}',
214
+ ],
215
+ actions: ["screenshot"],
216
+ },
217
+ {
218
+ name: "typeText",
219
+ regex: ['\\b(?:[Pp]ress|[Ee]nter|[Tt]ype)\\b\\s+"([^"]+)"'],
220
+ actions: ["type"],
221
+ },
222
+ {
223
+ name: "httpRequestFormat",
224
+ regex: [
225
+ "```(?:http)?\\r?\\n([A-Z]+)\\s+([^\\s]+)(?:\\s+HTTP\\/[\\d.]+)?\\r?\\n((?:[^\\s]+:\\s+[^\\s]+\\r?\\n)*)?(?:\\s+([\\s\\S]*?)\\r?\\n+)?```",
226
+ ],
227
+ actions: [
228
+ {
229
+ httpRequest: {
230
+ method: "$1",
231
+ url: "$2",
232
+ request: {
233
+ headers: "$3",
234
+ body: "$4",
235
+ },
236
+ },
237
+ },
238
+ ],
239
+ },
240
+ {
241
+ name: "runCode",
242
+ regex: [
243
+ "```(bash|python|py|javascript|js)(?![^\\r\\n]*testIgnore)[^\\r\\n]*\\r?\\n([\\s\\S]*?)\\r?\\n```",
244
+ ],
245
+ actions: [
246
+ {
247
+ unsafe: true,
248
+ runCode: {
249
+ language: "$1",
250
+ code: "$2",
251
+ },
252
+ },
253
+ ],
254
+ },
255
+ ],
256
+ },
257
+ };
258
+ /**
259
+ * Default file type definitions, including keyword aliases.
260
+ * Keys include both versioned names (e.g. "markdown_1_0") and
261
+ * short aliases (e.g. "markdown").
262
+ */
263
+ export const defaultFileTypes = {
264
+ ...defaultFileTypesBase,
265
+ markdown: defaultFileTypesBase.markdown_1_0,
266
+ asciidoc: defaultFileTypesBase.asciidoc_1_0,
267
+ html: defaultFileTypesBase.html_1_0,
268
+ dita: defaultFileTypesBase.dita_1_0,
269
+ };
270
+ /**
271
+ * Infers a file type from content when no file type or extension is available.
272
+ * Checks for DITA XML, HTML, and AsciiDoc markers before defaulting to Markdown.
273
+ */
274
+ export function detectFileTypeFromContent(content) {
275
+ const trimmed = content.trimStart();
276
+ // DITA: XML declaration or DOCTYPE with DITA-specific root elements
277
+ if (trimmed.startsWith("<?xml") || trimmed.startsWith("<!DOCTYPE")) {
278
+ if (/<!DOCTYPE\s+(?:topic|map|concept|task|reference|dita|bookmap)\b|<(?:dita|topic|map|concept|task|reference|bookmap)[\s>]/i.test(content)) {
279
+ return defaultFileTypes.dita;
280
+ }
281
+ }
282
+ // HTML: DOCTYPE html or <html> tag
283
+ if (/<!DOCTYPE\s+html\b/i.test(trimmed) || /<html[\s>]/i.test(trimmed)) {
284
+ return defaultFileTypes.html;
285
+ }
286
+ // AsciiDoc: = Document Title or :attribute: entries, without Markdown # headings
287
+ if (/^= \S/m.test(content) && !/^#{1,6} /m.test(content)) {
288
+ return defaultFileTypes.asciidoc;
289
+ }
290
+ // Default to Markdown
291
+ return defaultFileTypes.markdown;
292
+ }
293
+ //# sourceMappingURL=fileTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileTypes.js","sourceRoot":"","sources":["../src/fileTypes.ts"],"names":[],"mappings":"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"}