diff --git a/.changeset/gentle-guests-doubt.md b/.changeset/gentle-guests-doubt.md new file mode 100644 index 0000000..c5461c6 --- /dev/null +++ b/.changeset/gentle-guests-doubt.md @@ -0,0 +1,21 @@ +--- +"@bbob/cli": patch +"@bbob/core": patch +"@bbob/html": patch +"@bbob/parser": patch +"@bbob/plugin-helper": patch +"@bbob/preset-html5": patch +"@bbob/preset-react": patch +"@bbob/preset-vue": patch +"@bbob/preset": patch +"@bbob/react": patch +"@bbob/types": patch +"@bbob/vue2": patch +"@bbob/vue3": patch +--- + +fix: proper module resolution in all cases (Node CJS, Node ESM, bundler) + +Allow usages of this library in ESM scenarios (Vite SSR, pure Node using ESM) by fixing incorrect exports of the ESM output (use correct .mjs extension, separate types files for CJS and ESM output, package.json fixes) + +Fixes #232, #214, #135 diff --git a/jest.config.js b/jest.config.js index bd9ac47..3ed42a1 100644 --- a/jest.config.js +++ b/jest.config.js @@ -7,6 +7,7 @@ module.exports = { setupFilesAfterEnv: [`${__dirname}/jest.setup.js`], coverageDirectory: './coverage/', collectCoverage: true, + resolver: "ts-jest-resolver", transform: { '\\.[jt]sx?$': ['@swc/jest', { ...config }], }, diff --git a/package.json b/package.json index 6af6094..a76fcc5 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,8 @@ "rollup-plugin-gzip": "3.1.0", "rollup-plugin-swc3": "0.11.0", "size-limit": "11.0.1", + "ts-jest-resolver": "^2.0.1", + "ts2mjs": "^4.0.0", "typescript": "5.1.6" }, "publishConfig": { @@ -80,13 +82,13 @@ }, "pkgTasks": { "build:commonjs": "@/cross-env BABEL_ENV=commonjs NODE_ENV=production @/swc ./src/ --config-file ../../.swcrc-commonjs.json --out-dir lib --strip-leading-paths", - "build:es": "@/cross-env BABEL_ENV=es NODE_ENV=production @/swc ./src/ --config-file ../../.swcrc.json --out-dir es --strip-leading-paths", + "build:es": "@/cross-env BABEL_ENV=es NODE_ENV=production @/swc ./src/ --config-file ../../.swcrc.json --out-dir es --strip-leading-paths && @/ts2mjs es --remove-source", "build:umd": "@/cross-env BABEL_ENV=rollup NODE_ENV=production @/rollup --config ../../rollup.config.mjs", "build": "npm run build:es && npm run build:commonjs && npm run build:umd", "test": "@/jest", "cover": "@/jest --coverage .", "lint": "@/eslint .", - "types": "@/tsc", + "types": "@/tsc && @/ts2mjs types", "bundlesize": "npm run build && @/cross-env NODE_ENV=production @/bundlesize .", "size": "npm run build && @/cross-env NODE_ENV=production @/size-limit ." }, diff --git a/packages/bbob-cli/package.json b/packages/bbob-cli/package.json index 8855ce7..0b01e7f 100644 --- a/packages/bbob-cli/package.json +++ b/packages/bbob-cli/package.json @@ -6,16 +6,21 @@ "bbob": "lib/cli.js" }, "main": "lib/index.js", - "module": "es/index.js", - "jsnext:main": "es/index.js", + "module": "es/index.mjs", + "jsnext:main": "es/index.mjs", "browser": "dist/index.js", "browserName": "BbobCli", "types": "types/index.d.ts", "exports": { ".": { - "types": "./types/index.d.ts", - "import": "./es/index.js", - "require": "./lib/index.js", + "import": { + "types": "./types/index.d.mts", + "default": "./es/index.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./lib/index.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" } diff --git a/packages/bbob-cli/src/cli.ts b/packages/bbob-cli/src/cli.ts index cd5b6bc..bb029df 100755 --- a/packages/bbob-cli/src/cli.ts +++ b/packages/bbob-cli/src/cli.ts @@ -1,4 +1,4 @@ #!/usr/bin/env node -import { run } from './index'; +import { run } from './index.js'; run(process.stdin, process.stdout); diff --git a/packages/bbob-core/package.json b/packages/bbob-core/package.json index 9f14e44..32812d9 100644 --- a/packages/bbob-core/package.json +++ b/packages/bbob-core/package.json @@ -25,16 +25,21 @@ "@bbob/types": "*" }, "main": "lib/index.js", - "module": "es/index.js", - "jsnext:main": "es/index.js", + "module": "es/index.mjs", + "jsnext:main": "es/index.mjs", "browser": "dist/index.js", "browserName": "BbobCore", "types": "types/index.d.ts", "exports": { ".": { - "types": "./types/index.d.ts", - "import": "./es/index.js", - "require": "./lib/index.js", + "import": { + "types": "./types/index.d.mts", + "default": "./es/index.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./lib/index.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" } diff --git a/packages/bbob-core/src/index.ts b/packages/bbob-core/src/index.ts index 40d4150..122584e 100644 --- a/packages/bbob-core/src/index.ts +++ b/packages/bbob-core/src/index.ts @@ -9,8 +9,8 @@ import type { } from "@bbob/types"; import { parse } from '@bbob/parser'; -import { iterate, match } from './utils'; -import { C1, C2 } from './errors' +import { iterate, match } from './utils.js'; +import { C1, C2 } from './errors.js' export function createTree(tree: NodeContent[], options: Options) { const extendedTree = tree as BBobCoreTagNodeTree diff --git a/packages/bbob-html/package.json b/packages/bbob-html/package.json index 02a83d8..2911405 100644 --- a/packages/bbob-html/package.json +++ b/packages/bbob-html/package.json @@ -14,16 +14,21 @@ "@bbob/types": "*" }, "main": "lib/index.js", - "module": "es/index.js", - "jsnext:main": "es/index.js", + "module": "es/index.mjs", + "jsnext:main": "es/index.mjs", "browser": "dist/index.js", "browserName": "BbobHtml", "types": "types/index.d.ts", "exports": { ".": { - "types": "./types/index.d.ts", - "import": "./es/index.js", - "require": "./lib/index.js", + "import": { + "types": "./types/index.d.mts", + "default": "./es/index.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./lib/index.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" } diff --git a/packages/bbob-parser/package.json b/packages/bbob-parser/package.json index a1cb968..7a6186f 100644 --- a/packages/bbob-parser/package.json +++ b/packages/bbob-parser/package.json @@ -24,44 +24,69 @@ "@bbob/types": "*" }, "main": "lib/index.js", - "module": "es/index.js", - "jsnext:main": "es/index.js", + "module": "es/index.mjs", + "jsnext:main": "es/index.mjs", "browser": "dist/index.js", "browserName": "BbobParser", "types": "types/index.d.ts", "exports": { ".": { - "types": "./types/index.d.ts", - "import": "./es/index.js", - "require": "./lib/index.js", + "import": { + "types": "./types/index.d.mts", + "default": "./es/index.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./lib/index.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" }, "./lexer": { - "types": "./types/lexer.d.ts", - "import": "./es/lexer.js", - "require": "./lib/lexer.js", + "import": { + "types": "./types/lexer.d.mts", + "default": "./es/lexer.mjs" + }, + "require": { + "types": "./types/lexer.d.ts", + "default": "./lib/lexer.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" }, "./parse": { - "types": "./types/parse.d.ts", - "import": "./es/parse.js", - "require": "./lib/parse.js", + "import": { + "types": "./types/parse.d.mts", + "default": "./es/parse.mjs" + }, + "require": { + "types": "./types/parse.d.ts", + "default": "./lib/parse.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" }, "./Token": { - "types": "./types/Token.d.ts", - "import": "./es/Token.js", - "require": "./lib/Token.js", + "import": { + "types": "./types/Token.d.mts", + "default": "./es/Token.mjs" + }, + "require": { + "types": "./types/Token.d.ts", + "default": "./lib/Token.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" }, "./utils": { - "types": "./types/utils.d.ts", - "import": "./es/utils.js", - "require": "./lib/utils.js", + "import": { + "types": "./types/utils.d.mts", + "default": "./es/utils.mjs" + }, + "require": { + "types": "./types/utils.d.ts", + "default": "./lib/utils.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" } diff --git a/packages/bbob-parser/src/index.ts b/packages/bbob-parser/src/index.ts index 2c7f357..9ea2cd7 100644 --- a/packages/bbob-parser/src/index.ts +++ b/packages/bbob-parser/src/index.ts @@ -1,4 +1,4 @@ export { TagNode } from '@bbob/plugin-helper'; -export { default } from './parse'; -export * from './parse'; -export * from './lexer' +export { default } from './parse.js'; +export * from './parse.js'; +export * from './lexer.js' diff --git a/packages/bbob-parser/src/lexer.ts b/packages/bbob-parser/src/lexer.ts index d5d1ce7..c32a1df 100644 --- a/packages/bbob-parser/src/lexer.ts +++ b/packages/bbob-parser/src/lexer.ts @@ -14,8 +14,8 @@ import type { LexerOptions, LexerTokenizer } from "@bbob/types"; import { Token, TYPE_ATTR_NAME, TYPE_ATTR_VALUE, TYPE_NEW_LINE, TYPE_SPACE, TYPE_TAG, TYPE_WORD, -} from './Token'; -import { CharGrabber, createCharGrabber, trimChar, unquote } from './utils'; +} from './Token.js'; +import { CharGrabber, createCharGrabber, trimChar, unquote } from './utils.js'; // for cases const EM = '!'; diff --git a/packages/bbob-parser/src/parse.ts b/packages/bbob-parser/src/parse.ts index 7e77dbd..ace9aff 100644 --- a/packages/bbob-parser/src/parse.ts +++ b/packages/bbob-parser/src/parse.ts @@ -7,9 +7,9 @@ import { isTagNode, } from "@bbob/plugin-helper"; -import { createLexer } from "./lexer"; +import { createLexer } from "./lexer.js"; -import type { Token } from "./Token"; +import type { Token } from "./Token.js"; class NodeList { private n: Value[]; diff --git a/packages/bbob-plugin-helper/package.json b/packages/bbob-plugin-helper/package.json index a6686b8..39cde0a 100644 --- a/packages/bbob-plugin-helper/package.json +++ b/packages/bbob-plugin-helper/package.json @@ -15,8 +15,8 @@ "types" ], "main": "lib/index.js", - "module": "es/index.js", - "jsnext:main": "es/index.js", + "module": "es/index.mjs", + "jsnext:main": "es/index.mjs", "browser": "dist/index.js", "browserName": "BbobPluginHelper", "types": "types/index.d.ts", @@ -25,30 +25,50 @@ }, "exports": { ".": { - "types": "./types/index.d.ts", - "import": "./es/index.js", - "require": "./lib/index.js", + "import": { + "types": "./types/index.d.mts", + "default": "./es/index.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./lib/index.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" }, "./char": { - "types": "./types/char.d.ts", - "import": "./es/char.js", - "require": "./lib/char.js", + "import": { + "types": "./types/char.d.mts", + "default": "./es/char.mjs" + }, + "require": { + "types": "./types/char.d.ts", + "default": "./lib/char.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" }, "./helpers": { - "types": "./types/helpers.d.ts", - "import": "./es/helpers.js", - "require": "./lib/helpers.js", + "import": { + "types": "./types/helpers.d.mts", + "default": "./es/helpers.mjs" + }, + "require": { + "types": "./types/helpers.d.ts", + "default": "./lib/helpers.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" }, "./TagNode": { - "types": "./types/TagNode.d.ts", - "import": "./es/TagNode.js", - "require": "./lib/TagNode.js", + "import": { + "types": "./types/TagNode.d.mts", + "default": "./es/TagNode.mjs" + }, + "require": { + "types": "./types/TagNode.d.ts", + "default": "./lib/TagNode.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" } diff --git a/packages/bbob-plugin-helper/src/TagNode.ts b/packages/bbob-plugin-helper/src/TagNode.ts index f6323e4..1c0cc69 100644 --- a/packages/bbob-plugin-helper/src/TagNode.ts +++ b/packages/bbob-plugin-helper/src/TagNode.ts @@ -1,6 +1,6 @@ import type { NodeContent, TagNodeObject, TagNodeTree, TagPosition } from "@bbob/types"; -import { OPEN_BRAKET, CLOSE_BRAKET, SLASH } from './char'; +import { OPEN_BRAKET, CLOSE_BRAKET, SLASH } from './char.js'; import { getUniqAttr, getNodeLength, @@ -8,7 +8,7 @@ import { attrsToString, attrValue, isTagNode, -} from './helpers'; +} from './helpers.js'; const getTagAttrs = (tag: string, params: Record) => { const uniqAttr = getUniqAttr(params); diff --git a/packages/bbob-plugin-helper/src/helpers.ts b/packages/bbob-plugin-helper/src/helpers.ts index 63ceb08..ed1651c 100644 --- a/packages/bbob-plugin-helper/src/helpers.ts +++ b/packages/bbob-plugin-helper/src/helpers.ts @@ -1,7 +1,7 @@ import type { NodeContent, StringNode } from "@bbob/types"; -import { N } from './char'; -import type { TagNode } from "./TagNode"; +import { N } from './char.js'; +import type { TagNode } from "./TagNode.js"; function isTagNode(el: unknown): el is TagNode { return typeof el === 'object' && el !== null && 'tag' in el; diff --git a/packages/bbob-plugin-helper/src/index.ts b/packages/bbob-plugin-helper/src/index.ts index 3cfcb82..40253ef 100644 --- a/packages/bbob-plugin-helper/src/index.ts +++ b/packages/bbob-plugin-helper/src/index.ts @@ -1,3 +1,3 @@ -export * from "./helpers"; -export * from "./char"; -export * from "./TagNode"; +export * from "./helpers.js"; +export * from "./char.js"; +export * from "./TagNode.js"; diff --git a/packages/bbob-preset-html5/package.json b/packages/bbob-preset-html5/package.json index 68ac896..b850874 100644 --- a/packages/bbob-preset-html5/package.json +++ b/packages/bbob-preset-html5/package.json @@ -17,16 +17,21 @@ "@bbob/html": "*" }, "main": "lib/index.js", - "module": "es/index.js", - "jsnext:main": "es/index.js", + "module": "es/index.mjs", + "jsnext:main": "es/index.mjs", "browser": "dist/index.js", "browserName": "BbobPresetHTML5", "types": "types/index.d.ts", "exports": { ".": { - "types": "./types/index.d.ts", - "import": "./es/index.js", - "require": "./lib/index.js", + "import": { + "types": "./types/index.d.mts", + "default": "./es/index.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./lib/index.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" } diff --git a/packages/bbob-preset-html5/src/index.ts b/packages/bbob-preset-html5/src/index.ts index 4f91926..64737d2 100644 --- a/packages/bbob-preset-html5/src/index.ts +++ b/packages/bbob-preset-html5/src/index.ts @@ -1,6 +1,6 @@ /* eslint-disable indent */ import { createPreset } from "@bbob/preset"; -import defaultTags from "./defaultTags"; +import defaultTags from "./defaultTags.js"; export type * from "@bbob/preset"; export default createPreset(defaultTags); diff --git a/packages/bbob-preset-react/package.json b/packages/bbob-preset-react/package.json index d6d01ed..0da701b 100644 --- a/packages/bbob-preset-react/package.json +++ b/packages/bbob-preset-react/package.json @@ -20,16 +20,21 @@ "@types/react": "18.x" }, "main": "lib/index.js", - "module": "es/index.js", - "jsnext:main": "es/index.js", + "module": "es/index.mjs", + "jsnext:main": "es/index.mjs", "browser": "dist/index.js", "browserName": "BbobPresetReact", "types": "types/index.d.ts", "exports": { ".": { - "types": "./types/index.d.ts", - "import": "./es/index.js", - "require": "./lib/index.js", + "import": { + "types": "./types/index.d.mts", + "default": "./es/index.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./lib/index.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" } diff --git a/packages/bbob-preset-vue/package.json b/packages/bbob-preset-vue/package.json index 78f5375..2b8a55d 100644 --- a/packages/bbob-preset-vue/package.json +++ b/packages/bbob-preset-vue/package.json @@ -12,16 +12,21 @@ "@bbob/types": "*" }, "main": "lib/index.js", - "module": "es/index.js", - "jsnext:main": "es/index.js", + "module": "es/index.mjs", + "jsnext:main": "es/index.mjs", "browser": "dist/index.js", "browserName": "BbobPresetVue", "types": "types/index.d.ts", "exports": { ".": { - "types": "./types/index.d.ts", - "import": "./es/index.js", - "require": "./lib/index.js", + "import": { + "types": "./types/index.d.mts", + "default": "./es/index.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./lib/index.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" } diff --git a/packages/bbob-preset/package.json b/packages/bbob-preset/package.json index cd3ab09..bde18e3 100644 --- a/packages/bbob-preset/package.json +++ b/packages/bbob-preset/package.json @@ -22,16 +22,21 @@ "@bbob/core": "*" }, "main": "lib/index.js", - "module": "es/index.js", - "jsnext:main": "es/index.js", + "module": "es/index.mjs", + "jsnext:main": "es/index.mjs", "browser": "dist/index.js", "browserName": "BbobPreset", "types": "types/index.d.ts", "exports": { ".": { - "types": "./types/index.d.ts", - "import": "./es/index.js", - "require": "./lib/index.js", + "import": { + "types": "./types/index.d.mts", + "default": "./es/index.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./lib/index.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" } diff --git a/packages/bbob-preset/src/index.ts b/packages/bbob-preset/src/index.ts index 15a762c..53024b4 100644 --- a/packages/bbob-preset/src/index.ts +++ b/packages/bbob-preset/src/index.ts @@ -1,2 +1,2 @@ -export { default } from "./preset"; -export * from "./preset"; +export { default } from "./preset.js"; +export * from "./preset.js"; diff --git a/packages/bbob-react/package.json b/packages/bbob-react/package.json index e2ebac3..31b7147 100644 --- a/packages/bbob-react/package.json +++ b/packages/bbob-react/package.json @@ -26,16 +26,21 @@ "@types/react": "18.x" }, "main": "lib/index.js", - "module": "es/index.js", - "jsnext:main": "es/index.js", + "module": "es/index.mjs", + "jsnext:main": "es/index.mjs", "browser": "dist/index.js", "browserName": "BbobReact", "types": "types/index.d.ts", "exports": { ".": { - "types": "./types/index.d.ts", - "import": "./es/index.js", - "require": "./lib/index.js", + "import": { + "types": "./types/index.d.mts", + "default": "./es/index.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./lib/index.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" } diff --git a/packages/bbob-react/src/Component.ts b/packages/bbob-react/src/Component.ts index 0ad7ed2..26a7abf 100644 --- a/packages/bbob-react/src/Component.ts +++ b/packages/bbob-react/src/Component.ts @@ -1,7 +1,7 @@ import React, { ReactNode } from 'react'; import type { BBobPlugins, BBobCoreOptions } from '@bbob/types'; -import { render } from './render'; +import { render } from './render.js'; const content = (children: ReactNode, plugins?: BBobPlugins, options?: BBobCoreOptions) => React.Children.map(children, diff --git a/packages/bbob-react/src/index.ts b/packages/bbob-react/src/index.ts index 5a4aadb..4e2ad52 100644 --- a/packages/bbob-react/src/index.ts +++ b/packages/bbob-react/src/index.ts @@ -1,2 +1,2 @@ -export { default } from './Component'; -export { render } from './render'; +export { default } from './Component.js'; +export { render } from './render.js'; diff --git a/packages/bbob-types/package.json b/packages/bbob-types/package.json index 9d2815c..862ea81 100644 --- a/packages/bbob-types/package.json +++ b/packages/bbob-types/package.json @@ -14,7 +14,17 @@ "types" ], "types": "types/index.d.ts", - "module": "types/index.d.ts", + "module": "types/index.d.mts", + "exports": { + ".": { + "import": { + "types": "./types/index.d.mts" + }, + "require": { + "types": "./types/index.d.ts" + } + } + }, "homepage": "https://github.com/JiLiZART/bbob", "author": "Nikolay Kostyurin ", "license": "MIT", diff --git a/packages/bbob-types/src/core.ts b/packages/bbob-types/src/core.ts index a9e0ff2..f9b7d67 100644 --- a/packages/bbob-types/src/core.ts +++ b/packages/bbob-types/src/core.ts @@ -1,5 +1,5 @@ -import { ParseOptions } from "./parser"; -import { NodeContent, PartialNodeContent, TagNodeObject, TagNodeTree } from "./common"; +import { ParseOptions } from "./parser.js"; +import { NodeContent, PartialNodeContent, TagNodeObject, TagNodeTree } from "./common.js"; export interface BBobCoreOptions< Data = unknown | null, diff --git a/packages/bbob-types/src/index.ts b/packages/bbob-types/src/index.ts index 00c301d..dd1ed07 100644 --- a/packages/bbob-types/src/index.ts +++ b/packages/bbob-types/src/index.ts @@ -1,4 +1,4 @@ -export * from './common' -export * from './parser' -export * from './core' -export * from './preset' +export * from './common.js' +export * from './parser.js' +export * from './core.js' +export * from './preset.js' diff --git a/packages/bbob-types/src/parser.ts b/packages/bbob-types/src/parser.ts index 6c7463f..8258a76 100644 --- a/packages/bbob-types/src/parser.ts +++ b/packages/bbob-types/src/parser.ts @@ -1,4 +1,4 @@ -import { TagNodeTree, TagPosition } from "./common"; +import { TagNodeTree, TagPosition } from "./common.js"; export interface ParseError { tagName: string; diff --git a/packages/bbob-types/src/preset.ts b/packages/bbob-types/src/preset.ts index cef9dde..ebd4dfe 100644 --- a/packages/bbob-types/src/preset.ts +++ b/packages/bbob-types/src/preset.ts @@ -1,6 +1,6 @@ -import { BBobCoreTagNodeTree, BBobPluginFunction, BBobPluginOptions } from "./core"; -import { TagNodeObject } from "./common"; +import { BBobCoreTagNodeTree, BBobPluginFunction, BBobPluginOptions } from "./core.js"; +import { TagNodeObject } from "./common.js"; export type PartialRecord = Partial> diff --git a/packages/bbob-vue2/package.json b/packages/bbob-vue2/package.json index 79216bb..892275e 100644 --- a/packages/bbob-vue2/package.json +++ b/packages/bbob-vue2/package.json @@ -25,16 +25,21 @@ "vue-template-compiler": "2.7.16" }, "main": "lib/index.js", - "module": "es/index.js", - "jsnext:main": "es/index.js", + "module": "es/index.mjs", + "jsnext:main": "es/index.mjs", "browser": "dist/index.js", "browserName": "BbobVue", "types": "types/index.d.ts", "exports": { ".": { - "types": "./types/index.d.ts", - "import": "./es/index.js", - "require": "./lib/index.js", + "import": { + "types": "./types/index.d.mts", + "default": "./es/index.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./lib/index.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" } diff --git a/packages/bbob-vue2/src/Component.ts b/packages/bbob-vue2/src/Component.ts index bf645f6..cf0a925 100644 --- a/packages/bbob-vue2/src/Component.ts +++ b/packages/bbob-vue2/src/Component.ts @@ -1,7 +1,7 @@ import { defineComponent } from 'vue'; import type { BBobCoreOptions, BBobPlugins } from '@bbob/types'; -import { render } from './render'; +import { render } from './render.js'; export type BBobVueComponentProps = { container: string diff --git a/packages/bbob-vue2/src/index.ts b/packages/bbob-vue2/src/index.ts index dded722..abeb21a 100644 --- a/packages/bbob-vue2/src/index.ts +++ b/packages/bbob-vue2/src/index.ts @@ -1,5 +1,5 @@ import type { VueConstructor } from 'vue'; -import Component from './Component'; +import Component from './Component.js'; function install(vue: VueConstructor) { vue.component("bbob-bbcode", Component); @@ -7,6 +7,6 @@ function install(vue: VueConstructor) { vue.component("BBCode", Component); } -export { render } from './render'; +export { render } from './render.js'; export { Component }; export default install; diff --git a/packages/bbob-vue2/tsconfig.json b/packages/bbob-vue2/tsconfig.json index 385f1a8..043d995 100644 --- a/packages/bbob-vue2/tsconfig.json +++ b/packages/bbob-vue2/tsconfig.json @@ -2,7 +2,8 @@ "extends": "../../tsconfig.json", "compilerOptions": { "baseUrl": ".", - "outDir": "./types" + "outDir": "./types", + "moduleResolution": "node" }, "include": [ "./src/**/*" diff --git a/packages/bbob-vue3/package.json b/packages/bbob-vue3/package.json index ed146ca..c3115f0 100644 --- a/packages/bbob-vue3/package.json +++ b/packages/bbob-vue3/package.json @@ -29,16 +29,21 @@ "vue": "*" }, "main": "lib/index.js", - "module": "es/index.js", - "jsnext:main": "es/index.js", + "module": "es/index.mjs", + "jsnext:main": "es/index.mjs", "browser": "dist/index.js", "browserName": "BbobVue3", "types": "types/index.d.ts", "exports": { ".": { - "types": "./types/index.d.ts", - "import": "./es/index.js", - "require": "./lib/index.js", + "import": { + "types": "./types/index.d.mts", + "default": "./es/index.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./lib/index.js" + }, "browser": "./dist/index.min.js", "umd": "./dist/index.min.js" } diff --git a/packages/bbob-vue3/src/Component.ts b/packages/bbob-vue3/src/Component.ts index 21f3273..738e4e4 100644 --- a/packages/bbob-vue3/src/Component.ts +++ b/packages/bbob-vue3/src/Component.ts @@ -1,5 +1,5 @@ import { defineComponent, h, VNode } from "vue"; -import { render } from "./render"; +import { render } from "./render.js"; import type { BBobPlugins, BBobCoreOptions } from "@bbob/types"; diff --git a/packages/bbob-vue3/src/index.ts b/packages/bbob-vue3/src/index.ts index 3ba4dc4..cc2f40b 100644 --- a/packages/bbob-vue3/src/index.ts +++ b/packages/bbob-vue3/src/index.ts @@ -1,5 +1,5 @@ import type { Plugin } from "@vue/runtime-core"; -import Component from "./Component"; +import Component from "./Component.js"; const plugin = { install(app) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0fda2b..e2be080 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -149,6 +149,12 @@ importers: size-limit: specifier: 11.0.1 version: 11.0.1 + ts-jest-resolver: + specifier: ^2.0.1 + version: 2.0.1 + ts2mjs: + specifier: ^4.0.0 + version: 4.0.0 typescript: specifier: 5.1.6 version: 5.1.6 @@ -7517,6 +7523,11 @@ packages: supports-color: 7.2.0 dev: true + /chalk@5.5.0: + resolution: {integrity: sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + /char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -7769,6 +7780,11 @@ packages: engines: {node: '>=14'} dev: true + /commander@14.0.0: + resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} + engines: {node: '>=20'} + dev: true + /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: true @@ -16730,6 +16746,12 @@ packages: typescript: 5.8.2 dev: true + /ts-jest-resolver@2.0.1: + resolution: {integrity: sha512-FolE73BqVZCs8/RbLKxC67iaAtKpBWx7PeLKFW2zJQlOf9j851I7JRxSDenri2NFvVH3QP7v3S8q1AmL24Zb9Q==} + dependencies: + jest-resolve: 29.7.0 + dev: true + /ts-node@10.9.1(@swc/core@1.3.107)(@types/node@20.4.5)(typescript@5.1.6): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true @@ -16810,6 +16832,17 @@ packages: yn: 3.1.1 dev: true + /ts2mjs@4.0.0: + resolution: {integrity: sha512-k+mn9y/2kYNqV7dV9dP2NKw0VY6HfESPqEBwjop0M2AyE6rKd2N/y3DKLtWb0bRjJgFr8uoK8H1Tlr2CKe0oyw==} + engines: {node: '>=20.18.0'} + hasBin: true + dependencies: + chalk: 5.5.0 + commander: 14.0.0 + globby: 14.1.0 + magic-string: 0.30.17 + dev: true + /tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: diff --git a/tsconfig.json b/tsconfig.json index caef933..15157f5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,8 +15,8 @@ "forceConsistentCasingInFileNames": true, "emitDeclarationOnly": true, "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", + "module": "node16", + "moduleResolution": "node16", "resolveJsonModule": true, "downlevelIteration": true, "jsx": "preserve",