@reforgium/presentia 2.0.0 → 2.1.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.
package/CHANGELOG.md CHANGED
@@ -1,144 +1,169 @@
1
- ## [2.0.0]: 04.04.2026
2
- ### Feat:
3
- - added grouped `providePresentia(...)` v2 entry point and marked `provideReInit(...)` as legacy in dev mode
4
- - extended `ThemeService` with DOM strategies, theme registry validation, and configurable persistence adapter support
5
- - extended `AdaptiveService` with named breakpoint helpers (`breakpoint`, `is`, `isAtLeast`, `isBetween`, `isMobile`, `isTablet`, `isDesktopSmall`)
6
- - extended `IfDeviceDirective` with `reIfDeviceAtLeast` and `reIfDeviceBetween`
7
- - extended `RouteWatcher` with `deepestParams`, `mergedData`, `routePattern`, `selectParam`, and path matching helpers
8
- - aligned `SeoRouteListener` with merged route data and normalized route-tree path resolution
9
-
10
- ### Docs:
11
- - documented grouped v2 config, theme DOM/persistence options, and adaptive breakpoint helpers
12
- - documented recommended v2 setup, extended route watcher state, and adaptive range directives
13
- - promoted `V2-MIGRATION.md` from draft to working migration guide and refreshed `V2-CONFIG.md` / `ROADMAP-2.0.0.md`
14
- - moved compatibility-only surface out of primary README export lists and into explicit legacy notes
15
-
16
- ### Test:
17
- - added provider and runtime coverage for grouped theme config, persistence adapters, theme registry constraints, and adaptive helper methods
18
- - added route watcher coverage for merged/deepest selectors and adaptive directive coverage for range-based rendering
19
- - added SEO listener regression coverage for merged route-data application and canonical path normalization
20
-
21
- ---
22
-
23
- ## [1.6.0]: 03.04.2026
24
- ### Feat:
25
- - added route-aware namespace preload via `LocaleConfig.routeNamespacePreload` with `blocking` / `lazy` modes
26
- - added strict preload failure handling via `routeNamespacePreload.onError = 'throw'`
27
- - added route namespace generator CLI `presentia-gen-namespaces`
28
- - added generator report mode (`--report`, `--print-report`) for unresolved lazy imports and unsupported static-analysis cases
29
- - extended generator extraction for route data namespaces, `reLangAttrs`, object-style `reLang`, standalone imports, `loadComponent`, and `loadChildren`
30
- - added route preload diagnostics for late namespace loads after navigation
31
- - added batch namespace diagnostics and `maxBatchSize` chunking in `LangService.loadNamespaces(...)`
32
-
33
- ### Docs:
34
- - documented route preload modes, manifest generation, report mode, and consumer CLI defaults in `README`
35
- - clarified `LangPipe.placeholder` as the loading-time value while `LocaleConfig.defaultValue` remains a missing-key fallback
36
-
37
- ### Test:
38
- - added integration coverage for real router navigation with route preload
39
- - added regression coverage for custom `dataKey`, `mergeStrategy: 'replace'`, manifest parent/child merge, strict preload failures, batch diagnostics, and `maxBatchSize`
40
- - extended generator smoke coverage for report output, `reLangAttrs`, and const-based `presentiaNamespaces`
41
-
42
- ---
43
-
44
- ## [1.5.0]: 16.03.2026
45
- ### Fix:
46
- - `SeoRouteListener.init(...)` no longer duplicates router subscriptions on repeated calls and now reuses normalized `baseUrl`
47
- - `ThemeService` now normalizes persisted/requested theme values before switching
48
- - `LangPipe` now warns once in dev mode when a namespace is loaded but the requested key is unresolved
49
-
50
- ### Feat:
51
- - added `LangService.has(...)` for explicit translation key existence checks
52
- - `SeoService` is now provided in root
53
-
54
- ### Refactor:
55
- - removed lightweight `rxjs` usage from `AdaptiveService` resize listener and route event listeners (`RouteWatcher`, `SeoRouteListener`) in favor of native subscriptions/cleanup
56
- - tightened `provideReInit(...)` factories for `CHANGE_LANG` / `CHANGE_THEME`
57
- - improved presentia package metadata and test setup for storage-backed specs
58
-
59
- ### Test:
60
- - added regression coverage for repeated `SeoRouteListener.init(...)`, `ThemeService` contract behavior, init provider wiring, and unresolved lang key warnings
61
- - kept adaptive/seo regression coverage green after the refactor
62
-
63
- ---
64
-
65
- ## [1.4.4]: 05.03.2026
66
- ### Fix:
67
- - improved `RouteWatcher.params` to merge params from `pathFromRoot` (parent to deepest child), not only from deepest snapshot
68
-
69
- ### Test:
70
- - added a regression test for parent-child params inheritance in nested routes with parent component
71
-
72
- ---
73
-
74
- ## [1.4.3]: 27.02.2026
75
- ### Fix:
76
- - fixed `RouteWatcher.url` to build a full path from `pathFromRoot` instead of only deepest snapshot segments
77
-
78
- ### Test:
79
- - added a regression test for nested route URL composition (`/orgs/:orgId/users/:id`)
80
-
81
- ---
82
-
83
- ## [1.4.2]: 16.02.2026
84
- ### Fix:
85
- - fixed `LangService.getChainedValue` deep lookup for keys with flat namespace prefix (e.g. `common.some-key.sub-key.target`)
86
-
87
- ### Test:
88
- - added a regression test for nested translation resolution via flat namespace prefix key
89
-
90
- ---
91
-
92
- ## [1.4.0]: 15.02.2026
93
- ### Feat:
94
- - added `LocaleConfig.requestBuilder` and `LocaleConfig.responseAdapter` for custom API url/payload mapping
95
- - added `LocaleConfig.requestOptionsFactory` to pass `HttpClient` options (`headers`, `params`, `withCredentials`, `responseType`, `context`, `transferCache`)
96
- - added batch namespace loading support: `loadNamespaces`, `batchRequestBuilder`, `batchResponseAdapter`
97
- - added namespace cache controls: `namespaceCache.maxNamespaces`, `namespaceCache.ttlMs`
98
- - added `LangService.evictNamespace` and `LangService.clearNamespaceCache`
99
- - added typed lang key extension point (`LangKeyRegistry`, `LangKey`) for `LangService.get/observe`
100
- - added package CLI `presentia-gen-lang-keys` for generating key unions from locale json
101
-
102
- ### Test:
103
- - added integration test for language switch across multiple namespaces without page reload
104
- - added smoke test for CLI generator output
105
- - extended `LangService` tests for request options, batch mode, stale response protection, and namespace cache policies
106
-
107
- ### Docs:
108
- - updated README for new `LocaleConfig` options, service methods, typed keys, and CLI usage
109
-
110
- ---
111
-
112
- ## [1.2.0]: 16.01.2026
113
- ### Feat:
114
- - added implementation providers: `CHANGE_LANG` and `CHANGE_THEME`
115
-
116
- ---
117
-
118
- ## [1.1.1]: 14.01.2026
119
-
120
- ### Feat:
121
- - added `translate` method to `LangDirective`
122
-
123
- ### Fix:
124
- - fixed `reIfDevice` directive name
125
-
126
- ---
127
-
128
- ## [1.1.0]: 14.01.2026
129
-
130
- ### Feat:
131
- - added `LangDirective`, auto translate
132
-
133
- ---
134
-
135
- ## [1.0.1]: 11.01.2026
136
-
137
- ### Chore:
138
- - updated docs
139
-
140
- ---
141
-
142
- ## [1.0.0]: 26.12.2025
143
-
144
- - Init
1
+ ## [2.1.1]: 07.04.2026
2
+ ### Fix:
3
+ - fixed `presentia-gen-namespaces` tsconfig loading to parse commented `tsconfig` files instead of failing on raw `JSON.parse(...)`
4
+
5
+ ---
6
+
7
+ ## [2.1.0]: 05.04.2026
8
+ ### Refactor:
9
+ - replaced presentia-specific persistence adapter behavior with storage contracts and strategies backed by `@reforgium/internal`
10
+ - `LangService` and `ThemeService` now persist through storage interface bindings instead of direct localStorage-specific adapter semantics
11
+
12
+ ### Feat:
13
+ - added grouped `storage` / `persistence` options for `providePresentia(...)` theme and lang config
14
+ - kept `persistenceAdapter` as a compatibility alias during the transition to storage-based persistence
15
+
16
+ ### Fix:
17
+ - aligned `persistence: 'none'` with a real no-op storage instead of pseudo-persistent in-memory behavior
18
+ - preserved raw `lang` / `theme` browser storage keys while moving persistence onto shared storage contracts
19
+
20
+ ### Test:
21
+ - updated provider and theme tests for the storage-based persistence contract
22
+ - verified `presentia` typecheck, Vitest suite, and Angular package build after the persistence migration
23
+
24
+ ---
25
+
26
+ ## [2.0.0]: 04.04.2026
27
+ ### Feat:
28
+ - added grouped `providePresentia(...)` v2 entry point and marked `provideReInit(...)` as legacy in dev mode
29
+ - extended `ThemeService` with DOM strategies, theme registry validation, and configurable persistence adapter support
30
+ - extended `AdaptiveService` with named breakpoint helpers (`breakpoint`, `is`, `isAtLeast`, `isBetween`, `isMobile`, `isTablet`, `isDesktopSmall`)
31
+ - extended `IfDeviceDirective` with `reIfDeviceAtLeast` and `reIfDeviceBetween`
32
+ - extended `RouteWatcher` with `deepestParams`, `mergedData`, `routePattern`, `selectParam`, and path matching helpers
33
+ - aligned `SeoRouteListener` with merged route data and normalized route-tree path resolution
34
+
35
+ ### Docs:
36
+ - documented grouped v2 config, theme DOM/persistence options, and adaptive breakpoint helpers
37
+ - documented recommended v2 setup, extended route watcher state, and adaptive range directives
38
+ - promoted `V2-MIGRATION.md` from draft to working migration guide and refreshed `V2-CONFIG.md` / `ROADMAP-2.0.0.md`
39
+ - moved compatibility-only surface out of primary README export lists and into explicit legacy notes
40
+
41
+ ### Test:
42
+ - added provider and runtime coverage for grouped theme config, persistence adapters, theme registry constraints, and adaptive helper methods
43
+ - added route watcher coverage for merged/deepest selectors and adaptive directive coverage for range-based rendering
44
+ - added SEO listener regression coverage for merged route-data application and canonical path normalization
45
+
46
+ ---
47
+
48
+ ## [1.6.0]: 03.04.2026
49
+ ### Feat:
50
+ - added route-aware namespace preload via `LocaleConfig.routeNamespacePreload` with `blocking` / `lazy` modes
51
+ - added strict preload failure handling via `routeNamespacePreload.onError = 'throw'`
52
+ - added route namespace generator CLI `presentia-gen-namespaces`
53
+ - added generator report mode (`--report`, `--print-report`) for unresolved lazy imports and unsupported static-analysis cases
54
+ - extended generator extraction for route data namespaces, `reLangAttrs`, object-style `reLang`, standalone imports, `loadComponent`, and `loadChildren`
55
+ - added route preload diagnostics for late namespace loads after navigation
56
+ - added batch namespace diagnostics and `maxBatchSize` chunking in `LangService.loadNamespaces(...)`
57
+
58
+ ### Docs:
59
+ - documented route preload modes, manifest generation, report mode, and consumer CLI defaults in `README`
60
+ - clarified `LangPipe.placeholder` as the loading-time value while `LocaleConfig.defaultValue` remains a missing-key fallback
61
+
62
+ ### Test:
63
+ - added integration coverage for real router navigation with route preload
64
+ - added regression coverage for custom `dataKey`, `mergeStrategy: 'replace'`, manifest parent/child merge, strict preload failures, batch diagnostics, and `maxBatchSize`
65
+ - extended generator smoke coverage for report output, `reLangAttrs`, and const-based `presentiaNamespaces`
66
+
67
+ ---
68
+
69
+ ## [1.5.0]: 16.03.2026
70
+ ### Fix:
71
+ - `SeoRouteListener.init(...)` no longer duplicates router subscriptions on repeated calls and now reuses normalized `baseUrl`
72
+ - `ThemeService` now normalizes persisted/requested theme values before switching
73
+ - `LangPipe` now warns once in dev mode when a namespace is loaded but the requested key is unresolved
74
+
75
+ ### Feat:
76
+ - added `LangService.has(...)` for explicit translation key existence checks
77
+ - `SeoService` is now provided in root
78
+
79
+ ### Refactor:
80
+ - removed lightweight `rxjs` usage from `AdaptiveService` resize listener and route event listeners (`RouteWatcher`, `SeoRouteListener`) in favor of native subscriptions/cleanup
81
+ - tightened `provideReInit(...)` factories for `CHANGE_LANG` / `CHANGE_THEME`
82
+ - improved presentia package metadata and test setup for storage-backed specs
83
+
84
+ ### Test:
85
+ - added regression coverage for repeated `SeoRouteListener.init(...)`, `ThemeService` contract behavior, init provider wiring, and unresolved lang key warnings
86
+ - kept adaptive/seo regression coverage green after the refactor
87
+
88
+ ---
89
+
90
+ ## [1.4.4]: 05.03.2026
91
+ ### Fix:
92
+ - improved `RouteWatcher.params` to merge params from `pathFromRoot` (parent to deepest child), not only from deepest snapshot
93
+
94
+ ### Test:
95
+ - added a regression test for parent-child params inheritance in nested routes with parent component
96
+
97
+ ---
98
+
99
+ ## [1.4.3]: 27.02.2026
100
+ ### Fix:
101
+ - fixed `RouteWatcher.url` to build a full path from `pathFromRoot` instead of only deepest snapshot segments
102
+
103
+ ### Test:
104
+ - added a regression test for nested route URL composition (`/orgs/:orgId/users/:id`)
105
+
106
+ ---
107
+
108
+ ## [1.4.2]: 16.02.2026
109
+ ### Fix:
110
+ - fixed `LangService.getChainedValue` deep lookup for keys with flat namespace prefix (e.g. `common.some-key.sub-key.target`)
111
+
112
+ ### Test:
113
+ - added a regression test for nested translation resolution via flat namespace prefix key
114
+
115
+ ---
116
+
117
+ ## [1.4.0]: 15.02.2026
118
+ ### Feat:
119
+ - added `LocaleConfig.requestBuilder` and `LocaleConfig.responseAdapter` for custom API url/payload mapping
120
+ - added `LocaleConfig.requestOptionsFactory` to pass `HttpClient` options (`headers`, `params`, `withCredentials`, `responseType`, `context`, `transferCache`)
121
+ - added batch namespace loading support: `loadNamespaces`, `batchRequestBuilder`, `batchResponseAdapter`
122
+ - added namespace cache controls: `namespaceCache.maxNamespaces`, `namespaceCache.ttlMs`
123
+ - added `LangService.evictNamespace` and `LangService.clearNamespaceCache`
124
+ - added typed lang key extension point (`LangKeyRegistry`, `LangKey`) for `LangService.get/observe`
125
+ - added package CLI `presentia-gen-lang-keys` for generating key unions from locale json
126
+
127
+ ### Test:
128
+ - added integration test for language switch across multiple namespaces without page reload
129
+ - added smoke test for CLI generator output
130
+ - extended `LangService` tests for request options, batch mode, stale response protection, and namespace cache policies
131
+
132
+ ### Docs:
133
+ - updated README for new `LocaleConfig` options, service methods, typed keys, and CLI usage
134
+
135
+ ---
136
+
137
+ ## [1.2.0]: 16.01.2026
138
+ ### Feat:
139
+ - added implementation providers: `CHANGE_LANG` and `CHANGE_THEME`
140
+
141
+ ---
142
+
143
+ ## [1.1.1]: 14.01.2026
144
+
145
+ ### Feat:
146
+ - added `translate` method to `LangDirective`
147
+
148
+ ### Fix:
149
+ - fixed `reIfDevice` directive name
150
+
151
+ ---
152
+
153
+ ## [1.1.0]: 14.01.2026
154
+
155
+ ### Feat:
156
+ - added `LangDirective`, auto translate
157
+
158
+ ---
159
+
160
+ ## [1.0.1]: 11.01.2026
161
+
162
+ ### Chore:
163
+ - updated docs
164
+
165
+ ---
166
+
167
+ ## [1.0.0]: 26.12.2025
168
+
169
+ - Init
package/README.md CHANGED
@@ -122,7 +122,7 @@ providePresentia({
122
122
  });
123
123
  ```
124
124
 
125
- For a fuller mapping see [`V2-MIGRATION.md`](./V2-MIGRATION.md).
125
+ For a fuller mapping see [`V2-MIGRATION.md`](./V2-MIGRATION.md).
126
126
 
127
127
  Localization exports:
128
128
  - `LangService`