Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 9 additions & 9 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.1.2/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
"$schema": "https://unpkg.com/@changesets/config@3.1.2/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
}
75 changes: 38 additions & 37 deletions biome.json
Original file line number Diff line number Diff line change
@@ -1,39 +1,40 @@
{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"vcs": {
"enabled": false,
"clientKind": "git",
"useIgnoreFile": false
},
"files": {
"ignoreUnknown": false,
"ignore": [
"node_modules",
"dist",
"build",
"tests/fixtures/**/*.mjs",
"tests/fixtures/extensions/invalid-syntax/**"
]
},
"formatter": {
"enabled": true,
"indentStyle": "tab"
},
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"style": {
"noNonNullAssertion": "off"
}
}
},
"javascript": {
"formatter": {
"quoteStyle": "double"
}
}
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"vcs": {
"enabled": false,
"clientKind": "git",
"useIgnoreFile": false
},
"files": {
"ignoreUnknown": false,
"ignore": [
"node_modules",
"dist",
"build",
"tests/fixtures/**/*.mjs",
"tests/fixtures/extensions/invalid-syntax/**"
]
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2
},
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"style": {
"noNonNullAssertion": "off"
}
}
},
"javascript": {
"formatter": {
"quoteStyle": "double"
}
}
}
106 changes: 53 additions & 53 deletions build.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,17 @@ const OUT_DIR = "dist";
* to make this work, we have to strip the import out of the build.
*/
const ignoreReactDevToolsPlugin = {
name: "ignore-react-devtools",
setup(build) {
// When an import for 'react-devtools-core' is encountered,
// return an empty module.
build.onResolve({ filter: /^react-devtools-core$/ }, (args) => {
return { path: args.path, namespace: "ignore-devtools" };
});
build.onLoad({ filter: /.*/, namespace: "ignore-devtools" }, () => {
return { contents: "", loader: "js" };
});
},
name: "ignore-react-devtools",
setup(build) {
// When an import for 'react-devtools-core' is encountered,
// return an empty module.
build.onResolve({ filter: /^react-devtools-core$/ }, (args) => {
return { path: args.path, namespace: "ignore-devtools" };
});
build.onLoad({ filter: /.*/, namespace: "ignore-devtools" }, () => {
return { contents: "", loader: "js" };
});
},
};

// ----------------------------------------------------------------------------
Expand All @@ -35,61 +35,61 @@ const ignoreReactDevToolsPlugin = {
// ----------------------------------------------------------------------------

const isDevBuild =
process.argv.includes("--dev") || process.env.NODE_ENV === "development";
process.argv.includes("--dev") || process.env.NODE_ENV === "development";

const plugins = [ignoreReactDevToolsPlugin];

// Build Hygiene, ensure we drop previous dist dir and any leftover files
const outPath = path.resolve(OUT_DIR);
if (fs.existsSync(outPath)) {
fs.rmSync(outPath, { recursive: true, force: true });
fs.rmSync(outPath, { recursive: true, force: true });
}

// Add a shebang that enables source‑map support for dev builds so that stack
// traces point to the original TypeScript lines without requiring callers to
// remember to set NODE_OPTIONS manually.
if (isDevBuild) {
const devShebangLine =
"#!/usr/bin/env -S NODE_OPTIONS=--enable-source-maps node\n";
const devShebangPlugin = {
name: "dev-shebang",
setup(build) {
build.onEnd(async () => {
const outFile = path.resolve(`${OUT_DIR}/cli-dev.js`);
const devShebangLine =
"#!/usr/bin/env -S NODE_OPTIONS=--enable-source-maps node\n";
const devShebangPlugin = {
name: "dev-shebang",
setup(build) {
build.onEnd(async () => {
const outFile = path.resolve(`${OUT_DIR}/cli-dev.js`);

let code = await fs.promises.readFile(outFile, "utf8");
if (code.startsWith("#!")) {
code = code.replace(/^#!.*\n/, devShebangLine);
await fs.promises.writeFile(outFile, code, "utf8");
}
});
},
};
plugins.push(devShebangPlugin);
let code = await fs.promises.readFile(outFile, "utf8");
if (code.startsWith("#!")) {
code = code.replace(/^#!.*\n/, devShebangLine);
await fs.promises.writeFile(outFile, code, "utf8");
}
});
},
};
plugins.push(devShebangPlugin);
}

esbuild
.build({
entryPoints: ["src/index.ts"],
bundle: true,
format: "esm",
platform: "node",
tsconfig: "tsconfig.json",
outfile: `${OUT_DIR}/${isDevBuild ? "cli-dev.js" : "cli.js"}`,
minify: !isDevBuild,
sourcemap: isDevBuild ? "inline" : true,
plugins,
inject: ["./require-shim.js"],
external: [
// Exclude native modules from bundling
"*.node",
// TypeScript is a peer dependency and should not be bundled
"typescript",
// pino-pretty uses worker threads and must be external
"pino-pretty",
],
})
.catch((e) => {
console.error(e);
process.exit(1);
});
.build({
entryPoints: ["src/index.ts"],
bundle: true,
format: "esm",
platform: "node",
tsconfig: "tsconfig.json",
outfile: `${OUT_DIR}/${isDevBuild ? "cli-dev.js" : "cli.js"}`,
minify: !isDevBuild,
sourcemap: isDevBuild ? "inline" : true,
plugins,
inject: ["./require-shim.js"],
external: [
// Exclude native modules from bundling
"*.node",
// TypeScript is a peer dependency and should not be bundled
"typescript",
// pino-pretty uses worker threads and must be external
"pino-pretty",
],
})
.catch((e) => {
console.error(e);
process.exit(1);
});
152 changes: 73 additions & 79 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,81 +1,75 @@
{
"name": "@godaddy/cli",
"version": "0.2.3",
"description": "GoDaddy CLI for managing applications and webhooks",
"keywords": [
"godaddy",
"cli",
"developer-tools"
],
"main": "./dist/cli.js",
"type": "module",
"bin": {
"godaddy": "./dist/cli.js"
},
"files": [
"dist"
],
"scripts": {
"format": "pnpm biome format --write",
"lint": "pnpm biome lint --write",
"check": "pnpm biome check --fix --unsafe",
"generate:api-catalog": "pnpm tsx scripts/generate-api-catalog.ts",
"build": "node build.mjs",
"build:dev": "NODE_ENV=development node build.mjs --dev && NODE_OPTIONS=--enable-source-maps node dist/cli-dev.js",
"prepare": "pnpm run build",
"test": "vitest",
"test:ui": "vitest --ui",
"test:coverage": "vitest --coverage",
"changeset": "changeset",
"version": "changeset version",
"release": "pnpm build && changeset publish"
},
"devDependencies": {
"@biomejs/biome": "1.9.4",
"@changesets/cli": "^2.29.8",
"@types/node": "^22.14.1",
"@types/picomatch": "^4.0.2",
"@types/prompts": "^2.4.9",
"@types/react": "18.3.1",
"@types/semver": "^7.7.0",
"@vitest/coverage-v8": "^3.2.2",
"@vitest/ui": "^3.2.2",
"esbuild": "^0.25.12",
"ms": "^2.1.3",
"msw": "^2.4.0",
"tsx": "^4.19.3",
"vitest": "^3.2.2",
"yaml": "^2.8.2"
},
"peerDependencies": {
"typescript": "^5.0.0"
},
"dependencies": {
"@clack/prompts": "^0.10.0",
"@effect/cli": "^0.73.2",
"@effect/platform": "^0.94.5",
"@effect/platform-node": "^0.104.1",
"@iarna/toml": "^2.2.5",
"@inkjs/ui": "^2.0.0",
"@tanstack/react-query": "^5.68.0",
"arktype": "^2.1.9",
"copy-to-clipboard": "^3.3.3",
"effect": "^3.19.19",
"gql.tada": "^1.8.10",
"graphql": "^16.10.0",
"graphql-request": "^7.1.2",
"ink": "^5.2.0",
"ink-select-input": "^6.0.0",
"open": "^10.1.1",
"picomatch": "^4.0.3",
"pino": "^9.6.0",
"pino-pretty": "^13.0.0",
"react": "18.3.1",
"semver": "^7.7.1",
"uuid": "^11.1.0"
},
"publishConfig": {
"access": "public"
},
"packageManager": "pnpm@10.14.0"
"name": "@godaddy/cli",
"version": "0.2.3",
"description": "GoDaddy CLI for managing applications and webhooks",
"keywords": ["godaddy", "cli", "developer-tools"],
"main": "./dist/cli.js",
"type": "module",
"bin": {
"godaddy": "./dist/cli.js"
},
"files": ["dist"],
"scripts": {
"format": "pnpm biome format --write .",
"lint": "pnpm biome lint --write",
"check": "pnpm biome check --fix --unsafe",
"generate:api-catalog": "pnpm tsx scripts/generate-api-catalog.ts",
"build": "node build.mjs",
"build:dev": "NODE_ENV=development node build.mjs --dev && NODE_OPTIONS=--enable-source-maps node dist/cli-dev.js",
"prepare": "pnpm run build",
"test": "vitest",
"test:ui": "vitest --ui",
"test:coverage": "vitest --coverage",
"changeset": "changeset",
"version": "changeset version",
"release": "pnpm build && changeset publish"
},
"devDependencies": {
"@biomejs/biome": "1.9.4",
"@changesets/cli": "^2.29.8",
"@types/node": "^22.14.1",
"@types/picomatch": "^4.0.2",
"@types/prompts": "^2.4.9",
"@types/react": "18.3.1",
"@types/semver": "^7.7.0",
"@vitest/coverage-v8": "^3.2.2",
"@vitest/ui": "^3.2.2",
"esbuild": "^0.25.12",
"ms": "^2.1.3",
"msw": "^2.4.0",
"tsx": "^4.19.3",
"vitest": "^3.2.2",
"yaml": "^2.8.2"
},
"peerDependencies": {
"typescript": "^5.0.0"
},
"dependencies": {
"@clack/prompts": "^0.10.0",
"@effect/cli": "^0.73.2",
"@effect/platform": "^0.94.5",
"@effect/platform-node": "^0.104.1",
"@iarna/toml": "^2.2.5",
"@inkjs/ui": "^2.0.0",
"@tanstack/react-query": "^5.68.0",
"arktype": "^2.1.9",
"copy-to-clipboard": "^3.3.3",
"effect": "^3.19.19",
"gql.tada": "^1.8.10",
"graphql": "^16.10.0",
"graphql-request": "^7.1.2",
"ink": "^5.2.0",
"ink-select-input": "^6.0.0",
"open": "^10.1.1",
"picomatch": "^4.0.3",
"pino": "^9.6.0",
"pino-pretty": "^13.0.0",
"react": "18.3.1",
"semver": "^7.7.1",
"uuid": "^11.1.0"
},
"publishConfig": {
"access": "public"
},
"packageManager": "pnpm@10.14.0"
}
Loading
Loading