@site-index/vite-runtime 0.1.0
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/LICENSE +21 -0
- package/README.md +119 -0
- package/dist/domains/module/loader.d.ts +13 -0
- package/dist/domains/module/loader.js +25 -0
- package/dist/domains/module/watched-files.builder.d.ts +7 -0
- package/dist/domains/module/watched-files.builder.js +20 -0
- package/dist/domains/module/watched-files.d.ts +6 -0
- package/dist/domains/module/watched-files.js +12 -0
- package/dist/domains/runtime/builder.d.ts +10 -0
- package/dist/domains/runtime/builder.js +28 -0
- package/dist/domains/runtime/factory.d.ts +2 -0
- package/dist/domains/runtime/factory.js +4 -0
- package/dist/domains/runtime/service.d.ts +11 -0
- package/dist/domains/runtime/service.js +47 -0
- package/dist/domains/runtime/snapshot.d.ts +14 -0
- package/dist/domains/runtime/snapshot.js +21 -0
- package/dist/domains/server/config.d.ts +3 -0
- package/dist/domains/server/config.js +16 -0
- package/dist/domains/server/connection.d.ts +6 -0
- package/dist/domains/server/connection.js +1 -0
- package/dist/domains/server/created.connection.d.ts +10 -0
- package/dist/domains/server/created.connection.js +21 -0
- package/dist/domains/server/existing.connection.d.ts +9 -0
- package/dist/domains/server/existing.connection.js +13 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +3 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.js +1 -0
- package/package.json +59 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Deasilsoft
|
|
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.
|
package/README.md
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# @site-index/vite-runtime
|
|
2
|
+
|
|
3
|
+
Vite-backed runtime for executing site-index pipelines through Vite SSR module loading.
|
|
4
|
+
|
|
5
|
+
[Repository README](../../../README.md)
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @site-index/vite-runtime
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Requirements:
|
|
14
|
+
|
|
15
|
+
- Node.js `>=22`
|
|
16
|
+
- peer dependency: `vite ^8.0.10`
|
|
17
|
+
|
|
18
|
+
## When to use
|
|
19
|
+
|
|
20
|
+
Use this package when building adapters or integrations that need direct Vite-backed pipeline execution.
|
|
21
|
+
|
|
22
|
+
## When not to use
|
|
23
|
+
|
|
24
|
+
- Most users should use [`site-index`](../../site-index/README.md) or [`@site-index/vite-plugin`](../vite-plugin/README.md) directly.
|
|
25
|
+
|
|
26
|
+
## Public exports
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
export { createRuntimeService } from "./domains/runtime/factory.js";
|
|
30
|
+
export { RuntimeServiceBuilder } from "./domains/runtime/builder.js";
|
|
31
|
+
export { RuntimeService } from "./domains/runtime/service.js";
|
|
32
|
+
export type { Options, RuntimeViteConfig } from "./types.js";
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Public API
|
|
36
|
+
|
|
37
|
+
Factory:
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
createRuntimeService(): RuntimeServiceBuilder
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Builder:
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
class RuntimeServiceBuilder {
|
|
47
|
+
withOptions(options: Options): this;
|
|
48
|
+
withViteConfig(config: RuntimeViteConfig): this;
|
|
49
|
+
withViteServer(server: Vite.ViteDevServer): this;
|
|
50
|
+
build(): RuntimeService;
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Runtime service:
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
class RuntimeService {
|
|
58
|
+
buildArtifacts(): Promise<SiteIndex.Result<SiteIndex.Artifact[]>>;
|
|
59
|
+
getArtifacts(): readonly SiteIndex.Artifact[];
|
|
60
|
+
getWatchedFiles(): ReadonlySet<string>;
|
|
61
|
+
close(): Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Options:
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
type Options = Pick<SiteIndex.Options, "siteUrl" | "extensions">;
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Runtime Vite config:
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
type RuntimeViteConfig = {
|
|
75
|
+
root: Vite.ResolvedConfig["root"];
|
|
76
|
+
mode: Vite.ResolvedConfig["mode"];
|
|
77
|
+
configFile?: Vite.ResolvedConfig["configFile"];
|
|
78
|
+
};
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Behavior
|
|
82
|
+
|
|
83
|
+
- uses Vite SSR loading for executing discovered site-index modules
|
|
84
|
+
- can run with an existing Vite dev server
|
|
85
|
+
- can create its own middleware-mode Vite server from config
|
|
86
|
+
- tracks watched files through Vite's SSR module graph
|
|
87
|
+
- serializes `buildArtifacts()` calls through an internal queue
|
|
88
|
+
- snapshots latest artifacts and watched files
|
|
89
|
+
- clears snapshots and closes internally created server resources on `close()`
|
|
90
|
+
- does not close externally provided Vite dev servers
|
|
91
|
+
|
|
92
|
+
## Example
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
import { createRuntimeService } from "@site-index/vite-runtime";
|
|
96
|
+
|
|
97
|
+
const runtime = createRuntimeService()
|
|
98
|
+
.withOptions({
|
|
99
|
+
siteUrl: "https://example.com",
|
|
100
|
+
})
|
|
101
|
+
.withViteConfig({
|
|
102
|
+
root: process.cwd(),
|
|
103
|
+
mode: "production",
|
|
104
|
+
})
|
|
105
|
+
.build();
|
|
106
|
+
|
|
107
|
+
try {
|
|
108
|
+
const result = await runtime.buildArtifacts();
|
|
109
|
+
// use result.data and result.warnings
|
|
110
|
+
} finally {
|
|
111
|
+
await runtime.close();
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Related packages
|
|
116
|
+
|
|
117
|
+
- [`@site-index/core`](../core/README.md)
|
|
118
|
+
- [`@site-index/vite-plugin`](../vite-plugin/README.md)
|
|
119
|
+
- [`site-index`](../../site-index/README.md)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type * as SiteIndex from "@site-index/core";
|
|
2
|
+
import type * as Vite from "vite";
|
|
3
|
+
import type { WatchedFilesBuilder } from "./watched-files.builder.js";
|
|
4
|
+
type Input = {
|
|
5
|
+
getServer: () => Promise<Vite.ViteDevServer>;
|
|
6
|
+
watchedFilesBuilder: WatchedFilesBuilder;
|
|
7
|
+
};
|
|
8
|
+
export declare class ModuleLoader {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(input: Input);
|
|
11
|
+
loadModule(module: SiteIndex.Module): Promise<SiteIndex.ModuleExports>;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export class ModuleLoader {
|
|
2
|
+
#moduleExports = new Map();
|
|
3
|
+
#getServer;
|
|
4
|
+
#watchedFilesBuilder;
|
|
5
|
+
constructor(input) {
|
|
6
|
+
this.#getServer = input.getServer;
|
|
7
|
+
this.#watchedFilesBuilder = input.watchedFilesBuilder;
|
|
8
|
+
}
|
|
9
|
+
async loadModule(module) {
|
|
10
|
+
const cachedModuleExports = this.#moduleExports.get(module.importId);
|
|
11
|
+
if (cachedModuleExports !== undefined) {
|
|
12
|
+
return cachedModuleExports;
|
|
13
|
+
}
|
|
14
|
+
const server = await this.#getServer();
|
|
15
|
+
const loadedModule = await server.ssrLoadModule(module.importId);
|
|
16
|
+
const moduleExports = loadedModule.default;
|
|
17
|
+
const node = await server.environments.ssr.moduleGraph.getModuleByUrl(module.importId);
|
|
18
|
+
if (node === undefined) {
|
|
19
|
+
throw new Error(`Unable to resolve loaded module "${module.importId}"`);
|
|
20
|
+
}
|
|
21
|
+
this.#moduleExports.set(module.importId, moduleExports);
|
|
22
|
+
this.#watchedFilesBuilder.addModuleNode(node);
|
|
23
|
+
return moduleExports;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { WatchedFiles } from "./watched-files.js";
|
|
2
|
+
export class WatchedFilesBuilder {
|
|
3
|
+
#nodes = new Set();
|
|
4
|
+
#files = new Set();
|
|
5
|
+
addModuleNode(node) {
|
|
6
|
+
if (this.#nodes.has(node)) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
this.#nodes.add(node);
|
|
10
|
+
if (typeof node.file === "string") {
|
|
11
|
+
this.#files.add(node.file);
|
|
12
|
+
}
|
|
13
|
+
for (const importedModule of node.importedModules) {
|
|
14
|
+
this.addModuleNode(importedModule);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
build() {
|
|
18
|
+
return new WatchedFiles(this.#files);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type * as Vite from "vite";
|
|
2
|
+
import type { Options, RuntimeViteConfig } from "../../types.js";
|
|
3
|
+
import { RuntimeService } from "./service.js";
|
|
4
|
+
export declare class RuntimeServiceBuilder {
|
|
5
|
+
#private;
|
|
6
|
+
withOptions(options: Options): this;
|
|
7
|
+
withViteConfig(config: RuntimeViteConfig): this;
|
|
8
|
+
withViteServer(server: Vite.ViteDevServer): this;
|
|
9
|
+
build(): RuntimeService;
|
|
10
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CreatedServerConnection } from "../server/created.connection.js";
|
|
2
|
+
import { ExistingServerConnection } from "../server/existing.connection.js";
|
|
3
|
+
import { RuntimeService } from "./service.js";
|
|
4
|
+
export class RuntimeServiceBuilder {
|
|
5
|
+
#options;
|
|
6
|
+
#serverConnection;
|
|
7
|
+
withOptions(options) {
|
|
8
|
+
this.#options = options;
|
|
9
|
+
return this;
|
|
10
|
+
}
|
|
11
|
+
withViteConfig(config) {
|
|
12
|
+
this.#serverConnection = new CreatedServerConnection(config);
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
withViteServer(server) {
|
|
16
|
+
this.#serverConnection = new ExistingServerConnection(server);
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
build() {
|
|
20
|
+
if (this.#options === undefined) {
|
|
21
|
+
throw new Error("Options must be provided to build the RuntimeService.");
|
|
22
|
+
}
|
|
23
|
+
if (this.#serverConnection === undefined) {
|
|
24
|
+
throw new Error("Vite server or config must be provided to build the RuntimeService.");
|
|
25
|
+
}
|
|
26
|
+
return new RuntimeService(this.#options, this.#serverConnection);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as SiteIndex from "@site-index/core";
|
|
2
|
+
import type { Options } from "../../types.js";
|
|
3
|
+
import type { ServerConnection } from "../server/connection.js";
|
|
4
|
+
export declare class RuntimeService {
|
|
5
|
+
#private;
|
|
6
|
+
constructor(options: Options, serverConnection: ServerConnection);
|
|
7
|
+
buildArtifacts(): Promise<SiteIndex.Result<SiteIndex.Artifact[]>>;
|
|
8
|
+
getArtifacts(): readonly SiteIndex.Artifact[];
|
|
9
|
+
getWatchedFiles(): ReadonlySet<string>;
|
|
10
|
+
close(): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as SiteIndex from "@site-index/core";
|
|
2
|
+
import { ModuleLoader } from "../module/loader.js";
|
|
3
|
+
import { WatchedFilesBuilder } from "../module/watched-files.builder.js";
|
|
4
|
+
import { RuntimeSnapshot } from "./snapshot.js";
|
|
5
|
+
export class RuntimeService {
|
|
6
|
+
#options;
|
|
7
|
+
#serverConnection;
|
|
8
|
+
#snapshot = RuntimeSnapshot.empty();
|
|
9
|
+
#buildQueue = Promise.resolve();
|
|
10
|
+
constructor(options, serverConnection) {
|
|
11
|
+
this.#options = options;
|
|
12
|
+
this.#serverConnection = serverConnection;
|
|
13
|
+
}
|
|
14
|
+
async buildArtifacts() {
|
|
15
|
+
const run = this.#buildQueue.then(async () => this.#runBuildArtifacts(), async () => this.#runBuildArtifacts());
|
|
16
|
+
this.#buildQueue = run.then(() => { }, () => { });
|
|
17
|
+
return run;
|
|
18
|
+
}
|
|
19
|
+
async #runBuildArtifacts() {
|
|
20
|
+
const watchedFilesBuilder = new WatchedFilesBuilder();
|
|
21
|
+
const moduleLoader = new ModuleLoader({
|
|
22
|
+
getServer: () => this.#serverConnection.getServer(),
|
|
23
|
+
watchedFilesBuilder,
|
|
24
|
+
});
|
|
25
|
+
const result = await SiteIndex.main({
|
|
26
|
+
siteUrl: this.#options.siteUrl,
|
|
27
|
+
rootPath: this.#serverConnection.getRootPath(),
|
|
28
|
+
extensions: this.#options.extensions,
|
|
29
|
+
loadModule: moduleLoader.loadModule.bind(moduleLoader),
|
|
30
|
+
});
|
|
31
|
+
this.#snapshot = new RuntimeSnapshot({
|
|
32
|
+
artifacts: result.data,
|
|
33
|
+
watchedFiles: watchedFilesBuilder.build(),
|
|
34
|
+
});
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
getArtifacts() {
|
|
38
|
+
return this.#snapshot.getArtifacts();
|
|
39
|
+
}
|
|
40
|
+
getWatchedFiles() {
|
|
41
|
+
return this.#snapshot.getWatchedFiles();
|
|
42
|
+
}
|
|
43
|
+
async close() {
|
|
44
|
+
this.#snapshot = RuntimeSnapshot.empty();
|
|
45
|
+
await this.#serverConnection.close();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type * as SiteIndex from "@site-index/core";
|
|
2
|
+
import { WatchedFiles } from "../module/watched-files.js";
|
|
3
|
+
type Input = {
|
|
4
|
+
artifacts: readonly SiteIndex.Artifact[];
|
|
5
|
+
watchedFiles: WatchedFiles;
|
|
6
|
+
};
|
|
7
|
+
export declare class RuntimeSnapshot {
|
|
8
|
+
#private;
|
|
9
|
+
constructor(input: Input);
|
|
10
|
+
getArtifacts(): readonly SiteIndex.Artifact[];
|
|
11
|
+
getWatchedFiles(): ReadonlySet<string>;
|
|
12
|
+
static empty(): RuntimeSnapshot;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { WatchedFiles } from "../module/watched-files.js";
|
|
2
|
+
export class RuntimeSnapshot {
|
|
3
|
+
#artifacts;
|
|
4
|
+
#watchedFiles;
|
|
5
|
+
constructor(input) {
|
|
6
|
+
this.#artifacts = [...input.artifacts];
|
|
7
|
+
this.#watchedFiles = input.watchedFiles;
|
|
8
|
+
}
|
|
9
|
+
getArtifacts() {
|
|
10
|
+
return [...this.#artifacts];
|
|
11
|
+
}
|
|
12
|
+
getWatchedFiles() {
|
|
13
|
+
return this.#watchedFiles.getFiles();
|
|
14
|
+
}
|
|
15
|
+
static empty() {
|
|
16
|
+
return new RuntimeSnapshot({
|
|
17
|
+
artifacts: [],
|
|
18
|
+
watchedFiles: WatchedFiles.empty(),
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as Vite from "vite";
|
|
2
|
+
export function makeServerConfig(input) {
|
|
3
|
+
const output = {
|
|
4
|
+
root: input.root,
|
|
5
|
+
mode: input.mode,
|
|
6
|
+
appType: "custom",
|
|
7
|
+
server: {
|
|
8
|
+
middlewareMode: true,
|
|
9
|
+
hmr: false,
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
if (input.configFile !== undefined) {
|
|
13
|
+
output.configFile = input.configFile;
|
|
14
|
+
}
|
|
15
|
+
return output;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as Vite from "vite";
|
|
2
|
+
import type { RuntimeViteConfig } from "../../types.js";
|
|
3
|
+
import type { ServerConnection } from "./connection.js";
|
|
4
|
+
export declare class CreatedServerConnection implements ServerConnection {
|
|
5
|
+
#private;
|
|
6
|
+
constructor(config: RuntimeViteConfig);
|
|
7
|
+
getServer(): Promise<Vite.ViteDevServer>;
|
|
8
|
+
getRootPath(): string;
|
|
9
|
+
close(): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as Vite from "vite";
|
|
2
|
+
import { makeServerConfig } from "./config.js";
|
|
3
|
+
export class CreatedServerConnection {
|
|
4
|
+
#config;
|
|
5
|
+
#server;
|
|
6
|
+
constructor(config) {
|
|
7
|
+
this.#config = config;
|
|
8
|
+
}
|
|
9
|
+
async getServer() {
|
|
10
|
+
this.#server ??= await Vite.createServer(makeServerConfig(this.#config));
|
|
11
|
+
return this.#server;
|
|
12
|
+
}
|
|
13
|
+
getRootPath() {
|
|
14
|
+
return this.#config.root;
|
|
15
|
+
}
|
|
16
|
+
async close() {
|
|
17
|
+
const server = this.#server;
|
|
18
|
+
this.#server = undefined;
|
|
19
|
+
await server?.close();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type * as Vite from "vite";
|
|
2
|
+
import type { ServerConnection } from "./connection.js";
|
|
3
|
+
export declare class ExistingServerConnection implements ServerConnection {
|
|
4
|
+
#private;
|
|
5
|
+
constructor(server: Vite.ViteDevServer);
|
|
6
|
+
getServer(): Promise<Vite.ViteDevServer>;
|
|
7
|
+
getRootPath(): string;
|
|
8
|
+
close(): Promise<void>;
|
|
9
|
+
}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as SiteIndex from "@site-index/core";
|
|
2
|
+
import type * as Vite from "vite";
|
|
3
|
+
export type Options = Pick<SiteIndex.Options, "siteUrl" | "extensions">;
|
|
4
|
+
export type RuntimeViteConfig = {
|
|
5
|
+
root: Vite.ResolvedConfig["root"];
|
|
6
|
+
mode: Vite.ResolvedConfig["mode"];
|
|
7
|
+
configFile?: Vite.ResolvedConfig["configFile"];
|
|
8
|
+
};
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@site-index/vite-runtime",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Vite-backed runtime for executing site-index pipelines.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"site-index",
|
|
7
|
+
"sitemap",
|
|
8
|
+
"robots",
|
|
9
|
+
"seo",
|
|
10
|
+
"vite"
|
|
11
|
+
],
|
|
12
|
+
"homepage": "https://github.com/Deasilsoft/site-index/tree/main/packages/@site-index/vite-runtime",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/Deasilsoft/site-index/issues"
|
|
15
|
+
},
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/Deasilsoft/site-index.git",
|
|
19
|
+
"directory": "packages/@site-index/vite-runtime"
|
|
20
|
+
},
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"author": "Deasilsoft <contact@deasilsoft.com>",
|
|
23
|
+
"type": "module",
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"import": "./dist/index.js",
|
|
27
|
+
"types": "./dist/index.d.ts"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"main": "dist/index.js",
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"files": [
|
|
33
|
+
"dist",
|
|
34
|
+
"!dist/**/*.tsbuildinfo"
|
|
35
|
+
],
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "tsc -b",
|
|
38
|
+
"clean": "rm -rf dist coverage",
|
|
39
|
+
"prepack": "npm run clean && npm run build",
|
|
40
|
+
"pretest": "npm pack --dry-run",
|
|
41
|
+
"test": "vitest run --coverage",
|
|
42
|
+
"pretypecheck": "npm run build",
|
|
43
|
+
"typecheck": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.test.json"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@site-index/core": "0.1.0"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@vitest/coverage-v8": "^4.1.6",
|
|
50
|
+
"vite": "^8.0.12",
|
|
51
|
+
"vitest": "^4.1.6"
|
|
52
|
+
},
|
|
53
|
+
"peerDependencies": {
|
|
54
|
+
"vite": "^8.0.10"
|
|
55
|
+
},
|
|
56
|
+
"engines": {
|
|
57
|
+
"node": ">=22"
|
|
58
|
+
}
|
|
59
|
+
}
|