@glubean/auth 0.1.6 → 0.1.8

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/dist/api_key.d.ts CHANGED
@@ -1,11 +1,25 @@
1
1
  import type { ConfigureHttpOptions } from "@glubean/sdk";
2
+ export interface ApiKeyOptions {
3
+ /** Base URL — literal or `{{VAR}}` reference */
4
+ prefixUrl: string;
5
+ /** Header name or query param name */
6
+ param: string;
7
+ /** API key value — literal or `{{SECRET}}` reference */
8
+ value: string;
9
+ /** Where to send the key: "header" (default) or "query" */
10
+ location?: "header" | "query";
11
+ }
2
12
  /**
3
13
  * API Key authentication — header or query param.
4
14
  *
5
- * @param prefixUrlVar - Var key for the base URL
6
- * @param headerOrParam - Header name or query param name
7
- * @param secretKey - Secret key for the API key value
8
- * @param location - "header" (default) or "query"
15
+ * @example
16
+ * ```ts
17
+ * // Header mode (default)
18
+ * apiKey({ prefixUrl: "{{BASE_URL}}", param: "X-API-Key", value: "{{API_KEY}}" })
19
+ *
20
+ * // Query param mode
21
+ * apiKey({ prefixUrl: "{{BASE_URL}}", param: "apiKey", value: "{{API_KEY}}", location: "query" })
22
+ * ```
9
23
  */
10
- export declare function apiKey(prefixUrlVar: string, headerOrParam: string, secretKey: string, location?: "header" | "query"): ConfigureHttpOptions;
24
+ export declare function apiKey(opts: ApiKeyOptions): ConfigureHttpOptions;
11
25
  //# sourceMappingURL=api_key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api_key.d.ts","sourceRoot":"","sources":["../src/api_key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;GAOG;AACH,wBAAgB,MAAM,CACpB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,QAAQ,GAAG,OAAkB,GACtC,oBAAoB,CAiCtB"}
1
+ {"version":3,"file":"api_key.d.ts","sourceRoot":"","sources":["../src/api_key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,oBAAoB,CA6BhE"}
package/dist/api_key.js CHANGED
@@ -1,42 +1,42 @@
1
+ import { rebuildRequest } from "./request.js";
1
2
  /**
2
3
  * API Key authentication — header or query param.
3
4
  *
4
- * @param prefixUrlVar - Var key for the base URL
5
- * @param headerOrParam - Header name or query param name
6
- * @param secretKey - Secret key for the API key value
7
- * @param location - "header" (default) or "query"
5
+ * @example
6
+ * ```ts
7
+ * // Header mode (default)
8
+ * apiKey({ prefixUrl: "{{BASE_URL}}", param: "X-API-Key", value: "{{API_KEY}}" })
9
+ *
10
+ * // Query param mode
11
+ * apiKey({ prefixUrl: "{{BASE_URL}}", param: "apiKey", value: "{{API_KEY}}", location: "query" })
12
+ * ```
8
13
  */
9
- export function apiKey(prefixUrlVar, headerOrParam, secretKey, location = "header") {
14
+ export function apiKey(opts) {
15
+ const { prefixUrl, param, value, location = "header" } = opts;
10
16
  if (location === "query") {
11
17
  const MARKER = "X-Glubean-ApiKey-Query";
12
18
  return {
13
- prefixUrl: prefixUrlVar,
14
- headers: { [MARKER]: `{{${secretKey}}}` },
19
+ prefixUrl,
20
+ headers: { [MARKER]: value },
15
21
  hooks: {
16
22
  beforeRequest: [
17
- (request) => {
23
+ async (request) => {
18
24
  const keyValue = request.headers.get(MARKER);
19
25
  if (!keyValue)
20
26
  return request;
21
27
  const url = new URL(request.url);
22
- url.searchParams.set(headerOrParam, keyValue);
28
+ url.searchParams.set(param, keyValue);
23
29
  const headers = new Headers(request.headers);
24
30
  headers.delete(MARKER);
25
- return new Request(url.toString(), {
26
- method: request.method,
27
- headers,
28
- body: request.body,
29
- redirect: request.redirect,
30
- signal: request.signal,
31
- });
31
+ return rebuildRequest(request, headers, url);
32
32
  },
33
33
  ],
34
34
  },
35
35
  };
36
36
  }
37
37
  return {
38
- prefixUrl: prefixUrlVar,
39
- headers: { [headerOrParam]: `{{${secretKey}}}` },
38
+ prefixUrl,
39
+ headers: { [param]: value },
40
40
  };
41
41
  }
42
42
  //# sourceMappingURL=api_key.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api_key.js","sourceRoot":"","sources":["../src/api_key.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CACpB,YAAoB,EACpB,aAAqB,EACrB,SAAiB,EACjB,WAA+B,QAAQ;IAEvC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,wBAAwB,CAAC;QACxC,OAAO;YACL,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,SAAS,IAAI,EAAE;YACzC,KAAK,EAAE;gBACL,aAAa,EAAE;oBACb,CAAC,OAAgB,EAAW,EAAE;wBAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC7C,IAAI,CAAC,QAAQ;4BAAE,OAAO,OAAO,CAAC;wBAE9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACjC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;wBAC9C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBACvB,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;4BACjC,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,OAAO;4BACP,IAAI,EAAE,OAAO,CAAC,IAAI;4BAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;4BAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;yBACvB,CAAC,CAAC;oBACL,CAAC;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,SAAS,IAAI,EAAE;KACjD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"api_key.js","sourceRoot":"","sources":["../src/api_key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAa9C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,MAAM,CAAC,IAAmB;IACxC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;IAE9D,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,wBAAwB,CAAC;QACxC,OAAO;YACL,SAAS;YACT,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE;YAC5B,KAAK,EAAE;gBACL,aAAa,EAAE;oBACb,KAAK,EAAE,OAAgB,EAAoB,EAAE;wBAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC7C,IAAI,CAAC,QAAQ;4BAAE,OAAO,OAAO,CAAC;wBAE9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACjC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;wBACtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBACvB,OAAO,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;oBAC/C,CAAC;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS;QACT,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE;KAC5B,CAAC;AACJ,CAAC"}
package/dist/basic.d.ts CHANGED
@@ -1,13 +1,22 @@
1
1
  import type { ConfigureHttpOptions } from "@glubean/sdk";
2
+ export interface BasicAuthOptions {
3
+ /** Base URL — literal or `{{VAR}}` reference */
4
+ prefixUrl: string;
5
+ /** Username — literal or `{{SECRET}}` reference */
6
+ username: string;
7
+ /** Password — literal or `{{SECRET}}` reference */
8
+ password: string;
9
+ }
2
10
  /**
3
11
  * HTTP Basic authentication.
4
12
  *
5
13
  * Uses a beforeRequest hook to compute `Authorization: Basic base64(user:pass)`
6
- * from resolved secret values.
14
+ * from resolved values.
7
15
  *
8
- * @param prefixUrlVar - Var key for the base URL
9
- * @param usernameSecret - Secret key for the username
10
- * @param passwordSecret - Secret key for the password
16
+ * @example
17
+ * ```ts
18
+ * basicAuth({ prefixUrl: "{{BASE_URL}}", username: "{{USER}}", password: "{{PASS}}" })
19
+ * ```
11
20
  */
12
- export declare function basicAuth(prefixUrlVar: string, usernameSecret: string, passwordSecret: string): ConfigureHttpOptions;
21
+ export declare function basicAuth(opts: BasicAuthOptions): ConfigureHttpOptions;
13
22
  //# sourceMappingURL=basic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../src/basic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIzD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,GACrB,oBAAoB,CA2BtB"}
1
+ {"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../src/basic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,oBAAoB,CAqBtE"}
package/dist/basic.js CHANGED
@@ -1,23 +1,25 @@
1
+ import { rebuildRequest } from "./request.js";
1
2
  const MARKER = "X-Glubean-Basic-Auth";
2
3
  /**
3
4
  * HTTP Basic authentication.
4
5
  *
5
6
  * Uses a beforeRequest hook to compute `Authorization: Basic base64(user:pass)`
6
- * from resolved secret values.
7
+ * from resolved values.
7
8
  *
8
- * @param prefixUrlVar - Var key for the base URL
9
- * @param usernameSecret - Secret key for the username
10
- * @param passwordSecret - Secret key for the password
9
+ * @example
10
+ * ```ts
11
+ * basicAuth({ prefixUrl: "{{BASE_URL}}", username: "{{USER}}", password: "{{PASS}}" })
12
+ * ```
11
13
  */
12
- export function basicAuth(prefixUrlVar, usernameSecret, passwordSecret) {
14
+ export function basicAuth(opts) {
13
15
  return {
14
- prefixUrl: prefixUrlVar,
16
+ prefixUrl: opts.prefixUrl,
15
17
  headers: {
16
- [MARKER]: `{{${usernameSecret}}}:{{${passwordSecret}}}`,
18
+ [MARKER]: `${opts.username}:${opts.password}`,
17
19
  },
18
20
  hooks: {
19
21
  beforeRequest: [
20
- (request) => {
22
+ async (request) => {
21
23
  const credentials = request.headers.get(MARKER);
22
24
  if (!credentials)
23
25
  return request;
@@ -25,13 +27,7 @@ export function basicAuth(prefixUrlVar, usernameSecret, passwordSecret) {
25
27
  const headers = new Headers(request.headers);
26
28
  headers.delete(MARKER);
27
29
  headers.set("Authorization", `Basic ${encoded}`);
28
- return new Request(request.url, {
29
- method: request.method,
30
- headers,
31
- body: request.body,
32
- redirect: request.redirect,
33
- signal: request.signal,
34
- });
30
+ return rebuildRequest(request, headers);
35
31
  },
36
32
  ],
37
33
  },
package/dist/basic.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"basic.js","sourceRoot":"","sources":["../src/basic.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,sBAAsB,CAAC;AAEtC;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CACvB,YAAoB,EACpB,cAAsB,EACtB,cAAsB;IAEtB,OAAO;QACL,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE;YACP,CAAC,MAAM,CAAC,EAAE,KAAK,cAAc,QAAQ,cAAc,IAAI;SACxD;QACD,KAAK,EAAE;YACL,aAAa,EAAE;gBACb,CAAC,OAAgB,EAAW,EAAE;oBAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAChD,IAAI,CAAC,WAAW;wBAAE,OAAO,OAAO,CAAC;oBAEjC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC5D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC;oBACjD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;wBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,OAAO;wBACP,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;qBACvB,CAAC,CAAC;gBACL,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"basic.js","sourceRoot":"","sources":["../src/basic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAW9C,MAAM,MAAM,GAAG,sBAAsB,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,IAAsB;IAC9C,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE;YACP,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;SAC9C;QACD,KAAK,EAAE;YACL,aAAa,EAAE;gBACb,KAAK,EAAE,OAAgB,EAAoB,EAAE;oBAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAChD,IAAI,CAAC,WAAW;wBAAE,OAAO,OAAO,CAAC;oBAEjC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC5D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC;oBACjD,OAAO,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC1C,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
package/dist/bearer.d.ts CHANGED
@@ -1,9 +1,21 @@
1
1
  import type { ConfigureHttpOptions } from "@glubean/sdk";
2
+ export interface BearerOptions {
3
+ /** Base URL — literal or `{{VAR}}` reference */
4
+ prefixUrl: string;
5
+ /** Bearer token — literal or `{{SECRET}}` reference */
6
+ token: string;
7
+ }
2
8
  /**
3
9
  * Bearer token authentication.
4
10
  *
5
- * @param prefixUrlVar - Var key for the base URL
6
- * @param tokenSecret - Secret key for the bearer token
11
+ * @example
12
+ * ```ts
13
+ * // Reference from .env.secrets
14
+ * bearer({ prefixUrl: "{{BASE_URL}}", token: "{{API_TOKEN}}" })
15
+ *
16
+ * // Hardcoded (quick prototyping)
17
+ * bearer({ prefixUrl: "https://api.example.com", token: "sk-xxx" })
18
+ * ```
7
19
  */
8
- export declare function bearer(prefixUrlVar: string, tokenSecret: string): ConfigureHttpOptions;
20
+ export declare function bearer(opts: BearerOptions): ConfigureHttpOptions;
9
21
  //# sourceMappingURL=bearer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bearer.d.ts","sourceRoot":"","sources":["../src/bearer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,oBAAoB,CAOtB"}
1
+ {"version":3,"file":"bearer.d.ts","sourceRoot":"","sources":["../src/bearer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,oBAAoB,CAOhE"}
package/dist/bearer.js CHANGED
@@ -1,14 +1,20 @@
1
1
  /**
2
2
  * Bearer token authentication.
3
3
  *
4
- * @param prefixUrlVar - Var key for the base URL
5
- * @param tokenSecret - Secret key for the bearer token
4
+ * @example
5
+ * ```ts
6
+ * // Reference from .env.secrets
7
+ * bearer({ prefixUrl: "{{BASE_URL}}", token: "{{API_TOKEN}}" })
8
+ *
9
+ * // Hardcoded (quick prototyping)
10
+ * bearer({ prefixUrl: "https://api.example.com", token: "sk-xxx" })
11
+ * ```
6
12
  */
7
- export function bearer(prefixUrlVar, tokenSecret) {
13
+ export function bearer(opts) {
8
14
  return {
9
- prefixUrl: prefixUrlVar,
15
+ prefixUrl: opts.prefixUrl,
10
16
  headers: {
11
- Authorization: `Bearer {{${tokenSecret}}}`,
17
+ Authorization: `Bearer ${opts.token}`,
12
18
  },
13
19
  };
14
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bearer.js","sourceRoot":"","sources":["../src/bearer.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CACpB,YAAoB,EACpB,WAAmB;IAEnB,OAAO;QACL,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE;YACP,aAAa,EAAE,YAAY,WAAW,IAAI;SAC3C;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bearer.js","sourceRoot":"","sources":["../src/bearer.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,MAAM,CAAC,IAAmB;IACxC,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;SACtC;KACF,CAAC;AACJ,CAAC"}
package/dist/oauth2.d.ts CHANGED
@@ -1,16 +1,26 @@
1
1
  import type { ConfigureHttpOptions } from "@glubean/sdk";
2
2
  export interface OAuth2ClientCredentialsOptions {
3
+ /** Base URL — literal or `{{VAR}}` reference */
3
4
  prefixUrl: string;
5
+ /** Token endpoint URL — literal or `{{VAR}}` reference */
4
6
  tokenUrl: string;
7
+ /** Client ID — literal or `{{SECRET}}` reference */
5
8
  clientId: string;
9
+ /** Client secret — literal or `{{SECRET}}` reference */
6
10
  clientSecret: string;
11
+ /** OAuth2 scope (optional) */
7
12
  scope?: string;
8
13
  }
9
14
  export interface OAuth2RefreshTokenOptions {
15
+ /** Base URL — literal or `{{VAR}}` reference */
10
16
  prefixUrl: string;
17
+ /** Token endpoint URL — literal or `{{VAR}}` reference */
11
18
  tokenUrl: string;
19
+ /** Refresh token — literal or `{{SECRET}}` reference */
12
20
  refreshToken: string;
21
+ /** Client ID — literal or `{{SECRET}}` reference */
13
22
  clientId: string;
23
+ /** Client secret — literal or `{{SECRET}}` reference (optional) */
14
24
  clientSecret?: string;
15
25
  }
16
26
  declare function clientCredentials(opts: OAuth2ClientCredentialsOptions): ConfigureHttpOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"oauth2.d.ts","sourceRoot":"","sources":["../src/oauth2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAsB,MAAM,cAAc,CAAC;AAI7E,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA6BD,iBAAS,iBAAiB,CAAC,IAAI,EAAE,8BAA8B,GAAG,oBAAoB,CA+CrF;AAID,iBAAS,YAAY,CAAC,IAAI,EAAE,yBAAyB,GAAG,oBAAoB,CAuD3E;AAID,eAAO,MAAM,MAAM;;;CAAsC,CAAC"}
1
+ {"version":3,"file":"oauth2.d.ts","sourceRoot":"","sources":["../src/oauth2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAsB,MAAM,cAAc,CAAC;AAK7E,MAAM,WAAW,8BAA8B;IAC7C,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAmBD,iBAAS,iBAAiB,CAAC,IAAI,EAAE,8BAA8B,GAAG,oBAAoB,CA+CrF;AAID,iBAAS,YAAY,CAAC,IAAI,EAAE,yBAAyB,GAAG,oBAAoB,CAiE3E;AAID,eAAO,MAAM,MAAM;;;CAAsC,CAAC"}
package/dist/oauth2.js CHANGED
@@ -1,17 +1,9 @@
1
+ import { rebuildRequest } from "./request.js";
1
2
  // ── Helpers ──────────────────────────────────────────────────────────────────
2
3
  const TOKEN_URL_H = "X-Glubean-OAuth2-TokenUrl";
3
4
  const CLIENT_ID_H = "X-Glubean-OAuth2-ClientId";
4
5
  const CLIENT_SECRET_H = "X-Glubean-OAuth2-ClientSecret";
5
6
  const REFRESH_TOKEN_H = "X-Glubean-OAuth2-RefreshToken";
6
- function rebuildRequest(request, headers) {
7
- return new Request(request.url, {
8
- method: request.method,
9
- headers,
10
- body: request.body,
11
- redirect: request.redirect,
12
- signal: request.signal,
13
- });
14
- }
15
7
  function cleanMarkers(request, ...names) {
16
8
  const h = new Headers(request.headers);
17
9
  for (const n of names)
@@ -23,9 +15,9 @@ function clientCredentials(opts) {
23
15
  return {
24
16
  prefixUrl: opts.prefixUrl,
25
17
  headers: {
26
- [TOKEN_URL_H]: `{{${opts.tokenUrl}}}`,
27
- [CLIENT_ID_H]: `{{${opts.clientId}}}`,
28
- [CLIENT_SECRET_H]: `{{${opts.clientSecret}}}`,
18
+ [TOKEN_URL_H]: opts.tokenUrl,
19
+ [CLIENT_ID_H]: opts.clientId,
20
+ [CLIENT_SECRET_H]: opts.clientSecret,
29
21
  },
30
22
  hooks: {
31
23
  beforeRequest: [
@@ -65,12 +57,12 @@ function clientCredentials(opts) {
65
57
  function refreshToken(opts) {
66
58
  let accessToken = null;
67
59
  const headers = {
68
- [TOKEN_URL_H]: `{{${opts.tokenUrl}}}`,
69
- [REFRESH_TOKEN_H]: `{{${opts.refreshToken}}}`,
70
- [CLIENT_ID_H]: `{{${opts.clientId}}}`,
60
+ [TOKEN_URL_H]: opts.tokenUrl,
61
+ [REFRESH_TOKEN_H]: opts.refreshToken,
62
+ [CLIENT_ID_H]: opts.clientId,
71
63
  };
72
64
  if (opts.clientSecret)
73
- headers[CLIENT_SECRET_H] = `{{${opts.clientSecret}}}`;
65
+ headers[CLIENT_SECRET_H] = opts.clientSecret;
74
66
  const allMarkers = [TOKEN_URL_H, REFRESH_TOKEN_H, CLIENT_ID_H, CLIENT_SECRET_H];
75
67
  async function fetchToken(request) {
76
68
  const body = new URLSearchParams({
@@ -111,7 +103,17 @@ function refreshToken(opts) {
111
103
  accessToken = await fetchToken(request);
112
104
  const h = cleanMarkers(request, ...allMarkers);
113
105
  h.set("Authorization", `Bearer ${accessToken}`);
114
- return fetch(request.url, { method: request.method, headers: h, body: request.body, redirect: request.redirect, signal: request.signal });
106
+ const bodyBuffer = request.body
107
+ ? await request.clone().arrayBuffer()
108
+ : null;
109
+ return fetch(request.url, {
110
+ method: request.method,
111
+ headers: h,
112
+ body: bodyBuffer,
113
+ redirect: request.redirect,
114
+ signal: request.signal,
115
+ ...(bodyBuffer ? { duplex: "half" } : {}),
116
+ });
115
117
  },
116
118
  ],
117
119
  },
@@ -1 +1 @@
1
- {"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../src/oauth2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../src/oauth2.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA8B9C,gFAAgF;AAEhF,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAChD,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAChD,MAAM,eAAe,GAAG,+BAA+B,CAAC;AACxD,MAAM,eAAe,GAAG,+BAA+B,CAAC;AAExD,SAAS,YAAY,CAAC,OAAgB,EAAE,GAAG,KAAe;IACxD,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC;AACX,CAAC;AAMD,SAAS,iBAAiB,CAAC,IAAoC;IAC7D,IAAI,MAAM,GAAuB,IAAI,CAAC;IAEtC,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE;YACP,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,QAAQ;YAC5B,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,QAAQ;YAC5B,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,YAAY;SACrC;QACD,KAAK,EAAE;YACL,aAAa,EAAE;gBACb,KAAK,EAAE,OAAgB,EAAoB,EAAE;oBAC3C,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,CAAU,CAAC;oBAErE,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;wBACrD,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;wBAC5C,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;wBACvD,OAAO,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACpC,CAAC;oBAED,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;wBAC/B,UAAU,EAAE,oBAAoB;wBAChC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;wBACjD,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE;qBAC1D,CAAC,CAAC;oBACH,IAAI,IAAI,CAAC,KAAK;wBAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAE9C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACzE,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;wBAChE,IAAI;qBACL,CAAC,CAAC;oBACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;wBACZ,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC3F,CAAC;oBAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkD,CAAC;oBACjF,MAAM,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;oBAEtG,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;oBAC5C,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;oBACvD,OAAO,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACpC,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,SAAS,YAAY,CAAC,IAA+B;IACnD,IAAI,WAAW,GAAkB,IAAI,CAAC;IAEtC,MAAM,OAAO,GAA2B;QACtC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,QAAQ;QAC5B,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,YAAY;QACpC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,QAAQ;KAC7B,CAAC;IACF,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;IAEpE,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IAEhF,KAAK,UAAU,UAAU,CAAC,OAAgB;QACxC,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;YAC/B,UAAU,EAAE,eAAe;YAC3B,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE;YACzD,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;SAClD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,MAAM;YAAE,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAE9C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACzE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI;SACL,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,OAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA8B,CAAC,YAAY,CAAC;IACvE,CAAC;IAED,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO;QACP,KAAK,EAAE;YACL,aAAa,EAAE;gBACb,KAAK,EAAE,OAAgB,EAAoB,EAAE;oBAC3C,IAAI,CAAC,WAAW;wBAAE,WAAW,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;oBAC1D,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;oBAC/C,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,WAAW,EAAE,CAAC,CAAC;oBAChD,OAAO,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACpC,CAAC;aACF;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,OAAgB,EAAE,QAA4B,EAAE,QAAkB,EAA4B,EAAE;oBACrG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;wBAAE,OAAO;oBACpC,WAAW,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;oBACxC,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;oBAC/C,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,WAAW,EAAE,CAAC,CAAC;oBAChD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI;wBAC7B,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE;wBACrC,CAAC,CAAC,IAAI,CAAC;oBACT,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;wBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,OAAO,EAAE,CAAC;wBACV,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACpC,CAAC,CAAC;gBACpB,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Rebuild a Request with modified URL/headers, safely handling body.
3
+ *
4
+ * Node.js 18+ requires `duplex: "half"` when body is present.
5
+ * ky has a known issue where `request.body` stream can be consumed,
6
+ * so we clone and read to ArrayBuffer first.
7
+ */
8
+ export declare function rebuildRequest(request: Request, headers: Headers, url?: string | URL): Promise<Request>;
9
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,GACjB,OAAO,CAAC,OAAO,CAAC,CAalB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Rebuild a Request with modified URL/headers, safely handling body.
3
+ *
4
+ * Node.js 18+ requires `duplex: "half"` when body is present.
5
+ * ky has a known issue where `request.body` stream can be consumed,
6
+ * so we clone and read to ArrayBuffer first.
7
+ */
8
+ export async function rebuildRequest(request, headers, url) {
9
+ const bodyBuffer = request.body
10
+ ? await request.clone().arrayBuffer()
11
+ : null;
12
+ return new Request(url ?? request.url, {
13
+ method: request.method,
14
+ headers,
15
+ body: bodyBuffer,
16
+ redirect: request.redirect,
17
+ signal: request.signal,
18
+ ...(bodyBuffer ? { duplex: "half" } : {}),
19
+ });
20
+ }
21
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAgB,EAChB,OAAgB,EAChB,GAAkB;IAElB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI;QAC7B,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE;QACrC,CAAC,CAAC,IAAI,CAAC;IAET,OAAO,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;QACrC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO;QACP,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC,CAAC;AACpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glubean/auth",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -15,11 +15,16 @@
15
15
  "access": "public"
16
16
  },
17
17
  "dependencies": {
18
- "@glubean/sdk": "0.1.6"
18
+ "@glubean/sdk": "0.1.18"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/node": "^22.0.0"
22
22
  },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/glubean/glubean.git",
26
+ "directory": "packages/auth"
27
+ },
23
28
  "scripts": {
24
29
  "build": "tsc -p tsconfig.build.json",
25
30
  "test": "vitest run"