diff --git a/package.json b/package.json index 542b6518b..c62f6941b 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,8 @@ "preversion": "npm test", "pre-commit": "lint-staged", "publish": "lerna publish", - "prepare": "husky install" + "prepare": "husky install", + "prepublishOnly": "npm run build" }, "lint-staged": { "*.{js,ts}": [ @@ -53,10 +54,7 @@ ] }, "jest": { - "preset": "ts-jest/presets/js-with-ts-esm", - "extensionsToTreatAsEsm": [ - ".ts" - ], + "preset": "ts-jest/presets/default-esm", "testEnvironment": "node", "coverageProvider": "v8", "globals": { @@ -65,6 +63,7 @@ } }, "moduleNameMapper": { + "^(parse5[^/]*)/dist/(.*?)(?:\\.js)?$": "/packages/$1/lib/$2", "^(.*)\\.js$": "$1" } } diff --git a/packages/parse5-html-rewriting-stream/lib/index.ts b/packages/parse5-html-rewriting-stream/lib/index.ts index f8be3fc01..a0de8510f 100644 --- a/packages/parse5-html-rewriting-stream/lib/index.ts +++ b/packages/parse5-html-rewriting-stream/lib/index.ts @@ -1,6 +1,6 @@ -import type { Token, Location } from 'parse5/lib/common/token.js'; -import { SAXParser, EndTag, StartTag, Doctype, Text, Comment, SaxToken } from 'parse5-sax-parser/lib/index.js'; -import { escapeString } from 'parse5/lib/serializer/index.js'; +import type { Token, Location } from 'parse5/dist/common/token.js'; +import { SAXParser, EndTag, StartTag, Doctype, Text, Comment, SaxToken } from 'parse5-sax-parser/dist/index.js'; +import { escapeString } from 'parse5/dist/serializer/index.js'; /** * Streaming [SAX](https://en.wikipedia.org/wiki/Simple_API_for_XML)-style HTML rewriter. diff --git a/packages/parse5-html-rewriting-stream/package.json b/packages/parse5-html-rewriting-stream/package.json index 7e9f86de3..179e88753 100644 --- a/packages/parse5-html-rewriting-stream/package.json +++ b/packages/parse5-html-rewriting-stream/package.json @@ -19,7 +19,7 @@ "HTML" ], "license": "MIT", - "main": "./lib/index.js", + "main": "dist/index.js", "dependencies": { "parse5": "^6.0.1", "parse5-sax-parser": "^6.0.1" diff --git a/packages/parse5-htmlparser2-tree-adapter/lib/index.ts b/packages/parse5-htmlparser2-tree-adapter/lib/index.ts index 7ca73efee..d650dc3e7 100644 --- a/packages/parse5-htmlparser2-tree-adapter/lib/index.ts +++ b/packages/parse5-htmlparser2-tree-adapter/lib/index.ts @@ -1,7 +1,7 @@ -import * as doctype from 'parse5/lib/common/doctype.js'; -import { DOCUMENT_MODE, NAMESPACES as NS } from 'parse5/lib/common/html.js'; -import type { Attribute, ElementLocation } from 'parse5/lib/common/token.js'; -import type { TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface.js'; +import * as doctype from 'parse5/dist/common/doctype.js'; +import { DOCUMENT_MODE, NAMESPACES as NS } from 'parse5/dist/common/html.js'; +import type { Attribute, ElementLocation } from 'parse5/dist/common/token.js'; +import type { TreeAdapterTypeMap } from 'parse5/dist/tree-adapters/interface.js'; import { Node, NodeWithChildren, diff --git a/packages/parse5-htmlparser2-tree-adapter/package.json b/packages/parse5-htmlparser2-tree-adapter/package.json index ae53a29ad..d47e4a202 100644 --- a/packages/parse5-htmlparser2-tree-adapter/package.json +++ b/packages/parse5-htmlparser2-tree-adapter/package.json @@ -16,7 +16,7 @@ "htmlparser2" ], "license": "MIT", - "main": "./lib/index.js", + "main": "dist/index.js", "dependencies": { "domhandler": "^4.3.0", "parse5": "^6.0.1" diff --git a/packages/parse5-parser-stream/lib/index.ts b/packages/parse5-parser-stream/lib/index.ts index c2ffdfe5a..035309d85 100644 --- a/packages/parse5-parser-stream/lib/index.ts +++ b/packages/parse5-parser-stream/lib/index.ts @@ -1,7 +1,7 @@ import { Writable } from 'node:stream'; -import { Parser, ParserOptions } from 'parse5/lib/parser/index.js'; -import type { TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface.js'; -import type { DefaultTreeAdapterMap } from 'parse5/lib/tree-adapters/default.js'; +import { Parser, ParserOptions } from 'parse5/dist/parser/index.js'; +import type { TreeAdapterTypeMap } from 'parse5/dist/tree-adapters/interface.js'; +import type { DefaultTreeAdapterMap } from 'parse5/dist/tree-adapters/default.js'; /** * Streaming HTML parser with scripting support. diff --git a/packages/parse5-parser-stream/package.json b/packages/parse5-parser-stream/package.json index 0fbafed72..7eaf2ce62 100644 --- a/packages/parse5-parser-stream/package.json +++ b/packages/parse5-parser-stream/package.json @@ -16,7 +16,7 @@ "streaming" ], "license": "MIT", - "main": "./lib/index.js", + "main": "dist/index.js", "dependencies": { "parse5": "^6.0.1" }, diff --git a/packages/parse5-parser-stream/test/utils/parse-chunked.ts b/packages/parse5-parser-stream/test/utils/parse-chunked.ts index 5fa31076f..99ec7708c 100644 --- a/packages/parse5-parser-stream/test/utils/parse-chunked.ts +++ b/packages/parse5-parser-stream/test/utils/parse-chunked.ts @@ -1,5 +1,5 @@ -import type { ParserOptions } from 'parse5/lib/parser/index.js'; -import type { TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface.js'; +import type { ParserOptions } from 'parse5/dist/parser/index.js'; +import type { TreeAdapterTypeMap } from 'parse5/dist/tree-adapters/interface.js'; import { ParserStream } from '../../lib/index.js'; import { makeChunks } from 'parse5-test-utils/utils/common.js'; diff --git a/packages/parse5-plain-text-conversion-stream/lib/index.ts b/packages/parse5-plain-text-conversion-stream/lib/index.ts index 853576a30..40250abbd 100644 --- a/packages/parse5-plain-text-conversion-stream/lib/index.ts +++ b/packages/parse5-plain-text-conversion-stream/lib/index.ts @@ -1,7 +1,7 @@ -import type { ParserOptions } from 'parse5/lib/parser/index.js'; -import { ParserStream } from 'parse5-parser-stream/lib/index.js'; -import { TAG_ID as $, TAG_NAMES as TN } from 'parse5/lib/common/html.js'; -import type { TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface'; +import type { ParserOptions } from 'parse5/dist/parser/index.js'; +import { ParserStream } from 'parse5-parser-stream/dist/index.js'; +import { TAG_ID as $, TAG_NAMES as TN } from 'parse5/dist/common/html.js'; +import type { TreeAdapterTypeMap } from 'parse5/dist/tree-adapters/interface'; /** * Converts plain text files into HTML document as required by [HTML specification](https://html.spec.whatwg.org/#read-text). diff --git a/packages/parse5-plain-text-conversion-stream/package.json b/packages/parse5-plain-text-conversion-stream/package.json index a7a04f27e..2e6f274ff 100644 --- a/packages/parse5-plain-text-conversion-stream/package.json +++ b/packages/parse5-plain-text-conversion-stream/package.json @@ -19,7 +19,7 @@ "plain text" ], "license": "MIT", - "main": "./lib/index.js", + "main": "dist/index.js", "dependencies": { "parse5": "^6.0.1", "parse5-parse5-stream": "^6.0.1" diff --git a/packages/parse5-plain-text-conversion-stream/test/plain-text-conversion-stream.test.ts b/packages/parse5-plain-text-conversion-stream/test/plain-text-conversion-stream.test.ts index 6f674bf3e..4dd57fed6 100644 --- a/packages/parse5-plain-text-conversion-stream/test/plain-text-conversion-stream.test.ts +++ b/packages/parse5-plain-text-conversion-stream/test/plain-text-conversion-stream.test.ts @@ -1,5 +1,5 @@ import * as assert from 'node:assert'; -import * as parse5 from 'parse5/lib/index.js'; +import * as parse5 from 'parse5/dist/index.js'; import { PlainTextConversionStream } from '../lib/index.js'; import { generateTestsForEachTreeAdapter } from 'parse5-test-utils/utils/common.js'; diff --git a/packages/parse5-sax-parser/lib/index.ts b/packages/parse5-sax-parser/lib/index.ts index f9a6c11ed..f4f472468 100644 --- a/packages/parse5-sax-parser/lib/index.ts +++ b/packages/parse5-sax-parser/lib/index.ts @@ -1,5 +1,5 @@ import { Transform } from 'node:stream'; -import { Tokenizer } from 'parse5/lib/tokenizer/index.js'; +import { Tokenizer } from 'parse5/dist/tokenizer/index.js'; import { TokenType, Token, @@ -9,7 +9,7 @@ import { CommentToken, Attribute, Location, -} from 'parse5/lib/common/token.js'; +} from 'parse5/dist/common/token.js'; import { DevNullStream } from './dev-null-stream.js'; import { ParserFeedbackSimulator } from './parser-feedback-simulator.js'; diff --git a/packages/parse5-sax-parser/lib/parser-feedback-simulator.ts b/packages/parse5-sax-parser/lib/parser-feedback-simulator.ts index e8dd357e2..73b4221e0 100644 --- a/packages/parse5-sax-parser/lib/parser-feedback-simulator.ts +++ b/packages/parse5-sax-parser/lib/parser-feedback-simulator.ts @@ -1,8 +1,8 @@ -import { Tokenizer, TokenizerMode } from 'parse5/lib/tokenizer/index.js'; -import { TokenType, Token, TagToken } from 'parse5/lib/common/token.js'; -import * as foreignContent from 'parse5/lib/common/foreign-content.js'; -import * as unicode from 'parse5/lib/common/unicode.js'; -import { TAG_ID as $, TAG_NAMES as TN, NAMESPACES as NS, getTagID } from 'parse5/lib/common/html.js'; +import { Tokenizer, TokenizerMode } from 'parse5/dist/tokenizer/index.js'; +import { TokenType, Token, TagToken } from 'parse5/dist/common/token.js'; +import * as foreignContent from 'parse5/dist/common/foreign-content.js'; +import * as unicode from 'parse5/dist/common/unicode.js'; +import { TAG_ID as $, TAG_NAMES as TN, NAMESPACES as NS, getTagID } from 'parse5/dist/common/html.js'; //ParserFeedbackSimulator //Simulates adjustment of the Tokenizer which performed by standard parser during tree construction. diff --git a/packages/parse5-sax-parser/package.json b/packages/parse5-sax-parser/package.json index 8e49852f7..71d26b888 100644 --- a/packages/parse5-sax-parser/package.json +++ b/packages/parse5-sax-parser/package.json @@ -17,7 +17,7 @@ "SAX" ], "license": "MIT", - "main": "./lib/index.js", + "main": "dist/index.js", "dependencies": { "parse5": "^6.0.1" }, diff --git a/packages/parse5-sax-parser/test/location-info.test.ts b/packages/parse5-sax-parser/test/location-info.test.ts index f1da7ed40..f249ccde6 100644 --- a/packages/parse5-sax-parser/test/location-info.test.ts +++ b/packages/parse5-sax-parser/test/location-info.test.ts @@ -2,7 +2,7 @@ import * as assert from 'node:assert'; import { SAXParser } from '../lib/index.js'; import { loadSAXParserTestData } from 'parse5-test-utils/utils/load-sax-parser-test-data.js'; import { writeChunkedToStream } from 'parse5-test-utils/utils/common.js'; -import type { Location } from 'parse5/lib/common/token'; +import type { Location } from 'parse5/dist/common/token'; function assertLocation({ sourceCodeLocation }: { sourceCodeLocation: Location }): void { assert.strictEqual(typeof sourceCodeLocation.startLine, 'number'); diff --git a/packages/parse5-sax-parser/test/parser-feedback-simulator.test.ts b/packages/parse5-sax-parser/test/parser-feedback-simulator.test.ts index c46b00591..5ace9735a 100644 --- a/packages/parse5-sax-parser/test/parser-feedback-simulator.test.ts +++ b/packages/parse5-sax-parser/test/parser-feedback-simulator.test.ts @@ -1,5 +1,5 @@ -import { Tokenizer } from 'parse5/lib/tokenizer/index.js'; -import type { Token } from 'parse5/lib/common/token.js'; +import { Tokenizer } from 'parse5/dist/tokenizer/index.js'; +import type { Token } from 'parse5/dist/common/token.js'; import { generateTokenizationTests } from 'parse5-test-utils/utils/generate-tokenization-tests.js'; import { ParserFeedbackSimulator } from '../lib/parser-feedback-simulator.js'; diff --git a/packages/parse5-serializer-stream/lib/index.ts b/packages/parse5-serializer-stream/lib/index.ts index 0be8d2915..2cfd3b177 100644 --- a/packages/parse5-serializer-stream/lib/index.ts +++ b/packages/parse5-serializer-stream/lib/index.ts @@ -1,6 +1,6 @@ import { Readable } from 'node:stream'; -import { Serializer, SerializerOptions } from 'parse5/lib/serializer/index.js'; -import type { TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface'; +import { Serializer, SerializerOptions } from 'parse5/dist/serializer/index.js'; +import type { TreeAdapterTypeMap } from 'parse5/dist/tree-adapters/interface'; /** * Streaming AST node to an HTML serializer. A [readable stream](https://nodejs.org/api/stream.html#stream_class_stream_readable). diff --git a/packages/parse5-serializer-stream/package.json b/packages/parse5-serializer-stream/package.json index bc9cf904d..022a3d11b 100644 --- a/packages/parse5-serializer-stream/package.json +++ b/packages/parse5-serializer-stream/package.json @@ -18,7 +18,7 @@ "serialiser" ], "license": "MIT", - "main": "./lib/index.js", + "main": "dist/index.js", "dependencies": { "parse5": "^6.0.1" }, diff --git a/packages/parse5-test-utils/utils/common.ts b/packages/parse5-test-utils/utils/common.ts index 5b8be6660..749f129d8 100644 --- a/packages/parse5-test-utils/utils/common.ts +++ b/packages/parse5-test-utils/utils/common.ts @@ -1,9 +1,9 @@ import { Writable } from 'node:stream'; import * as assert from 'node:assert'; -import type { TreeAdapter } from 'parse5/lib/tree-adapters/interface'; -import * as defaultTreeAdapter from 'parse5/lib/tree-adapters/default.js'; -import * as htmlTreeAdapter from 'parse5-htmlparser2-tree-adapter/lib/index.js'; -import type { Location } from 'parse5/lib/common/token'; +import type { TreeAdapter } from 'parse5/dist/tree-adapters/interface'; +import * as defaultTreeAdapter from 'parse5/dist/tree-adapters/default.js'; +import * as htmlTreeAdapter from 'parse5-htmlparser2-tree-adapter/dist/index.js'; +import type { Location } from 'parse5/dist/common/token'; // Ensure the default tree adapter matches the expected type. export const treeAdapters = { diff --git a/packages/parse5-test-utils/utils/generate-location-info-parser-tests.ts b/packages/parse5-test-utils/utils/generate-location-info-parser-tests.ts index a50c17c95..77e297f37 100644 --- a/packages/parse5-test-utils/utils/generate-location-info-parser-tests.ts +++ b/packages/parse5-test-utils/utils/generate-location-info-parser-tests.ts @@ -1,11 +1,11 @@ -import { ParserOptions } from 'parse5/lib/parser/index'; -import { Location, ElementLocation } from 'parse5/lib/common/token'; -import { TreeAdapter, TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface'; +import { ParserOptions } from 'parse5/dist/parser/index'; +import { Location, ElementLocation } from 'parse5/dist/common/token'; +import { TreeAdapter, TreeAdapterTypeMap } from 'parse5/dist/tree-adapters/interface'; import * as assert from 'node:assert'; import * as fs from 'node:fs'; import * as path from 'node:path'; -import { escapeString } from 'parse5/lib/serializer/index.js'; -import * as parse5 from 'parse5/lib/index.js'; +import { escapeString } from 'parse5/dist/serializer/index.js'; +import * as parse5 from 'parse5/dist/index.js'; import { removeNewLines, getSubstringByLineCol, diff --git a/packages/parse5-test-utils/utils/generate-parsing-tests.ts b/packages/parse5-test-utils/utils/generate-parsing-tests.ts index db09c9e11..19fa3d33b 100644 --- a/packages/parse5-test-utils/utils/generate-parsing-tests.ts +++ b/packages/parse5-test-utils/utils/generate-parsing-tests.ts @@ -1,12 +1,12 @@ -import { ParserOptions } from 'parse5/lib/parser/index.js'; -import { ParserError } from 'parse5/lib/common/error-codes.js'; +import { ParserOptions } from 'parse5/dist/parser/index.js'; +import { ParserError } from 'parse5/dist/common/error-codes.js'; import * as fs from 'node:fs'; import * as path from 'node:path'; import * as assert from 'node:assert'; import { serializeToDatFileFormat } from './serialize-to-dat-file-format.js'; import { generateTestsForEachTreeAdapter } from './common.js'; import { parseDatFile, DatFile } from 'parse5-test-utils/utils/parse-dat-file.js'; -import type { TreeAdapter, TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface'; +import type { TreeAdapter, TreeAdapterTypeMap } from 'parse5/dist/tree-adapters/interface'; export interface TreeConstructionTestData extends DatFile { idx: number; diff --git a/packages/parse5-test-utils/utils/generate-serializer-tests.ts b/packages/parse5-test-utils/utils/generate-serializer-tests.ts index 1b4784b10..300cdceb5 100644 --- a/packages/parse5-test-utils/utils/generate-serializer-tests.ts +++ b/packages/parse5-test-utils/utils/generate-serializer-tests.ts @@ -1,7 +1,7 @@ import * as assert from 'node:assert'; import * as fs from 'node:fs'; -import * as parse5 from 'parse5/lib/index.js'; -import type { TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface.js'; +import * as parse5 from 'parse5/dist/index.js'; +import type { TreeAdapterTypeMap } from 'parse5/dist/tree-adapters/interface.js'; import { generateTestsForEachTreeAdapter, getStringDiffMsg } from './common.js'; export function generateSerializerTests( diff --git a/packages/parse5-test-utils/utils/generate-tokenization-tests.ts b/packages/parse5-test-utils/utils/generate-tokenization-tests.ts index 00971d8a9..657ffdcd1 100644 --- a/packages/parse5-test-utils/utils/generate-tokenization-tests.ts +++ b/packages/parse5-test-utils/utils/generate-tokenization-tests.ts @@ -1,9 +1,9 @@ import * as assert from 'node:assert'; import * as fs from 'node:fs'; import * as path from 'node:path'; -import { Tokenizer, TokenizerMode, State as TokenizerState } from 'parse5/lib/tokenizer/index.js'; +import { Tokenizer, TokenizerMode, State as TokenizerState } from 'parse5/dist/tokenizer/index.js'; import { makeChunks } from './common.js'; -import { TokenType, Token } from 'parse5/lib/common/token.js'; +import { TokenType, Token } from 'parse5/dist/common/token.js'; type HtmlLibToken = [string, string | null, ...unknown[]]; diff --git a/packages/parse5-test-utils/utils/parse-dat-file.ts b/packages/parse5-test-utils/utils/parse-dat-file.ts index c7962d35e..8dd5f1f56 100644 --- a/packages/parse5-test-utils/utils/parse-dat-file.ts +++ b/packages/parse5-test-utils/utils/parse-dat-file.ts @@ -1,6 +1,6 @@ -import { TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface'; -import type { TreeAdapter } from 'parse5/lib/tree-adapters/interface'; -import { NAMESPACES as NS } from 'parse5/lib/common/html.js'; +import { TreeAdapterTypeMap } from 'parse5/dist/tree-adapters/interface'; +import type { TreeAdapter } from 'parse5/dist/tree-adapters/interface'; +import { NAMESPACES as NS } from 'parse5/dist/common/html.js'; function createFragmentContext( tagName: string | undefined, diff --git a/packages/parse5-test-utils/utils/serialize-to-dat-file-format.ts b/packages/parse5-test-utils/utils/serialize-to-dat-file-format.ts index 5e520fa57..a699bb947 100644 --- a/packages/parse5-test-utils/utils/serialize-to-dat-file-format.ts +++ b/packages/parse5-test-utils/utils/serialize-to-dat-file-format.ts @@ -1,6 +1,6 @@ -import { Attribute } from 'parse5/lib/common/token'; -import { TreeAdapter, TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface'; -import { TAG_NAMES as $, NAMESPACES as NS } from 'parse5/lib/common/html.js'; +import { Attribute } from 'parse5/dist/common/token'; +import { TreeAdapter, TreeAdapterTypeMap } from 'parse5/dist/tree-adapters/interface'; +import { TAG_NAMES as $, NAMESPACES as NS } from 'parse5/dist/common/html.js'; function getSerializedTreeIndent(indent: number): string { return '|'.padEnd(indent + 2, ' '); diff --git a/packages/parse5/package.json b/packages/parse5/package.json index c8f7451f3..49ae834c7 100644 --- a/packages/parse5/package.json +++ b/packages/parse5/package.json @@ -30,7 +30,7 @@ "serialize" ], "license": "MIT", - "main": "./lib/index.js", + "main": "dist/index.js", "repository": { "type": "git", "url": "git://github.com/parse5/parse5-fork.git" diff --git a/tsconfig.json b/tsconfig.json index caf7ef86a..65e512be7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,8 +13,14 @@ "moduleResolution": "node", "forceConsistentCasingInFileNames": true, "allowSyntheticDefaultImports": true, - "allowJs": true, - "outDir": "build" + "outDir": "build", + "baseUrl": ".", + "paths": { + "parse5/dist/*": ["packages/parse5/lib/*"], + "parse5-sax-parser/dist/*": ["packages/parse5-sax-parser/lib/*"], + "parse5-htmlparser2-tree-adapter/dist/*": ["packages/parse5-htmlparser2-tree-adapter/lib/*"], + "parse5-parser-stream/dist/*": ["packages/parse5-parser-stream/lib/*"] + } } }