@foliokit/cms-core 1.0.0 → 1.0.1

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 (95) hide show
  1. package/README.md +62 -2
  2. package/eslint.config.mjs +48 -0
  3. package/ng-package.json +7 -0
  4. package/package.json +5 -18
  5. package/project.json +32 -0
  6. package/{esm2022/index.js → src/index.ts} +9 -3
  7. package/src/lib/cms-core/cms-core.html +1 -0
  8. package/src/lib/cms-core/cms-core.scss +0 -0
  9. package/src/lib/cms-core/cms-core.spec.ts +44 -0
  10. package/src/lib/cms-core/cms-core.ts +9 -0
  11. package/src/lib/firebase/firebase-admin.ts +32 -0
  12. package/src/lib/firebase/firebase.config.ts +26 -0
  13. package/src/lib/firebase/firebase.providers.ts +89 -0
  14. package/src/lib/firebase/foliokit.providers.ts +178 -0
  15. package/src/lib/models/author.model.ts +16 -0
  16. package/src/lib/models/page.model.ts +11 -0
  17. package/src/lib/models/post.model.ts +41 -0
  18. package/src/lib/models/site-config.model.ts +103 -0
  19. package/src/lib/models/tag.model.ts +5 -0
  20. package/src/lib/pipes/tag-label.pipe.ts +16 -0
  21. package/src/lib/resolvers/about-page.resolver.ts +76 -0
  22. package/src/lib/resolvers/links-page.resolver.ts +77 -0
  23. package/src/lib/resolvers/posts.resolver.ts +51 -0
  24. package/src/lib/services/auth.service.ts +49 -0
  25. package/src/lib/services/author.service.ts +88 -0
  26. package/src/lib/services/post.service.spec.ts +255 -0
  27. package/src/lib/services/post.service.ts +148 -0
  28. package/src/lib/services/site-config.service.ts +86 -0
  29. package/src/lib/services/tag.service.ts +24 -0
  30. package/src/lib/tokens/post-service.token.ts +14 -0
  31. package/src/lib/tokens/site-config-service.token.ts +12 -0
  32. package/src/lib/utils/normalize-author.ts +50 -0
  33. package/src/lib/utils/normalize-post.ts +66 -0
  34. package/src/lib/utils/normalize-site-config.ts +145 -0
  35. package/testing/firestore.stub.ts +65 -0
  36. package/tsconfig.json +31 -0
  37. package/tsconfig.lib.json +12 -0
  38. package/tsconfig.lib.prod.json +9 -0
  39. package/tsconfig.spec.json +8 -0
  40. package/esm2022/foliokit-cms-core.js +0 -5
  41. package/esm2022/foliokit-cms-core.js.map +0 -1
  42. package/esm2022/index.js.map +0 -1
  43. package/esm2022/lib/firebase/firebase.config.js +0 -8
  44. package/esm2022/lib/firebase/firebase.config.js.map +0 -1
  45. package/esm2022/lib/firebase/firebase.providers.js +0 -54
  46. package/esm2022/lib/firebase/firebase.providers.js.map +0 -1
  47. package/esm2022/lib/models/author.model.js +0 -1
  48. package/esm2022/lib/models/author.model.js.map +0 -1
  49. package/esm2022/lib/models/page.model.js +0 -1
  50. package/esm2022/lib/models/page.model.js.map +0 -1
  51. package/esm2022/lib/models/post.model.js +0 -1
  52. package/esm2022/lib/models/post.model.js.map +0 -1
  53. package/esm2022/lib/models/site-config.model.js +0 -1
  54. package/esm2022/lib/models/site-config.model.js.map +0 -1
  55. package/esm2022/lib/models/tag.model.js +0 -1
  56. package/esm2022/lib/models/tag.model.js.map +0 -1
  57. package/esm2022/lib/services/auth.service.js +0 -42
  58. package/esm2022/lib/services/auth.service.js.map +0 -1
  59. package/esm2022/lib/services/page.service.js +0 -73
  60. package/esm2022/lib/services/page.service.js.map +0 -1
  61. package/esm2022/lib/services/post.service.js +0 -83
  62. package/esm2022/lib/services/post.service.js.map +0 -1
  63. package/esm2022/lib/services/site-config.service.js +0 -31
  64. package/esm2022/lib/services/site-config.service.js.map +0 -1
  65. package/esm2022/lib/services/tag.service.js +0 -22
  66. package/esm2022/lib/services/tag.service.js.map +0 -1
  67. package/esm2022/lib/tokens/page-service.token.js +0 -4
  68. package/esm2022/lib/tokens/page-service.token.js.map +0 -1
  69. package/esm2022/lib/tokens/post-service.token.js +0 -5
  70. package/esm2022/lib/tokens/post-service.token.js.map +0 -1
  71. package/esm2022/lib/utils/normalize-page.js +0 -74
  72. package/esm2022/lib/utils/normalize-page.js.map +0 -1
  73. package/esm2022/lib/utils/normalize-post.js +0 -66
  74. package/esm2022/lib/utils/normalize-post.js.map +0 -1
  75. package/esm2022/lib/utils/normalize-site-config.js +0 -62
  76. package/esm2022/lib/utils/normalize-site-config.js.map +0 -1
  77. package/foliokit-cms-core.d.ts +0 -5
  78. package/index.d.ts +0 -14
  79. package/lib/firebase/firebase.config.d.ts +0 -11
  80. package/lib/firebase/firebase.providers.d.ts +0 -3
  81. package/lib/models/author.model.d.ts +0 -14
  82. package/lib/models/page.model.d.ts +0 -40
  83. package/lib/models/post.model.d.ts +0 -39
  84. package/lib/models/site-config.model.d.ts +0 -27
  85. package/lib/models/tag.model.d.ts +0 -5
  86. package/lib/services/auth.service.d.ts +0 -13
  87. package/lib/services/page.service.d.ts +0 -15
  88. package/lib/services/post.service.d.ts +0 -17
  89. package/lib/services/site-config.service.d.ts +0 -10
  90. package/lib/services/tag.service.d.ts +0 -9
  91. package/lib/tokens/page-service.token.d.ts +0 -9
  92. package/lib/tokens/post-service.token.d.ts +0 -10
  93. package/lib/utils/normalize-page.d.ts +0 -2
  94. package/lib/utils/normalize-post.d.ts +0 -6
  95. package/lib/utils/normalize-site-config.d.ts +0 -2
@@ -1,15 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import type { CmsPageUnion } from '../models/page.model';
3
- import type { IPageService } from '../tokens/page-service.token';
4
- import * as i0 from "@angular/core";
5
- export declare class PageService implements IPageService {
6
- private readonly firestore;
7
- private readonly storage;
8
- getPageBySlug(slug: string): Observable<CmsPageUnion | null>;
9
- getAllPages(): Observable<CmsPageUnion[]>;
10
- getPageById(id: string): Observable<CmsPageUnion>;
11
- deleteStorageFile(storagePath: string): Observable<void>;
12
- savePage(page: CmsPageUnion): Observable<CmsPageUnion>;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<PageService, never>;
14
- static ɵprov: i0.ɵɵInjectableDeclaration<PageService>;
15
- }
@@ -1,17 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import type { BlogPost } from '../models/post.model';
3
- import type { IBlogPostService } from '../tokens/post-service.token';
4
- import * as i0 from "@angular/core";
5
- export declare class PostService implements IBlogPostService {
6
- private readonly firestore;
7
- private readonly storage;
8
- getPublishedPosts(): Observable<BlogPost[]>;
9
- getPostBySlug(slug: string): Observable<BlogPost | null>;
10
- getPostsByTag(tag: string): Observable<BlogPost[]>;
11
- getAllPosts(): Observable<BlogPost[]>;
12
- getPostById(id: string): Observable<BlogPost>;
13
- deleteStorageFile(storagePath: string): Observable<void>;
14
- savePost(post: BlogPost): Observable<BlogPost>;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<PostService, never>;
16
- static ɵprov: i0.ɵɵInjectableDeclaration<PostService>;
17
- }
@@ -1,10 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import type { SiteConfig } from '../models/site-config.model';
3
- import * as i0 from "@angular/core";
4
- export declare class SiteConfigService {
5
- private readonly firestore;
6
- getSiteConfig(siteId: string): Observable<SiteConfig | null>;
7
- getDefaultSiteConfig(): Observable<SiteConfig | null>;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<SiteConfigService, never>;
9
- static ɵprov: i0.ɵɵInjectableDeclaration<SiteConfigService>;
10
- }
@@ -1,9 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import type { Tag } from '../models/tag.model';
3
- import * as i0 from "@angular/core";
4
- export declare class TagService {
5
- private readonly firestore;
6
- getAllTags(): Observable<Tag[]>;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<TagService, never>;
8
- static ɵprov: i0.ɵɵInjectableDeclaration<TagService>;
9
- }
@@ -1,9 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import type { Observable } from 'rxjs';
3
- import type { CmsPageUnion } from '../models/page.model';
4
- export interface IPageService {
5
- getPageBySlug(slug: string): Observable<CmsPageUnion | null>;
6
- getPageById(id: string): Observable<CmsPageUnion | null>;
7
- }
8
- export declare const BLOG_PAGE_SERVICE: InjectionToken<IPageService>;
9
- export declare const PAGE_TRANSFER_KEY: import("@angular/core").StateKey<CmsPageUnion | null>;
@@ -1,10 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import type { Observable } from 'rxjs';
3
- import type { BlogPost } from '../models/post.model';
4
- export interface IBlogPostService {
5
- getPublishedPosts(): Observable<BlogPost[]>;
6
- getPostBySlug(slug: string): Observable<BlogPost | null>;
7
- }
8
- export declare const BLOG_POST_SERVICE: InjectionToken<IBlogPostService>;
9
- export declare const POST_TRANSFER_KEY: import("@angular/core").StateKey<BlogPost | null>;
10
- export declare const POSTS_TRANSFER_KEY: import("@angular/core").StateKey<BlogPost[]>;
@@ -1,2 +0,0 @@
1
- import type { CmsPageUnion } from '../models/page.model';
2
- export declare function normalizePage(raw: Record<string, unknown>): CmsPageUnion;
@@ -1,6 +0,0 @@
1
- import type { BlogPost } from '../models/post.model';
2
- /**
3
- * Maps raw Firestore DocumentData (merged with its doc id) into a fully typed,
4
- * TransferState-serializable BlogPost. Callers must pass { id: doc.id, ...doc.data() }.
5
- */
6
- export declare function normalizePost(raw: Record<string, unknown>): BlogPost;
@@ -1,2 +0,0 @@
1
- import type { SiteConfig } from '../models/site-config.model';
2
- export declare function normalizeSiteConfig(raw: Record<string, unknown>): SiteConfig;