motia 0.17.8-beta.190 → 0.17.9-beta.191

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/dist/watcher.mjs CHANGED
@@ -34,7 +34,7 @@ var Watcher = class {
34
34
  console.warn(`No step create handler, step skipped`);
35
35
  return;
36
36
  }
37
- const config = await getStepConfig(path, this.dir).catch((err) => console.error(err));
37
+ const config = await getStepConfig(path, this.lockedData.baseDir).catch((err) => console.error(err));
38
38
  if (!config) return;
39
39
  const step = {
40
40
  filePath: path,
@@ -45,7 +45,7 @@ var Watcher = class {
45
45
  }
46
46
  async onStepFileChange(path) {
47
47
  if (path.endsWith(".ts")) invalidate(path);
48
- const config = await getStepConfig(path, this.dir).catch((err) => {
48
+ const config = await getStepConfig(path, this.lockedData.baseDir).catch((err) => {
49
49
  console.error(err);
50
50
  });
51
51
  const step = this.findStep(path);
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.mjs","names":["dir: string","lockedData: LockedData","step: Step","step","newStep: Step"],"sources":["../src/watcher.ts"],"sourcesContent":["import type { Stream } from '@motiadev/core'\nimport { getStepConfig, getStreamConfig, invalidate, type LockedData, type Step } from '@motiadev/core'\nimport chokidar, { type FSWatcher } from 'chokidar'\nimport { randomUUID } from 'crypto'\n\ntype StepChangeHandler = (oldStep: Step, newStep: Step) => void\ntype StepCreateHandler = (step: Step) => void\ntype StepDeleteHandler = (step: Step) => void\n\ntype StreamChangeHandler = (oldStream: Stream, newStream: Stream) => void\ntype StreamCreateHandler = (stream: Stream) => void\ntype StreamDeleteHandler = (stream: Stream) => void\n\nexport class Watcher {\n private watcher?: FSWatcher\n private stepChangeHandler?: StepChangeHandler\n private stepCreateHandler?: StepCreateHandler\n private stepDeleteHandler?: StepDeleteHandler\n private streamChangeHandler?: StreamChangeHandler\n private streamCreateHandler?: StreamCreateHandler\n private streamDeleteHandler?: StreamDeleteHandler\n\n constructor(\n private readonly dir: string,\n private lockedData: LockedData,\n ) {}\n\n onStepChange(handler: StepChangeHandler) {\n this.stepChangeHandler = handler\n }\n\n onStepCreate(handler: StepCreateHandler) {\n this.stepCreateHandler = handler\n }\n\n onStepDelete(handler: StepDeleteHandler) {\n this.stepDeleteHandler = handler\n }\n\n onStreamChange(handler: StreamChangeHandler) {\n this.streamChangeHandler = handler\n }\n\n onStreamCreate(handler: StreamCreateHandler) {\n this.streamCreateHandler = handler\n }\n\n onStreamDelete(handler: StreamDeleteHandler) {\n this.streamDeleteHandler = handler\n }\n\n private findStep(path: string): Step | undefined {\n return (\n this.lockedData.activeSteps.find((step) => step.filePath === path) ||\n this.lockedData.devSteps.find((step) => step.filePath === path)\n )\n }\n\n private async onStepFileAdd(path: string): Promise<void> {\n if (!this.stepCreateHandler) {\n console.warn(`No step create handler, step skipped`)\n return\n }\n\n const config = await getStepConfig(path, this.dir).catch((err) => console.error(err))\n\n if (!config) {\n return\n }\n\n const version = `${randomUUID()}:${Math.floor(Date.now() / 1000)}`\n const step: Step = { filePath: path, version, config }\n\n this.stepCreateHandler?.(step)\n }\n\n private async onStepFileChange(path: string): Promise<void> {\n if (path.endsWith('.ts')) {\n invalidate(path)\n }\n\n const config = await getStepConfig(path, this.dir).catch((err) => {\n console.error(err)\n })\n\n const step = this.findStep(path)\n\n if (!step && !config) {\n return\n }\n\n // didn't have a step, but now we have a config\n if (!step && config) {\n const version = `${randomUUID()}:${Math.floor(Date.now() / 1000)}`\n const step: Step = { filePath: path, version, config }\n\n this.stepCreateHandler?.(step)\n }\n\n // had a step, and now we have a config\n if (step && config) {\n const newStep: Step = { ...step, config }\n this.stepChangeHandler?.(step, newStep)\n }\n\n // had a step, but no config\n if (step && !config) {\n this.stepDeleteHandler?.(step)\n }\n }\n\n private async onStepFileDelete(path: string): Promise<void> {\n if (path.endsWith('.ts')) {\n invalidate(path)\n }\n\n const step = this.findStep(path)\n\n if (!step) {\n console.warn(`Step ${path} not found, step skipped`)\n return\n }\n\n this.stepDeleteHandler?.(step)\n }\n\n private async onStreamFileAdd(path: string): Promise<void> {\n const config = await getStreamConfig(path).catch((err) => console.error(err))\n\n if (!config) {\n return\n }\n\n this.streamCreateHandler?.({ filePath: path, config, factory: null as never })\n }\n\n private async onStreamFileChange(path: string): Promise<void> {\n const stream = this.lockedData.findStream(path)\n const config = await getStreamConfig(path).catch((err) => console.error(err))\n\n if (!stream && config) {\n this.streamCreateHandler?.({ filePath: path, config, factory: null as never })\n } else if (stream && config) {\n this.streamChangeHandler?.(stream, { filePath: path, config, factory: null as never })\n } else if (stream && !config) {\n this.streamDeleteHandler?.(stream)\n }\n }\n\n private async onStreamFileDelete(path: string): Promise<void> {\n const stream = this.lockedData.findStream(path)\n\n if (this.streamDeleteHandler && stream) {\n this.streamDeleteHandler(stream)\n }\n }\n\n private async onFileAdd(path: string): Promise<void> {\n if (this.isStepFile(path)) {\n this.onStepFileAdd(path)\n } else if (this.isStreamFile(path)) {\n this.onStreamFileAdd(path)\n }\n }\n\n private async onFileChange(path: string): Promise<void> {\n if (this.isStepFile(path)) {\n this.onStepFileChange(path)\n } else if (this.isStreamFile(path)) {\n this.onStreamFileChange(path)\n }\n }\n\n private async onFileDelete(path: string): Promise<void> {\n if (this.isStepFile(path)) {\n this.onStepFileDelete(path)\n } else if (this.isStreamFile(path)) {\n this.onStreamFileDelete(path)\n }\n }\n\n init() {\n this.watcher = chokidar\n .watch(this.dir, { persistent: true, ignoreInitial: true })\n .on('add', (path) => this.onFileAdd(path))\n .on('change', (path) => this.onFileChange(path))\n .on('unlink', (path) => this.onFileDelete(path))\n }\n\n private isStepFile(path: string): boolean {\n const isUiNode = /\\.(tsx|jsx)$/.test(path)\n const isDeprecatedPythonStep = /\\.step\\.py$/.test(path)\n\n return /[._]step\\.((ts)|(js)|(rb)|(py))$/.test(path) && !isUiNode && !isDeprecatedPythonStep\n }\n\n private isStreamFile(path: string): boolean {\n const isUiNode = /\\.(tsx|jsx)$/.test(path)\n const isDeprecatedPythonStream = /\\.stream\\.py$/.test(path)\n\n return /[._]stream\\.((ts)|(js)|(rb)|(py))$/.test(path) && !isUiNode && !isDeprecatedPythonStream\n }\n\n async stop(): Promise<void> {\n if (this.watcher) {\n await this.watcher.close()\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"watcher.mjs","names":["dir: string","lockedData: LockedData","step: Step","step","newStep: Step"],"sources":["../src/watcher.ts"],"sourcesContent":["import type { Stream } from '@motiadev/core'\nimport { getStepConfig, getStreamConfig, invalidate, type LockedData, type Step } from '@motiadev/core'\nimport chokidar, { type FSWatcher } from 'chokidar'\nimport { randomUUID } from 'crypto'\n\ntype StepChangeHandler = (oldStep: Step, newStep: Step) => void\ntype StepCreateHandler = (step: Step) => void\ntype StepDeleteHandler = (step: Step) => void\n\ntype StreamChangeHandler = (oldStream: Stream, newStream: Stream) => void\ntype StreamCreateHandler = (stream: Stream) => void\ntype StreamDeleteHandler = (stream: Stream) => void\n\nexport class Watcher {\n private watcher?: FSWatcher\n private stepChangeHandler?: StepChangeHandler\n private stepCreateHandler?: StepCreateHandler\n private stepDeleteHandler?: StepDeleteHandler\n private streamChangeHandler?: StreamChangeHandler\n private streamCreateHandler?: StreamCreateHandler\n private streamDeleteHandler?: StreamDeleteHandler\n\n constructor(\n private readonly dir: string,\n private lockedData: LockedData,\n ) {}\n\n onStepChange(handler: StepChangeHandler) {\n this.stepChangeHandler = handler\n }\n\n onStepCreate(handler: StepCreateHandler) {\n this.stepCreateHandler = handler\n }\n\n onStepDelete(handler: StepDeleteHandler) {\n this.stepDeleteHandler = handler\n }\n\n onStreamChange(handler: StreamChangeHandler) {\n this.streamChangeHandler = handler\n }\n\n onStreamCreate(handler: StreamCreateHandler) {\n this.streamCreateHandler = handler\n }\n\n onStreamDelete(handler: StreamDeleteHandler) {\n this.streamDeleteHandler = handler\n }\n\n private findStep(path: string): Step | undefined {\n return (\n this.lockedData.activeSteps.find((step) => step.filePath === path) ||\n this.lockedData.devSteps.find((step) => step.filePath === path)\n )\n }\n\n private async onStepFileAdd(path: string): Promise<void> {\n if (!this.stepCreateHandler) {\n console.warn(`No step create handler, step skipped`)\n return\n }\n\n const config = await getStepConfig(path, this.lockedData.baseDir).catch((err) => console.error(err))\n\n if (!config) {\n return\n }\n\n const version = `${randomUUID()}:${Math.floor(Date.now() / 1000)}`\n const step: Step = { filePath: path, version, config }\n\n this.stepCreateHandler?.(step)\n }\n\n private async onStepFileChange(path: string): Promise<void> {\n if (path.endsWith('.ts')) {\n invalidate(path)\n }\n\n const config = await getStepConfig(path, this.lockedData.baseDir).catch((err) => {\n console.error(err)\n })\n\n const step = this.findStep(path)\n\n if (!step && !config) {\n return\n }\n\n // didn't have a step, but now we have a config\n if (!step && config) {\n const version = `${randomUUID()}:${Math.floor(Date.now() / 1000)}`\n const step: Step = { filePath: path, version, config }\n\n this.stepCreateHandler?.(step)\n }\n\n // had a step, and now we have a config\n if (step && config) {\n const newStep: Step = { ...step, config }\n this.stepChangeHandler?.(step, newStep)\n }\n\n // had a step, but no config\n if (step && !config) {\n this.stepDeleteHandler?.(step)\n }\n }\n\n private async onStepFileDelete(path: string): Promise<void> {\n if (path.endsWith('.ts')) {\n invalidate(path)\n }\n\n const step = this.findStep(path)\n\n if (!step) {\n console.warn(`Step ${path} not found, step skipped`)\n return\n }\n\n this.stepDeleteHandler?.(step)\n }\n\n private async onStreamFileAdd(path: string): Promise<void> {\n const config = await getStreamConfig(path).catch((err) => console.error(err))\n\n if (!config) {\n return\n }\n\n this.streamCreateHandler?.({ filePath: path, config, factory: null as never })\n }\n\n private async onStreamFileChange(path: string): Promise<void> {\n const stream = this.lockedData.findStream(path)\n const config = await getStreamConfig(path).catch((err) => console.error(err))\n\n if (!stream && config) {\n this.streamCreateHandler?.({ filePath: path, config, factory: null as never })\n } else if (stream && config) {\n this.streamChangeHandler?.(stream, { filePath: path, config, factory: null as never })\n } else if (stream && !config) {\n this.streamDeleteHandler?.(stream)\n }\n }\n\n private async onStreamFileDelete(path: string): Promise<void> {\n const stream = this.lockedData.findStream(path)\n\n if (this.streamDeleteHandler && stream) {\n this.streamDeleteHandler(stream)\n }\n }\n\n private async onFileAdd(path: string): Promise<void> {\n if (this.isStepFile(path)) {\n this.onStepFileAdd(path)\n } else if (this.isStreamFile(path)) {\n this.onStreamFileAdd(path)\n }\n }\n\n private async onFileChange(path: string): Promise<void> {\n if (this.isStepFile(path)) {\n this.onStepFileChange(path)\n } else if (this.isStreamFile(path)) {\n this.onStreamFileChange(path)\n }\n }\n\n private async onFileDelete(path: string): Promise<void> {\n if (this.isStepFile(path)) {\n this.onStepFileDelete(path)\n } else if (this.isStreamFile(path)) {\n this.onStreamFileDelete(path)\n }\n }\n\n init() {\n this.watcher = chokidar\n .watch(this.dir, { persistent: true, ignoreInitial: true })\n .on('add', (path) => this.onFileAdd(path))\n .on('change', (path) => this.onFileChange(path))\n .on('unlink', (path) => this.onFileDelete(path))\n }\n\n private isStepFile(path: string): boolean {\n const isUiNode = /\\.(tsx|jsx)$/.test(path)\n const isDeprecatedPythonStep = /\\.step\\.py$/.test(path)\n\n return /[._]step\\.((ts)|(js)|(rb)|(py))$/.test(path) && !isUiNode && !isDeprecatedPythonStep\n }\n\n private isStreamFile(path: string): boolean {\n const isUiNode = /\\.(tsx|jsx)$/.test(path)\n const isDeprecatedPythonStream = /\\.stream\\.py$/.test(path)\n\n return /[._]stream\\.((ts)|(js)|(rb)|(py))$/.test(path) && !isUiNode && !isDeprecatedPythonStream\n }\n\n async stop(): Promise<void> {\n if (this.watcher) {\n await this.watcher.close()\n }\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "motia",
3
3
  "description": "Build production-grade backends with a single primitive. APIs, background jobs, Queues, Workflows, and AI agents - unified in one system with built-in State management, Streaming, and Observability.",
4
- "version": "0.17.8-beta.190",
4
+ "version": "0.17.9-beta.191",
5
5
  "license": "Elastic-2.0",
6
6
  "type": "module",
7
7
  "repository": {
@@ -46,13 +46,13 @@
46
46
  "table": "^6.9.0",
47
47
  "ts-node": "^10.9.2",
48
48
  "zod": "^4.1.13",
49
- "@motiadev/adapter-bullmq-events": "0.17.8-beta.190",
50
- "@motiadev/adapter-redis-cron": "0.17.8-beta.190",
51
- "@motiadev/adapter-redis-streams": "0.17.8-beta.190",
52
- "@motiadev/adapter-redis-state": "0.17.8-beta.190",
53
- "@motiadev/core": "0.17.8-beta.190",
54
- "@motiadev/stream-client-node": "0.17.8-beta.190",
55
- "@motiadev/workbench": "0.17.8-beta.190"
49
+ "@motiadev/adapter-redis-state": "0.17.9-beta.191",
50
+ "@motiadev/adapter-redis-cron": "0.17.9-beta.191",
51
+ "@motiadev/adapter-redis-streams": "0.17.9-beta.191",
52
+ "@motiadev/core": "0.17.9-beta.191",
53
+ "@motiadev/stream-client-node": "0.17.9-beta.191",
54
+ "@motiadev/adapter-bullmq-events": "0.17.9-beta.191",
55
+ "@motiadev/workbench": "0.17.9-beta.191"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@amplitude/analytics-types": "^2.9.2",