@oauth2-cli/qui-cli 0.6.6 → 0.7.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 +70 -81
- package/dist/Export.d.ts +1 -0
- package/dist/Export.js +1 -0
- package/dist/Extend.d.ts +3 -0
- package/dist/Extend.js +3 -0
- package/dist/OAuth2.d.ts +8 -6
- package/dist/OAuth2.js +13 -5
- package/dist/OAuth2Plugin.d.ts +28 -16
- package/dist/OAuth2Plugin.js +75 -75
- package/dist/Token/EnvironmentStorage.d.ts +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -4
- package/package.json +5 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,261 +2,250 @@
|
|
|
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
|
-
## [0.
|
|
5
|
+
## [0.7.0](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.6.6...qui-cli-plugin/0.7.0) (2026-02-17)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
### ⚠ BREAKING CHANGES
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
- clarify subclass groupings and extensibility
|
|
10
|
+
- simplify credentials structure
|
|
11
|
+
- rename Token.TokenStorage to less redundant Token.Storage
|
|
12
|
+
- simplify namespacing of Injection and Scope
|
|
13
|
+
- improved clarity of errors and causes
|
|
14
|
+
- remove option args for secrets
|
|
10
15
|
|
|
11
|
-
|
|
16
|
+
### Features
|
|
12
17
|
|
|
18
|
+
- add base_url for API requests (but still fall back to issuer, if not present) ([324b071](https://github.com/battis/oauth2-cli/commit/324b0718f6a86b8d29465802a5add7a21cc49192))
|
|
19
|
+
- clarify subclass groupings and extensibility ([4fec372](https://github.com/battis/oauth2-cli/commit/4fec372019603c4bfada0e26d1813b3c196db536))
|
|
20
|
+
- remove option args for secrets ([eaf55ea](https://github.com/battis/oauth2-cli/commit/eaf55ea7f5f1b2ee1fb3f037b9393a4be95bc19a))
|
|
21
|
+
- rename Token.TokenStorage to less redundant Token.Storage ([149d65a](https://github.com/battis/oauth2-cli/commit/149d65ac218a2c230ed8bca76963e44a5a6ff441))
|
|
22
|
+
- simplify credentials structure ([0e95439](https://github.com/battis/oauth2-cli/commit/0e95439a30f78268ddf7363dc4feeb0b1ff0edba))
|
|
23
|
+
- simplify namespacing of Injection and Scope ([b5db750](https://github.com/battis/oauth2-cli/commit/b5db7503f557a0c2092d327742b1bdd82be0edbb))
|
|
13
24
|
|
|
14
25
|
### Bug Fixes
|
|
15
26
|
|
|
16
|
-
|
|
27
|
+
- improved clarity of errors and causes ([9f1ddce](https://github.com/battis/oauth2-cli/commit/9f1ddcec82c3295e39fc8857784634da072e7570))
|
|
28
|
+
- make oauth2-cli peer to allow patches to propogate ([395dfb0](https://github.com/battis/oauth2-cli/commit/395dfb0b89d504dfc1ca92ac23a1ca5722045dda))
|
|
29
|
+
- pass configured views (and base_url) to client ([af8b15f](https://github.com/battis/oauth2-cli/commit/af8b15f359299746cfe4e08c70b28fbd04eabe37))
|
|
30
|
+
- use configured base_url, not just environment variable ([5f82f9d](https://github.com/battis/oauth2-cli/commit/5f82f9d134353bcd54c661189c0666ccc16a040e))
|
|
17
31
|
|
|
18
|
-
## [0.6.
|
|
32
|
+
## [0.6.3](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.6.2...qui-cli-plugin/0.6.3) (2026-02-16)
|
|
19
33
|
|
|
34
|
+
### Bug Fixes
|
|
35
|
+
|
|
36
|
+
- export Request ([bad6d04](https://github.com/battis/oauth2-cli/commit/bad6d0479c6c8481c3ad56aa7b141a73dc04f729))
|
|
37
|
+
|
|
38
|
+
## [0.6.2](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.6.1...qui-cli-plugin/0.6.2) (2026-02-16)
|
|
20
39
|
|
|
21
40
|
### Bug Fixes
|
|
22
41
|
|
|
23
|
-
|
|
42
|
+
- export ClientOptions for instantiateClient implementation ([23eefbf](https://github.com/battis/oauth2-cli/commit/23eefbfa7a29d59e66463922b731183804c7eb62))
|
|
24
43
|
|
|
25
44
|
## [0.6.1](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.6.0...qui-cli-plugin/0.6.1) (2026-02-16)
|
|
26
45
|
|
|
27
|
-
|
|
28
46
|
### Bug Fixes
|
|
29
47
|
|
|
30
|
-
|
|
48
|
+
- fix accidental regression and re-export unregistered components from OAuth2 ([b5b62bb](https://github.com/battis/oauth2-cli/commit/b5b62bb1735f0e899bf84c83b39e61499ee8da44))
|
|
31
49
|
|
|
32
50
|
## [0.6.0](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.5.11...qui-cli-plugin/0.6.0) (2026-02-15)
|
|
33
51
|
|
|
34
|
-
|
|
35
52
|
### ⚠ BREAKING CHANGES
|
|
36
53
|
|
|
37
|
-
|
|
38
|
-
|
|
54
|
+
- limit TokenStorage to storing _only_ refresh_tokens
|
|
55
|
+
- rewritten from scratch to be more easily maintainable
|
|
39
56
|
|
|
40
57
|
### Features
|
|
41
58
|
|
|
42
|
-
|
|
43
|
-
|
|
59
|
+
- limit TokenStorage to storing _only_ refresh_tokens ([3de9c96](https://github.com/battis/oauth2-cli/commit/3de9c96510d15eebd51a0be7d8df278614541f95))
|
|
60
|
+
- rewritten from scratch to be more easily maintainable ([0f764d3](https://github.com/battis/oauth2-cli/commit/0f764d333135ae70bd9b3c4433b7c4a2ef757979))
|
|
44
61
|
|
|
45
62
|
## [0.5.11](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.5.10...qui-cli-plugin/0.5.11) (2026-01-20)
|
|
46
63
|
|
|
47
|
-
|
|
48
64
|
### Bug Fixes
|
|
49
65
|
|
|
50
|
-
|
|
66
|
+
- further token managment debugging output ([fda83da](https://github.com/battis/oauth2-cli/commit/fda83da8794d2f7b7221224619b34148ae0a8fe1))
|
|
51
67
|
|
|
52
68
|
## [0.5.10](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.5.9...qui-cli-plugin/0.5.10) (2026-01-18)
|
|
53
69
|
|
|
54
|
-
|
|
55
70
|
### Bug Fixes
|
|
56
71
|
|
|
57
|
-
|
|
72
|
+
- include @qui-cli/log as peer ([422eb25](https://github.com/battis/oauth2-cli/commit/422eb252fb778e8e12c9fe2ecc0d889ed8e82a0a))
|
|
58
73
|
|
|
59
74
|
## [0.5.9](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.5.8...qui-cli-plugin/0.5.9) (2026-01-17)
|
|
60
75
|
|
|
61
|
-
|
|
62
76
|
### Bug Fixes
|
|
63
77
|
|
|
64
|
-
|
|
78
|
+
- debug request/response/JSON from Client rather than plugin ([2ed73e1](https://github.com/battis/oauth2-cli/commit/2ed73e18089ffed4fe75d717d523fc86e2ae7f91))
|
|
65
79
|
|
|
66
80
|
## [0.5.8](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.5.7...qui-cli-plugin/0.5.8) (2026-01-17)
|
|
67
81
|
|
|
68
|
-
|
|
69
82
|
### Features
|
|
70
83
|
|
|
71
|
-
|
|
84
|
+
- add debugging output for requests ([8066cab](https://github.com/battis/oauth2-cli/commit/8066cabf56521f43ff90af21edabd9c20997e4cb))
|
|
72
85
|
|
|
73
86
|
## [0.5.7](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.5.6...qui-cli-plugin/0.5.7) (2026-01-17)
|
|
74
87
|
|
|
75
|
-
|
|
76
88
|
### Bug Fixes
|
|
77
89
|
|
|
78
|
-
|
|
90
|
+
- include scope param ([abf53c1](https://github.com/battis/oauth2-cli/commit/abf53c156a226e51c771a405058640a380407813))
|
|
79
91
|
|
|
80
92
|
## [0.5.6](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.5.5...qui-cli-plugin/0.5.6) (2026-01-15)
|
|
81
93
|
|
|
82
|
-
|
|
83
94
|
### Bug Fixes
|
|
84
95
|
|
|
85
|
-
|
|
96
|
+
- correctly implement template Client type ([ed6ac1c](https://github.com/battis/oauth2-cli/commit/ed6ac1cc63b1c41eceb93311105a1f61890a07c8))
|
|
86
97
|
|
|
87
98
|
## [0.5.5](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.5.4...qui-cli-plugin/0.5.5) (2026-01-15)
|
|
88
99
|
|
|
89
|
-
|
|
90
100
|
### Bug Fixes
|
|
91
101
|
|
|
92
|
-
|
|
102
|
+
- getClient() should return the type instantiated by instiateClient() ([46a4507](https://github.com/battis/oauth2-cli/commit/46a450707954917e1f55595fb3e35f0a62f475fc))
|
|
93
103
|
|
|
94
104
|
## [0.5.4](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.5.3...qui-cli-plugin/0.5.4) (2026-01-15)
|
|
95
105
|
|
|
96
|
-
|
|
97
106
|
### Bug Fixes
|
|
98
107
|
|
|
99
|
-
|
|
108
|
+
- export EnvironmentStorage from class as well as module ([01cb4ea](https://github.com/battis/oauth2-cli/commit/01cb4eaf54beebd16870adbb1b2664b4e585b14f))
|
|
100
109
|
|
|
101
110
|
## [0.5.3](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.5.2...qui-cli-plugin/0.5.3) (2026-01-15)
|
|
102
111
|
|
|
103
|
-
|
|
104
112
|
### Bug Fixes
|
|
105
113
|
|
|
106
|
-
|
|
114
|
+
- instantiateClient() _returns_ the client ([a302fdb](https://github.com/battis/oauth2-cli/commit/a302fdba916f68756b24319d432cc6adce09a1ba))
|
|
107
115
|
|
|
108
116
|
## [0.5.2](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.5.1...qui-cli-plugin/0.5.2) (2026-01-15)
|
|
109
117
|
|
|
110
|
-
|
|
111
118
|
### Features
|
|
112
119
|
|
|
113
|
-
|
|
114
|
-
|
|
120
|
+
- allow injection of custom oauth2-cli Client implementations via instantiateClient() ([cb1b94f](https://github.com/battis/oauth2-cli/commit/cb1b94fb1891343f00b5793fd6f7db33e6489c14))
|
|
121
|
+
- re-export all of oauth2-cli under the plugin module/class namespaces ([0cbdafc](https://github.com/battis/oauth2-cli/commit/0cbdafc84853f4a904e33640b65e4f0300f00b4a))
|
|
115
122
|
|
|
116
123
|
## [0.5.1](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.5.0...qui-cli-plugin/0.5.1) (2026-01-15)
|
|
117
124
|
|
|
118
|
-
|
|
119
125
|
### Bug Fixes
|
|
120
126
|
|
|
121
|
-
|
|
127
|
+
- implement convenience methods as methods, not properties ([a3f67fe](https://github.com/battis/oauth2-cli/commit/a3f67fecde50ae19d8cf960fe6828623e745126b))
|
|
122
128
|
|
|
123
129
|
## [0.5.0](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.4.3...qui-cli-plugin/0.5.0) (2026-01-14)
|
|
124
130
|
|
|
125
|
-
|
|
126
131
|
### ⚠ BREAKING CHANGES
|
|
127
132
|
|
|
128
|
-
|
|
129
|
-
|
|
133
|
+
- move to currently active Node.js v24
|
|
134
|
+
- consistent parameter names and URL support links
|
|
130
135
|
|
|
131
136
|
### Features
|
|
132
137
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
138
|
+
- add configurable hints for CLI option parameters ([b78ab2b](https://github.com/battis/oauth2-cli/commit/b78ab2b894a7807e2fced4531930c648fe275304))
|
|
139
|
+
- configurable opt names to avoid collision with multiple APIs ([d147e3e](https://github.com/battis/oauth2-cli/commit/d147e3e9dfce1f0f4629d5a0e7f649258b7e9487))
|
|
140
|
+
- consistent parameter names and URL support links ([671c371](https://github.com/battis/oauth2-cli/commit/671c3715c7218ab3b92e84a6da69835c5148462a))
|
|
137
141
|
|
|
138
142
|
### Bug Fixes
|
|
139
143
|
|
|
140
|
-
|
|
141
|
-
|
|
144
|
+
- export pre-registered plugin as an EJS module ([19b232e](https://github.com/battis/oauth2-cli/commit/19b232e5c65de4fd43fa604c8a3c38718d4a7ab9))
|
|
145
|
+
- move to currently active Node.js v24 ([a651159](https://github.com/battis/oauth2-cli/commit/a6511594460c7fbc9f59e8a86c6b2f17bfb3564e))
|
|
142
146
|
|
|
143
147
|
## [0.4.3](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.4.2...qui-cli-plugin/0.4.3) (2026-01-12)
|
|
144
148
|
|
|
145
|
-
|
|
146
149
|
### Bug Fixes
|
|
147
150
|
|
|
148
|
-
|
|
151
|
+
- more generous peer dependencies ([38cbed2](https://github.com/battis/oauth2-cli/commit/38cbed28d1046fafe73c9458f3a2f3a3799afaa9))
|
|
149
152
|
|
|
150
153
|
## [0.4.2](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.4.1...qui-cli-plugin/0.4.2) (2026-01-04)
|
|
151
154
|
|
|
152
|
-
|
|
153
155
|
### Bug Fixes
|
|
154
156
|
|
|
155
|
-
|
|
157
|
+
- typo in fetchJSON name ([a19ba97](https://github.com/battis/oauth2-cli/commit/a19ba9700e32a69f7714a428b3c5c60739a11c16))
|
|
156
158
|
|
|
157
159
|
## [0.4.1](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.4.0...qui-cli-plugin/0.4.1) (2026-01-04)
|
|
158
160
|
|
|
159
161
|
## [0.4.0](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.3.4...qui-cli-plugin/0.4.0) (2026-01-04)
|
|
160
162
|
|
|
161
|
-
|
|
162
163
|
### ⚠ BREAKING CHANGES
|
|
163
164
|
|
|
164
|
-
|
|
165
|
+
- rename for simplicity
|
|
165
166
|
|
|
166
167
|
### Features
|
|
167
168
|
|
|
168
|
-
|
|
169
|
+
- rename for simplicity ([110c415](https://github.com/battis/oauth2-cli/commit/110c415d03ef06c0d777ffea5c4cdd9d04a068eb))
|
|
169
170
|
|
|
170
171
|
## [0.3.4](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.3.3...qui-cli-plugin/0.3.4) (2026-01-03)
|
|
171
172
|
|
|
172
|
-
|
|
173
173
|
### Bug Fixes
|
|
174
174
|
|
|
175
|
-
|
|
175
|
+
- export ConfigurationProposal ([3c558c2](https://github.com/battis/oauth2-cli/commit/3c558c2dda012872747cf74fb76dcdd2740f04c6))
|
|
176
176
|
|
|
177
177
|
## [0.3.3](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.3.2...qui-cli-plugin/0.3.3) (2026-01-03)
|
|
178
178
|
|
|
179
|
-
|
|
180
179
|
### Bug Fixes
|
|
181
180
|
|
|
182
|
-
|
|
181
|
+
- export request param types ([244f588](https://github.com/battis/oauth2-cli/commit/244f5886148721f2be06c5da5b3a659fa17391da))
|
|
183
182
|
|
|
184
183
|
## [0.3.2](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.3.1...qui-cli-plugin/0.3.2) (2026-01-03)
|
|
185
184
|
|
|
186
|
-
|
|
187
185
|
### Bug Fixes
|
|
188
186
|
|
|
189
|
-
|
|
187
|
+
- export Credentials ([a175394](https://github.com/battis/oauth2-cli/commit/a1753947d1119e2810d22275c6fbca27b0b19db5))
|
|
190
188
|
|
|
191
189
|
## [0.3.1](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.3.0...qui-cli-plugin/0.3.1) (2026-01-03)
|
|
192
190
|
|
|
193
|
-
|
|
194
191
|
### Features
|
|
195
192
|
|
|
196
|
-
|
|
193
|
+
- extend @oauth2-cli/qui-cli-plugin by instantiating new versions ([14713c5](https://github.com/battis/oauth2-cli/commit/14713c5d1c884c9a1d62ca34d0e5c364ffd8f19b))
|
|
197
194
|
|
|
198
195
|
## [0.3.0](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.2.7...qui-cli-plugin/0.3.0) (2025-12-24)
|
|
199
196
|
|
|
200
|
-
|
|
201
197
|
### ⚠ BREAKING CHANGES
|
|
202
198
|
|
|
203
|
-
|
|
199
|
+
- resolve 1Password secret references successfully
|
|
204
200
|
|
|
205
201
|
### Bug Fixes
|
|
206
202
|
|
|
207
|
-
|
|
203
|
+
- resolve 1Password secret references successfully ([c4446e1](https://github.com/battis/oauth2-cli/commit/c4446e197a66271dac3ea8d58ff44725cc6be1db))
|
|
208
204
|
|
|
209
205
|
## [0.2.7](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.2.6...qui-cli-plugin/0.2.7) (2025-12-23)
|
|
210
206
|
|
|
211
|
-
|
|
212
207
|
### Bug Fixes
|
|
213
208
|
|
|
214
|
-
|
|
209
|
+
- remove overriding default redirect_uri ([2268428](https://github.com/battis/oauth2-cli/commit/2268428bf461b3b92301dde9767558ba3ab5f2f5))
|
|
215
210
|
|
|
216
211
|
## [0.2.6](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.2.5...qui-cli-plugin/0.2.6) (2025-12-23)
|
|
217
212
|
|
|
218
213
|
## [0.2.5](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.2.4...qui-cli-plugin/0.2.5) (2025-12-23)
|
|
219
214
|
|
|
220
|
-
|
|
221
215
|
### Bug Fixes
|
|
222
216
|
|
|
223
|
-
|
|
217
|
+
- expose headers configuration ([bac6bcb](https://github.com/battis/oauth2-cli/commit/bac6bcbf351155472494b82ad620f6b4bc19a1e6))
|
|
224
218
|
|
|
225
219
|
## [0.2.4](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.2.3...qui-cli-plugin/0.2.4) (2025-12-23)
|
|
226
220
|
|
|
227
|
-
|
|
228
221
|
### Bug Fixes
|
|
229
222
|
|
|
230
|
-
|
|
223
|
+
- more aggressively fix typing for partial configuration ([97f7e0c](https://github.com/battis/oauth2-cli/commit/97f7e0c034202fb26654677b5a3a836ff989b116))
|
|
231
224
|
|
|
232
225
|
## [0.2.3](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.2.2...qui-cli-plugin/0.2.3) (2025-12-23)
|
|
233
226
|
|
|
234
|
-
|
|
235
227
|
### Bug Fixes
|
|
236
228
|
|
|
237
|
-
|
|
229
|
+
- allow partial override of environment variable names and suppressed opt args ([c8a118b](https://github.com/battis/oauth2-cli/commit/c8a118ba6dae62f29549ef272448a4a6adea553c))
|
|
238
230
|
|
|
239
231
|
## [0.2.2](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.2.1...qui-cli-plugin/0.2.2) (2025-12-23)
|
|
240
232
|
|
|
241
|
-
|
|
242
233
|
### Features
|
|
243
234
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
235
|
+
- add optional typing to requestJSON() ([5f7cf39](https://github.com/battis/oauth2-cli/commit/5f7cf39d8dc0ca86cbe3df7e8493d3273e630573))
|
|
236
|
+
- configurable options and usage ([aadbc4b](https://github.com/battis/oauth2-cli/commit/aadbc4bffc9eda241763ecd9f134963517250e5f))
|
|
237
|
+
- default suppress token path storage ([9df7f4f](https://github.com/battis/oauth2-cli/commit/9df7f4f6312713e2086366350f0c546a975b2c31))
|
|
238
|
+
- provide EnvironmentStorage implementation ([55fc676](https://github.com/battis/oauth2-cli/commit/55fc676716fa1e4830a6a890b6d0bf5cecf0f57f))
|
|
249
239
|
|
|
250
240
|
### Bug Fixes
|
|
251
241
|
|
|
252
|
-
|
|
242
|
+
- update to current [@qui-cli](https://github.com/qui-cli) versions ([d54c521](https://github.com/battis/oauth2-cli/commit/d54c5210e55586ed688afa42840ec2b9e1cffeb0))
|
|
253
243
|
|
|
254
244
|
## [0.2.1](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.2.0...qui-cli-plugin/0.2.1) (2025-09-11)
|
|
255
245
|
|
|
256
|
-
|
|
257
246
|
### Bug Fixes
|
|
258
247
|
|
|
259
|
-
|
|
248
|
+
- update dependencies to address transient openid-client config error ([f0ca9a8](https://github.com/battis/oauth2-cli/commit/f0ca9a8d2bb4551b80a49e48aa43df5ba66a5a9b))
|
|
260
249
|
|
|
261
250
|
## [0.2.0](https://github.com/battis/oauth2-cli/compare/qui-cli-plugin/0.1.1...qui-cli-plugin/0.2.0) (2025-03-09)
|
|
262
251
|
|
package/dist/Export.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ClientOptions, Credentials, Injection, Scope, WebServer } from 'oauth2-cli';
|
package/dist/Export.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Scope, WebServer } from 'oauth2-cli';
|
package/dist/Extend.d.ts
ADDED
package/dist/Extend.js
ADDED
package/dist/OAuth2.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export declare const
|
|
1
|
+
export declare const configure: (proposal?: import("./OAuth2Plugin.js").Configuration) => void;
|
|
2
|
+
export declare const options: () => import("@qui-cli/plugin").Options;
|
|
3
|
+
export declare const init: () => import("@qui-cli/plugin").Options;
|
|
4
|
+
export declare const client: () => import("./Client.js").Client;
|
|
5
|
+
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>;
|
|
6
|
+
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>;
|
|
7
|
+
export declare const fetch: (input: import("requestish/dist/URL.js").ish, init?: RequestInit | undefined, dPoPOptions?: import("openid-client").DPoPOptions | undefined) => Promise<Response>;
|
|
8
|
+
export declare const fetchJSON: <T extends import("@battis/typescript-tricks").JSONValue>(input: import("requestish/dist/URL.js").ish, init?: RequestInit | undefined, dPoPOptions?: import("openid-client").DPoPOptions | undefined) => Promise<T>;
|
package/dist/OAuth2.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
import { register } from '@qui-cli/plugin';
|
|
1
2
|
import { OAuth2Plugin } from './OAuth2Plugin.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export const
|
|
3
|
+
const plugin = new OAuth2Plugin();
|
|
4
|
+
// @qui-cli/plugin convenience methods
|
|
5
|
+
export const configure = plugin.configure.bind(plugin);
|
|
6
|
+
export const options = plugin.options.bind(plugin);
|
|
7
|
+
export const init = plugin.options.bind(plugin);
|
|
8
|
+
// oauth2-cli convenience methods
|
|
9
|
+
export const client = () => plugin.client;
|
|
10
|
+
export const request = plugin.request.bind(plugin);
|
|
11
|
+
export const requestJSON = plugin.requestJSON.bind(plugin);
|
|
12
|
+
export const fetch = plugin.fetch.bind(plugin);
|
|
13
|
+
export const fetchJSON = plugin.fetchJSON.bind(plugin);
|
|
14
|
+
await register(plugin);
|
package/dist/OAuth2Plugin.d.ts
CHANGED
|
@@ -1,48 +1,60 @@
|
|
|
1
|
-
import { URLString } from '@battis/descriptive-types';
|
|
1
|
+
import { PathString, URLString } from '@battis/descriptive-types';
|
|
2
2
|
import { JSONValue } from '@battis/typescript-tricks';
|
|
3
3
|
import * as Plugin from '@qui-cli/plugin';
|
|
4
4
|
import * as OAuth2CLI from 'oauth2-cli';
|
|
5
|
+
import * as requestish from 'requestish';
|
|
5
6
|
import { Client } from './Client.js';
|
|
6
|
-
type CredentialKey = 'issuer' | 'client_id' | 'client_secret' | 'redirect_uri' | 'authorization_endpoint' | 'token_endpoint' | 'scope';
|
|
7
|
+
type CredentialKey = 'issuer' | 'client_id' | 'client_secret' | 'redirect_uri' | 'authorization_endpoint' | 'token_endpoint' | 'scope' | 'base_url';
|
|
7
8
|
type EnvironmentVars = Record<CredentialKey, string>;
|
|
8
9
|
type SupportUrls = Record<CredentialKey, URLString>;
|
|
9
10
|
type Hints = Record<CredentialKey, string>;
|
|
10
|
-
type
|
|
11
|
-
type OptionSuppression = Record<CredentialKey, boolean>;
|
|
11
|
+
type EnvVarSuppression = Record<CredentialKey, boolean>;
|
|
12
12
|
type Usage = {
|
|
13
13
|
heading: string;
|
|
14
14
|
text?: string[];
|
|
15
15
|
};
|
|
16
16
|
export type Configuration = Plugin.Configuration & {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
/** OAuth 2.0/OpenID Connect credential set */
|
|
18
|
+
credentials?: Partial<OAuth2CLI.Credentials>;
|
|
19
|
+
/** Base URL for all non-absolute requests */
|
|
20
|
+
base_url?: requestish.URL.ish;
|
|
21
|
+
/** Request components to inject into server requests */
|
|
22
|
+
inject?: OAuth2CLI.Injection;
|
|
23
|
+
/** Refresh token storage service */
|
|
24
|
+
storage?: OAuth2CLI.Token.Storage;
|
|
25
|
+
/** CLI usage section header and text */
|
|
20
26
|
man?: Usage;
|
|
21
|
-
|
|
27
|
+
/** Reference URLs for particular credential values */
|
|
22
28
|
url?: Partial<SupportUrls>;
|
|
29
|
+
/** Hint values for particular credential values */
|
|
23
30
|
hint?: Partial<Hints>;
|
|
31
|
+
/** Actual environment variable names for each credential value */
|
|
24
32
|
env?: Partial<EnvironmentVars>;
|
|
25
|
-
|
|
33
|
+
/** Should a particular credential value _not_ be loaded from the environment? */
|
|
34
|
+
suppress?: Partial<EnvVarSuppression>;
|
|
35
|
+
/** Optional absolute path to EJS view templates directory */
|
|
36
|
+
views?: PathString;
|
|
26
37
|
};
|
|
27
38
|
export declare class OAuth2Plugin<C extends Client = Client> {
|
|
28
39
|
readonly name: string;
|
|
29
40
|
[key: string]: unknown;
|
|
30
41
|
private static names;
|
|
31
|
-
private static
|
|
42
|
+
private static registeredPorts;
|
|
32
43
|
constructor(name?: string);
|
|
33
44
|
private credentials?;
|
|
45
|
+
private base_url?;
|
|
34
46
|
private man;
|
|
35
|
-
private
|
|
36
|
-
private url;
|
|
47
|
+
private url?;
|
|
37
48
|
private hint;
|
|
38
49
|
private env;
|
|
39
|
-
private suppress
|
|
40
|
-
private inject
|
|
50
|
+
private suppress?;
|
|
51
|
+
private inject?;
|
|
52
|
+
private views?;
|
|
41
53
|
private storage?;
|
|
42
|
-
private _client
|
|
54
|
+
private _client?;
|
|
43
55
|
configure(proposal?: Configuration): void;
|
|
44
56
|
options(): Plugin.Options;
|
|
45
|
-
init(
|
|
57
|
+
init(_: Plugin.ExpectedArguments<typeof this.options>): Promise<void>;
|
|
46
58
|
protected instantiateClient(options: OAuth2CLI.ClientOptions): C;
|
|
47
59
|
get client(): C;
|
|
48
60
|
request(...args: Parameters<OAuth2CLI.Client['request']>): Promise<Response>;
|
package/dist/OAuth2Plugin.js
CHANGED
|
@@ -7,7 +7,7 @@ import * as requestish from 'requestish';
|
|
|
7
7
|
export class OAuth2Plugin {
|
|
8
8
|
name;
|
|
9
9
|
static names = [];
|
|
10
|
-
static
|
|
10
|
+
static registeredPorts = {};
|
|
11
11
|
constructor(name = '@oauth2-cli/qui-cli') {
|
|
12
12
|
this.name = name;
|
|
13
13
|
if (OAuth2Plugin.names.includes(name)) {
|
|
@@ -15,17 +15,9 @@ export class OAuth2Plugin {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
credentials;
|
|
18
|
+
base_url;
|
|
18
19
|
man = {
|
|
19
|
-
heading: 'OAuth 2.0 client options'
|
|
20
|
-
};
|
|
21
|
-
opt = {
|
|
22
|
-
issuer: 'issuer',
|
|
23
|
-
client_id: 'clientId',
|
|
24
|
-
client_secret: 'clientSecret',
|
|
25
|
-
scope: 'scope',
|
|
26
|
-
redirect_uri: 'redirectUri',
|
|
27
|
-
authorization_endpoint: 'authorizationEndpoint',
|
|
28
|
-
token_endpoint: 'tokenEndpoint'
|
|
20
|
+
heading: 'OAuth 2.0 / Open ID Connect client options'
|
|
29
21
|
};
|
|
30
22
|
url = undefined;
|
|
31
23
|
hint = {
|
|
@@ -35,13 +27,17 @@ export class OAuth2Plugin {
|
|
|
35
27
|
issuer: 'ISSUER',
|
|
36
28
|
client_id: 'CLIENT_ID',
|
|
37
29
|
client_secret: 'CLIENT_SECRET',
|
|
38
|
-
scope: 'SCOPE',
|
|
39
30
|
redirect_uri: 'REDIRECT_URI',
|
|
40
31
|
authorization_endpoint: 'AUTHORIZATION_ENDPOINT',
|
|
41
|
-
token_endpoint: 'TOKEN_ENDPOINT'
|
|
32
|
+
token_endpoint: 'TOKEN_ENDPOINT',
|
|
33
|
+
base_url: 'BASE_URL',
|
|
34
|
+
scope: 'SCOPE'
|
|
35
|
+
};
|
|
36
|
+
suppress = {
|
|
37
|
+
scope: true
|
|
42
38
|
};
|
|
43
|
-
suppress = undefined;
|
|
44
39
|
inject = undefined;
|
|
40
|
+
views = undefined;
|
|
45
41
|
storage = undefined;
|
|
46
42
|
_client = undefined;
|
|
47
43
|
configure(proposal = {}) {
|
|
@@ -59,10 +55,10 @@ export class OAuth2Plugin {
|
|
|
59
55
|
return c;
|
|
60
56
|
}
|
|
61
57
|
this.credentials = hydrate(proposal.credentials, this.credentials);
|
|
58
|
+
this.base_url = Plugin.hydrate(proposal.base_url, this.base_url);
|
|
62
59
|
this.storage = Plugin.hydrate(proposal.storage, this.storage);
|
|
63
60
|
this.inject = hydrate(proposal.inject, this.inject);
|
|
64
61
|
this.man = Plugin.hydrate(proposal.man, this.man);
|
|
65
|
-
this.opt = hydrate(proposal.opt, this.opt);
|
|
66
62
|
this.url = hydrate(proposal.url, this.url);
|
|
67
63
|
this.hint = hydrate(proposal.hint, this.hint);
|
|
68
64
|
this.env = hydrate(proposal.env, this.env);
|
|
@@ -71,7 +67,7 @@ export class OAuth2Plugin {
|
|
|
71
67
|
const url = requestish.URL.from(this.credentials.redirect_uri);
|
|
72
68
|
if (url.hostname !== 'localhost' &&
|
|
73
69
|
!/^\/https?\/localhost(:\d+)?\//.test(url.pathname)) {
|
|
74
|
-
Log.warning(`The ${Colors.
|
|
70
|
+
Log.warning(`The ${Colors.varName(this.env.redirect_uri)} value ${Colors.url(this.credentials.redirect_uri)} may not work: it ${Colors.keyword('must')} redirect to ${Colors.url('localhost')}`);
|
|
75
71
|
}
|
|
76
72
|
if (url.protocol !== 'http:' &&
|
|
77
73
|
!/^\/http\/localhost(:\d+)?\//.test(url.pathname)) {
|
|
@@ -79,10 +75,10 @@ export class OAuth2Plugin {
|
|
|
79
75
|
`server listening for the redirect is not automatically ` +
|
|
80
76
|
`provisioned with an SSL certificate`);
|
|
81
77
|
}
|
|
82
|
-
if (OAuth2Plugin.
|
|
83
|
-
OAuth2Plugin.
|
|
78
|
+
if (OAuth2Plugin.registeredPorts[url.port] &&
|
|
79
|
+
OAuth2Plugin.registeredPorts[url.port] !== this.name) {
|
|
84
80
|
Log.warning(`The port ${Colors.value(url.port)} has already been registered to another instance of this plugin ` +
|
|
85
|
-
`named ${Colors.value(OAuth2Plugin.
|
|
81
|
+
`named ${Colors.value(OAuth2Plugin.registeredPorts[url.port])}. This will likely cause a failure if both instances of the ` +
|
|
86
82
|
`plugin are listening for redirects at relatively proximate ` +
|
|
87
83
|
`moments in time.`);
|
|
88
84
|
}
|
|
@@ -90,65 +86,67 @@ export class OAuth2Plugin {
|
|
|
90
86
|
}
|
|
91
87
|
options() {
|
|
92
88
|
const descriptions = {
|
|
93
|
-
issuer: `OpenID issuer URL
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
`
|
|
103
|
-
|
|
104
|
-
|
|
89
|
+
issuer: `The OpenID ${Colors.keyword('issuer')} URL is set from the ` +
|
|
90
|
+
`environment variable ${Colors.varName(this.env.issuer)}, if present. ` +
|
|
91
|
+
`The ${Colors.varName(this.env.issuer)} is also used as a base URL for ` +
|
|
92
|
+
`any relative URL in API requests, unless ` +
|
|
93
|
+
`${Colors.varName(this.env.base_url)} is defined.`,
|
|
94
|
+
client_id: `The OAuth 2.0 ${Colors.keyword('client_id')} is set from the ` +
|
|
95
|
+
`environment variable ${Colors.varName(this.env.client_id)}, if ` +
|
|
96
|
+
`present.`,
|
|
97
|
+
client_secret: `The OAuth 2.0 ${Colors.keyword('client_secret')} is set from the ` +
|
|
98
|
+
`environment variable ${Colors.varName(this.env.client_secret)}, if ` +
|
|
99
|
+
`present.`,
|
|
100
|
+
scope: `The OAuth 2.0 ${Colors.keyword('scope')} is set from the environment ` +
|
|
101
|
+
`variable ${Colors.varName(this.env.scope)}, if present.`,
|
|
102
|
+
redirect_uri: `The OAuth 2.0 ${Colors.keyword('redirect_uri')}, which must at least ` +
|
|
103
|
+
`redirect to ${Colors.url('localhost')}, is set from the environment ` +
|
|
104
|
+
`variable ${Colors.varName(this.env.redirect_uri)}, if present.`,
|
|
105
|
+
authorization_endpoint: `The OAuth 2.0 ${Colors.keyword('authorization_endpoint')} is set ` +
|
|
106
|
+
`from the environment variable ` +
|
|
105
107
|
`${Colors.varName(this.env.authorization_endpoint)}, if present.`,
|
|
106
|
-
token_endpoint: `OAuth 2.0
|
|
107
|
-
|
|
108
|
-
`
|
|
109
|
-
`${Colors.varName(this.env.
|
|
108
|
+
token_endpoint: `The OAuth 2.0 ${Colors.keyword('token_endpoint')} is set from the ` +
|
|
109
|
+
`environment variable ${Colors.varName(this.env.token_endpoint)}, if ` +
|
|
110
|
+
`present and will fall back to ` +
|
|
111
|
+
`${Colors.varName(this.env.authorization_endpoint)} if not provided.`,
|
|
112
|
+
base_url: `The base URL to use for API requests is set from the ` +
|
|
113
|
+
`environment variable ${Colors.varName(this.env.base_url)}, if ` +
|
|
114
|
+
`present. If ${Colors.varName(this.env.base_url)} is not defined, ` +
|
|
115
|
+
`${Colors.varName(this.env.issuer)} will be used as a base URL for ` +
|
|
116
|
+
`relative URL requests.`
|
|
110
117
|
};
|
|
111
|
-
const opt = {};
|
|
112
|
-
for (const paramName of Object.keys(descriptions)) {
|
|
113
|
-
if (!this.suppress || !this.suppress[paramName]) {
|
|
114
|
-
const option = { description: descriptions[paramName] };
|
|
115
|
-
if (this.url && this.url[paramName]) {
|
|
116
|
-
option.description = `${option.description} See ${Colors.url(this.url[paramName])} for more information.`;
|
|
117
|
-
}
|
|
118
|
-
if (this.hint[paramName]) {
|
|
119
|
-
option.hint = this.hint[paramName];
|
|
120
|
-
}
|
|
121
|
-
switch (paramName) {
|
|
122
|
-
case 'client_id':
|
|
123
|
-
case 'client_secret':
|
|
124
|
-
option.secret = true;
|
|
125
|
-
}
|
|
126
|
-
const param = this.credentials
|
|
127
|
-
? this.credentials[paramName]
|
|
128
|
-
: undefined;
|
|
129
|
-
if (typeof param === 'string') {
|
|
130
|
-
option.default = param;
|
|
131
|
-
}
|
|
132
|
-
opt[this.opt[paramName]] = option;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
118
|
return {
|
|
136
119
|
man: [
|
|
137
120
|
{ level: 1, text: this.man.heading },
|
|
138
|
-
...(this.man.text || []).map((t) => ({ text: t }))
|
|
139
|
-
|
|
140
|
-
|
|
121
|
+
...(this.man.text || []).map((t) => ({ text: t })),
|
|
122
|
+
...Object.keys(descriptions)
|
|
123
|
+
.filter((key) => !this.suppress || !this.suppress[key])
|
|
124
|
+
.map((key) => ({
|
|
125
|
+
text: descriptions[key] +
|
|
126
|
+
(this.hint[key] ? ` (e.g. ${this.hint[key]})` : '') +
|
|
127
|
+
(this.url && this.url[key]
|
|
128
|
+
? ` See ${Colors.url(this.url[key])} for more information.`
|
|
129
|
+
: '')
|
|
130
|
+
}))
|
|
131
|
+
]
|
|
141
132
|
};
|
|
142
133
|
}
|
|
143
|
-
async init(
|
|
134
|
+
async init(_) {
|
|
144
135
|
const credentials = {};
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
136
|
+
const base_url = this.base_url ||
|
|
137
|
+
(await Env.get({
|
|
138
|
+
key: this.env.base_url
|
|
139
|
+
}));
|
|
140
|
+
for (const key of Object.keys(this.env)) {
|
|
141
|
+
if (key !== 'base_url') {
|
|
142
|
+
// FIXME better typing
|
|
143
|
+
// @ts-expect-error 2322
|
|
144
|
+
credentials[key] =
|
|
148
145
|
(this.credentials ? this.credentials[key] : undefined) ||
|
|
149
|
-
|
|
146
|
+
(await Env.get({ key: this.env[key] }));
|
|
147
|
+
}
|
|
150
148
|
}
|
|
151
|
-
this.configure({ credentials });
|
|
149
|
+
this.configure({ credentials, base_url });
|
|
152
150
|
}
|
|
153
151
|
instantiateClient(options) {
|
|
154
152
|
return new OAuth2CLI.Client(options);
|
|
@@ -156,29 +154,31 @@ export class OAuth2Plugin {
|
|
|
156
154
|
get client() {
|
|
157
155
|
if (!this._client) {
|
|
158
156
|
if (!this.credentials?.client_id) {
|
|
159
|
-
throw new Error(`A ${Colors.
|
|
157
|
+
throw new Error(`A ${Colors.varName(this.env.client_id)} ${Colors.keyword('must')} be configured.`);
|
|
160
158
|
}
|
|
161
159
|
if (!this.credentials?.client_secret) {
|
|
162
|
-
throw new Error(`A ${Colors.
|
|
160
|
+
throw new Error(`A ${Colors.varName(this.env.client_secret)} ${Colors.keyword('must')} be configured.`);
|
|
163
161
|
}
|
|
164
162
|
if (!this.credentials?.redirect_uri) {
|
|
165
|
-
throw new Error(`A ${Colors.
|
|
163
|
+
throw new Error(`A ${Colors.varName(this.env.redirect_uri)} ${Colors.keyword('must')} be configured.`);
|
|
166
164
|
}
|
|
167
165
|
if (!this.credentials?.issuer) {
|
|
168
166
|
if (!this.credentials?.authorization_endpoint) {
|
|
169
|
-
throw new Error(`Either an ${Colors.
|
|
170
|
-
`${Colors.
|
|
167
|
+
throw new Error(`Either an ${Colors.varName(this.env.issuer)} or ` +
|
|
168
|
+
`${Colors.varName(this.env.authorization_endpoint)} ` +
|
|
171
169
|
`${Colors.keyword('must')} be configured.`);
|
|
172
170
|
}
|
|
173
171
|
if (!this.credentials?.token_endpoint) {
|
|
174
|
-
throw new Error(`Either an ${Colors.
|
|
175
|
-
`${Colors.
|
|
172
|
+
throw new Error(`Either an ${Colors.varName(this.env.issuer)} or ` +
|
|
173
|
+
`${Colors.varName(this.env.token_endpoint)} ` +
|
|
176
174
|
`${Colors.keyword('must')} be configured.`);
|
|
177
175
|
}
|
|
178
176
|
}
|
|
179
177
|
this._client = this.instantiateClient({
|
|
180
178
|
credentials: this.credentials,
|
|
179
|
+
base_url: this.base_url,
|
|
181
180
|
inject: this.inject,
|
|
181
|
+
views: this.views,
|
|
182
182
|
storage: this.storage
|
|
183
183
|
});
|
|
184
184
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Token } from 'oauth2-cli';
|
|
2
|
-
export declare class EnvironmentStorage implements Token.
|
|
2
|
+
export declare class EnvironmentStorage implements Token.Storage {
|
|
3
3
|
private tokenEnvVar;
|
|
4
4
|
constructor(tokenEnvVar?: string);
|
|
5
5
|
load(): Promise<string | undefined>;
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export * from './
|
|
4
|
-
await register(plugin);
|
|
1
|
+
export * as OAuth2 from './OAuth2.js';
|
|
2
|
+
export * from './Export.js';
|
|
3
|
+
export * from './Extend.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oauth2-cli/qui-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.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,7 +17,6 @@
|
|
|
17
17
|
"types": "./dist/index.d.ts",
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@qui-cli/colors": "^3.2.3",
|
|
20
|
-
"oauth2-cli": "0.7.3",
|
|
21
20
|
"requestish": "0.1.1"
|
|
22
21
|
},
|
|
23
22
|
"devDependencies": {
|
|
@@ -31,12 +30,14 @@
|
|
|
31
30
|
"del-cli": "^7.0.0",
|
|
32
31
|
"npm-run-all": "^4.1.5",
|
|
33
32
|
"openid-client": "^6.8.2",
|
|
34
|
-
"typescript": "^5.9.3"
|
|
33
|
+
"typescript": "^5.9.3",
|
|
34
|
+
"oauth2-cli": "0.8.0"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@qui-cli/env-1password": ">=1",
|
|
38
38
|
"@qui-cli/log": ">=3",
|
|
39
|
-
"@qui-cli/plugin": ">=3"
|
|
39
|
+
"@qui-cli/plugin": ">=3",
|
|
40
|
+
"oauth2-cli": "0.8.x"
|
|
40
41
|
},
|
|
41
42
|
"scripts": {
|
|
42
43
|
"clean": "del ./dist",
|