@mesadev/sdk 0.3.2 → 0.3.3

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 (89) hide show
  1. package/README.md +53 -13
  2. package/dist/api/client.d.ts +26 -0
  3. package/dist/api/client.d.ts.map +1 -0
  4. package/dist/api/client.js +40 -0
  5. package/dist/api/client.js.map +1 -0
  6. package/dist/api/index.d.ts +2 -0
  7. package/dist/api/index.d.ts.map +1 -0
  8. package/dist/api/index.js +2 -0
  9. package/dist/api/index.js.map +1 -0
  10. package/dist/api/resources.d.ts +134 -0
  11. package/dist/api/resources.d.ts.map +1 -0
  12. package/dist/api/resources.js +151 -0
  13. package/dist/api/resources.js.map +1 -0
  14. package/dist/git/index.d.ts +2 -0
  15. package/dist/git/index.d.ts.map +1 -0
  16. package/dist/git/index.js +2 -0
  17. package/dist/git/index.js.map +1 -0
  18. package/dist/git/path-utils.d.ts +4 -0
  19. package/dist/git/path-utils.d.ts.map +1 -0
  20. package/dist/git/path-utils.js +47 -0
  21. package/dist/git/path-utils.js.map +1 -0
  22. package/dist/git/service.d.ts +3 -0
  23. package/dist/git/service.d.ts.map +1 -0
  24. package/dist/git/service.js +308 -0
  25. package/dist/git/service.js.map +1 -0
  26. package/dist/git/types.d.ts +30 -0
  27. package/dist/git/types.d.ts.map +1 -0
  28. package/dist/git/types.js +2 -0
  29. package/dist/git/types.js.map +1 -0
  30. package/dist/index.d.ts +4 -1
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +3 -2
  33. package/dist/index.js.map +1 -0
  34. package/dist/lib/errors.d.ts +15 -0
  35. package/dist/lib/errors.d.ts.map +1 -0
  36. package/dist/lib/errors.js +27 -0
  37. package/dist/lib/errors.js.map +1 -0
  38. package/dist/mesa.d.ts +35 -0
  39. package/dist/mesa.d.ts.map +1 -0
  40. package/dist/mesa.js +126 -0
  41. package/dist/mesa.js.map +1 -0
  42. package/package.json +43 -20
  43. package/LICENSE +0 -201
  44. package/dist/client/client.gen.d.ts +0 -2
  45. package/dist/client/client.gen.js +0 -234
  46. package/dist/client/index.d.ts +0 -8
  47. package/dist/client/index.js +0 -6
  48. package/dist/client/types.gen.d.ts +0 -117
  49. package/dist/client/types.gen.js +0 -2
  50. package/dist/client/utils.gen.d.ts +0 -33
  51. package/dist/client/utils.gen.js +0 -228
  52. package/dist/client.gen.d.ts +0 -12
  53. package/dist/client.gen.js +0 -3
  54. package/dist/core/auth.gen.d.ts +0 -18
  55. package/dist/core/auth.gen.js +0 -14
  56. package/dist/core/bodySerializer.gen.d.ts +0 -25
  57. package/dist/core/bodySerializer.gen.js +0 -57
  58. package/dist/core/params.gen.d.ts +0 -43
  59. package/dist/core/params.gen.js +0 -100
  60. package/dist/core/pathSerializer.gen.d.ts +0 -33
  61. package/dist/core/pathSerializer.gen.js +0 -106
  62. package/dist/core/queryKeySerializer.gen.d.ts +0 -18
  63. package/dist/core/queryKeySerializer.gen.js +0 -92
  64. package/dist/core/serverSentEvents.gen.d.ts +0 -71
  65. package/dist/core/serverSentEvents.gen.js +0 -133
  66. package/dist/core/types.gen.d.ts +0 -78
  67. package/dist/core/types.gen.js +0 -2
  68. package/dist/core/utils.gen.d.ts +0 -19
  69. package/dist/core/utils.gen.js +0 -87
  70. package/dist/sdk.gen.d.ts +0 -123
  71. package/dist/sdk.gen.js +0 -202
  72. package/dist/types.gen.d.ts +0 -2285
  73. package/dist/types.gen.js +0 -2
  74. package/src/client/client.gen.ts +0 -288
  75. package/src/client/index.ts +0 -25
  76. package/src/client/types.gen.ts +0 -214
  77. package/src/client/utils.gen.ts +0 -316
  78. package/src/client.gen.ts +0 -16
  79. package/src/core/auth.gen.ts +0 -41
  80. package/src/core/bodySerializer.gen.ts +0 -84
  81. package/src/core/params.gen.ts +0 -169
  82. package/src/core/pathSerializer.gen.ts +0 -171
  83. package/src/core/queryKeySerializer.gen.ts +0 -117
  84. package/src/core/serverSentEvents.gen.ts +0 -243
  85. package/src/core/types.gen.ts +0 -104
  86. package/src/core/utils.gen.ts +0 -140
  87. package/src/index.ts +0 -2
  88. package/src/sdk.gen.ts +0 -237
  89. package/src/types.gen.ts +0 -2377
@@ -0,0 +1,308 @@
1
+ import fs from 'node:fs';
2
+ import { access } from 'node:fs/promises';
3
+ import { resolve } from 'node:path';
4
+ import * as git from 'isomorphic-git';
5
+ import http from 'isomorphic-git/http/node';
6
+ import { assertGitRepository, normalizeFilepath, resolveGitPath } from './path-utils.js';
7
+ function createAuthCallback(username, password) {
8
+ if (!username && !password) {
9
+ return undefined;
10
+ }
11
+ return () => ({
12
+ username: username ?? 'git',
13
+ password: password ?? '',
14
+ });
15
+ }
16
+ async function fileExists(path) {
17
+ try {
18
+ await access(path);
19
+ return true;
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ }
25
+ function mapMatrixStatus(head, workdir, stage) {
26
+ if (head === 0 && workdir === 2 && stage === 0) {
27
+ return 'untracked';
28
+ }
29
+ if (workdir === 0 && stage === 0) {
30
+ return 'deleted';
31
+ }
32
+ if (workdir === 0 && stage === 1) {
33
+ return 'deleted';
34
+ }
35
+ if (head === 0 && stage === 2) {
36
+ return 'added';
37
+ }
38
+ if (workdir !== stage && head !== stage) {
39
+ return 'staged+modified';
40
+ }
41
+ if (head !== stage && stage === 2) {
42
+ return 'staged';
43
+ }
44
+ if (head !== workdir) {
45
+ return 'modified';
46
+ }
47
+ return 'changed';
48
+ }
49
+ function findCommonAncestor(localLog, remoteLog) {
50
+ const remoteCommitIds = new Set(remoteLog.map((commit) => commit.oid));
51
+ return localLog.find((commit) => remoteCommitIds.has(commit.oid))?.oid;
52
+ }
53
+ function findDistance(log, targetOid) {
54
+ const index = log.findIndex((commit) => commit.oid === targetOid);
55
+ return index >= 0 ? index : log.length;
56
+ }
57
+ function formatGitError(operation, repoPath, error) {
58
+ const message = error instanceof Error ? error.message : String(error);
59
+ if (/auth|unauthorized|forbidden|credential|401|403/i.test(message)) {
60
+ return new Error(`Git ${operation} failed authentication for '${repoPath}'. Check your credentials.`);
61
+ }
62
+ return new Error(`Git ${operation} failed for '${repoPath}': ${message}`);
63
+ }
64
+ async function stageAllChanges(repoDir) {
65
+ const statusMatrix = await git.statusMatrix({ fs, dir: repoDir, filepaths: ['.'] });
66
+ for (const [filepath, , workdir, stage] of statusMatrix) {
67
+ if (workdir === stage) {
68
+ continue;
69
+ }
70
+ if (workdir === 0) {
71
+ await git.remove({ fs, dir: repoDir, filepath });
72
+ }
73
+ else {
74
+ await git.add({ fs, dir: repoDir, filepath });
75
+ }
76
+ }
77
+ }
78
+ async function hasStagedChanges(repoDir) {
79
+ const statusMatrix = await git.statusMatrix({ fs, dir: repoDir, filepaths: ['.'] });
80
+ return statusMatrix.some(([, head, , stage]) => head !== stage);
81
+ }
82
+ async function requireCurrentBranch(repoDir, operation) {
83
+ const currentBranch = await git.currentBranch({ fs, dir: repoDir });
84
+ if (!currentBranch) {
85
+ throw new Error(`Cannot ${operation} while HEAD is detached. Checkout a branch first.`);
86
+ }
87
+ return currentBranch;
88
+ }
89
+ async function getAheadBehind(repoDir, currentBranch) {
90
+ const remoteName = await git.getConfig({ fs, dir: repoDir, path: `branch.${currentBranch}.remote` });
91
+ const mergeRef = await git.getConfig({ fs, dir: repoDir, path: `branch.${currentBranch}.merge` });
92
+ if (!remoteName || !mergeRef?.startsWith('refs/heads/')) {
93
+ return { ahead: 0, behind: 0, branchPublished: false };
94
+ }
95
+ const remoteBranch = mergeRef.slice('refs/heads/'.length);
96
+ const remoteTrackingRef = `refs/remotes/${remoteName}/${remoteBranch}`;
97
+ try {
98
+ await git.resolveRef({ fs, dir: repoDir, ref: remoteTrackingRef });
99
+ }
100
+ catch {
101
+ return { ahead: 0, behind: 0, branchPublished: false };
102
+ }
103
+ const localRef = `refs/heads/${currentBranch}`;
104
+ const [localLog, remoteLog] = await Promise.all([
105
+ git.log({ fs, dir: repoDir, ref: localRef }),
106
+ git.log({ fs, dir: repoDir, ref: remoteTrackingRef }),
107
+ ]);
108
+ const commonAncestor = findCommonAncestor(localLog, remoteLog);
109
+ if (!commonAncestor) {
110
+ return {
111
+ ahead: localLog.length,
112
+ behind: remoteLog.length,
113
+ branchPublished: true,
114
+ };
115
+ }
116
+ return {
117
+ ahead: findDistance(localLog, commonAncestor),
118
+ behind: findDistance(remoteLog, commonAncestor),
119
+ branchPublished: true,
120
+ };
121
+ }
122
+ export const nodeGitClient = {
123
+ async clone(url, path, branch, commitId, username, password) {
124
+ const repoDir = resolveGitPath(path);
125
+ try {
126
+ await git.clone({
127
+ fs,
128
+ http,
129
+ dir: repoDir,
130
+ url,
131
+ ref: branch,
132
+ singleBranch: Boolean(branch),
133
+ onAuth: createAuthCallback(username, password),
134
+ });
135
+ if (commitId) {
136
+ await git.checkout({
137
+ fs,
138
+ dir: repoDir,
139
+ ref: commitId,
140
+ force: true,
141
+ });
142
+ }
143
+ }
144
+ catch (error) {
145
+ throw formatGitError('clone', repoDir, error);
146
+ }
147
+ },
148
+ async add(path, files) {
149
+ const repoDir = resolveGitPath(path);
150
+ await assertGitRepository(repoDir);
151
+ try {
152
+ for (const file of files) {
153
+ const normalized = normalizeFilepath(repoDir, file);
154
+ if (normalized === '.') {
155
+ await stageAllChanges(repoDir);
156
+ continue;
157
+ }
158
+ const absoluteFile = resolve(repoDir, normalized);
159
+ if (await fileExists(absoluteFile)) {
160
+ await git.add({ fs, dir: repoDir, filepath: normalized });
161
+ continue;
162
+ }
163
+ await git.remove({ fs, dir: repoDir, filepath: normalized });
164
+ }
165
+ }
166
+ catch (error) {
167
+ throw formatGitError('add', repoDir, error);
168
+ }
169
+ },
170
+ async commit(path, message, author, email, allowEmpty = false) {
171
+ const repoDir = resolveGitPath(path);
172
+ await assertGitRepository(repoDir);
173
+ try {
174
+ const hasChanges = await hasStagedChanges(repoDir);
175
+ if (!allowEmpty && !hasChanges) {
176
+ throw new Error('No staged changes to commit. Set allowEmpty=true to create an empty commit.');
177
+ }
178
+ const sha = await git.commit({
179
+ fs,
180
+ dir: repoDir,
181
+ message,
182
+ author: {
183
+ name: author,
184
+ email,
185
+ },
186
+ });
187
+ return { sha };
188
+ }
189
+ catch (error) {
190
+ throw formatGitError('commit', repoDir, error);
191
+ }
192
+ },
193
+ async push(path, username, password) {
194
+ const repoDir = resolveGitPath(path);
195
+ await assertGitRepository(repoDir);
196
+ try {
197
+ const currentBranch = await requireCurrentBranch(repoDir, 'push');
198
+ const result = await git.push({
199
+ fs,
200
+ http,
201
+ dir: repoDir,
202
+ remote: 'origin',
203
+ ref: currentBranch,
204
+ onAuth: createAuthCallback(username, password),
205
+ });
206
+ if (!result.ok) {
207
+ throw new Error(result.error || 'Push rejected by remote');
208
+ }
209
+ }
210
+ catch (error) {
211
+ throw formatGitError('push', repoDir, error);
212
+ }
213
+ },
214
+ async pull(path, username, password) {
215
+ const repoDir = resolveGitPath(path);
216
+ await assertGitRepository(repoDir);
217
+ try {
218
+ const currentBranch = await requireCurrentBranch(repoDir, 'pull');
219
+ await git.pull({
220
+ fs,
221
+ http,
222
+ dir: repoDir,
223
+ remote: 'origin',
224
+ ref: currentBranch,
225
+ singleBranch: true,
226
+ onAuth: createAuthCallback(username, password),
227
+ author: {
228
+ name: 'Mesa SDK',
229
+ email: 'sdk@mesa.dev',
230
+ },
231
+ });
232
+ }
233
+ catch (error) {
234
+ throw formatGitError('pull', repoDir, error);
235
+ }
236
+ },
237
+ async status(path) {
238
+ const repoDir = resolveGitPath(path);
239
+ await assertGitRepository(repoDir);
240
+ try {
241
+ const currentBranch = await requireCurrentBranch(repoDir, 'read status');
242
+ const statusMatrix = await git.statusMatrix({ fs, dir: repoDir, filepaths: ['.'] });
243
+ const fileStatus = statusMatrix
244
+ .filter(([, head, workdir, stage]) => head !== workdir || workdir !== stage)
245
+ .map(([filepath, head, workdir, stage]) => ({
246
+ name: filepath,
247
+ status: mapMatrixStatus(head, workdir, stage),
248
+ }));
249
+ const aheadBehind = await getAheadBehind(repoDir, currentBranch);
250
+ return {
251
+ currentBranch,
252
+ ahead: aheadBehind.ahead,
253
+ behind: aheadBehind.behind,
254
+ branchPublished: aheadBehind.branchPublished,
255
+ fileStatus,
256
+ };
257
+ }
258
+ catch (error) {
259
+ throw formatGitError('status', repoDir, error);
260
+ }
261
+ },
262
+ async branches(path) {
263
+ const repoDir = resolveGitPath(path);
264
+ await assertGitRepository(repoDir);
265
+ try {
266
+ const branches = await git.listBranches({ fs, dir: repoDir });
267
+ return { branches };
268
+ }
269
+ catch (error) {
270
+ throw formatGitError('list branches', repoDir, error);
271
+ }
272
+ },
273
+ async createBranch(path, name) {
274
+ const repoDir = resolveGitPath(path);
275
+ await assertGitRepository(repoDir);
276
+ try {
277
+ await git.branch({ fs, dir: repoDir, ref: name });
278
+ }
279
+ catch (error) {
280
+ throw formatGitError('create branch', repoDir, error);
281
+ }
282
+ },
283
+ async checkoutBranch(path, branch) {
284
+ const repoDir = resolveGitPath(path);
285
+ await assertGitRepository(repoDir);
286
+ try {
287
+ await git.checkout({ fs, dir: repoDir, ref: branch });
288
+ }
289
+ catch (error) {
290
+ throw formatGitError('checkout branch', repoDir, error);
291
+ }
292
+ },
293
+ async deleteBranch(path, name) {
294
+ const repoDir = resolveGitPath(path);
295
+ await assertGitRepository(repoDir);
296
+ try {
297
+ const currentBranch = await git.currentBranch({ fs, dir: repoDir });
298
+ if (currentBranch === name) {
299
+ throw new Error(`Cannot delete the currently checked out branch '${name}'`);
300
+ }
301
+ await git.deleteBranch({ fs, dir: repoDir, ref: name });
302
+ }
303
+ catch (error) {
304
+ throw formatGitError('delete branch', repoDir, error);
305
+ }
306
+ },
307
+ };
308
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/git/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export type GitCommitResponse = {
2
+ sha: string;
3
+ };
4
+ export type GitFileStatus = {
5
+ name: string;
6
+ status: string;
7
+ };
8
+ export type GitStatus = {
9
+ currentBranch: string;
10
+ ahead: number;
11
+ behind: number;
12
+ branchPublished: boolean;
13
+ fileStatus: GitFileStatus[];
14
+ };
15
+ export type ListBranchResponse = {
16
+ branches: string[];
17
+ };
18
+ export interface GitClient {
19
+ clone(url: string, path: string, branch?: string, commitId?: string, username?: string, password?: string): Promise<void>;
20
+ add(path: string, files: string[]): Promise<void>;
21
+ commit(path: string, message: string, author: string, email: string, allowEmpty?: boolean): Promise<GitCommitResponse>;
22
+ push(path: string, username?: string, password?: string): Promise<void>;
23
+ pull(path: string, username?: string, password?: string): Promise<void>;
24
+ status(path: string): Promise<GitStatus>;
25
+ branches(path: string): Promise<ListBranchResponse>;
26
+ createBranch(path: string, name: string): Promise<void>;
27
+ checkoutBranch(path: string, branch: string): Promise<void>;
28
+ deleteBranch(path: string, name: string): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/git/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,KAAK,CACH,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/git/types.ts"],"names":[],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -1 +1,4 @@
1
- export * from "./client/index.js";
1
+ export type { GitClient, GitCommitResponse, GitFileStatus, GitStatus, ListBranchResponse } from './git/index.js';
2
+ export * from './lib/errors.js';
3
+ export { Mesa, type MesaOptions } from './mesa.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
- // Generated by @hey-api/openapi-ts — do not edit manually
2
- export * from "./client/index.js";
1
+ export * from './lib/errors.js';
2
+ export { Mesa } from './mesa.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,IAAI,EAAoB,MAAM,WAAW,CAAC"}
@@ -0,0 +1,15 @@
1
+ export type MesaErrorCode = 'INVALID_API_URL' | 'MISSING_API_KEY' | 'ORG_RESOLUTION_FAILED';
2
+ export declare class MesaError extends Error {
3
+ readonly code: MesaErrorCode;
4
+ constructor(code: MesaErrorCode, message: string, options?: ErrorOptions);
5
+ }
6
+ export declare class MissingApiKeyError extends MesaError {
7
+ constructor(envVar: string);
8
+ }
9
+ export declare class InvalidApiUrlError extends MesaError {
10
+ constructor(apiUrl: string);
11
+ }
12
+ export declare class OrgResolutionError extends MesaError {
13
+ constructor(message: string, options?: ErrorOptions);
14
+ }
15
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC;AAE5F,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;gBAEjB,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAKzE;AAED,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,MAAM,EAAE,MAAM;CAI3B;AAED,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,MAAM,EAAE,MAAM;CAI3B;AAED,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD"}
@@ -0,0 +1,27 @@
1
+ export class MesaError extends Error {
2
+ code;
3
+ constructor(code, message, options) {
4
+ super(message, options);
5
+ this.name = 'MesaError';
6
+ this.code = code;
7
+ }
8
+ }
9
+ export class MissingApiKeyError extends MesaError {
10
+ constructor(envVar) {
11
+ super('MISSING_API_KEY', `Missing API key. Pass \`apiKey\` or set \`${envVar}\` in your environment.`);
12
+ this.name = 'MissingApiKeyError';
13
+ }
14
+ }
15
+ export class InvalidApiUrlError extends MesaError {
16
+ constructor(apiUrl) {
17
+ super('INVALID_API_URL', `Invalid API URL: ${apiUrl}`);
18
+ this.name = 'InvalidApiUrlError';
19
+ }
20
+ }
21
+ export class OrgResolutionError extends MesaError {
22
+ constructor(message, options) {
23
+ super('ORG_RESOLUTION_FAILED', message, options);
24
+ this.name = 'OrgResolutionError';
25
+ }
26
+ }
27
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +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,6CAA6C,MAAM,yBAAyB,CAAC,CAAC;QACvG,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 ADDED
@@ -0,0 +1,35 @@
1
+ import type { GetWhoamiResponse } from '@mesadev/rest';
2
+ import { type ApiResources } from './api/resources.js';
3
+ import type { GitClient } from './git/types.js';
4
+ export interface MesaOptions {
5
+ apiUrl?: string;
6
+ apiKey?: string;
7
+ org?: string;
8
+ fetch?: typeof globalThis.fetch;
9
+ userAgent?: string;
10
+ }
11
+ export declare class Mesa {
12
+ readonly apiKey: string;
13
+ readonly apiUrl: string;
14
+ readonly git: GitClient;
15
+ readonly raw: ApiResources['raw'];
16
+ readonly org: ApiResources['org'];
17
+ readonly apiKeys: ApiResources['apiKeys'];
18
+ readonly repos: ApiResources['repos'];
19
+ readonly content: ApiResources['content'];
20
+ readonly branches: ApiResources['branches'];
21
+ readonly commits: ApiResources['commits'];
22
+ readonly diffs: ApiResources['diffs'];
23
+ readonly webhooks: ApiResources['webhooks'];
24
+ private readonly restClient;
25
+ private readonly orgResolutionPromise;
26
+ private readonly whoAmIResolutionPromise;
27
+ private cachedOrgSlug;
28
+ private cachedWhoAmI;
29
+ constructor(options?: MesaOptions);
30
+ resolveOrg(org?: string): Promise<string>;
31
+ whoami(): Promise<GetWhoamiResponse>;
32
+ private fetchWhoAmI;
33
+ private resolveOrgFromWhoAmI;
34
+ }
35
+ //# sourceMappingURL=mesa.d.ts.map
@@ -0,0 +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;AAyChD,MAAM,WAAW,WAAW;IAC1B,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,qBAAa,IAAI;IACf,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;IAE5C,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;IAuC/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 ADDED
@@ -0,0 +1,126 @@
1
+ import { createRestClient } from './api/client.js';
2
+ import { createApiResources } from './api/resources.js';
3
+ import { nodeGitClient } from './git/service.js';
4
+ import { InvalidApiUrlError, MissingApiKeyError, OrgResolutionError } from './lib/errors.js';
5
+ const DEFAULT_API_URL = 'https://api.mesa.dev/api/v1';
6
+ const API_KEY_ENV_VAR = 'MESA_API_KEY';
7
+ function getEnvApiKey() {
8
+ if (typeof process === 'undefined') {
9
+ return undefined;
10
+ }
11
+ return process.env[API_KEY_ENV_VAR]?.trim();
12
+ }
13
+ function normalizeApiUrl(input) {
14
+ const value = input?.trim() || DEFAULT_API_URL;
15
+ let parsed;
16
+ try {
17
+ parsed = new URL(value);
18
+ }
19
+ catch {
20
+ throw new InvalidApiUrlError(value);
21
+ }
22
+ if (parsed.protocol !== 'https:' && parsed.protocol !== 'http:') {
23
+ throw new InvalidApiUrlError(value);
24
+ }
25
+ parsed.pathname = parsed.pathname.replace(/\/+$/, '') || '/';
26
+ return parsed.toString().replace(/\/$/, '');
27
+ }
28
+ function resolveApiKey(input) {
29
+ const apiKey = input?.trim() || getEnvApiKey();
30
+ if (!apiKey) {
31
+ throw new MissingApiKeyError(API_KEY_ENV_VAR);
32
+ }
33
+ return apiKey;
34
+ }
35
+ export class Mesa {
36
+ apiKey;
37
+ apiUrl;
38
+ git;
39
+ raw;
40
+ org;
41
+ apiKeys;
42
+ repos;
43
+ content;
44
+ branches;
45
+ commits;
46
+ diffs;
47
+ webhooks;
48
+ restClient;
49
+ orgResolutionPromise;
50
+ whoAmIResolutionPromise;
51
+ cachedOrgSlug = null;
52
+ cachedWhoAmI = null;
53
+ constructor(options = {}) {
54
+ this.apiKey = resolveApiKey(options.apiKey);
55
+ this.apiUrl = normalizeApiUrl(options.apiUrl);
56
+ this.restClient = createRestClient({
57
+ apiKey: this.apiKey,
58
+ apiUrl: this.apiUrl,
59
+ fetch: options.fetch,
60
+ userAgent: options.userAgent,
61
+ });
62
+ this.git = nodeGitClient;
63
+ const providedOrg = options.org?.trim();
64
+ if (providedOrg) {
65
+ this.cachedOrgSlug = providedOrg;
66
+ this.orgResolutionPromise = Promise.resolve(providedOrg);
67
+ this.whoAmIResolutionPromise = null;
68
+ }
69
+ else {
70
+ const whoAmIPromise = this.fetchWhoAmI();
71
+ this.whoAmIResolutionPromise = whoAmIPromise;
72
+ this.orgResolutionPromise = this.resolveOrgFromWhoAmI(whoAmIPromise);
73
+ this.orgResolutionPromise.catch(() => undefined);
74
+ }
75
+ const resources = createApiResources({
76
+ restClient: this.restClient,
77
+ resolveOrg: (org) => this.resolveOrg(org),
78
+ });
79
+ this.raw = resources.raw;
80
+ this.org = resources.org;
81
+ this.apiKeys = resources.apiKeys;
82
+ this.repos = resources.repos;
83
+ this.content = resources.content;
84
+ this.branches = resources.branches;
85
+ this.commits = resources.commits;
86
+ this.diffs = resources.diffs;
87
+ this.webhooks = resources.webhooks;
88
+ }
89
+ async resolveOrg(org) {
90
+ if (org?.trim()) {
91
+ return org;
92
+ }
93
+ if (this.cachedOrgSlug) {
94
+ return this.cachedOrgSlug;
95
+ }
96
+ return this.orgResolutionPromise;
97
+ }
98
+ async whoami() {
99
+ if (this.cachedWhoAmI) {
100
+ return this.cachedWhoAmI;
101
+ }
102
+ try {
103
+ const promise = this.whoAmIResolutionPromise ?? this.fetchWhoAmI();
104
+ return await promise;
105
+ }
106
+ catch (error) {
107
+ throw new OrgResolutionError('Unable to resolve caller identity from /whoami', { cause: error });
108
+ }
109
+ }
110
+ async fetchWhoAmI() {
111
+ const whoami = await this.restClient.getWhoami();
112
+ this.cachedWhoAmI = whoami;
113
+ this.cachedOrgSlug = whoami.org.slug;
114
+ return whoami;
115
+ }
116
+ async resolveOrgFromWhoAmI(whoAmIPromise) {
117
+ try {
118
+ const whoami = await whoAmIPromise;
119
+ return whoami.org.slug;
120
+ }
121
+ catch (error) {
122
+ throw new OrgResolutionError('Unable to resolve default organization from /whoami. Provide `org` per call or verify your API key scopes.', { cause: error });
123
+ }
124
+ }
125
+ }
126
+ //# sourceMappingURL=mesa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesa.js","sourceRoot":"","sources":["../src/mesa.ts"],"names":[],"mappings":"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"}