create-analog 2.0.0-alpha.2 → 2.0.0-alpha.20

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.
Files changed (87) hide show
  1. package/files/styles.css +4 -85
  2. package/index.js +25 -93
  3. package/package.json +3 -3
  4. package/template-angular-v17/package.json +8 -8
  5. package/template-angular-v18/package.json +9 -9
  6. package/template-angular-v18/vite.config.ts +1 -1
  7. package/{template-angular-v16 → template-angular-v19}/README.md +1 -1
  8. package/{template-angular-v16 → template-angular-v19}/_gitignore +2 -0
  9. package/{template-angular-v16 → template-angular-v19}/angular.json +1 -1
  10. package/{template-angular-v16 → template-angular-v19}/index.html +1 -1
  11. package/template-angular-v19/package.json +53 -0
  12. package/{template-latest → template-angular-v19}/src/app/app.component.ts +0 -1
  13. package/{template-angular-v16 → template-angular-v19}/src/app/app.config.server.ts +3 -8
  14. package/template-angular-v19/src/app/app.config.ts +20 -0
  15. package/template-angular-v19/src/app/pages/index.page.ts +54 -0
  16. package/template-angular-v19/src/main.server.ts +8 -0
  17. package/{template-angular-v16 → template-angular-v19}/src/main.ts +2 -2
  18. package/{template-angular-v16 → template-angular-v19}/src/styles.css +5 -0
  19. package/{template-angular-v16 → template-angular-v19}/tsconfig.app.json +2 -3
  20. package/{template-angular-v16 → template-angular-v19}/tsconfig.json +3 -6
  21. package/{template-angular-v16 → template-angular-v19}/tsconfig.spec.json +3 -3
  22. package/{template-angular-v16 → template-angular-v19}/vite.config.ts +5 -4
  23. package/template-blog/.vscode/extensions.json +1 -1
  24. package/template-blog/angular.json +1 -1
  25. package/template-blog/package.json +24 -18
  26. package/template-blog/src/app/app.config.ts +8 -3
  27. package/{template-latest/src/app/app.component.spec.ts → template-blog/src/app/app.spec.ts} +1 -1
  28. package/template-blog/src/app/{app.component.ts → app.ts} +0 -1
  29. package/template-blog/src/app/pages/blog/[slug].page.ts +0 -1
  30. package/template-blog/src/app/pages/blog/index.page.ts +0 -1
  31. package/template-blog/src/test-setup.ts +6 -5
  32. package/template-blog/tsconfig.json +5 -3
  33. package/template-blog/vite.config.ts +3 -3
  34. package/template-latest/.vscode/extensions.json +1 -1
  35. package/template-latest/angular.json +1 -1
  36. package/template-latest/package.json +24 -18
  37. package/template-latest/src/app/app.config.ts +8 -3
  38. package/template-latest/src/app/{app-root.spec.ts → app.spec.ts} +4 -4
  39. package/template-latest/src/app/app.ts +17 -0
  40. package/template-latest/src/app/pages/analog-welcome.ts +263 -0
  41. package/template-latest/src/app/pages/index.page.ts +5 -47
  42. package/template-latest/src/styles.css +3 -79
  43. package/template-latest/src/test-setup.ts +6 -5
  44. package/template-latest/tsconfig.json +5 -3
  45. package/template-latest/vite.config.ts +4 -2
  46. package/template-minimal/.vscode/extensions.json +1 -1
  47. package/template-minimal/angular.json +1 -1
  48. package/template-minimal/package.json +24 -18
  49. package/template-minimal/src/app/app.config.ts +8 -3
  50. package/template-minimal/src/app/{app.component.ts → app.ts} +0 -1
  51. package/template-minimal/src/app/pages/index.page.ts +0 -1
  52. package/template-minimal/tsconfig.json +1 -1
  53. package/template-minimal/vite.config.ts +3 -3
  54. package/files/analog-env.d.ts +0 -13
  55. package/files/postcss.config.cjs +0 -6
  56. package/files/tailwind.config.ts +0 -9
  57. package/template-angular-v16/package.json +0 -54
  58. package/template-angular-v16/src/app/app.component.spec.ts +0 -17
  59. package/template-angular-v16/src/app/app.component.ts +0 -20
  60. package/template-angular-v16/src/app/app.config.ts +0 -12
  61. package/template-angular-v16/src/app/pages/index.page.ts +0 -49
  62. package/template-angular-v16/src/main.server.ts +0 -26
  63. package/template-angular-v18/src/app/app-root.ag +0 -16
  64. package/template-angular-v18/src/app/app-root.spec.ts +0 -20
  65. package/template-angular-v18/src/app/pages/index.page.ag +0 -53
  66. package/template-blog/src/app/app-root.ag +0 -25
  67. package/template-blog/src/app/app-root.spec.ts +0 -20
  68. package/template-blog/src/app/pages/blog/[slug].page.ag +0 -24
  69. package/template-blog/src/app/pages/blog/index.page.ag +0 -32
  70. package/template-latest/src/app/app-root.ag +0 -16
  71. package/template-latest/src/app/pages/index.page.ag +0 -53
  72. package/template-minimal/src/app/app-root.ag +0 -7
  73. package/template-minimal/src/app/pages/index.page.ag +0 -32
  74. /package/{template-angular-v16 → template-angular-v19}/.editorconfig +0 -0
  75. /package/{template-angular-v16 → template-angular-v19}/.vscode/extensions.json +0 -0
  76. /package/{template-angular-v16 → template-angular-v19}/.vscode/launch.json +0 -0
  77. /package/{template-angular-v16 → template-angular-v19}/.vscode/tasks.json +0 -0
  78. /package/{template-angular-v16/src/assets → template-angular-v19/public}/.gitkeep +0 -0
  79. /package/{template-angular-v16/src/assets → template-angular-v19/public}/analog.svg +0 -0
  80. /package/{template-angular-v16 → template-angular-v19/public}/favicon.ico +0 -0
  81. /package/{template-angular-v16/src/assets → template-angular-v19/public}/vite.svg +0 -0
  82. /package/{template-blog → template-angular-v19}/src/app/app.component.spec.ts +0 -0
  83. /package/{template-angular-v16/src/server/routes → template-angular-v19/src/server/routes/api}/v1/hello.ts +0 -0
  84. /package/{template-angular-v16/src/test.ts → template-angular-v19/src/test-setup.ts} +0 -0
  85. /package/{template-angular-v16 → template-angular-v19}/src/vite-env.d.ts +0 -0
  86. /package/template-blog/src/server/routes/{v1 → api/v1}/hello.ts +0 -0
  87. /package/template-latest/src/server/routes/{v1 → api/v1}/hello.ts +0 -0
@@ -1,54 +0,0 @@
1
- {
2
- "name": "my-app",
3
- "version": "0.0.0",
4
- "type": "module",
5
- "private": true,
6
- "engines": {
7
- "node": ">=18.13.0"
8
- },
9
- "scripts": {
10
- "dev": "ng serve",
11
- "ng": "ng",
12
- "start": "ng serve",
13
- "build": "ng build",
14
- "watch": "ng build --watch",
15
- "test": "ng test"
16
- },
17
- "dependencies": {
18
- "@analogjs/content": "^2.0.0-alpha.2",
19
- "@analogjs/router": "^2.0.0-alpha.2",
20
- "@angular/animations": "^16.2.0",
21
- "@angular/common": "^16.2.0",
22
- "@angular/compiler": "^16.2.0",
23
- "@angular/core": "^16.2.0",
24
- "@angular/forms": "^16.2.0",
25
- "@angular/platform-browser": "^16.2.0",
26
- "@angular/platform-browser-dynamic": "^16.2.0",
27
- "@angular/platform-server": "^16.2.0",
28
- "@angular/router": "^16.2.0",
29
- "@nx/angular": "~18.0.0",
30
- "front-matter": "^4.0.2",
31
- "marked": "^5.0.2",
32
- "marked-gfm-heading-id": "^3.1.0",
33
- "marked-highlight": "^2.0.1",
34
- "mermaid": "^10.2.4",
35
- "prismjs": "^1.29.0",
36
- "rxjs": "~7.5.6",
37
- "tslib": "^2.4.0",
38
- "zone.js": "~0.13.0"
39
- },
40
- "devDependencies": {
41
- "@analogjs/platform": "^2.0.0-alpha.2",
42
- "@analogjs/vite-plugin-angular": "^2.0.0-alpha.2",
43
- "@analogjs/vitest-angular": "^2.0.0-alpha.2",
44
- "@angular-devkit/build-angular": "^16.2.0",
45
- "@angular/cli": "^16.2.0",
46
- "@angular/compiler-cli": "^16.2.0",
47
- "@nx/vite": "~18.0.0",
48
- "nx": "~18.0.0",
49
- "jsdom": "^22.1.0",
50
- "typescript": "~5.0.2",
51
- "vite": "^5.0.0",
52
- "vitest": "^1.3.1"
53
- }
54
- }
@@ -1,17 +0,0 @@
1
- import { TestBed } from '@angular/core/testing';
2
- import { RouterTestingModule } from '@angular/router/testing';
3
- import { AppComponent } from './app.component';
4
-
5
- describe('AppComponent', () => {
6
- beforeEach(async () => {
7
- await TestBed.configureTestingModule({
8
- imports: [RouterTestingModule, AppComponent],
9
- }).compileComponents();
10
- });
11
-
12
- it('should create the app', () => {
13
- const fixture = TestBed.createComponent(AppComponent);
14
- const app = fixture.componentInstance;
15
- expect(app).toBeTruthy();
16
- });
17
- });
@@ -1,20 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { RouterOutlet } from '@angular/router';
3
-
4
- @Component({
5
- selector: 'app-root',
6
- standalone: true,
7
- imports: [RouterOutlet],
8
- template: ` <router-outlet></router-outlet> `,
9
- styles: [
10
- `
11
- :host {
12
- max-width: 1280px;
13
- margin: 0 auto;
14
- padding: 2rem;
15
- text-align: center;
16
- }
17
- `,
18
- ],
19
- })
20
- export class AppComponent {}
@@ -1,12 +0,0 @@
1
- import { provideHttpClient } from '@angular/common/http';
2
- import { ApplicationConfig } from '@angular/core';
3
- import { provideClientHydration } from '@angular/platform-browser';
4
- import { provideFileRouter } from '@analogjs/router';
5
-
6
- export const appConfig: ApplicationConfig = {
7
- providers: [
8
- provideFileRouter(),
9
- provideHttpClient(),
10
- provideClientHydration(),
11
- ],
12
- };
@@ -1,49 +0,0 @@
1
- import { Component } from '@angular/core';
2
-
3
- @Component({
4
- selector: 'app-home',
5
- standalone: true,
6
- template: `
7
- <div>
8
- <a href="https://analogjs.org/" target="_blank">
9
- <img alt="Analog Logo" class="logo analog" src="/analog.svg" />
10
- </a>
11
- </div>
12
-
13
- <h2>Analog</h2>
14
-
15
- <h3>The fullstack meta-framework for Angular!</h3>
16
-
17
- <div class="card">
18
- <button type="button" (click)="increment()">Count {{ count }}</button>
19
- </div>
20
-
21
- <p class="read-the-docs">
22
- For guides on how to customize this project, visit the
23
- <a href="https://analogjs.org" target="_blank">Analog documentation</a>
24
- </p>
25
- `,
26
- styles: [
27
- `
28
- .logo {
29
- will-change: filter;
30
- }
31
- .logo:hover {
32
- filter: drop-shadow(0 0 2em #646cffaa);
33
- }
34
- .logo.angular:hover {
35
- filter: drop-shadow(0 0 2em #42b883aa);
36
- }
37
- .read-the-docs {
38
- color: #888;
39
- }
40
- `,
41
- ],
42
- })
43
- export default class HomeComponent {
44
- count = 0;
45
-
46
- increment() {
47
- this.count++;
48
- }
49
- }
@@ -1,26 +0,0 @@
1
- import 'zone.js/node';
2
- import '@angular/platform-server/init';
3
-
4
- import { enableProdMode } from '@angular/core';
5
- import { bootstrapApplication } from '@angular/platform-browser';
6
- import { renderApplication } from '@angular/platform-server';
7
-
8
- import { config } from './app/app.config.server';
9
- import { AppComponent } from './app/app.component';
10
-
11
- if (import.meta.env.PROD) {
12
- enableProdMode();
13
- }
14
-
15
- export function bootstrap() {
16
- return bootstrapApplication(AppComponent, config);
17
- }
18
-
19
- export default async function render(url: string, document: string) {
20
- const html = await renderApplication(bootstrap, {
21
- document,
22
- url,
23
- });
24
-
25
- return html;
26
- }
@@ -1,16 +0,0 @@
1
- <script lang="ts">
2
- import { RouterOutlet } from '@angular/router' with { analog: 'imports' };
3
- </script>
4
-
5
- <template>
6
- <router-outlet />
7
- </template>
8
-
9
- <style>
10
- :host {
11
- max-width: 1280px;
12
- margin: 0 auto;
13
- padding: 2rem;
14
- text-align: center;
15
- }
16
- </style>
@@ -1,20 +0,0 @@
1
- import { TestBed } from '@angular/core/testing';
2
- import { provideRouter } from '@angular/router';
3
- import { provideLocationMocks } from '@angular/common/testing';
4
-
5
- import App from './app-root.ag';
6
-
7
- describe('App', () => {
8
- beforeEach(async () => {
9
- await TestBed.configureTestingModule({
10
- imports: [App],
11
- providers: [provideRouter([]), provideLocationMocks()],
12
- }).compileComponents();
13
- });
14
-
15
- it('should create the app', () => {
16
- const fixture = TestBed.createComponent(App);
17
- const app = fixture.componentInstance;
18
- expect(app).toBeTruthy();
19
- });
20
- });
@@ -1,53 +0,0 @@
1
- <script lang="ts">
2
- import { signal } from '@angular/core';
3
-
4
- const count = signal(0);
5
-
6
- function increment() {
7
- this.count.update((count) => count + 1);
8
- }
9
- </script>
10
-
11
- <template>
12
- <div>
13
- <a href="https://analogjs.org/" target="_blank">
14
- <img alt="Analog Logo" class="logo analog" src="/analog.svg" />
15
- </a>
16
- </div>
17
-
18
- <h2>Analog</h2>
19
-
20
- <h3>The fullstack meta-framework for Angular!</h3>
21
-
22
- <div class="card">
23
- <button type="button" (click)="increment()">Count {{ count() }}</button>
24
- </div>
25
-
26
- <p class="read-the-docs">
27
- <a href="https://analogjs.org" target="_blank">Docs</a> |
28
- <a href="https://github.com/analogjs/analog" target="_blank">GitHub</a> |
29
- <a href="https://github.com/sponsors/brandonroberts" target="_blank">
30
- Sponsor
31
- </a>
32
- </p>
33
- </template>
34
-
35
- <style>
36
- .logo {
37
- will-change: filter;
38
- }
39
-
40
- .logo:hover {
41
- filter: drop-shadow(0 0 2em #646cffaa);
42
- }
43
-
44
- .read-the-docs > * {
45
- color: #fff;
46
- }
47
-
48
- @media (prefers-color-scheme: light) {
49
- .read-the-docs > * {
50
- color: #213547;
51
- }
52
- }
53
- </style>
@@ -1,25 +0,0 @@
1
- <script lang="ts">
2
- import { RouterLink, RouterOutlet } from '@angular/router' with { analog: 'imports' };
3
- </script>
4
-
5
- <template>
6
- <nav>
7
- <a routerLink="/">Home</a>
8
- </nav>
9
-
10
- <router-outlet />
11
- </template>
12
-
13
- <style>
14
- :host {
15
- max-width: 1280px;
16
- margin: 0 auto;
17
- padding: 2rem;
18
- text-align: center;
19
- }
20
-
21
- nav {
22
- text-align: left;
23
- padding: 0 0 2rem 0;
24
- }
25
- </style>
@@ -1,20 +0,0 @@
1
- import { TestBed } from '@angular/core/testing';
2
- import { provideRouter } from '@angular/router';
3
- import { provideLocationMocks } from '@angular/common/testing';
4
-
5
- import App from './app-root.ag';
6
-
7
- describe('App', () => {
8
- beforeEach(async () => {
9
- await TestBed.configureTestingModule({
10
- imports: [App],
11
- providers: [provideRouter([]), provideLocationMocks()],
12
- }).compileComponents();
13
- });
14
-
15
- it('should create the app', () => {
16
- const fixture = TestBed.createComponent(App);
17
- const app = fixture.componentInstance;
18
- expect(app).toBeTruthy();
19
- });
20
- });
@@ -1,24 +0,0 @@
1
- <script lang="ts">
2
- import { AsyncPipe } from '@angular/common' with { analog: 'imports' };
3
- import { MarkdownComponent } from '@analogjs/content' with { analog: 'imports' };
4
- import { injectContent } from '@analogjs/content';
5
-
6
- import PostAttributes from '../../post-attributes';
7
-
8
- const post$ = injectContent<PostAttributes>('slug');
9
- </script>
10
-
11
- <template>
12
- @if (post$ | async; as post) {
13
- <article>
14
- <img class="post__image" [src]="post.attributes.coverImage" />
15
- <analog-markdown [content]="post.content" />
16
- </article>
17
- }
18
- </template>
19
-
20
- <style>
21
- .post__image {
22
- max-height: 40vh;
23
- }
24
- </style>
@@ -1,32 +0,0 @@
1
- <script lang="ts">
2
- import { RouterLink } from '@angular/router' with { analog: 'imports' };
3
- import { injectContentFiles } from '@analogjs/content';
4
-
5
- import PostAttributes from '../../post-attributes';
6
-
7
- const posts = injectContentFiles<PostAttributes>();
8
- </script>
9
-
10
- <template>
11
- <h1>Blog Archive</h1>
12
-
13
- @for (post of posts; track post.attributes.slug) {
14
- <a [routerLink]="['/blog/', post.attributes.slug]">
15
- <h2 class="post__title">{{ post.attributes.title }}</h2>
16
- <p class="post__desc">{{ post.attributes.description }}</p>
17
- </a>
18
- }
19
- </template>
20
-
21
- <style>
22
- a {
23
- text-align: left;
24
- display: block;
25
- margin-bottom: 2rem;
26
- }
27
-
28
- .post__title,
29
- .post__desc {
30
- margin: 0;
31
- }
32
- </style>
@@ -1,16 +0,0 @@
1
- <script lang="ts">
2
- import { RouterOutlet } from '@angular/router' with { analog: 'imports' };
3
- </script>
4
-
5
- <template>
6
- <router-outlet />
7
- </template>
8
-
9
- <style>
10
- :host {
11
- max-width: 1280px;
12
- margin: 0 auto;
13
- padding: 2rem;
14
- text-align: center;
15
- }
16
- </style>
@@ -1,53 +0,0 @@
1
- <script lang="ts">
2
- import { signal } from '@angular/core';
3
-
4
- const count = signal(0);
5
-
6
- function increment() {
7
- this.count.update((count) => count + 1);
8
- }
9
- </script>
10
-
11
- <template>
12
- <div>
13
- <a href="https://analogjs.org/" target="_blank">
14
- <img alt="Analog Logo" class="logo analog" src="/analog.svg" />
15
- </a>
16
- </div>
17
-
18
- <h2>Analog</h2>
19
-
20
- <h3>The fullstack meta-framework for Angular!</h3>
21
-
22
- <div class="card">
23
- <button type="button" (click)="increment()">Count {{ count() }}</button>
24
- </div>
25
-
26
- <p class="read-the-docs">
27
- <a href="https://analogjs.org" target="_blank">Docs</a> |
28
- <a href="https://github.com/analogjs/analog" target="_blank">GitHub</a> |
29
- <a href="https://github.com/sponsors/brandonroberts" target="_blank">
30
- Sponsor
31
- </a>
32
- </p>
33
- </template>
34
-
35
- <style>
36
- .logo {
37
- will-change: filter;
38
- }
39
-
40
- .logo:hover {
41
- filter: drop-shadow(0 0 2em #646cffaa);
42
- }
43
-
44
- .read-the-docs > * {
45
- color: #fff;
46
- }
47
-
48
- @media (prefers-color-scheme: light) {
49
- .read-the-docs > * {
50
- color: #213547;
51
- }
52
- }
53
- </style>
@@ -1,7 +0,0 @@
1
- <script lang="ts">
2
- import { RouterOutlet } from '@angular/router' with { analog: 'imports' };
3
- </script>
4
-
5
- <template>
6
- <router-outlet />
7
- </template>
@@ -1,32 +0,0 @@
1
- <template>
2
- <h2>Analog</h2>
3
-
4
- <h3>The fullstack meta-framework for Angular!</h3>
5
-
6
- <p class="read-the-docs">
7
- <a href="https://analogjs.org" target="_blank">Docs</a> |
8
- <a href="https://github.com/analogjs/analog" target="_blank">GitHub</a> |
9
- <a href="https://github.com/sponsors/brandonroberts" target="_blank">
10
- Sponsor
11
- </a>
12
- </p>
13
- </template>
14
-
15
- <style>
16
- :host {
17
- display: flex;
18
- flex-direction: column;
19
- justify-content: center;
20
- align-items: center;
21
- }
22
-
23
- .read-the-docs > * {
24
- color: #fff;
25
- }
26
-
27
- @media (prefers-color-scheme: light) {
28
- .read-the-docs > * {
29
- color: #213547;
30
- }
31
- }
32
- </style>