@gonovus-ai/spec-flow-cli 0.5.0 → 0.6.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 +57 -28
- package/dist/bin.js +6 -50
- package/dist/bin.js.map +1 -1
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +103 -397
- package/dist/cli.js.map +1 -1
- package/dist/commands/work-item-output.d.ts +390 -0
- package/dist/commands/work-item-output.js +36 -0
- package/dist/commands/work-item-output.js.map +1 -0
- package/dist/http-origin.js +3 -0
- package/dist/http-origin.js.map +1 -1
- package/dist/index.js +50 -28
- package/dist/index.js.map +1 -1
- package/dist/input/text-source.d.ts +9 -0
- package/dist/input/text-source.js +74 -0
- package/dist/input/text-source.js.map +1 -0
- package/dist/program.d.ts +3 -0
- package/dist/program.js +19 -0
- package/dist/program.js.map +1 -0
- package/dist/runtime/errors.d.ts +28 -0
- package/dist/runtime/errors.js +133 -0
- package/dist/runtime/errors.js.map +1 -0
- package/dist/runtime/execute.d.ts +23 -0
- package/dist/runtime/execute.js +25 -0
- package/dist/runtime/execute.js.map +1 -0
- package/dist/runtime/identity.d.ts +183 -0
- package/dist/runtime/identity.js +17 -0
- package/dist/runtime/identity.js.map +1 -0
- package/dist/runtime/output.d.ts +3 -0
- package/dist/runtime/output.js +13 -0
- package/dist/runtime/output.js.map +1 -0
- package/dist/runtime/session.d.ts +16 -0
- package/dist/runtime/session.js +123 -0
- package/dist/runtime/session.js.map +1 -0
- package/package.json +1 -1
- package/dist/work-item-time-entry-input.d.ts +0 -4
- package/dist/work-item-time-entry-input.js +0 -27
- package/dist/work-item-time-entry-input.js.map +0 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import createClient from "openapi-fetch";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { parseHttpOrigin, unresolvedSpecFlowApiOrigin } from "../http-origin.js";
|
|
4
|
+
import { specFlowCliUserAgent } from "../user-agent.js";
|
|
5
|
+
import { writeSkillError } from "./errors.js";
|
|
6
|
+
export async function selectSession(dependencies, options, serverFlag, apiKeyIdFlag) {
|
|
7
|
+
if (dependencies.environment.SPEC_FLOW_PROJECT_READ_TOKEN !== undefined) {
|
|
8
|
+
writeSkillError(dependencies, { message: "Project Read Tokens are retired; use a Workspace read-only Token", reason: "Authentication Failed", retryable: false });
|
|
9
|
+
return { exitCode: 2 };
|
|
10
|
+
}
|
|
11
|
+
const environmentCredential = dependencies.environment.SPEC_FLOW_WORKSPACE_READ_TOKEN;
|
|
12
|
+
const apiKeyEnvironment = dependencies.environment.SPEC_FLOW_API_KEY;
|
|
13
|
+
const usesApiKey = apiKeyEnvironment !== undefined || apiKeyIdFlag !== undefined;
|
|
14
|
+
if (options.requireUserSession === true && (usesApiKey || hasWorkspaceReadToken(dependencies.environment))) {
|
|
15
|
+
writeSkillError(dependencies, { message: "A User Session is required for account management", reason: "Permission Denied", retryable: false });
|
|
16
|
+
return { exitCode: 3 };
|
|
17
|
+
}
|
|
18
|
+
if ((apiKeyEnvironment !== undefined && apiKeyIdFlag !== undefined) || (usesApiKey && hasWorkspaceReadToken(dependencies.environment))) {
|
|
19
|
+
writeSkillError(dependencies, { message: "Select exactly one API Key or Workspace read-only Token credential", reason: "Invalid Operation", retryable: false });
|
|
20
|
+
return { exitCode: 2 };
|
|
21
|
+
}
|
|
22
|
+
if (apiKeyIdFlag !== undefined && !z.uuid().safeParse(apiKeyIdFlag).success) {
|
|
23
|
+
writeSkillError(dependencies, { message: "API Key ID must be a UUID", reason: "Invalid Operation", retryable: false });
|
|
24
|
+
return { exitCode: 2 };
|
|
25
|
+
}
|
|
26
|
+
if (apiKeyEnvironment !== undefined && !/^sfk_[A-Za-z0-9_-]{43}$/u.test(apiKeyEnvironment)) {
|
|
27
|
+
writeSkillError(dependencies, { message: "SPEC_FLOW_API_KEY does not contain a User API Key", reason: "Authentication Failed", retryable: false });
|
|
28
|
+
return { exitCode: 2 };
|
|
29
|
+
}
|
|
30
|
+
if (options.rejectWorkspaceReadToken === true &&
|
|
31
|
+
hasWorkspaceReadToken(dependencies.environment)) {
|
|
32
|
+
return { exitCode: rejectWorkspaceReadTokenOperation(dependencies) };
|
|
33
|
+
}
|
|
34
|
+
const baseUrl = resolveApiOrigin(dependencies, serverFlag);
|
|
35
|
+
if (baseUrl === null) {
|
|
36
|
+
return { exitCode: 2 };
|
|
37
|
+
}
|
|
38
|
+
let credential;
|
|
39
|
+
try {
|
|
40
|
+
if (apiKeyEnvironment !== undefined)
|
|
41
|
+
credential = apiKeyEnvironment;
|
|
42
|
+
else if (typeof apiKeyIdFlag === "string") {
|
|
43
|
+
if (dependencies.credentialStore.readApiKey === undefined)
|
|
44
|
+
throw new Error("API Key storage is unavailable");
|
|
45
|
+
credential = await dependencies.credentialStore.readApiKey(apiKeyIdFlag.toLowerCase());
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
credential = environmentCredential ?? await dependencies.credentialStore.read();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
writeSkillError(dependencies, {
|
|
53
|
+
message: "The CLI credential store is temporarily unavailable",
|
|
54
|
+
reason: "Temporary Failure",
|
|
55
|
+
retryable: true,
|
|
56
|
+
});
|
|
57
|
+
return { exitCode: 4 };
|
|
58
|
+
}
|
|
59
|
+
if (credential === null || credential.trim().length === 0) {
|
|
60
|
+
writeSkillError(dependencies, {
|
|
61
|
+
message: "An authenticated CLI Session, User API Key or Workspace read-only Token is required",
|
|
62
|
+
reason: "Authentication Failed",
|
|
63
|
+
retryable: false,
|
|
64
|
+
});
|
|
65
|
+
return { exitCode: 2 };
|
|
66
|
+
}
|
|
67
|
+
const configuration = {
|
|
68
|
+
baseUrl,
|
|
69
|
+
...(usesApiKey || options.requireUserSession === true ? { redirect: "error" } : {}),
|
|
70
|
+
headers: {
|
|
71
|
+
...(usesApiKey ? { "x-api-key": credential } : { authorization: `Bearer ${credential}` }),
|
|
72
|
+
"user-agent": specFlowCliUserAgent,
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
const client = createClient({ ...configuration,
|
|
76
|
+
fetch: options.retryTransportOnce === true
|
|
77
|
+
? retryTransportOnce(dependencies.fetch)
|
|
78
|
+
: dependencies.fetch,
|
|
79
|
+
});
|
|
80
|
+
// Identity is a new prerequisite read, not a mutation transport retry. Both
|
|
81
|
+
// clients reuse the one already selected origin and credential.
|
|
82
|
+
const identityClient = options.retryTransportOnce === true ? createClient({ ...configuration, fetch: dependencies.fetch }) : client;
|
|
83
|
+
return { client, identityClient, credentialKind: usesApiKey ? "api-key" : hasWorkspaceReadToken(dependencies.environment) ? "workspace-read-token" : "session" };
|
|
84
|
+
}
|
|
85
|
+
function retryTransportOnce(fetch) {
|
|
86
|
+
return async (request) => {
|
|
87
|
+
const retryRequest = request.clone();
|
|
88
|
+
try {
|
|
89
|
+
return await fetch(request);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return fetch(retryRequest);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function resolveApiOrigin(dependencies, serverFlag) {
|
|
97
|
+
const flag = typeof serverFlag === "string" ? serverFlag : undefined;
|
|
98
|
+
const result = parseHttpOrigin(unresolvedSpecFlowApiOrigin(flag, dependencies.environment.SPEC_FLOW_API_URL));
|
|
99
|
+
if (result.valid) {
|
|
100
|
+
return result.origin;
|
|
101
|
+
}
|
|
102
|
+
writeSkillError(dependencies, {
|
|
103
|
+
message: flag === undefined
|
|
104
|
+
? "SPEC_FLOW_API_URL must be an HTTP(S) origin without a path"
|
|
105
|
+
: "--server must be an HTTP(S) origin without a path",
|
|
106
|
+
reason: "Invalid Operation",
|
|
107
|
+
retryable: false,
|
|
108
|
+
});
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
export function rejectWorkspaceReadTokenOperation(dependencies) {
|
|
112
|
+
writeSkillError(dependencies, {
|
|
113
|
+
message: "Workspace read-only Token does not permit this operation",
|
|
114
|
+
reason: "Permission Denied",
|
|
115
|
+
retryable: false,
|
|
116
|
+
});
|
|
117
|
+
return 3;
|
|
118
|
+
}
|
|
119
|
+
export function hasWorkspaceReadToken(environment) {
|
|
120
|
+
const credential = environment.SPEC_FLOW_WORKSPACE_READ_TOKEN;
|
|
121
|
+
return credential !== undefined && credential.trim().length > 0;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/runtime/session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/** ISO/calendar validation ported from Kaneo time-entry/schema.ts (MIT). */
|
|
2
|
-
export declare function parseTimeEntryTimestamp(value: string): string;
|
|
3
|
-
export declare function parseTimeEntryUuid(value: string): string;
|
|
4
|
-
export declare function parseTimeEntryDescription(value: string): string;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
/** ISO/calendar validation ported from Kaneo time-entry/schema.ts (MIT). */
|
|
3
|
-
export function parseTimeEntryTimestamp(value) {
|
|
4
|
-
const validFormat = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?(Z|[+-]\d{2}:\d{2})$/u.test(value);
|
|
5
|
-
const year = Number(value.slice(0, 4));
|
|
6
|
-
const month = Number(value.slice(5, 7));
|
|
7
|
-
const day = Number(value.slice(8, 10));
|
|
8
|
-
const calendar = new Date(0);
|
|
9
|
-
calendar.setUTCFullYear(year, month - 1, day);
|
|
10
|
-
if (!validFormat || Number.isNaN(Date.parse(value)) || year === 0 || calendar.getUTCFullYear() !== year || calendar.getUTCMonth() !== month - 1 || calendar.getUTCDate() !== day)
|
|
11
|
-
throw new Error("Time Entry timestamp must be a valid ISO 8601 date-time with an offset");
|
|
12
|
-
const timestamp = new Date(value);
|
|
13
|
-
if (timestamp.getUTCFullYear() < 1 || timestamp.getUTCFullYear() > 9999)
|
|
14
|
-
throw new Error("Time Entry UTC year must be between 1 and 9999");
|
|
15
|
-
return timestamp.toISOString();
|
|
16
|
-
}
|
|
17
|
-
export function parseTimeEntryUuid(value) {
|
|
18
|
-
if (!z.uuid().safeParse(value).success)
|
|
19
|
-
throw new Error("Time Entry identifier and command key must be UUIDs");
|
|
20
|
-
return value;
|
|
21
|
-
}
|
|
22
|
-
export function parseTimeEntryDescription(value) {
|
|
23
|
-
if (value.length > 20_000 || value.includes("\0"))
|
|
24
|
-
throw new Error("Time Entry description exceeds the allowed limit");
|
|
25
|
-
return value;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=work-item-time-entry-input.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"work-item-time-entry-input.js","sourceRoot":"","sources":["../src/work-item-time-entry-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,4EAA4E;AAC5E,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,WAAW,GAAG,0EAA0E,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3G,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,QAAQ,CAAC,cAAc,EAAE,KAAK,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5Q,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,cAAc,EAAE,GAAG,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAC3I,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;AACjC,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC/G,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACvH,OAAO,KAAK,CAAC;AACf,CAAC"}
|