@goodfoot/claude-code-hooks 1.0.21 → 1.0.23
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/dist/cli.js +12 -0
- package/dist/scaffold.js +2 -2
- package/package.json +3 -3
- package/types/index.d.ts +1 -1
- package/types/outputs.d.ts +5 -10
- package/types/types.d.ts +2 -1
package/dist/cli.js
CHANGED
|
@@ -416,6 +416,17 @@ execute(hook);
|
|
|
416
416
|
sourcefile: `${baseName}-entry.ts`,
|
|
417
417
|
loader: "ts",
|
|
418
418
|
};
|
|
419
|
+
// Banner to polyfill CJS globals for dependencies bundled into ESM.
|
|
420
|
+
// Some packages (e.g. typescript) use require(), __filename, and __dirname
|
|
421
|
+
// internally, which are unavailable in ESM scope.
|
|
422
|
+
const esmRequireBanner = [
|
|
423
|
+
`import { createRequire as __createRequire } from "node:module";`,
|
|
424
|
+
`import { fileURLToPath as __fileURLToPath } from "node:url";`,
|
|
425
|
+
`import { dirname as __pathDirname } from "node:path";`,
|
|
426
|
+
`const require = __createRequire(import.meta.url);`,
|
|
427
|
+
`const __filename = __fileURLToPath(import.meta.url);`,
|
|
428
|
+
`const __dirname = __pathDirname(__filename);`,
|
|
429
|
+
].join("\n");
|
|
419
430
|
// Common esbuild options
|
|
420
431
|
const commonOptions = {
|
|
421
432
|
stdin: stdinOptions,
|
|
@@ -425,6 +436,7 @@ execute(hook);
|
|
|
425
436
|
bundle: true,
|
|
426
437
|
minify: false,
|
|
427
438
|
write: false, // Return content directly via outputFiles
|
|
439
|
+
banner: { js: esmRequireBanner },
|
|
428
440
|
// Keep node built-ins external
|
|
429
441
|
external: [
|
|
430
442
|
"node:*",
|
package/dist/scaffold.js
CHANGED
|
@@ -119,7 +119,7 @@ function generatePackageJson(projectName, outputPath) {
|
|
|
119
119
|
"@goodfoot/claude-code-hooks": "^1.0.9",
|
|
120
120
|
},
|
|
121
121
|
devDependencies: {
|
|
122
|
-
"@biomejs/biome": "2.
|
|
122
|
+
"@biomejs/biome": "2.4.1",
|
|
123
123
|
"@types/node": "^22.0.0",
|
|
124
124
|
typescript: "^5.9.3",
|
|
125
125
|
vitest: "^4.0.16",
|
|
@@ -162,7 +162,7 @@ function generateTsConfig() {
|
|
|
162
162
|
*/
|
|
163
163
|
function generateBiomeConfig() {
|
|
164
164
|
return `{
|
|
165
|
-
"$schema": "https://biomejs.dev/schemas/2.
|
|
165
|
+
"$schema": "https://biomejs.dev/schemas/2.4.1/schema.json",
|
|
166
166
|
"formatter": {
|
|
167
167
|
"enabled": true,
|
|
168
168
|
"indentStyle": "space",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodfoot/claude-code-hooks",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.23",
|
|
4
4
|
"description": "Type-safe Claude Code hooks library with camelCase types and output builders",
|
|
5
5
|
"homepage": "https://github.com/goodfoot-io/marketplace/tree/main/packages/claude-code-hooks",
|
|
6
6
|
"repository": {
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"typescript": "^5.9.3"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@anthropic-ai/claude-agent-sdk": "^0.2.
|
|
57
|
-
"@biomejs/biome": "2.
|
|
56
|
+
"@anthropic-ai/claude-agent-sdk": "^0.2.42",
|
|
57
|
+
"@biomejs/biome": "2.4.1",
|
|
58
58
|
"@types/node": "^24",
|
|
59
59
|
"ts-morph": "^25.0.0",
|
|
60
60
|
"tsx": "^4.20.3",
|
package/types/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export type { LogEvent, LogEventError, LogEventHandler, LoggerConfig, LogLevel,
|
|
|
13
13
|
export { LOG_LEVELS, Logger, logger } from "./logger.js";
|
|
14
14
|
export type {
|
|
15
15
|
/** @deprecated Use CommonOptions instead */
|
|
16
|
-
BaseOptions, CommonOptions, ExitCode, HookOutput, HookSpecificOutput, NotificationOptions, PermissionRequestAllowDecision, PermissionRequestDecision, PermissionRequestDenyDecision, PermissionRequestHookSpecificOutput, PermissionRequestOptions, PostToolUseFailureHookSpecificOutput, PostToolUseFailureOptions, PostToolUseHookSpecificOutput, PostToolUseOptions, PreCompactOptions, PreToolUseHookSpecificOutput, PreToolUseOptions, SessionEndOptions, SessionStartHookSpecificOutput, SessionStartOptions, SetupHookSpecificOutput, SetupOptions, StopOptions, SubagentStartHookSpecificOutput, SubagentStartOptions, SubagentStopOptions, SyncHookJSONOutput, TaskCompletedOptions, TeammateIdleOptions, UserPromptSubmitHookSpecificOutput, UserPromptSubmitOptions, } from "./outputs.js";
|
|
16
|
+
BaseOptions, CommonOptions, ExitCode, HookOutput, HookSpecificOutput, NotificationHookSpecificOutput, NotificationOptions, PermissionRequestAllowDecision, PermissionRequestDecision, PermissionRequestDenyDecision, PermissionRequestHookSpecificOutput, PermissionRequestOptions, PostToolUseFailureHookSpecificOutput, PostToolUseFailureOptions, PostToolUseHookSpecificOutput, PostToolUseOptions, PreCompactOptions, PreToolUseHookSpecificOutput, PreToolUseOptions, SessionEndOptions, SessionStartHookSpecificOutput, SessionStartOptions, SetupHookSpecificOutput, SetupOptions, StopOptions, SubagentStartHookSpecificOutput, SubagentStartOptions, SubagentStopOptions, SyncHookJSONOutput, TaskCompletedOptions, TeammateIdleOptions, UserPromptSubmitHookSpecificOutput, UserPromptSubmitOptions, } from "./outputs.js";
|
|
17
17
|
export { EXIT_CODES, notificationOutput, permissionRequestOutput, postToolUseFailureOutput, postToolUseOutput, preCompactOutput, preToolUseOutput, sessionEndOutput, sessionStartOutput, setupOutput, stopOutput, subagentStartOutput, subagentStopOutput, taskCompletedOutput, teammateIdleOutput, userPromptSubmitOutput, } from "./outputs.js";
|
|
18
18
|
export { execute, } from "./runtime.js";
|
|
19
19
|
export type { ContentContext, PatternCheckResult, ToolUseInput } from "./tool-helpers.js";
|
package/types/outputs.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @see https://code.claude.com/docs/en/hooks
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
|
-
import type { PermissionRequestHookSpecificOutput as SDKPermissionRequestHookSpecificOutput, PostToolUseFailureHookSpecificOutput as SDKPostToolUseFailureHookSpecificOutput, PostToolUseHookSpecificOutput as SDKPostToolUseHookSpecificOutput, PreToolUseHookSpecificOutput as SDKPreToolUseHookSpecificOutput, SessionStartHookSpecificOutput as SDKSessionStartHookSpecificOutput, SetupHookSpecificOutput as SDKSetupHookSpecificOutput, SubagentStartHookSpecificOutput as SDKSubagentStartHookSpecificOutput, SyncHookJSONOutput as SDKSyncHookJSONOutput, UserPromptSubmitHookSpecificOutput as SDKUserPromptSubmitHookSpecificOutput } from "@anthropic-ai/claude-agent-sdk/sdk.js";
|
|
10
|
+
import type { NotificationHookSpecificOutput as SDKNotificationHookSpecificOutput, PermissionRequestHookSpecificOutput as SDKPermissionRequestHookSpecificOutput, PostToolUseFailureHookSpecificOutput as SDKPostToolUseFailureHookSpecificOutput, PostToolUseHookSpecificOutput as SDKPostToolUseHookSpecificOutput, PreToolUseHookSpecificOutput as SDKPreToolUseHookSpecificOutput, SessionStartHookSpecificOutput as SDKSessionStartHookSpecificOutput, SetupHookSpecificOutput as SDKSetupHookSpecificOutput, SubagentStartHookSpecificOutput as SDKSubagentStartHookSpecificOutput, SyncHookJSONOutput as SDKSyncHookJSONOutput, UserPromptSubmitHookSpecificOutput as SDKUserPromptSubmitHookSpecificOutput } from "@anthropic-ai/claude-agent-sdk/sdk.js";
|
|
11
11
|
/**
|
|
12
12
|
* Exit codes used by Claude Code hooks.
|
|
13
13
|
*
|
|
@@ -36,7 +36,7 @@ export type { SDKSyncHookJSONOutput };
|
|
|
36
36
|
/**
|
|
37
37
|
* Re-export SDK hook-specific output types (includes hookEventName discriminator).
|
|
38
38
|
*/
|
|
39
|
-
export type { SDKPreToolUseHookSpecificOutput, SDKPostToolUseHookSpecificOutput, SDKPostToolUseFailureHookSpecificOutput, SDKUserPromptSubmitHookSpecificOutput, SDKSessionStartHookSpecificOutput, SDKSetupHookSpecificOutput, SDKSubagentStartHookSpecificOutput, SDKPermissionRequestHookSpecificOutput, };
|
|
39
|
+
export type { SDKNotificationHookSpecificOutput, SDKPreToolUseHookSpecificOutput, SDKPostToolUseHookSpecificOutput, SDKPostToolUseFailureHookSpecificOutput, SDKUserPromptSubmitHookSpecificOutput, SDKSessionStartHookSpecificOutput, SDKSetupHookSpecificOutput, SDKSubagentStartHookSpecificOutput, SDKPermissionRequestHookSpecificOutput, };
|
|
40
40
|
/**
|
|
41
41
|
* PreToolUse hook-specific output fields.
|
|
42
42
|
* Omits `hookEventName` which is added automatically by the builder.
|
|
@@ -98,18 +98,13 @@ export type PermissionRequestDenyDecision = Extract<SDKPermissionRequestHookSpec
|
|
|
98
98
|
export type PermissionRequestDecision = SDKPermissionRequestHookSpecificOutput["decision"];
|
|
99
99
|
/**
|
|
100
100
|
* Notification hook-specific output fields.
|
|
101
|
-
*
|
|
101
|
+
* Omits `hookEventName` which is added automatically by the builder.
|
|
102
102
|
*/
|
|
103
|
-
export
|
|
104
|
-
/** Additional context to add about the notification. */
|
|
105
|
-
additionalContext?: string;
|
|
106
|
-
}
|
|
103
|
+
export type NotificationHookSpecificOutput = Omit<SDKNotificationHookSpecificOutput, "hookEventName">;
|
|
107
104
|
/**
|
|
108
105
|
* Full hook-specific output with hookEventName discriminator.
|
|
109
106
|
*/
|
|
110
|
-
export type HookSpecificOutput = SDKPreToolUseHookSpecificOutput | SDKPostToolUseHookSpecificOutput | SDKPostToolUseFailureHookSpecificOutput | SDKUserPromptSubmitHookSpecificOutput | SDKSessionStartHookSpecificOutput | SDKSetupHookSpecificOutput | SDKSubagentStartHookSpecificOutput | SDKPermissionRequestHookSpecificOutput |
|
|
111
|
-
hookEventName: "Notification";
|
|
112
|
-
} & NotificationHookSpecificOutput);
|
|
107
|
+
export type HookSpecificOutput = SDKPreToolUseHookSpecificOutput | SDKPostToolUseHookSpecificOutput | SDKPostToolUseFailureHookSpecificOutput | SDKUserPromptSubmitHookSpecificOutput | SDKSessionStartHookSpecificOutput | SDKSetupHookSpecificOutput | SDKSubagentStartHookSpecificOutput | SDKPermissionRequestHookSpecificOutput | SDKNotificationHookSpecificOutput;
|
|
113
108
|
/**
|
|
114
109
|
* The JSON output format expected by Claude Code (sync hooks only).
|
|
115
110
|
* Extends SDK's SyncHookJSONOutput to include Notification hook support.
|
package/types/types.d.ts
CHANGED
|
@@ -45,10 +45,11 @@ export type PreCompactTrigger = "manual" | "auto";
|
|
|
45
45
|
* - `'logout'` - User logged out
|
|
46
46
|
* - `'prompt_input_exit'` - User exited at prompt input
|
|
47
47
|
* - `'other'` - Other reasons
|
|
48
|
+
* - `'bypass_permissions_disabled'` - Session ended because bypass permissions was disabled
|
|
48
49
|
*
|
|
49
50
|
* Note: SDK's ExitReason resolves to string. This type provides concrete literals for better DX.
|
|
50
51
|
*/
|
|
51
|
-
export type SessionEndReason = "clear" | "logout" | "prompt_input_exit" | "other";
|
|
52
|
+
export type SessionEndReason = "clear" | "logout" | "prompt_input_exit" | "other" | "bypass_permissions_disabled";
|
|
52
53
|
/**
|
|
53
54
|
* Common fields present in all hook inputs.
|
|
54
55
|
*
|