motia 0.5.11-beta.120-356715 → 0.5.11-beta.120-382150
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 +34 -23
- package/dist/cjs/cli.js +59 -11
- package/dist/cjs/cloud/endpoints.d.ts +2 -0
- package/dist/cjs/cloud/endpoints.js +107 -0
- package/dist/cjs/cloud/new-deployment/listeners/streaming-deployment-listener.d.ts +45 -0
- package/dist/cjs/cloud/new-deployment/listeners/streaming-deployment-listener.js +334 -0
- package/dist/cjs/cloud/new-deployment/streams/deployment-stream.d.ts +46 -0
- package/dist/cjs/cloud/new-deployment/streams/deployment-stream.js +111 -0
- package/dist/cjs/create/index.js +0 -1
- package/dist/cjs/create/templates/python/motia-workbench.json +1 -1
- package/dist/cjs/create/templates/typescript/motia-workbench.json +1 -1
- package/dist/cjs/cursor-rules/index.d.ts +8 -0
- package/dist/cjs/cursor-rules/index.js +240 -0
- package/dist/cjs/dev.js +2 -0
- package/dist/dot-files/AGENTS.md +397 -0
- package/dist/esm/cli.js +59 -11
- package/dist/esm/cloud/endpoints.d.ts +2 -0
- package/dist/esm/cloud/endpoints.js +103 -0
- package/dist/esm/cloud/new-deployment/listeners/streaming-deployment-listener.d.ts +45 -0
- package/dist/esm/cloud/new-deployment/listeners/streaming-deployment-listener.js +330 -0
- package/dist/esm/cloud/new-deployment/streams/deployment-stream.d.ts +46 -0
- package/dist/esm/cloud/new-deployment/streams/deployment-stream.js +106 -0
- package/dist/esm/create/index.js +0 -1
- package/dist/esm/create/templates/python/motia-workbench.json +1 -1
- package/dist/esm/create/templates/typescript/motia-workbench.json +1 -1
- package/dist/esm/cursor-rules/index.d.ts +8 -0
- package/dist/esm/cursor-rules/index.js +234 -0
- package/dist/esm/dev.js +2 -0
- package/dist/types/cloud/endpoints.d.ts +2 -0
- package/dist/types/cloud/new-deployment/listeners/streaming-deployment-listener.d.ts +45 -0
- package/dist/types/cloud/new-deployment/streams/deployment-stream.d.ts +46 -0
- package/dist/types/cursor-rules/index.d.ts +8 -0
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -98,24 +98,24 @@ Backend teams juggle **fragmented runtimes** across APIs, background queues, and
|
|
|
98
98
|
|
|
99
99
|
Motia unifies your entire backend into a **unified state**. APIs, background jobs, and AI agents become interconnected Steps with shared state and integrated observability.
|
|
100
100
|
|
|
101
|
-
| **Before**
|
|
102
|
-
|
|
103
|
-
| Multiple deployment targets | **Single unified deployment**
|
|
104
|
-
| Fragmented observability
|
|
105
|
-
| Language dependent
|
|
106
|
-
| Context-switching overhead
|
|
107
|
-
| Complex error handling
|
|
101
|
+
| **Before** | **After (Motia)** |
|
|
102
|
+
| --------------------------- | --------------------------------------- |
|
|
103
|
+
| Multiple deployment targets | **Single unified deployment** |
|
|
104
|
+
| Fragmented observability | **End-to-end tracing** |
|
|
105
|
+
| Language dependent | **JavaScript, TypeScript, Python, etc** |
|
|
106
|
+
| Context-switching overhead | **Single intuitive model** |
|
|
107
|
+
| Complex error handling | **Automatic retries & fault tolerance** |
|
|
108
108
|
|
|
109
109
|
---
|
|
110
110
|
|
|
111
111
|
## 🔧 Supported Step Types
|
|
112
112
|
|
|
113
|
-
| Type
|
|
114
|
-
|
|
115
|
-
| **`api`**
|
|
116
|
-
| **`event`** | Emitted Topics
|
|
117
|
-
| **`cron`**
|
|
118
|
-
| **`noop`**
|
|
113
|
+
| Type | Trigger | Use Case |
|
|
114
|
+
| ----------- | --------------------- | ------------------------------------- |
|
|
115
|
+
| **`api`** | HTTP Request | Expose REST endpoints |
|
|
116
|
+
| **`event`** | Emitted Topics | React to internal or external events |
|
|
117
|
+
| **`cron`** | Scheduled Time (cron) | Automate recurring jobs |
|
|
118
|
+
| **`noop`** | None | Placeholder for manual/external tasks |
|
|
119
119
|
|
|
120
120
|
---
|
|
121
121
|
|
|
@@ -123,9 +123,9 @@ Motia unifies your entire backend into a **unified state**. APIs, background job
|
|
|
123
123
|
|
|
124
124
|
Motia's architecture is built around a single, powerful primitive: the **Step**. A Step is not just a trigger; it's a powerful container for your business logic. You can write anything from a simple database query to a complex AI agent interaction inside a single step. Instead of managing separate services for APIs, background workers, and scheduled tasks, you simply define how your steps are triggered.
|
|
125
125
|
|
|
126
|
-
-
|
|
127
|
-
-
|
|
128
|
-
-
|
|
126
|
+
- **Need a public API?** Create an `api` step. This defines a route and handler for HTTP requests. You can build a complete REST or GraphQL API just with these steps.
|
|
127
|
+
- **Need a background job or queue?** Have your `api` step `emit` an event. An `event` step subscribed to that event's topic will pick up the job and process it asynchronously. This is how you handle anything that shouldn't block the main request thread, from sending emails to complex data processing.
|
|
128
|
+
- **Need to run a task on a schedule?** Use a `cron` step. It will trigger automatically based on the schedule you define.
|
|
129
129
|
|
|
130
130
|
This model means you no longer need to glue together separate frameworks and tools. A single Motia application can replace a stack that might otherwise include **Nest.js** (for APIs), **Temporal** (for workflows), and **Celery/BullMQ** (for background jobs). It's all just steps and events.
|
|
131
131
|
|
|
@@ -173,9 +173,9 @@ Motia unifies your entire backend into a **unified state**. APIs, background job
|
|
|
173
173
|
|
|
174
174
|
Motia's architecture is built around a single, powerful primitive: the **Step**. A Step is not just a trigger; it's a powerful container for your business logic. You can write anything from a simple database query to a complex AI agent interaction inside a single step. Instead of managing separate services for APIs, background workers, and scheduled tasks, you simply define how your steps are triggered.
|
|
175
175
|
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
176
|
+
- **Need a public API?** Create an `api` step. This defines a route and handler for HTTP requests. You can build a complete REST or GraphQL API just with these steps.
|
|
177
|
+
- **Need a background job or queue?** Have your `api` step `emit` an event. An `event` step subscribed to that event's topic will pick up the job and process it asynchronously. This is how you handle anything that shouldn't block the main request thread, from sending emails to complex data processing.
|
|
178
|
+
- **Need to run a task on a schedule?** Use a `cron` step. It will trigger automatically based on the schedule you define.
|
|
179
179
|
|
|
180
180
|
This model means you no longer need to glue together separate frameworks and tools. A single Motia application can replace a stack that might otherwise include **Nest.js** (for APIs), **Temporal** (for workflows), and **Celery/BullMQ** (for background jobs). It's all just steps and events.
|
|
181
181
|
|
|
@@ -184,24 +184,31 @@ This model means you no longer need to glue together separate frameworks and too
|
|
|
184
184
|
The **Step** is Motia's core primitive. The following concepts are deeply integrated with Steps to help you build powerful, complex, and scalable backends:
|
|
185
185
|
|
|
186
186
|
### 🔑 Steps & Step Types
|
|
187
|
+
|
|
187
188
|
Understand the three ways Steps are triggered:
|
|
189
|
+
|
|
188
190
|
- **HTTP (`api`)** – Build REST/GraphQL endpoints with zero boilerplate.
|
|
189
191
|
- **Events (`event`)** – React to internal or external events emitted by other steps.
|
|
190
192
|
- **Cron (`cron`)** – Schedule recurring jobs with a familiar cron syntax.
|
|
191
193
|
|
|
192
194
|
### 📣 Emit & Subscribe (Event-Driven Workflows)
|
|
195
|
+
|
|
193
196
|
Steps talk to each other by **emitting** and **subscribing** to topics. This decouples producers from consumers and lets you compose complex workflows with simple, declarative code.
|
|
194
197
|
|
|
195
198
|
### 🏪 State Management
|
|
199
|
+
|
|
196
200
|
All steps share a unified key-value state store. Every `get`, `set`, and `delete` is automatically traced so you always know when and where your data changed.
|
|
197
201
|
|
|
198
202
|
### 📊 Structured Logging
|
|
203
|
+
|
|
199
204
|
Motia provides structured, JSON logs correlated with trace IDs and step names. Search and filter your logs without regex gymnastics.
|
|
200
205
|
|
|
201
206
|
### 📡 Streams: Real-time Messaging
|
|
207
|
+
|
|
202
208
|
Push live updates from long-running or asynchronous workflows to clients without polling. Perfect for dashboards, progress indicators, and interactive AI agents.
|
|
203
209
|
|
|
204
210
|
### 👁️ End-to-End Observability with Traces
|
|
211
|
+
|
|
205
212
|
Every execution generates a full trace, capturing step timelines, state operations, emits, stream calls, and logs. Visualise everything in the Workbench's Traces UI and debug faster.
|
|
206
213
|
|
|
207
214
|
---
|
|
@@ -211,7 +218,9 @@ Every execution generates a full trace, capturing step timelines, state operatio
|
|
|
211
218
|
Motia comes with a range of [powerful CLI commands](https://www.motia.dev/docs/concepts/cli) to help you manage your projects:
|
|
212
219
|
|
|
213
220
|
### `npx motia create [options]`
|
|
221
|
+
|
|
214
222
|
Create a new Motia project in a fresh directory or the current one.
|
|
223
|
+
|
|
215
224
|
```sh
|
|
216
225
|
npx motia create [options]
|
|
217
226
|
|
|
@@ -238,12 +247,12 @@ bun run dev [options]
|
|
|
238
247
|
# options:
|
|
239
248
|
# -p, --port <port> The port to run the server on (default: 3000)
|
|
240
249
|
# -H, --host [host] The host address for the server (default: localhost)
|
|
241
|
-
# -v, --verbose Enable verbose logging
|
|
242
250
|
# -d, --debug Enable debug logging
|
|
243
251
|
# -m, --mermaid Enable mermaid diagram generation
|
|
244
252
|
```
|
|
245
253
|
|
|
246
254
|
### `npx motia build`
|
|
255
|
+
|
|
247
256
|
Compiles all your steps (Node.js, Python and more) and builds a lock file based on your current project setup, which is then used by the Motia ecosystem.
|
|
248
257
|
|
|
249
258
|
```bash
|
|
@@ -256,12 +265,12 @@ motia build
|
|
|
256
265
|
|
|
257
266
|
Write steps in your preferred language:
|
|
258
267
|
|
|
259
|
-
| Language | Status
|
|
260
|
-
| -------------- |
|
|
268
|
+
| Language | Status | Example |
|
|
269
|
+
| -------------- | -------------- | ----------------- |
|
|
261
270
|
| **JavaScript** | ✅ Stable | `handler.step.js` |
|
|
262
271
|
| **TypeScript** | ✅ Stable | `handler.step.ts` |
|
|
263
272
|
| **Python** | ✅ Stable | `handler.step.py` |
|
|
264
|
-
| **Ruby** | 🚧 Beta
|
|
273
|
+
| **Ruby** | 🚧 Beta | `handler.step.rb` |
|
|
265
274
|
| **Go** | 🔄 Coming Soon | `handler.step.go` |
|
|
266
275
|
| **Rust** | 🔄 Coming Soon | `handler.step.rs` |
|
|
267
276
|
|
|
@@ -276,6 +285,7 @@ motia <command> --help
|
|
|
276
285
|
```
|
|
277
286
|
|
|
278
287
|
### 💬 **Get Help**
|
|
288
|
+
|
|
279
289
|
- **📋 Questions**: Use our [Discord community](https://discord.gg/motia)
|
|
280
290
|
- **🐛 Bug Reports**: [GitHub Issues](https://github.com/MotiaDev/motia/issues)
|
|
281
291
|
- **📖 Documentation**: [Official Docs](https://motia.dev/docs)
|
|
@@ -284,6 +294,7 @@ motia <command> --help
|
|
|
284
294
|
### 🤝 **Contributing**
|
|
285
295
|
|
|
286
296
|
We welcome contributions! Whether it's:
|
|
297
|
+
|
|
287
298
|
- 🐛 Bug fixes and improvements
|
|
288
299
|
- ✨ New features and step types
|
|
289
300
|
- 📚 Documentation and examples
|
package/dist/cjs/cli.js
CHANGED
|
@@ -28,27 +28,36 @@ commander_1.program
|
|
|
28
28
|
.command('create')
|
|
29
29
|
.description('Create a new motia project')
|
|
30
30
|
.option('-n, --name <project name>', 'The name for your project, used to create a directory, use ./ or . to create it under the existing directory')
|
|
31
|
-
.option('-t, --template <template name>', 'The motia template name to use for your project')
|
|
31
|
+
.option('-t, --template <template name>', 'The motia template name to use for your project', 'typescript')
|
|
32
32
|
.option('-c, --cursor', 'Copy .cursor folder from template')
|
|
33
33
|
.option('-i, --interactive', 'Use interactive prompts to create project')
|
|
34
34
|
.option('-y, --skip-confirmation', 'Skip confirmation prompt')
|
|
35
|
-
.option('-d, --skip-tutorial', 'Skip the motia tutorial
|
|
35
|
+
.option('-d, --skip-tutorial [value]', 'Skip the motia tutorial (true/false)')
|
|
36
36
|
.action((0, config_utils_1.handler)(async (arg, context) => {
|
|
37
37
|
if (arg.name || arg.template || arg.cursor) {
|
|
38
38
|
const { create } = require('./create');
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
// Handle skip-tutorial option: 'true', 'false', or prompt user
|
|
40
|
+
const skipTutorialValue = await (async () => {
|
|
41
|
+
const skipValue = String(arg.skipTutorial).toLowerCase();
|
|
42
|
+
if (skipValue === 'true')
|
|
43
|
+
return true;
|
|
44
|
+
if (skipValue === 'false')
|
|
45
|
+
return false;
|
|
46
|
+
// Prompt user when not explicitly set
|
|
47
|
+
const { disableTutorial } = await inquirer_1.default.prompt({
|
|
48
|
+
type: 'confirm',
|
|
49
|
+
name: 'disableTutorial',
|
|
50
|
+
message: 'Do you wish to disable the motia tutorial?',
|
|
51
|
+
default: false,
|
|
52
|
+
});
|
|
53
|
+
return disableTutorial;
|
|
54
|
+
})();
|
|
46
55
|
await create({
|
|
47
56
|
projectName: arg.name ?? '.',
|
|
48
|
-
template: arg.template
|
|
57
|
+
template: arg.template,
|
|
49
58
|
cursorEnabled: arg.cursor,
|
|
50
59
|
context,
|
|
51
|
-
skipTutorialTemplates:
|
|
60
|
+
skipTutorialTemplates: skipTutorialValue,
|
|
52
61
|
});
|
|
53
62
|
}
|
|
54
63
|
else {
|
|
@@ -185,5 +194,44 @@ docker
|
|
|
185
194
|
await build(arg.projectName);
|
|
186
195
|
process.exit(0);
|
|
187
196
|
});
|
|
197
|
+
const rules = commander_1.program
|
|
198
|
+
.command('rules')
|
|
199
|
+
.description('Manage Motia AI development guides (AGENTS.md, CLAUDE.md) and IDE-specific rules');
|
|
200
|
+
rules
|
|
201
|
+
.command('pull')
|
|
202
|
+
.description('Install essential AI development guides (AGENTS.md, CLAUDE.md) and optional Cursor IDE rules')
|
|
203
|
+
.option('-f, --force', 'Overwrite existing files')
|
|
204
|
+
.action(async (options) => {
|
|
205
|
+
const { handleAIGuides } = require('./cursor-rules');
|
|
206
|
+
await handleAIGuides({ force: options.force });
|
|
207
|
+
});
|
|
208
|
+
rules
|
|
209
|
+
.command('list')
|
|
210
|
+
.description('List available AI development guides and IDE rules')
|
|
211
|
+
.action(async () => {
|
|
212
|
+
const { handleAIGuides } = require('./cursor-rules');
|
|
213
|
+
await handleAIGuides({ list: true });
|
|
214
|
+
});
|
|
215
|
+
rules
|
|
216
|
+
.command('show <rule-name>')
|
|
217
|
+
.description('Show content of a specific AI guide or IDE rule')
|
|
218
|
+
.action(async (ruleName) => {
|
|
219
|
+
const { handleAIGuides } = require('./cursor-rules');
|
|
220
|
+
await handleAIGuides({ show: ruleName });
|
|
221
|
+
});
|
|
222
|
+
rules
|
|
223
|
+
.command('remove')
|
|
224
|
+
.description('Remove AI development guides and IDE rules from your project')
|
|
225
|
+
.action(async () => {
|
|
226
|
+
const { handleAIGuides } = require('./cursor-rules');
|
|
227
|
+
await handleAIGuides({ remove: true });
|
|
228
|
+
});
|
|
229
|
+
rules
|
|
230
|
+
.command('version')
|
|
231
|
+
.description('Show AI development guides version')
|
|
232
|
+
.action(async () => {
|
|
233
|
+
const { handleAIGuides } = require('./cursor-rules');
|
|
234
|
+
await handleAIGuides({ version: true });
|
|
235
|
+
});
|
|
188
236
|
commander_1.program.version(version_1.version, '-V, --version', 'Output the current version');
|
|
189
237
|
commander_1.program.parse(process.argv);
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deployEndpoints = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const build_validation_1 = require("./build/build-validation");
|
|
6
|
+
const streaming_deployment_listener_1 = require("./new-deployment/listeners/streaming-deployment-listener");
|
|
7
|
+
const build_1 = require("./new-deployment/build");
|
|
8
|
+
const upload_artifacts_1 = require("./new-deployment/upload-artifacts");
|
|
9
|
+
const deployment_stream_1 = require("./new-deployment/streams/deployment-stream");
|
|
10
|
+
const cloud_api_1 = require("./new-deployment/cloud-api");
|
|
11
|
+
const deployEndpoints = (server, lockedData) => {
|
|
12
|
+
const { app } = server;
|
|
13
|
+
// Criar stream de deployment se não existir
|
|
14
|
+
const deploymentStream = lockedData.createStream({
|
|
15
|
+
filePath: '__motia.deployment',
|
|
16
|
+
hidden: true,
|
|
17
|
+
config: {
|
|
18
|
+
name: '__motia.deployment',
|
|
19
|
+
baseConfig: { storageType: 'default' },
|
|
20
|
+
schema: null,
|
|
21
|
+
},
|
|
22
|
+
})();
|
|
23
|
+
const deploymentManager = new deployment_stream_1.DeploymentStreamManager(deploymentStream);
|
|
24
|
+
app.post('/cloud/deploy/start', async (req, res) => {
|
|
25
|
+
try {
|
|
26
|
+
const { deploymentToken, deploymentId, envs } = req.body;
|
|
27
|
+
if (!deploymentToken || !deploymentId) {
|
|
28
|
+
return res.status(400).json({
|
|
29
|
+
success: false,
|
|
30
|
+
error: 'deploymentToken and deploymentId are required',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const sessionId = deploymentId || (0, crypto_1.randomUUID)();
|
|
34
|
+
await deploymentManager.startDeployment(sessionId);
|
|
35
|
+
const listener = new streaming_deployment_listener_1.StreamingDeploymentListener(sessionId, deploymentStream);
|
|
36
|
+
res.json({
|
|
37
|
+
success: true,
|
|
38
|
+
message: 'Deployment started',
|
|
39
|
+
deploymentId: sessionId,
|
|
40
|
+
streamName: 'deployment-status',
|
|
41
|
+
groupId: 'deployments',
|
|
42
|
+
itemId: sessionId,
|
|
43
|
+
});
|
|
44
|
+
setImmediate(async () => {
|
|
45
|
+
try {
|
|
46
|
+
await listener.startBuildPhase();
|
|
47
|
+
const builder = await (0, build_1.build)(listener);
|
|
48
|
+
const isValid = (0, build_validation_1.buildValidation)(builder, listener);
|
|
49
|
+
if (!isValid) {
|
|
50
|
+
await listener.onBuildErrors(listener.getErrors());
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
await listener.completeBuildPhase();
|
|
54
|
+
await listener.startUploadPhase();
|
|
55
|
+
await (0, upload_artifacts_1.uploadArtifacts)(builder, deploymentToken, listener);
|
|
56
|
+
await listener.completeUploadPhase();
|
|
57
|
+
await listener.startDeployPhase();
|
|
58
|
+
await cloud_api_1.cloudApi.startDeployment({
|
|
59
|
+
deploymentToken,
|
|
60
|
+
envVars: envs,
|
|
61
|
+
steps: builder.stepsConfig,
|
|
62
|
+
streams: builder.streamsConfig,
|
|
63
|
+
routers: builder.routersConfig,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error('Deployment failed:', error);
|
|
68
|
+
// Update stream with error
|
|
69
|
+
if (listener) {
|
|
70
|
+
await listener.onDeployError(error.message);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
console.error('Failed to start deployment:', error);
|
|
77
|
+
res.status(500).json({
|
|
78
|
+
success: false,
|
|
79
|
+
error: error.message,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
// Get deployment status by ID
|
|
84
|
+
app.get('/cloud/deploy/status/:deploymentId', async (req, res) => {
|
|
85
|
+
try {
|
|
86
|
+
const { deploymentId } = req.params;
|
|
87
|
+
const deployment = await deploymentManager.getDeployment(deploymentId);
|
|
88
|
+
if (!deployment) {
|
|
89
|
+
return res.status(404).json({
|
|
90
|
+
success: false,
|
|
91
|
+
error: 'Deployment not found',
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
res.json({
|
|
95
|
+
success: true,
|
|
96
|
+
deployment,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
res.status(500).json({
|
|
101
|
+
success: false,
|
|
102
|
+
error: error.message,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
exports.deployEndpoints = deployEndpoints;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Step, MotiaStream } from '@motiadev/core';
|
|
2
|
+
import { Stream } from '@motiadev/core/dist/src/types-stream';
|
|
3
|
+
import { BuildStepConfig } from '../../build/builder';
|
|
4
|
+
import { ValidationError } from '../../build/build-validation';
|
|
5
|
+
import { DeploymentListener, DeployData } from './listener.types';
|
|
6
|
+
import { DeploymentData } from '../streams/deployment-stream';
|
|
7
|
+
export declare class StreamingDeploymentListener implements DeploymentListener {
|
|
8
|
+
private deploymentId;
|
|
9
|
+
private errors;
|
|
10
|
+
private warnings;
|
|
11
|
+
private streamManager;
|
|
12
|
+
constructor(deploymentId: string, deploymentStream: MotiaStream<DeploymentData>);
|
|
13
|
+
private getStepType;
|
|
14
|
+
private getLanguage;
|
|
15
|
+
private updateStream;
|
|
16
|
+
getErrors(): ValidationError[];
|
|
17
|
+
onBuildStart(step: Step): void;
|
|
18
|
+
onBuildProgress(step: Step, message: string): void;
|
|
19
|
+
onBuildEnd(step: Step, size: number): void;
|
|
20
|
+
onBuildError(step: Step, error: Error): void;
|
|
21
|
+
onBuildSkip(step: Step, reason: string): void;
|
|
22
|
+
onStreamCreated(stream: Stream): void;
|
|
23
|
+
onApiRouterBuilding(language: string): void;
|
|
24
|
+
onApiRouterBuilt(language: string, size: number): void;
|
|
25
|
+
onWarning(id: string, warning: string): void;
|
|
26
|
+
onBuildWarning(warning: ValidationError): Promise<void>;
|
|
27
|
+
onBuildErrors(errors: ValidationError[]): Promise<void>;
|
|
28
|
+
stepUploadStart(stepPath: string, step: BuildStepConfig): void;
|
|
29
|
+
stepUploadProgress(stepPath: string, step: BuildStepConfig, progress: number): void;
|
|
30
|
+
stepUploadEnd(stepPath: string, step: BuildStepConfig): void;
|
|
31
|
+
stepUploadError(stepPath: string, step: BuildStepConfig): void;
|
|
32
|
+
routeUploadStart(path: string, language: string): void;
|
|
33
|
+
routeUploadProgress(path: string, language: string, progress: number): void;
|
|
34
|
+
routeUploadEnd(path: string, language: string): void;
|
|
35
|
+
routeUploadError(path: string, language: string): void;
|
|
36
|
+
onDeployStart(): void;
|
|
37
|
+
onDeployProgress(data: DeployData): void;
|
|
38
|
+
onDeployEnd(): Promise<void>;
|
|
39
|
+
onDeployError(errorMessage: string): Promise<void>;
|
|
40
|
+
startBuildPhase(): Promise<void>;
|
|
41
|
+
completeBuildPhase(): Promise<void>;
|
|
42
|
+
startUploadPhase(): Promise<void>;
|
|
43
|
+
completeUploadPhase(): Promise<void>;
|
|
44
|
+
startDeployPhase(): Promise<void>;
|
|
45
|
+
}
|