@mesadev/sdk 0.42.1 → 0.44.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/dist/api/access-token.d.ts +57 -24
- package/dist/api/access-token.d.ts.map +1 -1
- package/dist/api/access-token.js +137 -19
- package/dist/api/access-token.js.map +1 -1
- package/dist/api/client.d.ts +3 -5
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +4 -19
- package/dist/api/client.js.map +1 -1
- package/dist/api/credentials.d.ts +4 -0
- package/dist/api/credentials.d.ts.map +1 -0
- package/dist/api/credentials.js +8 -0
- package/dist/api/credentials.js.map +1 -0
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/resources.d.ts +61 -29
- package/dist/api/resources.d.ts.map +1 -1
- package/dist/api/resources.js +47 -14
- package/dist/api/resources.js.map +1 -1
- package/dist/api/signing-key.d.ts +15 -0
- package/dist/api/signing-key.d.ts.map +1 -0
- package/dist/api/signing-key.js +38 -0
- package/dist/api/signing-key.js.map +1 -0
- package/dist/fs/index.d.ts +2 -1
- package/dist/fs/index.d.ts.map +1 -1
- package/dist/fs/index.js +1 -0
- package/dist/fs/index.js.map +1 -1
- package/dist/fs/layout.d.ts +87 -0
- package/dist/fs/layout.d.ts.map +1 -0
- package/dist/fs/layout.js +78 -0
- package/dist/fs/layout.js.map +1 -0
- package/dist/fs/mesa-file-system.d.ts +41 -2
- package/dist/fs/mesa-file-system.d.ts.map +1 -1
- package/dist/fs/mesa-file-system.js +23 -5
- package/dist/fs/mesa-file-system.js.map +1 -1
- package/dist/fs/native-loader.d.ts +8 -1
- package/dist/fs/native-loader.d.ts.map +1 -1
- package/dist/fs/native-loader.js +26 -4
- package/dist/fs/native-loader.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/errors.d.ts +1 -1
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +5 -2
- package/dist/lib/errors.js.map +1 -1
- package/dist/mesa.d.ts +163 -23
- package/dist/mesa.d.ts.map +1 -1
- package/dist/mesa.js +302 -45
- package/dist/mesa.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -3
package/dist/mesa.d.ts
CHANGED
|
@@ -1,13 +1,70 @@
|
|
|
1
1
|
import type { WhoamiResponse } from '@mesadev/rest';
|
|
2
|
-
import {
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { type ApiResources, type FixedTokenBookmarksMergeInput, type FixedTokenChangesCreateInput, type FixedTokenChangesPatchInput, type PrivateKeyBookmarksMergeInput, type PrivateKeyChangesCreateInput, type PrivateKeyChangesPatchInput, type TokensCreateLegacyInput, type TokensCreatePrivateKeyInput, type TokensCreateResponse } from './api/resources.js';
|
|
4
|
+
import { type Layout, type LayoutSpec } from './fs/layout.js';
|
|
3
5
|
import { MesaFileSystem, type RepoConfig, type TelemetryConfig } from './fs/mesa-file-system.js';
|
|
6
|
+
declare const authSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
7
|
+
privateKey: z.ZodString;
|
|
8
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
9
|
+
accessToken: z.ZodString;
|
|
10
|
+
}, z.core.$strict>]>;
|
|
11
|
+
export type MesaAuth = z.infer<typeof authSchema>;
|
|
12
|
+
type PrivateKeyAuthors = NonNullable<TokensCreatePrivateKeyInput['authors']>;
|
|
13
|
+
type PrivateKeyMesaOptions = {
|
|
14
|
+
privateKey: string;
|
|
15
|
+
} | {
|
|
16
|
+
auth: {
|
|
17
|
+
privateKey: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
type AccessTokenMesaOptions = {
|
|
21
|
+
auth: {
|
|
22
|
+
accessToken: string;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
type ApiKeyMesaOptions = {
|
|
26
|
+
apiKey: string;
|
|
27
|
+
};
|
|
28
|
+
type CredentialSpecific<TOptions extends MesaOptions, TPrivateKey, TAccessToken, TApiKey, TDynamic> = [
|
|
29
|
+
TOptions
|
|
30
|
+
] extends [PrivateKeyMesaOptions] ? TPrivateKey : [TOptions] extends [AccessTokenMesaOptions] ? TAccessToken : [TOptions] extends [ApiKeyMesaOptions] ? TApiKey : TDynamic;
|
|
31
|
+
type PrivateKeyTokens = {
|
|
32
|
+
create: (input: TokensCreatePrivateKeyInput) => Promise<TokensCreateResponse>;
|
|
33
|
+
};
|
|
34
|
+
type ApiKeyTokens = {
|
|
35
|
+
create: (input?: TokensCreateLegacyInput) => Promise<TokensCreateResponse>;
|
|
36
|
+
};
|
|
37
|
+
type MesaTokens<TOptions extends MesaOptions> = CredentialSpecific<TOptions, PrivateKeyTokens, Omit<ApiResources['tokens'], 'create'>, ApiKeyTokens, ApiResources['tokens']>;
|
|
38
|
+
type PrivateKeyBookmarks = Omit<ApiResources['bookmarks'], 'merge'> & {
|
|
39
|
+
merge: (input: PrivateKeyBookmarksMergeInput) => ReturnType<ApiResources['bookmarks']['merge']>;
|
|
40
|
+
};
|
|
41
|
+
type FixedTokenBookmarks = Omit<ApiResources['bookmarks'], 'merge'> & {
|
|
42
|
+
merge: (input: FixedTokenBookmarksMergeInput) => ReturnType<ApiResources['bookmarks']['merge']>;
|
|
43
|
+
};
|
|
44
|
+
type DynamicBookmarks = Omit<ApiResources['bookmarks'], 'merge'> & {
|
|
45
|
+
merge: ApiResources['bookmarks']['merge'] & PrivateKeyBookmarks['merge'];
|
|
46
|
+
};
|
|
47
|
+
type MesaBookmarks<TOptions extends MesaOptions> = CredentialSpecific<TOptions, PrivateKeyBookmarks, FixedTokenBookmarks, ApiResources['bookmarks'], DynamicBookmarks>;
|
|
48
|
+
type PrivateKeyChanges = Omit<ApiResources['changes'], 'create' | 'patch'> & {
|
|
49
|
+
create: (input: PrivateKeyChangesCreateInput) => ReturnType<ApiResources['changes']['create']>;
|
|
50
|
+
patch: (input: PrivateKeyChangesPatchInput) => ReturnType<ApiResources['changes']['patch']>;
|
|
51
|
+
};
|
|
52
|
+
type FixedTokenChanges = Omit<ApiResources['changes'], 'create' | 'patch'> & {
|
|
53
|
+
create: (input: FixedTokenChangesCreateInput) => ReturnType<ApiResources['changes']['create']>;
|
|
54
|
+
patch: (input: FixedTokenChangesPatchInput) => ReturnType<ApiResources['changes']['patch']>;
|
|
55
|
+
};
|
|
56
|
+
type DynamicChanges = Omit<ApiResources['changes'], 'create' | 'patch'> & {
|
|
57
|
+
create: ApiResources['changes']['create'] & PrivateKeyChanges['create'];
|
|
58
|
+
patch: ApiResources['changes']['patch'] & PrivateKeyChanges['patch'];
|
|
59
|
+
};
|
|
60
|
+
type MesaChanges<TOptions extends MesaOptions> = CredentialSpecific<TOptions, PrivateKeyChanges, FixedTokenChanges, ApiResources['changes'], DynamicChanges>;
|
|
4
61
|
export interface MesaOptions {
|
|
5
|
-
/**
|
|
6
|
-
* Long-lived API key (`mesa_...`). The client signs short-lived access tokens
|
|
7
|
-
* locally (no network round-trip) for filesystem mounts and requests. Required
|
|
8
|
-
* unless `MESA_API_KEY` is set in the environment.
|
|
9
|
-
*/
|
|
62
|
+
/** Long-lived API key (`mesa_...`) used directly for requests and to sign short-lived access tokens locally. */
|
|
10
63
|
apiKey?: string;
|
|
64
|
+
/** Organization-root Ed25519 private key used to sign REST request JWTs and `tokens.create()` locally. */
|
|
65
|
+
privateKey?: string;
|
|
66
|
+
/** Grouped private-key or signing-key access-token authentication. */
|
|
67
|
+
auth?: MesaAuth;
|
|
11
68
|
apiUrl?: string;
|
|
12
69
|
vcsUrl?: string;
|
|
13
70
|
org?: string;
|
|
@@ -15,8 +72,7 @@ export interface MesaOptions {
|
|
|
15
72
|
userAgent?: string;
|
|
16
73
|
webhookSecret?: string;
|
|
17
74
|
}
|
|
18
|
-
|
|
19
|
-
repos: RepoConfig[];
|
|
75
|
+
interface FsMountBaseOptions {
|
|
20
76
|
cache?: {
|
|
21
77
|
diskCache?: {
|
|
22
78
|
path: string;
|
|
@@ -25,31 +81,106 @@ export interface FsMountOptions {
|
|
|
25
81
|
};
|
|
26
82
|
telemetry?: TelemetryConfig;
|
|
27
83
|
/**
|
|
28
|
-
* Lifetime of the mount, in seconds.
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
84
|
+
* Lifetime of the mount token, in seconds. API-key clients default to one
|
|
85
|
+
* hour and allow up to 24 hours. Private-key clients default to 15 minutes
|
|
86
|
+
* and allow up to four hours. There is no refresh; once the token expires,
|
|
87
|
+
* the mount fails closed.
|
|
32
88
|
*/
|
|
33
89
|
ttl?: number;
|
|
34
90
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Canonical mount profile: present exactly the listed repositories at their
|
|
93
|
+
* `/org/repo` paths — no custom namespace, no whole-org enumeration. Tokens
|
|
94
|
+
* are name-scoped and signed fully offline (no resolution round-trips
|
|
95
|
+
* before the mount), and per-repo `readOnly` is enforced by the daemon.
|
|
96
|
+
* Layouts mount through a definition instead: `mesa.fs({ layout }).mount()`.
|
|
97
|
+
*/
|
|
98
|
+
export interface FsMountReposOptions extends FsMountBaseOptions {
|
|
99
|
+
/** Repos to mount at their canonical `/org/repo` paths. */
|
|
100
|
+
repos: RepoConfig[];
|
|
101
|
+
layout?: never;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* A layout definition bundle produced by calling `mesa.fs({ layout, ttl })`:
|
|
105
|
+
* the prepared layout plus its scoped operations. The definition is the only
|
|
106
|
+
* way to mount a layout or mint its token; its `ttl` is the lifetime of
|
|
107
|
+
* every token minted from it, whether by `token()` or under the hood by
|
|
108
|
+
* `mount()`.
|
|
109
|
+
*/
|
|
110
|
+
export interface FsLayoutDefinition {
|
|
111
|
+
/** The prepared layout, built from the raw path map the definition was given. */
|
|
112
|
+
layout(): Layout;
|
|
113
|
+
/**
|
|
114
|
+
* Mount this layout as the complete namespace, accepting the non-token
|
|
115
|
+
* mount options (`cache`, `telemetry`). The mount's token lifetime is the
|
|
116
|
+
* definition's `ttl`.
|
|
117
|
+
*/
|
|
118
|
+
mount(options?: Omit<FsMountReposOptions, 'repos' | 'layout' | 'ttl'>): Promise<MesaFileSystem>;
|
|
119
|
+
/**
|
|
120
|
+
* Mint the layout-scoped, least-privilege access token: repositories
|
|
121
|
+
* collected from every declaration and scoped by name, `['read']` when
|
|
122
|
+
* every mode is `'ro'`, `['read', 'write']` otherwise, with the
|
|
123
|
+
* definition's `ttl`.
|
|
124
|
+
*/
|
|
125
|
+
token(): Promise<TokensCreateResponse>;
|
|
126
|
+
}
|
|
127
|
+
type AccessTokenFsLayoutDefinition = Omit<FsLayoutDefinition, 'token'>;
|
|
128
|
+
type PrivateKeyFsMountReposOptions = FsMountReposOptions & {
|
|
129
|
+
authors: PrivateKeyAuthors;
|
|
130
|
+
};
|
|
131
|
+
type RuntimeFsMountReposOptions = FsMountReposOptions & {
|
|
132
|
+
authors?: PrivateKeyAuthors;
|
|
133
|
+
};
|
|
134
|
+
type PrivateKeyFsLayoutOptions = {
|
|
135
|
+
layout: LayoutSpec;
|
|
136
|
+
ttl?: number;
|
|
137
|
+
authors: PrivateKeyAuthors;
|
|
138
|
+
};
|
|
139
|
+
type RuntimeFsLayoutOptions = {
|
|
140
|
+
layout: LayoutSpec;
|
|
141
|
+
ttl?: number;
|
|
142
|
+
authors?: PrivateKeyAuthors;
|
|
143
|
+
};
|
|
144
|
+
type AccessTokenFsLayoutOptions = {
|
|
145
|
+
layout: LayoutSpec;
|
|
146
|
+
authors?: never;
|
|
147
|
+
ttl?: never;
|
|
148
|
+
};
|
|
149
|
+
type MesaFs<TOptions extends MesaOptions> = CredentialSpecific<TOptions, {
|
|
150
|
+
(options: PrivateKeyFsLayoutOptions): FsLayoutDefinition;
|
|
151
|
+
mount: (options: PrivateKeyFsMountReposOptions) => Promise<MesaFileSystem>;
|
|
152
|
+
}, {
|
|
153
|
+
(options: AccessTokenFsLayoutOptions): AccessTokenFsLayoutDefinition;
|
|
154
|
+
mount: (options: Omit<FsMountReposOptions, 'ttl'>) => Promise<MesaFileSystem>;
|
|
155
|
+
}, {
|
|
156
|
+
(options: {
|
|
157
|
+
layout: LayoutSpec;
|
|
158
|
+
ttl?: number;
|
|
159
|
+
authors?: never;
|
|
160
|
+
}): FsLayoutDefinition;
|
|
161
|
+
mount: (options: FsMountReposOptions & {
|
|
162
|
+
authors?: never;
|
|
163
|
+
}) => Promise<MesaFileSystem>;
|
|
164
|
+
}, {
|
|
165
|
+
(options: RuntimeFsLayoutOptions): FsLayoutDefinition;
|
|
166
|
+
mount: (options: RuntimeFsMountReposOptions) => Promise<MesaFileSystem>;
|
|
167
|
+
}>;
|
|
168
|
+
export declare class Mesa<const TOptions extends MesaOptions = MesaOptions> {
|
|
169
|
+
/** The API key this client was constructed with, if it is an API-key client. */
|
|
170
|
+
readonly apiKey: string | undefined;
|
|
38
171
|
readonly apiUrl: string;
|
|
39
172
|
readonly vcsUrl: string;
|
|
40
173
|
readonly org: ApiResources['org'];
|
|
41
|
-
readonly tokens:
|
|
174
|
+
readonly tokens: MesaTokens<TOptions>;
|
|
42
175
|
readonly apiKeys: ApiResources['apiKeys'];
|
|
43
176
|
readonly repos: ApiResources['repos'];
|
|
44
177
|
readonly content: ApiResources['content'];
|
|
45
|
-
readonly bookmarks:
|
|
46
|
-
readonly changes:
|
|
178
|
+
readonly bookmarks: MesaBookmarks<TOptions>;
|
|
179
|
+
readonly changes: MesaChanges<TOptions>;
|
|
47
180
|
readonly diffs: ApiResources['diffs'];
|
|
48
181
|
readonly webhookTargets: ApiResources['webhookTargets'];
|
|
49
182
|
readonly webhooks: ApiResources['webhooks'];
|
|
50
|
-
readonly fs:
|
|
51
|
-
mount: (options: FsMountOptions) => Promise<MesaFileSystem>;
|
|
52
|
-
};
|
|
183
|
+
readonly fs: MesaFs<TOptions>;
|
|
53
184
|
private readonly credential;
|
|
54
185
|
private readonly restClient;
|
|
55
186
|
private readonly orgResolutionPromise;
|
|
@@ -58,8 +189,16 @@ export declare class Mesa {
|
|
|
58
189
|
private cachedWhoAmI;
|
|
59
190
|
private cachedKeyId;
|
|
60
191
|
private keyIdResolutionPromise;
|
|
61
|
-
constructor(options?:
|
|
192
|
+
constructor(options?: TOptions);
|
|
62
193
|
private createFs;
|
|
194
|
+
/**
|
|
195
|
+
* Derive the least-privilege token request for a layout: its repositories
|
|
196
|
+
* collected from every declaration and scoped by name (signed offline, no
|
|
197
|
+
* repository lookup), plus the narrowest scopes the declared modes allow.
|
|
198
|
+
* Shared by the definition's `mount()` and `token()` so the derivation
|
|
199
|
+
* exists exactly once.
|
|
200
|
+
*/
|
|
201
|
+
private deriveLayoutTokenRequest;
|
|
63
202
|
resolveOrg(org?: string): Promise<string>;
|
|
64
203
|
whoami(): Promise<WhoamiResponse>;
|
|
65
204
|
private fetchWhoAmI;
|
|
@@ -70,8 +209,9 @@ export declare class Mesa {
|
|
|
70
209
|
* of the client.
|
|
71
210
|
*/
|
|
72
211
|
private resolveKeyId;
|
|
73
|
-
/** Sign an access token locally from the
|
|
212
|
+
/** Sign an access token locally from the credential this client holds. */
|
|
74
213
|
private signToken;
|
|
75
214
|
private resolveOrgFromWhoAmI;
|
|
76
215
|
}
|
|
216
|
+
export {};
|
|
77
217
|
//# sourceMappingURL=mesa.d.ts.map
|
package/dist/mesa.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesa.d.ts","sourceRoot":"","sources":["../src/mesa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"mesa.d.ts","sourceRoot":"","sources":["../src/mesa.ts"],"names":[],"mappings":"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"}
|