next branch for v8#1308
Draft
jpina1-godaddy wants to merge 32 commits into
Draft
Conversation
🦋 Changeset detectedLatest commit: fc2c954 The changes in this PR will be included in the next version bump. This PR includes changesets to release 5 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Remove preset packages from monorepo - Delete gasket-preset-api package - Delete gasket-preset-nextjs package Part of moving fully to templates instead of presets * Remove preset flags and logic from CLI - Remove --presets and --preset-path flags - Delete load-preset, preset-config-hooks, preset-prompt-hooks actions - Update create.js to only handle template-based creation - Remove preset-related properties from create context - Simplify validation to only require template options * test cleanup * documentation updates * plugin doc updates * cleanup * remove more references * scripts and generate docs index * lock file * fix: create create-context * remove more references * remove more references * remove more references * fix tests * remove presets array * changeset
…e hooks (#1316) * remove create only plugins * cleanup * update test * update create * update test * changeset * refactor: remove create hooks from all plugins - Remove create.js, prompt.js, and post-create.js hook implementations from all plugins - Delete generator folders from plugins (except @gasket/plugin-docusaurus which uses it at runtime) - Update plugin index.js files to remove hook references - Clean up package.json files to remove generator from files array - Remove glob dependency from @gasket/plugin-express (no longer needed) - Remove obsolete exports (./prompts) from plugin-nextjs and plugin-typescript - Update authoring-plugins.md examples to use middleware hook instead of create hook - Delete gasket-plugin-typescript/EXAMPLES.md (only documented create hooks) Note: create-gasket-app lifecycle system remains fully intact and will continue to fire prompt, create, and postCreate events for any plugins/templates that implement these hooks. * refactor: remove obsolete ./prompts export from swagger plugin * chore: update pnpm-lock.yaml after removing dependencies * test: remove tests for deleted create/prompt/postCreate hooks - Delete test files for removed hook implementations - Update index test expectations to remove create/prompt/postCreate from expected hooks lists - All plugin tests now passing * fix: remove remaining create/prompt hooks from plugins - Remove create hooks from webpack, winston, and logger plugins - Remove create/prompt from redux expected hooks - Remove create from fastify, express, and analyze expected hooks - Remove create hook tests from webpack and winston - Fix unused variable lint errors in webpack plugin * fix: remove unused dependencies import from winston plugin * test: remove create and prompt test files from redux plugin * refactor: remove gasket-plugin-typescript This was a create-only plugin that had no runtime functionality. With the removal of create hooks, this plugin now has empty hooks and serves no purpose. - Deleted entire packages/gasket-plugin-typescript package - Removed references from gasket-typescript-tests - Removed references from generate-docs-index script - Updated pnpm-lock.yaml * changeset * refactor: remove unused dependencies from data plugin - Remove lodash.merge (never imported or used - uses JSON.parse/stringify instead) - Remove @gasket/data (only added to new apps via deleted create hook, not used by plugin itself) * refactor: remove unused dependencies from docusaurus plugin Removed 4 dependencies that were only added to new apps via the deleted create hook: - ajv (never imported or used by the plugin) - search-insights (never imported or used by the plugin) - react (never imported or used by the plugin) - react-dom (never imported or used by the plugin) Kept dependencies that are actually used: - @docusaurus/core (used at runtime in docs-view.js) - @docusaurus/preset-classic (used at runtime in docs-view.js) - typescript (needed for type checking) * refactor: remove unused dotenv dependency from elastic-apm plugin - dotenv was only added to new apps via the deleted create hook - The plugin itself never imports or uses dotenv - elastic-apm-node remains as a devDependency (used at runtime via dynamic import) * refactor: remove unused dependencies from express plugin Removed 2 dependencies that were never imported or used by the plugin: - compression (only mentioned in metadata/docs, never imported) - diagnostics (not used anywhere) Kept dependencies that are actually used at runtime: - cookie-parser (used in lib/utils.js) - http2-express (used in lib/utils.js) - express (kept as peerDependency and devDependency) * refactor: remove unused dependencies from intl plugin Removed 4 devDependencies that were only added to new React apps via the deleted create hook: - @gasket/react-intl (only added to new React apps) - react-intl (only added to new React apps) - react (not used by the plugin) - webpack (not used by the plugin) Kept dependencies that are actually used: - @gasket/intl (provides TypeScript type definitions used in index.d.ts) The plugin generates code that imports @gasket/intl for consuming apps, but doesn't import it at runtime itself. * refactor: remove unused dependencies from nextjs plugin Removed 7 devDependencies that were only added to new apps via the deleted create hook: - @gasket/assets (only added to new apps) - @gasket/nextjs (only added to new apps) - react (not used by plugin, already in peerDependencies) - react-dom (not used by plugin, already in peerDependencies) - nodemon (only added to new apps) - lodash.merge (not used anywhere) - @types/react (not used for type definitions) Kept dependencies that are actually used: - next (provides TypeScript type definitions: NextConfig, NextServer) - @babel/preset-react (used in babel config in package.json) - webpack (provides TypeScript types for JSDoc annotations in webpack-config.js) Note: @types/webpack was removed because webpack itself provides the types.
* @gasket/assets * no-undefined warn for tests * lockfile * docs * Remove @gasket/cjs * create-gasket-app * @gasket/core * @gasket/data * @gasket/intl * @gasket/nextjs * @gasket/plugin-analyze * @gasket/plugin-command * @gasket/plugin-data * @gasket/plugin-docs * @gasket/plugin-docs test * @gasket/plugin-docs-graphs * @gasket/plugin-docusaurus * @gasket/plugin-dynamic-plugins * @gasket/plugin-elastic-apm * @gasket/plugin-express * @gasket/plugin-fastify * @gasket/plugin-happyfeet * @gasket/plugin-https * @gasket/plugin-https-proxy * @gasket/plugin-intl * @gasket/plugin-logger * @gasket/plugin-manifest * @gasket/plugin-metadata * @gasket/plugin-middleware * @gasket/plugin-morgan * @gasket/plugin-nextjs * @gasket/plugin-service-worker * @gasket/plugin-swagger * @gasket/plugin-vitest * @gasket/plugin-webpack * @gasket/plugin-winston * @gasket/plugin-workbox * @gasket/react-intl * @gasket/request * @gasket/typescript-tests * @gasket/utils * generate-docs-index * Remove git plugin due to issues * Fix tests * changeset * syncpack * Remove @gasket/plugin-manifest * Remove @gasket/plugin-redux * Remove @gasket/plugin-service-worker * Remove @gasket/plugin-workbox * Remove @gasket/redux * Remove redux * Remove references to deleted packages * lockfile * changeset * Missing dep
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* React 19 upgrade * changeset * bump react to 19.2.4 * regen lockfiles
* feat: upgrade Next.js to 16.1.6 and React to 19.2.4 - Updated Next.js from 15.5.9 to 16.1.6 across all packages and templates - Updated React peer dependencies to support React 19 - Added webpack: true to Next.js app configuration (required for Next.js 16) - Added --webpack flag to build and dev scripts in all Next.js templates - Updated TypeScript config: jsx from preserve to react-jsx - Added .next/dev/types to TypeScript includes - Added nextRouting: false to intl config in templates - Updated next-env.d.ts to use import statement syntax - Added next-env.d.ts to eslintIgnore in all templates - Added locale fallback in _app.tsx files - Updated all test expectations for Next.js 16 compatibility - Regenerated all lock files with Next.js 16 dependencies - Added documentation for Next.js 16 webpack bundler requirement - Updated eslint.config.js to ignore next-env.d.ts files Co-authored-by: Cursor <cursoragent@cursor.com> * chore: add --legacy-peer-deps to template validation scripts Temporary workaround for peer dependency conflicts until Next.js 16 packages are published. Co-authored-by: Cursor <cursoragent@cursor.com> * changeset --------- Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* chore: added v4 and v5 adapters * chore: update other plugins * Update pnpm-lock.yaml for Fastify v5 peer dependency support Regenerated lockfile to sync with the updated fastify peer dependency range (^4.29.1 || ^5.0.0) in @gasket/plugin-nextjs package.json * Fix syncpack violations for Fastify v5 support - Update fastify devDependency to ^5.0.0 in plugin-middleware and typescript-tests - Fix package.json formatting in plugin-nextjs - Regenerate pnpm-lock.yaml * Fix Fastify v4 adapter test compatibility with v5 Skip v4 adapter instance creation test when Fastify v5 is installed, as v5 has stricter logger validation that rejects v4-style configuration. The adapter still works correctly with real v4 installations - this only affects testing with v5 devDependency. * Mock Fastify in adapter tests for version-independent testing Instead of skipping the v4 adapter test when v5 is installed, use mocks to test both adapters' behavior regardless of installed Fastify version. This approach: - Tests the actual adapter logic (what options are passed to Fastify) - Works with any Fastify version installed as devDependency - Verifies v4 uses 'logger' and v5 uses 'loggerInstance' - Confirms v5 nests useSemicolonDelimiter under routerOptions * remove registry flag * regen package lock template * update test * lint * types; changeset * @fastify/express devDep in middleware plugin * changeset * Remove @gasket/cjs dependency and regenerate lockfile This removes the @gasket/cjs dependency which doesn't exist in the OS repo and regenerates the lockfile to reflect the dependency changes from PR 1318. Co-authored-by: Cursor <cursoragent@cursor.com> * deps * deps * Remove express dependency from swagger plugin Express is not directly used by the plugin - only swagger-ui-express is needed. Also marked Fastify peer dependencies as optional since they're only required for Fastify users. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: regenerate package-lock for Fastify 5 compatibility after next merge Resolved package-lock.json sync issue where the lock file had Fastify 4.x dependencies but package.json specifies Fastify ^5.0.0. This was caused by accepting the next branch version during merge conflict resolution. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: regenerate package-lock with public npm registry Previous lock file contained references to GoDaddy's internal Artifactory registry which caused CI authentication failures (E401). Regenerated using public registry.npmjs.org to ensure templates work in public CI environments. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Michael Mason <mmason2@godaddy.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
#1355) * feat: remove @gasket/plugin-middleware and migrate to express/fastify hooks - Delete @gasket/plugin-middleware package entirely - Migrate @gasket/plugin-morgan from middleware hook to express and fastify lifecycle hooks using native Fastify syntax - Remove middleware lifecycle metadata and after:middleware ordering from express and fastify plugins - Remove compression, trustProxy, middlewareInclusionRegex, excludedRoutesRegex config types and docs - Update README, docs, and examples across the repo to reflect the removal - Clean up stale test mocks and dead link definitions Co-authored-by: Cursor <cursoragent@cursor.com> * revert: restore upgrade-to-7.md to original (immutable historical doc) Co-authored-by: Cursor <cursoragent@cursor.com> * fix: replace remaining middleware lifecycle references with express hook - Update parent metadata from 'middleware' to 'express' in gasket-plugin-intl and gasket-plugin-elastic-apm - Update EXAMPLES.md files across gasket-core, gasket-plugin-nextjs, gasket-plugin-intl, gasket-plugin-elastic-apm, gasket-plugin-data, and gasket-plugin-webpack to use express lifecycle instead of middleware hook Co-authored-by: Cursor <cursoragent@cursor.com> * update * fix: replace app.use() with native Fastify setErrorHandler for errorMiddleware app.use() on Fastify requires @fastify/express or @fastify/middie which was previously provided by the removed middleware plugin. Use setErrorHandler with request.raw/reply.raw to bridge Express-style 4-arg error handlers natively. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: chain errorMiddleware handlers via single setErrorHandler in fastify Previously each handler would override the last via repeated setErrorHandler calls. Now all handlers are chained through a single setErrorHandler using request.raw/reply.raw to bridge the Express 4-arg error signature natively. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: update fastify errorMiddleware docs, types, and inline comment - Fix ErrorHandler type: replace FastifyRequest/FastifyReply with IncomingMessage/ServerResponse to match what request.raw/reply.raw actually provides - Remove unused FastifyRequest and FastifyReply imports - Update errorMiddleware README section to describe setErrorHandler chaining approach - Remove stale @returns JSDoc from fastify hook example - Add inline comment explaining the single setErrorHandler chaining pattern Co-authored-by: Cursor <cursoragent@cursor.com> * docs: simplify errorMiddleware description in fastify README Co-authored-by: Cursor <cursoragent@cursor.com> * changeset * fix: ensure morgan express middleware runs before route handlers via timing Add timing: { first: true } to the express hook in @gasket/plugin-morgan so Morgan middleware is always registered before route handlers regardless of plugin order in gasket.ts. In Express, app.use() and route handlers share the same stack and are processed in registration order, so without this fix Morgan would not intercept requests if pluginMorgan appeared after route plugins. Update tests to reflect the new { timing, handler } hook shape. Co-authored-by: Cursor <cursoragent@cursor.com> * update docs --------- Co-authored-by: Cursor <cursoragent@cursor.com>
* Add update-scoped script * Initial copy of template manager * Tune expect files * Add validate-structure to ci * Fix update deps * Remove unecessary root scripts * lockfile and workspace * docs * ignore template-manager from changesets * syncpack, changeset * README * Tune env pass * Fix lint errors * Copilot feedback * Add config option to not erro on extranous peer deps * lockfiles, release workflow * Throttle publish workflow * Version Packages (next) (#1365) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * lockfile * lint * remove retries from ci install --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: remove legacy-peer-deps fallback from nextjs templates - Set retryWithLegacyPeerDeps to false in template-manager config so npm install/ci never silently retries with --legacy-peer-deps - Upgrade eslint-config-next from ^13.2.1 to ^15.5.12 and eslint-plugin-react-hooks from ^4.6.0 to ^5.0.0 in all three nextjs templates (app, pages, express) to resolve peer dependency conflicts with React 19 - Add overrides.eslint-plugin-react-hooks to deduplicate the plugin and prevent ESLint duplicate-plugin errors - Regenerate package-lock.json for all three templates without flags - Improve error messages in regen.js (include command and stderr) and npm-ci.js (rethrow original error) for easier debugging Made-with: Cursor * changeset Made-with: Cursor * fix: regenerate package-lock.json for nextjs templates Regenerated stale lock files for gasket-template-nextjs-app, gasket-template-nextjs-express, and gasket-template-nextjs-pages so that npm ci can succeed in CI. Made-with: Cursor
Drop references to @gasket/plugin-middleware and generate-docs-index from queued changesets so changeset versioning can process the next release branch cleanly. Made-with: Cursor
* remove TSX from templates * regen lockfiles * fix tests, docs & script watchers * remove comments * Remove next-env.d.ts from tracking * Remove next-env.d.ts from tracking * Set node engine version * Use preserveWatchOutput in tsconfig * Align nextjs local scripts * changeset * Regen lockfiles * Tune tsconfig(s) * Remove tsconfig.server.json files * Tune npm scripts * Relative imports to Gasket files in NextJS app code * Update tests * Tune template manager file validation * docs * Fix tests * Opt for --watch flag over --watch-path where possible * Remove console
Migrate pnpm configuration for v11 compatibility: - Move workspace settings from .npmrc to pnpm-workspace.yaml - Move overrides from package.json#pnpm to pnpm-workspace.yaml - Add allowBuilds for native deps (esbuild, sharp, storage-engine) - Set minimumReleaseAge to 0 for canary/next publish compatibility - Bump packageManager to pnpm@11.5.2 - Fix vitest/no-unneeded-async-expect-function lint errors
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* regen lockfiles * changeset
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is for review only - please do not merge!
This sets up the
nextbranch for v8 development. Please review the configuration changes:Changes Made:
nextbranch created frommainnextdist tagnextbranchnext