@stackwright-pro/scaffold-hooks 1.0.0-alpha.5 → 1.0.0-alpha.6
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/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -39,11 +39,13 @@ var import_hooks_registry = require("@stackwright/hooks-registry");
|
|
|
39
39
|
|
|
40
40
|
// src/generated/workspace-versions.ts
|
|
41
41
|
var PRO_VERSIONS = {
|
|
42
|
-
"@stackwright-pro/auth": "0.
|
|
43
|
-
"@stackwright-pro/auth-nextjs": "0.
|
|
44
|
-
"@stackwright-pro/
|
|
45
|
-
"@stackwright-pro/
|
|
46
|
-
"@stackwright-pro/
|
|
42
|
+
"@stackwright-pro/auth": "0.2.0-alpha.1",
|
|
43
|
+
"@stackwright-pro/auth-nextjs": "0.2.0-alpha.1",
|
|
44
|
+
"@stackwright-pro/display-components": "0.2.0-alpha.2",
|
|
45
|
+
"@stackwright-pro/mcp": "0.2.0-alpha.17",
|
|
46
|
+
"@stackwright-pro/openapi": "0.3.0-alpha.2",
|
|
47
|
+
"@stackwright-pro/otters": "1.0.0-alpha.21",
|
|
48
|
+
"@stackwright-pro/pulse": "0.3.0-alpha.2"
|
|
47
49
|
};
|
|
48
50
|
var OSS_VERSIONS = {
|
|
49
51
|
"@stackwright/build-scripts": "^0.4.0",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/generated/workspace-versions.ts"],"sourcesContent":["/**\n * @stackwright-pro/scaffold-hooks\n *\n * Auto-registers Pro packages during Stackwright project scaffolding.\n * Uses @stackwright/hooks-registry singleton to survive module boundary crossings.\n */\n\nimport chalk from 'chalk';\nimport { registerScaffoldHook, type ScaffoldHookContext } from '@stackwright/hooks-registry';\nimport { PRO_VERSIONS, OSS_VERSIONS } from './generated/workspace-versions';\n\nconst PRO_DEV_DEPENDENCIES: Record<string, string> = {\n '@stoplight/prism-cli': '^5.14.2',\n};\n\n/**\n * Register all Pro scaffold hooks with the shared registry.\n *\n * Uses @stackwright/hooks-registry's globalThis-based singleton so hooks\n * survive module boundary crossings between Pro packages and the CLI.\n *\n * Call this BEFORE calling scaffold() to ensure hooks run in the correct context.\n *\n * @example\n * ```typescript\n * import { registerProScaffoldHooks } from '@stackwright-pro/scaffold-hooks';\n *\n * // Register hooks (they go to the shared global registry)\n * registerProScaffoldHooks();\n *\n * // Now when CLI calls scaffold(), it will see these hooks\n * ```\n */\nexport function registerProScaffoldHooks(): void {\n registerScaffoldHook({\n type: 'preInstall',\n name: 'pro-dependencies',\n priority: 10,\n critical: false,\n handler: async (ctx: ScaffoldHookContext) => {\n const packageJson = ctx.packageJson as Record<string, unknown>;\n const dependencies = (packageJson.dependencies as Record<string, string>) || {};\n const devDependencies = (packageJson.devDependencies as Record<string, string>) || {};\n const scripts = (packageJson.scripts as Record<string, string>) || {};\n\n // Fix workspace:* references from scaffold\n for (const [pkgName, pinnedVersion] of Object.entries(OSS_VERSIONS)) {\n if (dependencies[pkgName] === 'workspace:*') {\n dependencies[pkgName] = pinnedVersion;\n }\n if (devDependencies[pkgName] === 'workspace:*') {\n devDependencies[pkgName] = pinnedVersion;\n }\n }\n\n // Add Pro MCP packages\n dependencies['@stackwright/mcp'] = OSS_VERSIONS['@stackwright/mcp'];\n dependencies['@stackwright-pro/mcp'] = PRO_VERSIONS['@stackwright-pro/mcp'];\n\n // Add Pro dependencies\n Object.assign(dependencies, {\n '@stackwright-pro/mcp': PRO_VERSIONS['@stackwright-pro/mcp'],\n '@stackwright-pro/otters': PRO_VERSIONS['@stackwright-pro/otters'],\n '@stackwright-pro/openapi': PRO_VERSIONS['@stackwright-pro/openapi'],\n '@stackwright-pro/auth': PRO_VERSIONS['@stackwright-pro/auth'],\n '@stackwright-pro/auth-nextjs': PRO_VERSIONS['@stackwright-pro/auth-nextjs'],\n zod: '^3.23.0',\n });\n Object.assign(devDependencies, PRO_DEV_DEPENDENCIES);\n\n // Add role-based dev scripts\n Object.assign(scripts, {\n 'dev:admin': 'MOCK_USER=admin next dev',\n 'dev:analyst': 'MOCK_USER=analyst next dev',\n 'dev:viewer': 'MOCK_USER=viewer next dev',\n prebuild: 'node scripts/prebuild.js',\n predev: 'node scripts/prebuild.js',\n });\n\n packageJson.dependencies = dependencies;\n packageJson.devDependencies = devDependencies;\n packageJson.scripts = scripts;\n },\n });\n\n registerScaffoldHook({\n type: 'preInstall',\n name: 'pro-mcp-config',\n priority: 20,\n critical: false,\n handler: async (ctx) => {\n const codePuppyConfig = (ctx.codePuppyConfig || {}) as Record<string, unknown>;\n\n // Ensure structure exists\n codePuppyConfig.mcp_servers = codePuppyConfig.mcp_servers || {};\n\n // Add Pro MCP server\n (codePuppyConfig.mcp_servers as Record<string, unknown>)['stackwright-pro'] = {\n command: 'node',\n args: ['node_modules/@stackwright-pro/mcp/dist/server.js'],\n env: { NODE_ENV: 'development' },\n };\n\n // Set agents_path to include both OSS and Pro otters\n codePuppyConfig.agents_path = [\n 'node_modules/@stackwright/otters',\n 'node_modules/@stackwright-pro/otters',\n ];\n\n ctx.codePuppyConfig = codePuppyConfig;\n console.log(chalk.green('✅ Pro MCP server configured'));\n },\n });\n\n registerScaffoldHook({\n type: 'postInstall',\n name: 'verify-pro-installation',\n priority: 50,\n critical: false,\n handler: async () => {\n console.log(chalk.cyan('🦦🦦 Pro packages ready!'));\n },\n });\n\n console.log(chalk.bold.cyan('🦦🔗 @stackwright-pro/scaffold-hooks registered'));\n}\n\n/**\n * @deprecated Use registerProScaffoldHooks() instead. Kept for backward compatibility.\n */\nexport const createProScaffoldHooks = registerProScaffoldHooks;\n","// AUTO-GENERATED — do not edit manually.\n// Run `pnpm sync-versions` or `pnpm build` to regenerate.\n
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/generated/workspace-versions.ts"],"sourcesContent":["/**\n * @stackwright-pro/scaffold-hooks\n *\n * Auto-registers Pro packages during Stackwright project scaffolding.\n * Uses @stackwright/hooks-registry singleton to survive module boundary crossings.\n */\n\nimport chalk from 'chalk';\nimport { registerScaffoldHook, type ScaffoldHookContext } from '@stackwright/hooks-registry';\nimport { PRO_VERSIONS, OSS_VERSIONS } from './generated/workspace-versions';\n\nconst PRO_DEV_DEPENDENCIES: Record<string, string> = {\n '@stoplight/prism-cli': '^5.14.2',\n};\n\n/**\n * Register all Pro scaffold hooks with the shared registry.\n *\n * Uses @stackwright/hooks-registry's globalThis-based singleton so hooks\n * survive module boundary crossings between Pro packages and the CLI.\n *\n * Call this BEFORE calling scaffold() to ensure hooks run in the correct context.\n *\n * @example\n * ```typescript\n * import { registerProScaffoldHooks } from '@stackwright-pro/scaffold-hooks';\n *\n * // Register hooks (they go to the shared global registry)\n * registerProScaffoldHooks();\n *\n * // Now when CLI calls scaffold(), it will see these hooks\n * ```\n */\nexport function registerProScaffoldHooks(): void {\n registerScaffoldHook({\n type: 'preInstall',\n name: 'pro-dependencies',\n priority: 10,\n critical: false,\n handler: async (ctx: ScaffoldHookContext) => {\n const packageJson = ctx.packageJson as Record<string, unknown>;\n const dependencies = (packageJson.dependencies as Record<string, string>) || {};\n const devDependencies = (packageJson.devDependencies as Record<string, string>) || {};\n const scripts = (packageJson.scripts as Record<string, string>) || {};\n\n // Fix workspace:* references from scaffold\n for (const [pkgName, pinnedVersion] of Object.entries(OSS_VERSIONS)) {\n if (dependencies[pkgName] === 'workspace:*') {\n dependencies[pkgName] = pinnedVersion;\n }\n if (devDependencies[pkgName] === 'workspace:*') {\n devDependencies[pkgName] = pinnedVersion;\n }\n }\n\n // Add Pro MCP packages\n dependencies['@stackwright/mcp'] = OSS_VERSIONS['@stackwright/mcp'];\n dependencies['@stackwright-pro/mcp'] = PRO_VERSIONS['@stackwright-pro/mcp'];\n\n // Add Pro dependencies\n Object.assign(dependencies, {\n '@stackwright-pro/mcp': PRO_VERSIONS['@stackwright-pro/mcp'],\n '@stackwright-pro/otters': PRO_VERSIONS['@stackwright-pro/otters'],\n '@stackwright-pro/openapi': PRO_VERSIONS['@stackwright-pro/openapi'],\n '@stackwright-pro/auth': PRO_VERSIONS['@stackwright-pro/auth'],\n '@stackwright-pro/auth-nextjs': PRO_VERSIONS['@stackwright-pro/auth-nextjs'],\n zod: '^3.23.0',\n });\n Object.assign(devDependencies, PRO_DEV_DEPENDENCIES);\n\n // Add role-based dev scripts\n Object.assign(scripts, {\n 'dev:admin': 'MOCK_USER=admin next dev',\n 'dev:analyst': 'MOCK_USER=analyst next dev',\n 'dev:viewer': 'MOCK_USER=viewer next dev',\n prebuild: 'node scripts/prebuild.js',\n predev: 'node scripts/prebuild.js',\n });\n\n packageJson.dependencies = dependencies;\n packageJson.devDependencies = devDependencies;\n packageJson.scripts = scripts;\n },\n });\n\n registerScaffoldHook({\n type: 'preInstall',\n name: 'pro-mcp-config',\n priority: 20,\n critical: false,\n handler: async (ctx) => {\n const codePuppyConfig = (ctx.codePuppyConfig || {}) as Record<string, unknown>;\n\n // Ensure structure exists\n codePuppyConfig.mcp_servers = codePuppyConfig.mcp_servers || {};\n\n // Add Pro MCP server\n (codePuppyConfig.mcp_servers as Record<string, unknown>)['stackwright-pro'] = {\n command: 'node',\n args: ['node_modules/@stackwright-pro/mcp/dist/server.js'],\n env: { NODE_ENV: 'development' },\n };\n\n // Set agents_path to include both OSS and Pro otters\n codePuppyConfig.agents_path = [\n 'node_modules/@stackwright/otters',\n 'node_modules/@stackwright-pro/otters',\n ];\n\n ctx.codePuppyConfig = codePuppyConfig;\n console.log(chalk.green('✅ Pro MCP server configured'));\n },\n });\n\n registerScaffoldHook({\n type: 'postInstall',\n name: 'verify-pro-installation',\n priority: 50,\n critical: false,\n handler: async () => {\n console.log(chalk.cyan('🦦🦦 Pro packages ready!'));\n },\n });\n\n console.log(chalk.bold.cyan('🦦🔗 @stackwright-pro/scaffold-hooks registered'));\n}\n\n/**\n * @deprecated Use registerProScaffoldHooks() instead. Kept for backward compatibility.\n */\nexport const createProScaffoldHooks = registerProScaffoldHooks;\n","// AUTO-GENERATED — do not edit manually.\n// Run `pnpm sync-versions` or `pnpm build` to regenerate.\n//\n// PRO_VERSIONS: exact versions of @stackwright-pro/* packages in this workspace.\n// OSS_VERSIONS: minimum tested versions of @stackwright/* OSS packages (caret range).\n\n/**\n * Exact versions of every @stackwright-pro/* package currently in the workspace.\n * Used by launch-stackwright-pro and scaffold-hooks to pin deps in scaffolded projects.\n * Updated automatically on every build — never edit this file by hand.\n */\nexport const PRO_VERSIONS = {\n '@stackwright-pro/auth': '0.2.0-alpha.1',\n '@stackwright-pro/auth-nextjs': '0.2.0-alpha.1',\n '@stackwright-pro/display-components': '0.2.0-alpha.2',\n '@stackwright-pro/mcp': '0.2.0-alpha.17',\n '@stackwright-pro/openapi': '0.3.0-alpha.2',\n '@stackwright-pro/otters': '1.0.0-alpha.21',\n '@stackwright-pro/pulse': '0.3.0-alpha.2',\n} as const satisfies Record<string, string>;\n\n/**\n * Minimum tested versions of @stackwright/* OSS packages.\n * Caret ranges anchored to the last version resolved in pnpm-lock.yaml.\n * Updated automatically on every build.\n */\nexport const OSS_VERSIONS = {\n '@stackwright/build-scripts': '^0.4.0',\n '@stackwright/core': '^0.7.0',\n '@stackwright/icons': '^0.3.0',\n '@stackwright/mcp': '^0.2.0',\n '@stackwright/nextjs': '^0.3.1',\n '@stackwright/otters': '^0.2.0',\n '@stackwright/ui-shadcn': '^0.1.0',\n} as const satisfies Record<string, string>;\n"],"mappings":"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","names":["chalk"]}
|
package/dist/index.mjs
CHANGED
|
@@ -4,11 +4,13 @@ import { registerScaffoldHook } from "@stackwright/hooks-registry";
|
|
|
4
4
|
|
|
5
5
|
// src/generated/workspace-versions.ts
|
|
6
6
|
var PRO_VERSIONS = {
|
|
7
|
-
"@stackwright-pro/auth": "0.
|
|
8
|
-
"@stackwright-pro/auth-nextjs": "0.
|
|
9
|
-
"@stackwright-pro/
|
|
10
|
-
"@stackwright-pro/
|
|
11
|
-
"@stackwright-pro/
|
|
7
|
+
"@stackwright-pro/auth": "0.2.0-alpha.1",
|
|
8
|
+
"@stackwright-pro/auth-nextjs": "0.2.0-alpha.1",
|
|
9
|
+
"@stackwright-pro/display-components": "0.2.0-alpha.2",
|
|
10
|
+
"@stackwright-pro/mcp": "0.2.0-alpha.17",
|
|
11
|
+
"@stackwright-pro/openapi": "0.3.0-alpha.2",
|
|
12
|
+
"@stackwright-pro/otters": "1.0.0-alpha.21",
|
|
13
|
+
"@stackwright-pro/pulse": "0.3.0-alpha.2"
|
|
12
14
|
};
|
|
13
15
|
var OSS_VERSIONS = {
|
|
14
16
|
"@stackwright/build-scripts": "^0.4.0",
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/generated/workspace-versions.ts"],"sourcesContent":["/**\n * @stackwright-pro/scaffold-hooks\n *\n * Auto-registers Pro packages during Stackwright project scaffolding.\n * Uses @stackwright/hooks-registry singleton to survive module boundary crossings.\n */\n\nimport chalk from 'chalk';\nimport { registerScaffoldHook, type ScaffoldHookContext } from '@stackwright/hooks-registry';\nimport { PRO_VERSIONS, OSS_VERSIONS } from './generated/workspace-versions';\n\nconst PRO_DEV_DEPENDENCIES: Record<string, string> = {\n '@stoplight/prism-cli': '^5.14.2',\n};\n\n/**\n * Register all Pro scaffold hooks with the shared registry.\n *\n * Uses @stackwright/hooks-registry's globalThis-based singleton so hooks\n * survive module boundary crossings between Pro packages and the CLI.\n *\n * Call this BEFORE calling scaffold() to ensure hooks run in the correct context.\n *\n * @example\n * ```typescript\n * import { registerProScaffoldHooks } from '@stackwright-pro/scaffold-hooks';\n *\n * // Register hooks (they go to the shared global registry)\n * registerProScaffoldHooks();\n *\n * // Now when CLI calls scaffold(), it will see these hooks\n * ```\n */\nexport function registerProScaffoldHooks(): void {\n registerScaffoldHook({\n type: 'preInstall',\n name: 'pro-dependencies',\n priority: 10,\n critical: false,\n handler: async (ctx: ScaffoldHookContext) => {\n const packageJson = ctx.packageJson as Record<string, unknown>;\n const dependencies = (packageJson.dependencies as Record<string, string>) || {};\n const devDependencies = (packageJson.devDependencies as Record<string, string>) || {};\n const scripts = (packageJson.scripts as Record<string, string>) || {};\n\n // Fix workspace:* references from scaffold\n for (const [pkgName, pinnedVersion] of Object.entries(OSS_VERSIONS)) {\n if (dependencies[pkgName] === 'workspace:*') {\n dependencies[pkgName] = pinnedVersion;\n }\n if (devDependencies[pkgName] === 'workspace:*') {\n devDependencies[pkgName] = pinnedVersion;\n }\n }\n\n // Add Pro MCP packages\n dependencies['@stackwright/mcp'] = OSS_VERSIONS['@stackwright/mcp'];\n dependencies['@stackwright-pro/mcp'] = PRO_VERSIONS['@stackwright-pro/mcp'];\n\n // Add Pro dependencies\n Object.assign(dependencies, {\n '@stackwright-pro/mcp': PRO_VERSIONS['@stackwright-pro/mcp'],\n '@stackwright-pro/otters': PRO_VERSIONS['@stackwright-pro/otters'],\n '@stackwright-pro/openapi': PRO_VERSIONS['@stackwright-pro/openapi'],\n '@stackwright-pro/auth': PRO_VERSIONS['@stackwright-pro/auth'],\n '@stackwright-pro/auth-nextjs': PRO_VERSIONS['@stackwright-pro/auth-nextjs'],\n zod: '^3.23.0',\n });\n Object.assign(devDependencies, PRO_DEV_DEPENDENCIES);\n\n // Add role-based dev scripts\n Object.assign(scripts, {\n 'dev:admin': 'MOCK_USER=admin next dev',\n 'dev:analyst': 'MOCK_USER=analyst next dev',\n 'dev:viewer': 'MOCK_USER=viewer next dev',\n prebuild: 'node scripts/prebuild.js',\n predev: 'node scripts/prebuild.js',\n });\n\n packageJson.dependencies = dependencies;\n packageJson.devDependencies = devDependencies;\n packageJson.scripts = scripts;\n },\n });\n\n registerScaffoldHook({\n type: 'preInstall',\n name: 'pro-mcp-config',\n priority: 20,\n critical: false,\n handler: async (ctx) => {\n const codePuppyConfig = (ctx.codePuppyConfig || {}) as Record<string, unknown>;\n\n // Ensure structure exists\n codePuppyConfig.mcp_servers = codePuppyConfig.mcp_servers || {};\n\n // Add Pro MCP server\n (codePuppyConfig.mcp_servers as Record<string, unknown>)['stackwright-pro'] = {\n command: 'node',\n args: ['node_modules/@stackwright-pro/mcp/dist/server.js'],\n env: { NODE_ENV: 'development' },\n };\n\n // Set agents_path to include both OSS and Pro otters\n codePuppyConfig.agents_path = [\n 'node_modules/@stackwright/otters',\n 'node_modules/@stackwright-pro/otters',\n ];\n\n ctx.codePuppyConfig = codePuppyConfig;\n console.log(chalk.green('✅ Pro MCP server configured'));\n },\n });\n\n registerScaffoldHook({\n type: 'postInstall',\n name: 'verify-pro-installation',\n priority: 50,\n critical: false,\n handler: async () => {\n console.log(chalk.cyan('🦦🦦 Pro packages ready!'));\n },\n });\n\n console.log(chalk.bold.cyan('🦦🔗 @stackwright-pro/scaffold-hooks registered'));\n}\n\n/**\n * @deprecated Use registerProScaffoldHooks() instead. Kept for backward compatibility.\n */\nexport const createProScaffoldHooks = registerProScaffoldHooks;\n","// AUTO-GENERATED — do not edit manually.\n// Run `pnpm sync-versions` or `pnpm build` to regenerate.\n
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/generated/workspace-versions.ts"],"sourcesContent":["/**\n * @stackwright-pro/scaffold-hooks\n *\n * Auto-registers Pro packages during Stackwright project scaffolding.\n * Uses @stackwright/hooks-registry singleton to survive module boundary crossings.\n */\n\nimport chalk from 'chalk';\nimport { registerScaffoldHook, type ScaffoldHookContext } from '@stackwright/hooks-registry';\nimport { PRO_VERSIONS, OSS_VERSIONS } from './generated/workspace-versions';\n\nconst PRO_DEV_DEPENDENCIES: Record<string, string> = {\n '@stoplight/prism-cli': '^5.14.2',\n};\n\n/**\n * Register all Pro scaffold hooks with the shared registry.\n *\n * Uses @stackwright/hooks-registry's globalThis-based singleton so hooks\n * survive module boundary crossings between Pro packages and the CLI.\n *\n * Call this BEFORE calling scaffold() to ensure hooks run in the correct context.\n *\n * @example\n * ```typescript\n * import { registerProScaffoldHooks } from '@stackwright-pro/scaffold-hooks';\n *\n * // Register hooks (they go to the shared global registry)\n * registerProScaffoldHooks();\n *\n * // Now when CLI calls scaffold(), it will see these hooks\n * ```\n */\nexport function registerProScaffoldHooks(): void {\n registerScaffoldHook({\n type: 'preInstall',\n name: 'pro-dependencies',\n priority: 10,\n critical: false,\n handler: async (ctx: ScaffoldHookContext) => {\n const packageJson = ctx.packageJson as Record<string, unknown>;\n const dependencies = (packageJson.dependencies as Record<string, string>) || {};\n const devDependencies = (packageJson.devDependencies as Record<string, string>) || {};\n const scripts = (packageJson.scripts as Record<string, string>) || {};\n\n // Fix workspace:* references from scaffold\n for (const [pkgName, pinnedVersion] of Object.entries(OSS_VERSIONS)) {\n if (dependencies[pkgName] === 'workspace:*') {\n dependencies[pkgName] = pinnedVersion;\n }\n if (devDependencies[pkgName] === 'workspace:*') {\n devDependencies[pkgName] = pinnedVersion;\n }\n }\n\n // Add Pro MCP packages\n dependencies['@stackwright/mcp'] = OSS_VERSIONS['@stackwright/mcp'];\n dependencies['@stackwright-pro/mcp'] = PRO_VERSIONS['@stackwright-pro/mcp'];\n\n // Add Pro dependencies\n Object.assign(dependencies, {\n '@stackwright-pro/mcp': PRO_VERSIONS['@stackwright-pro/mcp'],\n '@stackwright-pro/otters': PRO_VERSIONS['@stackwright-pro/otters'],\n '@stackwright-pro/openapi': PRO_VERSIONS['@stackwright-pro/openapi'],\n '@stackwright-pro/auth': PRO_VERSIONS['@stackwright-pro/auth'],\n '@stackwright-pro/auth-nextjs': PRO_VERSIONS['@stackwright-pro/auth-nextjs'],\n zod: '^3.23.0',\n });\n Object.assign(devDependencies, PRO_DEV_DEPENDENCIES);\n\n // Add role-based dev scripts\n Object.assign(scripts, {\n 'dev:admin': 'MOCK_USER=admin next dev',\n 'dev:analyst': 'MOCK_USER=analyst next dev',\n 'dev:viewer': 'MOCK_USER=viewer next dev',\n prebuild: 'node scripts/prebuild.js',\n predev: 'node scripts/prebuild.js',\n });\n\n packageJson.dependencies = dependencies;\n packageJson.devDependencies = devDependencies;\n packageJson.scripts = scripts;\n },\n });\n\n registerScaffoldHook({\n type: 'preInstall',\n name: 'pro-mcp-config',\n priority: 20,\n critical: false,\n handler: async (ctx) => {\n const codePuppyConfig = (ctx.codePuppyConfig || {}) as Record<string, unknown>;\n\n // Ensure structure exists\n codePuppyConfig.mcp_servers = codePuppyConfig.mcp_servers || {};\n\n // Add Pro MCP server\n (codePuppyConfig.mcp_servers as Record<string, unknown>)['stackwright-pro'] = {\n command: 'node',\n args: ['node_modules/@stackwright-pro/mcp/dist/server.js'],\n env: { NODE_ENV: 'development' },\n };\n\n // Set agents_path to include both OSS and Pro otters\n codePuppyConfig.agents_path = [\n 'node_modules/@stackwright/otters',\n 'node_modules/@stackwright-pro/otters',\n ];\n\n ctx.codePuppyConfig = codePuppyConfig;\n console.log(chalk.green('✅ Pro MCP server configured'));\n },\n });\n\n registerScaffoldHook({\n type: 'postInstall',\n name: 'verify-pro-installation',\n priority: 50,\n critical: false,\n handler: async () => {\n console.log(chalk.cyan('🦦🦦 Pro packages ready!'));\n },\n });\n\n console.log(chalk.bold.cyan('🦦🔗 @stackwright-pro/scaffold-hooks registered'));\n}\n\n/**\n * @deprecated Use registerProScaffoldHooks() instead. Kept for backward compatibility.\n */\nexport const createProScaffoldHooks = registerProScaffoldHooks;\n","// AUTO-GENERATED — do not edit manually.\n// Run `pnpm sync-versions` or `pnpm build` to regenerate.\n//\n// PRO_VERSIONS: exact versions of @stackwright-pro/* packages in this workspace.\n// OSS_VERSIONS: minimum tested versions of @stackwright/* OSS packages (caret range).\n\n/**\n * Exact versions of every @stackwright-pro/* package currently in the workspace.\n * Used by launch-stackwright-pro and scaffold-hooks to pin deps in scaffolded projects.\n * Updated automatically on every build — never edit this file by hand.\n */\nexport const PRO_VERSIONS = {\n '@stackwright-pro/auth': '0.2.0-alpha.1',\n '@stackwright-pro/auth-nextjs': '0.2.0-alpha.1',\n '@stackwright-pro/display-components': '0.2.0-alpha.2',\n '@stackwright-pro/mcp': '0.2.0-alpha.17',\n '@stackwright-pro/openapi': '0.3.0-alpha.2',\n '@stackwright-pro/otters': '1.0.0-alpha.21',\n '@stackwright-pro/pulse': '0.3.0-alpha.2',\n} as const satisfies Record<string, string>;\n\n/**\n * Minimum tested versions of @stackwright/* OSS packages.\n * Caret ranges anchored to the last version resolved in pnpm-lock.yaml.\n * Updated automatically on every build.\n */\nexport const OSS_VERSIONS = {\n '@stackwright/build-scripts': '^0.4.0',\n '@stackwright/core': '^0.7.0',\n '@stackwright/icons': '^0.3.0',\n '@stackwright/mcp': '^0.2.0',\n '@stackwright/nextjs': '^0.3.1',\n '@stackwright/otters': '^0.2.0',\n '@stackwright/ui-shadcn': '^0.1.0',\n} as const satisfies Record<string, string>;\n"],"mappings":";AAOA,OAAO,WAAW;AAClB,SAAS,4BAAsD;;;ACGxD,IAAM,eAAe;AAAA,EAC1B,yBAAyB;AAAA,EACzB,gCAAgC;AAAA,EAChC,uCAAuC;AAAA,EACvC,wBAAwB;AAAA,EACxB,4BAA4B;AAAA,EAC5B,2BAA2B;AAAA,EAC3B,0BAA0B;AAC5B;AAOO,IAAM,eAAe;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,0BAA0B;AAC5B;;;ADvBA,IAAM,uBAA+C;AAAA,EACnD,wBAAwB;AAC1B;AAoBO,SAAS,2BAAiC;AAC/C,uBAAqB;AAAA,IACnB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,SAAS,OAAO,QAA6B;AAC3C,YAAM,cAAc,IAAI;AACxB,YAAM,eAAgB,YAAY,gBAA2C,CAAC;AAC9E,YAAM,kBAAmB,YAAY,mBAA8C,CAAC;AACpF,YAAM,UAAW,YAAY,WAAsC,CAAC;AAGpE,iBAAW,CAAC,SAAS,aAAa,KAAK,OAAO,QAAQ,YAAY,GAAG;AACnE,YAAI,aAAa,OAAO,MAAM,eAAe;AAC3C,uBAAa,OAAO,IAAI;AAAA,QAC1B;AACA,YAAI,gBAAgB,OAAO,MAAM,eAAe;AAC9C,0BAAgB,OAAO,IAAI;AAAA,QAC7B;AAAA,MACF;AAGA,mBAAa,kBAAkB,IAAI,aAAa,kBAAkB;AAClE,mBAAa,sBAAsB,IAAI,aAAa,sBAAsB;AAG1E,aAAO,OAAO,cAAc;AAAA,QAC1B,wBAAwB,aAAa,sBAAsB;AAAA,QAC3D,2BAA2B,aAAa,yBAAyB;AAAA,QACjE,4BAA4B,aAAa,0BAA0B;AAAA,QACnE,yBAAyB,aAAa,uBAAuB;AAAA,QAC7D,gCAAgC,aAAa,8BAA8B;AAAA,QAC3E,KAAK;AAAA,MACP,CAAC;AACD,aAAO,OAAO,iBAAiB,oBAAoB;AAGnD,aAAO,OAAO,SAAS;AAAA,QACrB,aAAa;AAAA,QACb,eAAe;AAAA,QACf,cAAc;AAAA,QACd,UAAU;AAAA,QACV,QAAQ;AAAA,MACV,CAAC;AAED,kBAAY,eAAe;AAC3B,kBAAY,kBAAkB;AAC9B,kBAAY,UAAU;AAAA,IACxB;AAAA,EACF,CAAC;AAED,uBAAqB;AAAA,IACnB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,SAAS,OAAO,QAAQ;AACtB,YAAM,kBAAmB,IAAI,mBAAmB,CAAC;AAGjD,sBAAgB,cAAc,gBAAgB,eAAe,CAAC;AAG9D,MAAC,gBAAgB,YAAwC,iBAAiB,IAAI;AAAA,QAC5E,SAAS;AAAA,QACT,MAAM,CAAC,kDAAkD;AAAA,QACzD,KAAK,EAAE,UAAU,cAAc;AAAA,MACjC;AAGA,sBAAgB,cAAc;AAAA,QAC5B;AAAA,QACA;AAAA,MACF;AAEA,UAAI,kBAAkB;AACtB,cAAQ,IAAI,MAAM,MAAM,kCAA6B,CAAC;AAAA,IACxD;AAAA,EACF,CAAC;AAED,uBAAqB;AAAA,IACnB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,SAAS,YAAY;AACnB,cAAQ,IAAI,MAAM,KAAK,wCAA0B,CAAC;AAAA,IACpD;AAAA,EACF,CAAC;AAED,UAAQ,IAAI,MAAM,KAAK,KAAK,+DAAiD,CAAC;AAChF;AAKO,IAAM,yBAAyB;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackwright-pro/scaffold-hooks",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.6",
|
|
4
4
|
"description": "Scaffold hooks for Stackwright Pro - auto-registers Pro packages during project scaffolding",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
"tsup": "^8.0.0",
|
|
27
27
|
"typescript": "^5.3.0",
|
|
28
28
|
"vitest": "^4.0.18",
|
|
29
|
-
"@stackwright/hooks-registry": "0.1.0-alpha.
|
|
29
|
+
"@stackwright/hooks-registry": "0.1.0-alpha.3"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"@stackwright/cli": "^0.7.0",
|
|
33
|
-
"@stackwright/hooks-registry": "^0.1.0-alpha.
|
|
33
|
+
"@stackwright/hooks-registry": "^0.1.0-alpha.3"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"build": "node ../../scripts/sync-versions.mjs && tsup",
|