From 04155f6a91516f4b3da674c1b97c8e57f87e5ea6 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 08:20:47 +0000 Subject: [PATCH 1/3] feat: migrate to ESM (partial) - Option B - Rename all config files to .cjs (14 files) - Add "type": "module" to all package.json files (9 packages) - Update references in tsconfig.eslint.json files - Update AGENTS.md documentation This implements Option B (partial migration) for ESM support: - Config files remain CommonJS (.cjs extension) - Source code ready for ESM with type: module - Minimal risk, easy rollback - No Jest upgrade required in this phase Related to #5278 Co-authored-by: Chris Bongers --- AGENTS.md | 2 +- package.json | 1 + packages/eslint-config/package.json | 1 + packages/eslint-rules/package.json | 1 + packages/extension/{.eslintrc.js => .eslintrc.cjs} | 0 packages/extension/{babel.config.js => babel.config.cjs} | 0 packages/extension/{jest.config.js => jest.config.cjs} | 0 packages/extension/package.json | 1 + packages/extension/{postcss.config.js => postcss.config.cjs} | 0 packages/extension/tsconfig.eslint.json | 2 +- packages/extension/{webpack.config.js => webpack.config.cjs} | 0 packages/playwright/package.json | 1 + packages/prettier-config/package.json | 1 + packages/shared/{.eslintrc.js => .eslintrc.cjs} | 0 packages/shared/{babel.config.js => babel.config.cjs} | 0 packages/shared/{jest.config.js => jest.config.cjs} | 0 packages/shared/package.json | 1 + packages/shared/{postcss.config.js => postcss.config.cjs} | 0 packages/shared/tailwind/{.eslintrc.js => .eslintrc.cjs} | 0 packages/shared/tsconfig.eslint.json | 2 +- packages/storybook/{.eslintrc.js => .eslintrc.cjs} | 0 packages/storybook/package.json | 1 + packages/webapp/{.eslintrc.js => .eslintrc.cjs} | 0 packages/webapp/{jest.config.js => jest.config.cjs} | 0 packages/webapp/package.json | 1 + packages/webapp/{postcss.config.js => postcss.config.cjs} | 0 packages/webapp/tsconfig.eslint.json | 2 +- 27 files changed, 13 insertions(+), 4 deletions(-) rename packages/extension/{.eslintrc.js => .eslintrc.cjs} (100%) rename packages/extension/{babel.config.js => babel.config.cjs} (100%) rename packages/extension/{jest.config.js => jest.config.cjs} (100%) rename packages/extension/{postcss.config.js => postcss.config.cjs} (100%) rename packages/extension/{webpack.config.js => webpack.config.cjs} (100%) rename packages/shared/{.eslintrc.js => .eslintrc.cjs} (100%) rename packages/shared/{babel.config.js => babel.config.cjs} (100%) rename packages/shared/{jest.config.js => jest.config.cjs} (100%) rename packages/shared/{postcss.config.js => postcss.config.cjs} (100%) rename packages/shared/tailwind/{.eslintrc.js => .eslintrc.cjs} (100%) rename packages/storybook/{.eslintrc.js => .eslintrc.cjs} (100%) rename packages/webapp/{.eslintrc.js => .eslintrc.cjs} (100%) rename packages/webapp/{jest.config.js => jest.config.cjs} (100%) rename packages/webapp/{postcss.config.js => postcss.config.cjs} (100%) diff --git a/AGENTS.md b/AGENTS.md index 82f80ffb50..79f9a2f18c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -216,7 +216,7 @@ const { value, isLoading } = useConditionalFeature({ - `pnpm-workspace.yaml` - Monorepo workspace packages - `packages/webapp/next.config.ts` - Next.js configuration - `packages/shared/tailwind.config.ts` - Base Tailwind configuration -- `packages/extension/webpack.config.js` - Extension build configuration +- `packages/extension/webpack.config.cjs` - Extension build configuration ## Package-Specific Guides diff --git a/package.json b/package.json index db30628405..d0afc7cd01 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "name": "daily-apps", + "type": "module", "private": true, "dependencies": { "postcss-rem-to-responsive-pixel": "^6.0.2" diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index d4582692d5..3fd972febc 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -1,5 +1,6 @@ { "name": "@dailydotdev/eslint-config", + "type": "module", "version": "0.0.0", "main": "index.js", "prettier": "@dailydotdev/prettier-config", diff --git a/packages/eslint-rules/package.json b/packages/eslint-rules/package.json index 774042bc1a..276b67b7bf 100644 --- a/packages/eslint-rules/package.json +++ b/packages/eslint-rules/package.json @@ -1,5 +1,6 @@ { "name": "@dailydotdev/eslint-plugin-daily-dev-eslint-rules", + "type": "module", "version": "0.0.0", "description": "> TODO: description", "author": "Chris Bongers ", diff --git a/packages/extension/.eslintrc.js b/packages/extension/.eslintrc.cjs similarity index 100% rename from packages/extension/.eslintrc.js rename to packages/extension/.eslintrc.cjs diff --git a/packages/extension/babel.config.js b/packages/extension/babel.config.cjs similarity index 100% rename from packages/extension/babel.config.js rename to packages/extension/babel.config.cjs diff --git a/packages/extension/jest.config.js b/packages/extension/jest.config.cjs similarity index 100% rename from packages/extension/jest.config.js rename to packages/extension/jest.config.cjs diff --git a/packages/extension/package.json b/packages/extension/package.json index 802149c9ca..662228f571 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -1,5 +1,6 @@ { "name": "extension", + "type": "module", "version": "3.42.2", "scripts": { "dev": "cross-env NODE_ENV=development cross-env TARGET_BROWSER=chrome webpack --watch", diff --git a/packages/extension/postcss.config.js b/packages/extension/postcss.config.cjs similarity index 100% rename from packages/extension/postcss.config.js rename to packages/extension/postcss.config.cjs diff --git a/packages/extension/tsconfig.eslint.json b/packages/extension/tsconfig.eslint.json index 64f1b25906..1a255fc777 100644 --- a/packages/extension/tsconfig.eslint.json +++ b/packages/extension/tsconfig.eslint.json @@ -6,7 +6,7 @@ "src/**/*.tsx", "*.js", "*.ts", - "**/.eslintrc.js", + "**/.eslintrc.cjs", "__tests__/**/*.ts", "__tests__/**/*.tsx", "__mocks__/**/*.ts", diff --git a/packages/extension/webpack.config.js b/packages/extension/webpack.config.cjs similarity index 100% rename from packages/extension/webpack.config.js rename to packages/extension/webpack.config.cjs diff --git a/packages/playwright/package.json b/packages/playwright/package.json index c3ba77430c..50a5f8ac2d 100644 --- a/packages/playwright/package.json +++ b/packages/playwright/package.json @@ -1,5 +1,6 @@ { "name": "@dailydotdev/playwright", + "type": "module", "version": "1.0.0", "private": true, "description": "E2E tests for daily.dev using Playwright", diff --git a/packages/prettier-config/package.json b/packages/prettier-config/package.json index 563154aa67..f71ba1fb86 100644 --- a/packages/prettier-config/package.json +++ b/packages/prettier-config/package.json @@ -1,5 +1,6 @@ { "name": "@dailydotdev/prettier-config", + "type": "module", "version": "0.0.0", "main": "index.js" } diff --git a/packages/shared/.eslintrc.js b/packages/shared/.eslintrc.cjs similarity index 100% rename from packages/shared/.eslintrc.js rename to packages/shared/.eslintrc.cjs diff --git a/packages/shared/babel.config.js b/packages/shared/babel.config.cjs similarity index 100% rename from packages/shared/babel.config.js rename to packages/shared/babel.config.cjs diff --git a/packages/shared/jest.config.js b/packages/shared/jest.config.cjs similarity index 100% rename from packages/shared/jest.config.js rename to packages/shared/jest.config.cjs diff --git a/packages/shared/package.json b/packages/shared/package.json index 101db0f82f..17edc46973 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,5 +1,6 @@ { "name": "@dailydotdev/shared", + "type": "module", "version": "0.0.0", "main": "./src/index.ts", "license": "AGPL-3.0", diff --git a/packages/shared/postcss.config.js b/packages/shared/postcss.config.cjs similarity index 100% rename from packages/shared/postcss.config.js rename to packages/shared/postcss.config.cjs diff --git a/packages/shared/tailwind/.eslintrc.js b/packages/shared/tailwind/.eslintrc.cjs similarity index 100% rename from packages/shared/tailwind/.eslintrc.js rename to packages/shared/tailwind/.eslintrc.cjs diff --git a/packages/shared/tsconfig.eslint.json b/packages/shared/tsconfig.eslint.json index 6f2271a2cc..da3c294b0c 100644 --- a/packages/shared/tsconfig.eslint.json +++ b/packages/shared/tsconfig.eslint.json @@ -8,7 +8,7 @@ "tailwind/**/*.ts", "*.js", "*.ts", - "**/.eslintrc.js", + "**/.eslintrc.cjs", "__tests__/**/*.ts", "__tests__/**/*.tsx", "__mocks__/**/*.ts", diff --git a/packages/storybook/.eslintrc.js b/packages/storybook/.eslintrc.cjs similarity index 100% rename from packages/storybook/.eslintrc.js rename to packages/storybook/.eslintrc.cjs diff --git a/packages/storybook/package.json b/packages/storybook/package.json index e75fc806a3..ea0d267e31 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -1,5 +1,6 @@ { "name": "@dailydotdev/storybook", + "type": "module", "version": "0.0.0", "private": true, "scripts": { diff --git a/packages/webapp/.eslintrc.js b/packages/webapp/.eslintrc.cjs similarity index 100% rename from packages/webapp/.eslintrc.js rename to packages/webapp/.eslintrc.cjs diff --git a/packages/webapp/jest.config.js b/packages/webapp/jest.config.cjs similarity index 100% rename from packages/webapp/jest.config.js rename to packages/webapp/jest.config.cjs diff --git a/packages/webapp/package.json b/packages/webapp/package.json index ab41b5eda8..cf0fa75d24 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -1,5 +1,6 @@ { "name": "webapp", + "type": "module", "version": "0.0.0", "scripts": { "dev": "next dev -p 5002 --experimental-https --experimental-https-key ./certificates/adhoc-server.key --experimental-https-cert ./certificates/adhoc-server.crt --experimental-https-ca ./certificates/root_ca.crt", diff --git a/packages/webapp/postcss.config.js b/packages/webapp/postcss.config.cjs similarity index 100% rename from packages/webapp/postcss.config.js rename to packages/webapp/postcss.config.cjs diff --git a/packages/webapp/tsconfig.eslint.json b/packages/webapp/tsconfig.eslint.json index 0fc342d88e..89b66e20f2 100644 --- a/packages/webapp/tsconfig.eslint.json +++ b/packages/webapp/tsconfig.eslint.json @@ -10,7 +10,7 @@ "pages/**/*.tsx", "pages/**/*.ts", "*.js", - "**/.eslintrc.js", + "**/.eslintrc.cjs", "__tests__/**/*.ts", "__tests__/**/*.tsx", "__mocks__/**/*.ts", From 2ae0fd19316e33218775aa5cb3656e4566e0fde1 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 08:36:59 +0000 Subject: [PATCH 2/3] fix: add explicit config file paths for jest and webpack When 'type: module' is set in package.json, tools like Jest and Webpack default to looking for .js config files. Since we renamed them to .cjs, we need to explicitly specify the config file paths using --config flags. Changes: - Updated package.json scripts in extension, webapp, and shared to use --config flags for jest and webpack - Updated CircleCI config to specify jest.config.cjs in all test jobs - Updated extension/AGENTS.md to reference webpack.config.cjs Co-authored-by: Chris Bongers --- .circleci/config.yml | 12 ++++++------ packages/extension/AGENTS.md | 2 +- packages/extension/package.json | 6 +++--- packages/shared/package.json | 2 +- packages/webapp/package.json | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index bd7ae546c3..18596f89b5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -40,8 +40,8 @@ jobs: name: Test command: | npm run pretest - TEST=$(./node_modules/.bin/jest --listTests) - echo $TEST | circleci tests run --command="xargs ./node_modules/.bin/jest --ci --runInBand --reporters=default --reporters=jest-junit --" --split-by=timings + TEST=$(./node_modules/.bin/jest --config jest.config.cjs --listTests) + echo $TEST | circleci tests run --command="xargs ./node_modules/.bin/jest --config jest.config.cjs --ci --runInBand --reporters=default --reporters=jest-junit --" --split-by=timings environment: JEST_JUNIT_OUTPUT_DIR: ../../test-results working_directory: packages/extension @@ -61,8 +61,8 @@ jobs: name: Test command: | npm run pretest - TEST=$(./node_modules/.bin/jest --listTests) - echo $TEST | circleci tests run --command="xargs ./node_modules/.bin/jest --ci --runInBand --reporters=default --reporters=jest-junit --" --split-by=timings + TEST=$(./node_modules/.bin/jest --config jest.config.cjs --listTests) + echo $TEST | circleci tests run --command="xargs ./node_modules/.bin/jest --config jest.config.cjs --ci --runInBand --reporters=default --reporters=jest-junit --" --split-by=timings environment: JEST_JUNIT_OUTPUT_DIR: ../../test-results working_directory: packages/webapp @@ -95,8 +95,8 @@ jobs: - run: name: Test command: | - TEST=$(./node_modules/.bin/jest --listTests) - echo $TEST | circleci tests run --command="xargs ./node_modules/.bin/jest --ci --runInBand --reporters=default --reporters=jest-junit --" --split-by=timings + TEST=$(./node_modules/.bin/jest --config jest.config.cjs --listTests) + echo $TEST | circleci tests run --command="xargs ./node_modules/.bin/jest --config jest.config.cjs --ci --runInBand --reporters=default --reporters=jest-junit --" --split-by=timings environment: JEST_JUNIT_OUTPUT_DIR: ../../test-results working_directory: packages/shared diff --git a/packages/extension/AGENTS.md b/packages/extension/AGENTS.md index 1dece18776..cecb8ff4f3 100644 --- a/packages/extension/AGENTS.md +++ b/packages/extension/AGENTS.md @@ -20,7 +20,7 @@ extension/ │ ├── contexts/ # Extension-specific contexts │ ├── lib/ # Extension utilities │ └── manifest.json # Extension manifest -└── webpack.config.js # Build configuration +└── webpack.config.cjs # Build configuration ``` ## Extension Architecture diff --git a/packages/extension/package.json b/packages/extension/package.json index 662228f571..719f76895b 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -3,12 +3,12 @@ "type": "module", "version": "3.42.2", "scripts": { - "dev": "cross-env NODE_ENV=development cross-env TARGET_BROWSER=chrome webpack --watch", - "build": "cross-env NODE_ENV=production cross-env TARGET_BROWSER=chrome webpack", + "dev": "cross-env NODE_ENV=development cross-env TARGET_BROWSER=chrome webpack --config webpack.config.cjs --watch", + "build": "cross-env NODE_ENV=production cross-env TARGET_BROWSER=chrome webpack --config webpack.config.cjs", "lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx --max-warnings 0 --fix", "lint": "eslint . --ext .js,.jsx,.ts,.tsx --max-warnings 0", "pretest": "npm run lint", - "test": "jest --runInBand" + "test": "jest --config jest.config.cjs --runInBand" }, "prettier": "@dailydotdev/prettier-config", "dependencies": { diff --git a/packages/shared/package.json b/packages/shared/package.json index 17edc46973..cad7ce23c9 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -8,7 +8,7 @@ "lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx --fix --max-warnings 0", "lint": "eslint . --ext .js,.jsx,.ts,.tsx --max-warnings 0", "pretest": "npm run lint", - "test": "jest --runInBand" + "test": "jest --config jest.config.cjs --runInBand" }, "prettier": "@dailydotdev/prettier-config", "peerDependencies": { diff --git a/packages/webapp/package.json b/packages/webapp/package.json index cf0fa75d24..bf9be8b5f3 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -12,7 +12,7 @@ "lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx --max-warnings 0 --fix", "lint": "eslint . --ext .js,.jsx,.ts,.tsx --max-warnings 0", "pretest": "npm run lint", - "test": "jest --runInBand", + "test": "jest --config jest.config.cjs --runInBand", "deploy": "vercel" }, "prettier": "@dailydotdev/prettier-config", From 048f6e81e3896ab69fc145ea1d34997169e3e2b2 Mon Sep 17 00:00:00 2001 From: Chris Bongers Date: Mon, 12 Jan 2026 15:03:20 +0200 Subject: [PATCH 3/3] fix: esm more --- packages/eslint-config/{index.js => index.cjs} | 0 packages/eslint-config/package.json | 2 +- packages/prettier-config/{index.js => index.cjs} | 0 packages/prettier-config/package.json | 2 +- packages/shared/package.json | 6 ++++++ 5 files changed, 8 insertions(+), 2 deletions(-) rename packages/eslint-config/{index.js => index.cjs} (100%) rename packages/prettier-config/{index.js => index.cjs} (100%) diff --git a/packages/eslint-config/index.js b/packages/eslint-config/index.cjs similarity index 100% rename from packages/eslint-config/index.js rename to packages/eslint-config/index.cjs diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index 3fd972febc..90ce420c53 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -2,7 +2,7 @@ "name": "@dailydotdev/eslint-config", "type": "module", "version": "0.0.0", - "main": "index.js", + "main": "index.cjs", "prettier": "@dailydotdev/prettier-config", "devDependencies": { "@dailydotdev/eslint-plugin-daily-dev-eslint-rules": "workspace:*", diff --git a/packages/prettier-config/index.js b/packages/prettier-config/index.cjs similarity index 100% rename from packages/prettier-config/index.js rename to packages/prettier-config/index.cjs diff --git a/packages/prettier-config/package.json b/packages/prettier-config/package.json index f71ba1fb86..8f9c82030a 100644 --- a/packages/prettier-config/package.json +++ b/packages/prettier-config/package.json @@ -2,5 +2,5 @@ "name": "@dailydotdev/prettier-config", "type": "module", "version": "0.0.0", - "main": "index.js" + "main": "index.cjs" } diff --git a/packages/shared/package.json b/packages/shared/package.json index cad7ce23c9..d322fec91f 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -4,6 +4,12 @@ "version": "0.0.0", "main": "./src/index.ts", "license": "AGPL-3.0", + "exports": { + ".": "./src/index.ts", + "./postcss.config": "./postcss.config.cjs", + "./tailwind.config": "./tailwind.config.ts", + "./*": "./*" + }, "scripts": { "lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx --fix --max-warnings 0", "lint": "eslint . --ext .js,.jsx,.ts,.tsx --max-warnings 0",