@qawolf/api-contracts 0.52.0 → 0.53.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 +4 -0
- package/dist/v1/agent/get.d.ts +8 -1
- package/dist/v1/agent/get.d.ts.map +1 -1
- package/dist/v1/agent/get.js +16 -2
- package/dist/v1/agent/get.js.map +1 -1
- package/dist/v1/agent/send.d.ts +6 -0
- package/dist/v1/agent/send.d.ts.map +1 -1
- package/dist/v1/agent/send.js +11 -0
- package/dist/v1/agent/send.js.map +1 -1
- package/dist/v1/automate/index.d.ts +5 -0
- package/dist/v1/automate/index.d.ts.map +1 -1
- package/dist/v1/automate/index.js +5 -0
- package/dist/v1/automate/index.js.map +1 -1
- package/dist/v1/definition.d.ts +7 -0
- package/dist/v1/definition.d.ts.map +1 -1
- package/dist/v1/deployment/reportStatus.d.ts +7 -2
- package/dist/v1/deployment/reportStatus.d.ts.map +1 -1
- package/dist/v1/deployment/reportStatus.js +5 -0
- package/dist/v1/deployment/reportStatus.js.map +1 -1
- package/dist/v1/email/find.d.ts +5 -0
- package/dist/v1/email/find.d.ts.map +1 -1
- package/dist/v1/email/find.js +5 -0
- package/dist/v1/email/find.js.map +1 -1
- package/dist/v1/email/get.d.ts +5 -0
- package/dist/v1/email/get.d.ts.map +1 -1
- package/dist/v1/email/get.js +5 -0
- package/dist/v1/email/get.js.map +1 -1
- package/dist/v1/email/getAttachment.d.ts +5 -0
- package/dist/v1/email/getAttachment.d.ts.map +1 -1
- package/dist/v1/email/getAttachment.js +5 -0
- package/dist/v1/email/getAttachment.js.map +1 -1
- package/dist/v1/email/listAddresses.d.ts +5 -0
- package/dist/v1/email/listAddresses.d.ts.map +1 -1
- package/dist/v1/email/listAddresses.js +5 -0
- package/dist/v1/email/listAddresses.js.map +1 -1
- package/dist/v1/email/registerAddress.d.ts +5 -0
- package/dist/v1/email/registerAddress.d.ts.map +1 -1
- package/dist/v1/email/registerAddress.js +5 -0
- package/dist/v1/email/registerAddress.js.map +1 -1
- package/dist/v1/email/send.d.ts +5 -0
- package/dist/v1/email/send.d.ts.map +1 -1
- package/dist/v1/email/send.js +5 -0
- package/dist/v1/email/send.js.map +1 -1
- package/dist/v1/environment/deleteVariable.d.ts +5 -0
- package/dist/v1/environment/deleteVariable.d.ts.map +1 -1
- package/dist/v1/environment/deleteVariable.js +5 -0
- package/dist/v1/environment/deleteVariable.js.map +1 -1
- package/dist/v1/environment/find.d.ts +6 -1
- package/dist/v1/environment/find.d.ts.map +1 -1
- package/dist/v1/environment/find.js +5 -0
- package/dist/v1/environment/find.js.map +1 -1
- package/dist/v1/environment/getVariable.d.ts +5 -0
- package/dist/v1/environment/getVariable.d.ts.map +1 -1
- package/dist/v1/environment/getVariable.js +5 -0
- package/dist/v1/environment/getVariable.js.map +1 -1
- package/dist/v1/environment/index.d.ts +23 -3
- package/dist/v1/environment/index.d.ts.map +1 -1
- package/dist/v1/environment/index.js +21 -1
- package/dist/v1/environment/index.js.map +1 -1
- package/dist/v1/environment/resource.d.ts +1 -1
- package/dist/v1/environment/update.d.ts +6 -1
- package/dist/v1/environment/update.d.ts.map +1 -1
- package/dist/v1/environment/update.js +5 -0
- package/dist/v1/environment/update.js.map +1 -1
- package/dist/v1/file/index.d.ts +46 -0
- package/dist/v1/file/index.d.ts.map +1 -0
- package/dist/v1/file/index.js +8 -0
- package/dist/v1/file/index.js.map +1 -0
- package/dist/v1/file/path.d.ts +6 -0
- package/dist/v1/file/path.d.ts.map +1 -0
- package/dist/v1/file/path.js +17 -0
- package/dist/v1/file/path.js.map +1 -0
- package/dist/v1/file/requestDownload.d.ts +24 -0
- package/dist/v1/file/requestDownload.d.ts.map +1 -0
- package/dist/v1/file/requestDownload.js +32 -0
- package/dist/v1/file/requestDownload.js.map +1 -0
- package/dist/v1/file/requestUpload.d.ts +25 -0
- package/dist/v1/file/requestUpload.d.ts.map +1 -0
- package/dist/v1/file/requestUpload.js +37 -0
- package/dist/v1/file/requestUpload.js.map +1 -0
- package/dist/v1/flow/addTag.d.ts +5 -0
- package/dist/v1/flow/addTag.d.ts.map +1 -1
- package/dist/v1/flow/addTag.js +5 -0
- package/dist/v1/flow/addTag.js.map +1 -1
- package/dist/v1/flow/index.d.ts +5 -0
- package/dist/v1/flow/index.d.ts.map +1 -1
- package/dist/v1/flow/index.js +5 -0
- package/dist/v1/flow/index.js.map +1 -1
- package/dist/v1/flow/removeTag.d.ts +5 -0
- package/dist/v1/flow/removeTag.d.ts.map +1 -1
- package/dist/v1/flow/removeTag.js +5 -0
- package/dist/v1/flow/removeTag.js.map +1 -1
- package/dist/v1/flow/update.d.ts +5 -0
- package/dist/v1/flow/update.d.ts.map +1 -1
- package/dist/v1/flow/update.js +5 -0
- package/dist/v1/flow/update.js.map +1 -1
- package/dist/v1/ids.d.ts +3 -2
- package/dist/v1/ids.d.ts.map +1 -1
- package/dist/v1/ids.js +1 -0
- package/dist/v1/ids.js.map +1 -1
- package/dist/v1/index.d.ts +1620 -32
- package/dist/v1/index.d.ts.map +1 -1
- package/dist/v1/index.js +17 -8
- package/dist/v1/index.js.map +1 -1
- package/dist/v1/issue/addFlows.d.ts +5 -0
- package/dist/v1/issue/addFlows.d.ts.map +1 -1
- package/dist/v1/issue/addFlows.js +5 -0
- package/dist/v1/issue/addFlows.js.map +1 -1
- package/dist/v1/issue/create.d.ts +5 -0
- package/dist/v1/issue/create.d.ts.map +1 -1
- package/dist/v1/issue/create.js +5 -0
- package/dist/v1/issue/create.js.map +1 -1
- package/dist/v1/issue/index.d.ts +10 -0
- package/dist/v1/issue/index.d.ts.map +1 -1
- package/dist/v1/issue/index.js +10 -0
- package/dist/v1/issue/index.js.map +1 -1
- package/dist/v1/issue/removeFlows.d.ts +5 -0
- package/dist/v1/issue/removeFlows.d.ts.map +1 -1
- package/dist/v1/issue/removeFlows.js +5 -0
- package/dist/v1/issue/removeFlows.js.map +1 -1
- package/dist/v1/issue/update.d.ts +5 -0
- package/dist/v1/issue/update.d.ts.map +1 -1
- package/dist/v1/issue/update.js +5 -0
- package/dist/v1/issue/update.js.map +1 -1
- package/dist/v1/mcpToolDescription.d.ts +11 -0
- package/dist/v1/mcpToolDescription.d.ts.map +1 -0
- package/dist/v1/mcpToolDescription.js +19 -0
- package/dist/v1/mcpToolDescription.js.map +1 -0
- package/dist/v1/run/diagnose.d.ts +5 -0
- package/dist/v1/run/diagnose.d.ts.map +1 -1
- package/dist/v1/run/diagnose.js +5 -0
- package/dist/v1/run/diagnose.js.map +1 -1
- package/dist/v1/run/find.d.ts +5 -0
- package/dist/v1/run/find.d.ts.map +1 -1
- package/dist/v1/run/find.js +5 -0
- package/dist/v1/run/find.js.map +1 -1
- package/dist/v1/run/get.d.ts +5 -0
- package/dist/v1/run/get.d.ts.map +1 -1
- package/dist/v1/run/get.js +5 -0
- package/dist/v1/run/get.js.map +1 -1
- package/dist/v1/run/index.d.ts +5 -0
- package/dist/v1/run/index.d.ts.map +1 -1
- package/dist/v1/run/index.js +5 -0
- package/dist/v1/run/index.js.map +1 -1
- package/dist/v1/run/reattempt.d.ts +5 -0
- package/dist/v1/run/reattempt.d.ts.map +1 -1
- package/dist/v1/run/reattempt.js +5 -0
- package/dist/v1/run/reattempt.js.map +1 -1
- package/dist/v1/run/stop.d.ts +6 -1
- package/dist/v1/run/stop.d.ts.map +1 -1
- package/dist/v1/run/stop.js +6 -1
- package/dist/v1/run/stop.js.map +1 -1
- package/dist/v1/runner/evaluateSnippet.d.ts +6 -1
- package/dist/v1/runner/evaluateSnippet.d.ts.map +1 -1
- package/dist/v1/runner/evaluateSnippet.js +5 -0
- package/dist/v1/runner/evaluateSnippet.js.map +1 -1
- package/dist/v1/runner/get.d.ts +5 -0
- package/dist/v1/runner/get.d.ts.map +1 -1
- package/dist/v1/runner/get.js +5 -0
- package/dist/v1/runner/get.js.map +1 -1
- package/dist/v1/runner/highlightSelector.d.ts +5 -0
- package/dist/v1/runner/highlightSelector.d.ts.map +1 -1
- package/dist/v1/runner/highlightSelector.js +5 -0
- package/dist/v1/runner/highlightSelector.js.map +1 -1
- package/dist/v1/runner/identity.d.ts +1 -0
- package/dist/v1/runner/identity.d.ts.map +1 -1
- package/dist/v1/runner/identity.js +3 -0
- package/dist/v1/runner/identity.js.map +1 -1
- package/dist/v1/runner/importPackage.d.ts +5 -0
- package/dist/v1/runner/importPackage.d.ts.map +1 -1
- package/dist/v1/runner/importPackage.js +5 -0
- package/dist/v1/runner/importPackage.js.map +1 -1
- package/dist/v1/runner/index.d.ts +11 -0
- package/dist/v1/runner/index.d.ts.map +1 -1
- package/dist/v1/runner/index.js +10 -0
- package/dist/v1/runner/index.js.map +1 -1
- package/dist/v1/runner/inspect.d.ts +6 -0
- package/dist/v1/runner/inspect.d.ts.map +1 -1
- package/dist/v1/runner/inspect.js +7 -2
- package/dist/v1/runner/inspect.js.map +1 -1
- package/dist/v1/runner/inspectMobile.d.ts +27 -1
- package/dist/v1/runner/inspectMobile.d.ts.map +1 -1
- package/dist/v1/runner/inspectMobile.js +44 -22
- package/dist/v1/runner/inspectMobile.js.map +1 -1
- package/dist/v1/runner/list.d.ts +6 -0
- package/dist/v1/runner/list.d.ts.map +1 -1
- package/dist/v1/runner/list.js +5 -0
- package/dist/v1/runner/list.js.map +1 -1
- package/dist/v1/runner/performAction.d.ts +5 -0
- package/dist/v1/runner/performAction.d.ts.map +1 -1
- package/dist/v1/runner/performAction.js +5 -0
- package/dist/v1/runner/performAction.js.map +1 -1
- package/dist/v1/runner/promoteSnapshot.d.ts +5 -0
- package/dist/v1/runner/promoteSnapshot.d.ts.map +1 -1
- package/dist/v1/runner/promoteSnapshot.js +5 -0
- package/dist/v1/runner/promoteSnapshot.js.map +1 -1
- package/dist/v1/runner/readJournal.d.ts +5 -0
- package/dist/v1/runner/readJournal.d.ts.map +1 -1
- package/dist/v1/runner/readJournal.js +5 -0
- package/dist/v1/runner/readJournal.js.map +1 -1
- package/dist/v1/runner/runFlow.d.ts +5 -0
- package/dist/v1/runner/runFlow.d.ts.map +1 -1
- package/dist/v1/runner/runFlow.js +5 -0
- package/dist/v1/runner/runFlow.js.map +1 -1
- package/dist/v1/runner/stopRun.d.ts +5 -0
- package/dist/v1/runner/stopRun.d.ts.map +1 -1
- package/dist/v1/runner/stopRun.js +5 -0
- package/dist/v1/runner/stopRun.js.map +1 -1
- package/dist/v1/runner/takeScreenshot.d.ts +6 -1
- package/dist/v1/runner/takeScreenshot.d.ts.map +1 -1
- package/dist/v1/runner/takeScreenshot.js +6 -1
- package/dist/v1/runner/takeScreenshot.js.map +1 -1
- package/dist/v1/sharedSchemas.d.ts +18 -0
- package/dist/v1/sharedSchemas.d.ts.map +1 -0
- package/dist/v1/sharedSchemas.js +17 -0
- package/dist/v1/sharedSchemas.js.map +1 -0
- package/dist/v1/tag/index.d.ts +5 -0
- package/dist/v1/tag/index.d.ts.map +1 -1
- package/dist/v1/tag/index.js +5 -0
- package/dist/v1/tag/index.js.map +1 -1
- package/dist/v1/tag/list.d.ts +5 -0
- package/dist/v1/tag/list.d.ts.map +1 -1
- package/dist/v1/tag/list.js +5 -0
- package/dist/v1/tag/list.js.map +1 -1
- package/dist/v1/trigger/configuration.d.ts +99 -0
- package/dist/v1/trigger/configuration.d.ts.map +1 -0
- package/dist/v1/trigger/configuration.js +125 -0
- package/dist/v1/trigger/configuration.js.map +1 -0
- package/dist/v1/trigger/configurationRules.d.ts +35 -0
- package/dist/v1/trigger/configurationRules.d.ts.map +1 -0
- package/dist/v1/trigger/configurationRules.js +92 -0
- package/dist/v1/trigger/configurationRules.js.map +1 -0
- package/dist/v1/trigger/create.d.ts +114 -0
- package/dist/v1/trigger/create.d.ts.map +1 -0
- package/dist/v1/trigger/create.js +44 -0
- package/dist/v1/trigger/create.js.map +1 -0
- package/dist/v1/trigger/find.d.ts +75 -0
- package/dist/v1/trigger/find.d.ts.map +1 -0
- package/dist/v1/trigger/find.js +35 -0
- package/dist/v1/trigger/find.js.map +1 -0
- package/dist/v1/trigger/get.d.ts +73 -0
- package/dist/v1/trigger/get.d.ts.map +1 -0
- package/dist/v1/trigger/get.js +19 -0
- package/dist/v1/trigger/get.js.map +1 -0
- package/dist/v1/trigger/index.d.ts +9 -0
- package/dist/v1/trigger/index.d.ts.map +1 -0
- package/dist/v1/trigger/index.js +9 -0
- package/dist/v1/trigger/index.js.map +1 -0
- package/dist/v1/trigger/lifecycle.d.ts +159 -0
- package/dist/v1/trigger/lifecycle.d.ts.map +1 -0
- package/dist/v1/trigger/lifecycle.js +56 -0
- package/dist/v1/trigger/lifecycle.js.map +1 -0
- package/dist/v1/trigger/resource.d.ts +58 -0
- package/dist/v1/trigger/resource.d.ts.map +1 -0
- package/dist/v1/trigger/resource.js +52 -0
- package/dist/v1/trigger/resource.js.map +1 -0
- package/dist/v1/trigger/update.d.ts +113 -0
- package/dist/v1/trigger/update.d.ts.map +1 -0
- package/dist/v1/trigger/update.js +43 -0
- package/dist/v1/trigger/update.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
// The domain refines the same field with luxon. This package publishes to npm
|
|
3
|
+
// and takes no such dependency, so it asks the runtime instead. A caller then
|
|
4
|
+
// gets a field level error rather than a generic failure deeper in.
|
|
5
|
+
//
|
|
6
|
+
// `Intl.supportedValuesOf("timeZone")` lists canonical zones only, so it
|
|
7
|
+
// refuses `UTC`, `GMT` and aliases such as `US/Pacific` that luxon accepts.
|
|
8
|
+
// Making a formatter accepts every zone luxon does, and throws for the rest.
|
|
9
|
+
const isTimezone = (value) => {
|
|
10
|
+
try {
|
|
11
|
+
Intl.DateTimeFormat("en-US", { timeZone: value });
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* A trigger is "run this, when that". `action` carries the this, and the
|
|
20
|
+
* match fields carry the that.
|
|
21
|
+
*
|
|
22
|
+
* The domain stores both in a versioned `when`/`actions` envelope holding
|
|
23
|
+
* arrays of objects. The public shape carries one match and one action as
|
|
24
|
+
* scalars instead, because the QA Wolf CLI derives one flag per leaf field
|
|
25
|
+
* and cannot express an array of objects. Nesting is fine: `action.flowIds`
|
|
26
|
+
* becomes `--action-flow-ids`.
|
|
27
|
+
*
|
|
28
|
+
* The same fields appear in inputs and in the trigger resource, so a caller
|
|
29
|
+
* can read a trigger, change one field, and write it back.
|
|
30
|
+
*/
|
|
31
|
+
export const triggerCadenceSchema = z
|
|
32
|
+
.enum(["hourly", "daily"])
|
|
33
|
+
.describe("How often the schedule fires.");
|
|
34
|
+
export const triggerActionKindSchema = z
|
|
35
|
+
.enum(["createSuite", "generativeSuite"])
|
|
36
|
+
.describe("createSuite runs the flows named by flowIds and tagNames. generativeSuite lets QA Wolf choose the flows from the deployment's changes, and is not available to a schedule.");
|
|
37
|
+
/**
|
|
38
|
+
* What the trigger runs when it fires.
|
|
39
|
+
*
|
|
40
|
+
* One schema, shared verbatim by both trigger kinds. A schedule cannot use
|
|
41
|
+
* `generativeSuite`, but that is a rule rather than a separate shape: the CLI
|
|
42
|
+
* refuses a field whose object schema differs between union branches, so the
|
|
43
|
+
* two kinds must offer the same action.
|
|
44
|
+
*/
|
|
45
|
+
export const makeTriggerActionSchema = (ids) => z
|
|
46
|
+
.object({
|
|
47
|
+
flowIds: z
|
|
48
|
+
.array(ids.flow)
|
|
49
|
+
.default([])
|
|
50
|
+
.describe("Flows to run. Combined with tagNames."),
|
|
51
|
+
instructions: z
|
|
52
|
+
.string()
|
|
53
|
+
.min(1)
|
|
54
|
+
.optional()
|
|
55
|
+
.describe("Guidance for QA Wolf. Applies to generativeSuite only."),
|
|
56
|
+
investigateFailures: z
|
|
57
|
+
.boolean()
|
|
58
|
+
.optional()
|
|
59
|
+
.describe("Whether QA Wolf investigates failures in the resulting runs. Defaults to true."),
|
|
60
|
+
kind: triggerActionKindSchema.default("createSuite"),
|
|
61
|
+
tagNames: z
|
|
62
|
+
.array(z.string().min(1))
|
|
63
|
+
.default([])
|
|
64
|
+
.describe("Tags naming the flows to run. Combined with flowIds."),
|
|
65
|
+
})
|
|
66
|
+
.describe("What the trigger runs when it fires.");
|
|
67
|
+
/**
|
|
68
|
+
* Fields that say when a schedule trigger fires.
|
|
69
|
+
*
|
|
70
|
+
* `environmentId` takes whichever schema the caller types it with. A write
|
|
71
|
+
* input passes the reference schema, which also accepts an alias. The trigger
|
|
72
|
+
* resource passes the environment id schema, because a read reports the
|
|
73
|
+
* environment the reference resolved to.
|
|
74
|
+
*/
|
|
75
|
+
export const makeTriggerScheduleFields = (ids) => ({
|
|
76
|
+
action: makeTriggerActionSchema(ids),
|
|
77
|
+
cadence: triggerCadenceSchema,
|
|
78
|
+
environmentId: ids.environmentId.describe("The environment the scheduled runs happen in."),
|
|
79
|
+
minuteOfHour: z
|
|
80
|
+
.number()
|
|
81
|
+
.int()
|
|
82
|
+
.min(0)
|
|
83
|
+
.max(59)
|
|
84
|
+
.optional()
|
|
85
|
+
.describe("Minutes past the hour an hourly schedule fires. Defaults to 0."),
|
|
86
|
+
timeOfDay: z
|
|
87
|
+
.string()
|
|
88
|
+
.regex(/^([01]\d|2[0-3]):[0-5]\d$/)
|
|
89
|
+
.optional()
|
|
90
|
+
.describe('The wall clock time a daily schedule fires, as "HH:mm". Required when cadence is daily.'),
|
|
91
|
+
timezoneId: z
|
|
92
|
+
.string()
|
|
93
|
+
.min(1)
|
|
94
|
+
.refine(isTimezone, "Expected an IANA timezone, such as America/New_York.")
|
|
95
|
+
.optional()
|
|
96
|
+
.describe("The IANA timezone that timeOfDay is read in, such as America/New_York. Required when cadence is daily."),
|
|
97
|
+
});
|
|
98
|
+
/**
|
|
99
|
+
* Fields that say which deployments a deployment trigger fires for. Every
|
|
100
|
+
* pattern supplied must match, and supplying none fires on every deployment
|
|
101
|
+
* the team reports.
|
|
102
|
+
*/
|
|
103
|
+
export const makeTriggerDeploymentFields = (ids) => ({
|
|
104
|
+
action: makeTriggerActionSchema(ids),
|
|
105
|
+
branchPattern: z
|
|
106
|
+
.string()
|
|
107
|
+
.min(1)
|
|
108
|
+
.optional()
|
|
109
|
+
.describe("Only fire for deployments of a branch matching this pattern."),
|
|
110
|
+
deployTargetPattern: z
|
|
111
|
+
.string()
|
|
112
|
+
.min(1)
|
|
113
|
+
.optional()
|
|
114
|
+
.describe("Only fire for deployments of an app matching this pattern. A deploy target names one app within an environment."),
|
|
115
|
+
environmentIds: z
|
|
116
|
+
.array(ids.environment)
|
|
117
|
+
.default([])
|
|
118
|
+
.describe("Only fire for deployments to these environments. Mutually exclusive with environmentPattern."),
|
|
119
|
+
environmentPattern: z
|
|
120
|
+
.string()
|
|
121
|
+
.min(1)
|
|
122
|
+
.optional()
|
|
123
|
+
.describe("Only fire for deployments to environments matching this pattern. Mutually exclusive with environmentIds."),
|
|
124
|
+
});
|
|
125
|
+
//# sourceMappingURL=configuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/v1/trigger/configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Cross field rules for a trigger configuration.
|
|
4
|
+
*
|
|
5
|
+
* These are the rules the domain enforces once the flat shape is assembled
|
|
6
|
+
* into a `when`/`actions` envelope. They are checked here so a caller gets a
|
|
7
|
+
* field-level validation error instead of a generic domain failure.
|
|
8
|
+
*/
|
|
9
|
+
type Action = {
|
|
10
|
+
flowIds: string[];
|
|
11
|
+
instructions?: string | undefined;
|
|
12
|
+
kind: "createSuite" | "generativeSuite";
|
|
13
|
+
tagNames: string[];
|
|
14
|
+
};
|
|
15
|
+
type ScheduleShape = {
|
|
16
|
+
action: Action;
|
|
17
|
+
cadence: "daily" | "hourly";
|
|
18
|
+
kind: "schedule";
|
|
19
|
+
minuteOfHour?: number | undefined;
|
|
20
|
+
timeOfDay?: string | undefined;
|
|
21
|
+
timezoneId?: string | undefined;
|
|
22
|
+
};
|
|
23
|
+
type DeploymentShape = {
|
|
24
|
+
action: Action;
|
|
25
|
+
environmentIds: string[];
|
|
26
|
+
environmentPattern?: string | undefined;
|
|
27
|
+
kind: "deployment";
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Applies the rules for whichever kind the value carries. Written against a
|
|
31
|
+
* structural type so the create and the update input can share it.
|
|
32
|
+
*/
|
|
33
|
+
export declare const checkTriggerConfiguration: (value: DeploymentShape | ScheduleShape, ctx: z.RefinementCtx) => void;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=configurationRules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configurationRules.d.ts","sourceRoot":"","sources":["../../../src/v1/trigger/configurationRules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;;;;GAMG;AAEH,KAAK,MAAM,GAAG;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,IAAI,EAAE,aAAa,GAAG,iBAAiB,CAAC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AA2FF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACpC,OAAO,eAAe,GAAG,aAAa,EACtC,KAAK,CAAC,CAAC,aAAa,KACnB,IAG8B,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
const checkAction = (action, ctx) => {
|
|
2
|
+
const namesFlows = action.flowIds.length + action.tagNames.length > 0;
|
|
3
|
+
if (action.kind === "generativeSuite") {
|
|
4
|
+
// QA Wolf picks the flows from the deployment, so naming them is a
|
|
5
|
+
// contradiction rather than a harmless extra.
|
|
6
|
+
if (namesFlows) {
|
|
7
|
+
ctx.addIssue({
|
|
8
|
+
code: "custom",
|
|
9
|
+
message: "flowIds and tagNames do not apply when the action is generativeSuite.",
|
|
10
|
+
path: ["action", "flowIds"],
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (action.instructions !== undefined) {
|
|
16
|
+
ctx.addIssue({
|
|
17
|
+
code: "custom",
|
|
18
|
+
message: "instructions apply to a generativeSuite action only.",
|
|
19
|
+
path: ["action", "instructions"],
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
if (!namesFlows) {
|
|
23
|
+
ctx.addIssue({
|
|
24
|
+
code: "custom",
|
|
25
|
+
message: "At least one flow or tag is required.",
|
|
26
|
+
path: ["action", "flowIds"],
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const checkSchedule = (value, ctx) => {
|
|
31
|
+
if (value.cadence === "daily") {
|
|
32
|
+
// The domain reads timeOfDay in timezoneId, so a daily cadence is
|
|
33
|
+
// ambiguous without both.
|
|
34
|
+
for (const field of ["timeOfDay", "timezoneId"]) {
|
|
35
|
+
if (value[field] === undefined) {
|
|
36
|
+
ctx.addIssue({
|
|
37
|
+
code: "custom",
|
|
38
|
+
message: `${field} is required when cadence is daily.`,
|
|
39
|
+
path: [field],
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (value.minuteOfHour !== undefined) {
|
|
44
|
+
ctx.addIssue({
|
|
45
|
+
code: "custom",
|
|
46
|
+
message: "minuteOfHour applies to an hourly cadence only.",
|
|
47
|
+
path: ["minuteOfHour"],
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
for (const field of ["timeOfDay", "timezoneId"]) {
|
|
53
|
+
if (value[field] !== undefined) {
|
|
54
|
+
ctx.addIssue({
|
|
55
|
+
code: "custom",
|
|
56
|
+
message: `${field} applies to a daily cadence only.`,
|
|
57
|
+
path: [field],
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// A schedule fire runs createSuite actions only: the generative action
|
|
63
|
+
// builds its run set from a deployment's changes, and a schedule has none.
|
|
64
|
+
if (value.action.kind === "generativeSuite") {
|
|
65
|
+
ctx.addIssue({
|
|
66
|
+
code: "custom",
|
|
67
|
+
message: "A schedule trigger cannot use a generativeSuite action.",
|
|
68
|
+
path: ["action", "kind"],
|
|
69
|
+
});
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
checkAction(value.action, ctx);
|
|
73
|
+
};
|
|
74
|
+
const checkDeployment = (value, ctx) => {
|
|
75
|
+
if (value.environmentPattern !== undefined &&
|
|
76
|
+
value.environmentIds.length > 0) {
|
|
77
|
+
ctx.addIssue({
|
|
78
|
+
code: "custom",
|
|
79
|
+
message: "Supply environmentIds or environmentPattern, not both.",
|
|
80
|
+
path: ["environmentPattern"],
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
checkAction(value.action, ctx);
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Applies the rules for whichever kind the value carries. Written against a
|
|
87
|
+
* structural type so the create and the update input can share it.
|
|
88
|
+
*/
|
|
89
|
+
export const checkTriggerConfiguration = (value, ctx) => value.kind === "schedule"
|
|
90
|
+
? checkSchedule(value, ctx)
|
|
91
|
+
: checkDeployment(value, ctx);
|
|
92
|
+
//# sourceMappingURL=configurationRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configurationRules.js","sourceRoot":"","sources":["../../../src/v1/trigger/configurationRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { PublicIdSchema } from "../ids.js";
|
|
3
|
+
export declare const makeCreateTriggerContract: <EnvironmentId extends PublicIdSchema, FlowId extends PublicIdSchema, TriggerId extends PublicIdSchema, WorkspaceId extends PublicIdSchema>(ids: {
|
|
4
|
+
environment: EnvironmentId;
|
|
5
|
+
/** Accepts an id or an alias; the resource reports the id it resolved to. */
|
|
6
|
+
environmentRef: PublicIdSchema;
|
|
7
|
+
flow: FlowId;
|
|
8
|
+
trigger: TriggerId;
|
|
9
|
+
workspace: WorkspaceId;
|
|
10
|
+
}) => {
|
|
11
|
+
readonly annotations: {
|
|
12
|
+
readonly destructiveHint: true;
|
|
13
|
+
readonly openWorldHint: true;
|
|
14
|
+
readonly readOnlyHint: false;
|
|
15
|
+
};
|
|
16
|
+
readonly description: string;
|
|
17
|
+
readonly input: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
18
|
+
kind: z.ZodLiteral<"schedule">;
|
|
19
|
+
action: z.ZodObject<{
|
|
20
|
+
flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
|
|
21
|
+
instructions: z.ZodOptional<z.ZodString>;
|
|
22
|
+
investigateFailures: z.ZodOptional<z.ZodBoolean>;
|
|
23
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
24
|
+
createSuite: "createSuite";
|
|
25
|
+
generativeSuite: "generativeSuite";
|
|
26
|
+
}>>;
|
|
27
|
+
tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
cadence: z.ZodEnum<{
|
|
30
|
+
hourly: "hourly";
|
|
31
|
+
daily: "daily";
|
|
32
|
+
}>;
|
|
33
|
+
environmentId: PublicIdSchema;
|
|
34
|
+
minuteOfHour: z.ZodOptional<z.ZodNumber>;
|
|
35
|
+
timeOfDay: z.ZodOptional<z.ZodString>;
|
|
36
|
+
timezoneId: z.ZodOptional<z.ZodString>;
|
|
37
|
+
name: z.ZodString;
|
|
38
|
+
workspaceId: z.ZodOptional<WorkspaceId>;
|
|
39
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
40
|
+
kind: z.ZodLiteral<"deployment">;
|
|
41
|
+
action: z.ZodObject<{
|
|
42
|
+
flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
|
|
43
|
+
instructions: z.ZodOptional<z.ZodString>;
|
|
44
|
+
investigateFailures: z.ZodOptional<z.ZodBoolean>;
|
|
45
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
46
|
+
createSuite: "createSuite";
|
|
47
|
+
generativeSuite: "generativeSuite";
|
|
48
|
+
}>>;
|
|
49
|
+
tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
50
|
+
}, z.core.$strip>;
|
|
51
|
+
branchPattern: z.ZodOptional<z.ZodString>;
|
|
52
|
+
deployTargetPattern: z.ZodOptional<z.ZodString>;
|
|
53
|
+
environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
|
|
54
|
+
environmentPattern: z.ZodOptional<z.ZodString>;
|
|
55
|
+
name: z.ZodString;
|
|
56
|
+
workspaceId: z.ZodOptional<WorkspaceId>;
|
|
57
|
+
}, z.core.$strip>], "kind">;
|
|
58
|
+
readonly kind: "write";
|
|
59
|
+
readonly name: "trigger.create";
|
|
60
|
+
readonly output: z.ZodObject<{
|
|
61
|
+
trigger: z.ZodObject<{
|
|
62
|
+
configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
63
|
+
kind: z.ZodLiteral<"schedule">;
|
|
64
|
+
action: z.ZodObject<{
|
|
65
|
+
flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
|
|
66
|
+
instructions: z.ZodOptional<z.ZodString>;
|
|
67
|
+
investigateFailures: z.ZodOptional<z.ZodBoolean>;
|
|
68
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
69
|
+
createSuite: "createSuite";
|
|
70
|
+
generativeSuite: "generativeSuite";
|
|
71
|
+
}>>;
|
|
72
|
+
tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
cadence: z.ZodEnum<{
|
|
75
|
+
hourly: "hourly";
|
|
76
|
+
daily: "daily";
|
|
77
|
+
}>;
|
|
78
|
+
environmentId: EnvironmentId;
|
|
79
|
+
minuteOfHour: z.ZodOptional<z.ZodNumber>;
|
|
80
|
+
timeOfDay: z.ZodOptional<z.ZodString>;
|
|
81
|
+
timezoneId: z.ZodOptional<z.ZodString>;
|
|
82
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
83
|
+
kind: z.ZodLiteral<"deployment">;
|
|
84
|
+
action: z.ZodObject<{
|
|
85
|
+
flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
|
|
86
|
+
instructions: z.ZodOptional<z.ZodString>;
|
|
87
|
+
investigateFailures: z.ZodOptional<z.ZodBoolean>;
|
|
88
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
89
|
+
createSuite: "createSuite";
|
|
90
|
+
generativeSuite: "generativeSuite";
|
|
91
|
+
}>>;
|
|
92
|
+
tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
93
|
+
}, z.core.$strip>;
|
|
94
|
+
branchPattern: z.ZodOptional<z.ZodString>;
|
|
95
|
+
deployTargetPattern: z.ZodOptional<z.ZodString>;
|
|
96
|
+
environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
|
|
97
|
+
environmentPattern: z.ZodOptional<z.ZodString>;
|
|
98
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
99
|
+
actionCount: z.ZodNumber;
|
|
100
|
+
kind: z.ZodLiteral<"advanced">;
|
|
101
|
+
whenCount: z.ZodNumber;
|
|
102
|
+
}, z.core.$strip>], "kind">;
|
|
103
|
+
createdAt: z.ZodISODateTime;
|
|
104
|
+
id: TriggerId;
|
|
105
|
+
isPaused: z.ZodBoolean;
|
|
106
|
+
name: z.ZodString;
|
|
107
|
+
nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
|
|
108
|
+
pausedAt: z.ZodOptional<z.ZodISODateTime>;
|
|
109
|
+
updatedAt: z.ZodISODateTime;
|
|
110
|
+
url: z.ZodURL;
|
|
111
|
+
}, z.core.$strip>;
|
|
112
|
+
}, z.core.$strip>;
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/v1/trigger/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAShD,eAAO,MAAM,yBAAyB,GACpC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,SAAS,SAAS,cAAc,EAChC,WAAW,SAAS,cAAc,EAClC,KAAK;IACL,WAAW,EAAE,aAAa,CAAC;IAC3B,6EAA6E;IAC7E,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CA,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { makeTriggerDeploymentFields, makeTriggerScheduleFields, } from "./configuration.js";
|
|
3
|
+
import { checkTriggerConfiguration } from "./configurationRules.js";
|
|
4
|
+
import { makeTriggerResourceSchema } from "./resource.js";
|
|
5
|
+
export const makeCreateTriggerContract = (ids) => {
|
|
6
|
+
const commonFields = {
|
|
7
|
+
name: z.string().trim().min(1).max(255),
|
|
8
|
+
workspaceId: ids.workspace
|
|
9
|
+
.optional()
|
|
10
|
+
.describe("The workspace to create the trigger in. Required when authenticating with an organization or user API key."),
|
|
11
|
+
};
|
|
12
|
+
const input = z
|
|
13
|
+
.discriminatedUnion("kind", [
|
|
14
|
+
z.object({
|
|
15
|
+
...commonFields,
|
|
16
|
+
...makeTriggerScheduleFields({
|
|
17
|
+
environmentId: ids.environmentRef,
|
|
18
|
+
flow: ids.flow,
|
|
19
|
+
}),
|
|
20
|
+
kind: z.literal("schedule"),
|
|
21
|
+
}),
|
|
22
|
+
z.object({
|
|
23
|
+
...commonFields,
|
|
24
|
+
...makeTriggerDeploymentFields(ids),
|
|
25
|
+
kind: z.literal("deployment"),
|
|
26
|
+
}),
|
|
27
|
+
])
|
|
28
|
+
.superRefine(checkTriggerConfiguration);
|
|
29
|
+
const output = z.object({ trigger: makeTriggerResourceSchema(ids) });
|
|
30
|
+
return {
|
|
31
|
+
annotations: {
|
|
32
|
+
destructiveHint: true,
|
|
33
|
+
openWorldHint: true,
|
|
34
|
+
readOnlyHint: false,
|
|
35
|
+
},
|
|
36
|
+
description: "Create a trigger. A schedule trigger runs a named set of flows on a cadence; " +
|
|
37
|
+
"a deployment trigger runs when a matching deployment is reported.",
|
|
38
|
+
input,
|
|
39
|
+
kind: "write",
|
|
40
|
+
name: "trigger.create",
|
|
41
|
+
output,
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/v1/trigger/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAKvC,GAOD,EAAE,EAAE;IACH,MAAM,YAAY,GAAG;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,4GAA4G,CAC7G;KACJ,CAAC;IACF,MAAM,KAAK,GAAG,CAAC;SACZ,kBAAkB,CAAC,MAAM,EAAE;QAC1B,CAAC,CAAC,MAAM,CAAC;YACP,GAAG,YAAY;YACf,GAAG,yBAAyB,CAAC;gBAC3B,aAAa,EAAE,GAAG,CAAC,cAAc;gBACjC,IAAI,EAAE,GAAG,CAAC,IAAI;aACf,CAAC;YACF,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;SAC5B,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACP,GAAG,YAAY;YACf,GAAG,2BAA2B,CAAC,GAAG,CAAC;YACnC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;SAC9B,CAAC;KACH,CAAC;SACD,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAErE,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK;SACpB;QACD,WAAW,EACT,+EAA+E;YAC/E,mEAAmE;QACrE,KAAK;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,gBAAgB;QACtB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { PublicIdSchema } from "../ids.js";
|
|
3
|
+
export declare const makeFindTriggersContract: <EnvironmentId extends PublicIdSchema, FlowId extends PublicIdSchema, TriggerId extends PublicIdSchema, WorkspaceId extends PublicIdSchema>(ids: {
|
|
4
|
+
environment: EnvironmentId;
|
|
5
|
+
flow: FlowId;
|
|
6
|
+
trigger: TriggerId;
|
|
7
|
+
workspace: WorkspaceId;
|
|
8
|
+
}) => {
|
|
9
|
+
readonly annotations: {
|
|
10
|
+
readonly destructiveHint: false;
|
|
11
|
+
readonly openWorldHint: false;
|
|
12
|
+
readonly readOnlyHint: true;
|
|
13
|
+
};
|
|
14
|
+
readonly description: "List the team's triggers, newest first.";
|
|
15
|
+
readonly input: z.ZodObject<{
|
|
16
|
+
isPaused: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
+
workspaceId: z.ZodOptional<WorkspaceId>;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
readonly kind: "read";
|
|
20
|
+
readonly name: "trigger.find";
|
|
21
|
+
readonly output: z.ZodObject<{
|
|
22
|
+
triggers: z.ZodArray<z.ZodObject<{
|
|
23
|
+
configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
24
|
+
kind: z.ZodLiteral<"schedule">;
|
|
25
|
+
action: z.ZodObject<{
|
|
26
|
+
flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
|
|
27
|
+
instructions: z.ZodOptional<z.ZodString>;
|
|
28
|
+
investigateFailures: z.ZodOptional<z.ZodBoolean>;
|
|
29
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
30
|
+
createSuite: "createSuite";
|
|
31
|
+
generativeSuite: "generativeSuite";
|
|
32
|
+
}>>;
|
|
33
|
+
tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
cadence: z.ZodEnum<{
|
|
36
|
+
hourly: "hourly";
|
|
37
|
+
daily: "daily";
|
|
38
|
+
}>;
|
|
39
|
+
environmentId: EnvironmentId;
|
|
40
|
+
minuteOfHour: z.ZodOptional<z.ZodNumber>;
|
|
41
|
+
timeOfDay: z.ZodOptional<z.ZodString>;
|
|
42
|
+
timezoneId: z.ZodOptional<z.ZodString>;
|
|
43
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
44
|
+
kind: z.ZodLiteral<"deployment">;
|
|
45
|
+
action: z.ZodObject<{
|
|
46
|
+
flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
|
|
47
|
+
instructions: z.ZodOptional<z.ZodString>;
|
|
48
|
+
investigateFailures: z.ZodOptional<z.ZodBoolean>;
|
|
49
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
50
|
+
createSuite: "createSuite";
|
|
51
|
+
generativeSuite: "generativeSuite";
|
|
52
|
+
}>>;
|
|
53
|
+
tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
54
|
+
}, z.core.$strip>;
|
|
55
|
+
branchPattern: z.ZodOptional<z.ZodString>;
|
|
56
|
+
deployTargetPattern: z.ZodOptional<z.ZodString>;
|
|
57
|
+
environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
|
|
58
|
+
environmentPattern: z.ZodOptional<z.ZodString>;
|
|
59
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
60
|
+
actionCount: z.ZodNumber;
|
|
61
|
+
kind: z.ZodLiteral<"advanced">;
|
|
62
|
+
whenCount: z.ZodNumber;
|
|
63
|
+
}, z.core.$strip>], "kind">;
|
|
64
|
+
createdAt: z.ZodISODateTime;
|
|
65
|
+
id: TriggerId;
|
|
66
|
+
isPaused: z.ZodBoolean;
|
|
67
|
+
name: z.ZodString;
|
|
68
|
+
nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
|
|
69
|
+
pausedAt: z.ZodOptional<z.ZodISODateTime>;
|
|
70
|
+
updatedAt: z.ZodISODateTime;
|
|
71
|
+
url: z.ZodURL;
|
|
72
|
+
}, z.core.$strip>>;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=find.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/v1/trigger/find.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAIhD,eAAO,MAAM,wBAAwB,GACnC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,SAAS,SAAS,cAAc,EAChC,WAAW,SAAS,cAAc,EAClC,KAAK;IACL,WAAW,EAAE,aAAa,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,WAAW,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCA,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { makeTriggerResourceSchema } from "./resource.js";
|
|
3
|
+
export const makeFindTriggersContract = (ids) => {
|
|
4
|
+
const input = z.object({
|
|
5
|
+
isPaused: z
|
|
6
|
+
.boolean()
|
|
7
|
+
.optional()
|
|
8
|
+
.describe("Only list paused, or only unpaused, triggers. Omit for both."),
|
|
9
|
+
workspaceId: ids.workspace
|
|
10
|
+
.optional()
|
|
11
|
+
.describe("The workspace to list triggers from. Required when authenticating with an organization or user API key."),
|
|
12
|
+
});
|
|
13
|
+
const output = z.object({
|
|
14
|
+
// Every trigger the caller can see, with no page. A team holds few
|
|
15
|
+
// triggers, so a page would never fill. Adding one later must keep the
|
|
16
|
+
// limit opt in: a defaulted limit would silently truncate this response
|
|
17
|
+
// for callers written against it.
|
|
18
|
+
triggers: z
|
|
19
|
+
.array(makeTriggerResourceSchema(ids))
|
|
20
|
+
.describe("The team's triggers, newest first."),
|
|
21
|
+
});
|
|
22
|
+
return {
|
|
23
|
+
annotations: {
|
|
24
|
+
destructiveHint: false,
|
|
25
|
+
openWorldHint: false,
|
|
26
|
+
readOnlyHint: true,
|
|
27
|
+
},
|
|
28
|
+
description: "List the team's triggers, newest first.",
|
|
29
|
+
input,
|
|
30
|
+
kind: "read",
|
|
31
|
+
name: "trigger.find",
|
|
32
|
+
output,
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=find.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/v1/trigger/find.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAKtC,GAKD,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,QAAQ,EAAE,CAAC;aACR,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,8DAA8D,CAAC;QAC3E,WAAW,EAAE,GAAG,CAAC,SAAS;aACvB,QAAQ,EAAE;aACV,QAAQ,CACP,yGAAyG,CAC1G;KACJ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,mEAAmE;QACnE,uEAAuE;QACvE,wEAAwE;QACxE,kCAAkC;QAClC,QAAQ,EAAE,CAAC;aACR,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;aACrC,QAAQ,CAAC,oCAAoC,CAAC;KAClD,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE;YACX,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,IAAI;SACnB;QACD,WAAW,EAAE,yCAAyC;QACtD,KAAK;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,cAAc;QACpB,MAAM;KAMP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { PublicIdSchema } from "../ids.js";
|
|
3
|
+
export declare const makeGetTriggerContract: <EnvironmentId extends PublicIdSchema, FlowId extends PublicIdSchema, TriggerId extends PublicIdSchema>(ids: {
|
|
4
|
+
environment: EnvironmentId;
|
|
5
|
+
flow: FlowId;
|
|
6
|
+
trigger: TriggerId;
|
|
7
|
+
}) => {
|
|
8
|
+
readonly annotations: {
|
|
9
|
+
readonly destructiveHint: false;
|
|
10
|
+
readonly openWorldHint: false;
|
|
11
|
+
readonly readOnlyHint: true;
|
|
12
|
+
};
|
|
13
|
+
readonly description: "Get one trigger by id.";
|
|
14
|
+
readonly input: z.ZodObject<{
|
|
15
|
+
triggerId: TriggerId;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
readonly kind: "read";
|
|
18
|
+
readonly name: "trigger.get";
|
|
19
|
+
readonly output: z.ZodObject<{
|
|
20
|
+
trigger: z.ZodObject<{
|
|
21
|
+
configuration: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
22
|
+
kind: z.ZodLiteral<"schedule">;
|
|
23
|
+
action: z.ZodObject<{
|
|
24
|
+
flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
|
|
25
|
+
instructions: z.ZodOptional<z.ZodString>;
|
|
26
|
+
investigateFailures: z.ZodOptional<z.ZodBoolean>;
|
|
27
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
28
|
+
createSuite: "createSuite";
|
|
29
|
+
generativeSuite: "generativeSuite";
|
|
30
|
+
}>>;
|
|
31
|
+
tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
cadence: z.ZodEnum<{
|
|
34
|
+
hourly: "hourly";
|
|
35
|
+
daily: "daily";
|
|
36
|
+
}>;
|
|
37
|
+
environmentId: EnvironmentId;
|
|
38
|
+
minuteOfHour: z.ZodOptional<z.ZodNumber>;
|
|
39
|
+
timeOfDay: z.ZodOptional<z.ZodString>;
|
|
40
|
+
timezoneId: z.ZodOptional<z.ZodString>;
|
|
41
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
42
|
+
kind: z.ZodLiteral<"deployment">;
|
|
43
|
+
action: z.ZodObject<{
|
|
44
|
+
flowIds: z.ZodDefault<z.ZodArray<FlowId>>;
|
|
45
|
+
instructions: z.ZodOptional<z.ZodString>;
|
|
46
|
+
investigateFailures: z.ZodOptional<z.ZodBoolean>;
|
|
47
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
48
|
+
createSuite: "createSuite";
|
|
49
|
+
generativeSuite: "generativeSuite";
|
|
50
|
+
}>>;
|
|
51
|
+
tagNames: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
52
|
+
}, z.core.$strip>;
|
|
53
|
+
branchPattern: z.ZodOptional<z.ZodString>;
|
|
54
|
+
deployTargetPattern: z.ZodOptional<z.ZodString>;
|
|
55
|
+
environmentIds: z.ZodDefault<z.ZodArray<EnvironmentId>>;
|
|
56
|
+
environmentPattern: z.ZodOptional<z.ZodString>;
|
|
57
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
58
|
+
actionCount: z.ZodNumber;
|
|
59
|
+
kind: z.ZodLiteral<"advanced">;
|
|
60
|
+
whenCount: z.ZodNumber;
|
|
61
|
+
}, z.core.$strip>], "kind">;
|
|
62
|
+
createdAt: z.ZodISODateTime;
|
|
63
|
+
id: TriggerId;
|
|
64
|
+
isPaused: z.ZodBoolean;
|
|
65
|
+
name: z.ZodString;
|
|
66
|
+
nextScheduledAt: z.ZodOptional<z.ZodISODateTime>;
|
|
67
|
+
pausedAt: z.ZodOptional<z.ZodISODateTime>;
|
|
68
|
+
updatedAt: z.ZodISODateTime;
|
|
69
|
+
url: z.ZodURL;
|
|
70
|
+
}, z.core.$strip>;
|
|
71
|
+
}, z.core.$strip>;
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=get.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/v1/trigger/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAIhD,eAAO,MAAM,sBAAsB,GACjC,aAAa,SAAS,cAAc,EACpC,MAAM,SAAS,cAAc,EAC7B,SAAS,SAAS,cAAc,EAChC,KAAK;IACL,WAAW,EAAE,aAAa,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,CAAC;CACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBA,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { makeTriggerResourceSchema } from "./resource.js";
|
|
3
|
+
export const makeGetTriggerContract = (ids) => {
|
|
4
|
+
const input = z.object({ triggerId: ids.trigger });
|
|
5
|
+
const output = z.object({ trigger: makeTriggerResourceSchema(ids) });
|
|
6
|
+
return {
|
|
7
|
+
annotations: {
|
|
8
|
+
destructiveHint: false,
|
|
9
|
+
openWorldHint: false,
|
|
10
|
+
readOnlyHint: true,
|
|
11
|
+
},
|
|
12
|
+
description: "Get one trigger by id.",
|
|
13
|
+
input,
|
|
14
|
+
kind: "read",
|
|
15
|
+
name: "trigger.get",
|
|
16
|
+
output,
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=get.js.map
|