@visulima/rollup-plugin-dts 0.0.1 → 1.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ ## @visulima/rollup-plugin-dts [1.0.0-alpha.2](https://github.com/visulima/packem/compare/@visulima/rollup-plugin-dts@1.0.0-alpha.1...@visulima/rollup-plugin-dts@1.0.0-alpha.2) (2026-03-06)
2
+
3
+ ### Bug Fixes
4
+
5
+ * fixed broken publishing ([002f29a](https://github.com/visulima/packem/commit/002f29a6a3edf695d98abae0f18c6b0c328ef832))
package/LICENSE.md ADDED
@@ -0,0 +1,45 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 visulima
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ ---
24
+
25
+ The MIT License (MIT)
26
+
27
+ Copyright © 2025-PRESENT Kevin Deng (https://github.com/sxzz)
28
+
29
+ Permission is hereby granted, free of charge, to any person obtaining a copy
30
+ of this software and associated documentation files (the "Software"), to deal
31
+ in the Software without restriction, including without limitation the rights
32
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
33
+ copies of the Software, and to permit persons to whom the Software is
34
+ furnished to do so, subject to the following conditions:
35
+
36
+ The above copyright notice and this permission notice shall be included in all
37
+ copies or substantial portions of the Software.
38
+
39
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
40
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
41
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
42
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
43
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
44
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
45
+ SOFTWARE.
package/README.md CHANGED
@@ -1,45 +1,248 @@
1
1
  # @visulima/rollup-plugin-dts
2
2
 
3
- ## ⚠️ IMPORTANT NOTICE ⚠️
3
+ [![npm version][npm-version-src]][npm-version-href]
4
+ [![npm downloads][npm-downloads-src]][npm-downloads-href]
5
+ [![License][license-src]][license-href]
4
6
 
5
- **This package is created solely for the purpose of setting up OIDC (OpenID Connect) trusted publishing with npm.**
7
+ A Rollup plugin to generate and bundle TypeScript declaration (`.d.ts`) files.
6
8
 
7
- This is **NOT** a functional package and contains **NO** code or functionality beyond the OIDC setup configuration.
9
+ ## Install
8
10
 
9
- ## Purpose
11
+ Requires **`rollup@4.0.0`** or later.
10
12
 
11
- This package exists to:
12
- 1. Configure OIDC trusted publishing for the package name `@visulima/rollup-plugin-dts`
13
- 2. Enable secure, token-less publishing from CI/CD workflows
14
- 3. Establish provenance for packages published under this name
13
+ ```bash
14
+ npm i -D @visulima/rollup-plugin-dts
15
15
 
16
- ## What is OIDC Trusted Publishing?
16
+ npm i -D typescript # install TypeScript if isolatedDeclarations is not enabled
17
+ npm i -D @typescript/native-preview # install TypeScript Go if tsgo is enabled
18
+ ```
17
19
 
18
- OIDC trusted publishing allows package maintainers to publish packages directly from their CI/CD workflows without needing to manage npm access tokens. Instead, it uses OpenID Connect to establish trust between the CI/CD provider (like GitHub Actions) and npm.
20
+ ## Usage
19
21
 
20
- ## Setup Instructions
22
+ Add the plugin to your `rollup.config.js`:
21
23
 
22
- To properly configure OIDC trusted publishing for this package:
24
+ ```js
25
+ // rollup.config.js
26
+ import { dts } from "@visulima/rollup-plugin-dts";
23
27
 
24
- 1. Go to [npmjs.com](https://www.npmjs.com/) and navigate to your package settings
25
- 2. Configure the trusted publisher (e.g., GitHub Actions)
26
- 3. Specify the repository and workflow that should be allowed to publish
27
- 4. Use the configured workflow to publish your actual package
28
+ export default {
29
+ input: "./src/index.ts",
30
+ plugins: [dts()],
31
+ output: [{ dir: "dist", format: "es" }],
32
+ };
33
+ ```
28
34
 
29
- ## DO NOT USE THIS PACKAGE
35
+ ## Options
30
36
 
31
- This package is a placeholder for OIDC configuration only. It:
32
- - Contains no executable code
33
- - Provides no functionality
34
- - Should not be installed as a dependency
35
- - Exists only for administrative purposes
37
+ Configuration options for the plugin.
36
38
 
37
- ## More Information
39
+ ### General Options
38
40
 
39
- For more details about npm's trusted publishing feature, see:
40
- - [npm Trusted Publishing Documentation](https://docs.npmjs.com/generating-provenance-statements)
41
- - [GitHub Actions OIDC Documentation](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)
41
+ #### `cwd`
42
42
 
43
- ---
43
+ The directory in which the plugin will search for the `tsconfig.json` file.
44
44
 
45
- **Maintained for OIDC setup purposes only**
45
+ #### `dtsInput`
46
+
47
+ Set to `true` if your entry files are `.d.ts` files instead of `.ts` files.
48
+
49
+ When enabled, the plugin will skip generating a `.d.ts` file for the entry point.
50
+
51
+ #### `emitDtsOnly`
52
+
53
+ If `true`, the plugin will emit only `.d.ts` files and remove all other output chunks.
54
+
55
+ This is especially useful when generating `.d.ts` files for the CommonJS format as part of a separate build step.
56
+
57
+ #### `tsconfig`
58
+
59
+ The path to the `tsconfig.json` file.
60
+
61
+ - If set to `false`, the plugin will ignore any `tsconfig.json` file.
62
+ - You can still specify `compilerOptions` directly in the options.
63
+
64
+ **Default:** `'tsconfig.json'`
65
+
66
+ #### `tsconfigRaw`
67
+
68
+ Pass a raw `tsconfig.json` object directly to the plugin.
69
+
70
+ See: [TypeScript tsconfig documentation](https://www.typescriptlang.org/tsconfig)
71
+
72
+ #### `compilerOptions`
73
+
74
+ Override the `compilerOptions` specified in `tsconfig.json`.
75
+
76
+ See: [TypeScript compilerOptions documentation](https://www.typescriptlang.org/tsconfig/#compilerOptions)
77
+
78
+ #### `sourcemap`
79
+
80
+ If `true`, the plugin will generate declaration maps (`.d.ts.map`) for `.d.ts` files.
81
+
82
+ #### `resolve`
83
+
84
+ Controls whether type definitions from `node_modules` are bundled into your final `.d.ts` file or kept as external `import` statements.
85
+
86
+ By default, dependencies are external, resulting in `import { Type } from 'some-package'`. When bundled, this `import` is removed, and the type definitions from `some-package` are copied directly into your file.
87
+
88
+ - `true`: Bundles all dependencies.
89
+ - `false`: (Default) Keeps all dependencies external.
90
+ - `(string | RegExp)[]`: Bundles only dependencies matching the provided strings or regular expressions (e.g. `['pkg-a', /^@scope\//]`).
91
+
92
+ #### `resolver`
93
+
94
+ Specifies a resolver to resolve type definitions, especially for `node_modules`.
95
+
96
+ - `'oxc'`: (Default) Uses Oxc's module resolution, which is faster and more efficient.
97
+ - `'tsc'`: Uses TypeScript's native module resolution, which may be more compatible with complex setups, but slower.
98
+
99
+ **Default:** `'oxc'`
100
+
101
+ #### `cjsDefault`
102
+
103
+ Determines how the default export is emitted.
104
+
105
+ If set to `true`, and you are only exporting a single item using `export default ...`,
106
+ the output will use `export = ...` instead of the standard ES module syntax.
107
+ This is useful for compatibility with CommonJS.
108
+
109
+ #### `sideEffects`
110
+
111
+ Indicates whether the generated `.d.ts` files have side effects.
112
+
113
+ - If `true`, Rollup will treat the `.d.ts` files as having side effects during tree-shaking.
114
+ - If `false`, Rollup may consider the `.d.ts` files as side-effect-free, potentially removing them if they are not imported.
115
+
116
+ **Default:** `false`
117
+
118
+ ### `tsc` Options
119
+
120
+ > [!NOTE]
121
+ > These options are only applicable when `oxc` and `tsgo` are not enabled.
122
+
123
+ #### `banner`
124
+
125
+ Content to be added at the top of each generated `.d.ts` file.
126
+
127
+ #### `footer`
128
+
129
+ Content to be added at the bottom of each generated `.d.ts` file.
130
+
131
+ #### `build`
132
+
133
+ Build mode for the TypeScript compiler:
134
+
135
+ - If `true`, the plugin will use [`tsc -b`](https://www.typescriptlang.org/docs/handbook/project-references.html#build-mode-for-typescript) to build the project and all referenced projects before emitting `.d.ts` files.
136
+ - If `false`, the plugin will use [`tsc`](https://www.typescriptlang.org/docs/handbook/compiler-options.html) to emit `.d.ts` files without building referenced projects.
137
+
138
+ **Default:** `false`
139
+
140
+ #### `incremental`
141
+
142
+ Controls how project references and incremental builds are handled:
143
+
144
+ - If `incremental` is `true`, all built files (including [`.tsbuildinfo`](https://www.typescriptlang.org/tsconfig/#tsBuildInfoFile)) will be written to disk, similar to running `tsc -b` in your project.
145
+ - If `incremental` is `false`, built files are kept in memory, minimizing disk usage.
146
+
147
+ Enabling this option can speed up builds by caching previous results, which is helpful for large projects with multiple references.
148
+
149
+ **Default:** `true` if your `tsconfig` has [`incremental`](https://www.typescriptlang.org/tsconfig/#incremental) or [`tsBuildInfoFile`](https://www.typescriptlang.org/tsconfig/#tsBuildInfoFile) enabled.
150
+
151
+ #### `vue`
152
+
153
+ If `true`, the plugin will generate `.d.ts` files using `vue-tsc`.
154
+
155
+ #### `tsMacro`
156
+
157
+ If `true`, the plugin will generate `.d.ts` files using `@ts-macro/tsc`.
158
+
159
+ #### `parallel`
160
+
161
+ If `true`, the plugin will launch a separate process for `tsc` or `vue-tsc`, enabling parallel processing of multiple projects.
162
+
163
+ #### `eager`
164
+
165
+ If `true`, the plugin will prepare all files listed in `tsconfig.json` for `tsc` or `vue-tsc`.
166
+
167
+ This is especially useful when you have a single `tsconfig.json` for multiple projects in a monorepo.
168
+
169
+ #### `newContext`
170
+
171
+ If `true`, the plugin will create a new isolated context for each build,
172
+ ensuring that previously generated `.d.ts` code and caches are not reused.
173
+
174
+ By default, the plugin may reuse internal caches or incremental build artifacts
175
+ to speed up repeated builds. Enabling this option forces a clean context,
176
+ guaranteeing that all type definitions are generated from scratch.
177
+
178
+ The `invalidateContextFile` API can be used to clear invalidated files from the context:
179
+
180
+ ```ts
181
+ import { globalContext, invalidateContextFile } from "@visulima/rollup-plugin-dts/tsc";
182
+ invalidateContextFile(globalContext, "src/foo.ts");
183
+ ```
184
+
185
+ #### `emitJs`
186
+
187
+ If `true`, the plugin will emit `.d.ts` files for `.js` files as well.
188
+ This is useful when you want to generate type definitions for JavaScript files with JSDoc comments.
189
+
190
+ Enabled by default when `allowJs` in compilerOptions is `true`.
191
+
192
+ ### Oxc
193
+
194
+ #### `oxc`
195
+
196
+ If `true`, the plugin will generate `.d.ts` files using [Oxc](https://oxc.rs/docs/guide/usage/transformer.html), which is significantly faster than the TypeScript compiler.
197
+
198
+ This option is automatically enabled when `isolatedDeclarations` in `compilerOptions` is set to `true`.
199
+
200
+ ### TypeScript Go
201
+
202
+ > [!WARNING]
203
+ > This feature is experimental and not yet recommended for production environments.
204
+
205
+ #### `tsgo`
206
+
207
+ **[Experimental]** Enables DTS generation using [`tsgo`](https://github.com/microsoft/typescript-go).
208
+
209
+ To use this option, ensure that `@typescript/native-preview` is installed as a dependency.
210
+
211
+ `tsconfigRaw` and `compilerOptions` options will be ignored when this option is enabled.
212
+
213
+ ## Differences from `rollup-plugin-dts`
214
+
215
+ ### Isolated Declarations
216
+
217
+ The plugin leverages Oxc's `isolatedDeclarations` to generate `.d.ts` files when `isolatedDeclarations` is enabled,
218
+ offering significantly faster performance compared to the `typescript` compiler.
219
+
220
+ ### Single Build for ESM
221
+
222
+ `@visulima/rollup-plugin-dts` generates separate chunks for `.d.ts` files, enabling both source code (`.js`)
223
+ and type definition files (`.d.ts`) to be produced in a single build process.
224
+
225
+ However, this functionality is limited to ESM output format. Consequently,
226
+ **two** distinct build processes are required for CommonJS source code (`.cjs`)
227
+ and its corresponding type definition files (`.d.cts`).
228
+ In such cases, the `emitDtsOnly` option can be particularly helpful.
229
+
230
+ ## Credits
231
+
232
+ This project is a Rollup adaptation of [rolldown-plugin-dts](https://github.com/sxzz/rolldown-plugin-dts)
233
+ and is inspired by [rollup-plugin-dts](https://github.com/Swatinem/rollup-plugin-dts).
234
+ We extend our gratitude to the original creators for their contributions.
235
+ The test suite is authorized by them and distributed under the MIT license.
236
+
237
+ ## License
238
+
239
+ [MIT](./LICENSE) License © 2025-present [Daniel Bannert](https://github.com/prisis)
240
+
241
+ <!-- Badges -->
242
+
243
+ [npm-version-src]: https://img.shields.io/npm/v/@visulima/rollup-plugin-dts.svg?style=flat-square
244
+ [npm-version-href]: https://npmjs.com/package/@visulima/rollup-plugin-dts
245
+ [npm-downloads-src]: https://img.shields.io/npm/dm/@visulima/rollup-plugin-dts.svg?style=flat-square
246
+ [npm-downloads-href]: https://www.npmcharts.com/compare/@visulima/rollup-plugin-dts?interval=30
247
+ [license-src]: https://img.shields.io/npm/l/@visulima/rollup-plugin-dts.svg?style=flat-square
248
+ [license-href]: https://npmjs.com/package/@visulima/rollup-plugin-dts
@@ -0,0 +1,17 @@
1
+ import { PreRenderedChunk } from 'rollup';
2
+
3
+ declare const RE_JS: RegExp;
4
+ declare const RE_TS: RegExp;
5
+ declare const RE_DTS: RegExp;
6
+ declare const RE_DTS_MAP: RegExp;
7
+ declare const RE_NODE_MODULES: RegExp;
8
+ declare const RE_CSS: RegExp;
9
+ declare const RE_VUE: RegExp;
10
+ declare const RE_JSON: RegExp;
11
+ declare const filename_js_to_dts: (id: string) => string;
12
+ declare const filename_to_dts: (id: string) => string;
13
+ declare const filename_dts_to: (id: string, extension: "js" | "ts") => string;
14
+ declare const resolveTemplateFn: (function_: ((chunk: PreRenderedChunk) => string) | string, chunk: PreRenderedChunk) => string;
15
+ declare const replaceTemplateName: (template: string, name: string) => string;
16
+
17
+ export { RE_CSS, RE_DTS, RE_DTS_MAP, RE_JS, RE_JSON, RE_NODE_MODULES, RE_TS, RE_VUE, filename_dts_to, filename_js_to_dts, filename_to_dts, replaceTemplateName, resolveTemplateFn };
@@ -0,0 +1 @@
1
+ var _=Object.defineProperty;var l=(e,t)=>_(e,"name",{value:t,configurable:!0});var m=Object.defineProperty,a=l((e,t)=>m(e,"name",{value:t,configurable:!0}),"s");const s=/\.([cm]?)jsx?$/,r=/\.([cm]?)tsx?$/,c=/\.d\.([cm]?)ts$/,d=/\.d\.([cm]?)ts\.map$/,$=/[\\/]node_modules[\\/]/,E=/\.css$/,n=/\.vue$/,o=/\.json$/,f=a(e=>e.replace(s,".d.$1ts"),"filename_js_to_dts"),i=a(e=>e.replace(n,".vue.ts").replace(r,".d.$1ts").replace(s,".d.$1ts").replace(o,".json.d.ts"),"filename_to_dts"),R=a((e,t)=>e.replace(c,`.$1${t}`),"filename_dts_to"),S=a((e,t)=>typeof e=="function"?e(t):e,"resolveTemplateFn"),u=a((e,t)=>e.replaceAll("[name]",t),"replaceTemplateName");export{E as RE_CSS,c as RE_DTS,d as RE_DTS_MAP,s as RE_JS,o as RE_JSON,$ as RE_NODE_MODULES,r as RE_TS,n as RE_VUE,R as filename_dts_to,f as filename_js_to_dts,i as filename_to_dts,u as replaceTemplateName,S as resolveTemplateFn};
@@ -0,0 +1,56 @@
1
+ import { AddonFunction, Plugin } from 'rollup';
2
+ import { TsConfigJson } from '@visulima/tsconfig';
3
+ import { IsolatedDeclarationsOptions } from 'oxc-transform';
4
+ export { RE_CSS, RE_DTS, RE_DTS_MAP, RE_JS, RE_JSON, RE_NODE_MODULES, RE_TS, RE_VUE } from './filename.js';
5
+
6
+ interface GeneralOptions {
7
+ cjsDefault?: boolean;
8
+ compilerOptions?: TsConfigJson.CompilerOptions;
9
+ cwd?: string;
10
+ dtsInput?: boolean;
11
+ emitDtsOnly?: boolean;
12
+ resolve?: boolean | (string | RegExp)[];
13
+ resolver?: "oxc" | "tsc";
14
+ sideEffects?: boolean;
15
+ sourcemap?: boolean;
16
+ tsconfig?: string | boolean;
17
+ tsconfigRaw?: Omit<TsConfigJson, "compilerOptions">;
18
+ }
19
+ interface TscOptions {
20
+ banner?: string | Promise<string> | AddonFunction;
21
+ build?: boolean;
22
+ eager?: boolean;
23
+ emitJs?: boolean;
24
+ footer?: string | Promise<string> | AddonFunction;
25
+ incremental?: boolean;
26
+ newContext?: boolean;
27
+ parallel?: boolean;
28
+ tsMacro?: boolean;
29
+ vue?: boolean;
30
+ }
31
+ interface Options extends GeneralOptions, TscOptions {
32
+ oxc?: boolean | Omit<IsolatedDeclarationsOptions, "sourcemap">;
33
+ tsgo?: boolean | {
34
+ path?: string;
35
+ };
36
+ }
37
+ type Overwrite<T, U> = Pick<T, Exclude<keyof T, keyof U>> & U;
38
+ type MarkPartial<T, K extends keyof T> = Omit<Required<T>, K> & Partial<Pick<T, K>>;
39
+ type OptionsResolved = Overwrite<MarkPartial<Omit<Options, "compilerOptions">, "banner" | "footer">, {
40
+ oxc: IsolatedDeclarationsOptions | false;
41
+ tsconfig?: string;
42
+ tsconfigRaw: TsConfigJson;
43
+ tsgo: {
44
+ path?: string;
45
+ } | false;
46
+ }>;
47
+ declare const resolveOptions: ({ banner, build, cjsDefault, compilerOptions, cwd, dtsInput, eager, emitDtsOnly, emitJs, footer, incremental, newContext, oxc, parallel, resolve, resolver, sideEffects, sourcemap, tsconfig, tsconfigRaw: overriddenTsconfigRaw, tsgo: tsgoOption, tsMacro, vue, }: Options) => OptionsResolved;
48
+
49
+ declare const createFakeJsPlugin: ({ cjsDefault, sideEffects, sourcemap }: Pick<OptionsResolved, "sourcemap" | "cjsDefault" | "sideEffects">) => Plugin;
50
+
51
+ declare const createGeneratePlugin: ({ build, cwd, eager, emitDtsOnly, emitJs, incremental, newContext, oxc, parallel, sourcemap, tsconfig, tsconfigRaw, tsgo, tsMacro, vue, }: Pick<OptionsResolved, "cwd" | "tsconfig" | "tsconfigRaw" | "build" | "incremental" | "oxc" | "emitDtsOnly" | "vue" | "tsMacro" | "parallel" | "eager" | "tsgo" | "newContext" | "emitJs" | "sourcemap">) => Plugin;
52
+
53
+ declare const dts: (options?: Options) => Plugin[];
54
+
55
+ export { createFakeJsPlugin, createGeneratePlugin, dts, resolveOptions };
56
+ export type { Options };
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ var R=Object.defineProperty;var c=(t,e)=>R(t,"name",{value:e,configurable:!0});import{createDebug as w}from"obug";import O from"magic-string";import{RE_DTS as p,resolveTemplateFn as F,replaceTemplateName as h,RE_TS as N,RE_VUE as D,RE_JSON as $,RE_CSS as k,RE_NODE_MODULES as j,filename_to_dts as x}from"./filename.js";import{RE_DTS_MAP as ie,RE_JS as ae}from"./filename.js";import T from"./packem_shared/createFakeJsPlugin-C_PkEz9j.js";import{c as C}from"./packem_shared/generate-CxhgFvNH.js";import{resolveOptions as I}from"./packem_shared/resolveOptions-CpYBT-5y.js";import S from"node:path";import{ResolverFactory as J}from"oxc-resolver";var M=Object.defineProperty,A=c((t,e)=>M(t,"name",{value:e,configurable:!0}),"o$1");const U=A(({banner:t,footer:e})=>({name:"rollup-plugin-dts:banner",async renderChunk(r,a){if(!p.test(a.fileName))return;const o=new O(r);if(t){const l=await(typeof t=="function"?t(a):t);l&&o.prepend(`${l}
2
+ `)}if(e){const l=await(typeof e=="function"?e(a):e);l&&o.append(`
3
+ ${l}`)}return{code:o.toString(),get map(){return o.generateMap({hires:"boundary",includeContent:!0,source:a.fileName})}}}}),"createBannerPlugin");var W=Object.defineProperty,q=c((t,e)=>W(t,"name",{value:e,configurable:!0}),"m");const z=q(({sideEffects:t})=>({name:"rollup-plugin-dts:dts-input",options:t===!1?e=>({treeshake:e.treeshake===!1?!1:{...typeof e.treeshake=="object"&&e.treeshake!==null?e.treeshake:{},moduleSideEffects:!1},...e}):void 0,outputOptions(e){return{...e,entryFileNames(r){const{entryFileNames:a}=e;if(a){const o=F(a,r),l=h(o,r.name);if(p.test(l))return o;const d=h(o,`${r.name}.d`);if(p.test(d))return d}return p.test(r.name)?r.name:r.name.endsWith(".d")?"[name].ts":"[name].d.ts"}}}}),"createDtsInputPlugin");var B=Object.defineProperty,v=c((t,e)=>B(t,"name",{value:e,configurable:!0}),"o");const g=v(t=>N.test(t)||D.test(t)||$.test(t),"isSourceFile"),G=v(({cwd:t,resolve:e,resolver:r,sideEffects:a,tsconfig:o,tsconfigRaw:l})=>{const d=new J({conditionNames:["types","typings","import","require"],mainFields:["types","typings","module","main"],tsconfig:o?{configFile:o,references:"auto"}:void 0}),y=a?!0:null;return{name:"rollup-plugin-dts:resolver",resolveId:{async handler(s,i,u){if(!i||!p.test(i))return;const n={external:!0,id:s,moduleSideEffects:a};if(k.test(s))return n;const m=await this.resolve(s,i,u);if(m?.external)return n;const f=await P(s,i,m);return f?j.test(f)&&!_(s)?n:p.test(f)?{id:f,moduleSideEffects:y}:g(f)?(await this.load({id:f}),{id:x(f),moduleSideEffects:y}):null:E(s)?null:n},order:"pre"}};function _(s){return typeof e=="boolean"?e:e.some(i=>typeof i=="string"?s===i:i.test(s))}async function P(s,i,u){let n;if(r==="tsc"){const{default:m}=await import("./packem_chunks/resolver.js");n=m(s,i,t,o,l)}else n=d.resolveDtsSync(i,s).path;return n&&(n=S.normalize(n)),!n||!g(n)?u&&E(u.id)&&g(u.id)&&!u.external?u.id:null:n}},"createDtsResolvePlugin"),E=v(t=>t.startsWith(".")||S.isAbsolute(t),"isFilePath");var L=Object.defineProperty,V=c((t,e)=>L(t,"name",{value:e,configurable:!0}),"t");const b=w("rollup-plugin-dts:options"),ne=V((t={})=>{b("resolving dts options");const e=I(t);b("resolved dts options %o",e);const r=[];return t.dtsInput?r.push(z(e)):r.push(C(e)),r.push(G(e),T(e)),(t.banner||t.footer)&&r.push(U(e)),r},"dts");export{k as RE_CSS,p as RE_DTS,ie as RE_DTS_MAP,ae as RE_JS,$ as RE_JSON,j as RE_NODE_MODULES,N as RE_TS,D as RE_VUE,T as createFakeJsPlugin,C as createGeneratePlugin,ne as dts,I as resolveOptions};
@@ -0,0 +1 @@
1
+ var q=Object.defineProperty;var h=(e,t)=>q(e,"name",{value:t,configurable:!0});import{createDebug as P}from"obug";import u from"typescript";import{g as F,X as N}from"../packem_shared/generate-CxhgFvNH.js";import{posix as w}from"node:path";import{pathToFileURL as j}from"node:url";var T=Object.defineProperty,S=h((e,t)=>T(e,"name",{value:t,configurable:!0}),"i");const U=P("rollup-plugin-dts:tsc-system"),x=S(e=>({...u.sys,deleteFile(t,...r){e.delete(t),u.sys.deleteFile?.(t,...r)},directoryExists(t){return[...e.keys()].some(r=>r.startsWith(t))?!0:u.sys.directoryExists(t)},fileExists(t){return e.has(t)?!0:u.sys.fileExists(t)},readFile(t,...r){return e.has(t)?e.get(t):u.sys.readFile(t,...r)},resolvePath(t){return e.has(t)?t:u.sys.resolvePath(t)},write(t){U(t)},writeFile(t,r,...o){e.set(t,r),u.sys.writeFile(t,r,...o)}}),"createFsSystem"),B=S(e=>({...x(e),deleteFile(t){e.delete(t)},writeFile(t,r){e.set(t,r)}}),"createMemorySystem");var J=Object.defineProperty,$=h((e,t)=>J(e,"name",{value:t,configurable:!0}),"s$1");const W=$(e=>{const t=$(r=>u.isPropertySignature(r)&&u.isPrivateIdentifier(r.name)?e.factory.updatePropertySignature(r,r.modifiers,e.factory.createStringLiteral(r.name.text),r.questionToken,r.type):u.visitEachChild(r,t,e),"visitor");return r=>u.visitNode(r,t,u.isSourceFile)??r},"stripPrivateFields"),M={getCanonicalFileName:u.sys.useCaseSensitiveFileNames?e=>e:e=>e.toLowerCase(),getCurrentDirectory:$(()=>u.sys.getCurrentDirectory(),"getCurrentDirectory"),getNewLine:$(()=>u.sys.newLine,"getNewLine")},O={afterDeclarations:[W]},R=$((e,t,r)=>{if(!e||e.sourceRoot)return;const o=w.dirname(j(t).pathname),s=w.dirname(j(r).pathname);o!==s&&(e.sourceRoot=w.relative(s,o))},"setSourceMapRoot");var z=Object.defineProperty,m=h((e,t)=>z(e,"name",{value:t,configurable:!0}),"f");const g=P("rollup-plugin-dts:tsc-build"),H=m((e,t,r,o,s)=>{let i=e.projects.get(r);return i?(g(`skip building projects for ${r}`),i):(i=G(t,r,o,s),e.projects.set(r,i),i)},"getOrBuildProjects"),G=m((e,t,r,o)=>{g(`start building projects for ${t}`);const s=V(t,e,r,o);g("collected %d projects: %j",s.length,s.map(n=>n.tsconfigPath));const i=u.createSolutionBuilderHost(e,I),l=u.createSolutionBuilder(i,[t],{force:r,verbose:!0}).build(void 0,void 0,void 0,n=>(g(`transforming project ${n}`),O));g(`built solution for ${t} with exit status ${l}`);const a=new Map;for(const n of s)for(const c of n.parsedConfig.fileNames)a.set(e.resolvePath(c),n);return a},"buildProjects"),V=m((e,t,r,o)=>{const s=new Set,i=[],l=[t.resolvePath(e)];for(;;){const a=l.pop();if(!a)break;if(s.has(a))continue;s.add(a);const n=A(a,t);if(n){n.options=D(n.options,{force:r,sourcemap:o,tsconfigPath:a}),i.push({parsedConfig:n,tsconfigPath:a});for(const c of n.projectReferences??[])l.push(u.resolveProjectReferencePath(c))}}return i},"collectProjectGraph"),A=m((e,t)=>{const r=[],o=u.getParsedCommandLineOfConfigFile(e,void 0,{...t,onUnRecoverableConfigFileDiagnostic:m(s=>{r.push(s)},"onUnRecoverableConfigFileDiagnostic")});if(r.length>0)throw new Error(`[rollup-plugin-dts] Unable to read ${e}: ${u.formatDiagnostics(r,M)}`);return o},"parseTsconfig"),D=m((e,t)=>{const r=e.noEmit??!1,o=e.declaration??!!e.composite,s=e.declarationMap??!1,i=t?.tsconfigPath&&!t.force;return r===!0&&(e={...e,noEmit:!1},i&&console.warn(`[rollup-plugin-dts] ${t.tsconfigPath} has "noEmit" set to true. Please set it to false to generate declaration files.`)),o===!1&&(e={...e,declaration:!0},i&&console.warn(`[rollup-plugin-dts] ${t.tsconfigPath} has "declaration" set to false. Please set it to true to generate declaration files.`)),s===!1&&t?.sourcemap&&(e={...e,declarationMap:!0},i&&console.warn(`[rollup-plugin-dts] ${t.tsconfigPath} has "declarationMap" set to false. Please set it to true if you want to generate source maps for declaration files.`)),e},"patchCompilerOptions"),I=m((e,t,...r)=>u.createEmitAndSemanticDiagnosticsBuilderProgram(e,D(t??{},null),...r),"createProgramWithPatchedCompilerOptions"),L=m(e=>{const{context:t=F,id:r,incremental:o,sourcemap:s,tsconfig:i}=e;if(g(`running tscEmitBuild id: ${r}, tsconfig: ${i}, incremental: ${o}`),!i)return{error:"[rollup-plugin-dts] build mode requires a tsconfig path"};const l=(o?x:B)(t.files),a=l.resolvePath(r);a!==r&&g(`resolved id from ${r} to ${a}`);const n=H(t,l,i,!o,s).get(a);if(!n)return g(`unable to locate a project containing ${a}`),{error:`Unable to locate ${r} from the given tsconfig file ${i}`};g(`loaded project ${n.tsconfigPath} for ${r}`);const c=!l.useCaseSensitiveFileNames,f=u.getOutputFileNames(n.parsedConfig,a,c);let v,y;for(const d of f){if(d.endsWith(".d.ts")){if(!l.fileExists(d)){console.warn(`[rollup-plugin-dts] Unable to read file ${d}`);continue}v=l.readFile(d);continue}if(d.endsWith(".d.ts.map")){if(!l.fileExists(d))continue;const E=l.readFile(d);if(!E){console.warn(`[rollup-plugin-dts] Unexpected sourcemap ${d}`);continue}y=JSON.parse(E),R(y,d,a)}}return v?{code:v,map:y}:o?(g("incremental build failed"),L({...e,incremental:!1})):(g(`unable to build .d.ts file for ${r}`),n.parsedConfig.options.declaration!==!0?{error:`Unable to build .d.ts file for ${r}; Make sure the "declaration" option is set to true in ${n.tsconfigPath}`}:{error:`Unable to build .d.ts file for ${r}; This seems like a bug of rollup-plugin-dts. Please report this issue to https://github.com/sxzz/rollup-plugin-dts/issues`})},"tscEmitBuild");var K=Object.defineProperty,b=h((e,t)=>K(e,"name",{value:t,configurable:!0}),"g");const X=b(()=>{const e=P("rollup-plugin-dts:vue");e("loading vue language tools");try{const t=require.resolve("vue-tsc"),{proxyCreateProgram:r}=require(require.resolve("@volar/typescript",{paths:[t]})),o=require(require.resolve("@vue/language-core",{paths:[t]}));return{getLanguagePlugin:b((s,i)=>{const l=i.options.$rootDir,a=i.options.$configRaw,n=new o.CompilerOptionsResolver(s,s.sys.readFile);n.addConfig(a?.vueCompilerOptions??{},l);const c=n.build();return o.createVueLanguagePlugin(s,i.options,c,f=>f)},"getLanguagePlugin"),proxyCreateProgram:r}}catch(t){throw e("vue language tools not found",t),new Error("Failed to load vue language tools. Please manually install vue-tsc.")}},"loadVueLanguageTools"),Y=b(()=>{const e=P("rollup-plugin-dts:ts-macro");e("loading ts-macro language tools");try{const t=require.resolve("@ts-macro/tsc"),{proxyCreateProgram:r}=require(require.resolve("@volar/typescript",{paths:[t]})),o=require(require.resolve("@ts-macro/language-plugin",{paths:[t]})),{getOptions:s}=require(require.resolve("@ts-macro/language-plugin/options",{paths:[t]}));return{getLanguagePlugin:b((i,l)=>{const a=l.options.$rootDir;return o.getLanguagePlugins(i,l.options,s(i,a))[0]},"getLanguagePlugin"),proxyCreateProgram:r}}catch(t){throw e("ts-macro language tools not found",t),new Error("Failed to load ts-macro language tools. Please manually install @ts-macro/tsc.")}},"loadTsMacro"),Q=b((e,t)=>{const r=t.vue?X():void 0,o=t.tsMacro?Y():void 0,s=r?.proxyCreateProgram||o?.proxyCreateProgram;return s?s(e,e.createProgram,(i,l)=>{const a=[];return r&&a.push(r.getLanguagePlugin(i,l)),o&&a.push(o.getLanguagePlugin(i,l)),{languagePlugins:a}}):e.createProgram},"createProgramFactory");var Z=Object.defineProperty,C=h((e,t)=>Z(e,"name",{value:t,configurable:!0}),"m");const p=P("rollup-plugin-dts:tsc-compiler"),_={checkJs:!1,declaration:!0,declarationMap:!1,emitDeclarationOnly:!0,moduleResolution:u.ModuleResolutionKind.Bundler,noEmit:!1,noEmitOnError:!0,resolveJsonModule:!0,skipLibCheck:!0,target:99},ee=C(e=>{const{context:t=F,entries:r,id:o}=e,s=t.programs.find(l=>{const a=l.getRootFileNames();return r?r.every(n=>a.includes(n)):a.includes(o)});if(s){const l=s.getSourceFile(o);if(l)return{file:l,program:s}}p(`create program for module: ${o}`);const i=te(e);return p(`created program for module: ${o}`),t.programs.push(i.program),i},"createOrGetTsModule"),te=C(({context:e=F,cwd:t,entries:r,id:o,tsconfig:s,tsconfigRaw:i,tsMacro:l,vue:a})=>{const n=x(e.files),c=s?N(s):t,f=u.parseJsonConfigFileContent(i,n,c);return p(`Creating program for root project: ${c}`),re({baseDir:c,entries:r,fsSystem:n,id:o,parsedConfig:f,tsMacro:l,vue:a})},"createTsProgram"),re=C(({baseDir:e,entries:t,fsSystem:r,id:o,parsedConfig:s,tsMacro:i,vue:l})=>{const a={..._,...s.options,$configRaw:s.raw,$rootDir:e},n=[...new Set([o,...t||s.fileNames].map(y=>r.resolvePath(y)))],c=u.createCompilerHost(a,!0),f=Q(u,{tsMacro:i,vue:l})({host:c,options:a,projectReferences:s.projectReferences,rootNames:n}),v=f.getSourceFile(o);if(!v)throw p(`source file not found in program: ${o}`),s.projectReferences?.length?new Error(`[rollup-plugin-dts] Unable to load ${o}; You have "references" in your tsconfig file. Perhaps you want to add \`dts: { build: true }\` in your config?`):r.fileExists(o)?(p(`File ${o} exists on disk.`),new Error(`Unable to load file ${o} from the program. This seems like a bug of rollup-plugin-dts. Please report this issue to https://github.com/sxzz/rollup-plugin-dts/issues`)):(p(`File ${o} does not exist on disk.`),new Error(`Source file not found: ${o}`));return{file:v,program:f}},"createTsProgramFromParsedConfig"),oe=C(e=>{p(`running tscEmitCompiler ${e.id}`);const t=ee(e),{file:r,program:o}=t;p(`got source file: ${r.fileName}`);let s,i;const{diagnostics:l,emitSkipped:a}=o.emit(r,(n,c)=>{n.endsWith(".map")?(p(`emit dts sourcemap: ${n}`),i=JSON.parse(c),R(i,n,e.id)):(p(`emit dts: ${n}`),s=c)},void 0,!0,O,!0);return a&&l.length>0?{error:u.formatDiagnostics(l,M)}:(!s&&r.isDeclarationFile&&(p("nothing was emitted. fallback to sourceFile text."),s=r.getFullText()),{code:s,map:i})},"tscEmitCompiler");var se=Object.defineProperty,ie=h((e,t)=>se(e,"name",{value:t,configurable:!0}),"r");const k=P("rollup-plugin-dts:tsc");k(`loaded typescript: ${u.version}`);const pe=ie(e=>(k(`running tscEmit ${e.id}`),e.build?L(e):oe(e)),"tscEmit");export{pe as tscEmit};
@@ -0,0 +1 @@
1
+ var m=Object.defineProperty;var l=(e,o)=>m(e,"name",{value:o,configurable:!0});import p from"node:path";import{createDebug as v}from"obug";import r from"typescript";var c=Object.defineProperty,f=l((e,o)=>c(e,"name",{value:o,configurable:!0}),"t");const g=v("rollup-plugin-dts:tsc-resolver"),F=f((e,o,n,s,i,a)=>{const d=s?p.dirname(s):n,u=r.parseJsonConfigFileContent(i,r.sys,d),t=r.bundlerModuleNameResolver(e,o,u.options,r.sys,void 0,a);return g('tsc resolving id "%s" from "%s" -> %O',e,o,t.resolvedModule),t.resolvedModule?.resolvedFileName},"tscResolve");export{F as default};
@@ -0,0 +1 @@
1
+ var xe=Object.defineProperty;var D=(e,n)=>xe(e,"name",{value:n,configurable:!0});import X from"node:path";import{generate as Y}from"@babel/generator";import{isIdentifierName as ge}from"@babel/helper-validator-identifier";import{parse as Z}from"@babel/parser";import f from"@babel/types";import{isTypeOf as C,isDeclarationType as Se,walkAST as V,resolveString as B,isIdentifierOf as ie}from"ast-kit";import{RE_DTS as _,resolveTemplateFn as he,filename_js_to_dts as ee,replaceTemplateName as te,filename_dts_to as ne,RE_DTS_MAP as Ee,filename_to_dts as be}from"../filename.js";var De=Object.defineProperty,S=D((e,n)=>De(e,"name",{value:n,configurable:!0}),"o");const $="__rollup_dts_resolve__:",We=S(({cjsDefault:e,sideEffects:n,sourcemap:g})=>{let r=0;const T=new Map,N=new Map,A=new Map;return{generateBundle(s,o){const d=new Map;for(const i of Object.values(o))if(i.type==="chunk")for(const u of i.moduleIds)d.set(u,i.fileName);const c=new RegExp(`"${$}(.+?)"`,"g");for(const i of Object.values(o))i.type!=="chunk"||!_.test(i.fileName)||i.code.includes($)&&(i.code=i.code.replaceAll(c,(u,E)=>{const a=d.get(E);if(!a)return u;let y=X.posix.relative(X.posix.dirname(i.fileName),a);return y.startsWith(".")||(y=`./${y}`),y=ne(y,"js"),JSON.stringify(y)}));for(const i of Object.values(o))if(Ee.test(i.fileName))if(g){if(i.type==="chunk"||typeof i.source!="string")continue;const u=JSON.parse(i.source);u.sourcesContent=void 0,i.source=JSON.stringify(u)}else delete o[i.fileName]},name:"rollup-plugin-dts:fake-js",outputOptions(s){const{chunkFileNames:o,entryFileNames:d}=s;return(s.format==="cjs"||s.format==="commonjs")&&(s={...s,format:"es"}),{...s,chunkFileNames(c){const i=he(c.isEntry?d||"[name].js":o||"[name]-[hash].js",c);if(c.name.endsWith(".d")){const u=ee(te(i,c.name.slice(0,-2)));if(_.test(u))return u;const E=ee(te(i,c.name));if(_.test(E))return E}return i},sourcemap:s.sourcemap||g}},renderChunk:j,async transform(s,o){if(_.test(o))return O.call(this,s,o)}};async function O(s,o){const d=Object.create(null),c=Z(s,{createParenthesizedExpressions:!0,errorRecovery:!0,plugins:[["typescript",{dts:!0}]],sourceType:"module"}),{comments:i,program:u}=c,E=[];if(i){const m=ae(i);N.set(o,m)}const a=[],y=new Map;for(const[m,t]of u.body.entries()){const v=S(l=>u.body[m]=l,"setStmt");if(Me(t,v,E))continue;const h=t.type==="TSModuleDeclaration"&&t.kind!=="namespace";let b;if(h&&t.id.type==="StringLiteral"){const l=await this.resolve(t.id.value,o);l&&!l.external?b=_.test(l.id)?l.id:be(l.id):t.id.value[0]==="."&&this.warn(`\`declare module ${JSON.stringify(t.id.value)}\` will be kept as-is in the output. Relative module declaration may cause unexpected issues. Found in ${o}.`)}if(h&&o.endsWith(".vue.d.ts")&&s.slice(t.start,t.end).includes("__VLS_"))continue;const k=t.type==="ExportDefaultDeclaration",R=C(t,["ExportNamedDeclaration","ExportDefaultDeclaration"])&&t.declaration,p=R?t.declaration:t,I=R?l=>t.declaration=l:v;if(p.type!=="TSDeclareFunction"&&!Se(p))continue;C(p,["TSEnumDeclaration","ClassDeclaration","FunctionDeclaration","TSDeclareFunction","TSModuleDeclaration","VariableDeclaration"])&&(p.declare=!0);const x=[];if(p.type==="VariableDeclaration")x.push(...p.declarations.map(l=>l.id));else if("id"in p&&p.id){let l=p.id;l.type==="TSQualifiedName"&&(l=W(l)),l=h?f.identifier(`_${P(d,"")}`):l,x.push(l)}else{const l=f.identifier("export_default");x.push(l),p.id=l}const F=pe(p),J=new Set,L=de(p,y,J,d),Q=[...J].filter(l=>x.every(ye=>l!==ye));p!==t&&(p.leadingComments=t.leadingComments);const ue=K({bindings:x,children:Q,decl:p,deps:L,params:F,resolvedModuleId:b}),q=f.numericLiteral(ue),z=f.arrowFunctionExpression(F.map(({name:l})=>f.identifier(l)),f.arrayExpression(L)),H=f.arrayExpression(Q.map(l=>({end:l.end,loc:l.loc,start:l.start,type:"StringLiteral",value:""}))),U=h&&f.callExpression(f.identifier("sideEffect"),[x[0]]),me=Ne(U?[q,z,H,U]:[q,z,H]),G={declarations:[{id:{...x[0],typeAnnotation:null},init:me,type:"VariableDeclarator"},...x.slice(1).map(l=>({id:{...l,typeAnnotation:null},type:"VariableDeclarator"}))],kind:"var",type:"VariableDeclaration"};k?(a.push(f.exportNamedDeclaration(null,[f.exportSpecifier(x[0],f.identifier("default"))])),v(G)):I(G)}return n&&a.push(f.expressionStatement(f.callExpression(f.identifier("sideEffect"),[]))),u.body=[...Array.from(y.values(),({stmt:m})=>m),...u.body,...a],A.set(o,E),Y(c,{comments:!1,sourceFileName:o,sourceMaps:g})}function j(s,o){if(!_.test(o.fileName))return;const d=[];for(const a of o.moduleIds){const y=A.get(a);y&&d.push(...y)}const c=Z(s,{sourceType:"module"}),{program:i}=c;if(i.body=Ce(i.body),i.body=ke(i.body),i.body=i.body.map(a=>{if(je(a)||a.type==="ExpressionStatement")return null;const y=we(a,d,e);if(y||y===!1)return y;if(a.type!=="VariableDeclaration")return a;if(!ve(a))return null;const[m,t,v]=a.declarations[0].init.elements,h=m.value,b=le(h);V(b.decl,{enter(p){p.type!=="CommentBlock"&&delete p.loc}});for(const[p,I]of a.declarations.entries()){const x={...I.id,typeAnnotation:b.bindings[p].typeAnnotation};M(b.bindings[p],x)}for(const[p,I]of v.elements.entries())Object.assign(b.children[p],{loc:I.loc});const k=t.params;for(const[p,I]of k.entries()){const x=I.name;for(const F of b.params[p].typeParams)F.name=x}const R=t.body.elements;for(let p=0;p<b.deps.length;p++){const I=b.deps[p];let x=R[p];x&&x.type==="UnaryExpression"&&x.operator==="void"&&(x={...f.identifier("undefined"),end:x.end,loc:x.loc,start:x.start}),I.replace?I.replace(x):Object.assign(I,x)}return b.decl.type==="TSModuleDeclaration"&&b.resolvedModuleId&&(b.decl.id.value=$+b.resolvedModuleId),Ae(a,b.decl)}).filter(a=>!!a),i.body.length===0)return"export { };";const u=new Set,E=new Set;for(const a of o.moduleIds){const y=N.get(a);y&&(y.forEach(m=>{const t=m.type+m.value;E.has(t)||(E.add(t),u.add(m))}),N.delete(a))}return u.size>0&&(i.body[0].leadingComments||=[],i.body[0].leadingComments.unshift(...u)),Y(c,{comments:!0,sourceFileName:o.fileName,sourceMaps:g})}function P(s,o){return o in s?s[o]++:s[o]=0}function K(s){const o=r++;return T.set(o,s),o}function le(s){return T.get(s)}function pe(s){const o=[];V(s,{leave(c){"typeParameters"in c&&c.typeParameters?.type==="TSTypeParameterDeclaration"&&o.push(...c.typeParameters.params)}});const d=new Map;for(const c of o){const{name:i}=c,u=d.get(i);u?u.push(c):d.set(i,[c])}return Array.from(d.entries(),([c,i])=>({name:c,typeParams:i}))}function ce(s){const o=[];return V(s,{enter(d){d.type==="TSInferType"&&d.typeParameter&&o.push(d.typeParameter.name)}}),o}function de(s,o,d,c){const i=new Set,u=new Set,E=[];let a=new Set;function y(t){return t.type==="Identifier"&&a.has(t.name)}return D(y,"l"),S(y,"isInferred"),V(s,{enter(t){if(t.type==="TSConditionalType"){const v=ce(t.extendsType);E.push(v)}},leave(t,v){if(t.type==="TSConditionalType")E.pop();else if(v?.type==="TSConditionalType"){const h=v.trueType===t;a=new Set((h?E:E.slice(0,-1)).flat())}else a=new Set;if(t.type==="ExportNamedDeclaration")for(const h of t.specifiers)h.type==="ExportSpecifier"&&m(h.local);else if(t.type==="TSInterfaceDeclaration"&&t.extends)for(const h of t.extends||[])m(w(h.expression));else if(t.type==="ClassDeclaration"){if(t.superClass&&m(t.superClass),t.implements)for(const h of t.implements)h.type!=="ClassImplements"&&m(w(h.expression))}else if(C(t,["ObjectMethod","ObjectProperty","ClassProperty","TSPropertySignature","TSDeclareMethod"]))t.computed&&re(t.key)&&m(t.key),"value"in t&&re(t.value)&&m(t.value);else switch(t.type){case"TSImportType":{u.add(t);const h=t.argument,b=t.qualifier,k=fe(t,b,h,o,c);m(k);break}case"TSTypeQuery":{if(u.has(t.exprName))return;if(t.exprName.type==="TSImportType")break;m(w(t.exprName));break}case"TSTypeReference":{m(w(t.typeName));break}}v&&!i.has(t)&&oe(t,v)&&d.add(t)}}),[...i];function m(t){se(t)||y(t)||i.add(t)}D(m,"S")}function fe(s,o,d,c,i){const u=d.value.replaceAll(/\W/g,"_"),E=ge(d.value)?d.value:`${u}${P(i,u)}`;let a=f.identifier(E);if(c.has(d.value)?a=c.get(d.value).local:c.set(d.value,{local:a,stmt:f.importDeclaration([f.importNamespaceSpecifier(a)],d)}),o){const m=W(o);M(m,f.tsQualifiedName(a,{...m})),a=o}let y=s;return s.typeParameters?(M(s,f.tsTypeReference(a,s.typeParameters)),y=a):M(s,a),{...w(a),replace(m){M(y,m)}}}},"createFakeJsPlugin");function oe(e,n){return!!(e.type==="Identifier"||C(n,["TSPropertySignature","TSMethodSignature"])&&n.key===e)}D(oe,"De");S(oe,"isChildSymbol");const Te=/\/\s*<reference\s+(?:path|types)=/,ae=S((e,n=!1)=>e.filter(g=>Te.test(g.value)!==n),"collectReferenceDirectives"),ve=S(e=>f.isVariableDeclaration(e)&&e.declarations.length>0&&f.isVariableDeclarator(e.declarations[0])&&Ie(e.declarations[0].init),"isRuntimeBindingVariableDeclaration"),Ie=S(e=>f.isArrayExpression(e)&&_e(e.elements),"isRuntimeBindingArrayExpression"),Ne=S(e=>f.arrayExpression(e),"runtimeBindingArrayExpression"),_e=S(e=>{const[n,g,r,T]=e;return n?.type==="NumericLiteral"&&g?.type==="ArrowFunctionExpression"&&r?.type==="ArrayExpression"&&(!T||T.type==="CallExpression")},"isRuntimeBindingArrayElements"),se=S(e=>ie(e,"this")||e.type==="ThisExpression"||e.type==="MemberExpression"&&se(e.object),"isThisExpression"),w=S(e=>{if(e.type==="Identifier")return e;const n=w(e.left);return Object.assign(e,f.memberExpression(n,e.right))},"TSEntityNameToRuntime"),W=S(e=>e.type==="Identifier"?e:W(e.left),"getIdFromTSEntityName"),re=S(e=>C(e,["Identifier","MemberExpression"]),"isReferenceId"),je=S(e=>e.type==="ImportDeclaration"&&e.specifiers.length===1&&e.specifiers.every(n=>n.type==="ImportSpecifier"&&n.imported.type==="Identifier"&&["__export","__reExport"].includes(n.local.name)),"isHelperImport"),we=S((e,n,g)=>{if(e.type==="ExportNamedDeclaration"&&!e.declaration&&!e.source&&e.specifiers.length===0&&!e.attributes?.length)return!1;if(C(e,["ImportDeclaration","ExportAllDeclaration","ExportNamedDeclaration"])){if(e.type==="ExportNamedDeclaration"&&n.length>0)for(const r of e.specifiers){const T=B(r.exported);n.includes(T)&&(r.type==="ExportSpecifier"?r.exportKind="type":e.exportKind="type")}if(e.source?.value&&_.test(e.source.value))return e.source.value=ne(e.source.value,"js"),e;if(g&&e.type==="ExportNamedDeclaration"&&!e.source&&e.specifiers.length===1&&e.specifiers[0].type==="ExportSpecifier"&&B(e.specifiers[0].exported)==="default")return{expression:e.specifiers[0].local,type:"TSExportAssignment"}}},"patchImportExport"),Ce=S(e=>{const n=new Set;for(const[r,T]of e.entries()){const N=g(T);if(!N)continue;const[A,O]=N;O.properties.length!==0&&(e[r]={body:{body:[{declaration:null,source:null,specifiers:O.properties.filter(j=>j.type==="ObjectProperty").map(j=>{const P=j.value.body,K=j.key;return f.exportSpecifier(P,K)}),type:"ExportNamedDeclaration"}],type:"TSModuleBlock"},declare:!0,id:A,kind:"namespace",type:"TSModuleDeclaration"})}return e.filter(r=>!n.has(r));function g(r){if(r.type!=="VariableDeclaration"||r.declarations.length!==1||r.declarations[0].id.type!=="Identifier"||r.declarations[0].init?.type!=="CallExpression"||r.declarations[0].init.callee.type!=="Identifier"||r.declarations[0].init.callee.name!=="__export"||r.declarations[0].init.arguments.length!==1||r.declarations[0].init.arguments[0].type!=="ObjectExpression")return!1;const T=r.declarations[0].id,N=r.declarations[0].init.arguments[0];return[T,N]}},"patchTsNamespace"),ke=S(e=>{const n=new Map;for(const[g,r]of e.entries())if(r.type==="ImportDeclaration"&&r.specifiers.length===1&&r.specifiers[0].type==="ImportSpecifier"&&r.specifiers[0].local.type==="Identifier"&&r.specifiers[0].local.name.endsWith("_exports"))n.set(r.specifiers[0].local.name,r.specifiers[0].local.name);else if(r.type==="ExpressionStatement"&&r.expression.type==="CallExpression"&&ie(r.expression.callee,"__reExport")){const T=r.expression.arguments;n.set(T[0].name,T[1].name)}else r.type==="VariableDeclaration"&&r.declarations.length===1&&r.declarations[0].init?.type==="MemberExpression"&&r.declarations[0].init.object.type==="Identifier"&&n.has(r.declarations[0].init.object.name)?e[g]={id:{name:r.declarations[0].id.name,type:"Identifier"},type:"TSTypeAliasDeclaration",typeAnnotation:{type:"TSTypeReference",typeName:{left:{name:n.get(r.declarations[0].init.object.name),type:"Identifier"},right:{name:r.declarations[0].init.property.name,type:"Identifier"},type:"TSQualifiedName"}}}:r.type==="ExportNamedDeclaration"&&r.specifiers.length===1&&r.specifiers[0].type==="ExportSpecifier"&&r.specifiers[0].local.type==="Identifier"&&n.has(r.specifiers[0].local.name)&&(r.specifiers[0].local.name=n.get(r.specifiers[0].local.name));return e},"patchReExport"),Me=S((e,n,g)=>{if(e.type==="ImportDeclaration"||e.type==="ExportNamedDeclaration"&&!e.declaration){for(const r of e.specifiers)("exportKind"in r&&r.exportKind==="type"||"exportKind"in e&&e.exportKind==="type")&&g.push(B(r.exported)),r.type==="ImportSpecifier"?r.importKind="value":r.type==="ExportSpecifier"&&(r.exportKind="value");return e.type==="ImportDeclaration"?e.importKind="value":e.type==="ExportNamedDeclaration"&&(e.exportKind="value"),!0}return e.type==="ExportAllDeclaration"?(e.exportKind="value",!0):e.type==="TSImportEqualsDeclaration"?(e.moduleReference.type==="TSExternalModuleReference"&&n({source:e.moduleReference.expression,specifiers:[{local:e.id,type:"ImportDefaultSpecifier"}],type:"ImportDeclaration"}),!0):e.type==="TSExportAssignment"&&e.expression.type==="Identifier"?(n({specifiers:[{exported:{name:"default",type:"Identifier"},local:e.expression,type:"ExportSpecifier"}],type:"ExportNamedDeclaration"}),!0):e.type==="ExportDefaultDeclaration"&&e.declaration.type==="Identifier"?(n({specifiers:[{exported:f.identifier("default"),local:e.declaration,type:"ExportSpecifier"}],type:"ExportNamedDeclaration"}),!0):!1},"rewriteImportExport"),M=S((e,n)=>{for(const g of Object.keys(e))delete e[g];return Object.assign(e,n),e},"overwriteNode"),Ae=S((e,n)=>{n.leadingComments||=[];const g=e.leadingComments?.filter(r=>r.value.startsWith("#"));return g&&n.leadingComments.unshift(...g),n.leadingComments=ae(n.leadingComments,!0),n},"inheritNodeComments");export{We as default};
@@ -0,0 +1 @@
1
+ import"node:child_process";import"node:fs";import"node:fs/promises";import"node:path";import"@babel/parser";import"obug";import"oxc-transform";import"../filename.js";import{c as f}from"./generate-CxhgFvNH.js";export{f as createGeneratePlugin};
@@ -0,0 +1,9 @@
1
+ var ur=Object.defineProperty;var te=(s,i)=>ur(s,"name",{value:i,configurable:!0});import{spawn as pr,fork as fr}from"node:child_process";import{existsSync as ve,readFileSync as dr}from"node:fs";import{mkdtemp as gr,readFile as Te,rm as mr}from"node:fs/promises";import P from"node:path";import{parse as Xe}from"@babel/parser";import{createDebug as Me}from"obug";import{transformSync as hr,isolatedDeclarationSync as xr}from"oxc-transform";import{RE_DTS as z,RE_NODE_MODULES as de,RE_JS as re,filename_to_dts as Ze,RE_JSON as Le,RE_TS as Ue,RE_VUE as je,resolveTemplateFn as yr,replaceTemplateName as be,RE_DTS_MAP as qe}from"../filename.js";import{createRequire as $r}from"node:module";import{tmpdir as wr}from"node:os";var vr=Object.defineProperty,a=te((s,i)=>vr(s,"name",{value:i,configurable:!0}),"s");let Ge=a(()=>{var s=(()=>{var i=Object.defineProperty,l=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,f=Object.prototype.hasOwnProperty,v=a((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})},"ne"),_=a((e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of c(t))!f.call(e,n)&&n!==r&&i(e,n,{get:a(()=>t[n],"get"),enumerable:!(o=l(t,n))||o.enumerable});return e},"ae"),j=a(e=>_(i({},"__esModule",{value:!0}),e),"oe"),N={};v(N,{zeptomatch:a(()=>Je,"zeptomatch")});var Z=a(e=>{const t=new Set,r=[e];for(let o=0;o<r.length;o++){const n=r[o];if(t.has(n))continue;t.add(n);const{children:u}=n;if(u?.length)for(let d=0,y=u.length;d<y;d++)r.push(u[d])}return Array.from(t)},"M"),L=a(e=>{let t="";const r=Z(e);for(let o=0,n=r.length;o<n;o++){const u=r[o];if(!u.regex)continue;const d=u.regex.flags;if(t||(t=d),t!==d)throw new Error(`Inconsistent RegExp flags used: "${t}" and "${d}"`)}return t},"se"),ie=a((e,t,r)=>{const o=r.get(e);if(o!==void 0)return o;const n=e.partial??t;let u="";if(e.regex&&(u+=n?"(?:$|":"",u+=e.regex.source),e.children?.length){const d=me(e.children.map(y=>ie(y,t,r)).filter(Boolean));if(d?.length){const y=e.children.some(Y=>!Y.regex||!(Y.partial??t)),b=d.length>1||n&&(!u.length||y);u+=b?n?"(?:$|":"(?:":"",u+=d.join("|"),u+=b?")":""}}return e.regex&&(u+=n?")":""),r.set(e,u),u},"O"),X=a((e,t)=>{const r=new Map,o=Z(e);for(let n=o.length-1;n>=0;n--){const u=ie(o[n],t,r);if(!(n>0))return u}return""},"ie"),me=a(e=>Array.from(new Set(e)),"ue"),K=a((e,t,r)=>K.compile(e,r).test(t),"R");K.compile=(e,t)=>{const r=t?.partial??!1,o=X(e,r),n=L(e);return new RegExp(`^(?:${o})$`,n)};var S=K,ae=a((e,t)=>{const r=S.compile(e,t),o=`${r.source.slice(0,-1)}[\\\\/]?$`,n=r.flags;return new RegExp(o,n)},"le"),U=ae,le=a(e=>{const t=e.map(o=>o.source).join("|")||"$^",r=e[0]?.flags;return new RegExp(t,r)},"ve"),H=le,B=a(e=>Array.isArray(e),"j"),A=a(e=>typeof e=="function","_"),ce=a(e=>e.length===0,"he"),x=(()=>{const{toString:e}=Function.prototype,t=/(?:^\(\s*(?:[^,.()]|\.(?!\.\.))*\s*\)\s*=>|^\s*[a-zA-Z$_][a-zA-Z0-9$_]*\s*=>)/;return r=>(r.length===0||r.length===1)&&t.test(e.call(r))})(),m=a(e=>typeof e=="number","de"),h=a(e=>typeof e=="object"&&e!==null,"xe"),g=a(e=>e instanceof RegExp,"me"),$=(()=>{const e=/\\\(|\((?!\?(?::|=|!|<=|<!))/;return t=>e.test(t.source)})(),E=(()=>{const e=/^[a-zA-Z0-9_-]+$/;return t=>e.test(t.source)&&!t.flags.includes("i")})(),M=a(e=>typeof e=="string","A"),k=a(e=>e===void 0,"f"),I=a(e=>{const t=new Map;return r=>{const o=t.get(r);if(o!==void 0)return o;const n=e(r);return t.set(r,n),n}},"ye"),D=a((e,t,r={})=>{const o={cache:{},input:e,index:0,indexBacktrackMax:0,options:r,output:[]},n=F(t)(o),u=Math.max(o.index,o.indexBacktrackMax);if(n&&o.index===e.length)return o.output;throw new Error(`Failed to parse at index ${u}`)},"I"),p=a((e,t)=>B(e)?ue(e,t):M(e)?_e(e,t):pe(e,t),"i"),ue=a((e,t)=>{const r={};for(const o of e){if(o.length!==1)throw new Error(`Invalid character: "${o}"`);const n=o.charCodeAt(0);r[n]=!0}return o=>{const n=o.input;let u=o.index,d=u;for(;d<n.length&&n.charCodeAt(d)in r;)d+=1;if(d>u){if(!k(t)&&!o.options.silent){const y=n.slice(u,d),b=A(t)?t(y,n,`${u}`):t;k(b)||o.output.push(b)}o.index=d}return!0}},"we"),pe=a((e,t)=>{if(E(e))return _e(e.source,t);{const r=e.source,o=e.flags.replace(/y|$/,"y"),n=new RegExp(r,o);return $(e)&&A(t)&&!x(t)?tt(n,t):rt(n,t)}},"$e"),tt=a((e,t)=>r=>{const o=r.index,n=r.input;e.lastIndex=o;const u=e.exec(n);if(u){const d=e.lastIndex;if(!r.options.silent){const y=t(...u,n,`${o}`);k(y)||r.output.push(y)}return r.index=d,!0}else return!1},"Ee"),rt=a((e,t)=>r=>{const o=r.index,n=r.input;if(e.lastIndex=o,e.test(n)){const u=e.lastIndex;if(!k(t)&&!r.options.silent){const d=A(t)?t(n.slice(o,u),n,`${o}`):t;k(d)||r.output.push(d)}return r.index=u,!0}else return!1},"Ce"),_e=a((e,t)=>r=>{const o=r.index,n=r.input;if(n.startsWith(e,o)){if(!k(t)&&!r.options.silent){const u=A(t)?t(e,n,`${o}`):t;k(u)||r.output.push(u)}return r.index+=e.length,!0}else return!1},"F"),he=a((e,t,r,o)=>{const n=F(e),u=t>1;return ye(xe(Se(d=>{let y=0;for(;y<r;){const b=d.index;if(!n(d)||(y+=1,d.index===b))break}return y>=t},u),o))},"k"),Ae=a((e,t)=>he(e,0,1,t),"L"),fe=a((e,t)=>he(e,0,1/0,t),"$"),nt=a((e,t)=>he(e,1,1/0,t),"Re"),q=a((e,t)=>{const r=e.map(F);return ye(xe(Se(o=>{for(let n=0,u=r.length;n<u;n++)if(!r[n](o))return!1;return!0}),t))},"x"),O=a((e,t)=>{const r=e.map(F);return ye(xe(o=>{for(let n=0,u=r.length;n<u;n++)if(r[n](o))return!0;return!1},t))},"p"),Se=a((e,t=!0,r=!1)=>{const o=F(e);return t?n=>{const u=n.index,d=n.output.length,y=o(n);return!y&&!r&&(n.indexBacktrackMax=Math.max(n.indexBacktrackMax,n.index)),(!y||r)&&(n.index=u,n.output.length!==d&&(n.output.length=d)),y}:o},"q"),xe=a((e,t)=>{const r=F(e);return t?o=>{if(o.options.silent)return r(o);const n=o.output.length;if(r(o)){const u=o.output.splice(n,1/0),d=t(u);return k(d)||o.output.push(d),!0}else return!1}:r},"B"),ye=(()=>{let e=0;return t=>{const r=F(t),o=e+=1;return n=>{var u;if(n.options.memoization===!1)return r(n);const d=n.index,y=(u=n.cache)[o]||(u[o]={indexMax:-1,queue:[]}),b=y.queue;if(d<=y.indexMax){const ee=y.store||(y.store=new Map);if(b.length){for(let V=0,ar=b.length;V<ar;V+=2){const lr=b[V*2],cr=b[V*2+1];ee.set(lr,cr)}b.length=0}const R=ee.get(d);if(R===!1)return!1;if(m(R))return n.index=R,!0;if(R)return n.index=R.index,R.output?.length&&n.output.push(...R.output),!0}const Y=n.output.length,ir=r(n);if(y.indexMax=Math.max(y.indexMax,d),ir){const ee=n.index,R=n.output.length;if(R>Y){const V=n.output.slice(Y,R);b.push(d,{index:ee,output:V})}else b.push(d,ee);return!0}else return b.push(d,!1),!1}}})(),Oe=a(e=>{let t;return r=>(t||(t=F(e())),t(r))},"G"),F=I(e=>{if(A(e))return ce(e)?Oe(e):e;if(M(e)||g(e))return p(e);if(B(e))return q(e);if(h(e))return O(Object.values(e));throw new Error("Invalid rule")}),J=a(e=>e,"d"),ot=a(e=>typeof e=="string","ke"),st=a(e=>{const t=new WeakMap,r=new WeakMap;return(o,n)=>{const u=n?.partial?r:t,d=u.get(o);if(d!==void 0)return d;const y=e(o,n);return u.set(o,y),y}},"Be"),it=a(e=>{const t={},r={};return(o,n)=>{const u=n?.partial?r:t;return u[o]??(u[o]=e(o,n))}},"Pe"),at=p(/\\./,J),lt=p(/./,J),ct=p(/\*\*\*+/,"*"),ut=p(/([^/{[(!])\*\*/,(e,t)=>`${t}*`),pt=p(/(^|.)\*\*(?=[^*/)\]}])/,(e,t)=>`${t}*`),ft=fe(O([at,ct,ut,pt,lt])),dt=ft,gt=a(e=>D(e,dt,{memoization:!1}).join(""),"Ie"),mt=gt,Re="abcdefghijklmnopqrstuvwxyz",ht=a(e=>{let t="";for(;e>0;){const r=(e-1)%26;t=Re[r]+t,e=Math.floor((e-1)/26)}return t},"Le"),Ie=a(e=>{let t=0;for(let r=0,o=e.length;r<o;r++)t=t*26+Re.indexOf(e[r])+1;return t},"V"),$e=a((e,t)=>{if(t<e)return $e(t,e);const r=[];for(;e<=t;)r.push(e++);return r},"b"),xt=a((e,t,r)=>$e(e,t).map(o=>String(o).padStart(r,"0")),"qe"),ze=a((e,t)=>$e(Ie(e),Ie(t)).map(ht),"W"),w=a(e=>({partial:!1,regex:new RegExp(e,"s"),children:[]}),"c"),Q=a(e=>({children:e}),"y"),G=(()=>{const e=a((t,r,o)=>{if(o.has(t))return;o.add(t);const{children:n}=t;if(!n.length)n.push(r);else for(let u=0,d=n.length;u<d;u++)e(n[u],r,o)},"e");return t=>{if(!t.length)return Q([]);for(let r=t.length-1;r>=1;r--){const o=new Set,n=t[r-1],u=t[r];e(n,u,o)}return t[0]}})(),W=a(()=>({regex:new RegExp("[\\\\/]","s"),children:[]}),"g"),yt=p(/\\./,w),$t=p(/[$.*+?^(){}[\]\|]/,e=>w(`\\${e}`)),wt=p(/[\\\/]/,W),vt=p(/[^$.*+?^(){}[\]\|\\\/]+/,w),jt=p(/^(?:!!)*!(.*)$/,(e,t)=>w(`(?!^${Je.compile(t).source}$).*?`)),bt=p(/^(!!)+/),Et=O([jt,bt]),Mt=p(/\/(\*\*\/)+/,()=>Q([G([W(),w(".+?"),W()]),W()])),kt=p(/^(\*\*\/)+/,()=>Q([w("^"),G([w(".*?"),W()])])),_t=p(/\/(\*\*)$/,()=>Q([G([W(),w(".*?")]),w("$")])),At=p(/\*\*/,()=>w(".*?")),Ce=O([Mt,kt,_t,At]),St=p(/\*\/(?!\*\*\/|\*$)/,()=>G([w("[^\\\\/]*?"),W()])),Ot=p(/\*/,()=>w("[^\\\\/]*")),Pe=O([St,Ot]),Ne=p("?",()=>w("[^\\\\/]")),Rt=p("[",J),It=p("]",J),zt=p(/[!^]/,"^\\\\/"),Ct=p(/[a-z]-[a-z]|[0-9]-[0-9]/i,J),Pt=p(/\\./,J),Nt=p(/[$.*+?^(){}[\|]/,e=>`\\${e}`),Dt=p(/[\\\/]/,"\\\\/"),Ft=p(/[^$.*+?^(){}[\]\|\\\/]+/,J),Wt=O([Pt,Nt,Dt,Ct,Ft]),De=q([Rt,Ae(zt),fe(Wt),It],e=>w(e.join(""))),Bt=p("{","(?:"),Jt=p("}",")"),Tt=p(/(\d+)\.\.(\d+)/,(e,t,r)=>xt(+t,+r,Math.min(t.length,r.length)).join("|")),Zt=p(/([a-z]+)\.\.([a-z]+)/,(e,t,r)=>ze(t,r).join("|")),Lt=p(/([A-Z]+)\.\.([A-Z]+)/,(e,t,r)=>ze(t.toLowerCase(),r.toLowerCase()).join("|").toUpperCase()),Ut=O([Tt,Zt,Lt]),Fe=q([Bt,Ut,Jt],e=>w(e.join(""))),qt=p("{"),Gt=p("}"),Vt=p(","),Xt=p(/\\./,w),Kt=p(/[$.*+?^(){[\]\|]/,e=>w(`\\${e}`)),Ht=p(/[\\\/]/,W),Qt=p(/[^$.*+?^(){}[\]\|\\\/,]+/,w),Yt=Oe(()=>Be),er=p("",()=>w("(?:)")),tr=nt(O([Ce,Pe,Ne,De,Fe,Yt,Xt,Kt,Ht,Qt]),G),We=O([tr,er]),Be=q([qt,Ae(q([We,fe(q([Vt,We]))])),Gt],Q),rr=fe(O([Et,Ce,Pe,Ne,De,Fe,Be,yt,$t,wt,vt]),G),nr=rr,or=a(e=>D(e,nr,{memoization:!1})[0],"kr"),sr=or,we=a((e,t,r)=>we.compile(e,r).test(t),"N");we.compile=(()=>{const e=it((r,o)=>U(sr(mt(r)),o)),t=st((r,o)=>H(r.map(n=>e(n,o))));return(r,o)=>ot(r)?e(r,o):t(r,o)})();var Je=we;return j(N)})();return s.default||s},"_lazyMatch"),Ee;const jr=a((s,i)=>(Ee||(Ee=Ge(),Ge=null),Ee(s,i)),"zeptomatch"),br=/^[A-Z]:\//i,T=a((s="")=>s&&s.replaceAll("\\","/").replace(br,i=>i.toUpperCase()),"normalizeWindowsPath"),Er=/^[/\\]{2}/,Mr=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Z]:[/\\]/i,Ke=/^[A-Z]:$/i,Ve=/^\/([A-Z]:)?$/i,kr=/.(\.[^./]+)$/,_r=/^[/\\]|^[a-z]:[/\\]/i,Ar=a(()=>typeof process.cwd=="function"?process.cwd().replaceAll("\\","/"):"/","cwd"),He=a((s,i)=>{let l="",c=0,f=-1,v=0,_;for(let j=0;j<=s.length;++j){if(j<s.length)_=s[j];else{if(_==="/")break;_="/"}if(_==="/"){if(!(f===j-1||v===1))if(v===2){if(l.length<2||c!==2||!l.endsWith(".")||l.at(-2)!=="."){if(l.length>2){const N=l.lastIndexOf("/");N===-1?(l="",c=0):(l=l.slice(0,N),c=l.length-1-l.lastIndexOf("/")),f=j,v=0;continue}else if(l.length>0){l="",c=0,f=j,v=0;continue}}i&&(l+=l.length>0?"/..":"..",c=2)}else l.length>0?l+=`/${s.slice(f+1,j)}`:l=s.slice(f+1,j),c=j-f-1;f=j,v=0}else _==="."&&v!==-1?++v:v=-1}return l},"normalizeString"),se=a(s=>Mr.test(s),"isAbsolute"),Qe=a(function(s){if(s.length===0)return".";s=T(s);const i=Er.exec(s),l=se(s),c=s.at(-1)==="/";return s=He(s,!l),s.length===0?l?"/":c?"./":".":(c&&(s+="/"),Ke.test(s)&&(s+="/"),i?l?`//${s}`:`//./${s}`:l&&!se(s)?`/${s}`:s)},"normalize");a((...s)=>{let i="";for(const l of s)if(l)if(i.length>0){const c=i[i.length-1]==="/",f=l[0]==="/";c&&f?i+=l.slice(1):i+=c||f?l:`/${l}`}else i+=l;return Qe(i)},"join");const ge=a(function(...s){s=s.map(c=>T(c));let i="",l=!1;for(let c=s.length-1;c>=-1&&!l;c--){const f=c>=0?s[c]:Ar();!f||f.length===0||(i=`${f}/${i}`,l=se(f))}return i=He(i,!l),l&&!se(i)?`/${i}`:i.length>0?i:"."},"resolve");a(function(s){return T(s)},"toNamespacedPath");const Sr=a(function(s){return kr.exec(T(s))?.[1]??""},"extname");a(function(s,i){const l=ge(s).replace(Ve,"$1").split("/"),c=ge(i).replace(Ve,"$1").split("/");if(c[0][1]===":"&&l[0][1]===":"&&l[0]!==c[0])return c.join("/");const f=[...l];for(const v of f){if(c[0]!==v)break;l.shift(),c.shift()}return[...l.map(()=>".."),...c].join("/")},"relative");const Or=a(s=>{const i=T(s).replace(/\/$/,"").split("/").slice(0,-1);return i.length===1&&Ke.test(i[0])&&(i[0]+="/"),i.join("/")||(se(s)?"/":".")},"dirname");a(function(s){const i=[s.root,s.dir,s.base??s.name+s.ext].filter(Boolean);return T(s.root?ge(...i):i.join("/"))},"format");const Rr=a((s,i)=>{const l=T(s).split("/").pop();return i&&l.endsWith(i)?l.slice(0,-i.length):l},"basename");a(function(s){const i=_r.exec(s)?.[0]?.replaceAll("\\","/")??"",l=Rr(s),c=Sr(l);return{base:l,dir:Or(s),ext:c,name:l.slice(0,l.length-c.length),root:i}},"parse");a((s,i)=>jr(i,Qe(s)),"matchesGlob");var Ir=Object.defineProperty,Ye=te((s,i)=>Ir(s,"name",{value:i,configurable:!0}),"r");const zr=Me("rollup-plugin-dts:tsc-context"),et=Ye(()=>({files:new Map,programs:[],projects:new Map}),"createContext"),Cr=Ye((s,i)=>{i=ge(i).replaceAll("\\","/"),zr(`invalidating context file: ${i}`),s.files.delete(i),s.programs=s.programs.filter(l=>!l.getSourceFiles().some(c=>c.fileName===i)),s.projects.clear()},"invalidateContextFile"),Pr=et();var Nr=Object.defineProperty,ke=te((s,i)=>Nr(s,"name",{value:i,configurable:!0}),"i");const ne=Me("rollup-plugin-dts:tsgo"),Dr=ke((...s)=>new Promise((i,l)=>{const c=pr(...s);c.on("close",()=>i()),c.on("error",f=>l(f))}),"spawnAsync"),Fr=ke(()=>{const s=$r(import.meta.url),i=s.resolve("@typescript/native-preview/package.json"),l=P.dirname(i),c=s(P.join(l,"lib","getExePath.js"));return(typeof c=="function"?c:c.default)()},"getTsgoPathFromNodeModules"),Wr=ke(async(s,i,l,c)=>{ne("[tsgo] rootDir",s);let f;c?(f=c,ne("[tsgo] using custom path",f)):(f=Fr(),ne("[tsgo] using tsgo from node_modules",f));const v=await gr(P.join(wr(),"rollup-plugin-dts-"));ne("[tsgo] tsgoDist",v);const _=["--noEmit","false","--declaration","--emitDeclarationOnly",...i?["-p",i]:[],"--outDir",v,"--rootDir",s,"--noCheck",...l?["--declarationMap"]:[]];return ne("[tsgo] args %o",_),await Dr(f,_,{stdio:"inherit"}),v},"runTsgo");var Br=Object.defineProperty,oe=te((s,i)=>Br(s,"name",{value:i,configurable:!0}),"y");const C=Me("rollup-plugin-dts:generate"),Jr=import.meta.WORKER_URL??"./tsc/worker.js",tn=oe(({build:s,cwd:i,eager:l,emitDtsOnly:c,emitJs:f,incremental:v,newContext:_,oxc:j,parallel:N,sourcemap:Z,tsconfig:L,tsconfigRaw:ie,tsgo:X,tsMacro:me,vue:K})=>{const S=new Map,ae=new Map;let U,le,H,B,A;const ce=L?P.dirname(L):i;return{async buildEnd(){U?.kill(),!C.enabled&&A&&await mr(A,{force:!0,recursive:!0}).catch(()=>{}),A=void 0,_&&(B=void 0)},async buildStart(x){if(X?A=await Wr(ce,L,Z,X.path):j||(N?(U=fr(new URL(Jr,import.meta.url),{stdio:"inherit"}),le=(await import("birpc")).createBirpc({},{on:oe(m=>U.on("message",m),"on"),post:oe(m=>U.send(m),"post")})):(H=await import("../packem_chunks/index.js"),_&&(B=et()))),!Array.isArray(x.input))for(const[m,h]of Object.entries(x.input)){C("resolving input alias %s -> %s",m,h);let g=await this.resolve(h);h.startsWith("./")||(g||=await this.resolve(`./${h}`));const $=g?.id||h;C("resolved input alias %s -> %s",h,$),ae.set($,m)}},generateBundle(x,m){for(const h of Object.keys(m)){const g=m[h];if(g){if(g.type==="asset"&&qe.test(h)&&typeof g.source=="string"){const $=JSON.parse(g.source);$.names=[],delete $.sourcesContent,g.source=JSON.stringify($)}c&&g.type==="chunk"&&!z.test(h)&&!qe.test(h)&&delete m[h]}}},load:{filter:{id:{exclude:[de],include:[z]}},async handler(x){if(!S.has(x))return;const{code:m,id:h}=S.get(x);let g,$;if(C("generate dts %s from %s",x,h),X){if(je.test(h))throw new Error("tsgo does not support Vue files.");const E=P.resolve(A,P.relative(ce,Ze(h)));if(ve(E)){if(g=await Te(E,"utf8"),Z){const M=`${E}.map`;ve(M)&&($=JSON.parse(await Te(M,"utf8")))}}else throw C("[tsgo]",E,"is missing"),new Error(`tsgo did not generate dts file for ${h}, please check your tsconfig.`)}else if(j&&!je.test(h)){const E=xr(h,m,j);if(E.errors.length>0){const[M]=E.errors;return this.error({frame:M?.codeframe||void 0,message:M?.codeframe?`${M.message}
2
+ ${M.codeframe}`:M?.message??"Unknown error"})}g=E.code,E.map&&($=E.map,$.sourcesContent=void 0,$.names=[])}else{const E=l?void 0:[...S.values()].filter(I=>I.isEntry).map(I=>I.id),M={build:s,context:B,cwd:i,entries:E,id:h,incremental:v,sourcemap:Z,tsconfig:L,tsconfigRaw:ie,tsMacro:me,vue:K};let k;if(k=N?await le.tscEmit(M):H.tscEmit(M),k.error)return this.error(k.error);if(g=k.code,$=k.map,g&&Le.test(h))if(g.includes("declare const _exports")){if(g.includes("declare const _exports: {")&&!g.includes(`
3
+ }[];`)){const I=Zr(g);let D=0;g+=I.map(p=>{const ue=`_${p.replaceAll(/[^\w$]/g,"_")}${D++}`,pe=JSON.stringify(p);return`declare let ${ue}: typeof _exports[${pe}]
4
+ export { ${ue} as ${pe} }`}).join(`
5
+ `)}}else{const I=Tr(g);g+=`
6
+ declare namespace __json_default_export {
7
+ export { ${Array.from(I.entries(),([D,p])=>D===p?D:`${p} as ${D}`).join(", ")} }
8
+ }
9
+ export { __json_default_export as default }`}}return{code:g||"",map:$}}},name:"rollup-plugin-dts:generate",outputOptions(x){return{...x,entryFileNames(m){const{entryFileNames:h}=x,g=yr(h||"[name].js",m);if(m.name.endsWith(".d")){if(z.test(g))return be(g,m.name.slice(0,-2));if(re.test(g))return g.replace(re,".$1ts")}else if(c){if(m.facadeModuleId&&z.test(m.facadeModuleId)){if(z.test(g))return be(g,m.name);if(re.test(g))return g.replace(re,".$1ts")}return be("[name].js",m.name)}return g}}},async resolveId(x,m){if(S.has(x))return C("resolve dts id %s",x),{id:x};if(!m&&z.test(x)&&!de.test(x)){const h=P.isAbsolute(x)?x:P.resolve(i,x),g=h.replace(z,".$1ts");if(!S.has(h)&&ve(g)){const $=dr(g,"utf8");S.set(h,{code:$,id:g,isEntry:!0}),C("populated dtsMap from source for cached re-resolution: %s",h)}return S.has(h)?(C("resolve dts id %s (from cache re-resolution)",h),{id:h}):null}if(m&&Ue.test(m)&&(x.startsWith("./")||x.startsWith("../"))&&!P.extname(x))for(const h of[".ts",".tsx",".mts",".cts"]){const g=await this.resolve(x+h,m,{skipSelf:!0});if(g)return g}return null},shouldTransformCachedModule({id:x}){return z.test(x)&&!de.test(x)},transform:{handler(x,m){if(!(z.test(m)||de.test(m))){if(!re.test(m)||f){const h=!!this.getModuleInfo(m)?.isEntry,g=Ze(m);if(S.set(g,{code:x,id:m,isEntry:h}),C("register dts source: %s",m),h){const $=ae.get(m);this.emitFile({id:g,name:$?`${$}.d`:void 0,type:"chunk"})}}return c?Le.test(m)?"{}":"export { }":Ue.test(m)||je.test(m)?hr(m,x,{}).code:null}},order:"pre"},watchChange(x){H&&Cr(B||Pr,x)}}},"createGeneratePlugin"),Tr=oe(s=>{const i=new Map,{program:l}=Xe(s,{errorRecovery:!0,plugins:[["typescript",{dts:!0}]],sourceType:"module"});for(const c of l.body)if(c.type==="ExportNamedDeclaration"){if(c.declaration)if(c.declaration.type==="VariableDeclaration")for(const f of c.declaration.declarations)f.id.type==="Identifier"&&i.set(f.id.name,f.id.name);else c.declaration.type==="TSModuleDeclaration"&&c.declaration.id.type==="Identifier"&&i.set(c.declaration.id.name,c.declaration.id.name);else if(c.specifiers.length>0)for(const f of c.specifiers)f.type==="ExportSpecifier"&&f.exported.type==="Identifier"&&i.set(f.exported.name,f.local.type==="Identifier"?f.local.name:f.exported.name)}return i},"collectJsonExportMap"),Zr=oe(s=>{const i=[],{program:l}=Xe(s,{plugins:[["typescript",{dts:!0}]],sourceType:"module"}),c=l.body[0].declarations[0].id.typeAnnotation.typeAnnotation.members;for(const f of c)f.key.type==="Identifier"?i.push(f.key.name):f.key.type==="StringLiteral"&&i.push(f.key.value);return i},"collectJsonExports");export{Or as X,tn as c,Pr as g};
@@ -0,0 +1 @@
1
+ var C=Object.defineProperty;var d=(i,l)=>C(i,"name",{value:l,configurable:!0});import j from"node:path";import w from"node:process";import{findTsConfigSync as R,readTsConfig as k}from"@visulima/tsconfig";var B=Object.defineProperty,F=d((i,l)=>B(i,"name",{value:l,configurable:!0}),"m");let g=!1;const G=F(({banner:i,build:l=!1,cjsDefault:v=!1,compilerOptions:e={},cwd:c=w.cwd(),dtsInput:b=!1,eager:x=!1,emitDtsOnly:O=!1,emitJs:u,footer:T,incremental:m=!1,newContext:y=!1,oxc:o,parallel:E=!1,resolve:M=!1,resolver:I="oxc",sideEffects:P=!1,sourcemap:p,tsconfig:t,tsconfigRaw:D={},tsgo:f=!1,tsMacro:n=!1,vue:r=!1})=>{let a;if(t===!0||t==null)try{const h=R(c);t=h.path,a=h.config}catch{t=void 0}else typeof t=="string"?(t=j.resolve(c||w.cwd(),t),a=k(t)):t=void 0;e={...a?.compilerOptions,...e},m||=e.incremental||!!e.tsBuildInfoFile,p??=!!e.declarationMap,e.declarationMap=p;const J={...a,...D,compilerOptions:e};let s=!1;if(f&&(s=f===!0?{}:f),o??=!!(e?.isolatedDeclarations&&!r&&!s&&!n),o===!0&&(o={}),o&&(o.stripInternal??=!!e?.stripInternal,o.sourcemap=!!e.declarationMap),u??=!!(e.checkJs||e.allowJs),s){if(r)throw new Error("[@visulima/rollup-plugin-dts] The `tsgo` option is not compatible with the `vue` option. Please disable one of them.");if(n)throw new Error("[@visulima/rollup-plugin-dts] The `tsgo` option is not compatible with the `tsMacro` option. Please disable one of them.");if(o)throw new Error("[@visulima/rollup-plugin-dts] The `tsgo` option is not compatible with the `oxc` option. Please disable one of them.")}if(o&&r)throw new Error("[@visulima/rollup-plugin-dts] The `oxc` option is not compatible with the `vue` option. Please disable one of them.");if(o&&n)throw new Error("[@visulima/rollup-plugin-dts] The `oxc` option is not compatible with the `tsMacro` option. Please disable one of them.");return s&&!g&&(console.warn("The `tsgo` option is experimental and may change in the future."),g=!0),{banner:i,build:l,cjsDefault:v,cwd:c,dtsInput:b,eager:x,emitDtsOnly:O,emitJs:u,footer:T,incremental:m,newContext:y,oxc:o,parallel:E,resolve:M,resolver:I,sideEffects:P,sourcemap:p,tsconfig:t,tsconfigRaw:J,tsgo:s,tsMacro:n,vue:r}},"resolveOptions");export{G as resolveOptions};
package/package.json CHANGED
@@ -1,10 +1,95 @@
1
1
  {
2
2
  "name": "@visulima/rollup-plugin-dts",
3
- "version": "0.0.1",
4
- "description": "OIDC trusted publishing setup package for @visulima/rollup-plugin-dts",
5
- "keywords": [
6
- "oidc",
7
- "trusted-publishing",
8
- "setup"
9
- ]
10
- }
3
+ "version": "1.0.0-alpha.2",
4
+ "description": "A Rollup plugin to bundle dts files",
5
+ "homepage": "https://github.com/visulima/packem/tree/main/packages/rollup-plugin-dts",
6
+ "bugs": {
7
+ "url": "https://github.com/visulima/packem/issues"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/visulima/packem.git",
12
+ "directory": "packages/rollup-plugin-dts"
13
+ },
14
+ "funding": [
15
+ {
16
+ "type": "github",
17
+ "url": "https://github.com/sponsors/sxzz"
18
+ },
19
+ {
20
+ "type": "github",
21
+ "url": "https://github.com/sponsors/prisis"
22
+ },
23
+ {
24
+ "type": "consulting",
25
+ "url": "https://anolilab.com/support"
26
+ }
27
+ ],
28
+ "license": "MIT",
29
+ "author": "三咲智子 Kevin Deng <sxzz@sxzz.moe>",
30
+ "contributors": [
31
+ {
32
+ "name": "Daniel Bannert",
33
+ "email": "d.bannert@anolilab.de"
34
+ }
35
+ ],
36
+ "sideEffects": false,
37
+ "type": "module",
38
+ "exports": {
39
+ ".": {
40
+ "types": "./dist/index.ts",
41
+ "default": "./dist/index.js"
42
+ },
43
+ "./filename": {
44
+ "types": "./dist/filename.js",
45
+ "default": "./dist/filename.js"
46
+ },
47
+ "./package.json": "./package.json"
48
+ },
49
+ "files": [
50
+ "CHANGELOG.md",
51
+ "README.md",
52
+ "dist"
53
+ ],
54
+ "dependencies": {
55
+ "@babel/generator": "7.29.1",
56
+ "@babel/helper-validator-identifier": "7.28.5",
57
+ "@babel/parser": "7.29.0",
58
+ "@babel/types": "7.29.0",
59
+ "@visulima/tsconfig": "2.1.3",
60
+ "ast-kit": "^2.2.0",
61
+ "birpc": "^4.0.0",
62
+ "magic-string": "0.30.21",
63
+ "obug": "2.1.1",
64
+ "oxc-resolver": "11.19.1",
65
+ "oxc-transform": "0.116.0"
66
+ },
67
+ "peerDependencies": {
68
+ "@ts-macro/tsc": "0.3.7",
69
+ "@typescript/native-preview": ">=7.0.0-dev.20250601.1",
70
+ "rollup": ">=4.0.0",
71
+ "typescript": "^5.9.3",
72
+ "vue-tsc": "3.2.5"
73
+ },
74
+ "peerDependenciesMeta": {
75
+ "@typescript/native-preview": {
76
+ "optional": true
77
+ },
78
+ "rollup": {
79
+ "optional": true
80
+ },
81
+ "typescript": {
82
+ "optional": true
83
+ },
84
+ "vue-tsc": {
85
+ "optional": true
86
+ }
87
+ },
88
+ "engines": {
89
+ "node": ">=20.* <=25.*"
90
+ },
91
+ "publishConfig": {
92
+ "access": "public",
93
+ "provenance": true
94
+ }
95
+ }