bktide 1.0.1755568192 → 1.0.1755639164
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.
- package/README.md +42 -0
- package/dist/commands/ShowBuild.js +27 -5
- package/dist/commands/ShowBuild.js.map +1 -1
- package/dist/formatters/build-detail/PlainTextFormatter.js +310 -128
- package/dist/formatters/build-detail/PlainTextFormatter.js.map +1 -1
- package/dist/graphql/fragments/index.js +3 -0
- package/dist/graphql/fragments/index.js.map +1 -0
- package/dist/graphql/fragments/jobs.js +112 -0
- package/dist/graphql/fragments/jobs.js.map +1 -0
- package/dist/graphql/queries.js +35 -57
- package/dist/graphql/queries.js.map +1 -1
- package/dist/scripts/extract-data-patterns.js +118 -0
- package/dist/scripts/extract-data-patterns.js.map +1 -0
- package/dist/services/BuildkiteClient.js +77 -1
- package/dist/services/BuildkiteClient.js.map +1 -1
- package/dist/test-helpers/DataProfiler.js +307 -0
- package/dist/test-helpers/DataProfiler.js.map +1 -0
- package/dist/test-helpers/PatternMockGenerator.js +590 -0
- package/dist/test-helpers/PatternMockGenerator.js.map +1 -0
- package/package.json +19 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatternMockGenerator.js","sourceRoot":"/","sources":["test-helpers/PatternMockGenerator.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * PatternMockGenerator uses extracted data patterns to generate realistic mock data\n */\n\nimport { faker } from '@faker-js/faker';\nimport { MockList } from '@graphql-tools/mock';\nimport type { DataPatterns, Distribution } from './DataProfiler.js';\nimport { promises as fs } from 'fs';\n\nexport class PatternMockGenerator {\n private patterns: DataPatterns | null = null;\n private readonly patternsPath: string;\n private useDefaultPatterns = false;\n\n constructor(patternsPath = './test/fixtures/data-patterns.json') {\n this.patternsPath = patternsPath;\n }\n\n async loadPatterns(): Promise<void> {\n try {\n const data = await fs.readFile(this.patternsPath, 'utf-8');\n this.patterns = JSON.parse(data);\n console.log(`✓ Loaded data patterns from ${this.patternsPath}`);\n } catch (error) {\n console.warn(`⚠️ Could not load patterns from ${this.patternsPath}, using defaults`);\n this.useDefaultPatterns = true;\n }\n }\n\n generateMocks() {\n if (!this.patterns && !this.useDefaultPatterns) {\n throw new Error('Patterns not loaded. Call loadPatterns() first.');\n }\n\n return {\n // Core types\n Build: () => ({\n id: faker.string.uuid(),\n number: this.generateBuildNumber(),\n state: this.generateBuildState(),\n branch: this.generateBranch(),\n message: this.generateCommitMessage(),\n commit: faker.git.commitSha(),\n createdAt: faker.date.recent({ days: 30 }).toISOString(),\n scheduledAt: faker.date.recent({ days: 30 }).toISOString(),\n startedAt: faker.date.recent({ days: 30 }).toISOString(),\n finishedAt: this.generateFinishedAt(),\n canceledAt: null,\n url: `https://buildkite.com/${faker.word.noun()}/${faker.word.noun()}/builds/${faker.number.int({ min: 1, max: 9999 })}`,\n webUrl: `https://buildkite.com/${faker.word.noun()}/${faker.word.noun()}/builds/${faker.number.int({ min: 1, max: 9999 })}`,\n pullRequest: this.generatePullRequest(),\n rebuiltFrom: null,\n jobs: this.generateJobs(),\n annotations: this.generateAnnotations(),\n createdBy: this.generateCreator(),\n pipeline: this.generatePipelineRef(),\n organization: this.generateOrganizationRef()\n }),\n\n Pipeline: () => ({\n id: faker.string.uuid(),\n graphqlId: faker.string.uuid(),\n slug: this.generatePipelineSlug(),\n name: this.generatePipelineName(),\n description: faker.datatype.boolean({ probability: 0.7 }) \n ? faker.lorem.sentence() \n : null,\n url: `https://buildkite.com/${faker.word.noun()}/${faker.word.noun()}`,\n webUrl: `https://buildkite.com/${faker.word.noun()}/${faker.word.noun()}`,\n repository: this.generateRepository(),\n defaultBranch: this.generateDefaultBranch(),\n visibility: this.generateVisibility(),\n archived: faker.datatype.boolean({ probability: 0.05 }),\n createdAt: faker.date.past({ years: 2 }).toISOString(),\n createdBy: this.generateCreator(),\n builds: () => new MockList([0, 10]),\n organization: this.generateOrganizationRef()\n }),\n\n Job: () => this.generateJob(),\n\n JobTypeCommand: () => ({\n ...this.generateJobBase(),\n __typename: 'JobTypeCommand',\n command: faker.helpers.arrayElement([\n 'npm test',\n 'yarn build',\n 'make test',\n './scripts/test.sh',\n 'docker build .',\n 'pytest',\n 'cargo test'\n ]),\n exitStatus: this.generateExitStatus(),\n passed: faker.datatype.boolean({ probability: 0.85 }),\n softFailed: faker.datatype.boolean({ probability: 0.02 }),\n parallelGroupIndex: this.generateParallelGroupIndex(),\n parallelGroupTotal: this.generateParallelGroupTotal(),\n retriedAutomatically: faker.datatype.boolean({ \n probability: this.patterns?.jobs.retryRates.automatic || 0.05 \n }),\n retriedManually: faker.datatype.boolean({ \n probability: this.patterns?.jobs.retryRates.manual || 0.02 \n }),\n retryType: null,\n agent: this.generateAgent(),\n agentQueryRules: [],\n artifacts: () => new MockList([0, 5])\n }),\n\n JobTypeWait: () => ({\n ...this.generateJobBase(),\n __typename: 'JobTypeWait',\n continueOnFailure: faker.datatype.boolean({ probability: 0.1 })\n }),\n\n JobTypeTrigger: () => ({\n ...this.generateJobBase(),\n __typename: 'JobTypeTrigger',\n triggered: faker.datatype.boolean({ probability: 0.9 }),\n triggeredBuild: faker.datatype.boolean({ probability: 0.9 }) \n ? { id: faker.string.uuid() }\n : null\n }),\n\n Organization: () => ({\n id: faker.string.uuid(),\n graphqlId: faker.string.uuid(),\n slug: this.generateOrganizationSlug(),\n name: this.generateOrganizationName(),\n url: `https://buildkite.com/${faker.word.noun()}`,\n webUrl: `https://buildkite.com/${faker.word.noun()}`,\n pipelines: () => new MockList(\n this.selectByDistribution(\n this.patterns?.organizations.pipelineCount || { \n values: [{ value: 10, frequency: 0.5, count: 1 }] \n }\n )\n ),\n members: () => new MockList(\n this.selectByDistribution(\n this.patterns?.organizations.memberCount || { \n values: [{ value: 5, frequency: 0.5, count: 1 }] \n }\n )\n ),\n teams: () => new MockList([1, 5]),\n createdAt: faker.date.past({ years: 3 }).toISOString()\n }),\n\n Annotation: () => ({\n id: faker.string.uuid(),\n context: this.generateAnnotationContext(),\n style: this.generateAnnotationStyle(),\n bodyHtml: this.generateAnnotationBody(),\n createdAt: faker.date.recent({ days: 1 }).toISOString(),\n updatedAt: faker.date.recent({ days: 1 }).toISOString()\n }),\n\n User: () => ({\n id: faker.string.uuid(),\n uuid: faker.string.uuid(),\n name: this.generateUserName(),\n email: this.generateUserEmail(),\n avatar: {\n url: faker.image.avatar()\n },\n bot: faker.datatype.boolean({ \n probability: this.patterns?.builds.creatorPatterns.botUsers || 0.1 \n })\n }),\n\n Agent: () => this.generateAgent(),\n\n Viewer: () => ({\n id: faker.string.uuid(),\n user: {\n id: faker.string.uuid(),\n uuid: faker.string.uuid(),\n name: faker.person.fullName(),\n email: faker.internet.email()\n },\n organizations: () => new MockList([1, 5])\n }),\n\n // Scalar types\n DateTime: () => faker.date.recent().toISOString(),\n ISO8601Date: () => faker.date.recent().toISOString().split('T')[0],\n JSON: () => JSON.stringify({ key: faker.word.noun(), value: faker.word.verb() }),\n YAML: () => `key: ${faker.word.noun()}\\nvalue: ${faker.word.verb()}`,\n Int: () => faker.number.int({ min: 0, max: 1000 }),\n Float: () => faker.number.float({ min: 0, max: 1000, multipleOf: 0.01 }),\n Boolean: () => faker.datatype.boolean(),\n String: () => faker.lorem.word()\n };\n }\n\n private selectByDistribution<T>(distribution: Distribution<T>): T {\n if (!distribution.values || distribution.values.length === 0) {\n // Return a default value based on type\n return 0 as T;\n }\n\n const random = Math.random();\n let cumulative = 0;\n \n for (const item of distribution.values) {\n cumulative += item.frequency;\n if (random <= cumulative) {\n return item.value;\n }\n }\n \n return distribution.values[0].value;\n }\n\n private generateBuildNumber(): number {\n if (this.patterns?.builds.numberRange) {\n const { min, max } = this.patterns.builds.numberRange;\n return faker.number.int({ min, max });\n }\n return faker.number.int({ min: 1, max: 9999 });\n }\n\n private generateBuildState(): string {\n if (this.patterns?.builds.states) {\n return this.selectByDistribution(this.patterns.builds.states);\n }\n return faker.helpers.arrayElement([\n 'PASSED', 'FAILED', 'RUNNING', 'SCHEDULED', \n 'CANCELED', 'CANCELING', 'BLOCKED', 'NOT_RUN'\n ]);\n }\n\n private generateBranch(): string {\n if (!this.patterns?.builds.branches) {\n return faker.git.branch();\n }\n\n const formats = this.patterns.builds.branches.formats;\n const random = Math.random();\n \n if (random < formats.feature) {\n return `feature/${faker.word.verb()}-${faker.word.noun()}`;\n } else if (random < formats.feature + formats.bugfix) {\n return `bugfix/${faker.word.verb()}-${faker.word.noun()}`;\n } else if (random < formats.feature + formats.bugfix + formats.release) {\n return `release/${faker.system.semver()}`;\n } else if (random < formats.feature + formats.bugfix + formats.release + formats.main) {\n return faker.helpers.arrayElement(['main', 'master', 'develop']);\n } else {\n return faker.git.branch();\n }\n }\n\n private generateCommitMessage(): string {\n if (!this.patterns?.builds.messagePatterns) {\n return faker.git.commitMessage();\n }\n\n const patterns = this.patterns.builds.messagePatterns;\n const useConventional = Math.random() < patterns.conventionalCommits;\n const useEmoji = Math.random() < patterns.hasEmoji;\n const useGithubRef = Math.random() < patterns.githubRefs;\n const useJiraRef = Math.random() < patterns.jiraRefs;\n const useMultiline = Math.random() < patterns.multiline;\n \n let message = '';\n \n if (useConventional) {\n const type = faker.helpers.arrayElement([\n 'feat', 'fix', 'docs', 'style', 'refactor', \n 'test', 'chore', 'perf', 'ci', 'build'\n ]);\n const scope = Math.random() < 0.3 ? `(${faker.word.noun()})` : '';\n message = `${type}${scope}: `;\n }\n \n if (useEmoji) {\n message += faker.helpers.arrayElement(['🎉', '🚀', '✨', '🔧', '📦', '👷', '🐛', '⚡️', '✅', '💚']) + ' ';\n }\n \n message += faker.git.commitMessage();\n \n if (useGithubRef) {\n message += ` (#${faker.number.int({ min: 1, max: 9999 })})`;\n }\n \n if (useJiraRef) {\n const project = faker.helpers.arrayElement(['PROJ', 'TEAM', 'BUG', 'FEAT']);\n message += ` ${project}-${faker.number.int({ min: 1, max: 9999 })}`;\n }\n \n if (useMultiline) {\n message += '\\n\\n' + faker.lorem.paragraph();\n }\n \n return message;\n }\n\n private generateFinishedAt(): string | null {\n const shouldBeFinished = Math.random() < 0.9;\n if (shouldBeFinished) {\n return faker.date.recent({ days: 30 }).toISOString();\n }\n return null;\n }\n\n private generatePullRequest() {\n const hasPR = Math.random() < 0.3;\n if (!hasPR) return null;\n \n return {\n id: faker.number.int({ min: 1, max: 9999 }).toString(),\n base: faker.git.branch(),\n repository: `https://github.com/${faker.word.noun()}/${faker.word.noun()}`\n };\n }\n\n private generateJobs() {\n const count = this.patterns?.builds.jobCounts \n ? this.selectByDistribution(this.patterns.builds.jobCounts)\n : faker.number.int({ min: 1, max: 10 });\n \n return () => new MockList(count);\n }\n\n private generateAnnotations() {\n const count = this.patterns?.builds.annotationCounts \n ? this.selectByDistribution(this.patterns.builds.annotationCounts)\n : faker.number.int({ min: 0, max: 3 });\n \n return () => new MockList(count);\n }\n\n private generateCreator() {\n return {\n id: faker.string.uuid(),\n name: this.generateUserName(),\n email: this.generateUserEmail(),\n avatar: {\n url: faker.image.avatar()\n }\n };\n }\n\n private generateUserName(): string {\n if (this.patterns?.builds.creatorPatterns.nameFormats) {\n const format = this.selectByDistribution(\n this.patterns.builds.creatorPatterns.nameFormats\n );\n \n switch (format) {\n case 'full-name':\n return faker.person.fullName();\n case 'dotted':\n return `${faker.person.firstName()}.${faker.person.lastName()}`.toLowerCase();\n case 'hyphenated':\n return `${faker.person.firstName()}-${faker.person.lastName()}`.toLowerCase();\n case 'underscored':\n return `${faker.person.firstName()}_${faker.person.lastName()}`.toLowerCase();\n case 'lowercase':\n return faker.internet.username().toLowerCase();\n default:\n return faker.person.fullName();\n }\n }\n \n return faker.person.fullName();\n }\n\n private generateUserEmail(): string {\n if (this.patterns?.builds.creatorPatterns.domains) {\n const domain = this.selectByDistribution(\n this.patterns.builds.creatorPatterns.domains\n );\n return `${faker.internet.username()}@${domain}`.toLowerCase();\n }\n \n return faker.internet.email();\n }\n\n private generatePipelineSlug(): string {\n const format = this.patterns?.pipelines.slugFormats \n ? this.selectByDistribution(this.patterns.pipelines.slugFormats)\n : 'kebab-case';\n \n const words = [faker.word.noun(), faker.word.verb()];\n \n switch (format) {\n case 'kebab-case':\n return words.join('-').toLowerCase();\n case 'snake_case':\n return words.join('_').toLowerCase();\n case 'camelCase':\n return words[0].toLowerCase() + words.slice(1).map(w => \n w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()\n ).join('');\n default:\n return words.join('').toLowerCase();\n }\n }\n\n private generatePipelineName(): string {\n const length = this.patterns?.pipelines.nameLength?.average || 20;\n const variance = 10;\n const targetLength = Math.max(\n 5,\n Math.floor(length + (Math.random() - 0.5) * variance)\n );\n \n let name = faker.company.name();\n while (name.length < targetLength) {\n name += ' ' + faker.word.noun();\n }\n \n return name.substring(0, targetLength);\n }\n\n private generateRepository() {\n const provider = this.patterns?.pipelines.repositoryProviders\n ? this.selectByDistribution(this.patterns.pipelines.repositoryProviders)\n : 'github';\n \n const org = faker.word.noun();\n const repo = faker.word.noun();\n \n switch (provider) {\n case 'github':\n return {\n url: `https://github.com/${org}/${repo}`,\n provider: { name: 'GitHub' }\n };\n case 'gitlab':\n return {\n url: `https://gitlab.com/${org}/${repo}`,\n provider: { name: 'GitLab' }\n };\n case 'bitbucket':\n return {\n url: `https://bitbucket.org/${org}/${repo}`,\n provider: { name: 'Bitbucket' }\n };\n default:\n return {\n url: `git@git.example.com:${org}/${repo}.git`,\n provider: { name: 'Git' }\n };\n }\n }\n\n private generateDefaultBranch(): string {\n if (this.patterns?.pipelines.defaultBranches) {\n return this.selectByDistribution(this.patterns.pipelines.defaultBranches);\n }\n return faker.helpers.arrayElement(['main', 'master', 'develop']);\n }\n\n private generateVisibility(): string {\n if (this.patterns?.pipelines.visibility) {\n return this.selectByDistribution(this.patterns.pipelines.visibility);\n }\n return faker.helpers.arrayElement(['PRIVATE', 'PUBLIC']);\n }\n\n private generateJobBase() {\n return {\n id: faker.string.uuid(),\n uuid: faker.string.uuid(),\n label: this.generateJobLabel(),\n state: this.generateJobState(),\n runAt: faker.date.recent({ days: 1 }).toISOString(),\n scheduledAt: faker.date.recent({ days: 1 }).toISOString(),\n startedAt: faker.date.recent({ days: 1 }).toISOString(),\n finishedAt: faker.date.recent({ days: 1 }).toISOString(),\n canceledAt: null,\n unblockable: faker.datatype.boolean({ probability: 0.1 }),\n unblockUrl: null,\n url: `https://buildkite.com/${faker.word.noun()}/${faker.word.noun()}/builds/${faker.number.int()}/jobs/${faker.string.uuid()}`,\n webUrl: `https://buildkite.com/${faker.word.noun()}/${faker.word.noun()}/builds/${faker.number.int()}#${faker.string.uuid()}`,\n build: { id: faker.string.uuid() }\n };\n }\n\n private generateJob() {\n const type = faker.helpers.arrayElement(['command', 'wait', 'trigger']);\n \n switch (type) {\n case 'wait':\n return { __typename: 'JobTypeWait' };\n case 'trigger':\n return { __typename: 'JobTypeTrigger' };\n default:\n return { __typename: 'JobTypeCommand' };\n }\n }\n\n private generateJobLabel(): string {\n if (this.patterns?.jobs.labelPatterns) {\n const pattern = this.selectByDistribution(this.patterns.jobs.labelPatterns);\n return pattern\n .replace(':version', faker.system.semver())\n .replace(':os', faker.helpers.arrayElement(['linux', 'ubuntu', 'macos', 'windows']))\n .replace(':test', faker.helpers.arrayElement(['unit', 'integration', 'e2e', 'smoke']))\n .replace(':sha', faker.git.commitSha().substring(0, 7));\n }\n \n return faker.helpers.arrayElement([\n `Test on ${faker.helpers.arrayElement(['Node', 'Python', 'Ruby'])} ${faker.system.semver()}`,\n 'Build Docker Image',\n 'Deploy to Staging',\n 'Run Integration Tests',\n 'Lint and Format',\n 'Security Scan',\n 'Performance Tests'\n ]);\n }\n\n private generateJobState(): string {\n return faker.helpers.arrayElement([\n 'PENDING', 'WAITING', 'BLOCKED', 'UNBLOCKED', 'LIMITING',\n 'LIMITED', 'SCHEDULED', 'ASSIGNED', 'ACCEPTED', 'RUNNING',\n 'FINISHED', 'CANCELING', 'CANCELED', 'TIMING_OUT', \n 'TIMED_OUT', 'SKIPPED', 'BROKEN'\n ]);\n }\n\n private generateExitStatus(): number | null {\n if (this.patterns?.jobs.exitStatusDistribution) {\n return this.selectByDistribution(this.patterns.jobs.exitStatusDistribution);\n }\n \n const hasExitStatus = Math.random() < 0.95;\n if (!hasExitStatus) return null;\n \n // Most jobs succeed (0), some fail (1), rare other codes\n const random = Math.random();\n if (random < 0.85) return 0;\n if (random < 0.95) return 1;\n return faker.helpers.arrayElement([2, 127, 128, 130, 137]);\n }\n\n private generateParallelGroupIndex(): number | null {\n const hasParallel = Math.random() < 0.2;\n if (!hasParallel) return null;\n return faker.number.int({ min: 0, max: 9 });\n }\n\n private generateParallelGroupTotal(): number | null {\n const hasParallel = Math.random() < 0.2;\n if (!hasParallel) return null;\n return faker.number.int({ min: 2, max: 10 });\n }\n\n private generateAgent() {\n return {\n id: faker.string.uuid(),\n uuid: faker.string.uuid(),\n name: faker.helpers.arrayElement([\n `agent-${faker.word.noun()}-${faker.number.int({ min: 1, max: 99 })}`,\n `buildkite-agent-${faker.string.alphanumeric(8)}`,\n `${faker.helpers.arrayElement(['linux', 'macos', 'windows'])}-${faker.number.int({ min: 1, max: 20 })}`\n ]),\n hostname: faker.internet.domainName(),\n version: faker.system.semver(),\n isRunningJob: faker.datatype.boolean({ probability: 0.3 })\n };\n }\n\n private generateOrganizationSlug(): string {\n const format = this.patterns?.organizations.slugFormats \n ? this.selectByDistribution(this.patterns.organizations.slugFormats)\n : 'kebab-case';\n \n const name = faker.company.name().toLowerCase();\n \n switch (format) {\n case 'kebab-case':\n return name.replace(/\\s+/g, '-').replace(/[^a-z0-9-]/g, '');\n case 'snake_case':\n return name.replace(/\\s+/g, '_').replace(/[^a-z0-9_]/g, '');\n default:\n return name.replace(/[^a-z0-9]/g, '');\n }\n }\n\n private generateOrganizationName(): string {\n const length = this.patterns?.organizations.nameLength?.average || 15;\n const variance = 10;\n const targetLength = Math.max(\n 3,\n Math.floor(length + (Math.random() - 0.5) * variance)\n );\n \n let name = faker.company.name();\n while (name.length < targetLength) {\n name += ' ' + faker.company.buzzNoun();\n }\n \n return name.substring(0, targetLength);\n }\n\n private generatePipelineRef() {\n return {\n id: faker.string.uuid(),\n slug: this.generatePipelineSlug(),\n name: this.generatePipelineName()\n };\n }\n\n private generateOrganizationRef() {\n return {\n id: faker.string.uuid(),\n slug: this.generateOrganizationSlug(),\n name: this.generateOrganizationName()\n };\n }\n\n private generateAnnotationContext(): string {\n return faker.helpers.arrayElement([\n 'test-results',\n 'coverage',\n 'lint',\n 'security',\n 'performance',\n 'deployment',\n 'release-notes'\n ]);\n }\n\n private generateAnnotationStyle(): string {\n return faker.helpers.arrayElement(['info', 'warning', 'error', 'success']);\n }\n\n private generateAnnotationBody(): string {\n const useMarkdown = Math.random() < 0.6;\n \n if (useMarkdown) {\n const style = faker.helpers.arrayElement(['summary', 'detailed', 'table']);\n \n switch (style) {\n case 'summary':\n return `<h3>${faker.lorem.sentence()}</h3>\n<p>${faker.lorem.paragraph()}</p>\n<ul>\n <li>✅ ${faker.lorem.sentence()}</li>\n <li>⚠️ ${faker.lorem.sentence()}</li>\n <li>❌ ${faker.lorem.sentence()}</li>\n</ul>`;\n \n case 'detailed':\n return `<details>\n <summary>${faker.lorem.sentence()}</summary>\n <p>${faker.lorem.paragraph()}</p>\n <pre><code>${faker.hacker.phrase()}</code></pre>\n</details>`;\n \n case 'table':\n return `<table>\n <thead>\n <tr>\n <th>Test</th>\n <th>Status</th>\n <th>Duration</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>${faker.hacker.noun()}</td>\n <td>✅ Passed</td>\n <td>${faker.number.float({ min: 0.1, max: 10, multipleOf: 0.1 })}s</td>\n </tr>\n <tr>\n <td>${faker.hacker.noun()}</td>\n <td>❌ Failed</td>\n <td>${faker.number.float({ min: 0.1, max: 10, multipleOf: 0.1 })}s</td>\n </tr>\n </tbody>\n</table>`;\n \n default:\n return `<p>${faker.lorem.paragraph()}</p>`;\n }\n }\n \n return `<p>${faker.lorem.paragraph()}</p>`;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bktide",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1755639164",
|
|
4
4
|
"description": "Command-line interface for Buildkite CI/CD workflows with rich shell completions (Fish, Bash, Zsh) and Alfred workflow integration for macOS power users",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -13,7 +13,12 @@
|
|
|
13
13
|
"dev": "NODE_OPTIONS=\"--enable-source-maps --trace-uncaught\" node build-and-run.js src/index.ts",
|
|
14
14
|
"dev:interactive": "NODE_OPTIONS=\"--enable-source-maps --trace-uncaught --inspect\" node build-and-run.js src/index.ts --interactive",
|
|
15
15
|
"watch": "tsc --watch",
|
|
16
|
-
"test": "
|
|
16
|
+
"test": "vitest --run",
|
|
17
|
+
"test:watch": "vitest --watch",
|
|
18
|
+
"test:coverage": "vitest --coverage",
|
|
19
|
+
"test:ui": "vitest --ui",
|
|
20
|
+
"test:extract-patterns": "npm run build && node dist/scripts/extract-data-patterns.js",
|
|
21
|
+
"test:record": "RECORD_MODE=true vitest",
|
|
17
22
|
"codegen": "graphql-code-generator --config codegen.mjs",
|
|
18
23
|
"package": "node scripts/package-workflow.js",
|
|
19
24
|
"package:clean": "rm -rf .stage pkg",
|
|
@@ -98,20 +103,31 @@
|
|
|
98
103
|
"typescript": "^5.8.3"
|
|
99
104
|
},
|
|
100
105
|
"devDependencies": {
|
|
106
|
+
"@faker-js/faker": "^9.2.0",
|
|
101
107
|
"@graphql-codegen/cli": "^5.0.7",
|
|
102
108
|
"@graphql-codegen/client-preset": "^4.8.3",
|
|
103
109
|
"@graphql-codegen/typescript": "^4.0.1",
|
|
104
110
|
"@graphql-codegen/typescript-graphql-request": "^6.3.0",
|
|
105
111
|
"@graphql-codegen/typescript-operations": "^4.6.1",
|
|
112
|
+
"@graphql-tools/mock": "^9.0.8",
|
|
113
|
+
"@graphql-tools/schema": "^10.0.10",
|
|
106
114
|
"@parcel/watcher": "^2.4.1",
|
|
115
|
+
"@pollyjs/adapter-node-http": "^6.0.6",
|
|
116
|
+
"@pollyjs/core": "^6.0.6",
|
|
117
|
+
"@pollyjs/persister-fs": "^6.0.6",
|
|
107
118
|
"@types/html-to-text": "^9.0.4",
|
|
108
119
|
"@types/node": "^22.14.1",
|
|
109
120
|
"@types/node-fetch": "^2.6.12",
|
|
110
121
|
"@types/node-persist": "^3.1.8",
|
|
111
122
|
"@types/prompts": "^2.4.9",
|
|
112
123
|
"@types/source-map-support": "^0.5.10",
|
|
124
|
+
"@vitest/coverage-v8": "^2.1.8",
|
|
125
|
+
"@vitest/ui": "^2.1.8",
|
|
113
126
|
"alfred-link": "^0.3.1",
|
|
127
|
+
"msw": "^2.7.0",
|
|
128
|
+
"nock": "^13.5.6",
|
|
114
129
|
"plist": "^3.1.0",
|
|
115
|
-
"tsc-files": "^1.1.4"
|
|
130
|
+
"tsc-files": "^1.1.4",
|
|
131
|
+
"vitest": "^2.1.8"
|
|
116
132
|
}
|
|
117
133
|
}
|