@analogjs/platform 2.7.0-beta.11 → 2.7.0-beta.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@analogjs/platform",
3
- "version": "2.7.0-beta.11",
3
+ "version": "2.7.0-beta.13",
4
4
  "description": "The fullstack meta-framework for Angular",
5
5
  "type": "module",
6
6
  "author": "Brandon Roberts <robertsbt@gmail.com>",
@@ -29,8 +29,8 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "nitropack": "^2.13.1",
32
- "@analogjs/vite-plugin-angular": "^2.7.0-beta.11",
33
- "@analogjs/vite-plugin-nitro": "^2.7.0-beta.11",
32
+ "@analogjs/vite-plugin-angular": "^2.7.0-beta.13",
33
+ "@analogjs/vite-plugin-nitro": "^2.7.0-beta.13",
34
34
  "oxc-parser": "^0.121.0",
35
35
  "vitefu": "^1.1.2"
36
36
  },
package/plugin.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
+ "name": "analogjs",
4
+ "description": "AnalogJS framework conventions for AI coding assistants — file-based routing, server and API routes, data fetching, and content routes.",
5
+ "author": {
6
+ "name": "Brandon Roberts",
7
+ "email": "robertsbt@gmail.com"
8
+ },
9
+ "homepage": "https://analogjs.org",
10
+ "repository": "https://github.com/analogjs/analog",
11
+ "license": "MIT",
12
+ "keywords": ["analog", "angular", "vite", "meta-framework"]
13
+ }
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: analogjs
3
+ description: Conventions for working in an AnalogJS app (an Angular meta-framework powered by Vite) — file-based routing with `.page.ts` files, `RouteMeta`, server and API routes on Nitro/h3, page load functions and server functions in `.server.ts` files, markdown content routes, and the modern Angular style Analog expects. Use when reading or writing code in a project that depends on `@analogjs/platform`.
4
+ license: MIT
5
+ ---
6
+
7
+ # AnalogJS — conventions for AI coding assistants
8
+
9
+ This skill ships with `@analogjs/platform` and documents how to work in an [AnalogJS](https://analogjs.org) app (an Angular meta-framework, powered by Vite). It mirrors the `AGENTS.md` published alongside it, so the guidance stays in sync with the installed version.
10
+
11
+ ## Commands
12
+
13
+ - `npm start` / `npm run dev` — start the dev server (Vite)
14
+ - `npm run build` — production build
15
+ - `npm test` — run unit tests (Vitest)
16
+ - `npm run preview` — run the built server locally
17
+
18
+ ## Project structure
19
+
20
+ - `src/app/pages/` — file-based routes (see Routing below)
21
+ - `src/app/` — components and app config (`app.config.ts`, `app.config.server.ts`)
22
+ - `src/server/routes/` — server and API routes (Nitro + h3)
23
+ - `src/main.ts` / `src/main.server.ts` — client and server bootstrap
24
+ - `vite.config.ts` — Vite + Analog plugin and Vitest config
25
+
26
+ ## Routing
27
+
28
+ Routes are file-based. A file in `src/app/pages/` ending in `.page.ts` becomes a route, and it must `export default` a standalone Angular component.
29
+
30
+ - `index.page.ts` → `/`
31
+ - `about.page.ts` → `/about`
32
+ - `products/index.page.ts` → `/products`
33
+ - `products/[productId].page.ts` → `/products/:productId` (dynamic segment)
34
+ - `(auth).page.ts` + `(auth)/*.page.ts` → pathless layout: `(auth).page.ts` renders a `<router-outlet />` and wraps its child routes (e.g. `(auth)/login.page.ts` → `/login`, `(auth)/signup.page.ts` → `/signup`) without adding a path segment
35
+ - `[...not-found].page.ts` → catch-all / 404
36
+
37
+ Read route params with `inject(ActivatedRoute)` from `@angular/router`.
38
+
39
+ Define per-route metadata (title, meta tags, guards, resolvers) by exporting a `RouteMeta`:
40
+
41
+ ```ts
42
+ import { RouteMeta } from '@analogjs/router';
43
+
44
+ export const routeMeta: RouteMeta = {
45
+ title: 'Products',
46
+ };
47
+ ```
48
+
49
+ ## Server & API routes
50
+
51
+ Server routes live in `src/server/routes/` and use [h3](https://h3.dev). API routes are conventionally under `src/server/routes/api/`.
52
+
53
+ ```ts
54
+ import { defineEventHandler } from 'h3';
55
+
56
+ export default defineEventHandler(() => ({ message: 'Hello World' }));
57
+ ```
58
+
59
+ Filenames encode the HTTP method and params: `hello.get.ts`, `users.post.ts`, `users/[id].get.ts`.
60
+
61
+ ## Data fetching
62
+
63
+ - **Page load functions:** add a sibling `.server.ts` `load` function and read its result in the page with `injectLoad` from `@analogjs/router`.
64
+ - **Server functions:** define functions in `.server.ts` files and call them from the client with `injectServerFn`.
65
+
66
+ ## Content routes
67
+
68
+ Markdown content is supported via `@analogjs/content`: `injectContent` / `injectContentFiles` to load content, and `MarkdownComponent` (`analog-markdown`) to render it. Content files live in `src/content/`.
69
+
70
+ ## Conventions
71
+
72
+ - Use modern Angular: standalone components, `inject()`, signals, and the built-in control flow (`@if`, `@for`, `@switch`).
73
+ - Page components are **default-exported**.
74
+ - Tests are colocated as `*.spec.ts` and run under Vitest (jsdom environment).
75
+ - Prefer existing Angular and Analog APIs over hand-rolled equivalents.
76
+
77
+ ## More
78
+
79
+ Full documentation: https://analogjs.org/docs
80
+ LLM-friendly docs index: https://analogjs.org/llms.txt
@@ -1,10 +1,10 @@
1
1
  export declare const V18_X_NX_DEVKIT = "^20.0.0";
2
2
  export declare const V18_X_NX_ANGULAR = "^20.0.0";
3
- export declare const V18_X_ANALOG_JS_CONTENT = "^2.7.0-beta.11";
4
- export declare const V18_X_ANALOG_JS_ROUTER = "^2.7.0-beta.11";
3
+ export declare const V18_X_ANALOG_JS_CONTENT = "^2.7.0-beta.13";
4
+ export declare const V18_X_ANALOG_JS_ROUTER = "^2.7.0-beta.13";
5
5
  export declare const V18_X_ANALOG_JS_TRPC = "~0.4.0";
6
- export declare const V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^2.7.0-beta.11";
7
- export declare const V18_X_ANALOG_JS_VITEST_ANGULAR = "^2.7.0-beta.11";
6
+ export declare const V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^2.7.0-beta.13";
7
+ export declare const V18_X_ANALOG_JS_VITEST_ANGULAR = "^2.7.0-beta.13";
8
8
  export declare const V18_X_TRPC_CLIENT = "^10.25.0";
9
9
  export declare const V18_X_TRPC_SERVER = "^10.25.0";
10
10
  export declare const V18_X_ISOMORPHIC_FETCH = "^3.0.0";
@@ -20,7 +20,7 @@ export declare const V18_X_TAILWINDCSS = "^4.1.4";
20
20
  export declare const V18_X_TAILWINDCSS_VITE = "^4.1.4";
21
21
  export declare const V18_X_POSTCSS = "^8.5.3";
22
22
  export declare const V18_X_AUTOPREFIXER = "^10.4.0";
23
- export declare const V18_X_ANALOG_JS_PLATFORM = "^2.7.0-beta.11";
23
+ export declare const V18_X_ANALOG_JS_PLATFORM = "^2.7.0-beta.13";
24
24
  export declare const V18_X_ANGULAR_DEVKIT_BUILD_ANGULAR = "^19.0.0";
25
25
  export declare const V18_X_NX_VITE = "^21.0.0";
26
26
  export declare const V18_X_NX_LINTER = "^21.0.0";
@@ -5,11 +5,11 @@ exports.V18_X_ZOD = exports.V18_X_VITEST = exports.V18_X_VITE_TSCONFIG_PATHS = e
5
5
  // dependencies
6
6
  exports.V18_X_NX_DEVKIT = '^20.0.0';
7
7
  exports.V18_X_NX_ANGULAR = '^20.0.0';
8
- exports.V18_X_ANALOG_JS_CONTENT = '^2.7.0-beta.11';
9
- exports.V18_X_ANALOG_JS_ROUTER = '^2.7.0-beta.11';
8
+ exports.V18_X_ANALOG_JS_CONTENT = '^2.7.0-beta.13';
9
+ exports.V18_X_ANALOG_JS_ROUTER = '^2.7.0-beta.13';
10
10
  exports.V18_X_ANALOG_JS_TRPC = '~0.4.0';
11
- exports.V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^2.7.0-beta.11';
12
- exports.V18_X_ANALOG_JS_VITEST_ANGULAR = '^2.7.0-beta.11';
11
+ exports.V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^2.7.0-beta.13';
12
+ exports.V18_X_ANALOG_JS_VITEST_ANGULAR = '^2.7.0-beta.13';
13
13
  exports.V18_X_TRPC_CLIENT = '^10.25.0';
14
14
  exports.V18_X_TRPC_SERVER = '^10.25.0';
15
15
  exports.V18_X_ISOMORPHIC_FETCH = '^3.0.0';
@@ -26,7 +26,7 @@ exports.V18_X_TAILWINDCSS_VITE = '^4.1.4';
26
26
  exports.V18_X_POSTCSS = '^8.5.3';
27
27
  exports.V18_X_AUTOPREFIXER = '^10.4.0';
28
28
  // devDependencies
29
- exports.V18_X_ANALOG_JS_PLATFORM = '^2.7.0-beta.11';
29
+ exports.V18_X_ANALOG_JS_PLATFORM = '^2.7.0-beta.13';
30
30
  exports.V18_X_ANGULAR_DEVKIT_BUILD_ANGULAR = '^19.0.0';
31
31
  exports.V18_X_NX_VITE = '^21.0.0';
32
32
  exports.V18_X_NX_LINTER = '^21.0.0';
@@ -1,13 +1,13 @@
1
- export declare const V19_X_ANALOG_JS_ROUTER = "^2.7.0-beta.11";
2
- export declare const V19_X_ANALOG_JS_CONTENT = "^2.7.0-beta.11";
1
+ export declare const V19_X_ANALOG_JS_ROUTER = "^2.7.0-beta.13";
2
+ export declare const V19_X_ANALOG_JS_CONTENT = "^2.7.0-beta.13";
3
3
  export declare const V19_X_MARKED = "^15.0.7";
4
4
  export declare const V19_X_MARKED_GFM_HEADING_ID = "^4.1.1";
5
5
  export declare const V19_X_MARKED_HIGHLIGHT = "^2.2.1";
6
6
  export declare const V19_X_MARKED_MANGLE = "^1.1.10";
7
7
  export declare const V19_X_PRISMJS = "^1.29.0";
8
- export declare const V19_X_ANALOG_JS_PLATFORM = "^2.7.0-beta.11";
9
- export declare const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^2.7.0-beta.11";
10
- export declare const V19_X_ANALOG_JS_VITEST_ANGULAR = "^2.7.0-beta.11";
8
+ export declare const V19_X_ANALOG_JS_PLATFORM = "^2.7.0-beta.13";
9
+ export declare const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^2.7.0-beta.13";
10
+ export declare const V19_X_ANALOG_JS_VITEST_ANGULAR = "^2.7.0-beta.13";
11
11
  export declare const V19_X_NX_ANGULAR = "^22.0.0";
12
12
  export declare const V19_X_NX_VITE = "^22.0.0";
13
13
  export declare const V19_X_JSDOM = "^22.0.0";
@@ -2,17 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NX_X_LATEST_NX = exports.NX_X_LATEST_VITEST = exports.NX_X_LATEST_VITE = exports.V19_X_VITE = exports.V19_X_VITEST = exports.V19_X_VITE_TSCONFIG_PATHS = exports.V19_X_JSDOM = exports.V19_X_NX_VITE = exports.V19_X_NX_ANGULAR = exports.V19_X_ANALOG_JS_VITEST_ANGULAR = exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = exports.V19_X_ANALOG_JS_PLATFORM = exports.V19_X_PRISMJS = exports.V19_X_MARKED_MANGLE = exports.V19_X_MARKED_HIGHLIGHT = exports.V19_X_MARKED_GFM_HEADING_ID = exports.V19_X_MARKED = exports.V19_X_ANALOG_JS_CONTENT = exports.V19_X_ANALOG_JS_ROUTER = void 0;
4
4
  // V19_X
5
- exports.V19_X_ANALOG_JS_ROUTER = '^2.7.0-beta.11';
6
- exports.V19_X_ANALOG_JS_CONTENT = '^2.7.0-beta.11';
5
+ exports.V19_X_ANALOG_JS_ROUTER = '^2.7.0-beta.13';
6
+ exports.V19_X_ANALOG_JS_CONTENT = '^2.7.0-beta.13';
7
7
  exports.V19_X_MARKED = '^15.0.7';
8
8
  exports.V19_X_MARKED_GFM_HEADING_ID = '^4.1.1';
9
9
  exports.V19_X_MARKED_HIGHLIGHT = '^2.2.1';
10
10
  exports.V19_X_MARKED_MANGLE = '^1.1.10';
11
11
  exports.V19_X_PRISMJS = '^1.29.0';
12
12
  // devDependencies
13
- exports.V19_X_ANALOG_JS_PLATFORM = '^2.7.0-beta.11';
14
- exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^2.7.0-beta.11';
15
- exports.V19_X_ANALOG_JS_VITEST_ANGULAR = '^2.7.0-beta.11';
13
+ exports.V19_X_ANALOG_JS_PLATFORM = '^2.7.0-beta.13';
14
+ exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^2.7.0-beta.13';
15
+ exports.V19_X_ANALOG_JS_VITEST_ANGULAR = '^2.7.0-beta.13';
16
16
  exports.V19_X_NX_ANGULAR = '^22.0.0';
17
17
  exports.V19_X_NX_VITE = '^22.0.0';
18
18
  exports.V19_X_JSDOM = '^22.0.0';