@evjs/manifest 0.0.1-rc.13

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/AGENT.md ADDED
@@ -0,0 +1,28 @@
1
+ # @evjs/manifest
2
+
3
+ Shared manifest schema types for the ev framework build system.
4
+
5
+ ## Types
6
+
7
+ - `ServerManifest` — Server manifest interface (`dist/server/manifest.json`).
8
+ - `ClientManifest` — Client manifest interface (reserved for future `dist/client/manifest.json`).
9
+ - `ServerFnEntry` — `{ moduleId: string; export: string }` — server function metadata.
10
+ - `RscEntry` — Reserved for future (React Server Components).
11
+ - `PageEntry` — Reserved for future (MPA per-page assets).
12
+
13
+ ## Server Manifest (v1)
14
+ ```json
15
+ {
16
+ "version": 1,
17
+ "entry": "main.a1b2c3d4.js",
18
+ "fns": {
19
+ "<fnId>": { "moduleId": "f9b6...", "export": "getUsers" }
20
+ }
21
+ }
22
+ ```
23
+
24
+ ## Usage
25
+ Produced by `@evjs/webpack-plugin`, consumed by `@evjs/runtime` and adapters:
26
+ ```ts
27
+ import type { ServerManifest, ServerFnEntry } from "@evjs/manifest";
28
+ ```
package/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # @evjs/manifest
2
+
3
+ Shared manifest schema types for the **ev** framework build system.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @evjs/manifest
9
+ ```
10
+
11
+ ## Purpose
12
+
13
+ Defines the structure of per-environment manifest files emitted by `@evjs/webpack-plugin` and consumed by `@evjs/runtime`. Each environment gets its own `manifest.json`:
14
+
15
+ - `dist/server/manifest.json` → `ServerManifest`
16
+ - `dist/client/manifest.json` → `ClientManifest` (future)
17
+
18
+ ## Server Manifest (v1)
19
+
20
+ ```json
21
+ {
22
+ "version": 1,
23
+ "entry": "main.a1b2c3d4.js",
24
+ "fns": {
25
+ "<fnId>": {
26
+ "moduleId": "f9b6...",
27
+ "export": "getUsers"
28
+ }
29
+ }
30
+ }
31
+ ```
32
+
33
+ ## Exported Types
34
+
35
+ - **`ServerManifest`** — server manifest (`dist/server/manifest.json`).
36
+ - **`ClientManifest`** — client manifest (reserved for future).
37
+ - **`ServerFnEntry`** — server function metadata (`{ moduleId, export }`).
38
+ - **`RscEntry`** — React Server Components (reserved for future).
39
+ - **`PageEntry`** — per-page assets for MPA (reserved for future).
package/esm/index.d.ts ADDED
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @evjs/manifest
3
+ *
4
+ * Shared manifest schemas for the ev framework build system.
5
+ *
6
+ * Each environment emits its own manifest file:
7
+ * - dist/server/manifest.json → ServerManifest
8
+ * - dist/client/manifest.json → ClientManifest (future)
9
+ */
10
+ /** Base manifest fields shared by all environment manifests. */
11
+ interface ManifestBase {
12
+ /** Schema version — bump on breaking changes. */
13
+ version: 1;
14
+ }
15
+ /** A registered server function entry. */
16
+ export interface ServerFnEntry {
17
+ /** Webpack module identifier (hash-based, no source paths exposed). */
18
+ moduleId: string;
19
+ /** Exported function name. */
20
+ export: string;
21
+ }
22
+ /** A React Server Component entry (future — reserved). */
23
+ export interface RscEntry {
24
+ /** Webpack module ID. */
25
+ moduleId: string;
26
+ /** Exported component name. */
27
+ export: string;
28
+ }
29
+ /**
30
+ * Server manifest — emitted to `dist/server/manifest.json`.
31
+ *
32
+ * Contains everything needed to boot and serve the server bundle:
33
+ * entry filename, registered server functions, and future RSC/SSR metadata.
34
+ */
35
+ export interface ServerManifest extends ManifestBase {
36
+ /** Server bundle entry filename (e.g. "main.js" or "main.a1b2c3d4.js"). */
37
+ entry: string;
38
+ /** Registered server functions (fnId → module + export). */
39
+ fns: Record<string, ServerFnEntry>;
40
+ /** React Server Components (future — reserved). */
41
+ rsc?: Record<string, RscEntry>;
42
+ }
43
+ /** Per-page asset entry for MPA support (future — reserved). */
44
+ export interface PageEntry {
45
+ /** JavaScript bundle paths for this page. */
46
+ js: string[];
47
+ /** CSS bundle paths for this page. */
48
+ css: string[];
49
+ }
50
+ /**
51
+ * Client manifest — emitted to `dist/client/manifest.json` (future).
52
+ *
53
+ * Contains everything needed for SSR HTML injection and asset preloading.
54
+ */
55
+ export interface ClientManifest extends ManifestBase {
56
+ /** JavaScript bundle paths for HTML injection. */
57
+ js: string[];
58
+ /** CSS bundle paths for HTML injection. */
59
+ css: string[];
60
+ /** Per-page assets for MPA support (future — reserved). */
61
+ pages?: Record<string, PageEntry>;
62
+ }
63
+ export {};
package/esm/index.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @evjs/manifest
3
+ *
4
+ * Shared manifest schemas for the ev framework build system.
5
+ *
6
+ * Each environment emits its own manifest file:
7
+ * - dist/server/manifest.json → ServerManifest
8
+ * - dist/client/manifest.json → ClientManifest (future)
9
+ */
10
+ export {};
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@evjs/manifest",
3
+ "version": "0.0.1-rc.13",
4
+ "description": "Shared manifest types for the ev framework",
5
+ "type": "module",
6
+ "publishConfig": {
7
+ "access": "public"
8
+ },
9
+ "main": "./esm/index.js",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./esm/index.d.ts",
13
+ "import": "./esm/index.js",
14
+ "require": "./esm/index.js"
15
+ }
16
+ },
17
+ "scripts": {
18
+ "build": "tsc",
19
+ "check-types": "tsc --noEmit"
20
+ },
21
+ "files": [
22
+ "esm",
23
+ "AGENT.md"
24
+ ],
25
+ "keywords": [
26
+ "evjs",
27
+ "manifest",
28
+ "server-functions"
29
+ ],
30
+ "author": "xusd320",
31
+ "license": "MIT",
32
+ "devDependencies": {
33
+ "typescript": "^5.7.3"
34
+ },
35
+ "homepage": "https://github.com/evaijs/evjs#readme",
36
+ "bugs": {
37
+ "url": "https://github.com/evaijs/evjs/issues"
38
+ },
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "git+https://github.com/evaijs/evjs.git"
42
+ }
43
+ }