Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
974ff2e
docs: add Bun migration design
evans-sam Apr 16, 2026
8a73766
plan: Bun migration implementation plan
evans-sam Apr 16, 2026
7428586
plan: pivot to option B (skip unblock), add bun audit + static baseline
evans-sam Apr 16, 2026
52c2e11
chore(bun): add bun.lock and packageManager field
evans-sam Apr 16, 2026
b6f9976
refactor(test): rename *-test.js to *.test.ts (pure rename)
evans-sam Apr 16, 2026
11dd6b3
chore(bun): add @types/bun
evans-sam Apr 16, 2026
ff42ab5
refactor(test): rewrite test-helpers as ESM TypeScript
evans-sam Apr 16, 2026
962bf07
refactor(test): migrate trim-test to bun:test (pilot)
evans-sam Apr 16, 2026
2749b0f
refactor(test): migrate security tests to bun:test
evans-sam Apr 16, 2026
cfbbca5
fix(wsdl): use declare on shadowing \$-prefixed class fields
evans-sam Apr 16, 2026
52218bd
refactor(test): migrate simple tests to bun:test
evans-sam Apr 16, 2026
be33b8b
refactor(test): migrate custom-http and wsdl-cache tests
evans-sam Apr 16, 2026
f48bad5
refactor(test): migrate request-response-samples, replace timekeeper …
evans-sam Apr 16, 2026
106395f
test: skip 2 pre-existing broken fixtures in request-response-samples
evans-sam Apr 16, 2026
b446687
fix(http): prevent unhandled rejection on fetch errors
evans-sam Apr 17, 2026
79a92b0
refactor(test): migrate client.test.ts to bun:test
evans-sam Apr 17, 2026
34c113d
refactor(test): migrate wsdl.test.ts to bun:test
evans-sam Apr 17, 2026
2b34f3d
chore(test): remove mocha, should, sinon, timekeeper, source-map-supp…
evans-sam Apr 17, 2026
2a630b1
chore: remove package-lock.json, bun.lock is authoritative
evans-sam Apr 17, 2026
70e4ed6
ci: migrate PR workflow to Bun
evans-sam Apr 17, 2026
f401c67
chore(ci): switch dependabot ecosystem to bun
evans-sam Apr 17, 2026
a905ee7
docs: update CONTRIBUTING for Bun toolchain
evans-sam Apr 17, 2026
db20bd6
docs: add bun/pnpm/yarn install alternatives + Bun dev toolchain note
evans-sam Apr 17, 2026
b074cdb
review: address CodeQL + CodeRabbit findings
evans-sam Apr 17, 2026
7555f46
review: address second-round CodeRabbit findings
evans-sam Apr 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

version: 2
updates:
- package-ecosystem: "npm" # See documentation for possible values
- package-ecosystem: "bun" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
Expand Down
39 changes: 13 additions & 26 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,29 @@
name: PR Build
on: pull_request
jobs:
code-quality:
build-test:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
- uses: oven-sh/setup-bun@v2
with:
node-version: lts/*
- run: npm ci
- run: npm run build
- run: npm run lint
- run: npm run format:check
bun-version: 1.3.11 # match packageManager in package.json
- run: bun ci
- run: bun test
- run: bun run build # sanity-check tsc still passes
- run: bun run lint
- run: bun run format:check

# Fails the PR on high/critical CVEs in production dependencies.
# --omit=dev is required: known devDep findings (mocha/sinon transitive chain)
# are tracked separately in #22 and would otherwise cause spurious failures.
# If a production transitive CVE ever becomes unfixable, consider layering
# an allowlist tool (audit-ci, better-npm-audit) on top of this step.
# Replaces the npm audit job added in #36 (known devDep findings
# tracked in #22; --prod scopes to production deps only).
security:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
- uses: oven-sh/setup-bun@v2
with:
node-version: lts/*
- run: npm audit --omit=dev --audit-level=high

test:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: lts/*
- run: npm ci
- run: npm run build
- run: npm test
bun-version: 1.3.11
- run: bun audit --prod --audit-level=high
20 changes: 18 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,26 @@ Before submitting code, verify it works in:
- Ensure all existing tests pass
- If your change affects browser/edge compatibility, note this in the PR

### Toolchain

This project uses [Bun](https://bun.sh) as its test runner and package manager. Install Bun before running any commands below:

```bash
curl -fsSL https://bun.sh/install | bash
```

Then:

```bash
bun install # install dependencies
bun test # run the test suite
bun run build # build lib/ via tsc
```

### Code Style

- Run `npm run lint` before submitting
- Run `npm run format` to format code with Prettier
- Run `bun run lint` before submitting
- Run `bun run format` to format code with Prettier
- TypeScript is preferred for new code

## Issue Expiration
Expand Down
27 changes: 26 additions & 1 deletion Readme.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

- [fetch-soap](#fetch-soap)
- [Features](#features)
- [What's Different from node-soap](#whats-different-from-node-soap)
- [Installation](#installation)
- [Basic Usage](#basic-usage)
- [API Documentation](#api-documentation)
- [Creating a Client](#creating-a-client)
- [Calling Methods](#calling-methods)
- [Security](#security)
- [Migration from node-soap](#migration-from-node-soap)
- [Contributing](#contributing)
- [License](#license)
- [Acknowledgments](#acknowledgments)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

# fetch-soap

A universal SOAP client using the Fetch API - works in browsers, edge runtimes (Cloudflare Workers, Vercel Edge, Deno), and Node.js.
Expand All @@ -22,6 +41,12 @@ A universal SOAP client using the Fetch API - works in browsers, edge runtimes (

```bash
npm install fetch-soap
# or
bun add fetch-soap
# or
pnpm add fetch-soap
# or
yarn add fetch-soap
```

## Basic Usage
Expand Down Expand Up @@ -94,7 +119,7 @@ fetch-soap aims to be a drop-in replacement for node-soap's client functionality

## Contributing

Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
Contributions are welcome! The project uses [Bun](https://bun.sh) as its test runner and package manager — see [CONTRIBUTING.md](CONTRIBUTING.md) for setup and guidelines.

## License

Expand Down
1,095 changes: 1,095 additions & 0 deletions bun.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.recommended,
{
ignores: ['lib/', 'node_modules/', 'test/'],
ignores: ['lib/', 'node_modules/', 'test/', 'docs/'],
},
{
plugins: {
Expand Down
Loading
Loading