@mesadev/sdk 0.47.3 → 0.48.1
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/README.md +21 -25
- package/dist/api/access-token.d.ts +24 -41
- package/dist/api/access-token.d.ts.map +1 -1
- package/dist/api/access-token.js +119 -71
- package/dist/api/access-token.js.map +1 -1
- package/dist/api/client.d.ts +2 -2
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +3 -3
- package/dist/api/client.js.map +1 -1
- package/dist/api/index.d.ts +0 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +0 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/{signing-key.d.ts → private-key.d.ts} +1 -1
- package/dist/api/{signing-key.d.ts.map → private-key.d.ts.map} +1 -1
- package/dist/api/{signing-key.js → private-key.js} +1 -1
- package/dist/api/{signing-key.js.map → private-key.js.map} +1 -1
- package/dist/api/repo-tag-filter.d.ts +1 -1
- package/dist/api/repo-tag-filter.d.ts.map +1 -1
- package/dist/api/repo-tag-filter.js +3 -1
- package/dist/api/repo-tag-filter.js.map +1 -1
- package/dist/api/resources.d.ts +25 -66
- package/dist/api/resources.d.ts.map +1 -1
- package/dist/api/resources.js +24 -41
- package/dist/api/resources.js.map +1 -1
- package/dist/fs/grep-pattern.d.ts +28 -0
- package/dist/fs/grep-pattern.d.ts.map +1 -0
- package/dist/fs/grep-pattern.js +172 -0
- package/dist/fs/grep-pattern.js.map +1 -0
- package/dist/fs/index.d.ts +1 -1
- package/dist/fs/index.d.ts.map +1 -1
- package/dist/fs/index.js +1 -1
- package/dist/fs/index.js.map +1 -1
- package/dist/fs/layout.d.ts +7 -25
- package/dist/fs/layout.d.ts.map +1 -1
- package/dist/fs/layout.js +2 -40
- package/dist/fs/layout.js.map +1 -1
- package/dist/fs/mesa-file-system.d.ts +37 -36
- package/dist/fs/mesa-file-system.d.ts.map +1 -1
- package/dist/fs/mesa-file-system.js +74 -30
- package/dist/fs/mesa-file-system.js.map +1 -1
- package/dist/fs/native-loader.d.ts +3 -4
- package/dist/fs/native-loader.d.ts.map +1 -1
- package/dist/fs/native-loader.js.map +1 -1
- package/dist/fs/search-grep.d.ts +44 -0
- package/dist/fs/search-grep.d.ts.map +1 -0
- package/dist/fs/search-grep.js +208 -0
- package/dist/fs/search-grep.js.map +1 -0
- package/dist/fs/search-rg.d.ts +204 -0
- package/dist/fs/search-rg.d.ts.map +1 -0
- package/dist/fs/search-rg.js +502 -0
- package/dist/fs/search-rg.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/errors.d.ts +5 -2
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +10 -4
- package/dist/lib/errors.js.map +1 -1
- package/dist/mesa.d.ts +29 -97
- package/dist/mesa.d.ts.map +1 -1
- package/dist/mesa.js +75 -153
- package/dist/mesa.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webhooks/schemas.d.ts +20 -20
- package/dist/webhooks/schemas.d.ts.map +1 -1
- package/dist/webhooks/schemas.js +8 -1
- package/dist/webhooks/schemas.js.map +1 -1
- package/package.json +3 -3
package/dist/fs/layout.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mount-layout constructors.
|
|
3
3
|
*
|
|
4
|
-
* `repo()`
|
|
5
|
-
*
|
|
4
|
+
* `repo()` builds declarations for the serializable layout schema shared with
|
|
5
|
+
* the CLI and the Python SDK. The authoritative
|
|
6
6
|
* normalization — path expansion, collision, organization scope, and
|
|
7
7
|
* repository-uniqueness semantics — lives in core Rust
|
|
8
8
|
* (`mesafs-core::layout`); this module only performs cheap, early checks
|
|
@@ -41,7 +41,7 @@ export type BranchedRevision = RevisionIdentifier & {
|
|
|
41
41
|
};
|
|
42
42
|
/** Options for one repository declaration. */
|
|
43
43
|
export type RepoOptions = {
|
|
44
|
-
/** Read-only or read-write
|
|
44
|
+
/** Read-only or read-write access mode. Always explicit. */
|
|
45
45
|
mode: MountMode;
|
|
46
46
|
/** Child-directory name override. Only valid on array elements. */
|
|
47
47
|
alias?: string;
|
|
@@ -58,7 +58,7 @@ export type RepoOptions = {
|
|
|
58
58
|
branchedFrom: BranchedRevision;
|
|
59
59
|
});
|
|
60
60
|
/**
|
|
61
|
-
* One repository declaration in serialized
|
|
61
|
+
* One repository declaration in serialized layout form. Produced by
|
|
62
62
|
* {@link repo}; do not construct by hand.
|
|
63
63
|
*/
|
|
64
64
|
export type Repo = {
|
|
@@ -81,24 +81,15 @@ export type Repo = {
|
|
|
81
81
|
});
|
|
82
82
|
/**
|
|
83
83
|
* The mount-layout schema: a pure path map. Every key is an absolute
|
|
84
|
-
* (`/`-prefixed)
|
|
84
|
+
* (`/`-prefixed) layout path — the compiler rejects non-absolute keys in
|
|
85
85
|
* object literals, and pre-typed records with a stray non-absolute key fail
|
|
86
86
|
* the early runtime check. The organization is not part of the document. The
|
|
87
|
-
* client or CLI
|
|
87
|
+
* client or CLI access token provides the mount context, which keeps the layout
|
|
88
88
|
* file portable.
|
|
89
89
|
*/
|
|
90
|
-
export type
|
|
90
|
+
export type Layout = {
|
|
91
91
|
[path: `/${string}`]: Repo | Repo[];
|
|
92
92
|
};
|
|
93
|
-
/** A serializable layout value for `mesa mount --layout` and future mounts. */
|
|
94
|
-
export interface Layout {
|
|
95
|
-
/** The layout in canonical `LayoutSpec` form. */
|
|
96
|
-
readonly spec: LayoutSpec;
|
|
97
|
-
/** Serialize as deterministic, pretty-printed JSON (for `layout.json`). */
|
|
98
|
-
toString(): string;
|
|
99
|
-
/** The canonical `LayoutSpec`, for `JSON.stringify` interoperability. */
|
|
100
|
-
toJSON(): LayoutSpec;
|
|
101
|
-
}
|
|
102
93
|
/**
|
|
103
94
|
* Declare one repository mount.
|
|
104
95
|
*
|
|
@@ -106,13 +97,4 @@ export interface Layout {
|
|
|
106
97
|
* @param options - Mount options; `mode` is required.
|
|
107
98
|
*/
|
|
108
99
|
export declare function repo(selector: RepoSelectorInput, options: RepoOptions): Repo;
|
|
109
|
-
/**
|
|
110
|
-
* Build a serializable mount layout.
|
|
111
|
-
*
|
|
112
|
-
* The returned value is local; it does not create a server-stored resource.
|
|
113
|
-
* Its string form deserializes as the core `LayoutSpec` consumed by
|
|
114
|
-
* `mesa mount --layout`. The document carries no organization. The client or
|
|
115
|
-
* CLI credential provides the mount context used to resolve its selectors.
|
|
116
|
-
*/
|
|
117
|
-
export declare function createLayout(paths: LayoutSpec): Layout;
|
|
118
100
|
//# sourceMappingURL=layout.d.ts.map
|
package/dist/fs/layout.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/fs/layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,8DAA8D;AAC9D,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpC;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjH,MAAM,MAAM,uBAAuB,GAAG;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IAClD,iEAAiE;IACjE,EAAE,CAAC,EAAE,uBAAuB,CAAC;CAC9B,CAAC;AAEF,8CAA8C;AAC9C,MAAM,MAAM,WAAW,GAAG;IACxB,
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/fs/layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,8DAA8D;AAC9D,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpC;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjH,MAAM,MAAM,uBAAuB,GAAG;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IAClD,iEAAiE;IACjE,EAAE,CAAC,EAAE,uBAAuB,CAAC;CAC9B,CAAC;AAEF,8CAA8C;AAC9C,MAAM,MAAM,WAAW,GAAG;IACxB,4DAA4D;IAC5D,IAAI,EAAE,SAAS,CAAC;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;CAC1C,GAAG,CACA;IACE,wEAAwE;IACxE,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,YAAY,CAAC,EAAE,KAAK,CAAC;CACtB,GACD;IACE,8CAA8C;IAC9C,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,YAAY,EAAE,gBAAgB,CAAC;CAChC,CACJ,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;CACnD,GAAG,CACA;IACE,wEAAwE;IACxE,QAAQ,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;CAC/B,GACD;IACE,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;CACzC,CACJ,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,CAAC,IAAI,EAAE,IAAI,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;CACrC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAmE5E"}
|
package/dist/fs/layout.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mount-layout constructors.
|
|
3
3
|
*
|
|
4
|
-
* `repo()`
|
|
5
|
-
*
|
|
4
|
+
* `repo()` builds declarations for the serializable layout schema shared with
|
|
5
|
+
* the CLI and the Python SDK. The authoritative
|
|
6
6
|
* normalization — path expansion, collision, organization scope, and
|
|
7
7
|
* repository-uniqueness semantics — lives in core Rust
|
|
8
8
|
* (`mesafs-core::layout`); this module only performs cheap, early checks
|
|
@@ -79,42 +79,4 @@ export function repo(selector, options) {
|
|
|
79
79
|
...nested,
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Build a serializable mount layout.
|
|
84
|
-
*
|
|
85
|
-
* The returned value is local; it does not create a server-stored resource.
|
|
86
|
-
* Its string form deserializes as the core `LayoutSpec` consumed by
|
|
87
|
-
* `mesa mount --layout`. The document carries no organization. The client or
|
|
88
|
-
* CLI credential provides the mount context used to resolve its selectors.
|
|
89
|
-
*/
|
|
90
|
-
export function createLayout(paths) {
|
|
91
|
-
// Pre-typed `Record<string, Repo | Repo[]>` values still assign to
|
|
92
|
-
// `LayoutSpec`, so keep the runtime absolute-path check for them.
|
|
93
|
-
for (const path of Object.keys(paths)) {
|
|
94
|
-
if (!path.startsWith('/')) {
|
|
95
|
-
throw new Error(`createLayout(): top-level path '${path}' must be absolute`);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
const spec = { ...paths };
|
|
99
|
-
return {
|
|
100
|
-
spec,
|
|
101
|
-
toString: () => stableStringify(spec),
|
|
102
|
-
toJSON: () => spec,
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
/** Pretty-print with recursively sorted object keys for deterministic output. */
|
|
106
|
-
function stableStringify(value) {
|
|
107
|
-
return `${JSON.stringify(sortKeys(value), null, 2)}\n`;
|
|
108
|
-
}
|
|
109
|
-
function sortKeys(value) {
|
|
110
|
-
if (Array.isArray(value)) {
|
|
111
|
-
return value.map(sortKeys);
|
|
112
|
-
}
|
|
113
|
-
if (value !== null && typeof value === 'object') {
|
|
114
|
-
return Object.fromEntries(Object.entries(value)
|
|
115
|
-
.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
|
|
116
|
-
.map(([key, entry]) => [key, sortKeys(entry)]));
|
|
117
|
-
}
|
|
118
|
-
return value;
|
|
119
|
-
}
|
|
120
82
|
//# sourceMappingURL=layout.js.map
|
package/dist/fs/layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/fs/layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/fs/layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Bash, type BashOptions, type BufferEncoding, type CpOptions, type FileContent, type FsStat, type IFileSystem, type MkdirOptions, type RmOptions } from 'just-bash';
|
|
2
2
|
import type { NativeMesaFileSystemWatcher } from './native-loader.js';
|
|
3
|
-
import type
|
|
3
|
+
import { type BranchedRevision, type Layout, type RevisionIdentifier } from './layout.js';
|
|
4
4
|
export interface ChangeResult {
|
|
5
5
|
/** Reverse-hex-encoded change ID of the now-active change (JJ format, lowercase letters `k`–`z`). */
|
|
6
6
|
changeOid: string;
|
|
@@ -146,7 +146,14 @@ export interface LogRecord {
|
|
|
146
146
|
/** Event fields from the tracing span. */
|
|
147
147
|
fields: Record<string, unknown>;
|
|
148
148
|
}
|
|
149
|
-
export type MesaBashOptions =
|
|
149
|
+
export type MesaBashOptions = {
|
|
150
|
+
/**
|
|
151
|
+
* Answer `rg` with a repository search next to the storage instead of
|
|
152
|
+
* walking the mount. Commands the search cannot answer exactly fall through
|
|
153
|
+
* to the built-in `rg`, so this changes performance rather than results.
|
|
154
|
+
*/
|
|
155
|
+
serverSideSearch?: boolean;
|
|
156
|
+
} & Pick<BashOptions, 'env' | 'cwd' | 'executionLimits' | 'fetch' | 'network' | 'python' | 'javascript' | 'commands' | 'customCommands' | 'logger'>;
|
|
150
157
|
export type { BranchedRevision, MountRevisionProperties, RevisionIdentifier } from './layout.js';
|
|
151
158
|
type RepoConfigBase = {
|
|
152
159
|
name: string;
|
|
@@ -172,20 +179,8 @@ export type RepoConfig = RepoConfigBase & ({
|
|
|
172
179
|
export interface MesaFileSystemConfigBase {
|
|
173
180
|
org: string;
|
|
174
181
|
repos: RepoConfig[];
|
|
175
|
-
/**
|
|
176
|
-
layout
|
|
177
|
-
/**
|
|
178
|
-
* Which repos from the org show up in the mount.
|
|
179
|
-
*
|
|
180
|
-
* - `'all'` (or omitted) — mount every repo the API key can see.
|
|
181
|
-
* - `string[]` — mount only the listed repos. Scoping to a
|
|
182
|
-
* known-small set avoids the full-org enumeration on `readdir('/')`
|
|
183
|
-
* — useful for agents that only care about a few repos in a large org.
|
|
184
|
-
*
|
|
185
|
-
* Per-repo `rev` overrides in `repos` for names outside the mount list
|
|
186
|
-
* are accepted but silently unused — same as the TOML config.
|
|
187
|
-
*/
|
|
188
|
-
mountedRepos?: string[] | 'all';
|
|
182
|
+
/** Layout mounted as the complete namespace. */
|
|
183
|
+
layout: Layout;
|
|
189
184
|
cache?: {
|
|
190
185
|
diskCache?: {
|
|
191
186
|
path: string;
|
|
@@ -196,22 +191,10 @@ export interface MesaFileSystemConfigBase {
|
|
|
196
191
|
/** Telemetry and logging configuration. */
|
|
197
192
|
telemetry?: TelemetryConfig;
|
|
198
193
|
}
|
|
199
|
-
/**
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
* Provide it as `credential`. The legacy `apiKey` field is still accepted as a
|
|
204
|
-
* deprecated alias; supply exactly one. When both are present, `credential` wins.
|
|
205
|
-
*/
|
|
206
|
-
export type MesaFileSystemConfig = MesaFileSystemConfigBase & ({
|
|
207
|
-
credential: string;
|
|
208
|
-
/** @deprecated Use `credential`. */
|
|
209
|
-
apiKey?: string;
|
|
210
|
-
} | {
|
|
211
|
-
/** @deprecated Use `credential`. */
|
|
212
|
-
apiKey: string;
|
|
213
|
-
credential?: string;
|
|
214
|
-
});
|
|
194
|
+
/** Bearer access token used for all storage operations. */
|
|
195
|
+
export type MesaFileSystemConfig = MesaFileSystemConfigBase & {
|
|
196
|
+
accessToken: string;
|
|
197
|
+
};
|
|
215
198
|
export declare class MesaFileSystemSubscription {
|
|
216
199
|
private readonly native;
|
|
217
200
|
private closed;
|
|
@@ -224,10 +207,16 @@ export declare class MesaFileSystemSubscription {
|
|
|
224
207
|
*
|
|
225
208
|
* Uses native Rust code via NAPI to provide a high-performance filesystem
|
|
226
209
|
* backed by Mesa's cloud storage. The native addon is loaded lazily on the
|
|
227
|
-
* first call to `MesaFileSystem.
|
|
210
|
+
* first call to `MesaFileSystem.createAsync()`.
|
|
228
211
|
*/
|
|
229
212
|
export declare class MesaFileSystem implements IFileSystem {
|
|
230
213
|
private native;
|
|
214
|
+
/**
|
|
215
|
+
* What a server-side search needs, kept from the mount config. Absent when
|
|
216
|
+
* the mount was opened without an API base URL, which is the only case that
|
|
217
|
+
* cannot reach the search endpoint.
|
|
218
|
+
*/
|
|
219
|
+
private readonly search;
|
|
231
220
|
private constructor();
|
|
232
221
|
/**
|
|
233
222
|
* Validate a serialized layout document against the core mount schema's
|
|
@@ -236,10 +225,22 @@ export declare class MesaFileSystem implements IFileSystem {
|
|
|
236
225
|
* resolved here — a nonexistent repository only fails at mount time.
|
|
237
226
|
*/
|
|
238
227
|
static validateLayout(layoutJson: string): void;
|
|
239
|
-
|
|
240
|
-
|
|
228
|
+
/**
|
|
229
|
+
* @internal Open a filesystem from an already-minted access token.
|
|
230
|
+
*
|
|
231
|
+
* Not part of the public surface: `index.ts` exports this class as a type
|
|
232
|
+
* only. Callers go through `mesa.fs({ layout, authors }).mount()`, which
|
|
233
|
+
* derives the token's scopes from the layout and mints it for the mount.
|
|
234
|
+
* This path instead takes a token minted elsewhere, so its scopes and TTL
|
|
235
|
+
* are the caller's to get right. Neither path can refresh: when the token
|
|
236
|
+
* expires the mount fails closed, and resuming means signing a new token
|
|
237
|
+
* and opening a new filesystem.
|
|
238
|
+
*
|
|
239
|
+
* Rejects with {@link MissingAccessTokenError} when `accessToken` is empty and
|
|
240
|
+
* {@link InvalidOptionsError} when it is a private key rather than an access
|
|
241
|
+
* token.
|
|
242
|
+
*/
|
|
241
243
|
static createAsync(config: MesaFileSystemConfig): Promise<MesaFileSystem>;
|
|
242
|
-
private static nativeCreateArgs;
|
|
243
244
|
readFile(path: string, options?: {
|
|
244
245
|
encoding?: BufferEncoding | null;
|
|
245
246
|
} | BufferEncoding): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesa-file-system.d.ts","sourceRoot":"","sources":["../../src/fs/mesa-file-system.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,WAAW,EAChB,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"mesa-file-system.d.ts","sourceRoot":"","sources":["../../src/fs/mesa-file-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { Bash, } from 'just-bash';
|
|
2
2
|
import { looksLikePrivateKey } from '../api/credentials.js';
|
|
3
|
-
import { InvalidOptionsError,
|
|
3
|
+
import { InvalidOptionsError, MissingAccessTokenError } from '../lib/errors.js';
|
|
4
4
|
import { loadNativeAddon } from './native-loader.js';
|
|
5
|
+
import {} from './layout.js';
|
|
6
|
+
import { createSearchGrep } from './search-grep.js';
|
|
7
|
+
import { createSearchRg } from './search-rg.js';
|
|
8
|
+
/** Single-quote a word so the fallback interpreter sees it unchanged. */
|
|
9
|
+
function shellQuote(word) {
|
|
10
|
+
return `'${word.replaceAll("'", `'\\''`)}'`;
|
|
11
|
+
}
|
|
5
12
|
let nativeModule = null;
|
|
6
13
|
/** Preserve the exclusive `at` | `branchedFrom` union when crossing to napi. */
|
|
7
14
|
function toNativeRepoConfig(repo) {
|
|
@@ -80,12 +87,19 @@ export class MesaFileSystemSubscription {
|
|
|
80
87
|
*
|
|
81
88
|
* Uses native Rust code via NAPI to provide a high-performance filesystem
|
|
82
89
|
* backed by Mesa's cloud storage. The native addon is loaded lazily on the
|
|
83
|
-
* first call to `MesaFileSystem.
|
|
90
|
+
* first call to `MesaFileSystem.createAsync()`.
|
|
84
91
|
*/
|
|
85
92
|
export class MesaFileSystem {
|
|
86
93
|
native;
|
|
87
|
-
|
|
94
|
+
/**
|
|
95
|
+
* What a server-side search needs, kept from the mount config. Absent when
|
|
96
|
+
* the mount was opened without an API base URL, which is the only case that
|
|
97
|
+
* cannot reach the search endpoint.
|
|
98
|
+
*/
|
|
99
|
+
search;
|
|
100
|
+
constructor(nativeInstance, search) {
|
|
88
101
|
this.native = nativeInstance;
|
|
102
|
+
this.search = search;
|
|
89
103
|
}
|
|
90
104
|
/**
|
|
91
105
|
* Validate a serialized layout document against the core mount schema's
|
|
@@ -97,41 +111,48 @@ export class MesaFileSystem {
|
|
|
97
111
|
nativeModule ??= loadNativeAddon();
|
|
98
112
|
nativeModule.validateLayout(layoutJson);
|
|
99
113
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
114
|
+
/**
|
|
115
|
+
* @internal Open a filesystem from an already-minted access token.
|
|
116
|
+
*
|
|
117
|
+
* Not part of the public surface: `index.ts` exports this class as a type
|
|
118
|
+
* only. Callers go through `mesa.fs({ layout, authors }).mount()`, which
|
|
119
|
+
* derives the token's scopes from the layout and mints it for the mount.
|
|
120
|
+
* This path instead takes a token minted elsewhere, so its scopes and TTL
|
|
121
|
+
* are the caller's to get right. Neither path can refresh: when the token
|
|
122
|
+
* expires the mount fails closed, and resuming means signing a new token
|
|
123
|
+
* and opening a new filesystem.
|
|
124
|
+
*
|
|
125
|
+
* Rejects with {@link MissingAccessTokenError} when `accessToken` is empty and
|
|
126
|
+
* {@link InvalidOptionsError} when it is a private key rather than an access
|
|
127
|
+
* token.
|
|
128
|
+
*/
|
|
107
129
|
static async createAsync(config) {
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (onLog)
|
|
112
|
-
nativeInstance.setLogCallback(onLog, napiConfig.telemetry?.logLevel);
|
|
113
|
-
return new MesaFileSystem(nativeInstance);
|
|
114
|
-
}
|
|
115
|
-
static nativeCreateArgs(config) {
|
|
116
|
-
const credential = config.credential ?? config.apiKey;
|
|
117
|
-
if (!credential) {
|
|
118
|
-
throw new MissingCredentialError();
|
|
130
|
+
const accessToken = config.accessToken;
|
|
131
|
+
if (!accessToken) {
|
|
132
|
+
throw new MissingAccessTokenError();
|
|
119
133
|
}
|
|
120
|
-
if (looksLikePrivateKey(
|
|
121
|
-
throw new InvalidOptionsError('MesaFileSystem requires an
|
|
134
|
+
if (looksLikePrivateKey(accessToken)) {
|
|
135
|
+
throw new InvalidOptionsError('MesaFileSystem requires an access token, not a private key.');
|
|
122
136
|
}
|
|
123
137
|
const { onLog, ...telemetryRest } = config.telemetry ?? {};
|
|
124
|
-
const {
|
|
138
|
+
const { accessToken: _accessToken, ...rest } = config;
|
|
125
139
|
const napiConfig = {
|
|
126
140
|
...rest,
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
apiKey: credential,
|
|
130
|
-
layout: config.layout?.toString(),
|
|
141
|
+
accessToken,
|
|
142
|
+
layout: JSON.stringify(config.layout),
|
|
131
143
|
telemetry: Object.keys(telemetryRest).length > 0 ? telemetryRest : undefined,
|
|
132
144
|
repos: config.repos.map(toNativeRepoConfig),
|
|
133
145
|
};
|
|
134
|
-
|
|
146
|
+
nativeModule ??= loadNativeAddon();
|
|
147
|
+
const nativeInstance = await nativeModule.MesaFileSystem.createAsync(napiConfig);
|
|
148
|
+
// Registered after construction rather than passed into it: the native
|
|
149
|
+
// factory's future must be Send, and a JS function is bound to its thread.
|
|
150
|
+
if (onLog)
|
|
151
|
+
nativeInstance.setLogCallback(onLog, napiConfig.telemetry?.logLevel);
|
|
152
|
+
const search = config.apiBaseUrl
|
|
153
|
+
? { apiBaseUrl: config.apiBaseUrl, org: config.org, accessToken, layout: config.layout }
|
|
154
|
+
: undefined;
|
|
155
|
+
return new MesaFileSystem(nativeInstance, search);
|
|
135
156
|
}
|
|
136
157
|
async readFile(path, options) {
|
|
137
158
|
const encoding = getEncoding(options);
|
|
@@ -276,7 +297,30 @@ export class MesaFileSystem {
|
|
|
276
297
|
},
|
|
277
298
|
};
|
|
278
299
|
bash(options) {
|
|
279
|
-
|
|
300
|
+
const { serverSideSearch, ...bashOptions } = options ?? {};
|
|
301
|
+
const base = { ...bashOptions, cwd: options?.cwd ?? '/', fs: this };
|
|
302
|
+
if (!serverSideSearch || !this.search) {
|
|
303
|
+
return new Bash(base);
|
|
304
|
+
}
|
|
305
|
+
// The built-in commands are not exported, so a fallback runs the original
|
|
306
|
+
// command line through a second interpreter without the overrides. Built
|
|
307
|
+
// once, on the first command that needs it; the caller's directory and
|
|
308
|
+
// standard input travel with each call.
|
|
309
|
+
let builtIn;
|
|
310
|
+
const fallbackTo = (name) => async (args, ctx) => {
|
|
311
|
+
builtIn ??= new Bash(base);
|
|
312
|
+
return builtIn.exec([name, ...args].map(shellQuote).join(' '), { cwd: ctx.cwd, stdin: ctx.stdin });
|
|
313
|
+
};
|
|
314
|
+
const search = { ...this.search };
|
|
315
|
+
// The caller's own commands come last so a `grep` or `rg` of theirs wins.
|
|
316
|
+
return new Bash({
|
|
317
|
+
...base,
|
|
318
|
+
customCommands: [
|
|
319
|
+
createSearchRg(search, fallbackTo('rg')),
|
|
320
|
+
createSearchGrep(search, fallbackTo('grep')),
|
|
321
|
+
...(bashOptions.customCommands ?? []),
|
|
322
|
+
],
|
|
323
|
+
});
|
|
280
324
|
}
|
|
281
325
|
}
|
|
282
326
|
//# sourceMappingURL=mesa-file-system.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesa-file-system.js","sourceRoot":"","sources":["../../src/fs/mesa-file-system.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,
|
|
1
|
+
{"version":3,"file":"mesa-file-system.js","sourceRoot":"","sources":["../../src/fs/mesa-file-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,10 +44,9 @@ export type NativeRepoConfig = NativeRepoConfigBase & ({
|
|
|
44
44
|
});
|
|
45
45
|
export interface NativeConfig {
|
|
46
46
|
org: string;
|
|
47
|
-
|
|
47
|
+
accessToken: string;
|
|
48
48
|
repos: NativeRepoConfig[];
|
|
49
|
-
layout
|
|
50
|
-
mountedRepos?: string[] | 'all';
|
|
49
|
+
layout: string;
|
|
51
50
|
cache?: {
|
|
52
51
|
diskCache?: {
|
|
53
52
|
path: string;
|
|
@@ -129,8 +128,8 @@ export interface NativeMesaFileSystem {
|
|
|
129
128
|
listBookmarks(repo: string): Promise<string[]>;
|
|
130
129
|
}
|
|
131
130
|
export interface NativeModule {
|
|
131
|
+
/** Constructor-less: the addon exposes only the async factory. */
|
|
132
132
|
MesaFileSystem: {
|
|
133
|
-
new (config: NativeConfig, onLog?: ((record: NativeLogRecord) => void) | undefined | null): NativeMesaFileSystem;
|
|
134
133
|
createAsync(config: NativeConfig): Promise<NativeMesaFileSystem>;
|
|
135
134
|
};
|
|
136
135
|
validateLayout: (layoutJson: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-loader.d.ts","sourceRoot":"","sources":["../../src/fs/native-loader.ts"],"names":[],"mappings":"AAIA,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvH,UAAU,6BAA6B;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,GAAG;IAC9D,EAAE,CAAC,EAAE,6BAA6B,CAAC;CACpC,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GACjD,CACI;IAAE,EAAE,CAAC,EAAE,wBAAwB,CAAC;IAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,GAC3E;IAAE,EAAE,CAAC,EAAE,KAAK,CAAC;IAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,CACrE,CAAC;AAEJ,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,
|
|
1
|
+
{"version":3,"file":"native-loader.d.ts","sourceRoot":"","sources":["../../src/fs/native-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-loader.js","sourceRoot":"","sources":["../../src/fs/native-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"native-loader.js","sourceRoot":"","sources":["../../src/fs/native-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AA8InD,SAAS,6BAA6B,CAAC,KAAc;IACnD,OAAO,IAAI,KAAK,CACd,2CAA2C;QACzC,8EAA8E;QAC9E,cAAc,mBAAmB,GAAG,EACtC,EAAE,KAAK,EAAE,CACV,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,KAAK,IAAI,OAAO,GAAY,KAAK,EAAE,OAAO,YAAY,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACrF,MAAM,IAAI,GAAI,OAAiC,CAAC,IAAI,CAAC;QACrD,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAChC,iBAAiB,GAAG,IAAI,CAAC;QAC3B,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,OAAoB;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAE3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAiB,CAAC;AAC1C,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAoB;IACpD,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,mBAAmB,CAAiB,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE1C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `grep -r` that searches next to the storage instead of walking the mount.
|
|
3
|
+
*
|
|
4
|
+
* This is a narrower replacement than the `rg` one, because grep's defaults
|
|
5
|
+
* differ from ripgrep's in ways that change answers rather than performance:
|
|
6
|
+
* patterns are Basic Regular Expressions, matching is case-sensitive, and
|
|
7
|
+
* recursion happens only with `-r` and a named path. Anything the built-in
|
|
8
|
+
* would reject, or answer from standard input, is left to the built-in, so a
|
|
9
|
+
* command line means the same thing whether or not the endpoint answered it.
|
|
10
|
+
*
|
|
11
|
+
* `-c` is left to the built-in for the same reason: grep counts every file it
|
|
12
|
+
* visited, printing `path:0` for the ones that did not match, and the endpoint
|
|
13
|
+
* reports only the files that did.
|
|
14
|
+
*/
|
|
15
|
+
import type { Command, CommandContext, ExecResult } from 'just-bash';
|
|
16
|
+
import { type Mount, type SearchLeg, type SearchRequest, type ServerSearchConfig, type Unservable } from './search-rg.js';
|
|
17
|
+
/** What grep was asked to do, once it is known to be answerable. */
|
|
18
|
+
type GrepQuery = {
|
|
19
|
+
legs: SearchLeg[];
|
|
20
|
+
target: {
|
|
21
|
+
typed: string;
|
|
22
|
+
absolute: string;
|
|
23
|
+
};
|
|
24
|
+
request: SearchRequest;
|
|
25
|
+
lineNumbers: boolean;
|
|
26
|
+
/** Recursive grep names the file on every line unless `-h` says not to. */
|
|
27
|
+
showFilename: boolean;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Translate a grep command line into one search, or explain why it cannot be.
|
|
31
|
+
*
|
|
32
|
+
* Only what the built-in accepts is accepted here, and only what the endpoint
|
|
33
|
+
* answers exactly is served. Everything else falls back.
|
|
34
|
+
*/
|
|
35
|
+
export declare function planGrep(args: string[], cwd: string, mounts: Mount[]): GrepQuery | Unservable;
|
|
36
|
+
/**
|
|
37
|
+
* Build the `grep` replacement.
|
|
38
|
+
*
|
|
39
|
+
* `fallback` runs the original command line through the built-in, and is
|
|
40
|
+
* called for anything this cannot answer exactly.
|
|
41
|
+
*/
|
|
42
|
+
export declare function createSearchGrep(config: ServerSearchConfig, fallback: (args: string[], ctx: CommandContext) => Promise<ExecResult>): Command;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=search-grep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-grep.d.ts","sourceRoot":"","sources":["../../src/fs/search-grep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAErE,OAAO,EAYL,KAAK,KAAK,EACV,KAAK,SAAS,EAEd,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAExB,oEAAoE;AACpE,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,2EAA2E;IAC3E,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,GAAG,UAAU,CAkH7F;AAgCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,UAAU,CAAC,GACrE,OAAO,CAmCT"}
|