me2lon 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +62 -2
  3. package/dist/api.d.ts +35 -0
  4. package/dist/api.d.ts.map +1 -0
  5. package/dist/api.js +286 -0
  6. package/dist/api.js.map +1 -0
  7. package/dist/cli.d.ts +4 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +261 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/client.d.ts +23 -0
  12. package/dist/client.d.ts.map +1 -0
  13. package/dist/client.js +272 -0
  14. package/dist/client.js.map +1 -0
  15. package/dist/config.d.ts +19 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +173 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/errors.d.ts +14 -0
  20. package/dist/errors.d.ts.map +1 -0
  21. package/dist/errors.js +31 -0
  22. package/dist/errors.js.map +1 -0
  23. package/dist/index.d.ts +8 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +8 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/presentation.d.ts +12 -0
  28. package/dist/presentation.d.ts.map +1 -0
  29. package/dist/presentation.js +50 -0
  30. package/dist/presentation.js.map +1 -0
  31. package/dist/safe-output.d.ts +20 -0
  32. package/dist/safe-output.d.ts.map +1 -0
  33. package/dist/safe-output.js +770 -0
  34. package/dist/safe-output.js.map +1 -0
  35. package/dist/setup.d.ts +14 -0
  36. package/dist/setup.d.ts.map +1 -0
  37. package/dist/setup.js +92 -0
  38. package/dist/setup.js.map +1 -0
  39. package/dist/skill.d.ts +2 -0
  40. package/dist/skill.d.ts.map +1 -0
  41. package/dist/skill.js +30 -0
  42. package/dist/skill.js.map +1 -0
  43. package/dist/types.d.ts +76 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +8 -0
  46. package/dist/types.js.map +1 -0
  47. package/dist/workspace-source.d.ts +11 -0
  48. package/dist/workspace-source.d.ts.map +1 -0
  49. package/dist/workspace-source.js +387 -0
  50. package/dist/workspace-source.js.map +1 -0
  51. package/package.json +43 -4
  52. package/skill/LICENSE +21 -0
  53. package/skill/SKILL.md +18 -0
  54. package/src/api.ts +426 -0
  55. package/src/cli.ts +305 -0
  56. package/src/client.ts +413 -0
  57. package/src/config.ts +252 -0
  58. package/src/errors.ts +40 -0
  59. package/src/index.ts +37 -0
  60. package/src/presentation.ts +39 -0
  61. package/src/safe-output.ts +826 -0
  62. package/src/setup.ts +95 -0
  63. package/src/skill.ts +22 -0
  64. package/src/types.ts +85 -0
  65. package/src/workspace-source.ts +526 -0
  66. package/tsconfig.build.json +18 -0
  67. package/tsconfig.json +14 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Guillaume Claret
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,63 @@
1
- # Temporary Holding Version
1
+ # Me2lon CLI
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ MIT-licensed thin client and portable agent skill for the Me2lon API. Analysis,
4
+ translation, and proof execution happen on the server. The npm package includes
5
+ client TypeScript source; the server has its own license.
6
+
7
+ ## Install and analyze
8
+
9
+ Requires Node.js 22.14 or newer and Git with an initial commit. The pilot requires
10
+ an invited GitHub identity. No GitHub remote or GitHub App installation is needed.
11
+
12
+ ```sh
13
+ npm install -g me2lon
14
+ cd /path/to/project
15
+ me2lon setup
16
+ me2lon analyze --wait
17
+ ```
18
+
19
+ Setup displays a browser link and code. Sign in and approve while it waits.
20
+ Credentials are stored with mode 0600 under `$XDG_CONFIG_HOME/me2lon/projects`
21
+ or `~/.config/me2lon/projects`, outside your source tree. The default server is
22
+ https://me2lon.clarus.me; `--base-url` overrides it. Run setup again to renew;
23
+ use `setup --new-credential` after revocation.
24
+
25
+ Snapshots contain Git-visible UTF-8 files, including uncommitted changes and
26
+ nonignored untracked files. Limits: 2,000 files, 1 MiB per file, 8 MiB total.
27
+ Binary files, symlinks, submodules, sparse and assume-unchanged entries are
28
+ rejected. Review your files before uploading. `--project-root PATH` selects the
29
+ backend to analyze; it does not reduce the upload.
30
+
31
+ Without `--wait`, analyze returns the job immediately. Resume with
32
+ `me2lon get-job --job-id ID --wait`. Waiting polls every five seconds and times
33
+ out after two hours; override with `--timeout-seconds N`. Interrupting or timing
34
+ out leaves the server job running. Use `cancel-job --job-id ID` to cancel it.
35
+ Waiting exits 0 for succeeded, 1 for failed/canceled, 124 for timeout, and 130
36
+ for interruption. Success means the job completed, not that all properties hold.
37
+ Findings, evidence limits, and unavailable checks remain part of the results.
38
+
39
+ Use `--json` for machine-readable stdout; progress goes to stderr. `jobStatus`
40
+ tracks execution independently of `resultStatus`. `--help` lists advanced
41
+ commands and `--version` prints the package version.
42
+
43
+ ## Coding assistants
44
+
45
+ ```sh
46
+ me2lon skill install # portable default: ~/.agents/skills/me2lon
47
+ me2lon skill install --agent codex # same portable location
48
+ me2lon skill install --agent claude # ~/.claude/skills/me2lon
49
+ me2lon skill install --path /custom/skills/me2lon
50
+ ```
51
+
52
+ The shared SKILL.md format works with agents that support portable skills.
53
+ Other agents can read that file directly. Installation includes its MIT license;
54
+ modified files require explicit `--force` replacement. Restart or reload your
55
+ assistant's skills if it does not discover the new skill automatically.
56
+ Installing the npm package does not modify assistant configuration.
57
+
58
+ ## Development
59
+
60
+ From the monorepo: `npm run verify --workspace me2lon`, then
61
+ `npm pack --workspace me2lon`. The package can also be built independently from
62
+ its included source using `npm install --ignore-scripts` and `npm run build`.
63
+ Publish only the reviewed package tarball, never the repository workspace root.
package/dist/api.d.ts ADDED
@@ -0,0 +1,35 @@
1
+ import { type JsonValue, type WorkspaceSource, type WorkspaceSnapshot } from "./types.js";
2
+ export declare function idempotencyKey(kind: string, value: unknown): string;
3
+ /** One logical mutation attempt; reuse it for every retry within that attempt. */
4
+ export declare function mutationAttemptId(): string;
5
+ export type ApiRequestOptions = Readonly<{
6
+ method?: "GET" | "POST";
7
+ body?: JsonValue | Record<string, unknown>;
8
+ idempotencyKey?: string;
9
+ sourceSchema?: boolean | string;
10
+ }>;
11
+ export declare class Me2lonAgentApi {
12
+ #private;
13
+ constructor(baseUrl: URL, token: string, repositoryId?: string, fetchImplementation?: typeof fetch);
14
+ request(path: string, options?: ApiRequestOptions): Promise<Record<string, unknown>>;
15
+ capabilities(): Promise<Record<string, unknown>>;
16
+ repositories(): Promise<Record<string, unknown>>;
17
+ createWorkspace(repositoryId: string, attemptId?: string): Promise<Record<string, unknown>>;
18
+ createRevision(workspaceId: string, source: WorkspaceSource, attemptId?: string): Promise<Record<string, unknown>>;
19
+ createCheckJob(workspaceRevisionId: string, attemptId?: string): Promise<Record<string, unknown>>;
20
+ createAnalysisJob(workspaceRevisionId: string, projectRoot?: string, attemptId?: string): Promise<Record<string, unknown>>;
21
+ createSnapshot(workspaceId: string, source: WorkspaceSnapshot, previousRevisionId: string | undefined, attemptId: string): Promise<Record<string, unknown>>;
22
+ job(jobId: string): Promise<Record<string, unknown>>;
23
+ jobDiagnostics(jobId: string, cursor?: number, limit?: number): Promise<Record<string, unknown>>;
24
+ createTranslationJob(checkJobId: string, projectId: string, attemptId?: string): Promise<Record<string, unknown>>;
25
+ createVerificationJob(translationJobId: string, expectedPolicySetDigest: string, attemptId?: string): Promise<Record<string, unknown>>;
26
+ policyUnits(repositoryId: string): Promise<Record<string, unknown>>;
27
+ policyUnit(policyUnitId: string): Promise<Record<string, unknown>>;
28
+ createPolicyDraft(policyUnitId: string, expectedPolicySetDigest: string, attemptId?: string): Promise<Record<string, unknown>>;
29
+ createPolicyRevision(draftId: string, expectedPolicySetDigest: string, policy: JsonValue, rationale?: string, attemptId?: string): Promise<Record<string, unknown>>;
30
+ validatePolicyRevision(revisionId: string, attemptId?: string): Promise<Record<string, unknown>>;
31
+ policyRevisionDiff(revisionId: string): Promise<Record<string, unknown>>;
32
+ submitPolicyRevision(revisionId: string, expectedPolicySetDigest: string, attemptId?: string): Promise<Record<string, unknown>>;
33
+ cancelJob(jobId: string): Promise<Record<string, unknown>>;
34
+ }
35
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js ADDED
@@ -0,0 +1,286 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { Me2lonApiError, Me2lonClientError } from "./errors.js";
3
+ import { SOURCE_SCHEMA_VERSION } from "./types.js";
4
+ const API_PREFIX = "/api/agent/v1";
5
+ const MAX_RESPONSE_BYTES = 4 * 1024 * 1024;
6
+ function transportError(error, signal) {
7
+ if (signal.aborted || (error instanceof Error && error.name === "TimeoutError")) {
8
+ return new Me2lonClientError("ME2LON_API_TIMEOUT", "The Me2lon API did not finish responding within 30 seconds.", { cause: error });
9
+ }
10
+ const cause = error instanceof Error ? error.cause : undefined;
11
+ const code = cause && typeof cause === "object" && "code" in cause ? cause.code : undefined;
12
+ const detail = code === "ECONNREFUSED" ? " The connection was refused."
13
+ : code === "ENOTFOUND" || code === "EAI_AGAIN" ? " The server hostname could not be resolved."
14
+ : "";
15
+ return new Me2lonClientError("ME2LON_API_UNREACHABLE", `The connection to the Me2lon API failed.${detail}`, { cause: error });
16
+ }
17
+ function encodeSegment(value) {
18
+ if (!value) {
19
+ throw new Me2lonClientError("ME2LON_API_INPUT_INVALID", "A Me2lon API resource id cannot be empty.");
20
+ }
21
+ return encodeURIComponent(value);
22
+ }
23
+ export function idempotencyKey(kind, value) {
24
+ const digest = createHash("sha256")
25
+ .update(JSON.stringify(value))
26
+ .digest("hex");
27
+ return `me2lon-${kind}-${digest}`;
28
+ }
29
+ /** One logical mutation attempt; reuse it for every retry within that attempt. */
30
+ export function mutationAttemptId() {
31
+ return randomUUID();
32
+ }
33
+ function mutationIdempotencyKey(kind, attemptId, value) {
34
+ return idempotencyKey(kind, { attemptId, request: value });
35
+ }
36
+ function assertIdempotencyKey(value) {
37
+ if (value.length > 255 || !/^[A-Za-z0-9._:-]+$/u.test(value)) {
38
+ throw new Me2lonClientError("ME2LON_IDEMPOTENCY_KEY_INVALID", "The generated Me2lon idempotency key has an invalid shape.");
39
+ }
40
+ }
41
+ function asJsonObject(value) {
42
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
43
+ throw new Me2lonClientError("ME2LON_API_RESPONSE_INVALID", "The Me2lon API returned an invalid JSON response.");
44
+ }
45
+ return value;
46
+ }
47
+ export class Me2lonAgentApi {
48
+ #baseUrl;
49
+ #token;
50
+ #repositoryId;
51
+ #fetch;
52
+ constructor(baseUrl, token, repositoryId, fetchImplementation = fetch) {
53
+ this.#baseUrl = baseUrl;
54
+ this.#token = token;
55
+ this.#repositoryId = repositoryId;
56
+ this.#fetch = fetchImplementation;
57
+ }
58
+ async request(path, options = {}) {
59
+ // Retry only transport failures, and only when replay cannot create new
60
+ // work. Reuse the exact options (including the mutation's idempotency key).
61
+ const canRetry = (options.method ?? "GET") === "GET" || Boolean(options.idempotencyKey);
62
+ for (let attempt = 0;; attempt += 1) {
63
+ try {
64
+ return await this.#requestOnce(path, options);
65
+ }
66
+ catch (error) {
67
+ if (!(error instanceof Me2lonClientError) ||
68
+ !["ME2LON_API_TIMEOUT", "ME2LON_API_UNREACHABLE"].includes(error.code))
69
+ throw error;
70
+ if (canRetry && attempt === 0)
71
+ continue;
72
+ const submissionHint = options.method === "POST" && options.idempotencyKey
73
+ ? " The submission may already have been accepted. Check the project dashboard before starting another job."
74
+ : "";
75
+ throw new Me2lonClientError(error.code, error.message + submissionHint, { cause: error });
76
+ }
77
+ }
78
+ }
79
+ async #requestOnce(path, options) {
80
+ const method = options.method ?? "GET";
81
+ const headers = new Headers({
82
+ Accept: "application/json",
83
+ "User-Agent": "me2lon-agent/0.1.0",
84
+ });
85
+ if (this.#token)
86
+ headers.set("Authorization", `Bearer ${this.#token}`);
87
+ if (this.#repositoryId) {
88
+ headers.set("X-Me2lon-Repository-Id", this.#repositoryId);
89
+ }
90
+ let body;
91
+ if (options.body !== undefined) {
92
+ headers.set("Content-Type", "application/json");
93
+ body = JSON.stringify(options.body);
94
+ }
95
+ if (options.idempotencyKey) {
96
+ assertIdempotencyKey(options.idempotencyKey);
97
+ headers.set("Idempotency-Key", options.idempotencyKey);
98
+ }
99
+ if (options.sourceSchema) {
100
+ headers.set("X-Me2lon-Source-Schema", typeof options.sourceSchema === "string" ? options.sourceSchema : SOURCE_SCHEMA_VERSION);
101
+ }
102
+ const signal = AbortSignal.timeout(30_000);
103
+ let response;
104
+ try {
105
+ response = await this.#fetch(new URL(`${API_PREFIX}${path}`, this.#baseUrl), {
106
+ method,
107
+ headers,
108
+ ...(body === undefined ? {} : { body }),
109
+ redirect: "error",
110
+ signal,
111
+ });
112
+ }
113
+ catch (error) {
114
+ throw transportError(error, signal);
115
+ }
116
+ const requestId = response.headers.get("x-request-id") ?? undefined;
117
+ if (!response.ok) {
118
+ await response.body?.cancel().catch(() => undefined);
119
+ throw new Me2lonApiError(response.status, requestId);
120
+ }
121
+ if (response.status === 204) {
122
+ return {};
123
+ }
124
+ const declaredLength = Number(response.headers.get("content-length"));
125
+ if (Number.isFinite(declaredLength) && declaredLength > MAX_RESPONSE_BYTES) {
126
+ await response.body?.cancel().catch(() => undefined);
127
+ throw new Me2lonClientError("ME2LON_API_RESPONSE_LIMIT", "The Me2lon API response exceeded the client safety limit.");
128
+ }
129
+ let bytes;
130
+ try {
131
+ bytes = new Uint8Array(await response.arrayBuffer());
132
+ }
133
+ catch (error) {
134
+ throw transportError(error, signal);
135
+ }
136
+ if (bytes.byteLength > MAX_RESPONSE_BYTES) {
137
+ throw new Me2lonClientError("ME2LON_API_RESPONSE_LIMIT", "The Me2lon API response exceeded the client safety limit.");
138
+ }
139
+ try {
140
+ return asJsonObject(JSON.parse(new TextDecoder().decode(bytes)));
141
+ }
142
+ catch (error) {
143
+ if (error instanceof Me2lonClientError) {
144
+ throw error;
145
+ }
146
+ throw new Me2lonClientError("ME2LON_API_RESPONSE_INVALID", "The Me2lon API returned invalid JSON.", { cause: error });
147
+ }
148
+ }
149
+ capabilities() {
150
+ return this.request("/capabilities");
151
+ }
152
+ repositories() {
153
+ return this.request("/repositories");
154
+ }
155
+ createWorkspace(repositoryId, attemptId = mutationAttemptId()) {
156
+ const body = { repositoryId };
157
+ return this.request("/workspaces", {
158
+ method: "POST",
159
+ body,
160
+ idempotencyKey: mutationIdempotencyKey("workspace", attemptId, body),
161
+ });
162
+ }
163
+ createRevision(workspaceId, source, attemptId = mutationAttemptId()) {
164
+ const body = {
165
+ baseCommitSha: source.baseCommitSha,
166
+ changes: source.changes,
167
+ };
168
+ return this.request(`/workspaces/${encodeSegment(workspaceId)}/revisions`, {
169
+ method: "POST",
170
+ body,
171
+ idempotencyKey: mutationIdempotencyKey("revision", attemptId, {
172
+ workspaceId,
173
+ digest: source.digest,
174
+ }),
175
+ sourceSchema: true,
176
+ });
177
+ }
178
+ createCheckJob(workspaceRevisionId, attemptId = mutationAttemptId()) {
179
+ const body = { workspaceRevisionId };
180
+ return this.request("/check-jobs", {
181
+ method: "POST",
182
+ body,
183
+ idempotencyKey: mutationIdempotencyKey("check", attemptId, body),
184
+ });
185
+ }
186
+ createAnalysisJob(workspaceRevisionId, projectRoot, attemptId = mutationAttemptId()) {
187
+ const body = { workspaceRevisionId, ...(projectRoot === undefined ? {} : { projectRoot }) };
188
+ return this.request('/analysis-jobs', { method: 'POST', body,
189
+ idempotencyKey: mutationIdempotencyKey('analysis', attemptId, body) });
190
+ }
191
+ createSnapshot(workspaceId, source, previousRevisionId, attemptId) {
192
+ const body = {
193
+ schemaVersion: source.schemaVersion, baseCommitSha: source.baseCommitSha,
194
+ branchLabel: source.branchLabel, files: source.files,
195
+ ...(previousRevisionId ? { previousRevisionId } : {}),
196
+ };
197
+ return this.request(`/workspaces/${encodeSegment(workspaceId)}/revisions`, {
198
+ method: "POST", body, sourceSchema: source.schemaVersion,
199
+ idempotencyKey: mutationIdempotencyKey("snapshot", attemptId, { workspaceId, ...body }),
200
+ });
201
+ }
202
+ job(jobId) {
203
+ return this.request(`/jobs/${encodeSegment(jobId)}`);
204
+ }
205
+ jobDiagnostics(jobId, cursor = 0, limit = 500) {
206
+ if (!Number.isSafeInteger(cursor) ||
207
+ cursor < 0 ||
208
+ !Number.isSafeInteger(limit) ||
209
+ limit < 1 ||
210
+ limit > 500) {
211
+ throw new Me2lonClientError("ME2LON_API_INPUT_INVALID", "Me2lon diagnostic pagination is outside the supported range.");
212
+ }
213
+ return this.request(`/jobs/${encodeSegment(jobId)}/diagnostics?cursor=${cursor}&limit=${limit}`);
214
+ }
215
+ createTranslationJob(checkJobId, projectId, attemptId = mutationAttemptId()) {
216
+ const body = { checkJobId, projectId };
217
+ return this.request("/translation-jobs", {
218
+ method: "POST",
219
+ body,
220
+ idempotencyKey: mutationIdempotencyKey("translation", attemptId, body),
221
+ });
222
+ }
223
+ createVerificationJob(translationJobId, expectedPolicySetDigest, attemptId = mutationAttemptId()) {
224
+ const body = { translationJobId, expectedPolicySetDigest };
225
+ return this.request("/verification-jobs", {
226
+ method: "POST",
227
+ body,
228
+ idempotencyKey: mutationIdempotencyKey("verification", attemptId, body),
229
+ });
230
+ }
231
+ policyUnits(repositoryId) {
232
+ return this.request(`/repositories/${encodeSegment(repositoryId)}/policy-units`);
233
+ }
234
+ policyUnit(policyUnitId) {
235
+ return this.request(`/policy-units/${encodeSegment(policyUnitId)}`);
236
+ }
237
+ createPolicyDraft(policyUnitId, expectedPolicySetDigest, attemptId = mutationAttemptId()) {
238
+ const body = { expectedPolicySetDigest };
239
+ return this.request(`/policy-units/${encodeSegment(policyUnitId)}/drafts`, {
240
+ method: "POST",
241
+ body,
242
+ idempotencyKey: mutationIdempotencyKey("policy-draft", attemptId, { policyUnitId, ...body }),
243
+ });
244
+ }
245
+ createPolicyRevision(draftId, expectedPolicySetDigest, policy, rationale, attemptId = mutationAttemptId()) {
246
+ const body = {
247
+ expectedPolicySetDigest,
248
+ policy,
249
+ ...(rationale ? { rationale } : {}),
250
+ };
251
+ return this.request(`/policy-drafts/${encodeSegment(draftId)}/revisions`, {
252
+ method: "POST",
253
+ body,
254
+ idempotencyKey: mutationIdempotencyKey("policy-revision", attemptId, { draftId, ...body }),
255
+ });
256
+ }
257
+ validatePolicyRevision(revisionId, attemptId = mutationAttemptId()) {
258
+ return this.request(`/policy-revisions/${encodeSegment(revisionId)}/validate`, {
259
+ method: "POST",
260
+ body: {},
261
+ idempotencyKey: mutationIdempotencyKey("policy-validation", attemptId, { revisionId }),
262
+ });
263
+ }
264
+ policyRevisionDiff(revisionId) {
265
+ return this.request(`/policy-revisions/${encodeSegment(revisionId)}/diff`);
266
+ }
267
+ submitPolicyRevision(revisionId, expectedPolicySetDigest, attemptId = mutationAttemptId()) {
268
+ const body = { expectedPolicySetDigest };
269
+ return this.request(`/policy-revisions/${encodeSegment(revisionId)}/submit-for-review`, {
270
+ method: "POST",
271
+ body,
272
+ idempotencyKey: mutationIdempotencyKey("policy-submit", attemptId, {
273
+ revisionId,
274
+ ...body,
275
+ }),
276
+ });
277
+ }
278
+ cancelJob(jobId) {
279
+ return this.request(`/jobs/${encodeSegment(jobId)}/cancel`, {
280
+ method: "POST",
281
+ body: {},
282
+ idempotencyKey: idempotencyKey("job-cancel", { jobId }),
283
+ });
284
+ }
285
+ }
286
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAgE,MAAM,YAAY,CAAC;AAEjH,MAAM,UAAU,GAAG,eAAe,CAAC;AACnC,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,SAAS,cAAc,CAAC,KAAc,EAAE,MAAmB;IACzD,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,CAAC;QAChF,OAAO,IAAI,iBAAiB,CAC1B,oBAAoB,EACpB,6DAA6D,EAC7D,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,MAAM,IAAI,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,MAAM,MAAM,GAAG,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,8BAA8B;QACrE,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,6CAA6C;YAC9F,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,IAAI,iBAAiB,CAC1B,wBAAwB,EACxB,2CAA2C,MAAM,EAAE,EACnD,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,iBAAiB,CACzB,0BAA0B,EAC1B,2CAA2C,CAC5C,CAAC;IACJ,CAAC;IACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAc;IACzD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC;SAChC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC7B,MAAM,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,UAAU,IAAI,IAAI,MAAM,EAAE,CAAC;AACpC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAY,EACZ,SAAiB,EACjB,KAAc;IAEd,OAAO,cAAc,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,iBAAiB,CACzB,gCAAgC,EAChC,4DAA4D,CAC7D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,iBAAiB,CACzB,6BAA6B,EAC7B,mDAAmD,CACpD,CAAC;IACJ,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AASD,MAAM,OAAO,cAAc;IAChB,QAAQ,CAAM;IACd,MAAM,CAAS;IACf,aAAa,CAAqB;IAClC,MAAM,CAAe;IAE9B,YACE,OAAY,EACZ,KAAa,EACb,YAAqB,EACrB,sBAAoC,KAAK;QAEzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAAY,EACZ,UAA6B,EAAE;QAE/B,wEAAwE;QACxE,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACxF,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,iBAAiB,CAAC;oBACvC,CAAC,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,MAAM,KAAK,CAAC;gBACtF,IAAI,QAAQ,IAAI,OAAO,KAAK,CAAC;oBAAE,SAAS;gBACxC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,cAAc;oBACxE,CAAC,CAAC,0GAA0G;oBAC5G,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,GAAG,cAAc,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,IAAY,EACZ,OAA0B;QAE1B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,MAAM,EAAE,kBAAkB;YAC1B,YAAY,EAAE,oBAAoB;SACnC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,IAAwB,CAAC;QAC7B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAChD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,oBAAoB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;QACjI,CAAC;QAED,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,UAAU,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC3E,MAAM;gBACN,OAAO;gBACP,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBACvC,QAAQ,EAAE,OAAO;gBACjB,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,kBAAkB,EAAE,CAAC;YAC3E,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,IAAI,iBAAiB,CACzB,2BAA2B,EAC3B,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QACD,IAAI,KAAiB,CAAC;QACtB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,GAAG,kBAAkB,EAAE,CAAC;YAC1C,MAAM,IAAI,iBAAiB,CACzB,2BAA2B,EAC3B,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;gBACvC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,iBAAiB,CACzB,6BAA6B,EAC7B,uCAAuC,EACvC,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC;IAED,eAAe,CACb,YAAoB,EACpB,SAAS,GAAG,iBAAiB,EAAE;QAE/B,MAAM,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YACjC,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,cAAc,EAAE,sBAAsB,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC;SACrE,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CACZ,WAAmB,EACnB,MAAuB,EACvB,SAAS,GAAG,iBAAiB,EAAE;QAE/B,MAAM,IAAI,GAAG;YACX,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,aAAa,CAAC,WAAW,CAAC,YAAY,EAAE;YACzE,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,cAAc,EAAE,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE;gBAC5D,WAAW;gBACX,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YACF,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CACZ,mBAA2B,EAC3B,SAAS,GAAG,iBAAiB,EAAE;QAE/B,MAAM,IAAI,GAAG,EAAE,mBAAmB,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YACjC,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,cAAc,EAAE,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC;SACjE,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,mBAA2B,EAAE,WAAoB,EAAE,SAAS,GAAG,iBAAiB,EAAE;QAClG,MAAM,IAAI,GAAG,EAAE,mBAAmB,EAAE,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI;YAC1D,cAAc,EAAE,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,cAAc,CAAC,WAAmB,EAAE,MAAyB,EAAE,kBAAsC,EAAE,SAAiB;QACtH,MAAM,IAAI,GAAG;YACX,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa;YACxE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK;YACpD,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,aAAa,CAAC,WAAW,CAAC,YAAY,EAAE;YACzE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,aAAa;YACxD,cAAc,EAAE,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;SACxF,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,KAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,cAAc,CACZ,KAAa,EACb,MAAM,GAAG,CAAC,EACV,KAAK,GAAG,GAAG;QAEX,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC7B,MAAM,GAAG,CAAC;YACV,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;YAC5B,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,GAAG,EACX,CAAC;YACD,MAAM,IAAI,iBAAiB,CACzB,0BAA0B,EAC1B,8DAA8D,CAC/D,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CACjB,SAAS,aAAa,CAAC,KAAK,CAAC,uBAAuB,MAAM,UAAU,KAAK,EAAE,CAC5E,CAAC;IACJ,CAAC;IAED,oBAAoB,CAClB,UAAkB,EAClB,SAAiB,EACjB,SAAS,GAAG,iBAAiB,EAAE;QAE/B,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,cAAc,EAAE,sBAAsB,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC;SACvE,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CACnB,gBAAwB,EACxB,uBAA+B,EAC/B,SAAS,GAAG,iBAAiB,EAAE;QAE/B,MAAM,IAAI,GAAG,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,cAAc,EAAE,sBAAsB,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,YAAoB;QAC9B,OAAO,IAAI,CAAC,OAAO,CACjB,iBAAiB,aAAa,CAAC,YAAY,CAAC,eAAe,CAC5D,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,YAAoB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,iBAAiB,CACf,YAAoB,EACpB,uBAA+B,EAC/B,SAAS,GAAG,iBAAiB,EAAE;QAE/B,MAAM,IAAI,GAAG,EAAE,uBAAuB,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE;YACzE,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,cAAc,EAAE,sBAAsB,CACpC,cAAc,EACd,SAAS,EACT,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,CAC1B;SACF,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,CAClB,OAAe,EACf,uBAA+B,EAC/B,MAAiB,EACjB,SAAkB,EAClB,SAAS,GAAG,iBAAiB,EAAE;QAE/B,MAAM,IAAI,GAAG;YACX,uBAAuB;YACvB,MAAM;YACN,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE;YACxE,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,cAAc,EAAE,sBAAsB,CACpC,iBAAiB,EACjB,SAAS,EACT,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CACrB;SACF,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB,CACpB,UAAkB,EAClB,SAAS,GAAG,iBAAiB,EAAE;QAE/B,OAAO,IAAI,CAAC,OAAO,CACjB,qBAAqB,aAAa,CAAC,UAAU,CAAC,WAAW,EACzD;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE;YACR,cAAc,EAAE,sBAAsB,CACpC,mBAAmB,EACnB,SAAS,EACT,EAAE,UAAU,EAAE,CACf;SACF,CACF,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED,oBAAoB,CAClB,UAAkB,EAClB,uBAA+B,EAC/B,SAAS,GAAG,iBAAiB,EAAE;QAE/B,MAAM,IAAI,GAAG,EAAE,uBAAuB,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,OAAO,CACjB,qBAAqB,aAAa,CAAC,UAAU,CAAC,oBAAoB,EAClE;YACE,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,cAAc,EAAE,sBAAsB,CAAC,eAAe,EAAE,SAAS,EAAE;gBACjE,UAAU;gBACV,GAAG,IAAI;aACR,CAAC;SACH,CACF,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE;YACR,cAAc,EAAE,cAAc,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;CACF"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ export declare function runCli(argv: string[]): Promise<number>;
3
+ export declare function isMainModule(moduleUrl: string, entrypoint: string | undefined): Promise<boolean>;
4
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA6IA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmI5D;AAYD,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,OAAO,CAAC,CAalB"}