@lokalise/harmony 1.17.0-exp-jwtheaderfactorysharedauth.1 → 1.17.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.
@@ -0,0 +1,32 @@
1
+ import { HeaderBuilder, Headers } from './headerBuilder';
2
+ /**
3
+ * A helper function that creates a HeaderBuilderMiddleware, it removed the
4
+ * complexity of creating a new instance of the middleware class and tracking the input types.
5
+ *
6
+ * @param middleware - A function that modifies a HeaderBuilder
7
+ * @returns - A new instance of HeaderBuilderMiddleware to be used with a HeaderBuilder
8
+ */
9
+ export declare function createHeaderBuilderMiddleware<const H extends Headers>(middleware: (builder: HeaderBuilder) => HeaderBuilder<H> | Promise<HeaderBuilder<H>>): HeaderBuilderMiddleware<H>;
10
+ export type { HeaderBuilderMiddleware };
11
+ /**
12
+ * A middleware class that allows you to modify a HeaderBuilder in a type-safe way.
13
+ * It receives a builder and returns a new builder with the modifications applied.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const authMiddleware = createHeaderBuilderMiddleware(async (builder) => {
18
+ * const token = await fetchToken()
19
+ * return builder.add('Authorization', `Bearer ${token}`)
20
+ * })
21
+ *
22
+ * const builder = HeaderBuilder.create()
23
+ * .with(authMiddleware)
24
+ *
25
+ * const headers = await builder.resolve() // Type of headers is { 'Authorization': string }
26
+ * console.log(headers) // { 'Authorization': 'Bearer <token>' }
27
+ */
28
+ declare class HeaderBuilderMiddleware<const H extends Headers> {
29
+ private readonly middleware;
30
+ constructor(middleware: (builder: HeaderBuilder<Headers>) => HeaderBuilder<H> | Promise<HeaderBuilder<H>>);
31
+ apply<const BH extends Headers>(base: HeaderBuilder<BH>): HeaderBuilder<BH & H>;
32
+ }
@@ -1,4 +1,6 @@
1
- export type Headers<K extends string = string, V = any> = Record<K, V>;
1
+ import { HeaderBuilderMiddleware } from './createHeaderBuilderMiddleware';
2
+ export type Headers<K extends string = string, V extends string = string> = Record<K, V>;
3
+ type NoHeaders = {};
2
4
  /**
3
5
  * A builder class that helps to build up a set of headers in a type-safe way.
4
6
  * It allows you to add headers, merge them together, and resolve them into a single object.
@@ -26,7 +28,7 @@ export type Headers<K extends string = string, V = any> = Record<K, V>;
26
28
  * // 'Authorization': 'Bearer <token>'
27
29
  * // }
28
30
  */
29
- export declare class HeaderBuilder<H extends Headers = {}> {
31
+ export declare class HeaderBuilder<H extends Headers = NoHeaders> {
30
32
  private readonly factories;
31
33
  /**
32
34
  * Creates a new HeaderBuilder, optionally with an initial set of headers.
@@ -92,7 +94,7 @@ export declare class HeaderBuilder<H extends Headers = {}> {
92
94
  *
93
95
  * @param extension - An object with the headers to add
94
96
  */
95
- and<const K extends string, const V, E extends Headers<K, V>>(extension: E | Promise<E>): HeaderBuilder<H & E>;
97
+ and<const K extends string, const V extends string, E extends Headers<K, V>>(extension: E | Promise<E>): HeaderBuilder<H & E>;
96
98
  /**
97
99
  * Adds a factory function that returns a promise of headers to the builder.
98
100
  * This is useful when you need to fetch some data asynchronously to build the headers.
@@ -166,34 +168,4 @@ export declare class HeaderBuilder<H extends Headers = {}> {
166
168
  */
167
169
  resolve(): Promise<H>;
168
170
  }
169
- /**
170
- * A middleware class that allows you to modify a HeaderBuilder in a type-safe way.
171
- * It receives a builder and returns a new builder with the modifications applied.
172
- *
173
- * @example
174
- * ```typescript
175
- * const authMiddleware = createHeaderBuilderMiddleware(async (builder) => {
176
- * const token = await fetchToken()
177
- * return builder.add('Authorization', `Bearer ${token}`)
178
- * })
179
- *
180
- * const builder = HeaderBuilder.create()
181
- * .with(authMiddleware)
182
- *
183
- * const headers = await builder.resolve() // Type of headers is { 'Authorization': string }
184
- * console.log(headers) // { 'Authorization': 'Bearer <token>' }
185
- */
186
- declare class HeaderBuilderMiddleware<const H extends Headers> {
187
- private readonly middleware;
188
- constructor(middleware: (builder: HeaderBuilder<Headers>) => HeaderBuilder<H> | Promise<HeaderBuilder<H>>);
189
- apply<const BH extends Headers>(base: HeaderBuilder<BH>): HeaderBuilder<BH & H>;
190
- }
191
- /**
192
- * A helper function that creates a HeaderBuilderMiddleware, it removed the
193
- * complexity of creating a new instance of the middleware class and tracking the input types.
194
- *
195
- * @param middleware - A function that modifies a HeaderBuilder
196
- * @returns - A new instance of HeaderBuilderMiddleware to be used with a HeaderBuilder
197
- */
198
- export declare function createHeaderBuilderMiddleware<const H extends Headers>(middleware: (builder: HeaderBuilder) => HeaderBuilder<H> | Promise<HeaderBuilder<H>>): HeaderBuilderMiddleware<H>;
199
- export type { HeaderBuilderMiddleware };
171
+ export {};
@@ -5,6 +5,6 @@ export type JwtAuthHeaderBuilderMiddlewareProps = {
5
5
  generateNewToken?: () => Promise<JwtToken | null>;
6
6
  onNewTokenIssued?: (token: JwtToken) => void;
7
7
  };
8
- export declare function JwtAuthHeaderBuilderMiddleware(props: JwtAuthHeaderBuilderMiddlewareProps): import('../headers/headerBuilder').HeaderBuilderMiddleware<{
8
+ export declare function JwtAuthHeaderBuilderMiddleware(props: JwtAuthHeaderBuilderMiddlewareProps): import('../headers/createHeaderBuilderMiddleware').HeaderBuilderMiddleware<{
9
9
  Authorization: `Bearer ${string}`;
10
10
  }>;
@@ -1,3 +1,3 @@
1
- export declare const PublicApiHeaderBuilderMiddleware: import('../headers/headerBuilder').HeaderBuilderMiddleware<{
2
- 'x-lokalise-plugin': string;
1
+ export declare const PublicApiHeaderBuilderMiddleware: import('../headers/createHeaderBuilderMiddleware').HeaderBuilderMiddleware<{
2
+ 'x-lokalise-plugin': "true";
3
3
  }>;
@@ -3,7 +3,7 @@ export { PublicApiHeaderBuilderMiddleware } from './core/middleware/publicApiHea
3
3
  export type { JwtTokenPayload } from './core/types/jwtTokenPayload';
4
4
  export { parseJwtTokenPayload } from './core/utils/jwtTokenPayload';
5
5
  export { getJwtTokenFromCookie, getCsrfTokenFromCookie } from './frontend/utils/cookieTokenUtils';
6
- export { HeaderBuilder, createHeaderBuilderMiddleware, type HeaderBuilderMiddleware, type Headers, } from './core/headers/headerBuilder';
6
+ export { HeaderBuilder, type Headers, } from './core/headers/headerBuilder';
7
7
  export * from './backend/services/getAuthenticatedSessionDetailFromRequest';
8
8
  export * from './frontend/services/generateTokenFromClassicSession';
9
9
  export * from './frontend/services/refreshExpiredToken';
@@ -11,3 +11,4 @@ export * from './frontend/hooks/useGetPromotedClassicSessionJwtQuery';
11
11
  export * from './frontend/hooks/useAuthenticatedSessionPayload';
12
12
  export * from './frontend/hooks/useAuthenticatedUser';
13
13
  export * from './frontend/hooks/useAuthenticatedProjectContributor';
14
+ export { createHeaderBuilderMiddleware, type HeaderBuilderMiddleware, } from './core/headers/createHeaderBuilderMiddleware';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokalise/harmony",
3
- "version": "1.17.0-exp-jwtheaderfactorysharedauth.1",
3
+ "version": "1.17.0",
4
4
  "author": {
5
5
  "name": "Lokalise",
6
6
  "url": "https://lokalise.com/"