Skip to content

Commit 9d28fec

Browse files
chore: wip
1 parent 7927301 commit 9d28fec

File tree

7 files changed

+20
-14
lines changed

7 files changed

+20
-14
lines changed

bun.lock

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"name": "buddy-bot",
66
"dependencies": {
77
"prompts": "^2.4.2",
8-
"ts-pkgx": "^0.4.116",
8+
"ts-pkgx": "^0.4.117",
99
},
1010
"devDependencies": {
1111
"@stacksjs/clapp": "^0.2.0",
@@ -1778,7 +1778,7 @@
17781778

17791779
"ts-error-handling": ["ts-error-handling@0.1.0", "", {}, "sha512-v0t9+8PBJkyQoOG2SY/PGKJLPrahsRA/4ZbU/C7+RWVviXtUrXRyGKkHa+2+UwgVFJVdI//D9PINuSfciqNKOQ=="],
17801780

1781-
"ts-pkgx": ["ts-pkgx@0.4.116", "", { "dependencies": { "ts-web-scraper": "^0.1.1" }, "bin": { "ts-pkgx": "dist/bin/cli.js" } }, "sha512-+QyU/ape7pU/ZxoFljIC2ukB2V3RX/w42jABSjDF0xoXSny4VWlGNOq777ZaX49z5zDZDaN+xhbcmf7ns0YH7A=="],
1781+
"ts-pkgx": ["ts-pkgx@0.4.117", "", { "dependencies": { "bun-plugin-dtsx": "^0.21.17", "ts-web-scraper": "^0.1.1" }, "bin": { "ts-pkgx": "dist/bin/cli.js" } }, "sha512-dlnU14Zwicpq1qsTGDwH978XUbYAaERM49TJbMqDV/rKau1wxc3EU0WwjjkoA3oyY110U5Dn4qnwDe5cHkkcfg=="],
17821782

17831783
"ts-web-scraper": ["ts-web-scraper@0.1.1", "", { "bin": { "scraper": "dist/bin/cli.js" } }, "sha512-js+gSRe95yDD9U3+GmjvIKBYLAN9WoZKV84x7HcSI7dqdWEIoZSeSGR/Jbr8f5hCeV9FD70KdTPIS2LQwviQXQ=="],
17841784

@@ -2170,6 +2170,8 @@
21702170

21712171
"toml-eslint-parser/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="],
21722172

2173+
"ts-pkgx/bun-plugin-dtsx": ["bun-plugin-dtsx@0.21.17", "", { "dependencies": { "@stacksjs/dtsx": "^0.9.8" } }, "sha512-gikZdPs8f7aFPREb+gBn7kaDdjpfQSLIPpVbUI+I5dusAlENvlJmKQj06aq1oS3mP7yg3gdQJBRg+PlzUV5h9g=="],
2174+
21732175
"unconfig/jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="],
21742176

21752177
"validate-npm-package-license/spdx-expression-parse": ["spdx-expression-parse@3.0.1", "", { "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q=="],
@@ -2238,6 +2240,8 @@
22382240

22392241
"mlly/pkg-types/confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="],
22402242

2243+
"ts-pkgx/bun-plugin-dtsx/@stacksjs/dtsx": ["@stacksjs/dtsx@0.9.8", "", { "dependencies": { "@stacksjs/clapp": "^0.2.0" }, "bin": { "dtsx": "dist/bin/cli.js" } }, "sha512-qB5fqf4yysnoqRZbUbM6KrNA0thvPZ+cEP0mS6yeORMhdFWme8VzGsmY4HD/DevRU3s0vGoS6bTT0h9Gcj8Fbg=="],
2244+
22412245
"vitepress/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^3.1.0" } }, "sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w=="],
22422246

22432247
"vitepress/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw=="],

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
},
6060
"dependencies": {
6161
"prompts": "^2.4.2",
62-
"ts-pkgx": "^0.4.116"
62+
"ts-pkgx": "^0.4.117"
6363
},
6464
"devDependencies": {
6565
"@stacksjs/clapp": "^0.2.0",

src/pr/pr-generator.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ export class PullRequestGenerator {
462462
const metadata = (update as any).metadata
463463
if (metadata?.url) {
464464
// Extract repository URL from tarball URL
465-
const repoMatch = metadata.url.match(/https?:\/\/github\.com\/([^\/]+\/[^\/]+)/)
465+
const repoMatch = metadata.url.match(/https?:\/\/github\.com\/([^/]+\/[^/]+)/)
466466
if (repoMatch) {
467467
const repoUrl = `https://github.com/${repoMatch[1]}`
468468
packageCell = `[${update.name}](${repoUrl})`

src/scanner/package-scanner.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { BuddyError } from '../types'
1010
import { isDependencyFile, parseDependencyFile as parseDepFile } from '../utils/dependency-file-parser'
1111
import { isDockerfile, parseDockerfile as parseDockerfileUtil } from '../utils/dockerfile-parser'
1212
import { isGitHubActionsFile, parseGitHubActionsFile } from '../utils/github-actions-parser'
13-
import { isZigManifest, parseZigManifest } from '../utils/zig-parser'
13+
import { parseZigManifest } from '../utils/zig-parser'
1414

1515
export class PackageScanner {
1616
private ignoreGlobs: Glob[] = []

src/utils/zig-parser.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,16 @@ export async function parseZigManifest(filePath: string, content: string): Promi
2323

2424
// Parse dependencies from the .dependencies block
2525
// Format: .dependencies = .{ .package_name = .{ .url = "...", .hash = "..." }, }
26-
const dependenciesMatch = content.match(/\.dependencies\s*=\s*\.?\{([^}]*)\}/s)
26+
const dependenciesMatch = content.match(/\.dependencies\s*=\s*\.?\{([^}]*)\}/)
2727

2828
if (dependenciesMatch) {
2929
const dependenciesBlock = dependenciesMatch[1]
3030

3131
// Match each dependency entry: .package_name = .{ .url = "...", ... }
3232
const depRegex = /\.(\w+)\s*=\s*\.?\{([^}]*)\}/g
33-
let match
33+
let match = depRegex.exec(dependenciesBlock)
3434

35-
while ((match = depRegex.exec(dependenciesBlock)) !== null) {
35+
while (match !== null) {
3636
const packageName = match[1]
3737
const depContent = match[2]
3838

@@ -46,17 +46,21 @@ export async function parseZigManifest(filePath: string, content: string): Promi
4646
const versionMatch = url.match(/\/v?(\d+\.\d+\.\d+(?:-[\w.]+)?)/i)
4747
const version = versionMatch ? versionMatch[1] : 'unknown'
4848

49+
const metadata: Record<string, string> = { url }
50+
if (hashMatch) {
51+
metadata.hash = hashMatch[1]
52+
}
53+
4954
dependencies.push({
5055
name: packageName,
5156
currentVersion: version,
5257
type: 'zig-dependencies',
5358
file: filePath,
54-
metadata: {
55-
url,
56-
hash: hashMatch ? hashMatch[1] : undefined,
57-
},
59+
metadata,
5860
})
5961
}
62+
63+
match = depRegex.exec(dependenciesBlock)
6064
}
6165
}
6266

test/zig-parser.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { describe, expect, it } from 'bun:test'
22
import {
3-
generateZigManifestUpdates,
43
isZigManifest,
54
parseZigManifest,
65
updateZigManifest,

test/zig-scanner-integration.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import type { PackageFile } from '../src/types'
21
import type { Logger } from '../src/utils/logger'
32
import { afterEach, beforeEach, describe, expect, it, mock } from 'bun:test'
43
import { existsSync, mkdirSync, rmSync, writeFileSync } from 'node:fs'

0 commit comments

Comments
 (0)