@trigora/sdk 0.6.0 → 0.8.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 CHANGED
@@ -119,6 +119,28 @@ export default defineFlow({
119
119
  });
120
120
  ```
121
121
 
122
+ ### Queue
123
+
124
+ Use queue triggers to consume workspace-scoped queue messages. Deploy auto-provisions and binds the named queue to the flow.
125
+
126
+ ```ts
127
+ import { defineFlow } from '@trigora/sdk';
128
+
129
+ export default defineFlow({
130
+ id: 'process-image',
131
+ trigger: { type: 'queue', queue: 'image-processing' },
132
+ async run(event, ctx) {
133
+ await ctx.log.info('Processing message', {
134
+ queue: event.queue,
135
+ messageId: event.messageId,
136
+ payload: event.payload,
137
+ });
138
+ },
139
+ });
140
+ ```
141
+
142
+ Locally, `trigora trigger` and `trigora dev` invoke queue flows with a synthetic `QueueFlowEvent` (`messageId` starts with `local_`). Hosted runs use the real message id.
143
+
122
144
  ## Return Types
123
145
 
124
146
  Return values are trigger-aware.
@@ -152,14 +174,15 @@ export default defineFlow({
152
174
  });
153
175
  ```
154
176
 
155
- ### Manual and cron flows
177
+ ### Manual, cron, and queue flows
156
178
 
157
- Manual and cron flows do not use return values. Their `run` functions are typed as `void`.
179
+ Manual, cron, and queue flows do not use return values. Their `run` functions are typed as `void`.
158
180
 
159
181
  This matches how Trigora uses them:
160
182
 
161
183
  - manual flows are invoked locally for testing and development
162
184
  - cron flows are background-style scheduled jobs
185
+ - queue flows consume workspace queue messages
163
186
  - webhook flows are request-response flows
164
187
 
165
188
  ## Event Shape
@@ -1,10 +1,10 @@
1
- import type { CronEventPayload, CronFlowDefinition, FlowDefinition, FlowRunFn, JsonValue, ManualFlowDefinition, ManualTrigger, Trigger, WebhookTrigger, WebhookFlowDefinition, CronTrigger } from '@trigora/contracts';
1
+ import type { CronEventPayload, CronFlowDefinition, FlowDefinition, FlowRunFn, JsonValue, ManualFlowDefinition, ManualTrigger, QueueFlowDefinition, QueueTrigger, Trigger, WebhookTrigger, WebhookFlowDefinition, CronTrigger } from '@trigora/contracts';
2
2
  type DefineFlowInput<TPayload, TEnv extends Record<string, string>, TTrigger extends Trigger> = {
3
3
  id: string;
4
4
  trigger: TTrigger;
5
- run: TTrigger extends ManualTrigger ? FlowRunFn<TPayload, TEnv, ManualTrigger> : TTrigger extends WebhookTrigger ? FlowRunFn<TPayload, TEnv, WebhookTrigger> : TTrigger extends CronTrigger ? FlowRunFn<CronEventPayload, TEnv, CronTrigger> : never;
5
+ run: TTrigger extends ManualTrigger ? FlowRunFn<TPayload, TEnv, ManualTrigger> : TTrigger extends WebhookTrigger ? FlowRunFn<TPayload, TEnv, WebhookTrigger> : TTrigger extends CronTrigger ? FlowRunFn<CronEventPayload, TEnv, CronTrigger> : TTrigger extends QueueTrigger ? FlowRunFn<TPayload, TEnv, QueueTrigger> : never;
6
6
  };
7
- type DefineFlowOutput<TPayload, TEnv extends Record<string, string>, TTrigger extends Trigger> = TTrigger extends ManualTrigger ? ManualFlowDefinition<TPayload, TEnv> : TTrigger extends WebhookTrigger ? WebhookFlowDefinition<TPayload, TEnv> : TTrigger extends CronTrigger ? CronFlowDefinition<TEnv> : FlowDefinition<TPayload, TEnv, TTrigger>;
7
+ type DefineFlowOutput<TPayload, TEnv extends Record<string, string>, TTrigger extends Trigger> = TTrigger extends ManualTrigger ? ManualFlowDefinition<TPayload, TEnv> : TTrigger extends WebhookTrigger ? WebhookFlowDefinition<TPayload, TEnv> : TTrigger extends CronTrigger ? CronFlowDefinition<TEnv> : TTrigger extends QueueTrigger ? QueueFlowDefinition<TPayload, TEnv> : FlowDefinition<TPayload, TEnv, TTrigger>;
8
8
  /**
9
9
  * Define a Trigora flow.
10
10
  *
@@ -43,4 +43,5 @@ export declare function defineFlow<TTrigger extends Trigger, TPayload = JsonValu
43
43
  export declare function defineFlow<TPayload = JsonValue, TEnv extends Record<string, string> = Record<string, string>>(flow: ManualFlowDefinition<TPayload, TEnv>): ManualFlowDefinition<TPayload, TEnv>;
44
44
  export declare function defineFlow<TPayload = JsonValue, TEnv extends Record<string, string> = Record<string, string>>(flow: WebhookFlowDefinition<TPayload, TEnv>): WebhookFlowDefinition<TPayload, TEnv>;
45
45
  export declare function defineFlow<TEnv extends Record<string, string> = Record<string, string>>(flow: CronFlowDefinition<TEnv>): CronFlowDefinition<TEnv>;
46
+ export declare function defineFlow<TPayload = JsonValue, TEnv extends Record<string, string> = Record<string, string>>(flow: QueueFlowDefinition<TPayload, TEnv>): QueueFlowDefinition<TPayload, TEnv>;
46
47
  export {};
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export { defineFlow } from './defineFlow';
2
- export type { CronEventPayload, CronFlowEvent, FlowContext, FlowDefinition, FlowEvent, FlowRunFn, JsonValue, ManualFlowEvent, Trigger, WebhookFlowEvent, WebhookFlowResult, } from '@trigora/contracts';
2
+ export type { CronEventPayload, CronFlowEvent, FlowContext, FlowDefinition, FlowEvent, FlowRunFn, JsonValue, ManualFlowEvent, QueueFlowEvent, Trigger, WebhookFlowEvent, WebhookFlowResult, } from '@trigora/contracts';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trigora/sdk",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/trigora-dev/trigora"
@@ -18,6 +18,7 @@
18
18
  "cli",
19
19
  "triggers",
20
20
  "cron",
21
+ "queues",
21
22
  "webhooks"
22
23
  ],
23
24
  "license": "MIT",
@@ -45,7 +46,7 @@
45
46
  "access": "public"
46
47
  },
47
48
  "dependencies": {
48
- "@trigora/contracts": "0.6.5"
49
+ "@trigora/contracts": "0.8.1"
49
50
  },
50
51
  "devDependencies": {
51
52
  "tsup": "^8.5.1"