@pellux/goodvibes-sdk 0.23.1 → 0.24.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.
|
@@ -23,9 +23,9 @@ export declare const ProviderModelEntrySchema: z.ZodObject<{
|
|
|
23
23
|
export type ProviderModelEntry = z.infer<typeof ProviderModelEntrySchema>;
|
|
24
24
|
export declare const ConfiguredViaSchema: z.ZodEnum<{
|
|
25
25
|
env: "env";
|
|
26
|
+
secrets: "secrets";
|
|
26
27
|
anonymous: "anonymous";
|
|
27
28
|
subscription: "subscription";
|
|
28
|
-
secrets: "secrets";
|
|
29
29
|
}>;
|
|
30
30
|
export type ConfiguredVia = z.infer<typeof ConfiguredViaSchema>;
|
|
31
31
|
export declare const ProviderEntrySchema: z.ZodObject<{
|
|
@@ -34,9 +34,9 @@ export declare const ProviderEntrySchema: z.ZodObject<{
|
|
|
34
34
|
configured: z.ZodBoolean;
|
|
35
35
|
configuredVia: z.ZodOptional<z.ZodEnum<{
|
|
36
36
|
env: "env";
|
|
37
|
+
secrets: "secrets";
|
|
37
38
|
anonymous: "anonymous";
|
|
38
39
|
subscription: "subscription";
|
|
39
|
-
secrets: "secrets";
|
|
40
40
|
}>>;
|
|
41
41
|
envVars: z.ZodArray<z.ZodString>;
|
|
42
42
|
models: z.ZodArray<z.ZodObject<{
|
|
@@ -55,9 +55,9 @@ export declare const ListProvidersResponseSchema: z.ZodObject<{
|
|
|
55
55
|
configured: z.ZodBoolean;
|
|
56
56
|
configuredVia: z.ZodOptional<z.ZodEnum<{
|
|
57
57
|
env: "env";
|
|
58
|
+
secrets: "secrets";
|
|
58
59
|
anonymous: "anonymous";
|
|
59
60
|
subscription: "subscription";
|
|
60
|
-
secrets: "secrets";
|
|
61
61
|
}>>;
|
|
62
62
|
envVars: z.ZodArray<z.ZodString>;
|
|
63
63
|
models: z.ZodArray<z.ZodObject<{
|
|
@@ -84,9 +84,9 @@ export declare const CurrentModelResponseSchema: z.ZodObject<{
|
|
|
84
84
|
configured: z.ZodBoolean;
|
|
85
85
|
configuredVia: z.ZodOptional<z.ZodEnum<{
|
|
86
86
|
env: "env";
|
|
87
|
+
secrets: "secrets";
|
|
87
88
|
anonymous: "anonymous";
|
|
88
89
|
subscription: "subscription";
|
|
89
|
-
secrets: "secrets";
|
|
90
90
|
}>>;
|
|
91
91
|
}, z.core.$strip>;
|
|
92
92
|
export type CurrentModelResponse = z.infer<typeof CurrentModelResponseSchema>;
|
|
@@ -114,9 +114,9 @@ export declare const PatchCurrentModelResponseSchema: z.ZodObject<{
|
|
|
114
114
|
configured: z.ZodBoolean;
|
|
115
115
|
configuredVia: z.ZodOptional<z.ZodEnum<{
|
|
116
116
|
env: "env";
|
|
117
|
+
secrets: "secrets";
|
|
117
118
|
anonymous: "anonymous";
|
|
118
119
|
subscription: "subscription";
|
|
119
|
-
secrets: "secrets";
|
|
120
120
|
}>>;
|
|
121
121
|
persisted: z.ZodBoolean;
|
|
122
122
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-refs.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/config/secret-refs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"secret-refs.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/config/secret-refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,9 @@ export const BUILTIN_SECRET_PROVIDER_SOURCES = [
|
|
|
12
12
|
'bitwarden-secrets-manager',
|
|
13
13
|
];
|
|
14
14
|
const JSON_REF_PREFIX = 'secretref:';
|
|
15
|
-
const
|
|
15
|
+
const GOODVIBES_URI_PREFIX = 'goodvibes://';
|
|
16
|
+
const GOODVIBES_URI_PROTOCOL = 'goodvibes:';
|
|
17
|
+
const GOODVIBES_SECRETS_HOST = 'secrets';
|
|
16
18
|
function asRecord(value) {
|
|
17
19
|
return value && typeof value === 'object' && !Array.isArray(value)
|
|
18
20
|
? value
|
|
@@ -27,6 +29,31 @@ function readBoolean(value) {
|
|
|
27
29
|
function readNumber(value) {
|
|
28
30
|
return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
|
|
29
31
|
}
|
|
32
|
+
function readSearchString(params, ...keys) {
|
|
33
|
+
for (const key of keys) {
|
|
34
|
+
const value = params.get(key);
|
|
35
|
+
if (value && value.length > 0)
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
function readSearchBoolean(params, key) {
|
|
41
|
+
const value = params.get(key);
|
|
42
|
+
if (value === null)
|
|
43
|
+
return undefined;
|
|
44
|
+
if (value === 'true')
|
|
45
|
+
return true;
|
|
46
|
+
if (value === 'false')
|
|
47
|
+
return false;
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
function readSearchNumber(params, key) {
|
|
51
|
+
const value = params.get(key);
|
|
52
|
+
if (value === null)
|
|
53
|
+
return undefined;
|
|
54
|
+
const number = Number(value);
|
|
55
|
+
return Number.isFinite(number) ? number : undefined;
|
|
56
|
+
}
|
|
30
57
|
function readStringArray(value) {
|
|
31
58
|
return Array.isArray(value) && value.every((entry) => typeof entry === 'string')
|
|
32
59
|
? value
|
|
@@ -87,11 +114,116 @@ function parseJsonRef(value) {
|
|
|
87
114
|
return null;
|
|
88
115
|
}
|
|
89
116
|
}
|
|
117
|
+
function parseGoodVibesSecretsUri(url) {
|
|
118
|
+
if (url.protocol !== GOODVIBES_URI_PROTOCOL || url.hostname !== GOODVIBES_SECRETS_HOST)
|
|
119
|
+
return null;
|
|
120
|
+
let rawSegments;
|
|
121
|
+
let segments;
|
|
122
|
+
try {
|
|
123
|
+
rawSegments = url.pathname.split('/').filter(Boolean);
|
|
124
|
+
segments = rawSegments.map((segment) => decodeURIComponent(segment));
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
const source = normalizeSource(segments[0] ?? '');
|
|
130
|
+
if (!source)
|
|
131
|
+
return null;
|
|
132
|
+
const rest = segments.slice(1);
|
|
133
|
+
const params = url.searchParams;
|
|
134
|
+
if (source === 'env') {
|
|
135
|
+
const id = rest[0] ?? readSearchString(params, 'id', 'key', 'name');
|
|
136
|
+
return id ? { source: 'env', id } : null;
|
|
137
|
+
}
|
|
138
|
+
if (source === 'goodvibes') {
|
|
139
|
+
const id = rest[0] ?? readSearchString(params, 'id', 'key', 'name');
|
|
140
|
+
return id ? { source: 'goodvibes', id } : null;
|
|
141
|
+
}
|
|
142
|
+
if (source === 'file') {
|
|
143
|
+
let path = readSearchString(params, 'path');
|
|
144
|
+
if (!path && rawSegments.length > 1) {
|
|
145
|
+
try {
|
|
146
|
+
path = decodeURIComponent(rawSegments.slice(1).join('/'));
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return path ? { source: 'file', path, selector: readSearchString(params, 'selector', 'jsonPointer', 'field') } : null;
|
|
153
|
+
}
|
|
154
|
+
if (source === 'exec') {
|
|
155
|
+
const command = rest[0] ?? readSearchString(params, 'command', 'cmd');
|
|
156
|
+
if (!command)
|
|
157
|
+
return null;
|
|
158
|
+
const args = [...rest.slice(1), ...params.getAll('arg').filter((entry) => entry.length > 0)];
|
|
159
|
+
return {
|
|
160
|
+
source: 'exec',
|
|
161
|
+
command,
|
|
162
|
+
args: args.length > 0 ? args : undefined,
|
|
163
|
+
stdin: readSearchString(params, 'stdin'),
|
|
164
|
+
timeoutMs: readSearchNumber(params, 'timeoutMs'),
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
if (source === '1password' || source === 'onepassword') {
|
|
168
|
+
const ref = readSearchString(params, 'ref', 'uri');
|
|
169
|
+
const vault = readSearchString(params, 'vault') ?? rest[0];
|
|
170
|
+
const item = readSearchString(params, 'item', 'id') ?? rest[1];
|
|
171
|
+
const field = readSearchString(params, 'field') ?? rest[2];
|
|
172
|
+
if (!ref && (!vault || !item || !field))
|
|
173
|
+
return null;
|
|
174
|
+
return {
|
|
175
|
+
source,
|
|
176
|
+
ref,
|
|
177
|
+
vault,
|
|
178
|
+
item,
|
|
179
|
+
field,
|
|
180
|
+
account: readSearchString(params, 'account'),
|
|
181
|
+
cli: readSearchString(params, 'cli'),
|
|
182
|
+
timeoutMs: readSearchNumber(params, 'timeoutMs'),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
if (source === 'bitwarden' || source === 'vaultwarden') {
|
|
186
|
+
const item = rest[0] ?? readSearchString(params, 'item', 'id', 'name');
|
|
187
|
+
if (!item)
|
|
188
|
+
return null;
|
|
189
|
+
return {
|
|
190
|
+
source,
|
|
191
|
+
item,
|
|
192
|
+
field: rest[1] ?? readSearchString(params, 'field') ?? 'password',
|
|
193
|
+
customField: readSearchString(params, 'customField'),
|
|
194
|
+
cli: readSearchString(params, 'cli'),
|
|
195
|
+
appDataDir: readSearchString(params, 'appDataDir'),
|
|
196
|
+
sessionEnv: readSearchString(params, 'sessionEnv'),
|
|
197
|
+
server: readSearchString(params, 'server', 'serverUrl'),
|
|
198
|
+
serverEnv: readSearchString(params, 'serverEnv'),
|
|
199
|
+
validateServer: readSearchBoolean(params, 'validateServer'),
|
|
200
|
+
syncBeforeRead: readSearchBoolean(params, 'syncBeforeRead'),
|
|
201
|
+
timeoutMs: readSearchNumber(params, 'timeoutMs'),
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
if (source === 'bitwarden-secrets-manager' || source === 'bws') {
|
|
205
|
+
const id = rest[0] ?? readSearchString(params, 'id', 'secretId', 'secret');
|
|
206
|
+
if (!id)
|
|
207
|
+
return null;
|
|
208
|
+
return {
|
|
209
|
+
source,
|
|
210
|
+
id,
|
|
211
|
+
field: rest[1] ?? readSearchString(params, 'field') ?? 'value',
|
|
212
|
+
cli: readSearchString(params, 'cli'),
|
|
213
|
+
accessTokenEnv: readSearchString(params, 'accessTokenEnv'),
|
|
214
|
+
profile: readSearchString(params, 'profile'),
|
|
215
|
+
configFile: readSearchString(params, 'configFile'),
|
|
216
|
+
serverUrl: readSearchString(params, 'serverUrl'),
|
|
217
|
+
timeoutMs: readSearchNumber(params, 'timeoutMs'),
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
90
222
|
function parseProviderUri(value) {
|
|
91
223
|
if (value.startsWith('op://')) {
|
|
92
224
|
return { source: '1password', ref: value };
|
|
93
225
|
}
|
|
94
|
-
if (!value.startsWith(
|
|
226
|
+
if (!value.startsWith(GOODVIBES_URI_PREFIX) && !value.startsWith('bw://') && !value.startsWith('vaultwarden://') && !value.startsWith('bws://')) {
|
|
95
227
|
return null;
|
|
96
228
|
}
|
|
97
229
|
let url;
|
|
@@ -101,6 +233,9 @@ function parseProviderUri(value) {
|
|
|
101
233
|
catch {
|
|
102
234
|
return null;
|
|
103
235
|
}
|
|
236
|
+
if (url.protocol === GOODVIBES_URI_PROTOCOL) {
|
|
237
|
+
return parseGoodVibesSecretsUri(url);
|
|
238
|
+
}
|
|
104
239
|
const host = decodeURIComponent(url.hostname);
|
|
105
240
|
const segments = url.pathname.split('/').filter(Boolean).map((segment) => decodeURIComponent(segment));
|
|
106
241
|
if (url.protocol === 'bw:') {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
let version = '0.
|
|
3
|
+
let version = '0.24.0';
|
|
4
4
|
try {
|
|
5
5
|
const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
|
|
6
6
|
version = pkg.version ?? version;
|