qualyx 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +523 -0
  3. package/dist/cli/commands/init.d.ts +6 -0
  4. package/dist/cli/commands/init.d.ts.map +1 -0
  5. package/dist/cli/commands/init.js +124 -0
  6. package/dist/cli/commands/init.js.map +1 -0
  7. package/dist/cli/commands/list.d.ts +3 -0
  8. package/dist/cli/commands/list.d.ts.map +1 -0
  9. package/dist/cli/commands/list.js +122 -0
  10. package/dist/cli/commands/list.js.map +1 -0
  11. package/dist/cli/commands/run.d.ts +12 -0
  12. package/dist/cli/commands/run.d.ts.map +1 -0
  13. package/dist/cli/commands/run.js +160 -0
  14. package/dist/cli/commands/run.js.map +1 -0
  15. package/dist/cli/commands/schedule.d.ts +19 -0
  16. package/dist/cli/commands/schedule.d.ts.map +1 -0
  17. package/dist/cli/commands/schedule.js +240 -0
  18. package/dist/cli/commands/schedule.js.map +1 -0
  19. package/dist/cli/commands/validate.d.ts +3 -0
  20. package/dist/cli/commands/validate.d.ts.map +1 -0
  21. package/dist/cli/commands/validate.js +47 -0
  22. package/dist/cli/commands/validate.js.map +1 -0
  23. package/dist/cli/index.d.ts +3 -0
  24. package/dist/cli/index.d.ts.map +1 -0
  25. package/dist/cli/index.js +194 -0
  26. package/dist/cli/index.js.map +1 -0
  27. package/dist/core/claude-runner.d.ts +23 -0
  28. package/dist/core/claude-runner.d.ts.map +1 -0
  29. package/dist/core/claude-runner.js +196 -0
  30. package/dist/core/claude-runner.js.map +1 -0
  31. package/dist/core/config-loader.d.ts +137 -0
  32. package/dist/core/config-loader.d.ts.map +1 -0
  33. package/dist/core/config-loader.js +239 -0
  34. package/dist/core/config-loader.js.map +1 -0
  35. package/dist/core/executor.d.ts +75 -0
  36. package/dist/core/executor.d.ts.map +1 -0
  37. package/dist/core/executor.js +337 -0
  38. package/dist/core/executor.js.map +1 -0
  39. package/dist/core/index.d.ts +6 -0
  40. package/dist/core/index.d.ts.map +1 -0
  41. package/dist/core/index.js +7 -0
  42. package/dist/core/index.js.map +1 -0
  43. package/dist/core/prompt-builder.d.ts +24 -0
  44. package/dist/core/prompt-builder.d.ts.map +1 -0
  45. package/dist/core/prompt-builder.js +145 -0
  46. package/dist/core/prompt-builder.js.map +1 -0
  47. package/dist/core/retry-handler.d.ts +42 -0
  48. package/dist/core/retry-handler.d.ts.map +1 -0
  49. package/dist/core/retry-handler.js +126 -0
  50. package/dist/core/retry-handler.js.map +1 -0
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +16 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/integrations/email.d.ts +38 -0
  56. package/dist/integrations/email.d.ts.map +1 -0
  57. package/dist/integrations/email.js +216 -0
  58. package/dist/integrations/email.js.map +1 -0
  59. package/dist/integrations/index.d.ts +5 -0
  60. package/dist/integrations/index.d.ts.map +1 -0
  61. package/dist/integrations/index.js +5 -0
  62. package/dist/integrations/index.js.map +1 -0
  63. package/dist/integrations/jira.d.ts +68 -0
  64. package/dist/integrations/jira.d.ts.map +1 -0
  65. package/dist/integrations/jira.js +288 -0
  66. package/dist/integrations/jira.js.map +1 -0
  67. package/dist/integrations/slack.d.ts +66 -0
  68. package/dist/integrations/slack.d.ts.map +1 -0
  69. package/dist/integrations/slack.js +192 -0
  70. package/dist/integrations/slack.js.map +1 -0
  71. package/dist/integrations/teams.d.ts +72 -0
  72. package/dist/integrations/teams.d.ts.map +1 -0
  73. package/dist/integrations/teams.js +197 -0
  74. package/dist/integrations/teams.js.map +1 -0
  75. package/dist/reporters/console.d.ts +83 -0
  76. package/dist/reporters/console.d.ts.map +1 -0
  77. package/dist/reporters/console.js +299 -0
  78. package/dist/reporters/console.js.map +1 -0
  79. package/dist/reporters/html.d.ts +29 -0
  80. package/dist/reporters/html.d.ts.map +1 -0
  81. package/dist/reporters/html.js +105 -0
  82. package/dist/reporters/html.js.map +1 -0
  83. package/dist/storage/results.d.ts +61 -0
  84. package/dist/storage/results.d.ts.map +1 -0
  85. package/dist/storage/results.js +111 -0
  86. package/dist/storage/results.js.map +1 -0
  87. package/dist/storage/sqlite.d.ts +70 -0
  88. package/dist/storage/sqlite.d.ts.map +1 -0
  89. package/dist/storage/sqlite.js +240 -0
  90. package/dist/storage/sqlite.js.map +1 -0
  91. package/dist/types/index.d.ts +1239 -0
  92. package/dist/types/index.d.ts.map +1 -0
  93. package/dist/types/index.js +105 -0
  94. package/dist/types/index.js.map +1 -0
  95. package/package.json +75 -0
  96. package/templates/crontab.hbs +24 -0
  97. package/templates/github-schedule.yml.hbs +153 -0
  98. package/templates/prompt.md.hbs +147 -0
  99. package/templates/report.html.hbs +423 -0
  100. package/templates/slack-message.json.hbs +93 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './config-loader.js';
2
+ export * from './prompt-builder.js';
3
+ export * from './claude-runner.js';
4
+ export * from './retry-handler.js';
5
+ export * from './executor.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AACA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ // Core module exports
2
+ export * from './config-loader.js';
3
+ export * from './prompt-builder.js';
4
+ export * from './claude-runner.js';
5
+ export * from './retry-handler.js';
6
+ export * from './executor.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { App, Rule, PromptContext } from '../types/index.js';
2
+ /**
3
+ * Build a prompt for Claude Code to execute a test rule.
4
+ */
5
+ export declare function buildPrompt(context: PromptContext): string;
6
+ /**
7
+ * Build a prompt with unmasked credentials for actual execution.
8
+ * This version includes the full credential values for Claude to use.
9
+ */
10
+ export declare function buildExecutionPrompt(context: PromptContext): string;
11
+ /**
12
+ * Build a preview prompt for dry-run mode.
13
+ * This shows what would be sent to Claude without exposing sensitive data.
14
+ */
15
+ export declare function buildDryRunPrompt(context: PromptContext): string;
16
+ /**
17
+ * Extract steps as a simple list for display purposes.
18
+ */
19
+ export declare function extractStepsList(rule: Rule): string[];
20
+ /**
21
+ * Generate a summary of the test rule for console output.
22
+ */
23
+ export declare function generateRuleSummary(app: App, rule: Rule): string;
24
+ //# sourceMappingURL=prompt-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../src/core/prompt-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAQ,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAiFxE;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAiB1D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAiBnE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,CAQrD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAkBhE"}
@@ -0,0 +1,145 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { resolve, dirname } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import Handlebars from 'handlebars';
5
+ import { getEnvironmentUrl } from './config-loader.js';
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = dirname(__filename);
8
+ // Load and compile the prompt template
9
+ const templatePath = resolve(__dirname, '../../templates/prompt.md.hbs');
10
+ let promptTemplate = null;
11
+ function getPromptTemplate() {
12
+ if (!promptTemplate) {
13
+ const templateSource = readFileSync(templatePath, 'utf-8');
14
+ promptTemplate = Handlebars.compile(templateSource);
15
+ }
16
+ return promptTemplate;
17
+ }
18
+ // Register Handlebars helpers
19
+ Handlebars.registerHelper('uppercase', (str) => {
20
+ return str ? str.toUpperCase() : '';
21
+ });
22
+ Handlebars.registerHelper('stepNumber', (index) => {
23
+ return index + 1;
24
+ });
25
+ Handlebars.registerHelper('formatStep', (step) => {
26
+ if (typeof step === 'string') {
27
+ return step;
28
+ }
29
+ let result = step.action;
30
+ if (step.hint) {
31
+ result += `\n > **Hint:** ${step.hint}`;
32
+ }
33
+ if (step.caution) {
34
+ result += `\n > **Caution:** ${step.caution}`;
35
+ }
36
+ return new Handlebars.SafeString(result);
37
+ });
38
+ Handlebars.registerHelper('eq', (a, b) => a === b);
39
+ /**
40
+ * Mask sensitive credentials for display in prompts.
41
+ * We show enough to verify it's the right credential without exposing full values.
42
+ */
43
+ function maskCredential(value) {
44
+ if (value.length <= 4) {
45
+ return '****';
46
+ }
47
+ return value.slice(0, 2) + '****' + value.slice(-2);
48
+ }
49
+ /**
50
+ * Resolve credentials from environment variables.
51
+ * Credentials in config use ${VAR_NAME} syntax which should already be resolved
52
+ * by the config loader, but we mask them here for the prompt display.
53
+ */
54
+ function resolveCredentials(auth, maskValues = false) {
55
+ if (!auth?.credentials) {
56
+ return {};
57
+ }
58
+ const resolved = {};
59
+ for (const [key, value] of Object.entries(auth.credentials)) {
60
+ // Check if the value is still an unresolved env var placeholder
61
+ if (value.startsWith('${') && value.endsWith('}')) {
62
+ resolved[key] = maskValues ? '(not set)' : value;
63
+ }
64
+ else {
65
+ resolved[key] = maskValues ? maskCredential(value) : value;
66
+ }
67
+ }
68
+ return resolved;
69
+ }
70
+ /**
71
+ * Build a prompt for Claude Code to execute a test rule.
72
+ */
73
+ export function buildPrompt(context) {
74
+ const template = getPromptTemplate();
75
+ const url = getEnvironmentUrl(context.app, context.environment);
76
+ const templateData = {
77
+ app: context.app,
78
+ rule: context.rule,
79
+ url,
80
+ environment: context.environment,
81
+ credentials: resolveCredentials(context.app.auth, true),
82
+ previousAttempt: context.previousAttempt,
83
+ screenshotConfig: context.app.screenshots,
84
+ collectMetrics: context.collectMetrics,
85
+ };
86
+ return template(templateData);
87
+ }
88
+ /**
89
+ * Build a prompt with unmasked credentials for actual execution.
90
+ * This version includes the full credential values for Claude to use.
91
+ */
92
+ export function buildExecutionPrompt(context) {
93
+ const template = getPromptTemplate();
94
+ const url = getEnvironmentUrl(context.app, context.environment);
95
+ const templateData = {
96
+ app: context.app,
97
+ rule: context.rule,
98
+ url,
99
+ environment: context.environment,
100
+ credentials: resolveCredentials(context.app.auth, false),
101
+ previousAttempt: context.previousAttempt,
102
+ screenshotConfig: context.app.screenshots,
103
+ collectMetrics: context.collectMetrics,
104
+ };
105
+ return template(templateData);
106
+ }
107
+ /**
108
+ * Build a preview prompt for dry-run mode.
109
+ * This shows what would be sent to Claude without exposing sensitive data.
110
+ */
111
+ export function buildDryRunPrompt(context) {
112
+ return buildPrompt(context);
113
+ }
114
+ /**
115
+ * Extract steps as a simple list for display purposes.
116
+ */
117
+ export function extractStepsList(rule) {
118
+ return rule.steps.map((step, index) => {
119
+ const stepNum = index + 1;
120
+ if (typeof step === 'string') {
121
+ return `${stepNum}. ${step}`;
122
+ }
123
+ return `${stepNum}. ${step.action}`;
124
+ });
125
+ }
126
+ /**
127
+ * Generate a summary of the test rule for console output.
128
+ */
129
+ export function generateRuleSummary(app, rule) {
130
+ const lines = [
131
+ `Test: ${rule.name} (${rule.id})`,
132
+ `App: ${app.name}`,
133
+ `URL: ${app.url}`,
134
+ `Severity: ${rule.severity.toUpperCase()}`,
135
+ `Steps: ${rule.steps.length}`,
136
+ ];
137
+ if (rule.validations?.length) {
138
+ lines.push(`Validations: ${rule.validations.length}`);
139
+ }
140
+ if (rule.timeout) {
141
+ lines.push(`Timeout: ${rule.timeout}ms`);
142
+ }
143
+ return lines.join('\n');
144
+ }
145
+ //# sourceMappingURL=prompt-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../src/core/prompt-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { PromptContext, ClaudeResponse } from '../types/index.js';
2
+ export interface RetryContext {
3
+ attempt: number;
4
+ maxAttempts: number;
5
+ previousError?: string;
6
+ previousScreenshot?: string;
7
+ previousDomSnippet?: string;
8
+ }
9
+ /**
10
+ * Build enhanced context for retry attempts.
11
+ * Includes information from the previous failed attempt to help Claude recover.
12
+ */
13
+ export declare function buildRetryContext(originalContext: PromptContext, previousResult: ClaudeResponse, retryCount: number): PromptContext;
14
+ /**
15
+ * Determine if a failure should be retried.
16
+ */
17
+ export declare function shouldRetry(result: ClaudeResponse, currentAttempt: number, maxRetries: number): boolean;
18
+ /**
19
+ * Analyze the failure to provide better context for retry.
20
+ */
21
+ export declare function analyzeFailure(result: ClaudeResponse): FailureAnalysis;
22
+ export interface FailureAnalysis {
23
+ category: 'timeout' | 'element_not_found' | 'element_not_visible' | 'navigation' | 'authentication' | 'network' | 'unknown';
24
+ isRetryable: boolean;
25
+ suggestions: string[];
26
+ failedValidations?: string[];
27
+ failedStep?: string;
28
+ failedStepIndex?: number;
29
+ }
30
+ /**
31
+ * Generate an enhanced error message based on failure analysis.
32
+ */
33
+ export declare function generateEnhancedErrorMessage(originalError: string, analysis: FailureAnalysis, attempt: number, maxAttempts: number): string;
34
+ /**
35
+ * Calculate delay between retry attempts (exponential backoff).
36
+ */
37
+ export declare function calculateRetryDelay(attempt: number, baseDelay?: number): number;
38
+ /**
39
+ * Sleep for a specified duration.
40
+ */
41
+ export declare function sleep(ms: number): Promise<void>;
42
+ //# sourceMappingURL=retry-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-handler.d.ts","sourceRoot":"","sources":["../../src/core/retry-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAc,MAAM,mBAAmB,CAAC;AAEnF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,aAAa,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,MAAM,GACjB,aAAa,CASf;AAaD;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAkBT;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CA6CtE;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EACJ,SAAS,GACT,mBAAmB,GACnB,qBAAqB,GACrB,YAAY,GACZ,gBAAgB,GAChB,SAAS,GACT,SAAS,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,MAAM,CAoBR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,MAAa,GAAG,MAAM,CAGrF;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Build enhanced context for retry attempts.
3
+ * Includes information from the previous failed attempt to help Claude recover.
4
+ */
5
+ export function buildRetryContext(originalContext, previousResult, retryCount) {
6
+ return {
7
+ ...originalContext,
8
+ previousAttempt: {
9
+ error: previousResult.error || 'Unknown error occurred',
10
+ screenshot: previousResult.screenshot,
11
+ domSnippet: extractRelevantDom(previousResult),
12
+ },
13
+ };
14
+ }
15
+ /**
16
+ * Extract relevant DOM snippet from the failed response.
17
+ * This helps Claude understand what went wrong.
18
+ */
19
+ function extractRelevantDom(result) {
20
+ // If the response includes DOM information, extract it
21
+ // This would come from Claude's execution if it captured DOM state
22
+ // For now, we return undefined as this requires integration with the actual execution
23
+ return undefined;
24
+ }
25
+ /**
26
+ * Determine if a failure should be retried.
27
+ */
28
+ export function shouldRetry(result, currentAttempt, maxRetries) {
29
+ // Don't retry if we've exhausted attempts
30
+ if (currentAttempt >= maxRetries) {
31
+ return false;
32
+ }
33
+ // Don't retry passed tests
34
+ if (result.status === 'passed') {
35
+ return false;
36
+ }
37
+ // Don't retry skipped tests
38
+ if (result.status === 'skipped') {
39
+ return false;
40
+ }
41
+ // Retry failed tests
42
+ return true;
43
+ }
44
+ /**
45
+ * Analyze the failure to provide better context for retry.
46
+ */
47
+ export function analyzeFailure(result) {
48
+ const analysis = {
49
+ category: 'unknown',
50
+ isRetryable: true,
51
+ suggestions: [],
52
+ };
53
+ const errorLower = result.error?.toLowerCase() || '';
54
+ // Categorize the failure
55
+ if (errorLower.includes('timeout') || errorLower.includes('timed out')) {
56
+ analysis.category = 'timeout';
57
+ analysis.suggestions.push('Increase timeout or wait for slower elements');
58
+ }
59
+ else if (errorLower.includes('not found') || errorLower.includes('could not find')) {
60
+ analysis.category = 'element_not_found';
61
+ analysis.suggestions.push('Try alternative selectors or wait for element to appear');
62
+ }
63
+ else if (errorLower.includes('not visible') || errorLower.includes('hidden')) {
64
+ analysis.category = 'element_not_visible';
65
+ analysis.suggestions.push('Scroll element into view or wait for visibility');
66
+ }
67
+ else if (errorLower.includes('navigation') || errorLower.includes('navigate')) {
68
+ analysis.category = 'navigation';
69
+ analysis.suggestions.push('Verify URL and wait for page load');
70
+ }
71
+ else if (errorLower.includes('authentication') || errorLower.includes('login')) {
72
+ analysis.category = 'authentication';
73
+ analysis.suggestions.push('Verify credentials and login flow');
74
+ }
75
+ else if (errorLower.includes('network') || errorLower.includes('connection')) {
76
+ analysis.category = 'network';
77
+ analysis.suggestions.push('Check network connectivity and retry');
78
+ }
79
+ // Check for specific validation failures
80
+ if (result.validations.some((v) => !v.passed)) {
81
+ analysis.failedValidations = result.validations
82
+ .filter((v) => !v.passed)
83
+ .map((v) => v.validation);
84
+ }
85
+ // Check for specific step failures
86
+ const failedSteps = result.steps.filter((s) => s.status === 'failed');
87
+ if (failedSteps.length > 0) {
88
+ analysis.failedStepIndex = result.steps.findIndex((s) => s.status === 'failed');
89
+ analysis.failedStep = failedSteps[0].step;
90
+ }
91
+ return analysis;
92
+ }
93
+ /**
94
+ * Generate an enhanced error message based on failure analysis.
95
+ */
96
+ export function generateEnhancedErrorMessage(originalError, analysis, attempt, maxAttempts) {
97
+ const parts = [
98
+ `Attempt ${attempt + 1}/${maxAttempts} failed.`,
99
+ `Error: ${originalError}`,
100
+ `Category: ${analysis.category}`,
101
+ ];
102
+ if (analysis.failedStep) {
103
+ parts.push(`Failed at step: ${analysis.failedStep}`);
104
+ }
105
+ if (analysis.failedValidations?.length) {
106
+ parts.push(`Failed validations: ${analysis.failedValidations.join(', ')}`);
107
+ }
108
+ if (analysis.suggestions.length > 0) {
109
+ parts.push(`Suggestions: ${analysis.suggestions.join('; ')}`);
110
+ }
111
+ return parts.join('\n');
112
+ }
113
+ /**
114
+ * Calculate delay between retry attempts (exponential backoff).
115
+ */
116
+ export function calculateRetryDelay(attempt, baseDelay = 1000) {
117
+ // Exponential backoff: 1s, 2s, 4s, 8s...
118
+ return baseDelay * Math.pow(2, attempt);
119
+ }
120
+ /**
121
+ * Sleep for a specified duration.
122
+ */
123
+ export function sleep(ms) {
124
+ return new Promise((resolve) => setTimeout(resolve, ms));
125
+ }
126
+ //# sourceMappingURL=retry-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-handler.js","sourceRoot":"","sources":["../../src/core/retry-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ import { createCli } from './cli/index.js';
3
+ async function main() {
4
+ const program = createCli();
5
+ try {
6
+ await program.parseAsync(process.argv);
7
+ }
8
+ catch (error) {
9
+ if (error instanceof Error) {
10
+ console.error(`Error: ${error.message}`);
11
+ }
12
+ process.exit(1);
13
+ }
14
+ }
15
+ main();
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { RunResult, EmailConfig, QualyxConfig } from '../types/index.js';
2
+ /**
3
+ * Email notification integration for Qualyx test results.
4
+ */
5
+ export declare class EmailNotifier {
6
+ private config;
7
+ private transporter;
8
+ constructor(config: EmailConfig);
9
+ /**
10
+ * Determine if a notification should be sent based on run result.
11
+ */
12
+ shouldNotify(runResult: RunResult): boolean;
13
+ /**
14
+ * Build the email subject.
15
+ */
16
+ buildSubject(runResult: RunResult, organizationName: string): string;
17
+ /**
18
+ * Build the email HTML body.
19
+ */
20
+ buildHtmlBody(runResult: RunResult, organizationName: string, reportUrl?: string): string;
21
+ /**
22
+ * Build plain text email body.
23
+ */
24
+ buildTextBody(runResult: RunResult, organizationName: string, reportUrl?: string): string;
25
+ /**
26
+ * Send notification email.
27
+ */
28
+ send(runResult: RunResult, organizationName: string, reportUrl?: string): Promise<void>;
29
+ /**
30
+ * Verify SMTP connection.
31
+ */
32
+ verify(): Promise<boolean>;
33
+ }
34
+ /**
35
+ * Send an email notification for a test run.
36
+ */
37
+ export declare function sendEmailNotification(runResult: RunResult, config: QualyxConfig, reportUrl?: string): Promise<void>;
38
+ //# sourceMappingURL=email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/integrations/email.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE9E;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,EAAE,WAAW;IAa/B;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAc3C;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAMpE;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IA0FzF;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IA+BzF;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7F;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAQjC;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,YAAY,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CASf"}