v1.0.0
Changelog
This is v1.0.0 of CedarJS π π π π
It marks a stable version of Cedar that's suitable for everyone migrating from Redwood to Cedar. And everyone else too, of course.
There are no breaking changes between RedwoodJS v8.9.0 and Cedar v1.0.0.
Cedar is successfully used in production by several large companies, so there should be no worry for you to also do the migration. See https://github.com/cedarjs/cedar#migrating-from-redwoodjs-to-cedarjs for detailed migration instructions
The biggest thing to note is that Cedar v1 does require a very recent minor version of Node v20 (v20.19 or newer).
Compared to Redwood v8.9.0 the biggest feature is by far experimental support for ESM projects, letting you use all the latest ESM-only versions of other packages.
It's still not recommended for production use, but if you do feel adventurous you can switch over your existing apps simply by adding "type": "module" to package.json, web/package.json and api/package.json.
I do however encourage you to try it out on a new project by passing the hidden --esm flag to yarn create cedar-app.
Other than that Cedar has received a bunch of security updates for third party packages, and it has support for Cron scheduling of Background Jobs, see https://cedarjs.com/docs/background-jobs#recurring-jobs
The Cedar docs have also become more AI-friendly, with https://cedarjs.com/llms.txt and https://cedarjs.com/llms-full.txt. Plus, all pages now have a dropdown menu at the top where you can pass the page to ChatGPT and Claude, or just copy the markdown version of the page for use with your local AI dev tool of choice.
π Features
feat(sb): Prep for v8 upgrade (#516) by @Tobbe
Cedar is currently using Storybook 7. In Storybook 8 *.stories.mdx is no longer supported, so I'm switching to just plain *.mdx here to prepare for the v8 upgrade.
Also took the opportunity to do some Redwood -> Cedar rebranding
feat(storybook): Node 24 and ESM compatibility (#505) by @Tobbe
Getting rid of require() usage to prep for Node 24 and ESM
Was specifically seeing this error when running Storybook
[WebServer] SB_CORE-SERVER_0002 (CriticalPresetLoadError): Storybook failed to load the following preset: storybook-framework-cedarjs/preset.
[WebServer]
[WebServer] Please check whether your setup is correct, the Storybook dependencies (and their peer dependencies) are installed correctly and there are no package version clashes.
[WebServer]
[WebServer] If you believe this is a bug, please open an issue on Github.
[WebServer]
[WebServer] ReferenceError: require is not defined
[WebServer] at getAbsolutePath (file://./node_modules/storybook-framework-cedarjs/dist/preset.js:9:49)
[WebServer] at file://./node_modules/storybook-framework-cedarjs/dist/preset.js:11:12
[WebServer] at ModuleJobSync.runSync (node:internal/modules/esm/module_job:514:37)
[WebServer] at ModuleLoader.importSyncForRequire (node:internal/modules/esm/loader:449:47)
[WebServer] at loadESMFromCJS (node:internal/modules/cjs/loader:1577:24)
[WebServer] at Module._compile (node:internal/modules/cjs/loader:1742:5)
[WebServer] at node:internal/modules/cjs/loader:1893:10
[WebServer] at Object.newLoader (./node_modules/esbuild-register/dist/node.js:2262:9)
[WebServer] at extensions..js (./node_modules/esbuild-register/dist/node.js:4833:24)
[WebServer] at Module.load (node:internal/modules/cjs/loader:1480:32)
[WebServer] at loadPreset (./node_modules/@storybook/core-common/dist/index.js:15:82)
[WebServer]
[WebServer] WARN[WebServer] Broken build, fix the error above.
feat(yarn): Remove code that handles yarn v1 (#507) by @Tobbe
Cedar has never supported yarn v1. And neither has RW for a long time. So this PR is just cleaning up old legacy code
π οΈ Fixes
fix(cli): Fix spacing in node version check message (47f4f4c) by @Tobbe
>= v20.0.0 instead of >=v20.0.0
fix(cli): Remove cdr bin (#535) by @Tobbe
Standardize on only using yarn cedar by removing the cdr bin
fix(cca): yarn cedar dev (#528) by @Tobbe
Change from "yarn rw dev" to "yarn cedar dev" in the instructions printed to the terminal after running "yarn create cedar-app"
fix(cca): Redwood -> Cedar renaming (#531) by @Tobbe
Some more Redwood -> Cedar renaming ahead of the v1 launch
fix(docs): 'cedar' instead of 'cedarjs' as the bin name (#533) by @Tobbe
Align on advertising yarn cedar everywhere instead of yarn cedarjs.
Still a lot of yarn rw and yarn redwood to switch over
fix(cli): DEP0190 fix for updateCheck and telemetry (#509) by @Tobbe
Prep work for upgrading the version of Node that we use. With Node 24 they've gotten much louder about https://nodejs.org/api/deprecations.html#DEP0190
fix(cli): properly destroy generated files when running cedar destroy page (#513) by @rkmitra1
Fixes error when running cli destroy page function
ex: yarn cedarjs destroy page mypage
This pull request refactors how component destroy handlers are imported and updates the destroy page command logic and its tests to support asynchronous file operations.
Refactor and modularization:
- Changed dynamic import path in
createHandlerso that handler files are now expected in a subdirectory named after the component, correcting Terry
Async file handling:
- Updated the
tasksfunction inpageHandler.jsto await the result ofpageFiles, ensuring proper handling of asynchronous file generation when destroying page files.
Test updates for async file operations:
- Modified tests in
page.test.jsto await thefilesfunction, ensuring that tests correctly handle asynchronous file generation when verifying file destruction.
fix(vite): Improve error message during server startup (#519) by @Tobbe
This fixes a bug where the "loading" error message never was shown, instead the default generic one was always used.
Also updated the generic message to say Cedar instead of RW
fix(webhooks): ESM+CJS compatible webhook verifiers (#530) by @Tobbe
When using the webhook verifiers in a CJS project you'd get the following error: TypeError: import_common.verifierLookup[type] is not a function. This PR fixes that by eliminating default exports which is a known problem when doing dual ESM/CJS builds. See evanw/esbuild#2623
Fixes #529
fix(cedar): Chipping away at the RW -> Cedar rebranding (#510) by @Tobbe
Switching from Redwood to Cedar in more places, and fixes a broken link to instead point towards Cedar
fix(vite): Special handling for auth requests in proxy server during startup (#520) by @Tobbe
Fixes this error:
Error: Failed to execute 'fetch' on 'Window': Failed to read the 'headers' property from 'RequestInit': String contains non ISO-8859-1 code point.
That would be seen if the user had dbAuth setup and a graphql request was made while the api server was still starting up.
The reason was that the error message contains a utf-8 character, and the message was sent as the auth token to the auth provider, which tried to set it as a header value. And utf-8 characters aren't allowed as header values.
π Docs
docs(auth): Fix syntax in Netlify Identity docs (#534) by @Tobbe
Fix for this build error introduced in #532
6:03:22 AM: [success] [webpackbar] Client: Compiled with some errors in 26.85s
6:03:22 AM: [ERROR] Client bundle compiled with errors therefore further build is impossible.
6:03:22 AM: Error: MDX compilation failed for file "/opt/build/repo/docs/docs/auth/netlify.md"
6:03:22 AM: Cause: Expected a closing tag for `<name-of-your-app>` (22:175-22:193) before the end of `paragraph`
6:03:22 AM: Details:
6:03:22 AM: {
6:03:22 AM: "column": 1,
6:03:22 AM: "message": "Expected a closing tag for `<name-of-your-app>` (22:175-22:193) before the end of `paragraph`",
6:03:22 AM: "line": 22,
6:03:22 AM: "name": "22:1-23:88",
6:03:22 AM: "place": {
docs(newsletter): Add newsletter signup form (#537) by @Tobbe
This PR adds the form above to the main https://cedarjs.com website so that new visitors to the site can easily sign up to receive news of new Cedar releases etc
docs(auth): Update instructions for Netlify Identity (#532) by @thefonso
Updated how to find Netlify Identity on the Netlify site as it has been changed.
π¦ Dependencies
chore(deps): nx v22.0.2 (#503) by @Tobbe
Should be no user facing changes. But I'm jumping two major versions here, and it's related to how we build. So worth keeping an extra eye out.
chore(deps): bump cipher-base from 1.0.4 to 1.0.7 (#480) by @Tobbe
Bumps cipher-base from 1.0.4 to 1.0.7.
Changelog
Sourced from cipher-base's changelog.
v1.0.7 - 2025-09-24
Commits
v1.0.6 - 2024-11-26
Commits
- [Fix] io.js 3.0 - Node.js 5.3 typed array support
b7ddd2av1.0.5 - 2024-11-17
Commits
- [Tests] standard -> eslint, make test dir, etc
ae02fd6- [Tests] migrate from travis to GHA
66387d7- [meta] fix package.json indentation
5c02918- [Fix] return valid values on multi-byte-wide TypedArray input
8fd1364- [meta] add
auto-changelog88dc806- [meta] add
npmignoreandsafe-publish-latest7a137d7- Only apps should have lockfiles
42528f2- [Deps] update
inherits,safe-buffer0e7a2d9- [meta] add missing
engines.nodef2dc13e
Commits
0056718v1.0.7fd1e5ee[Refactor] useto-buffer08ba803[Dev Deps] update@ljharb/eslint-configf5249f9v1.0.6b7ddd2a[Fix] io.js 3.0 - Node.js 5.3 typed array supportf03cebfv1.0.588dc806[meta] addauto-changelog7a137d7[meta] addnpmignoreandsafe-publish-latest5c02918[meta] fix package.json indentation8fd1364[Fix] return valid values on multi-byte-wide TypedArray input- Additional commits viewable in compare view
Maintainer changes
This version was pushed to npm by ljharb, a new releaser for cipher-base since your current version.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the Security Alerts page.