@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 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.3.14",
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.3.14/schema.json",
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.21",
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.39",
57
- "@biomejs/biome": "2.3.14",
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";
@@ -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
- * Note: Not in SDK, defined here for completeness.
101
+ * Omits `hookEventName` which is added automatically by the builder.
102
102
  */
103
- export interface NotificationHookSpecificOutput {
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
  *