@zincapp/znvault-cli 4.24.4 → 4.24.6
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/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +41 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +3 -2
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/profile-api-key.d.ts +10 -0
- package/dist/commands/profile-api-key.d.ts.map +1 -0
- package/dist/commands/profile-api-key.js +97 -0
- package/dist/commands/profile-api-key.js.map +1 -0
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/client/http.d.ts +5 -1
- package/dist/lib/client/http.d.ts.map +1 -1
- package/dist/lib/client/http.js +59 -1
- package/dist/lib/client/http.js.map +1 -1
- package/dist/lib/client/types.d.ts +1 -0
- package/dist/lib/client/types.d.ts.map +1 -1
- package/dist/lib/config/apikey.d.ts.map +1 -1
- package/dist/lib/config/apikey.js +18 -13
- package/dist/lib/config/apikey.js.map +1 -1
- package/dist/lib/config/credentials.d.ts.map +1 -1
- package/dist/lib/config/credentials.js +12 -7
- package/dist/lib/config/credentials.js.map +1 -1
- package/dist/lib/config/index.d.ts +1 -1
- package/dist/lib/config/index.d.ts.map +1 -1
- package/dist/lib/config/index.js +1 -1
- package/dist/lib/config/index.js.map +1 -1
- package/dist/lib/config/migration.d.ts.map +1 -1
- package/dist/lib/config/migration.js +24 -22
- package/dist/lib/config/migration.js.map +1 -1
- package/dist/lib/config/plugins.d.ts.map +1 -1
- package/dist/lib/config/plugins.js +35 -29
- package/dist/lib/config/plugins.js.map +1 -1
- package/dist/lib/config/profile-lock.d.ts +7 -0
- package/dist/lib/config/profile-lock.d.ts.map +1 -0
- package/dist/lib/config/profile-lock.js +65 -0
- package/dist/lib/config/profile-lock.js.map +1 -0
- package/dist/lib/config/profile.d.ts +5 -0
- package/dist/lib/config/profile.d.ts.map +1 -1
- package/dist/lib/config/profile.js +122 -64
- package/dist/lib/config/profile.js.map +1 -1
- package/dist/lib/config/store.d.ts +6 -0
- package/dist/lib/config/store.d.ts.map +1 -1
- package/dist/lib/config/store.js +49 -16
- package/dist/lib/config/store.js.map +1 -1
- package/dist/lib/config.d.ts +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +1 -1
- package/dist/lib/config.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,10 +2,30 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Profile management operations
|
|
4
4
|
*/
|
|
5
|
-
import { store, getRuntimeProfile } from './store.js';
|
|
5
|
+
import { store, getRuntimeProfile, withStoreMutation } from './store.js';
|
|
6
6
|
import { ensureMigrated } from './migration.js';
|
|
7
7
|
import { CONFIG_DEFAULTS, DEFAULT_PROFILE } from './types.js';
|
|
8
8
|
import { getCachedProfile, cacheProfile, invalidateProfileCache } from './cache.js';
|
|
9
|
+
function preserveAuthentication(current, proposed) {
|
|
10
|
+
const next = { ...proposed };
|
|
11
|
+
if (current?.credentials !== undefined)
|
|
12
|
+
next.credentials = current.credentials;
|
|
13
|
+
else
|
|
14
|
+
delete next.credentials;
|
|
15
|
+
if (current?.apiKey !== undefined)
|
|
16
|
+
next.apiKey = current.apiKey;
|
|
17
|
+
else
|
|
18
|
+
delete next.apiKey;
|
|
19
|
+
if (current?.apiKeyId !== undefined)
|
|
20
|
+
next.apiKeyId = current.apiKeyId;
|
|
21
|
+
else
|
|
22
|
+
delete next.apiKeyId;
|
|
23
|
+
if (current?.apiKeyName !== undefined)
|
|
24
|
+
next.apiKeyName = current.apiKeyName;
|
|
25
|
+
else
|
|
26
|
+
delete next.apiKeyName;
|
|
27
|
+
return next;
|
|
28
|
+
}
|
|
9
29
|
/**
|
|
10
30
|
* Get the current active profile name
|
|
11
31
|
*/
|
|
@@ -39,11 +59,37 @@ export function getCurrentProfile() {
|
|
|
39
59
|
* Save profile data (invalidates cache)
|
|
40
60
|
*/
|
|
41
61
|
export function saveProfile(profileName, profile) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
62
|
+
withStoreMutation(() => {
|
|
63
|
+
const profiles = store.get('profiles');
|
|
64
|
+
profiles[profileName] = preserveAuthentication(profiles[profileName], profile);
|
|
65
|
+
store.set('profiles', profiles);
|
|
66
|
+
invalidateProfileCache(profileName);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Atomically mutate authentication fields for exactly one existing profile.
|
|
71
|
+
* Generic profile writes preserve these fields and cannot clobber them.
|
|
72
|
+
*/
|
|
73
|
+
export function mutateProfileAuthentication(profileName, mutation) {
|
|
74
|
+
return withStoreMutation(() => {
|
|
75
|
+
const profiles = store.get('profiles');
|
|
76
|
+
const hasProfile = Object.prototype.hasOwnProperty.call(profiles, profileName);
|
|
77
|
+
if (!hasProfile && profileName !== DEFAULT_PROFILE) {
|
|
78
|
+
throw new Error(`Profile '${profileName}' not found`);
|
|
79
|
+
}
|
|
80
|
+
const current = hasProfile
|
|
81
|
+
? profiles[profileName]
|
|
82
|
+
: {
|
|
83
|
+
url: CONFIG_DEFAULTS.url,
|
|
84
|
+
insecure: CONFIG_DEFAULTS.insecure,
|
|
85
|
+
timeout: CONFIG_DEFAULTS.timeout,
|
|
86
|
+
};
|
|
87
|
+
const updated = mutation({ ...current });
|
|
88
|
+
profiles[profileName] = updated;
|
|
89
|
+
store.set('profiles', profiles);
|
|
90
|
+
invalidateProfileCache(profileName);
|
|
91
|
+
return updated;
|
|
92
|
+
});
|
|
47
93
|
}
|
|
48
94
|
/**
|
|
49
95
|
* List all profiles
|
|
@@ -85,34 +131,39 @@ export function profileExists(name) {
|
|
|
85
131
|
* Create a new profile
|
|
86
132
|
*/
|
|
87
133
|
export function createProfile(name, options) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
let newProfile;
|
|
93
|
-
if (options.copyFrom) {
|
|
94
|
-
if (!(options.copyFrom in profiles)) {
|
|
95
|
-
throw new Error(`Source profile '${options.copyFrom}' not found`);
|
|
134
|
+
withStoreMutation(() => {
|
|
135
|
+
const profiles = store.get('profiles');
|
|
136
|
+
if (name in profiles) {
|
|
137
|
+
throw new Error(`Profile '${name}' already exists`);
|
|
96
138
|
}
|
|
97
|
-
newProfile
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
139
|
+
let newProfile;
|
|
140
|
+
if (options.copyFrom) {
|
|
141
|
+
if (!(options.copyFrom in profiles)) {
|
|
142
|
+
throw new Error(`Source profile '${options.copyFrom}' not found`);
|
|
143
|
+
}
|
|
144
|
+
newProfile = { ...profiles[options.copyFrom] };
|
|
145
|
+
delete newProfile.credentials;
|
|
146
|
+
delete newProfile.apiKey;
|
|
147
|
+
delete newProfile.apiKeyId;
|
|
148
|
+
delete newProfile.apiKeyName;
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
newProfile = {
|
|
152
|
+
url: options.url ?? CONFIG_DEFAULTS.url,
|
|
153
|
+
insecure: options.insecure ?? CONFIG_DEFAULTS.insecure,
|
|
154
|
+
timeout: CONFIG_DEFAULTS.timeout,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
if (options.url) {
|
|
158
|
+
newProfile.url = options.url;
|
|
159
|
+
}
|
|
160
|
+
if (options.insecure !== undefined) {
|
|
161
|
+
newProfile.insecure = options.insecure;
|
|
162
|
+
}
|
|
163
|
+
profiles[name] = newProfile;
|
|
164
|
+
store.set('profiles', profiles);
|
|
165
|
+
invalidateProfileCache(name);
|
|
166
|
+
});
|
|
116
167
|
}
|
|
117
168
|
/**
|
|
118
169
|
* Delete a profile
|
|
@@ -121,27 +172,31 @@ export function deleteProfile(name) {
|
|
|
121
172
|
if (name === DEFAULT_PROFILE) {
|
|
122
173
|
throw new Error(`Cannot delete the '${DEFAULT_PROFILE}' profile`);
|
|
123
174
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
store.
|
|
134
|
-
|
|
175
|
+
withStoreMutation(() => {
|
|
176
|
+
const profiles = store.get('profiles');
|
|
177
|
+
if (!(name in profiles)) {
|
|
178
|
+
throw new Error(`Profile '${name}' not found`);
|
|
179
|
+
}
|
|
180
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
181
|
+
delete profiles[name];
|
|
182
|
+
store.set('profiles', profiles);
|
|
183
|
+
invalidateProfileCache(name);
|
|
184
|
+
if (store.get('activeProfile') === name) {
|
|
185
|
+
store.set('activeProfile', DEFAULT_PROFILE);
|
|
186
|
+
}
|
|
187
|
+
});
|
|
135
188
|
}
|
|
136
189
|
/**
|
|
137
190
|
* Switch active profile
|
|
138
191
|
*/
|
|
139
192
|
export function switchProfile(name) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
193
|
+
withStoreMutation(() => {
|
|
194
|
+
const profiles = store.get('profiles');
|
|
195
|
+
if (!(name in profiles)) {
|
|
196
|
+
throw new Error(`Profile '${name}' not found`);
|
|
197
|
+
}
|
|
198
|
+
store.set('activeProfile', name);
|
|
199
|
+
});
|
|
145
200
|
}
|
|
146
201
|
/**
|
|
147
202
|
* Get a specific profile
|
|
@@ -157,20 +212,23 @@ export function renameProfile(oldName, newName) {
|
|
|
157
212
|
if (oldName === DEFAULT_PROFILE) {
|
|
158
213
|
throw new Error(`Cannot rename the '${DEFAULT_PROFILE}' profile`);
|
|
159
214
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
215
|
+
withStoreMutation(() => {
|
|
216
|
+
const profiles = store.get('profiles');
|
|
217
|
+
if (!(oldName in profiles)) {
|
|
218
|
+
throw new Error(`Profile '${oldName}' not found`);
|
|
219
|
+
}
|
|
220
|
+
if (newName in profiles) {
|
|
221
|
+
throw new Error(`Profile '${newName}' already exists`);
|
|
222
|
+
}
|
|
223
|
+
profiles[newName] = profiles[oldName];
|
|
224
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
225
|
+
delete profiles[oldName];
|
|
226
|
+
store.set('profiles', profiles);
|
|
227
|
+
invalidateProfileCache(oldName);
|
|
228
|
+
invalidateProfileCache(newName);
|
|
229
|
+
if (store.get('activeProfile') === oldName) {
|
|
230
|
+
store.set('activeProfile', newName);
|
|
231
|
+
}
|
|
232
|
+
});
|
|
175
233
|
}
|
|
176
234
|
//# sourceMappingURL=profile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/lib/config/profile.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAElC;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/lib/config/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import Conf from 'conf';
|
|
11
11
|
import type { ConfigStore } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Run a complete read-modify-write transaction against the shared config
|
|
14
|
+
* file. Every mutation must use this authority so another CLI process cannot
|
|
15
|
+
* rewrite a stale whole-file snapshot over profile authentication.
|
|
16
|
+
*/
|
|
17
|
+
export declare function withStoreMutation<T>(operation: () => T): T;
|
|
12
18
|
/**
|
|
13
19
|
* Store proxy that lazily initializes the underlying Conf instance.
|
|
14
20
|
* This ensures mocks are applied before the real Conf is created.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/lib/config/store.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/lib/config/store.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAmD9C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAG1D;AAUD;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,IAAI,CAAC,WAAW,CAsBlC,CAAC;AAKH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
|
package/dist/lib/config/store.js
CHANGED
|
@@ -10,32 +10,58 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import Conf from 'conf';
|
|
12
12
|
import { DEFAULT_PROFILE } from './types.js';
|
|
13
|
+
import { withProfileMutationLock } from './profile-lock.js';
|
|
13
14
|
// Lazy-initialized store instance
|
|
14
15
|
let _store = null;
|
|
16
|
+
function storeOptions(includeDefaults) {
|
|
17
|
+
const configDir = process.env.ZNVAULT_CONFIG_DIR;
|
|
18
|
+
return {
|
|
19
|
+
projectName: 'znvault',
|
|
20
|
+
configFileMode: 0o600,
|
|
21
|
+
...(configDir ? { cwd: configDir } : {}),
|
|
22
|
+
...(includeDefaults
|
|
23
|
+
? {
|
|
24
|
+
defaults: {
|
|
25
|
+
activeProfile: DEFAULT_PROFILE,
|
|
26
|
+
profiles: {},
|
|
27
|
+
plugins: [],
|
|
28
|
+
},
|
|
29
|
+
}
|
|
30
|
+
: {}),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function resolveConfigPath() {
|
|
34
|
+
// A Conf instance without defaults only resolves/reads the path; it cannot
|
|
35
|
+
// create or rewrite the JSON file during construction.
|
|
36
|
+
return new Conf(storeOptions(false)).path;
|
|
37
|
+
}
|
|
15
38
|
/**
|
|
16
39
|
* Get the config store instance (lazy initialization).
|
|
17
40
|
* This allows mocks to be set up before the store is created.
|
|
18
41
|
*/
|
|
19
42
|
function getStoreInstance() {
|
|
20
43
|
if (!_store) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
_store = new Conf({
|
|
24
|
-
projectName: 'znvault',
|
|
25
|
-
// Profiles contain rotating access/refresh tokens. Preserve 0600 on
|
|
26
|
-
// every atomic rewrite instead of inheriting a permissive process umask.
|
|
27
|
-
configFileMode: 0o600,
|
|
28
|
-
// Use custom config directory if specified (for test isolation)
|
|
29
|
-
...(configDir ? { cwd: configDir } : {}),
|
|
30
|
-
defaults: {
|
|
31
|
-
activeProfile: DEFAULT_PROFILE,
|
|
32
|
-
profiles: {},
|
|
33
|
-
plugins: [],
|
|
34
|
-
},
|
|
35
|
-
});
|
|
44
|
+
const configPath = resolveConfigPath();
|
|
45
|
+
_store = withProfileMutationLock(configPath, () => new Conf(storeOptions(true)));
|
|
36
46
|
}
|
|
37
47
|
return _store;
|
|
38
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Run a complete read-modify-write transaction against the shared config
|
|
51
|
+
* file. Every mutation must use this authority so another CLI process cannot
|
|
52
|
+
* rewrite a stale whole-file snapshot over profile authentication.
|
|
53
|
+
*/
|
|
54
|
+
export function withStoreMutation(operation) {
|
|
55
|
+
const instance = getStoreInstance();
|
|
56
|
+
return withProfileMutationLock(instance.path, operation);
|
|
57
|
+
}
|
|
58
|
+
const MUTATING_STORE_METHODS = new Set([
|
|
59
|
+
'set',
|
|
60
|
+
'delete',
|
|
61
|
+
'clear',
|
|
62
|
+
'reset',
|
|
63
|
+
'appendToArray',
|
|
64
|
+
]);
|
|
39
65
|
/**
|
|
40
66
|
* Store proxy that lazily initializes the underlying Conf instance.
|
|
41
67
|
* This ensures mocks are applied before the real Conf is created.
|
|
@@ -46,11 +72,18 @@ export const store = new Proxy({}, {
|
|
|
46
72
|
// eslint-disable-next-line @typescript-eslint/unbound-method -- the very next lines bind any function to `instance` before returning it; that binding is this proxy's purpose
|
|
47
73
|
const value = instance[prop];
|
|
48
74
|
if (typeof value === 'function') {
|
|
49
|
-
|
|
75
|
+
const bound = value.bind(instance);
|
|
76
|
+
if (MUTATING_STORE_METHODS.has(prop)) {
|
|
77
|
+
return (...args) => withStoreMutation(() => bound(...args));
|
|
78
|
+
}
|
|
79
|
+
return bound;
|
|
50
80
|
}
|
|
51
81
|
return value;
|
|
52
82
|
},
|
|
53
83
|
set(_target, prop, value) {
|
|
84
|
+
if (prop === 'store') {
|
|
85
|
+
throw new Error('Direct CLI config store replacement is forbidden');
|
|
86
|
+
}
|
|
54
87
|
const instance = getStoreInstance();
|
|
55
88
|
instance[prop] = value;
|
|
56
89
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/lib/config/store.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC;;;;;;;;GAQG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/lib/config/store.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* This file maintains backward compatibility by re-exporting from the
|
|
5
5
|
* modularized config/ directory structure.
|
|
6
6
|
*/
|
|
7
|
-
export { type Profile, type ConfigStore, type ProfileInfo, type ApiKeyInfo, CONFIG_DEFAULTS, DEFAULT_PROFILE, store, setRuntimeProfile, resetConfig, getConfigPath, ensureMigrated, resetMigrationState, invalidateProfileCache, invalidateAllProfileCaches, invalidateConfigCache, invalidateAllCaches, getCacheStats, getActiveProfileName, getCurrentProfile, saveProfile, listProfiles, listProfileNames, profileExists, createProfile, deleteProfile, switchProfile, getProfile, renameProfile, storeCredentials, clearCredentials, getCredentials, isTokenExpired, hasEnvCredentials, getEnvCredentials, decodeRefreshJti, writePendingRefreshMarker, decidePendingRefresh, logPendingRefreshRecovery, type MarkerDecision, hasApiKey, getApiKey, storeApiKey, getStoredApiKeyInfo, clearApiKey, getStoredApiKey, getPlugins, addPlugin, removePlugin, setPluginEnabled, clearPlugins, getConfig, getConfigValue, setConfigValue, getEffectiveUrl, getAllConfig, validateEnvironment, assertValidEnvironment, getValidatedEnvCredentials, getValidatedApiKey, getValidatedUrl, type ValidationResult, storeAutoUnsealSecret, getAutoUnsealSecret, hasAutoUnsealSecret, clearAutoUnsealSecret, generateTOTPCode, parseOTPAuthURI, } from './config/index.js';
|
|
7
|
+
export { type Profile, type ConfigStore, type ProfileInfo, type ApiKeyInfo, CONFIG_DEFAULTS, DEFAULT_PROFILE, store, setRuntimeProfile, resetConfig, getConfigPath, ensureMigrated, resetMigrationState, invalidateProfileCache, invalidateAllProfileCaches, invalidateConfigCache, invalidateAllCaches, getCacheStats, getActiveProfileName, getCurrentProfile, saveProfile, listProfiles, listProfileNames, profileExists, createProfile, deleteProfile, switchProfile, getProfile, renameProfile, mutateProfileAuthentication, storeCredentials, clearCredentials, getCredentials, isTokenExpired, hasEnvCredentials, getEnvCredentials, decodeRefreshJti, writePendingRefreshMarker, decidePendingRefresh, logPendingRefreshRecovery, type MarkerDecision, hasApiKey, getApiKey, storeApiKey, getStoredApiKeyInfo, clearApiKey, getStoredApiKey, getPlugins, addPlugin, removePlugin, setPluginEnabled, clearPlugins, getConfig, getConfigValue, setConfigValue, getEffectiveUrl, getAllConfig, validateEnvironment, assertValidEnvironment, getValidatedEnvCredentials, getValidatedApiKey, getValidatedUrl, type ValidationResult, storeAutoUnsealSecret, getAutoUnsealSecret, hasAutoUnsealSecret, clearAutoUnsealSecret, generateTOTPCode, parseOTPAuthURI, } from './config/index.js';
|
|
8
8
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,eAAe,EACf,eAAe,EAGf,KAAK,EACL,iBAAiB,EACjB,WAAW,EACX,aAAa,EAGb,cAAc,EACd,mBAAmB,EAGnB,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EAGb,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,eAAe,EACf,eAAe,EAGf,KAAK,EACL,iBAAiB,EACjB,WAAW,EACX,aAAa,EAGb,cAAc,EACd,mBAAmB,EAGnB,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EAGb,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,EACb,2BAA2B,EAG3B,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,yBAAyB,EACzB,KAAK,cAAc,EAGnB,SAAS,EACT,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,eAAe,EAGf,UAAU,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,YAAY,EAGZ,SAAS,EACT,cAAc,EACd,cAAc,EACd,eAAe,EACf,YAAY,EAGZ,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,KAAK,gBAAgB,EAGrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
|
package/dist/lib/config.js
CHANGED
|
@@ -13,7 +13,7 @@ ensureMigrated, resetMigrationState,
|
|
|
13
13
|
// Cache
|
|
14
14
|
invalidateProfileCache, invalidateAllProfileCaches, invalidateConfigCache, invalidateAllCaches, getCacheStats,
|
|
15
15
|
// Profile management
|
|
16
|
-
getActiveProfileName, getCurrentProfile, saveProfile, listProfiles, listProfileNames, profileExists, createProfile, deleteProfile, switchProfile, getProfile, renameProfile,
|
|
16
|
+
getActiveProfileName, getCurrentProfile, saveProfile, listProfiles, listProfileNames, profileExists, createProfile, deleteProfile, switchProfile, getProfile, renameProfile, mutateProfileAuthentication,
|
|
17
17
|
// Credentials
|
|
18
18
|
storeCredentials, clearCredentials, getCredentials, isTokenExpired, hasEnvCredentials, getEnvCredentials, decodeRefreshJti, writePendingRefreshMarker, decidePendingRefresh, logPendingRefreshRecovery,
|
|
19
19
|
// API key
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B;;;;;GAKG;AAEH,OAAO,EAML,eAAe,EACf,eAAe;AAEf,QAAQ;AACR,KAAK,EACL,iBAAiB,EACjB,WAAW,EACX,aAAa;AAEb,YAAY;AACZ,cAAc,EACd,mBAAmB;AAEnB,QAAQ;AACR,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,aAAa;AAEb,qBAAqB;AACrB,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B;;;;;GAKG;AAEH,OAAO,EAML,eAAe,EACf,eAAe;AAEf,QAAQ;AACR,KAAK,EACL,iBAAiB,EACjB,WAAW,EACX,aAAa;AAEb,YAAY;AACZ,cAAc,EACd,mBAAmB;AAEnB,QAAQ;AACR,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,aAAa;AAEb,qBAAqB;AACrB,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,EACb,2BAA2B;AAE3B,cAAc;AACd,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,yBAAyB;AAGzB,UAAU;AACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,eAAe;AAEf,UAAU;AACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,YAAY;AAEZ,yBAAyB;AACzB,SAAS,EACT,cAAc,EACd,cAAc,EACd,eAAe,EACf,YAAY;AAEZ,aAAa;AACb,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe;AAGf,cAAc;AACd,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
|