@mesadev/sdk 0.43.0 → 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.
Files changed (42) hide show
  1. package/dist/api/access-token.d.ts +8 -0
  2. package/dist/api/access-token.d.ts.map +1 -1
  3. package/dist/api/access-token.js +37 -1
  4. package/dist/api/access-token.js.map +1 -1
  5. package/dist/api/client.d.ts +1 -1
  6. package/dist/api/client.d.ts.map +1 -1
  7. package/dist/api/client.js +2 -2
  8. package/dist/api/client.js.map +1 -1
  9. package/dist/api/index.d.ts +1 -1
  10. package/dist/api/index.d.ts.map +1 -1
  11. package/dist/api/index.js.map +1 -1
  12. package/dist/api/resources.d.ts +58 -11
  13. package/dist/api/resources.d.ts.map +1 -1
  14. package/dist/api/resources.js +46 -7
  15. package/dist/api/resources.js.map +1 -1
  16. package/dist/fs/index.d.ts +2 -1
  17. package/dist/fs/index.d.ts.map +1 -1
  18. package/dist/fs/index.js +1 -0
  19. package/dist/fs/index.js.map +1 -1
  20. package/dist/fs/layout.d.ts +87 -0
  21. package/dist/fs/layout.d.ts.map +1 -0
  22. package/dist/fs/layout.js +78 -0
  23. package/dist/fs/layout.js.map +1 -0
  24. package/dist/fs/mesa-file-system.d.ts +37 -1
  25. package/dist/fs/mesa-file-system.d.ts.map +1 -1
  26. package/dist/fs/mesa-file-system.js +15 -1
  27. package/dist/fs/mesa-file-system.js.map +1 -1
  28. package/dist/fs/native-loader.d.ts +7 -0
  29. package/dist/fs/native-loader.d.ts.map +1 -1
  30. package/dist/fs/native-loader.js +26 -4
  31. package/dist/fs/native-loader.js.map +1 -1
  32. package/dist/index.d.ts +3 -3
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/mesa.d.ts +145 -16
  37. package/dist/mesa.d.ts.map +1 -1
  38. package/dist/mesa.js +182 -15
  39. package/dist/mesa.js.map +1 -1
  40. package/dist/version.d.ts +1 -1
  41. package/dist/version.js +1 -1
  42. package/package.json +3 -3
package/dist/mesa.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { WhoamiResponse } from '@mesadev/rest';
2
2
  import { z } from 'zod';
3
- import { type ApiResources } from './api/resources.js';
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';
4
5
  import { MesaFileSystem, type RepoConfig, type TelemetryConfig } from './fs/mesa-file-system.js';
5
6
  declare const authSchema: z.ZodUnion<readonly [z.ZodObject<{
6
7
  privateKey: z.ZodString;
@@ -8,15 +9,61 @@ declare const authSchema: z.ZodUnion<readonly [z.ZodObject<{
8
9
  accessToken: z.ZodString;
9
10
  }, z.core.$strict>]>;
10
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>;
11
61
  export interface MesaOptions {
12
- /**
13
- * Long-lived API key (`mesa_...`). The client signs short-lived access tokens
14
- * locally (no network round-trip) for filesystem mounts and requests.
15
- */
62
+ /** Long-lived API key (`mesa_...`) used directly for requests and to sign short-lived access tokens locally. */
16
63
  apiKey?: string;
17
64
  /** Organization-root Ed25519 private key used to sign REST request JWTs and `tokens.create()` locally. */
18
65
  privateKey?: string;
19
- /** Grouped private-key or static Mesa JWT authentication. */
66
+ /** Grouped private-key or signing-key access-token authentication. */
20
67
  auth?: MesaAuth;
21
68
  apiUrl?: string;
22
69
  vcsUrl?: string;
@@ -25,8 +72,7 @@ export interface MesaOptions {
25
72
  userAgent?: string;
26
73
  webhookSecret?: string;
27
74
  }
28
- export interface FsMountOptions {
29
- repos: RepoConfig[];
75
+ interface FsMountBaseOptions {
30
76
  cache?: {
31
77
  diskCache?: {
32
78
  path: string;
@@ -42,24 +88,99 @@ export interface FsMountOptions {
42
88
  */
43
89
  ttl?: number;
44
90
  }
45
- export declare class Mesa {
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> {
46
169
  /** The API key this client was constructed with, if it is an API-key client. */
47
170
  readonly apiKey: string | undefined;
48
171
  readonly apiUrl: string;
49
172
  readonly vcsUrl: string;
50
173
  readonly org: ApiResources['org'];
51
- readonly tokens: ApiResources['tokens'];
174
+ readonly tokens: MesaTokens<TOptions>;
52
175
  readonly apiKeys: ApiResources['apiKeys'];
53
176
  readonly repos: ApiResources['repos'];
54
177
  readonly content: ApiResources['content'];
55
- readonly bookmarks: ApiResources['bookmarks'];
56
- readonly changes: ApiResources['changes'];
178
+ readonly bookmarks: MesaBookmarks<TOptions>;
179
+ readonly changes: MesaChanges<TOptions>;
57
180
  readonly diffs: ApiResources['diffs'];
58
181
  readonly webhookTargets: ApiResources['webhookTargets'];
59
182
  readonly webhooks: ApiResources['webhooks'];
60
- readonly fs: {
61
- mount: (options: FsMountOptions) => Promise<MesaFileSystem>;
62
- };
183
+ readonly fs: MesaFs<TOptions>;
63
184
  private readonly credential;
64
185
  private readonly restClient;
65
186
  private readonly orgResolutionPromise;
@@ -68,8 +189,16 @@ export declare class Mesa {
68
189
  private cachedWhoAmI;
69
190
  private cachedKeyId;
70
191
  private keyIdResolutionPromise;
71
- constructor(options?: MesaOptions);
192
+ constructor(options?: TOptions);
72
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;
73
202
  resolveOrg(org?: string): Promise<string>;
74
203
  whoami(): Promise<WhoamiResponse>;
75
204
  private fetchWhoAmI;
@@ -1 +1 @@
1
- {"version":3,"file":"mesa.d.ts","sourceRoot":"","sources":["../src/mesa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesa.d.ts","sourceRoot":"","sources":["../src/mesa.ts"],"names":[],"mappings":"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"}
package/dist/mesa.js CHANGED
@@ -1,14 +1,16 @@
1
1
  import { z } from 'zod';
2
- import { signAccessToken, signPrivateKeyAccessToken, toApiRepositoryRestriction, toSignerRepositoryRestriction, } from './api/access-token.js';
2
+ import { normalizeSigningKeyAuthors, signAccessToken, signPrivateKeyAccessToken, toApiRepositoryRestriction, toSignerRepositoryRestriction, } from './api/access-token.js';
3
3
  import { createRestClient } from './api/client.js';
4
4
  import { createApiResources, } from './api/resources.js';
5
5
  import { looksLikePrivateKey } from './api/credentials.js';
6
6
  import { parsePrivateKey } from './api/signing-key.js';
7
+ import { createLayout } from './fs/layout.js';
7
8
  import { MesaFileSystem, } from './fs/mesa-file-system.js';
8
9
  import { InvalidApiUrlError, InvalidOptionsError, MissingCredentialError, OrgResolutionError } from './lib/errors.js';
9
10
  const DEFAULT_API_URL = 'https://api.mesa.dev/v1';
10
11
  const API_KEY_ENV_VAR = 'MESA_API_KEY';
11
12
  const PRIVATE_KEY_ENV_VAR = 'MESA_PRIVATE_KEY';
13
+ const ACCESS_TOKEN_ORG_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
12
14
  /** Historical `tokens.create()` default and least-authority MesaFS mount scopes. */
13
15
  const DEFAULT_TOKEN_SCOPES = ['read', 'write'];
14
16
  const authSchema = z.union([
@@ -51,6 +53,20 @@ function normalizeBearerCredential(credential) {
51
53
  }
52
54
  return normalized;
53
55
  }
56
+ function getAccessTokenOrg(token) {
57
+ try {
58
+ const parts = token.split('.');
59
+ if (parts.length !== 3 || parts.some((part) => part.length === 0))
60
+ throw new Error();
61
+ const payload = JSON.parse(Buffer.from(parts[1], 'base64url').toString('utf8'));
62
+ if (typeof payload.iss !== 'string' || !ACCESS_TOKEN_ORG_PATTERN.test(payload.iss))
63
+ throw new Error();
64
+ return payload.iss;
65
+ }
66
+ catch {
67
+ throw new InvalidOptionsError('Access tokens must be compact JWTs with a valid organization `iss` claim.');
68
+ }
69
+ }
54
70
  /**
55
71
  * Resolve one explicit or environment credential. Explicit credentials never
56
72
  * combine, and the existing API-key environment variable remains authoritative
@@ -69,7 +85,12 @@ function resolveCredential(options) {
69
85
  if ('privateKey' in parsed.data) {
70
86
  return { kind: 'privateKey', value: parsePrivateKey(parsed.data.privateKey) };
71
87
  }
72
- return { kind: 'accessToken', value: normalizeBearerCredential(parsed.data.accessToken) };
88
+ const value = normalizeBearerCredential(parsed.data.accessToken);
89
+ return {
90
+ kind: 'accessToken',
91
+ value,
92
+ org: getAccessTokenOrg(value),
93
+ };
73
94
  }
74
95
  if (options.privateKey !== undefined) {
75
96
  return { kind: 'privateKey', value: parsePrivateKey(options.privateKey) };
@@ -112,6 +133,9 @@ export class Mesa {
112
133
  cachedKeyId = null;
113
134
  keyIdResolutionPromise = null;
114
135
  constructor(options = {}) {
136
+ if (options.authors !== undefined) {
137
+ throw new InvalidOptionsError('The `authors` option is not accepted by the Mesa constructor. Pass authors to the operation instead.');
138
+ }
115
139
  const resolvedCredential = resolveCredential(options);
116
140
  this.credential = resolvedCredential;
117
141
  this.apiKey = resolvedCredential.kind === 'apiKey' ? resolvedCredential.value : undefined;
@@ -127,6 +151,9 @@ export class Mesa {
127
151
  if (resolvedCredential.kind === 'privateKey' && providedOrg && providedOrg !== resolvedCredential.value.org) {
128
152
  throw new InvalidOptionsError('The `org` option must match the organization encoded in the private key.');
129
153
  }
154
+ if (resolvedCredential.kind === 'accessToken' && providedOrg && providedOrg !== resolvedCredential.org) {
155
+ throw new InvalidOptionsError('The `org` option must match the organization encoded in the access token.');
156
+ }
130
157
  this.restClient = createRestClient({
131
158
  credential: resolvedCredential.kind === 'privateKey'
132
159
  ? () => signPrivateKeyAccessToken({ credential: resolvedCredential.value }).token
@@ -140,6 +167,11 @@ export class Mesa {
140
167
  this.orgResolutionPromise = Promise.resolve(resolvedCredential.value.org);
141
168
  this.whoAmIResolutionPromise = null;
142
169
  }
170
+ else if (resolvedCredential.kind === 'accessToken') {
171
+ this.cachedOrgSlug = resolvedCredential.org;
172
+ this.orgResolutionPromise = Promise.resolve(resolvedCredential.org);
173
+ this.whoAmIResolutionPromise = null;
174
+ }
143
175
  else if (providedOrg) {
144
176
  this.cachedOrgSlug = providedOrg;
145
177
  this.orgResolutionPromise = Promise.resolve(providedOrg);
@@ -156,6 +188,14 @@ export class Mesa {
156
188
  resolveOrg: (org) => this.resolveOrg(org),
157
189
  webhookSecret: options.webhookSecret,
158
190
  signToken: (input) => this.signToken(input),
191
+ requestAttribution: resolvedCredential.kind === 'privateKey'
192
+ ? {
193
+ kind: 'private-key',
194
+ sign: (authors) => signPrivateKeyAccessToken({ credential: resolvedCredential.value, authors }).token,
195
+ }
196
+ : resolvedCredential.kind === 'accessToken'
197
+ ? { kind: 'fixed-token' }
198
+ : { kind: 'request' },
159
199
  });
160
200
  this.org = resources.org;
161
201
  this.tokens = resources.tokens;
@@ -167,9 +207,83 @@ export class Mesa {
167
207
  this.diffs = resources.diffs;
168
208
  this.webhookTargets = resources.webhookTargets;
169
209
  this.webhooks = resources.webhooks;
170
- this.fs = {
210
+ // Layout minting and mounting are reachable only through a definition;
211
+ // the layout carries no organization, so the client's org scopes both.
212
+ const mintLayoutToken = async (layout, ttl, authors) => {
213
+ // Run the core structural validator before minting so a malformed
214
+ // layout fails here with the mount's own error. Repository names
215
+ // resolve only at mount time — a layout naming a nonexistent
216
+ // repository still mints a token and fails at mount.
217
+ MesaFileSystem.validateLayout(layout.toString());
218
+ const { org, scopes, repos } = await this.deriveLayoutTokenRequest(layout, 'mesa.fs({ layout }).token()');
219
+ const tokenInput = { org, scopes, repos, ttl_seconds: ttl };
220
+ return resources.tokens.create(this.credential.kind === 'privateKey' ? { ...tokenInput, authors: authors } : tokenInput);
221
+ };
222
+ const mountLayout = async (definitionLayout, ttl, authors, options) => {
223
+ const { layout, org, scopes, repos } = await this.deriveLayoutTokenRequest(definitionLayout, 'mesa.fs({ layout }).mount()');
224
+ if (this.credential.kind === 'accessToken') {
225
+ return this.createFs(org, options, this.credential.value, layout);
226
+ }
227
+ // Mint a single access token for the mount's whole lifetime. There is
228
+ // no refresh and no credential hot-swap, so when the token expires the
229
+ // mount expires with it.
230
+ const tokenInput = { org, scopes, repos, ttl_seconds: ttl };
231
+ const token = this.credential.kind === 'privateKey'
232
+ ? signPrivateKeyAccessToken({
233
+ credential: this.credential.value,
234
+ authors: authors,
235
+ scopes: tokenInput.scopes,
236
+ repos: tokenInput.repos,
237
+ ttlSeconds: tokenInput.ttl_seconds,
238
+ }).token
239
+ : (await resources.tokens.create(tokenInput)).token;
240
+ return this.createFs(org, options, token, layout);
241
+ };
242
+ const defineLayout = ({ layout, ttl, authors: authorsInput }) => {
243
+ if (layout === undefined) {
244
+ // Catches untyped callers passing a bare path map instead of options.
245
+ throw new InvalidOptionsError("mesa.fs() requires a 'layout'");
246
+ }
247
+ const authors = authorsInput === undefined ? undefined : normalizeSigningKeyAuthors(authorsInput);
248
+ if (this.credential.kind === 'privateKey' && authors === undefined) {
249
+ throw new InvalidOptionsError('Private-key layout definitions require a nonempty `authors` option.');
250
+ }
251
+ if (this.credential.kind !== 'privateKey' && authors !== undefined) {
252
+ throw new InvalidOptionsError('Layout authors require a private-key client.');
253
+ }
254
+ if (this.credential.kind === 'accessToken' && ttl !== undefined) {
255
+ throw new InvalidOptionsError('The lifetime of an existing access token cannot be changed.');
256
+ }
257
+ // Built eagerly, so an invalid record fails here at definition time.
258
+ const prepared = createLayout(layout);
259
+ const definition = {
260
+ layout: () => prepared,
261
+ mount: (options = {}) => mountLayout(prepared, ttl, authors, options),
262
+ token: () => mintLayoutToken(prepared, ttl, authors),
263
+ };
264
+ return definition;
265
+ };
266
+ this.fs = Object.assign(defineLayout, {
267
+ /**
268
+ * Canonical mount profile: mount exactly the listed repositories at
269
+ * their `/org/repo` paths with explicit repo visibility, a name-scoped
270
+ * token, and offline signing with no name→id resolution round-trip.
271
+ * Layouts mount through a definition: `mesa.fs({ layout }).mount()`.
272
+ */
171
273
  mount: async (fsOptions) => {
172
- if (fsOptions.repos.length === 0) {
274
+ const authors = fsOptions.authors === undefined ? undefined : normalizeSigningKeyAuthors(fsOptions.authors);
275
+ if (this.credential.kind === 'privateKey' && authors === undefined) {
276
+ throw new InvalidOptionsError('Private-key mounts require a nonempty `authors` option.');
277
+ }
278
+ if (this.credential.kind !== 'privateKey' && authors !== undefined) {
279
+ throw new InvalidOptionsError('Mount authors require a private-key client.');
280
+ }
281
+ const canonicalRepos = fsOptions.repos;
282
+ if (canonicalRepos === undefined) {
283
+ // Untyped callers may still pass the retired layout form.
284
+ throw new InvalidOptionsError('mesa.fs.mount() mounts the canonical repos profile; mount a layout with mesa.fs({ layout }).mount()');
285
+ }
286
+ if (canonicalRepos.length === 0) {
173
287
  throw new InvalidOptionsError('mesa.fs.mount() requires at least one repo');
174
288
  }
175
289
  const org = await this.resolveOrg();
@@ -179,32 +293,72 @@ export class Mesa {
179
293
  }
180
294
  return this.createFs(org, fsOptions, this.credential.value);
181
295
  }
182
- // Mint a single repo-scoped token for the mount. There is no refresh or
183
- // credential hot-swap: when the token expires, the mount expires with it.
184
- const repos = fsOptions.repos.map((repo) => `${org}/${repo.name}`);
185
- const { token } = await this.tokens.create({
296
+ const tokenInput = {
186
297
  org,
187
298
  scopes: DEFAULT_TOKEN_SCOPES,
188
- repos,
299
+ repos: canonicalRepos.map((r) => `${org}/${r.name}`),
189
300
  ttl_seconds: fsOptions.ttl,
190
- });
301
+ };
302
+ const token = this.credential.kind === 'privateKey'
303
+ ? signPrivateKeyAccessToken({
304
+ credential: this.credential.value,
305
+ authors: authors,
306
+ scopes: tokenInput.scopes,
307
+ repos: tokenInput.repos,
308
+ ttlSeconds: tokenInput.ttl_seconds,
309
+ }).token
310
+ : (await resources.tokens.create(tokenInput)).token;
191
311
  return this.createFs(org, fsOptions, token);
192
312
  },
193
- };
313
+ });
194
314
  }
195
- createFs(org, fsOptions, credential) {
196
- const config = {
315
+ createFs(org, fsOptions, credential, layout) {
316
+ const base = {
197
317
  org,
198
318
  credential,
199
- repos: fsOptions.repos,
200
- mountedRepos: fsOptions.repos.map((repo) => repo.name),
201
319
  cache: fsOptions.cache,
202
320
  apiBaseUrl: this.apiUrl,
203
321
  vcsUrl: this.vcsUrl,
204
322
  telemetry: fsOptions.telemetry,
205
323
  };
324
+ // The canonical repos profile keeps explicit repo visibility; the layout
325
+ // profile presents exactly the composed workspace, replacing the
326
+ // canonical browse tree, so per-repo visibility does not apply.
327
+ const config = layout !== undefined
328
+ ? { ...base, repos: [], layout, mountedRepos: 'all' }
329
+ : { ...base, repos: fsOptions.repos ?? [], mountedRepos: (fsOptions.repos ?? []).map((repo) => repo.name) };
206
330
  return MesaFileSystem.create(config);
207
331
  }
332
+ /**
333
+ * Derive the least-privilege token request for a layout: its repositories
334
+ * collected from every declaration and scoped by name (signed offline, no
335
+ * repository lookup), plus the narrowest scopes the declared modes allow.
336
+ * Shared by the definition's `mount()` and `token()` so the derivation
337
+ * exists exactly once.
338
+ */
339
+ async deriveLayoutTokenRequest(layout, caller) {
340
+ // The layout carries no organization of its own; the client's
341
+ // organization scopes the token.
342
+ const org = await this.resolveOrg();
343
+ const declarations = [];
344
+ const visit = (entries) => {
345
+ for (const entry of Object.values(entries)) {
346
+ for (const declaration of Array.isArray(entry) ? entry : [entry]) {
347
+ declarations.push(declaration);
348
+ if (declaration.subPaths)
349
+ visit(declaration.subPaths);
350
+ }
351
+ }
352
+ };
353
+ // The spec is a pure path map: every key is a declaration entry.
354
+ visit(layout.spec);
355
+ if (declarations.length === 0) {
356
+ throw new InvalidOptionsError(`${caller} requires at least one layout repository`);
357
+ }
358
+ const repos = [...new Set(declarations.map((declaration) => `${org}/${declaration.name}`))];
359
+ const scopes = declarations.some((declaration) => declaration.mode === 'rw') ? [...DEFAULT_TOKEN_SCOPES] : ['read'];
360
+ return { layout, org, scopes, repos };
361
+ }
208
362
  async resolveOrg(org) {
209
363
  const requestedOrg = org?.trim();
210
364
  if (requestedOrg && looksLikePrivateKey(requestedOrg)) {
@@ -216,6 +370,12 @@ export class Mesa {
216
370
  }
217
371
  return this.credential.value.org;
218
372
  }
373
+ if (this.credential.kind === 'accessToken') {
374
+ if (requestedOrg && requestedOrg !== this.credential.org) {
375
+ throw new InvalidOptionsError('Access-token clients are bound to the organization encoded in the token.');
376
+ }
377
+ return this.credential.org;
378
+ }
219
379
  if (requestedOrg) {
220
380
  return requestedOrg;
221
381
  }
@@ -276,8 +436,12 @@ export class Mesa {
276
436
  /** Sign an access token locally from the credential this client holds. */
277
437
  async signToken(input) {
278
438
  if (this.credential.kind === 'privateKey') {
439
+ if (input.authors === undefined) {
440
+ throw new InvalidOptionsError('Private-key tokens require a nonempty `authors` option.');
441
+ }
279
442
  const signed = signPrivateKeyAccessToken({
280
443
  credential: this.credential.value,
444
+ authors: input.authors,
281
445
  scopes: input.scopes ?? [...DEFAULT_TOKEN_SCOPES],
282
446
  ttlSeconds: input.ttl_seconds,
283
447
  ...toSignerRepositoryRestriction(input),
@@ -292,6 +456,9 @@ export class Mesa {
292
456
  if (this.credential.kind === 'accessToken') {
293
457
  throw new InvalidOptionsError('Access-token clients cannot mint another access token. Use an API key or private key.');
294
458
  }
459
+ if (input.authors !== undefined) {
460
+ throw new InvalidOptionsError('Private-key access tokens can only be minted with a private key.');
461
+ }
295
462
  const keyId = await this.resolveKeyId();
296
463
  const repositoryRestriction = toSignerRepositoryRestriction(input);
297
464
  const signed = signAccessToken({
package/dist/mesa.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mesa.js","sourceRoot":"","sources":["../src/mesa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesa.js","sourceRoot":"","sources":["../src/mesa.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const SDK_VERSION = "0.43.0";
1
+ export declare const SDK_VERSION = "0.44.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Generated by pnpm run stamp:version. Do not edit.
2
- export const SDK_VERSION = "0.43.0";
2
+ export const SDK_VERSION = "0.44.0";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mesadev/sdk",
3
- "version": "0.43.0",
3
+ "version": "0.44.0",
4
4
  "description": "Official Mesa TypeScript SDK",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -25,8 +25,8 @@
25
25
  "node": ">=18"
26
26
  },
27
27
  "dependencies": {
28
- "@mesadev/mesafs-napi": "0.43.0",
29
- "@mesadev/rest": "0.43.0",
28
+ "@mesadev/mesafs-napi": "0.44.0",
29
+ "@mesadev/rest": "0.44.0",
30
30
  "just-bash": "^2.13.0",
31
31
  "zod": "^4.3.6"
32
32
  },