chore: fix LitElement imports in TS build output

This commit is contained in:
Thijs Louisse 2022-11-23 10:40:08 +01:00 committed by Thijs Louisse
parent 8eb68f5030
commit 698a94e806
3 changed files with 279 additions and 20 deletions

262
package-lock.json generated
View file

@ -52,6 +52,7 @@
"eslint-plugin-lit": "^1.6.1", "eslint-plugin-lit": "^1.6.1",
"eslint-plugin-lit-a11y": "^2.2.0", "eslint-plugin-lit-a11y": "^2.2.0",
"eslint-plugin-wc": "^1.3.2", "eslint-plugin-wc": "^1.3.2",
"globby": "^13.1.2",
"husky": "^6.0.0", "husky": "^6.0.0",
"lint-staged": "^10.0.0", "lint-staged": "^10.0.0",
"looks-same": "^7.2.3", "looks-same": "^7.2.3",
@ -2561,6 +2562,54 @@
"custom-elements-manifest": "index.js" "custom-elements-manifest": "index.js"
} }
}, },
<<<<<<< HEAD
=======
"node_modules/@custom-elements-manifest/analyzer/node_modules/array-back": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz",
"integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==",
"dev": true,
"engines": {
"node": ">=12.17"
}
},
"node_modules/@custom-elements-manifest/analyzer/node_modules/command-line-args": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.2.tgz",
"integrity": "sha512-fytTsbndLbl+pPWtS0CxLV3BEWw9wJayB8NnU2cbQqVPsNdYezQeT+uIQv009m+GShnMNyuoBrRo8DTmuTfSCA==",
"dev": true,
"dependencies": {
"array-back": "^6.1.2",
"find-replace": "^3.0.0",
"lodash.camelcase": "^4.3.0",
"typical": "^4.0.0"
},
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/@custom-elements-manifest/analyzer/node_modules/globby": {
"version": "11.0.4",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz",
"integrity": "sha1-LLr/d8Lypi5x6bKBOme5ejowAaU=",
"dev": true,
"license": "MIT",
"dependencies": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
"fast-glob": "^3.1.1",
"ignore": "^5.1.4",
"merge2": "^1.3.0",
"slash": "^3.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
>>>>>>> e266fffe (chore: fix LitElement imports in TS build output)
"node_modules/@custom-elements-manifest/analyzer/node_modules/typescript": { "node_modules/@custom-elements-manifest/analyzer/node_modules/typescript": {
"version": "4.3.5", "version": "4.3.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz",
@ -3132,6 +3181,27 @@
"node": ">=6 <7 || >=8" "node": ">=6 <7 || >=8"
} }
}, },
"node_modules/@manypkg/get-packages/node_modules/globby": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
"integrity": "sha1-vUvpi7BC+D15b344EZkfvoKg00s=",
"dev": true,
"license": "MIT",
"dependencies": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
"fast-glob": "^3.2.9",
"ignore": "^5.2.0",
"merge2": "^1.4.1",
"slash": "^3.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@mdjs/core": { "node_modules/@mdjs/core": {
"version": "0.9.5", "version": "0.9.5",
"resolved": "https://registry.npmjs.org/@mdjs/core/-/core-0.9.5.tgz", "resolved": "https://registry.npmjs.org/@mdjs/core/-/core-0.9.5.tgz",
@ -5455,6 +5525,27 @@
"node": ">= 0.6.0" "node": ">= 0.6.0"
} }
}, },
"node_modules/@web/test-runner-core/node_modules/globby": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
"integrity": "sha1-vUvpi7BC+D15b344EZkfvoKg00s=",
"dev": true,
"license": "MIT",
"dependencies": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
"fast-glob": "^3.2.9",
"ignore": "^5.2.0",
"merge2": "^1.4.1",
"slash": "^3.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@web/test-runner-core/node_modules/source-map": { "node_modules/@web/test-runner-core/node_modules/source-map": {
"version": "0.7.4", "version": "0.7.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
@ -5525,6 +5616,27 @@
"node": ">=12.0.0" "node": ">=12.0.0"
} }
}, },
"node_modules/@web/test-runner/node_modules/globby": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
"integrity": "sha1-vUvpi7BC+D15b344EZkfvoKg00s=",
"dev": true,
"license": "MIT",
"dependencies": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
"fast-glob": "^3.2.9",
"ignore": "^5.2.0",
"merge2": "^1.4.1",
"slash": "^3.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@web/test-runner/node_modules/source-map": { "node_modules/@web/test-runner/node_modules/source-map": {
"version": "0.7.4", "version": "0.7.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
@ -11395,7 +11507,8 @@
"node_modules/glob": { "node_modules/glob": {
"version": "7.2.3", "version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "integrity": "sha1-uN8PuAK7+o6JvR2Ti04WV47UTys=",
"license": "ISC",
"dependencies": { "dependencies": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
@ -11431,20 +11544,33 @@
} }
}, },
"node_modules/globby": { "node_modules/globby": {
"version": "11.0.4", "version": "13.1.2",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz",
"integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "integrity": "sha1-KQRxBVgkJ6tuyk+QUgBmewVtpRU=",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1", "dir-glob": "^3.0.1",
"fast-glob": "^3.1.1", "fast-glob": "^3.2.11",
"ignore": "^5.1.4", "ignore": "^5.2.0",
"merge2": "^1.3.0", "merge2": "^1.4.1",
"slash": "^3.0.0" "slash": "^4.0.0"
}, },
"engines": { "engines": {
"node": ">=10" "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/globby/node_modules/slash": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
"integrity": "sha1-JCI3IXbExsWt214q2oha+YSzlqc=",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
@ -23265,6 +23391,20 @@
"ibantools": "^2.2.0", "ibantools": "^2.2.0",
"lit": "^2.4.0", "lit": "^2.4.0",
"singleton-manager": "^1.6.1" "singleton-manager": "^1.6.1"
<<<<<<< HEAD
=======
}
},
"packages/validate-messages": {
"name": "@lion/validate-messages",
"version": "0.10.1",
"extraneous": true,
"license": "MIT",
"dependencies": {
"@lion/form-core": "^0.18.3",
"@lion/input-tel": "^0.2.3",
"@lion/localize": "^0.26.0"
>>>>>>> e266fffe (chore: fix LitElement imports in TS build output)
} }
} }
}, },
@ -25105,6 +25245,41 @@
"typescript": "~4.3.2" "typescript": "~4.3.2"
}, },
"dependencies": { "dependencies": {
<<<<<<< HEAD
=======
"array-back": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz",
"integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==",
"dev": true
},
"command-line-args": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.2.tgz",
"integrity": "sha512-fytTsbndLbl+pPWtS0CxLV3BEWw9wJayB8NnU2cbQqVPsNdYezQeT+uIQv009m+GShnMNyuoBrRo8DTmuTfSCA==",
"dev": true,
"requires": {
"array-back": "^6.1.2",
"find-replace": "^3.0.0",
"lodash.camelcase": "^4.3.0",
"typical": "^4.0.0"
}
},
"globby": {
"version": "11.0.4",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz",
"integrity": "sha1-LLr/d8Lypi5x6bKBOme5ejowAaU=",
"dev": true,
"requires": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
"fast-glob": "^3.1.1",
"ignore": "^5.1.4",
"merge2": "^1.3.0",
"slash": "^3.0.0"
}
},
>>>>>>> e266fffe (chore: fix LitElement imports in TS build output)
"typescript": { "typescript": {
"version": "4.3.5", "version": "4.3.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz",
@ -25621,6 +25796,20 @@
"jsonfile": "^4.0.0", "jsonfile": "^4.0.0",
"universalify": "^0.1.0" "universalify": "^0.1.0"
} }
},
"globby": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
"integrity": "sha1-vUvpi7BC+D15b344EZkfvoKg00s=",
"dev": true,
"requires": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
"fast-glob": "^3.2.9",
"ignore": "^5.2.0",
"merge2": "^1.4.1",
"slash": "^3.0.0"
}
} }
} }
}, },
@ -27586,6 +27775,20 @@
"source-map": "^0.7.3" "source-map": "^0.7.3"
}, },
"dependencies": { "dependencies": {
"globby": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
"integrity": "sha1-vUvpi7BC+D15b344EZkfvoKg00s=",
"dev": true,
"requires": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
"fast-glob": "^3.2.9",
"ignore": "^5.2.0",
"merge2": "^1.4.1",
"slash": "^3.0.0"
}
},
"source-map": { "source-map": {
"version": "0.7.4", "version": "0.7.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
@ -27668,6 +27871,20 @@
"integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==",
"dev": true "dev": true
}, },
"globby": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
"integrity": "sha1-vUvpi7BC+D15b344EZkfvoKg00s=",
"dev": true,
"requires": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
"fast-glob": "^3.2.9",
"ignore": "^5.2.0",
"merge2": "^1.4.1",
"slash": "^3.0.0"
}
},
"source-map": { "source-map": {
"version": "0.7.4", "version": "0.7.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
@ -32338,7 +32555,7 @@
"glob": { "glob": {
"version": "7.2.3", "version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "integrity": "sha1-uN8PuAK7+o6JvR2Ti04WV47UTys=",
"requires": { "requires": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
@ -32362,17 +32579,24 @@
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
}, },
"globby": { "globby": {
"version": "11.0.4", "version": "13.1.2",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz",
"integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "integrity": "sha1-KQRxBVgkJ6tuyk+QUgBmewVtpRU=",
"dev": true, "dev": true,
"requires": { "requires": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1", "dir-glob": "^3.0.1",
"fast-glob": "^3.1.1", "fast-glob": "^3.2.11",
"ignore": "^5.1.4", "ignore": "^5.2.0",
"merge2": "^1.3.0", "merge2": "^1.4.1",
"slash": "^3.0.0" "slash": "^4.0.0"
},
"dependencies": {
"slash": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
"integrity": "sha1-JCI3IXbExsWt214q2oha+YSzlqc=",
"dev": true
}
} }
}, },
"gopd": { "gopd": {

View file

@ -31,7 +31,8 @@
"test:node": "npm run test:node --workspaces --if-present", "test:node": "npm run test:node --workspaces --if-present",
"test:screenshots": "rimraf screenshots/.diff/ && rimraf screenshots/.current/ && mocha --require scripts/screenshots/bootstrap.js --exit --timeout 10000 \"packages/**/test/*.screenshots-test.js\"", "test:screenshots": "rimraf screenshots/.diff/ && rimraf screenshots/.current/ && mocha --require scripts/screenshots/bootstrap.js --exit --timeout 10000 \"packages/**/test/*.screenshots-test.js\"",
"test:screenshots:update": "cross-env UPDATE_SCREENSHOTS=true npm run test:screenshots", "test:screenshots:update": "cross-env UPDATE_SCREENSHOTS=true npm run test:screenshots",
"types": "npm run types --workspaces --if-present" "types": "npm run types --workspaces --if-present && npm run types-correct-after-build",
"types-correct-after-build": "node ./scripts/types-correct-after-build.mjs"
}, },
"workspaces": [ "workspaces": [
"packages/*", "packages/*",
@ -78,6 +79,7 @@
"eslint-plugin-lit": "^1.6.1", "eslint-plugin-lit": "^1.6.1",
"eslint-plugin-lit-a11y": "^2.2.0", "eslint-plugin-lit-a11y": "^2.2.0",
"eslint-plugin-wc": "^1.3.2", "eslint-plugin-wc": "^1.3.2",
"globby": "^13.1.2",
"husky": "^6.0.0", "husky": "^6.0.0",
"lint-staged": "^10.0.0", "lint-staged": "^10.0.0",
"looks-same": "^7.2.3", "looks-same": "^7.2.3",

View file

@ -0,0 +1,33 @@
/**
* TS build uses jsdoc and TS files with "import { LitElement } from 'lit'"
* - jsdoc compiles into "import { LitElement } from 'lit-element/lit-element.js'"
* - TS output remains unchanged
*
* These different imports (although they should both ultimately resolve to "{ LitElement } from 'lit-element/lit-element.js'")
* are incompatible (not considered the same class), which leads to errors for Subclassers.
*
* This script will make sure everything stays "import { LitElement } from 'lit'"
* See: https://github.com/microsoft/TypeScript/issues/51622
*/
import fs from 'fs';
// eslint-disable-next-line import/no-extraneous-dependencies
import { globby } from 'globby';
import { fileURLToPath } from 'url';
const monorepoRootPath = fileURLToPath(new URL('../', import.meta.url));
async function alignLitImports() {
const fileNames = await globby([`${monorepoRootPath}/packages/ui/dist-types`]);
for (const fileName of fileNames) {
// eslint-disable-next-line no-await-in-loop
const contents = await fs.promises.readFile(fileName, 'utf-8');
const replaced = contents.replace(
/(LitElement.*\}) from "lit-element\/lit-element\.js/g,
'$1 from "lit',
);
fs.promises.writeFile(fileName, replaced);
}
}
alignLitImports();