@mesadev/sdk 0.3.3 → 0.4.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/README.md +1 -1
- package/dist/api/resources.d.ts +42 -42
- package/dist/api/resources.d.ts.map +1 -1
- package/dist/api/resources.js +29 -29
- package/dist/api/resources.js.map +1 -1
- package/dist/fs/index.d.ts +2 -0
- package/dist/fs/index.d.ts.map +1 -0
- package/dist/fs/index.js +2 -0
- package/dist/fs/index.js.map +1 -0
- package/dist/fs/key-cleanup.d.ts +7 -0
- package/dist/fs/key-cleanup.d.ts.map +1 -0
- package/dist/fs/key-cleanup.js +70 -0
- package/dist/fs/key-cleanup.js.map +1 -0
- package/dist/fs/mesa-file-system.d.ts +65 -0
- package/dist/fs/mesa-file-system.d.ts.map +1 -0
- package/dist/fs/mesa-file-system.js +135 -0
- package/dist/fs/mesa-file-system.js.map +1 -0
- package/dist/fs/native-loader.d.ts +61 -0
- package/dist/fs/native-loader.d.ts.map +1 -0
- package/dist/fs/native-loader.js +94 -0
- package/dist/fs/native-loader.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/errors.js +1 -1
- package/dist/lib/errors.js.map +1 -1
- package/dist/mesa.d.ts +21 -2
- package/dist/mesa.d.ts.map +1 -1
- package/dist/mesa.js +40 -11
- package/dist/mesa.js.map +1 -1
- package/package.json +10 -2
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@ This package exposes org-inferred REST resources under `mesa.*` and Node git ope
|
|
|
47
47
|
`Mesa` accepts:
|
|
48
48
|
|
|
49
49
|
- `apiKey?: string` (falls back to `MESA_API_KEY` in Node)
|
|
50
|
-
- `apiUrl?: string` (defaults to `https://api.mesa.dev/
|
|
50
|
+
- `apiUrl?: string` (defaults to `https://api.mesa.dev/v1`)
|
|
51
51
|
- `org?: string` (optional default org; bypasses `/whoami` resolution)
|
|
52
52
|
- `fetch?: typeof fetch`
|
|
53
53
|
- `userAgent?: string`
|
package/dist/api/resources.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type DeleteByOrgApiKeyByIdData, type DeleteByOrgApiKeyByIdResponse, type DeleteByOrgByRepoBranchByBranchData, type DeleteByOrgByRepoBranchByBranchResponse, type DeleteByOrgByRepoData, type DeleteByOrgByRepoResponse, type DeleteByOrgByRepoWebhookByWebhookIdData, type DeleteByOrgByRepoWebhookByWebhookIdResponse, type GetByOrgApiKeyData, type GetByOrgApiKeyResponse, type GetByOrgByRepoBranchData, type GetByOrgByRepoBranchResponse, type GetByOrgByRepoCommitByShaData, type GetByOrgByRepoCommitByShaResponse, type GetByOrgByRepoCommitData, type GetByOrgByRepoCommitResponse, type GetByOrgByRepoContentData, type GetByOrgByRepoContentResponse, type GetByOrgByRepoData, type GetByOrgByRepoDiffData, type GetByOrgByRepoDiffResponse, type GetByOrgByRepoResponse, type GetByOrgByRepoWebhookData, type GetByOrgByRepoWebhookResponse, type GetByOrgData, type GetByOrgRepoData, type GetByOrgRepoResponse, type GetByOrgResponse, type GetWhoamiData, type GetWhoamiResponse, type PatchByOrgByRepoData, type PatchByOrgByRepoResponse, type PostByOrgApiKeyData, type PostByOrgApiKeyResponse, type PostByOrgByRepoBranchData, type PostByOrgByRepoBranchResponse, type PostByOrgByRepoCommitData, type PostByOrgByRepoCommitResponse, type PostByOrgByRepoWebhookData, type PostByOrgByRepoWebhookResponse, type PostByOrgRepoData, type PostByOrgRepoResponse } from '@mesadev/rest';
|
|
2
2
|
import type { RestClient, RestDataShape, RestRequestOptions } from './client.js';
|
|
3
3
|
type RawMethod<TData extends RestDataShape, TResult> = [keyof RestRequestOptions<TData>] extends [never] ? (options?: RestRequestOptions<TData>) => Promise<TResult> : (options: RestRequestOptions<TData>) => Promise<TResult>;
|
|
4
4
|
type ResolveOrg = (org?: string) => Promise<string>;
|
|
@@ -9,16 +9,16 @@ type OrgRequestContext = {
|
|
|
9
9
|
export type ApiKeysListInput = {
|
|
10
10
|
org?: string;
|
|
11
11
|
};
|
|
12
|
-
export type ApiKeysCreateInput =
|
|
12
|
+
export type ApiKeysCreateInput = PostByOrgApiKeyData['body'] & {
|
|
13
13
|
org?: string;
|
|
14
14
|
};
|
|
15
|
-
export type ApiKeysRevokeInput = Omit<
|
|
15
|
+
export type ApiKeysRevokeInput = Omit<DeleteByOrgApiKeyByIdData['path'], 'org'> & {
|
|
16
16
|
org?: string;
|
|
17
17
|
};
|
|
18
|
-
export type ReposListInput = NonNullable<
|
|
18
|
+
export type ReposListInput = NonNullable<GetByOrgRepoData['query']> & {
|
|
19
19
|
org?: string;
|
|
20
20
|
};
|
|
21
|
-
export type ReposCreateInput =
|
|
21
|
+
export type ReposCreateInput = PostByOrgRepoData['body'] & {
|
|
22
22
|
org?: string;
|
|
23
23
|
};
|
|
24
24
|
export type ReposGetInput = Omit<GetByOrgByRepoData['path'], 'org'> & {
|
|
@@ -33,34 +33,34 @@ export type ReposDeleteInput = Omit<DeleteByOrgByRepoData['path'], 'org'> & {
|
|
|
33
33
|
export type ContentGetInput = Omit<GetByOrgByRepoContentData['path'], 'org'> & NonNullable<GetByOrgByRepoContentData['query']> & {
|
|
34
34
|
org?: string;
|
|
35
35
|
};
|
|
36
|
-
export type BranchesListInput = Omit<
|
|
36
|
+
export type BranchesListInput = Omit<GetByOrgByRepoBranchData['path'], 'org'> & NonNullable<GetByOrgByRepoBranchData['query']> & {
|
|
37
37
|
org?: string;
|
|
38
38
|
};
|
|
39
|
-
export type BranchesCreateInput = Omit<
|
|
39
|
+
export type BranchesCreateInput = Omit<PostByOrgByRepoBranchData['path'], 'org'> & PostByOrgByRepoBranchData['body'] & {
|
|
40
40
|
org?: string;
|
|
41
41
|
};
|
|
42
|
-
export type BranchesDeleteInput = Omit<
|
|
42
|
+
export type BranchesDeleteInput = Omit<DeleteByOrgByRepoBranchByBranchData['path'], 'org'> & {
|
|
43
43
|
org?: string;
|
|
44
44
|
};
|
|
45
|
-
export type CommitsListInput = Omit<
|
|
45
|
+
export type CommitsListInput = Omit<GetByOrgByRepoCommitData['path'], 'org'> & NonNullable<GetByOrgByRepoCommitData['query']> & {
|
|
46
46
|
org?: string;
|
|
47
47
|
};
|
|
48
|
-
export type CommitsCreateInput = Omit<
|
|
48
|
+
export type CommitsCreateInput = Omit<PostByOrgByRepoCommitData['path'], 'org'> & PostByOrgByRepoCommitData['body'] & {
|
|
49
49
|
org?: string;
|
|
50
50
|
};
|
|
51
|
-
export type CommitsGetInput = Omit<
|
|
51
|
+
export type CommitsGetInput = Omit<GetByOrgByRepoCommitByShaData['path'], 'org'> & {
|
|
52
52
|
org?: string;
|
|
53
53
|
};
|
|
54
54
|
export type DiffsGetInput = Omit<GetByOrgByRepoDiffData['path'], 'org'> & NonNullable<GetByOrgByRepoDiffData['query']> & {
|
|
55
55
|
org?: string;
|
|
56
56
|
};
|
|
57
|
-
export type WebhooksListInput = Omit<
|
|
57
|
+
export type WebhooksListInput = Omit<GetByOrgByRepoWebhookData['path'], 'org'> & {
|
|
58
58
|
org?: string;
|
|
59
59
|
};
|
|
60
|
-
export type WebhooksCreateInput = Omit<
|
|
60
|
+
export type WebhooksCreateInput = Omit<PostByOrgByRepoWebhookData['path'], 'org'> & PostByOrgByRepoWebhookData['body'] & {
|
|
61
61
|
org?: string;
|
|
62
62
|
};
|
|
63
|
-
export type WebhooksDeleteInput = Omit<
|
|
63
|
+
export type WebhooksDeleteInput = Omit<DeleteByOrgByRepoWebhookByWebhookIdData['path'], 'org'> & {
|
|
64
64
|
org?: string;
|
|
65
65
|
};
|
|
66
66
|
export type OrgGetInput = {
|
|
@@ -70,25 +70,25 @@ export type WhoAmIInput = Record<never, never>;
|
|
|
70
70
|
export type RawApi = {
|
|
71
71
|
getWhoami: RawMethod<GetWhoamiData, GetWhoamiResponse>;
|
|
72
72
|
getByOrg: RawMethod<GetByOrgData, GetByOrgResponse>;
|
|
73
|
-
getByOrgApiKeys: RawMethod<
|
|
74
|
-
postByOrgApiKeys: RawMethod<
|
|
75
|
-
deleteByOrgApiKeysById: RawMethod<
|
|
76
|
-
getByOrgRepos: RawMethod<
|
|
77
|
-
postByOrgRepos: RawMethod<
|
|
73
|
+
getByOrgApiKeys: RawMethod<GetByOrgApiKeyData, GetByOrgApiKeyResponse>;
|
|
74
|
+
postByOrgApiKeys: RawMethod<PostByOrgApiKeyData, PostByOrgApiKeyResponse>;
|
|
75
|
+
deleteByOrgApiKeysById: RawMethod<DeleteByOrgApiKeyByIdData, DeleteByOrgApiKeyByIdResponse>;
|
|
76
|
+
getByOrgRepos: RawMethod<GetByOrgRepoData, GetByOrgRepoResponse>;
|
|
77
|
+
postByOrgRepos: RawMethod<PostByOrgRepoData, PostByOrgRepoResponse>;
|
|
78
78
|
getByOrgByRepo: RawMethod<GetByOrgByRepoData, GetByOrgByRepoResponse>;
|
|
79
79
|
patchByOrgByRepo: RawMethod<PatchByOrgByRepoData, PatchByOrgByRepoResponse>;
|
|
80
80
|
deleteByOrgByRepo: RawMethod<DeleteByOrgByRepoData, DeleteByOrgByRepoResponse>;
|
|
81
81
|
getByOrgByRepoContent: RawMethod<GetByOrgByRepoContentData, GetByOrgByRepoContentResponse>;
|
|
82
|
-
getByOrgByRepoBranches: RawMethod<
|
|
83
|
-
postByOrgByRepoBranches: RawMethod<
|
|
84
|
-
deleteByOrgByRepoBranchesByBranch: RawMethod<
|
|
85
|
-
getByOrgByRepoCommits: RawMethod<
|
|
86
|
-
postByOrgByRepoCommits: RawMethod<
|
|
87
|
-
getByOrgByRepoCommitsBySha: RawMethod<
|
|
82
|
+
getByOrgByRepoBranches: RawMethod<GetByOrgByRepoBranchData, GetByOrgByRepoBranchResponse>;
|
|
83
|
+
postByOrgByRepoBranches: RawMethod<PostByOrgByRepoBranchData, PostByOrgByRepoBranchResponse>;
|
|
84
|
+
deleteByOrgByRepoBranchesByBranch: RawMethod<DeleteByOrgByRepoBranchByBranchData, DeleteByOrgByRepoBranchByBranchResponse>;
|
|
85
|
+
getByOrgByRepoCommits: RawMethod<GetByOrgByRepoCommitData, GetByOrgByRepoCommitResponse>;
|
|
86
|
+
postByOrgByRepoCommits: RawMethod<PostByOrgByRepoCommitData, PostByOrgByRepoCommitResponse>;
|
|
87
|
+
getByOrgByRepoCommitsBySha: RawMethod<GetByOrgByRepoCommitByShaData, GetByOrgByRepoCommitByShaResponse>;
|
|
88
88
|
getByOrgByRepoDiff: RawMethod<GetByOrgByRepoDiffData, GetByOrgByRepoDiffResponse>;
|
|
89
|
-
getByOrgByRepoWebhooks: RawMethod<
|
|
90
|
-
postByOrgByRepoWebhooks: RawMethod<
|
|
91
|
-
deleteByOrgByRepoWebhooksByWebhookId: RawMethod<
|
|
89
|
+
getByOrgByRepoWebhooks: RawMethod<GetByOrgByRepoWebhookData, GetByOrgByRepoWebhookResponse>;
|
|
90
|
+
postByOrgByRepoWebhooks: RawMethod<PostByOrgByRepoWebhookData, PostByOrgByRepoWebhookResponse>;
|
|
91
|
+
deleteByOrgByRepoWebhooksByWebhookId: RawMethod<DeleteByOrgByRepoWebhookByWebhookIdData, DeleteByOrgByRepoWebhookByWebhookIdResponse>;
|
|
92
92
|
};
|
|
93
93
|
export declare function createApiResources({ restClient, resolveOrg }: OrgRequestContext): {
|
|
94
94
|
raw: RawApi;
|
|
@@ -96,13 +96,13 @@ export declare function createApiResources({ restClient, resolveOrg }: OrgReques
|
|
|
96
96
|
get: (input?: OrgGetInput) => Promise<GetByOrgResponse>;
|
|
97
97
|
};
|
|
98
98
|
apiKeys: {
|
|
99
|
-
list: (input?: ApiKeysListInput) => Promise<
|
|
100
|
-
create: (input: ApiKeysCreateInput) => Promise<
|
|
101
|
-
revoke: (input: ApiKeysRevokeInput) => Promise<
|
|
99
|
+
list: (input?: ApiKeysListInput) => Promise<GetByOrgApiKeyResponse>;
|
|
100
|
+
create: (input: ApiKeysCreateInput) => Promise<PostByOrgApiKeyResponse>;
|
|
101
|
+
revoke: (input: ApiKeysRevokeInput) => Promise<DeleteByOrgApiKeyByIdResponse>;
|
|
102
102
|
};
|
|
103
103
|
repos: {
|
|
104
|
-
list: (input?: ReposListInput) => Promise<
|
|
105
|
-
create: (input: ReposCreateInput) => Promise<
|
|
104
|
+
list: (input?: ReposListInput) => Promise<GetByOrgRepoResponse>;
|
|
105
|
+
create: (input: ReposCreateInput) => Promise<PostByOrgRepoResponse>;
|
|
106
106
|
get: (input: ReposGetInput) => Promise<GetByOrgByRepoResponse>;
|
|
107
107
|
update: (input: ReposUpdateInput) => Promise<PatchByOrgByRepoResponse>;
|
|
108
108
|
delete: (input: ReposDeleteInput) => Promise<DeleteByOrgByRepoResponse>;
|
|
@@ -111,22 +111,22 @@ export declare function createApiResources({ restClient, resolveOrg }: OrgReques
|
|
|
111
111
|
get: (input: ContentGetInput) => Promise<GetByOrgByRepoContentResponse>;
|
|
112
112
|
};
|
|
113
113
|
branches: {
|
|
114
|
-
list: (input: BranchesListInput) => Promise<
|
|
115
|
-
create: (input: BranchesCreateInput) => Promise<
|
|
116
|
-
delete: (input: BranchesDeleteInput) => Promise<
|
|
114
|
+
list: (input: BranchesListInput) => Promise<GetByOrgByRepoBranchResponse>;
|
|
115
|
+
create: (input: BranchesCreateInput) => Promise<PostByOrgByRepoBranchResponse>;
|
|
116
|
+
delete: (input: BranchesDeleteInput) => Promise<DeleteByOrgByRepoBranchByBranchResponse>;
|
|
117
117
|
};
|
|
118
118
|
commits: {
|
|
119
|
-
list: (input: CommitsListInput) => Promise<
|
|
120
|
-
create: (input: CommitsCreateInput) => Promise<
|
|
121
|
-
get: (input: CommitsGetInput) => Promise<
|
|
119
|
+
list: (input: CommitsListInput) => Promise<GetByOrgByRepoCommitResponse>;
|
|
120
|
+
create: (input: CommitsCreateInput) => Promise<PostByOrgByRepoCommitResponse>;
|
|
121
|
+
get: (input: CommitsGetInput) => Promise<GetByOrgByRepoCommitByShaResponse>;
|
|
122
122
|
};
|
|
123
123
|
diffs: {
|
|
124
124
|
get: (input: DiffsGetInput) => Promise<GetByOrgByRepoDiffResponse>;
|
|
125
125
|
};
|
|
126
126
|
webhooks: {
|
|
127
|
-
list: (input: WebhooksListInput) => Promise<
|
|
128
|
-
create: (input: WebhooksCreateInput) => Promise<
|
|
129
|
-
delete: (input: WebhooksDeleteInput) => Promise<
|
|
127
|
+
list: (input: WebhooksListInput) => Promise<GetByOrgByRepoWebhookResponse>;
|
|
128
|
+
create: (input: WebhooksCreateInput) => Promise<PostByOrgByRepoWebhookResponse>;
|
|
129
|
+
delete: (input: WebhooksDeleteInput) => Promise<DeleteByOrgByRepoWebhookByWebhookIdResponse>;
|
|
130
130
|
};
|
|
131
131
|
};
|
|
132
132
|
export type ApiResources = ReturnType<typeof createApiResources>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/api/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/api/resources.ts"],"names":[],"mappings":"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"}
|
package/dist/api/resources.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { deleteByOrgApiKeyById, deleteByOrgByRepo, deleteByOrgByRepoBranchByBranch, deleteByOrgByRepoWebhookByWebhookId, getByOrg, getByOrgApiKey, getByOrgByRepo, getByOrgByRepoBranch, getByOrgByRepoCommit, getByOrgByRepoCommitBySha, getByOrgByRepoContent, getByOrgByRepoDiff, getByOrgByRepoWebhook, getByOrgRepo, getWhoami, patchByOrgByRepo, postByOrgApiKey, postByOrgByRepoBranch, postByOrgByRepoCommit, postByOrgByRepoWebhook, postByOrgRepo, } from '@mesadev/rest';
|
|
2
2
|
function bindRawOperation(restClient, operation) {
|
|
3
3
|
return ((options) => restClient.request(operation, options));
|
|
4
4
|
}
|
|
@@ -6,25 +6,25 @@ function createRawApi(restClient) {
|
|
|
6
6
|
return {
|
|
7
7
|
getWhoami: bindRawOperation(restClient, getWhoami),
|
|
8
8
|
getByOrg: bindRawOperation(restClient, getByOrg),
|
|
9
|
-
getByOrgApiKeys: bindRawOperation(restClient,
|
|
10
|
-
postByOrgApiKeys: bindRawOperation(restClient,
|
|
11
|
-
deleteByOrgApiKeysById: bindRawOperation(restClient,
|
|
12
|
-
getByOrgRepos: bindRawOperation(restClient,
|
|
13
|
-
postByOrgRepos: bindRawOperation(restClient,
|
|
9
|
+
getByOrgApiKeys: bindRawOperation(restClient, getByOrgApiKey),
|
|
10
|
+
postByOrgApiKeys: bindRawOperation(restClient, postByOrgApiKey),
|
|
11
|
+
deleteByOrgApiKeysById: bindRawOperation(restClient, deleteByOrgApiKeyById),
|
|
12
|
+
getByOrgRepos: bindRawOperation(restClient, getByOrgRepo),
|
|
13
|
+
postByOrgRepos: bindRawOperation(restClient, postByOrgRepo),
|
|
14
14
|
getByOrgByRepo: bindRawOperation(restClient, getByOrgByRepo),
|
|
15
15
|
patchByOrgByRepo: bindRawOperation(restClient, patchByOrgByRepo),
|
|
16
16
|
deleteByOrgByRepo: bindRawOperation(restClient, deleteByOrgByRepo),
|
|
17
17
|
getByOrgByRepoContent: bindRawOperation(restClient, getByOrgByRepoContent),
|
|
18
|
-
getByOrgByRepoBranches: bindRawOperation(restClient,
|
|
19
|
-
postByOrgByRepoBranches: bindRawOperation(restClient,
|
|
20
|
-
deleteByOrgByRepoBranchesByBranch: bindRawOperation(restClient,
|
|
21
|
-
getByOrgByRepoCommits: bindRawOperation(restClient,
|
|
22
|
-
postByOrgByRepoCommits: bindRawOperation(restClient,
|
|
23
|
-
getByOrgByRepoCommitsBySha: bindRawOperation(restClient,
|
|
18
|
+
getByOrgByRepoBranches: bindRawOperation(restClient, getByOrgByRepoBranch),
|
|
19
|
+
postByOrgByRepoBranches: bindRawOperation(restClient, postByOrgByRepoBranch),
|
|
20
|
+
deleteByOrgByRepoBranchesByBranch: bindRawOperation(restClient, deleteByOrgByRepoBranchByBranch),
|
|
21
|
+
getByOrgByRepoCommits: bindRawOperation(restClient, getByOrgByRepoCommit),
|
|
22
|
+
postByOrgByRepoCommits: bindRawOperation(restClient, postByOrgByRepoCommit),
|
|
23
|
+
getByOrgByRepoCommitsBySha: bindRawOperation(restClient, getByOrgByRepoCommitBySha),
|
|
24
24
|
getByOrgByRepoDiff: bindRawOperation(restClient, getByOrgByRepoDiff),
|
|
25
|
-
getByOrgByRepoWebhooks: bindRawOperation(restClient,
|
|
26
|
-
postByOrgByRepoWebhooks: bindRawOperation(restClient,
|
|
27
|
-
deleteByOrgByRepoWebhooksByWebhookId: bindRawOperation(restClient,
|
|
25
|
+
getByOrgByRepoWebhooks: bindRawOperation(restClient, getByOrgByRepoWebhook),
|
|
26
|
+
postByOrgByRepoWebhooks: bindRawOperation(restClient, postByOrgByRepoWebhook),
|
|
27
|
+
deleteByOrgByRepoWebhooksByWebhookId: bindRawOperation(restClient, deleteByOrgByRepoWebhookByWebhookId),
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
export function createApiResources({ restClient, resolveOrg }) {
|
|
@@ -39,29 +39,29 @@ export function createApiResources({ restClient, resolveOrg }) {
|
|
|
39
39
|
apiKeys: {
|
|
40
40
|
list: async (input = {}) => {
|
|
41
41
|
const org = await resolveOrg(input.org);
|
|
42
|
-
return restClient.request(
|
|
42
|
+
return restClient.request(getByOrgApiKey, { path: { org } });
|
|
43
43
|
},
|
|
44
44
|
create: async (input) => {
|
|
45
45
|
const { org: overrideOrg, ...body } = input;
|
|
46
46
|
const org = await resolveOrg(overrideOrg);
|
|
47
|
-
return restClient.request(
|
|
47
|
+
return restClient.request(postByOrgApiKey, { path: { org }, body });
|
|
48
48
|
},
|
|
49
49
|
revoke: async (input) => {
|
|
50
50
|
const { id, org: overrideOrg } = input;
|
|
51
51
|
const org = await resolveOrg(overrideOrg);
|
|
52
|
-
return restClient.request(
|
|
52
|
+
return restClient.request(deleteByOrgApiKeyById, { path: { id, org } });
|
|
53
53
|
},
|
|
54
54
|
},
|
|
55
55
|
repos: {
|
|
56
56
|
list: async (input = {}) => {
|
|
57
57
|
const { org: overrideOrg, ...query } = input;
|
|
58
58
|
const org = await resolveOrg(overrideOrg);
|
|
59
|
-
return restClient.request(
|
|
59
|
+
return restClient.request(getByOrgRepo, { path: { org }, query });
|
|
60
60
|
},
|
|
61
61
|
create: async (input) => {
|
|
62
62
|
const { org: overrideOrg, ...body } = input;
|
|
63
63
|
const org = await resolveOrg(overrideOrg);
|
|
64
|
-
return restClient.request(
|
|
64
|
+
return restClient.request(postByOrgRepo, { path: { org }, body });
|
|
65
65
|
},
|
|
66
66
|
get: async (input) => {
|
|
67
67
|
const { org: overrideOrg, repo } = input;
|
|
@@ -90,34 +90,34 @@ export function createApiResources({ restClient, resolveOrg }) {
|
|
|
90
90
|
list: async (input) => {
|
|
91
91
|
const { org: overrideOrg, repo, ...query } = input;
|
|
92
92
|
const org = await resolveOrg(overrideOrg);
|
|
93
|
-
return restClient.request(
|
|
93
|
+
return restClient.request(getByOrgByRepoBranch, { path: { org, repo }, query });
|
|
94
94
|
},
|
|
95
95
|
create: async (input) => {
|
|
96
96
|
const { org: overrideOrg, repo, ...body } = input;
|
|
97
97
|
const org = await resolveOrg(overrideOrg);
|
|
98
|
-
return restClient.request(
|
|
98
|
+
return restClient.request(postByOrgByRepoBranch, { path: { org, repo }, body });
|
|
99
99
|
},
|
|
100
100
|
delete: async (input) => {
|
|
101
101
|
const { org: overrideOrg, repo, branch } = input;
|
|
102
102
|
const org = await resolveOrg(overrideOrg);
|
|
103
|
-
return restClient.request(
|
|
103
|
+
return restClient.request(deleteByOrgByRepoBranchByBranch, { path: { org, repo, branch } });
|
|
104
104
|
},
|
|
105
105
|
},
|
|
106
106
|
commits: {
|
|
107
107
|
list: async (input) => {
|
|
108
108
|
const { org: overrideOrg, repo, ...query } = input;
|
|
109
109
|
const org = await resolveOrg(overrideOrg);
|
|
110
|
-
return restClient.request(
|
|
110
|
+
return restClient.request(getByOrgByRepoCommit, { path: { org, repo }, query });
|
|
111
111
|
},
|
|
112
112
|
create: async (input) => {
|
|
113
113
|
const { org: overrideOrg, repo, ...body } = input;
|
|
114
114
|
const org = await resolveOrg(overrideOrg);
|
|
115
|
-
return restClient.request(
|
|
115
|
+
return restClient.request(postByOrgByRepoCommit, { path: { org, repo }, body });
|
|
116
116
|
},
|
|
117
117
|
get: async (input) => {
|
|
118
118
|
const { org: overrideOrg, repo, sha } = input;
|
|
119
119
|
const org = await resolveOrg(overrideOrg);
|
|
120
|
-
return restClient.request(
|
|
120
|
+
return restClient.request(getByOrgByRepoCommitBySha, { path: { org, repo, sha } });
|
|
121
121
|
},
|
|
122
122
|
},
|
|
123
123
|
diffs: {
|
|
@@ -131,17 +131,17 @@ export function createApiResources({ restClient, resolveOrg }) {
|
|
|
131
131
|
list: async (input) => {
|
|
132
132
|
const { org: overrideOrg, repo } = input;
|
|
133
133
|
const org = await resolveOrg(overrideOrg);
|
|
134
|
-
return restClient.request(
|
|
134
|
+
return restClient.request(getByOrgByRepoWebhook, { path: { org, repo } });
|
|
135
135
|
},
|
|
136
136
|
create: async (input) => {
|
|
137
137
|
const { org: overrideOrg, repo, ...body } = input;
|
|
138
138
|
const org = await resolveOrg(overrideOrg);
|
|
139
|
-
return restClient.request(
|
|
139
|
+
return restClient.request(postByOrgByRepoWebhook, { path: { org, repo }, body });
|
|
140
140
|
},
|
|
141
141
|
delete: async (input) => {
|
|
142
142
|
const { org: overrideOrg, repo, webhookId } = input;
|
|
143
143
|
const org = await resolveOrg(overrideOrg);
|
|
144
|
-
return restClient.request(
|
|
144
|
+
return restClient.request(deleteByOrgByRepoWebhookByWebhookId, {
|
|
145
145
|
path: { org, repo, webhookId },
|
|
146
146
|
});
|
|
147
147
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/api/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/api/resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,IAAI,MAAM,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/fs/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,cAAc,IAAI,MAAM,EAA6B,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type RevokeKey = (input: {
|
|
2
|
+
id: string;
|
|
3
|
+
}) => Promise<unknown>;
|
|
4
|
+
export declare function trackMintedKey(fsInstance: object, id: string, revoke: RevokeKey): void;
|
|
5
|
+
export declare function revokeAllActiveKeys(): Promise<void>;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=key-cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-cleanup.d.ts","sourceRoot":"","sources":["../../src/fs/key-cleanup.ts"],"names":[],"mappings":"AAqBA,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAsB7D,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAItF;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAIzD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// Automatic lifecycle management for API keys minted by mesa.fs.create().
|
|
2
|
+
//
|
|
3
|
+
// Each MesaFS instance gets a scoped API key. These keys persist server-side
|
|
4
|
+
// until explicitly revoked, so we need to clean them up when they're no longer
|
|
5
|
+
// needed. Three cleanup paths, in order of likelihood:
|
|
6
|
+
//
|
|
7
|
+
// 1. Process exit (SIGINT/SIGTERM/beforeExit) — revokes all outstanding keys.
|
|
8
|
+
// This is the primary path. Handles Ctrl+C, container shutdown, and natural
|
|
9
|
+
// event loop drain.
|
|
10
|
+
//
|
|
11
|
+
// 2. FinalizationRegistry — when a MesaFS instance is garbage collected, its
|
|
12
|
+
// key is revoked. This handles long-running processes that create and discard
|
|
13
|
+
// many FS instances. GC timing is non-deterministic, so this is best-effort.
|
|
14
|
+
//
|
|
15
|
+
// 3. If all else fails (e.g. process.kill(pid, 'SIGKILL')), keys leak. The
|
|
16
|
+
// server-side TTL or manual cleanup via mesa.apiKeys.revoke() covers this.
|
|
17
|
+
//
|
|
18
|
+
// The registry stores only the key id (a string primitive) as the weak callback
|
|
19
|
+
// value — not the KeyHandle itself. This avoids preventing GC of the MesaFS
|
|
20
|
+
// instance via a reference chain through the revoke closure.
|
|
21
|
+
// Maps key id → handle. Used by both the FinalizationRegistry callback and
|
|
22
|
+
// the process shutdown path to find keys that still need revocation.
|
|
23
|
+
const activeKeys = new Map();
|
|
24
|
+
// The registry weak-references MesaFS instances. When one is GC'd, the
|
|
25
|
+
// callback receives its key id, looks up the handle, and fires revocation.
|
|
26
|
+
// If the key was already revoked (e.g. by process shutdown), the lookup
|
|
27
|
+
// returns nothing and it's a no-op.
|
|
28
|
+
const registry = new FinalizationRegistry((id) => {
|
|
29
|
+
const handle = activeKeys.get(id);
|
|
30
|
+
if (!handle)
|
|
31
|
+
return;
|
|
32
|
+
activeKeys.delete(id);
|
|
33
|
+
handle.revoke({ id }).catch(() => { });
|
|
34
|
+
});
|
|
35
|
+
export function trackMintedKey(fsInstance, id, revoke) {
|
|
36
|
+
const handle = { id, revoke };
|
|
37
|
+
activeKeys.set(id, handle);
|
|
38
|
+
registry.register(fsInstance, id);
|
|
39
|
+
}
|
|
40
|
+
export async function revokeAllActiveKeys() {
|
|
41
|
+
const handles = [...activeKeys.values()];
|
|
42
|
+
activeKeys.clear();
|
|
43
|
+
await Promise.allSettled(handles.map((h) => h.revoke({ id: h.id })));
|
|
44
|
+
}
|
|
45
|
+
function installProcessHandlers() {
|
|
46
|
+
if (typeof process === 'undefined' || typeof process.on !== 'function')
|
|
47
|
+
return;
|
|
48
|
+
// Guard against double-revocation if multiple signals fire (e.g. SIGINT
|
|
49
|
+
// followed by beforeExit during the same shutdown sequence).
|
|
50
|
+
let shuttingDown = false;
|
|
51
|
+
async function shutdown() {
|
|
52
|
+
if (shuttingDown)
|
|
53
|
+
return;
|
|
54
|
+
shuttingDown = true;
|
|
55
|
+
await revokeAllActiveKeys();
|
|
56
|
+
}
|
|
57
|
+
// beforeExit fires when the event loop drains naturally. Node re-emits it
|
|
58
|
+
// after async work completes, so awaiting the revocations is safe here.
|
|
59
|
+
process.on('beforeExit', shutdown);
|
|
60
|
+
// SIGINT (Ctrl+C) and SIGTERM (kill, container stop) don't fire beforeExit,
|
|
61
|
+
// so we handle them explicitly. After revocation, we re-exit so the process
|
|
62
|
+
// doesn't hang.
|
|
63
|
+
for (const signal of ['SIGINT', 'SIGTERM']) {
|
|
64
|
+
process.on(signal, () => {
|
|
65
|
+
shutdown().finally(() => process.exit());
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
installProcessHandlers();
|
|
70
|
+
//# sourceMappingURL=key-cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-cleanup.js","sourceRoot":"","sources":["../../src/fs/key-cleanup.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,uBAAuB;AACvB,EAAE;AACF,6EAA6E;AAC7E,iFAAiF;AACjF,gFAAgF;AAChF,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,EAAE;AACF,gFAAgF;AAChF,4EAA4E;AAC5E,6DAA6D;AAS7D,2EAA2E;AAC3E,qEAAqE;AACrE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;AAEhD,uEAAuE;AACvE,2EAA2E;AAC3E,wEAAwE;AACxE,oCAAoC;AACpC,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAS,CAAC,EAAE,EAAE,EAAE;IACvD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAAC,UAAkB,EAAE,EAAU,EAAE,MAAiB;IAC9E,MAAM,MAAM,GAAc,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IACzC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,UAAU,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,sBAAsB;IAC7B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,UAAU;QAAE,OAAO;IAE/E,wEAAwE;IACxE,6DAA6D;IAC7D,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,KAAK,UAAU,QAAQ;QACrB,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QACpB,MAAM,mBAAmB,EAAE,CAAC;IAC9B,CAAC;IAED,0EAA0E;IAC1E,wEAAwE;IACxE,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEnC,4EAA4E;IAC5E,4EAA4E;IAC5E,gBAAgB;IAChB,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAU,EAAE,CAAC;QACpD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Bash, type BashOptions, type BufferEncoding, type CpOptions, type FileContent, type FsStat, type IFileSystem, type MkdirOptions, type RmOptions } from 'just-bash';
|
|
2
|
+
export type MesaBashOptions = Pick<BashOptions, 'env' | 'cwd' | 'executionLimits' | 'fetch' | 'network' | 'python' | 'javascript' | 'commands' | 'customCommands' | 'logger'>;
|
|
3
|
+
export interface MesaFileSystemConfig {
|
|
4
|
+
org: string;
|
|
5
|
+
apiKey: string;
|
|
6
|
+
repos: Array<{
|
|
7
|
+
name: string;
|
|
8
|
+
desiredBookmark?: string;
|
|
9
|
+
}>;
|
|
10
|
+
mode?: 'read-only' | 'read-write';
|
|
11
|
+
cache?: {
|
|
12
|
+
diskCache?: {
|
|
13
|
+
path: string;
|
|
14
|
+
maxSizeBytes?: number;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
apiBaseUrl?: string;
|
|
18
|
+
vcsUrl?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* MesaFS-backed implementation of the just-bash IFileSystem interface.
|
|
22
|
+
*
|
|
23
|
+
* Uses native Rust code via NAPI to provide a high-performance filesystem
|
|
24
|
+
* backed by Mesa's cloud storage. The native addon is loaded lazily on the
|
|
25
|
+
* first call to `MesaFileSystem.create()`.
|
|
26
|
+
*/
|
|
27
|
+
export declare class MesaFileSystem implements IFileSystem {
|
|
28
|
+
private native;
|
|
29
|
+
private constructor();
|
|
30
|
+
static create(config: MesaFileSystemConfig): MesaFileSystem;
|
|
31
|
+
readFile(path: string, options?: {
|
|
32
|
+
encoding?: BufferEncoding | null;
|
|
33
|
+
} | BufferEncoding): Promise<string>;
|
|
34
|
+
readFileBuffer(path: string): Promise<Uint8Array>;
|
|
35
|
+
writeFile(path: string, content: FileContent, options?: {
|
|
36
|
+
encoding?: BufferEncoding;
|
|
37
|
+
} | BufferEncoding): Promise<void>;
|
|
38
|
+
appendFile(path: string, content: FileContent, options?: {
|
|
39
|
+
encoding?: BufferEncoding;
|
|
40
|
+
} | BufferEncoding): Promise<void>;
|
|
41
|
+
exists(path: string): Promise<boolean>;
|
|
42
|
+
stat(path: string): Promise<FsStat>;
|
|
43
|
+
lstat(path: string): Promise<FsStat>;
|
|
44
|
+
mkdir(path: string, options?: MkdirOptions): Promise<void>;
|
|
45
|
+
readdir(path: string): Promise<string[]>;
|
|
46
|
+
readdirWithFileTypes(path: string): Promise<Array<{
|
|
47
|
+
name: string;
|
|
48
|
+
isFile: boolean;
|
|
49
|
+
isDirectory: boolean;
|
|
50
|
+
isSymbolicLink: boolean;
|
|
51
|
+
}>>;
|
|
52
|
+
rm(path: string, options?: RmOptions): Promise<void>;
|
|
53
|
+
cp(src: string, dest: string, options?: CpOptions): Promise<void>;
|
|
54
|
+
mv(src: string, dest: string): Promise<void>;
|
|
55
|
+
resolvePath(base: string, path: string): string;
|
|
56
|
+
getAllPaths(): string[];
|
|
57
|
+
chmod(path: string, mode: number): Promise<void>;
|
|
58
|
+
symlink(target: string, linkPath: string): Promise<void>;
|
|
59
|
+
link(existingPath: string, newPath: string): Promise<void>;
|
|
60
|
+
readlink(path: string): Promise<string>;
|
|
61
|
+
realpath(path: string): Promise<string>;
|
|
62
|
+
utimes(path: string, atime: Date, mtime: Date): Promise<void>;
|
|
63
|
+
bash(options?: MesaBashOptions): Bash;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=mesa-file-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesa-file-system.d.ts","sourceRoot":"","sources":["../../src/fs/mesa-file-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { Bash, } from 'just-bash';
|
|
2
|
+
import { loadNativeAddon } from './native-loader.js';
|
|
3
|
+
let nativeModule = null;
|
|
4
|
+
function getEncoding(options) {
|
|
5
|
+
if (options === null || options === undefined)
|
|
6
|
+
return undefined;
|
|
7
|
+
if (typeof options === 'string')
|
|
8
|
+
return options;
|
|
9
|
+
return options.encoding ?? undefined;
|
|
10
|
+
}
|
|
11
|
+
// "binary" isn't a real encoding — it's a Node.js/just-bash convention where each
|
|
12
|
+
// byte is represented as the corresponding latin1 character (U+0000–U+00FF). We
|
|
13
|
+
// intercept it in the TS layer and convert between raw bytes and latin1 strings,
|
|
14
|
+
// bypassing the Rust text encoding path. This matches just-bash's fromBuffer/toBuffer:
|
|
15
|
+
// https://github.com/vercel-labs/just-bash/blob/main/src/fs/encoding.ts
|
|
16
|
+
function isBinaryEncoding(encoding) {
|
|
17
|
+
return encoding === 'binary';
|
|
18
|
+
}
|
|
19
|
+
function binaryStringToBytes(content) {
|
|
20
|
+
return Buffer.from(content, 'latin1');
|
|
21
|
+
}
|
|
22
|
+
function bytesToBinaryString(content) {
|
|
23
|
+
return Buffer.from(content).toString('latin1');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* MesaFS-backed implementation of the just-bash IFileSystem interface.
|
|
27
|
+
*
|
|
28
|
+
* Uses native Rust code via NAPI to provide a high-performance filesystem
|
|
29
|
+
* backed by Mesa's cloud storage. The native addon is loaded lazily on the
|
|
30
|
+
* first call to `MesaFileSystem.create()`.
|
|
31
|
+
*/
|
|
32
|
+
export class MesaFileSystem {
|
|
33
|
+
native;
|
|
34
|
+
constructor(nativeInstance) {
|
|
35
|
+
this.native = nativeInstance;
|
|
36
|
+
}
|
|
37
|
+
static create(config) {
|
|
38
|
+
nativeModule ??= loadNativeAddon();
|
|
39
|
+
const nativeInstance = new nativeModule.MesaFileSystem(config);
|
|
40
|
+
return new MesaFileSystem(nativeInstance);
|
|
41
|
+
}
|
|
42
|
+
async readFile(path, options) {
|
|
43
|
+
const encoding = getEncoding(options);
|
|
44
|
+
if (isBinaryEncoding(encoding)) {
|
|
45
|
+
return bytesToBinaryString(await this.native.readBytes(path));
|
|
46
|
+
}
|
|
47
|
+
return this.native.readText(path, encoding);
|
|
48
|
+
}
|
|
49
|
+
async readFileBuffer(path) {
|
|
50
|
+
return this.native.readBytes(path);
|
|
51
|
+
}
|
|
52
|
+
async writeFile(path, content, options) {
|
|
53
|
+
const encoding = getEncoding(options);
|
|
54
|
+
if (typeof content === 'string') {
|
|
55
|
+
if (isBinaryEncoding(encoding)) {
|
|
56
|
+
return this.native.writeBytes(path, binaryStringToBytes(content));
|
|
57
|
+
}
|
|
58
|
+
return this.native.writeText(path, content, encoding);
|
|
59
|
+
}
|
|
60
|
+
return this.native.writeBytes(path, content);
|
|
61
|
+
}
|
|
62
|
+
async appendFile(path, content, options) {
|
|
63
|
+
const encoding = getEncoding(options);
|
|
64
|
+
if (typeof content === 'string') {
|
|
65
|
+
if (isBinaryEncoding(encoding)) {
|
|
66
|
+
return this.native.appendBytes(path, binaryStringToBytes(content));
|
|
67
|
+
}
|
|
68
|
+
return this.native.appendText(path, content, encoding);
|
|
69
|
+
}
|
|
70
|
+
return this.native.appendBytes(path, content);
|
|
71
|
+
}
|
|
72
|
+
async exists(path) {
|
|
73
|
+
return this.native.exists(path);
|
|
74
|
+
}
|
|
75
|
+
async stat(path) {
|
|
76
|
+
const s = await this.native.stat(path);
|
|
77
|
+
return {
|
|
78
|
+
...s,
|
|
79
|
+
mtime: new Date(s.mtime),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
async lstat(path) {
|
|
83
|
+
const s = await this.native.lstat(path);
|
|
84
|
+
return {
|
|
85
|
+
...s,
|
|
86
|
+
mtime: new Date(s.mtime),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
async mkdir(path, options) {
|
|
90
|
+
return this.native.mkdir(path, options?.recursive);
|
|
91
|
+
}
|
|
92
|
+
async readdir(path) {
|
|
93
|
+
return this.native.readdir(path);
|
|
94
|
+
}
|
|
95
|
+
async readdirWithFileTypes(path) {
|
|
96
|
+
return this.native.readdirWithFileTypes(path);
|
|
97
|
+
}
|
|
98
|
+
async rm(path, options) {
|
|
99
|
+
return this.native.rm(path, options?.recursive, options?.force);
|
|
100
|
+
}
|
|
101
|
+
async cp(src, dest, options) {
|
|
102
|
+
return this.native.cp(src, dest, options?.recursive);
|
|
103
|
+
}
|
|
104
|
+
async mv(src, dest) {
|
|
105
|
+
return this.native.mv(src, dest);
|
|
106
|
+
}
|
|
107
|
+
resolvePath(base, path) {
|
|
108
|
+
return this.native.resolvePath(base, path);
|
|
109
|
+
}
|
|
110
|
+
getAllPaths() {
|
|
111
|
+
return this.native.getAllPaths();
|
|
112
|
+
}
|
|
113
|
+
async chmod(path, mode) {
|
|
114
|
+
return this.native.chmod(path, mode);
|
|
115
|
+
}
|
|
116
|
+
async symlink(target, linkPath) {
|
|
117
|
+
return this.native.symlink(target, linkPath);
|
|
118
|
+
}
|
|
119
|
+
async link(existingPath, newPath) {
|
|
120
|
+
return this.native.link(existingPath, newPath);
|
|
121
|
+
}
|
|
122
|
+
async readlink(path) {
|
|
123
|
+
return this.native.readlink(path);
|
|
124
|
+
}
|
|
125
|
+
async realpath(path) {
|
|
126
|
+
return this.native.realpath(path);
|
|
127
|
+
}
|
|
128
|
+
async utimes(path, atime, mtime) {
|
|
129
|
+
return this.native.utimes(path, atime.getTime(), mtime.getTime());
|
|
130
|
+
}
|
|
131
|
+
bash(options) {
|
|
132
|
+
return new Bash({ ...options, fs: this });
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=mesa-file-system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesa-file-system.js","sourceRoot":"","sources":["../../src/fs/mesa-file-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export interface NativeConfig {
|
|
2
|
+
org: string;
|
|
3
|
+
apiKey: string;
|
|
4
|
+
repos: Array<{
|
|
5
|
+
name: string;
|
|
6
|
+
desiredBookmark?: string;
|
|
7
|
+
}>;
|
|
8
|
+
mode?: string;
|
|
9
|
+
cache?: {
|
|
10
|
+
diskCache?: {
|
|
11
|
+
path: string;
|
|
12
|
+
maxSizeBytes?: number;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
apiBaseUrl?: string;
|
|
16
|
+
vcsUrl?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface NativeStat {
|
|
19
|
+
isFile: boolean;
|
|
20
|
+
isDirectory: boolean;
|
|
21
|
+
isSymbolicLink: boolean;
|
|
22
|
+
mode: number;
|
|
23
|
+
size: number;
|
|
24
|
+
mtime: number;
|
|
25
|
+
}
|
|
26
|
+
export interface NativeDirentEntry {
|
|
27
|
+
name: string;
|
|
28
|
+
isFile: boolean;
|
|
29
|
+
isDirectory: boolean;
|
|
30
|
+
isSymbolicLink: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface NativeMesaFileSystem {
|
|
33
|
+
readText(path: string, encoding?: string): Promise<string>;
|
|
34
|
+
readBytes(path: string): Promise<Uint8Array>;
|
|
35
|
+
writeText(path: string, content: string, encoding?: string): Promise<void>;
|
|
36
|
+
writeBytes(path: string, content: Uint8Array): Promise<void>;
|
|
37
|
+
appendText(path: string, content: string, encoding?: string): Promise<void>;
|
|
38
|
+
appendBytes(path: string, content: Uint8Array): Promise<void>;
|
|
39
|
+
exists(path: string): Promise<boolean>;
|
|
40
|
+
stat(path: string): Promise<NativeStat>;
|
|
41
|
+
lstat(path: string): Promise<NativeStat>;
|
|
42
|
+
mkdir(path: string, recursive?: boolean): Promise<void>;
|
|
43
|
+
readdir(path: string): Promise<string[]>;
|
|
44
|
+
readdirWithFileTypes(path: string): Promise<NativeDirentEntry[]>;
|
|
45
|
+
rm(path: string, recursive?: boolean, force?: boolean): Promise<void>;
|
|
46
|
+
cp(src: string, dest: string, recursive?: boolean): Promise<void>;
|
|
47
|
+
mv(src: string, dest: string): Promise<void>;
|
|
48
|
+
resolvePath(base: string, path: string): string;
|
|
49
|
+
getAllPaths(): string[];
|
|
50
|
+
chmod(path: string, mode: number): Promise<void>;
|
|
51
|
+
symlink(target: string, linkPath: string): Promise<void>;
|
|
52
|
+
link(existingPath: string, newPath: string): Promise<void>;
|
|
53
|
+
readlink(path: string): Promise<string>;
|
|
54
|
+
realpath(path: string): Promise<string>;
|
|
55
|
+
utimes(path: string, atime: number, mtime: number): Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
export interface NativeModule {
|
|
58
|
+
MesaFileSystem: new (config: NativeConfig) => NativeMesaFileSystem;
|
|
59
|
+
}
|
|
60
|
+
export declare function loadNativeAddon(): NativeModule;
|
|
61
|
+
//# sourceMappingURL=native-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-loader.d.ts","sourceRoot":"","sources":["../../src/fs/native-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
function isRecoverableNativeLoadError(error) {
|
|
3
|
+
return error instanceof Error && error.code === 'ERR_DLOPEN_FAILED';
|
|
4
|
+
}
|
|
5
|
+
function detectLinuxLibc() {
|
|
6
|
+
const report = process.report?.getReport?.();
|
|
7
|
+
const header = report && typeof report === 'object' && 'header' in report ? report.header : undefined;
|
|
8
|
+
if (header && typeof header === 'object' && 'glibcVersionRuntime' in header) {
|
|
9
|
+
if (typeof header.glibcVersionRuntime === 'string' && header.glibcVersionRuntime.length > 0) {
|
|
10
|
+
return 'gnu';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const sharedObjects = report && typeof report === 'object' && 'sharedObjects' in report ? report.sharedObjects : undefined;
|
|
14
|
+
if (Array.isArray(sharedObjects)) {
|
|
15
|
+
if (sharedObjects.some((sharedObject) => sharedObject.includes('musl'))) {
|
|
16
|
+
return 'musl';
|
|
17
|
+
}
|
|
18
|
+
if (sharedObjects.some((sharedObject) => sharedObject.includes('glibc') || sharedObject.includes('ld-linux'))) {
|
|
19
|
+
return 'gnu';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
function getPackageSuffix() {
|
|
25
|
+
const { platform, arch } = process;
|
|
26
|
+
if (platform === 'darwin' && (arch === 'x64' || arch === 'arm64')) {
|
|
27
|
+
return { suffix: `darwin-${arch}` };
|
|
28
|
+
}
|
|
29
|
+
if (platform !== 'linux') {
|
|
30
|
+
throw new Error(`Unsupported mesafs-napi runtime: platform=${platform} arch=${arch}`);
|
|
31
|
+
}
|
|
32
|
+
const libc = detectLinuxLibc();
|
|
33
|
+
if (!libc) {
|
|
34
|
+
throw new Error('Unable to determine Linux libc for mesafs-napi runtime selection.');
|
|
35
|
+
}
|
|
36
|
+
if (arch === 'x64') {
|
|
37
|
+
return { suffix: `linux-x64-${libc}`, libc };
|
|
38
|
+
}
|
|
39
|
+
if (arch === 'arm64') {
|
|
40
|
+
return { suffix: 'linux-arm64-musl', libc };
|
|
41
|
+
}
|
|
42
|
+
throw new Error(`Unsupported mesafs-napi runtime: platform=${platform} arch=${arch} libc=${libc}`);
|
|
43
|
+
}
|
|
44
|
+
function getRuntimeTarget() {
|
|
45
|
+
const { suffix, libc } = getPackageSuffix();
|
|
46
|
+
return {
|
|
47
|
+
arch: process.arch,
|
|
48
|
+
libc,
|
|
49
|
+
packageName: `@mesadev/mesafs-napi-${suffix}`,
|
|
50
|
+
platform: process.platform,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function createMissingNativeAddonError(target) {
|
|
54
|
+
return new Error(`Unable to load mesafs-napi native addon. ` +
|
|
55
|
+
`Install the package for your platform: npm install ${target.packageName} ` +
|
|
56
|
+
`or set MESAFS_NAPI_PATH to a local .node file.`);
|
|
57
|
+
}
|
|
58
|
+
function loadFromEnvPath(require) {
|
|
59
|
+
const envPath = process.env.MESAFS_NAPI_PATH;
|
|
60
|
+
if (!envPath) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
return require(envPath);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
if (isRecoverableNativeLoadError(error)) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function loadInstalledNativeAddon(require, target) {
|
|
74
|
+
let resolvedPath;
|
|
75
|
+
try {
|
|
76
|
+
resolvedPath = require.resolve(target.packageName);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
if (error.code === 'MODULE_NOT_FOUND') {
|
|
80
|
+
throw createMissingNativeAddonError(target);
|
|
81
|
+
}
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
return require(resolvedPath);
|
|
85
|
+
}
|
|
86
|
+
export function loadNativeAddon() {
|
|
87
|
+
const require = createRequire(import.meta.url);
|
|
88
|
+
const envAddon = loadFromEnvPath(require);
|
|
89
|
+
if (envAddon) {
|
|
90
|
+
return envAddon;
|
|
91
|
+
}
|
|
92
|
+
return loadInstalledNativeAddon(require, getRuntimeTarget());
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=native-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-loader.js","sourceRoot":"","sources":["../../src/fs/native-loader.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
export type { BashLogger, BashOptions, CommandName, CustomCommand, ExecResult, JavaScriptConfig, NetworkConfig, SecureFetch, } from 'just-bash';
|
|
2
|
+
export { Bash } from 'just-bash';
|
|
3
|
+
export { type MesaBashOptions, type MesaFileSystemConfig, MesaFS } from './fs/index.js';
|
|
1
4
|
export type { GitClient, GitCommitResponse, GitFileStatus, GitStatus, ListBranchResponse } from './git/index.js';
|
|
2
5
|
export * from './lib/errors.js';
|
|
3
|
-
export { Mesa, type MesaOptions } from './mesa.js';
|
|
6
|
+
export { Mesa, type MesaFSCreateOptions, type MesaOptions } from './mesa.js';
|
|
4
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjH,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACxF,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjH,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAmD,MAAM,EAAE,MAAM,eAAe,CAAC;AAExF,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,IAAI,EAA8C,MAAM,WAAW,CAAC"}
|
package/dist/lib/errors.js
CHANGED
|
@@ -8,7 +8,7 @@ export class MesaError extends Error {
|
|
|
8
8
|
}
|
|
9
9
|
export class MissingApiKeyError extends MesaError {
|
|
10
10
|
constructor(envVar) {
|
|
11
|
-
super('MISSING_API_KEY', `Missing API key. Pass \`
|
|
11
|
+
super('MISSING_API_KEY', `Missing API key. Pass \`adminApiKey\` or set \`${envVar}\` in your environment.`);
|
|
12
12
|
this.name = 'MissingApiKeyError';
|
|
13
13
|
}
|
|
14
14
|
}
|
package/dist/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,IAAI,CAAgB;IAE7B,YAAY,IAAmB,EAAE,OAAe,EAAE,OAAsB;QACtE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C,YAAY,MAAc;QACxB,KAAK,CAAC,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,IAAI,CAAgB;IAE7B,YAAY,IAAmB,EAAE,OAAe,EAAE,OAAsB;QACtE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C,YAAY,MAAc;QACxB,KAAK,CAAC,iBAAiB,EAAE,kDAAkD,MAAM,yBAAyB,CAAC,CAAC;QAC5G,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C,YAAY,MAAc;QACxB,KAAK,CAAC,iBAAiB,EAAE,oBAAoB,MAAM,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,uBAAuB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
|
package/dist/mesa.d.ts
CHANGED
|
@@ -1,16 +1,32 @@
|
|
|
1
1
|
import type { GetWhoamiResponse } from '@mesadev/rest';
|
|
2
2
|
import { type ApiResources } from './api/resources.js';
|
|
3
|
+
import { MesaFileSystem } from './fs/mesa-file-system.js';
|
|
3
4
|
import type { GitClient } from './git/types.js';
|
|
4
5
|
export interface MesaOptions {
|
|
6
|
+
adminApiKey?: string;
|
|
5
7
|
apiUrl?: string;
|
|
6
|
-
|
|
8
|
+
vcsUrl?: string;
|
|
7
9
|
org?: string;
|
|
8
10
|
fetch?: typeof globalThis.fetch;
|
|
9
11
|
userAgent?: string;
|
|
10
12
|
}
|
|
13
|
+
export interface MesaFSCreateOptions {
|
|
14
|
+
repos: Array<{
|
|
15
|
+
name: string;
|
|
16
|
+
desiredBookmark?: string;
|
|
17
|
+
}>;
|
|
18
|
+
mode?: 'rw' | 'ro';
|
|
19
|
+
cache?: {
|
|
20
|
+
diskCache?: {
|
|
21
|
+
path: string;
|
|
22
|
+
maxSizeBytes?: number;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
}
|
|
11
26
|
export declare class Mesa {
|
|
12
|
-
readonly
|
|
27
|
+
readonly adminApiKey: string;
|
|
13
28
|
readonly apiUrl: string;
|
|
29
|
+
readonly vcsUrl: string;
|
|
14
30
|
readonly git: GitClient;
|
|
15
31
|
readonly raw: ApiResources['raw'];
|
|
16
32
|
readonly org: ApiResources['org'];
|
|
@@ -21,6 +37,9 @@ export declare class Mesa {
|
|
|
21
37
|
readonly commits: ApiResources['commits'];
|
|
22
38
|
readonly diffs: ApiResources['diffs'];
|
|
23
39
|
readonly webhooks: ApiResources['webhooks'];
|
|
40
|
+
readonly fs: {
|
|
41
|
+
create: (options: MesaFSCreateOptions) => Promise<MesaFileSystem>;
|
|
42
|
+
};
|
|
24
43
|
private readonly restClient;
|
|
25
44
|
private readonly orgResolutionPromise;
|
|
26
45
|
private readonly whoAmIResolutionPromise;
|
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,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAE3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"mesa.d.ts","sourceRoot":"","sources":["../src/mesa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,cAAc,EAA6B,MAAM,0BAA0B,CAAC;AAErF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAwChD,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACrD,CAAC;CACH;AAED,qBAAa,IAAI;IACf,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,EAAE;QACX,MAAM,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;KACnE,CAAC;IAEF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAkB;IACvD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAoC;IAC5E,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,YAAY,CAAkC;gBAE1C,OAAO,GAAE,WAAgB;IAqE/B,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYzC,MAAM,IAAI,OAAO,CAAC,iBAAiB,CAAC;YAa5B,WAAW;YAOX,oBAAoB;CAWnC"}
|
package/dist/mesa.js
CHANGED
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import { createRestClient } from './api/client.js';
|
|
2
2
|
import { createApiResources } from './api/resources.js';
|
|
3
|
+
import { trackMintedKey } from './fs/key-cleanup.js';
|
|
4
|
+
import { MesaFileSystem } from './fs/mesa-file-system.js';
|
|
3
5
|
import { nodeGitClient } from './git/service.js';
|
|
4
6
|
import { InvalidApiUrlError, MissingApiKeyError, OrgResolutionError } from './lib/errors.js';
|
|
5
|
-
const DEFAULT_API_URL = 'https://api.mesa.dev/
|
|
6
|
-
const
|
|
7
|
+
const DEFAULT_API_URL = 'https://api.mesa.dev/v1';
|
|
8
|
+
const DEFAULT_VCS_URL = 'https://vcs.mesa.dev';
|
|
9
|
+
const API_KEY_ENV_VAR = 'MESA_ADMIN_API_KEY';
|
|
7
10
|
function getEnvApiKey() {
|
|
8
11
|
if (typeof process === 'undefined') {
|
|
9
12
|
return undefined;
|
|
10
13
|
}
|
|
11
14
|
return process.env[API_KEY_ENV_VAR]?.trim();
|
|
12
15
|
}
|
|
13
|
-
function
|
|
14
|
-
const value = input?.trim() || DEFAULT_API_URL;
|
|
16
|
+
function normalizeUrl(input) {
|
|
15
17
|
let parsed;
|
|
16
18
|
try {
|
|
17
|
-
parsed = new URL(
|
|
19
|
+
parsed = new URL(input);
|
|
18
20
|
}
|
|
19
21
|
catch {
|
|
20
|
-
throw new InvalidApiUrlError(
|
|
22
|
+
throw new InvalidApiUrlError(input);
|
|
21
23
|
}
|
|
22
24
|
if (parsed.protocol !== 'https:' && parsed.protocol !== 'http:') {
|
|
23
|
-
throw new InvalidApiUrlError(
|
|
25
|
+
throw new InvalidApiUrlError(input);
|
|
24
26
|
}
|
|
25
27
|
parsed.pathname = parsed.pathname.replace(/\/+$/, '') || '/';
|
|
26
28
|
return parsed.toString().replace(/\/$/, '');
|
|
@@ -33,8 +35,9 @@ function resolveApiKey(input) {
|
|
|
33
35
|
return apiKey;
|
|
34
36
|
}
|
|
35
37
|
export class Mesa {
|
|
36
|
-
|
|
38
|
+
adminApiKey;
|
|
37
39
|
apiUrl;
|
|
40
|
+
vcsUrl;
|
|
38
41
|
git;
|
|
39
42
|
raw;
|
|
40
43
|
org;
|
|
@@ -45,16 +48,18 @@ export class Mesa {
|
|
|
45
48
|
commits;
|
|
46
49
|
diffs;
|
|
47
50
|
webhooks;
|
|
51
|
+
fs;
|
|
48
52
|
restClient;
|
|
49
53
|
orgResolutionPromise;
|
|
50
54
|
whoAmIResolutionPromise;
|
|
51
55
|
cachedOrgSlug = null;
|
|
52
56
|
cachedWhoAmI = null;
|
|
53
57
|
constructor(options = {}) {
|
|
54
|
-
this.
|
|
55
|
-
this.apiUrl =
|
|
58
|
+
this.adminApiKey = resolveApiKey(options.adminApiKey);
|
|
59
|
+
this.apiUrl = normalizeUrl(options.apiUrl?.trim() || DEFAULT_API_URL);
|
|
60
|
+
this.vcsUrl = normalizeUrl(options.vcsUrl?.trim() || DEFAULT_VCS_URL);
|
|
56
61
|
this.restClient = createRestClient({
|
|
57
|
-
apiKey: this.
|
|
62
|
+
apiKey: this.adminApiKey,
|
|
58
63
|
apiUrl: this.apiUrl,
|
|
59
64
|
fetch: options.fetch,
|
|
60
65
|
userAgent: options.userAgent,
|
|
@@ -85,6 +90,30 @@ export class Mesa {
|
|
|
85
90
|
this.commits = resources.commits;
|
|
86
91
|
this.diffs = resources.diffs;
|
|
87
92
|
this.webhooks = resources.webhooks;
|
|
93
|
+
this.fs = {
|
|
94
|
+
create: async (fsOptions) => {
|
|
95
|
+
const org = await this.resolveOrg();
|
|
96
|
+
const scopes = fsOptions.mode === 'ro'
|
|
97
|
+
? ['git:read', 'repo:read']
|
|
98
|
+
: ['git:read', 'git:write', 'repo:read'];
|
|
99
|
+
const { id, key } = await this.apiKeys.create({
|
|
100
|
+
name: `mesafs-${Date.now()}`,
|
|
101
|
+
scopes: [...scopes],
|
|
102
|
+
});
|
|
103
|
+
const config = {
|
|
104
|
+
org,
|
|
105
|
+
apiKey: key,
|
|
106
|
+
repos: fsOptions.repos,
|
|
107
|
+
mode: fsOptions.mode === 'ro' ? 'read-only' : 'read-write',
|
|
108
|
+
cache: fsOptions.cache,
|
|
109
|
+
apiBaseUrl: this.apiUrl,
|
|
110
|
+
vcsUrl: this.vcsUrl,
|
|
111
|
+
};
|
|
112
|
+
const fs = MesaFileSystem.create(config);
|
|
113
|
+
trackMintedKey(fs, id, (input) => this.apiKeys.revoke(input));
|
|
114
|
+
return fs;
|
|
115
|
+
},
|
|
116
|
+
};
|
|
88
117
|
}
|
|
89
118
|
async resolveOrg(org) {
|
|
90
119
|
if (org?.trim()) {
|
package/dist/mesa.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesa.js","sourceRoot":"","sources":["../src/mesa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAmB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAqB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"mesa.js","sourceRoot":"","sources":["../src/mesa.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mesadev/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Official Mesa TypeScript SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -35,7 +35,15 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@mesadev/rest": "workspace:*",
|
|
38
|
-
"isomorphic-git": "^1.37.2"
|
|
38
|
+
"isomorphic-git": "^1.37.2",
|
|
39
|
+
"just-bash": "^2.13.0"
|
|
40
|
+
},
|
|
41
|
+
"optionalDependencies": {
|
|
42
|
+
"@mesadev/mesafs-napi-darwin-arm64": "^0.1.0",
|
|
43
|
+
"@mesadev/mesafs-napi-darwin-x64": "^0.1.0",
|
|
44
|
+
"@mesadev/mesafs-napi-linux-arm64-musl": "^0.1.0",
|
|
45
|
+
"@mesadev/mesafs-napi-linux-x64-gnu": "^0.1.0",
|
|
46
|
+
"@mesadev/mesafs-napi-linux-x64-musl": "^0.1.0"
|
|
39
47
|
},
|
|
40
48
|
"devDependencies": {
|
|
41
49
|
"@jest/globals": "^30.3.0",
|