@oauth2-cli/qui-cli 1.1.2 → 1.2.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/CHANGELOG.md CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [1.2.0](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/1.1.3...qui-cli-plugin/1.2.0) (2026-03-05)
6
+
7
+
8
+ ### Features
9
+
10
+ * added prepareRequest hook ([3deaaaa](https://github.com/battis/oauth2-cli/commit/3deaaaa1ec8939b507953f436f0cd500f01736e8))
11
+ * make URLSearchParams even more 'ish', accepting all JSON primitives ([b1c2a25](https://github.com/battis/oauth2-cli/commit/b1c2a25c29267c070070f7cd304bb31f854485e4))
12
+
13
+ ## [1.1.3](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/1.1.2...qui-cli-plugin/1.1.3) (2026-03-04)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * allow requestish.Body.ish request bodies as intended ([f12a2ce](https://github.com/battis/oauth2-cli/commit/f12a2ceb1c517f6fd90b33c8c71da7f987af640d))
19
+
5
20
  ## [1.1.2](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/1.1.1...qui-cli-plugin/1.1.2) (2026-03-04)
6
21
 
7
22
 
package/dist/Client.d.ts CHANGED
@@ -2,7 +2,7 @@ import { JSONValue } from '@battis/typescript-tricks';
2
2
  import { Request } from 'express';
3
3
  import * as OAuth2CLI from 'oauth2-cli';
4
4
  import type * as OpenIDClient from 'openid-client';
5
- import * as requestish from 'requestish';
5
+ import { Body, Headers, URL } from 'requestish';
6
6
  /**
7
7
  * Wrap {@link https://www.npmjs.com/package/openid-client openid-client} in a
8
8
  * class instance specific to a particular OAuth/OpenID server credential-set,
@@ -19,6 +19,7 @@ export declare class Client<C extends OAuth2CLI.Credentials = OAuth2CLI.Credenti
19
19
  handleAuthorizationCodeRedirect(request: Request, session: OAuth2CLI.Localhost.Server): Promise<OAuth2CLI.Token.Response>;
20
20
  protected refreshTokenGrant({ refresh_token, inject }?: Parameters<OAuth2CLI.Client['refreshTokenGrant']>[0]): Promise<OAuth2CLI.Token.Response | undefined>;
21
21
  protected save(response: OAuth2CLI.Token.Response): Promise<OAuth2CLI.Token.Response>;
22
- request(url: requestish.URL.ish, method?: string, body?: OpenIDClient.FetchBody, headers?: requestish.Headers.ish, dPoPOptions?: OpenIDClient.DPoPOptions): Promise<Response>;
23
- requestJSON<J extends JSONValue = JSONValue>(url: requestish.URL.ish, method?: string, body?: OpenIDClient.FetchBody, headers?: requestish.Headers.ish, dPoPOptions?: OpenIDClient.DPoPOptions): Promise<J>;
22
+ protected prepareRequest(config: OpenIDClient.Configuration, accessToken: string, url: URL, method: string, body?: OpenIDClient.FetchBody, headers?: Headers | undefined, options?: OpenIDClient.DPoPOptions | undefined): Promise<Parameters<(typeof OpenIDClient)['fetchProtectedResource']>>;
23
+ request(url: URL.ish, method?: string, body?: Body.ish, headers?: Headers.ish, dPoPOptions?: OpenIDClient.DPoPOptions): Promise<Response>;
24
+ requestJSON<J extends JSONValue = JSONValue>(url: URL.ish, method?: string, body?: Body.ish, headers?: Headers.ish, dPoPOptions?: OpenIDClient.DPoPOptions): Promise<J>;
24
25
  }
package/dist/Client.js CHANGED
@@ -53,10 +53,18 @@ export class Client extends OAuth2CLI.Client {
53
53
  Log.debug(`Persisting ${this.name} refresh token (if present and storage configured):\n${Log.syntaxColor(response)}`);
54
54
  return await super.save(response);
55
55
  }
56
- async request(url, method, body, headers, dPoPOptions) {
56
+ async prepareRequest(config, accessToken, url, method, body, headers, options) {
57
+ Log.debug(`Prepared request to ${this.name}:\n${Log.syntaxColor({ method, url, headers: Object.fromEntries(headers?.entries() || []), body })}`);
58
+ return [config, accessToken, url, method, body, headers, options];
59
+ }
60
+ async request(url, method = 'GET', body, headers = {}, dPoPOptions) {
57
61
  Log.debug(`Sending request to ${this.name}:\n${Log.syntaxColor({
58
- request: { method, url, headers, body, dPoPOptions }
59
- })}`);
62
+ request: {
63
+ method,
64
+ url,
65
+ dPoPOptions
66
+ }
67
+ })}${body || headers ? ` injecting: ${Log.syntaxColor({ headers, body })}` : ''}`);
60
68
  const response = await super.request(url, method, body, headers, dPoPOptions);
61
69
  Log.debug(`Received response from ${this.name}:\n${Log.syntaxColor({
62
70
  ok: response.ok,
@@ -66,7 +74,7 @@ export class Client extends OAuth2CLI.Client {
66
74
  })}`);
67
75
  return response;
68
76
  }
69
- async requestJSON(url, method, body, headers, dPoPOptions) {
77
+ async requestJSON(url, method = 'GET', body, headers = {}, dPoPOptions) {
70
78
  const json = await super.requestJSON(url, method, body, headers, dPoPOptions);
71
79
  Log.debug(`Parsed JSON from ${this.name} response:\n${typeof json === 'object' && json
72
80
  ? Log.syntaxColor(json)
package/dist/OAuth2.d.ts CHANGED
@@ -27,13 +27,13 @@ export declare const client: () => import("./Client.js").Client<import("oauth2-c
27
27
  *
28
28
  * @see {@link OAuth2Plugin.request}
29
29
  */
30
- export declare const request: (url: import("requestish/dist/URL.js").ish, method?: string | undefined, body?: import("openid-client").FetchBody, headers?: import("requestish/dist/Headers.js").ish | undefined, dPoPOptions?: import("openid-client").DPoPOptions | undefined) => Promise<Response>;
30
+ export declare const request: (url: import("requestish/dist/URL.js").ish, method?: string | undefined, body?: import("requestish/dist/Body.js").ish, headers?: import("requestish/dist/Headers.js").ish | undefined, dPoPOptions?: import("openid-client").DPoPOptions | undefined) => Promise<Response>;
31
31
  /**
32
32
  * Convenience method
33
33
  *
34
34
  * @see {@link OAuth2Plugin.requestJSON}
35
35
  */
36
- export declare const requestJSON: <T extends import("@battis/typescript-tricks").JSONValue>(url: import("requestish/dist/URL.js").ish, method?: string | undefined, body?: import("openid-client").FetchBody, headers?: import("requestish/dist/Headers.js").ish | undefined, dPoPOptions?: import("openid-client").DPoPOptions | undefined) => Promise<T>;
36
+ export declare const requestJSON: <T extends import("@battis/typescript-tricks").JSONValue>(url: import("requestish/dist/URL.js").ish, method?: string | undefined, body?: import("requestish/dist/Body.js").ish, headers?: import("requestish/dist/Headers.js").ish | undefined, dPoPOptions?: import("openid-client").DPoPOptions | undefined) => Promise<T>;
37
37
  /**
38
38
  * Convenience method
39
39
  *
@@ -2,7 +2,7 @@ import { JSONValue } from '@battis/typescript-tricks';
2
2
  import { Request } from 'express';
3
3
  import * as OAuth2CLI from 'oauth2-cli';
4
4
  import type * as OpenIDClient from 'openid-client';
5
- import * as requestish from 'requestish';
5
+ import { Body, Headers, URL } from 'requestish';
6
6
  /**
7
7
  * Wrap {@link https://www.npmjs.com/package/openid-client openid-client} in a
8
8
  * class instance specific to a particular OAuth/OpenID server credential-set,
@@ -19,6 +19,7 @@ export declare class Client<C extends OAuth2CLI.Credentials = OAuth2CLI.Credenti
19
19
  handleAuthorizationCodeRedirect(request: Request, session: OAuth2CLI.Localhost.Server): Promise<OAuth2CLI.Token.Response>;
20
20
  protected refreshTokenGrant({ refresh_token, inject }?: Parameters<OAuth2CLI.Client['refreshTokenGrant']>[0]): Promise<OAuth2CLI.Token.Response | undefined>;
21
21
  protected save(response: OAuth2CLI.Token.Response): Promise<OAuth2CLI.Token.Response>;
22
- request(url: requestish.URL.ish, method?: string, body?: OpenIDClient.FetchBody, headers?: requestish.Headers.ish, dPoPOptions?: OpenIDClient.DPoPOptions): Promise<Response>;
23
- requestJSON<J extends JSONValue = JSONValue>(url: requestish.URL.ish, method?: string, body?: OpenIDClient.FetchBody, headers?: requestish.Headers.ish, dPoPOptions?: OpenIDClient.DPoPOptions): Promise<J>;
22
+ protected prepareRequest(config: OpenIDClient.Configuration, accessToken: string, url: URL, method: string, body?: OpenIDClient.FetchBody, headers?: Headers | undefined, options?: OpenIDClient.DPoPOptions | undefined): Promise<Parameters<(typeof OpenIDClient)['fetchProtectedResource']>>;
23
+ request(url: URL.ish, method?: string, body?: Body.ish, headers?: Headers.ish, dPoPOptions?: OpenIDClient.DPoPOptions): Promise<Response>;
24
+ requestJSON<J extends JSONValue = JSONValue>(url: URL.ish, method?: string, body?: Body.ish, headers?: Headers.ish, dPoPOptions?: OpenIDClient.DPoPOptions): Promise<J>;
24
25
  }
@@ -53,10 +53,18 @@ export class Client extends OAuth2CLI.Client {
53
53
  Log.debug(`Persisting ${this.name} refresh token (if present and storage configured):\n${Log.syntaxColor(response)}`);
54
54
  return await super.save(response);
55
55
  }
56
- async request(url, method, body, headers, dPoPOptions) {
56
+ async prepareRequest(config, accessToken, url, method, body, headers, options) {
57
+ Log.debug(`Prepared request to ${this.name}:\n${Log.syntaxColor({ method, url, headers: Object.fromEntries(headers?.entries() || []), body })}`);
58
+ return [config, accessToken, url, method, body, headers, options];
59
+ }
60
+ async request(url, method = 'GET', body, headers = {}, dPoPOptions) {
57
61
  Log.debug(`Sending request to ${this.name}:\n${Log.syntaxColor({
58
- request: { method, url, headers, body, dPoPOptions }
59
- })}`);
62
+ request: {
63
+ method,
64
+ url,
65
+ dPoPOptions
66
+ }
67
+ })}${body || headers ? ` injecting: ${Log.syntaxColor({ headers, body })}` : ''}`);
60
68
  const response = await super.request(url, method, body, headers, dPoPOptions);
61
69
  Log.debug(`Received response from ${this.name}:\n${Log.syntaxColor({
62
70
  ok: response.ok,
@@ -66,7 +74,7 @@ export class Client extends OAuth2CLI.Client {
66
74
  })}`);
67
75
  return response;
68
76
  }
69
- async requestJSON(url, method, body, headers, dPoPOptions) {
77
+ async requestJSON(url, method = 'GET', body, headers = {}, dPoPOptions) {
70
78
  const json = await super.requestJSON(url, method, body, headers, dPoPOptions);
71
79
  Log.debug(`Parsed JSON from ${this.name} response:\n${typeof json === 'object' && json
72
80
  ? Log.syntaxColor(json)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oauth2-cli/qui-cli",
3
- "version": "1.1.2",
3
+ "version": "1.2.0",
4
4
  "description": "@qui-cli/plugin wrapper for oauth2-cli",
5
5
  "homepage": "https://github.com/battis/oauth2-cli/tree/main/packages/qui-cli#readme",
6
6
  "repository": {
@@ -17,8 +17,8 @@
17
17
  "types": "./dist/index.d.ts",
18
18
  "dependencies": {
19
19
  "@qui-cli/colors": "^3.2.3",
20
- "oauth2-cli": "1.0.2",
21
- "requestish": "0.1.3"
20
+ "oauth2-cli": "1.1.0",
21
+ "requestish": "0.1.5"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@battis/descriptive-types": "^0.2.6",