@lenne.tech/ng-base 22.0.4 → 22.1.0
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/CLAUDE.md +5 -0
- package/README.md +34 -7
- package/fesm2022/lenne.tech-ng-base-ai.mjs +27 -27
- package/fesm2022/lenne.tech-ng-base-auth-provide.mjs +15 -14
- package/fesm2022/lenne.tech-ng-base-auth-provide.mjs.map +1 -1
- package/fesm2022/lenne.tech-ng-base-auth.mjs +17 -13
- package/fesm2022/lenne.tech-ng-base-auth.mjs.map +1 -1
- package/fesm2022/{lenne.tech-ng-base-bug-bug-report-dialog-BRzVmKJr.mjs → lenne.tech-ng-base-bug-bug-report-dialog-f6VNOWnW.mjs} +11 -11
- package/fesm2022/{lenne.tech-ng-base-bug-bug-report-dialog-BRzVmKJr.mjs.map → lenne.tech-ng-base-bug-bug-report-dialog-f6VNOWnW.mjs.map} +1 -1
- package/fesm2022/{lenne.tech-ng-base-bug-bug-report-service-DWoTb_iw.mjs → lenne.tech-ng-base-bug-bug-report-service-D6slR3GD.mjs} +4 -4
- package/fesm2022/{lenne.tech-ng-base-bug-bug-report-service-DWoTb_iw.mjs.map → lenne.tech-ng-base-bug-bug-report-service-D6slR3GD.mjs.map} +1 -1
- package/fesm2022/lenne.tech-ng-base-bug.mjs +5 -5
- package/fesm2022/lenne.tech-ng-base-files-ui.mjs +3 -3
- package/fesm2022/lenne.tech-ng-base-files.mjs +8 -4
- package/fesm2022/lenne.tech-ng-base-files.mjs.map +1 -1
- package/fesm2022/lenne.tech-ng-base-share.mjs +3 -3
- package/fesm2022/lenne.tech-ng-base-ui-provide.mjs +3 -3
- package/fesm2022/lenne.tech-ng-base-ui.mjs +1206 -1216
- package/fesm2022/lenne.tech-ng-base-ui.mjs.map +1 -1
- package/fesm2022/lenne.tech-ng-base-utils.mjs +9 -9
- package/fesm2022/lenne.tech-ng-base.mjs +27 -24
- package/fesm2022/lenne.tech-ng-base.mjs.map +1 -1
- package/i18n/auth/de.json +1 -3
- package/i18n/auth/en.json +1 -3
- package/i18n/de.json +1 -2
- package/i18n/en.json +1 -2
- package/i18n/ui/de.json +0 -5
- package/i18n/ui/en.json +0 -5
- package/package.json +5 -1
- package/types/lenne.tech-ng-base-auth-provide.d.ts +2 -3
- package/types/lenne.tech-ng-base-auth.d.ts +4 -1
- package/types/lenne.tech-ng-base-files.d.ts +5 -1
- package/types/lenne.tech-ng-base.d.ts +8 -1
package/i18n/ui/de.json
CHANGED
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
"lt": {
|
|
3
3
|
"ui": {
|
|
4
4
|
"close": "Schließen",
|
|
5
|
-
"colorMode": "Farbschema",
|
|
6
|
-
"colorModeDark": "Dunkel",
|
|
7
|
-
"colorModeLight": "Hell",
|
|
8
|
-
"colorModeSystem": "System",
|
|
9
5
|
"hidePassword": "Passwort verbergen",
|
|
10
6
|
"showPassword": "Passwort anzeigen",
|
|
11
7
|
"breadcrumb": "Brotkrumennavigation",
|
|
@@ -15,7 +11,6 @@
|
|
|
15
11
|
"noData": "Keine Einträge",
|
|
16
12
|
"selectPlaceholder": "Bitte auswählen",
|
|
17
13
|
"searchPlaceholder": "Suchen...",
|
|
18
|
-
"datePlaceholder": "Datum wählen",
|
|
19
14
|
"time": "Uhrzeit",
|
|
20
15
|
"confirm": "Bestätigen",
|
|
21
16
|
"cancel": "Abbrechen",
|
package/i18n/ui/en.json
CHANGED
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
"lt": {
|
|
3
3
|
"ui": {
|
|
4
4
|
"close": "Close",
|
|
5
|
-
"colorMode": "Color mode",
|
|
6
|
-
"colorModeDark": "Dark",
|
|
7
|
-
"colorModeLight": "Light",
|
|
8
|
-
"colorModeSystem": "System",
|
|
9
5
|
"hidePassword": "Hide password",
|
|
10
6
|
"showPassword": "Show password",
|
|
11
7
|
"breadcrumb": "Breadcrumb",
|
|
@@ -15,7 +11,6 @@
|
|
|
15
11
|
"noData": "No entries",
|
|
16
12
|
"selectPlaceholder": "Please select",
|
|
17
13
|
"searchPlaceholder": "Search...",
|
|
18
|
-
"datePlaceholder": "Pick a date",
|
|
19
14
|
"time": "Time",
|
|
20
15
|
"confirm": "Confirm",
|
|
21
16
|
"cancel": "Cancel",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lenne.tech/ng-base",
|
|
3
|
-
"version": "22.0
|
|
3
|
+
"version": "22.1.0",
|
|
4
4
|
"description": "Angular library for lenne.Tech projects: nest-server integration (Better Auth, TUS upload, AI, offline sync), Spartan-based UI, SSR server helpers and Playwright helpers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -122,6 +122,7 @@
|
|
|
122
122
|
"better-auth": ">=1.7.16 <1.8.0",
|
|
123
123
|
"modern-screenshot": ">=4.6.0",
|
|
124
124
|
"rxjs": "^7.8.0",
|
|
125
|
+
"tailwindcss": ">=4.0.0",
|
|
125
126
|
"tus-js-client": ">=4.0.0"
|
|
126
127
|
},
|
|
127
128
|
"peerDependenciesMeta": {
|
|
@@ -137,6 +138,9 @@
|
|
|
137
138
|
"modern-screenshot": {
|
|
138
139
|
"optional": true
|
|
139
140
|
},
|
|
141
|
+
"tailwindcss": {
|
|
142
|
+
"optional": true
|
|
143
|
+
},
|
|
140
144
|
"tus-js-client": {
|
|
141
145
|
"optional": true
|
|
142
146
|
}
|
|
@@ -189,9 +189,6 @@ interface LtAuthError {
|
|
|
189
189
|
/** Result of `LtAuthService.authenticateWithPasskey()`. */
|
|
190
190
|
interface LtPasskeyAuthResult {
|
|
191
191
|
error?: string;
|
|
192
|
-
session?: {
|
|
193
|
-
token: string;
|
|
194
|
-
};
|
|
195
192
|
success: boolean;
|
|
196
193
|
user?: LtUser;
|
|
197
194
|
}
|
|
@@ -307,6 +304,8 @@ export declare class LtAuthStateService {
|
|
|
307
304
|
static ɵfac: i0.ɵɵFactoryDeclaration<LtAuthStateService, never>;
|
|
308
305
|
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
309
306
|
}
|
|
307
|
+
/** Whether `value` looks like a JWT (`eyJ…`, three segments), the same test nest-server applies (`isJwtShaped`). */
|
|
308
|
+
export declare function isLtJwtShaped(value: unknown): value is string;
|
|
310
309
|
/**
|
|
311
310
|
* Hooks around `signOut()`. `provideLtSync()` registers one that flushes the offline outbox before the session ends and
|
|
312
311
|
* deletes the IndexedDB afterwards; projects can add their own (multi provider).
|
|
@@ -254,7 +254,10 @@ export declare class LtAuthService {
|
|
|
254
254
|
list: () => Promise<LtAuthResponse<LtPasskey[]>>;
|
|
255
255
|
update: (id: string, name: string) => Promise<LtAuthResponse>;
|
|
256
256
|
};
|
|
257
|
-
/**
|
|
257
|
+
/**
|
|
258
|
+
* Two-factor methods (passwords hashed). `verifyTotp` / `verifyBackupCode` set the user on success and return the answer
|
|
259
|
+
* without Better Auth's opaque session token (a JWT of `cookies: false` stays).
|
|
260
|
+
*/
|
|
258
261
|
readonly twoFactor: {
|
|
259
262
|
disable: <T extends {
|
|
260
263
|
password: string;
|
|
@@ -151,7 +151,8 @@ export declare class LtFileService implements LtFileState {
|
|
|
151
151
|
getFileInfo(id: string | undefined): Promise<LtFileInfo | null | string>;
|
|
152
152
|
/**
|
|
153
153
|
* `<api>/files/id/:id` — nest-server's `GET files/id/:id` (CoreFileController), which streams the file (or redirects
|
|
154
|
-
* to a presigned S3 URL) after the rights check (`file.downloadRoles`, default admin).
|
|
154
|
+
* to a presigned S3 URL) after the rights check (`file.downloadRoles`, default admin). The URL the browser uses, also
|
|
155
|
+
* during SSR (`NG_PUBLIC_API_URL` or `/api`): it ends up in `href`/`src`, so the server-only `NG_API_URL` never does.
|
|
155
156
|
*/
|
|
156
157
|
getFileUrl(id: string): string;
|
|
157
158
|
/**
|
|
@@ -167,7 +168,10 @@ export declare class LtFileService implements LtFileState {
|
|
|
167
168
|
/** `/^[a-f\d]{24}$/i`. */
|
|
168
169
|
isValidMongoID(id: string): boolean;
|
|
169
170
|
/** `<api><filesBasePath>` without a trailing slash; an absolute `filesBasePath` is used as is. */
|
|
171
|
+
/** Base for requests this service sends itself (`NG_API_URL` during SSR). */
|
|
170
172
|
private baseUrl;
|
|
173
|
+
/** Base for links the browser follows (see {@link getFileUrl}). */
|
|
174
|
+
private linkBaseUrl;
|
|
171
175
|
static ɵfac: i0.ɵɵFactoryDeclaration<LtFileService, never>;
|
|
172
176
|
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
173
177
|
}
|
|
@@ -53,6 +53,13 @@ export declare class LtApiUrlService {
|
|
|
53
53
|
baseUrl(): string;
|
|
54
54
|
/** Build a full API URL for a path such as `/iam/sign-in/email`. Absolute URLs are returned unchanged. */
|
|
55
55
|
buildUrl(path: string): string;
|
|
56
|
+
/**
|
|
57
|
+
* Build the URL the browser uses for `path`, also during SSR: `NG_PUBLIC_API_URL` (or `/api` behind the dev proxy),
|
|
58
|
+
* never the server-only `NG_API_URL`. For links that end up in the HTML (`href`, `src`), which the browser follows
|
|
59
|
+
* itself: an internal API host would be unreachable there and must not leak into the page. Absolute URLs are returned
|
|
60
|
+
* unchanged.
|
|
61
|
+
*/
|
|
62
|
+
buildBrowserUrl(path: string): string;
|
|
56
63
|
/** Whether browser requests go through the dev-server proxy under `/api`. Always `false` on the server. */
|
|
57
64
|
isProxy(): boolean;
|
|
58
65
|
/** Report a missing API URL (`dev`: warning, production: error), at most once per scope. Used by the config check. */
|
|
@@ -492,7 +499,7 @@ export declare class LtToastService {
|
|
|
492
499
|
*/
|
|
493
500
|
export declare function tw(strings: TemplateStringsArray | string, ...values: unknown[]): string;
|
|
494
501
|
/** Version of `@lenne.tech/ng-base`; kept in sync with `package.json` by `scripts/sync-version.mjs`. */
|
|
495
|
-
export declare const LT_NG_BASE_VERSION = "22.0
|
|
502
|
+
export declare const LT_NG_BASE_VERSION = "22.1.0";
|
|
496
503
|
/**
|
|
497
504
|
* Log `message` the first time `key` is seen; ignore later calls. The conditions behind these messages (missing API
|
|
498
505
|
* URL, implicit dev proxy) are constant for the process, so repeating them only drowns other output.
|