From 13b08f63af874e0bf73b922a4b34be77a67f609b Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 8 May 2025 18:31:42 +0200 Subject: [PATCH 1/3] feat: use `default` over `import` condition this allows node 20.19+ to use `require(esm)` --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 27f58604..e5bbcb9c 100644 --- a/package.json +++ b/package.json @@ -7,16 +7,16 @@ "module": "./esm/index.mjs", "exports": { ".": { - "import": "./esm/index.mjs", - "require": "./lib/index.js" + "require": "./lib/index.js", + "default": "./esm/index.mjs" }, "./lib/client/*": { - "import": "./esm/client/*.mjs", - "require": "./lib/client/*.js" + "require": "./lib/client/*.js", + "default": "./esm/client/*.mjs" }, "./lib/server/*": { - "import": "./esm/server/*.mjs", - "require": "./lib/server/*.js" + "require": "./lib/server/*.js", + "default": "./esm/server/*.mjs" }, "./package.json": "./package.json" }, From aa0ca64653d30449e0d539f1f88fbf15c80f0984 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 8 May 2025 18:33:00 +0200 Subject: [PATCH 2/3] feat: add `browser` and `default` conditions to `"."` --- package.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index e5bbcb9c..8f25aa38 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,14 @@ "module": "./esm/index.mjs", "exports": { ".": { - "require": "./lib/index.js", - "default": "./esm/index.mjs" + "browser": { + "require": "./lib/client/html-to-dom.js", + "default": "./esm/client/html-to-dom.mjs" + }, + "default": { + "require": "./lib/index.js", + "default": "./esm/index.mjs" + } }, "./lib/client/*": { "require": "./lib/client/*.js", From c1e1f8d8a8cf5a68186c6a7b1d3b6c5ca48fa1d5 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 8 May 2025 18:52:14 +0200 Subject: [PATCH 3/3] test: add publint --- .github/workflows/build.yml | 3 ++ package-lock.json | 66 +++++++++++++++++++++++++++++++++++++ package.json | 4 ++- 3 files changed, 72 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fe75e455..cf84e7ff 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,3 +20,6 @@ jobs: - name: Build artifacts run: npm run build + + - name: Run Publint + run: npm run lint:publint diff --git a/package-lock.json b/package-lock.json index dd611f3b..341bebfe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -49,6 +49,7 @@ "npm-run-all": "4.1.5", "nyc": "17.1.0", "prettier": "3.5.3", + "publint": "0.3.12", "rollup": "4.40.2", "size-limit": "11.2.0", "ts-node": "10.9.2", @@ -1297,6 +1298,19 @@ "url": "https://opencollective.com/unts" } }, + "node_modules/@publint/pack": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@publint/pack/-/pack-0.1.2.tgz", + "integrity": "sha512-S+9ANAvUmjutrshV4jZjaiG8XQyuJIZ8a4utWmN/vW1sgQ9IfBnPndwkmQYw53QmouOIytT874u65HEmu6H5jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://bjornlu.com/sponsor" + } + }, "node_modules/@puppeteer/browsers": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.7.1.tgz", @@ -9018,6 +9032,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -9862,6 +9886,13 @@ "dev": true, "license": "BlueOak-1.0.0" }, + "node_modules/package-manager-detector": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz", + "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==", + "dev": true, + "license": "MIT" + }, "node_modules/param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", @@ -10306,6 +10337,28 @@ "node": ">=6" } }, + "node_modules/publint": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/publint/-/publint-0.3.12.tgz", + "integrity": "sha512-1w3MMtL9iotBjm1mmXtG3Nk06wnq9UhGNRpQ2j6n1Zq7YAD6gnxMMZMIxlRPAydVjVbjSm+n0lhwqsD1m4LD5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@publint/pack": "^0.1.2", + "package-manager-detector": "^1.1.0", + "picocolors": "^1.1.1", + "sade": "^1.8.1" + }, + "bin": { + "publint": "src/cli.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://bjornlu.com/sponsor" + } + }, "node_modules/pump": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", @@ -10972,6 +11025,19 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/safe-array-concat": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", diff --git a/package.json b/package.json index 8f25aa38..351c322e 100644 --- a/package.json +++ b/package.json @@ -34,9 +34,10 @@ "clean": "rm -rf .nyc_output coverage dist lib", "lint": "eslint .", "lint:fix": "npm run lint -- --fix", + "lint:publint": "publint", "lint:tsc": "tsc --noEmit", "prepare": "husky", - "prepublishOnly": "run-s lint lint:tsc test:server clean build", + "prepublishOnly": "run-s lint lint:tsc test:server clean build lint:publint", "size-limit": "size-limit", "test": "run-s test:server test:client", "test:client": "npm run test:client:watch -- --single-run", @@ -101,6 +102,7 @@ "npm-run-all": "4.1.5", "nyc": "17.1.0", "prettier": "3.5.3", + "publint": "0.3.12", "rollup": "4.40.2", "size-limit": "11.2.0", "ts-node": "10.9.2",