motia 0.14.0-beta.165-285707 → 0.15.0-beta.165
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/cli.d.mts +2 -0
- package/dist/cli.mjs +128 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/cloud/build/build-validation.mjs +46 -0
- package/dist/cloud/build/build-validation.mjs.map +1 -0
- package/dist/cloud/build/builder.mjs +86 -0
- package/dist/cloud/build/builder.mjs.map +1 -0
- package/dist/cloud/build/builders/archiver.mjs +64 -0
- package/dist/cloud/build/builders/archiver.mjs.map +1 -0
- package/dist/cloud/build/builders/include-static-files.mjs +25 -0
- package/dist/cloud/build/builders/include-static-files.mjs.map +1 -0
- package/dist/cloud/build/builders/node/index.mjs +110 -0
- package/dist/cloud/build/builders/node/index.mjs.map +1 -0
- package/dist/cloud/build/builders/python/index.mjs +111 -0
- package/dist/cloud/build/builders/python/index.mjs.map +1 -0
- package/dist/cloud/build/builders/python/python-data/constants.mjs +112 -0
- package/dist/cloud/build/builders/python/python-data/constants.mjs.map +1 -0
- package/dist/cloud/build/builders/python/python-data/convert-import-path.mjs +16 -0
- package/dist/cloud/build/builders/python/python-data/convert-import-path.mjs.map +1 -0
- package/dist/cloud/build/builders/python/python-data/extract-python-data.mjs +24 -0
- package/dist/cloud/build/builders/python/python-data/extract-python-data.mjs.map +1 -0
- package/dist/cloud/build/builders/python/python-data/get-dependencies-from-file.mjs +52 -0
- package/dist/cloud/build/builders/python/python-data/get-dependencies-from-file.mjs.map +1 -0
- package/dist/cloud/build/builders/python/python-data/python-errors.mjs +26 -0
- package/dist/cloud/build/builders/python/python-data/python-errors.mjs.map +1 -0
- package/dist/cloud/build/builders/python/python-data/read-requirements.mjs +26 -0
- package/dist/cloud/build/builders/python/python-data/read-requirements.mjs.map +1 -0
- package/dist/cloud/build/builders/python/python-data/resolve-dep-names.mjs +37 -0
- package/dist/cloud/build/builders/python/python-data/resolve-dep-names.mjs.map +1 -0
- package/dist/cloud/build/builders/python/python-data/traverse-tree.mjs +41 -0
- package/dist/cloud/build/builders/python/python-data/traverse-tree.mjs.map +1 -0
- package/dist/cloud/build/builders/python/uv-packager.mjs +65 -0
- package/dist/cloud/build/builders/python/uv-packager.mjs.map +1 -0
- package/dist/cloud/build/validations/api-endpoints.validator.mjs +32 -0
- package/dist/cloud/build/validations/api-endpoints.validator.mjs.map +1 -0
- package/dist/cloud/build/validations/constants.mjs +11 -0
- package/dist/cloud/build/validations/constants.mjs.map +1 -0
- package/dist/cloud/build/validations/cron-expressions.validator.mjs +26 -0
- package/dist/cloud/build/validations/cron-expressions.validator.mjs.map +1 -0
- package/dist/cloud/build/validations/duplicate-step-names.validator.mjs +22 -0
- package/dist/cloud/build/validations/duplicate-step-names.validator.mjs.map +1 -0
- package/dist/cloud/build/validations/infrastructure-configs.validator.mjs +27 -0
- package/dist/cloud/build/validations/infrastructure-configs.validator.mjs.map +1 -0
- package/dist/cloud/build/validations/router-bundle-sizes.validator.mjs +31 -0
- package/dist/cloud/build/validations/router-bundle-sizes.validator.mjs.map +1 -0
- package/dist/cloud/build/validations/step-bundle-sizes.validator.mjs +37 -0
- package/dist/cloud/build/validations/step-bundle-sizes.validator.mjs.map +1 -0
- package/dist/cloud/build/validations/step-name-lengths.validator.mjs +24 -0
- package/dist/cloud/build/validations/step-name-lengths.validator.mjs.map +1 -0
- package/dist/cloud/cli/build.mjs +16 -0
- package/dist/cloud/cli/build.mjs.map +1 -0
- package/dist/cloud/cli/deploy.mjs +48 -0
- package/dist/cloud/cli/deploy.mjs.map +1 -0
- package/dist/cloud/cli-output-manager.mjs +118 -0
- package/dist/cloud/cli-output-manager.mjs.map +1 -0
- package/dist/cloud/cli.mjs +8 -0
- package/dist/cloud/cli.mjs.map +1 -0
- package/dist/cloud/config-utils.mjs +53 -0
- package/dist/cloud/config-utils.mjs.map +1 -0
- package/dist/cloud/endpoints.mjs +95 -0
- package/dist/cloud/endpoints.mjs.map +1 -0
- package/dist/cloud/index.mjs +4 -0
- package/dist/cloud/new-deployment/build.mjs +47 -0
- package/dist/cloud/new-deployment/build.mjs.map +1 -0
- package/dist/cloud/new-deployment/cloud-api/create-deployment.mjs +13 -0
- package/dist/cloud/new-deployment/cloud-api/create-deployment.mjs.map +1 -0
- package/dist/cloud/new-deployment/cloud-api/endpoints.mjs +12 -0
- package/dist/cloud/new-deployment/cloud-api/endpoints.mjs.map +1 -0
- package/dist/cloud/new-deployment/cloud-api/index.mjs +14 -0
- package/dist/cloud/new-deployment/cloud-api/index.mjs.map +1 -0
- package/dist/cloud/new-deployment/cloud-api/start-deployment.mjs +11 -0
- package/dist/cloud/new-deployment/cloud-api/start-deployment.mjs.map +1 -0
- package/dist/cloud/new-deployment/cloud-api/upload.mjs +12 -0
- package/dist/cloud/new-deployment/cloud-api/upload.mjs.map +1 -0
- package/dist/cloud/new-deployment/constants.mjs +11 -0
- package/dist/cloud/new-deployment/constants.mjs.map +1 -0
- package/dist/cloud/new-deployment/deploy.mjs +42 -0
- package/dist/cloud/new-deployment/deploy.mjs.map +1 -0
- package/dist/cloud/new-deployment/listeners/build-printer.mjs +81 -0
- package/dist/cloud/new-deployment/listeners/build-printer.mjs.map +1 -0
- package/dist/cloud/new-deployment/listeners/cli-listener.mjs +93 -0
- package/dist/cloud/new-deployment/listeners/cli-listener.mjs.map +1 -0
- package/dist/cloud/new-deployment/listeners/print-deployment-status.mjs +89 -0
- package/dist/cloud/new-deployment/listeners/print-deployment-status.mjs.map +1 -0
- package/dist/cloud/new-deployment/listeners/printer.mjs +77 -0
- package/dist/cloud/new-deployment/listeners/printer.mjs.map +1 -0
- package/dist/cloud/new-deployment/listeners/streaming-deployment-listener.mjs +259 -0
- package/dist/cloud/new-deployment/listeners/streaming-deployment-listener.mjs.map +1 -0
- package/dist/cloud/new-deployment/streams/deployment-stream.mjs +100 -0
- package/dist/cloud/new-deployment/streams/deployment-stream.mjs.map +1 -0
- package/dist/cloud/new-deployment/upload-artifacts.mjs +24 -0
- package/dist/cloud/new-deployment/upload-artifacts.mjs.map +1 -0
- package/dist/cloud/new-deployment/utils/load-env-data.mjs +34 -0
- package/dist/cloud/new-deployment/utils/load-env-data.mjs.map +1 -0
- package/dist/cloud/new-deployment/utils/pretty-bytes.mjs +14 -0
- package/dist/cloud/new-deployment/utils/pretty-bytes.mjs.map +1 -0
- package/dist/cloud/new-deployment/utils/upload.mjs +39 -0
- package/dist/cloud/new-deployment/utils/upload.mjs.map +1 -0
- package/dist/constants.mjs +15 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/create/index.mjs +177 -0
- package/dist/create/index.mjs.map +1 -0
- package/dist/create/interactive.mjs +67 -0
- package/dist/create/interactive.mjs.map +1 -0
- package/dist/create/pull-rules.mjs +26 -0
- package/dist/create/pull-rules.mjs.map +1 -0
- package/dist/create/setup-template.mjs +14 -0
- package/dist/create/setup-template.mjs.map +1 -0
- package/dist/create/templates/generate.mjs +115 -0
- package/dist/create/templates/generate.mjs.map +1 -0
- package/dist/create/templates/generate.ts +141 -0
- package/dist/create/templates/hello/motia.config.ts.txt +10 -0
- package/dist/create/templates/hello_js/motia.config.ts.txt +10 -0
- package/dist/create/templates/hello_python/motia.config.ts.txt +10 -0
- package/dist/create/templates/index.mjs +15 -0
- package/dist/create/templates/index.mjs.map +1 -0
- package/dist/create/templates/nodejs/motia.config.ts.txt +10 -0
- package/dist/create/templates/nodejs/steps/petstore/notification.step.ts.txt +35 -0
- package/dist/create/templates/python/motia.config.ts.txt +10 -0
- package/dist/create/utils.mjs +18 -0
- package/dist/create/utils.mjs.map +1 -0
- package/dist/create-step/getAnswers.mjs +142 -0
- package/dist/create-step/getAnswers.mjs.map +1 -0
- package/dist/create-step/index.mjs +39 -0
- package/dist/create-step/index.mjs.map +1 -0
- package/dist/create-step/teamplateUtils.mjs +50 -0
- package/dist/create-step/teamplateUtils.mjs.map +1 -0
- package/dist/create-step/templates/ui/overrides.mjs +28 -0
- package/dist/create-step/templates/ui/overrides.mjs.map +1 -0
- package/dist/create-step/templates/ui/overrides.ts +26 -0
- package/dist/create-step/types.mjs +23 -0
- package/dist/create-step/types.mjs.map +1 -0
- package/dist/create-step/utils.mjs +13 -0
- package/dist/create-step/utils.mjs.map +1 -0
- package/dist/dev-watchers.mjs +84 -0
- package/dist/dev-watchers.mjs.map +1 -0
- package/dist/dev.mjs +118 -0
- package/dist/dev.mjs.map +1 -0
- package/dist/docker/build.mjs +27 -0
- package/dist/docker/build.mjs.map +1 -0
- package/dist/docker/run.mjs +44 -0
- package/dist/docker/run.mjs.map +1 -0
- package/dist/docker/setup.mjs +86 -0
- package/dist/docker/setup.mjs.map +1 -0
- package/dist/docker/utils/build-docker-image.mjs +21 -0
- package/dist/docker/utils/build-docker-image.mjs.map +1 -0
- package/dist/docker/utils/print-intro.mjs +8 -0
- package/dist/docker/utils/print-intro.mjs.map +1 -0
- package/dist/docker/utils/promised-exec.mjs +26 -0
- package/dist/docker/utils/promised-exec.mjs.map +1 -0
- package/dist/generate-locked-data.d.mts +19 -0
- package/dist/generate-locked-data.d.mts.map +1 -0
- package/dist/generate-locked-data.mjs +128 -0
- package/dist/generate-locked-data.mjs.map +1 -0
- package/dist/generate-types.mjs +33 -0
- package/dist/generate-types.mjs.map +1 -0
- package/dist/index.d.mts +3 -0
- package/dist/index.mjs +5 -0
- package/dist/install.mjs +64 -0
- package/dist/install.mjs.map +1 -0
- package/dist/load-motia-config.mjs +22 -0
- package/dist/load-motia-config.mjs.map +1 -0
- package/dist/openapi/generate.mjs +69 -0
- package/dist/openapi/generate.mjs.map +1 -0
- package/dist/openapi/process-schema.mjs +31 -0
- package/dist/openapi/process-schema.mjs.map +1 -0
- package/dist/openapi/utils.mjs +10 -0
- package/dist/openapi/utils.mjs.map +1 -0
- package/dist/plugins/collect-plugin-steps.mjs +39 -0
- package/dist/plugins/collect-plugin-steps.mjs.map +1 -0
- package/dist/plugins/create-plugin-context.mjs +35 -0
- package/dist/plugins/create-plugin-context.mjs.map +1 -0
- package/dist/plugins/index.mjs +3 -0
- package/dist/plugins/install-plugin-dependencies.mjs +54 -0
- package/dist/plugins/install-plugin-dependencies.mjs.map +1 -0
- package/dist/plugins/load-config.mjs +30 -0
- package/dist/plugins/load-config.mjs.map +1 -0
- package/dist/plugins/plugin-dependencies.mjs +13 -0
- package/dist/plugins/plugin-dependencies.mjs.map +1 -0
- package/dist/plugins/process-plugins.mjs +22 -0
- package/dist/plugins/process-plugins.mjs.map +1 -0
- package/dist/plugins/process-steps.mjs +36 -0
- package/dist/plugins/process-steps.mjs.map +1 -0
- package/dist/redis-memory-manager.mjs +109 -0
- package/dist/redis-memory-manager.mjs.map +1 -0
- package/dist/start.mjs +76 -0
- package/dist/start.mjs.map +1 -0
- package/dist/utils/activate-python-env.mjs +39 -0
- package/dist/utils/activate-python-env.mjs.map +1 -0
- package/dist/utils/amplitude/enrichment-plugin.mjs +27 -0
- package/dist/utils/amplitude/enrichment-plugin.mjs.map +1 -0
- package/dist/utils/analytics.mjs +62 -0
- package/dist/utils/analytics.mjs.map +1 -0
- package/dist/utils/ensure-uv.mjs +65 -0
- package/dist/utils/ensure-uv.mjs.map +1 -0
- package/dist/utils/errors/build.error.mjs +20 -0
- package/dist/utils/errors/build.error.mjs.map +1 -0
- package/dist/utils/errors/compilation.error.mjs +13 -0
- package/dist/utils/errors/compilation.error.mjs.map +1 -0
- package/dist/utils/errors/locked-data-generation.error.mjs +13 -0
- package/dist/utils/errors/locked-data-generation.error.mjs.map +1 -0
- package/dist/utils/execute-command.mjs +24 -0
- package/dist/utils/execute-command.mjs.map +1 -0
- package/dist/utils/get-package-manager.mjs +13 -0
- package/dist/utils/get-package-manager.mjs.map +1 -0
- package/dist/utils/install-lambda-python-packages.mjs +30 -0
- package/dist/utils/install-lambda-python-packages.mjs.map +1 -0
- package/dist/utils/internal-logger.mjs +30 -0
- package/dist/utils/internal-logger.mjs.map +1 -0
- package/dist/utils/python-version-utils.mjs +47 -0
- package/dist/utils/python-version-utils.mjs.map +1 -0
- package/dist/version.mjs +13 -0
- package/dist/version.mjs.map +1 -0
- package/dist/watcher.mjs +140 -0
- package/dist/watcher.mjs.map +1 -0
- package/dist/workbench.d.mts +1 -0
- package/dist/workbench.mjs +3 -0
- package/package.json +25 -25
- package/dist/cjs/__tests__/openapi/generate.test.d.ts +0 -2
- package/dist/cjs/__tests__/openapi/generate.test.d.ts.map +0 -1
- package/dist/cjs/__tests__/openapi/generate.test.js +0 -287
- package/dist/cjs/__tests__/redis-memory-manager.test.d.ts +0 -2
- package/dist/cjs/__tests__/redis-memory-manager.test.d.ts.map +0 -1
- package/dist/cjs/__tests__/redis-memory-manager.test.js +0 -176
- package/dist/cjs/__tests__/test-helpers/redis-test-helper.d.ts +0 -52
- package/dist/cjs/__tests__/test-helpers/redis-test-helper.d.ts.map +0 -1
- package/dist/cjs/__tests__/test-helpers/redis-test-helper.example.test.d.ts +0 -2
- package/dist/cjs/__tests__/test-helpers/redis-test-helper.example.test.d.ts.map +0 -1
- package/dist/cjs/__tests__/test-helpers/redis-test-helper.example.test.js +0 -83
- package/dist/cjs/__tests__/test-helpers/redis-test-helper.js +0 -101
- package/dist/cjs/cli.d.ts +0 -3
- package/dist/cjs/cli.d.ts.map +0 -1
- package/dist/cjs/cli.js +0 -190
- package/dist/cjs/cloud/build/__tests__/infrastructure-serialization.test.d.ts +0 -2
- package/dist/cjs/cloud/build/__tests__/infrastructure-serialization.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/__tests__/infrastructure-serialization.test.js +0 -322
- package/dist/cjs/cloud/build/__tests__/infrastructure-validation.test.d.ts +0 -2
- package/dist/cjs/cloud/build/__tests__/infrastructure-validation.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/__tests__/infrastructure-validation.test.js +0 -571
- package/dist/cjs/cloud/build/build-validation.d.ts +0 -6
- package/dist/cjs/cloud/build/build-validation.d.ts.map +0 -1
- package/dist/cjs/cloud/build/build-validation.js +0 -44
- package/dist/cjs/cloud/build/builder.d.ts +0 -58
- package/dist/cjs/cloud/build/builder.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builder.js +0 -94
- package/dist/cjs/cloud/build/builders/archiver.d.ts +0 -16
- package/dist/cjs/cloud/build/builders/archiver.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/archiver.js +0 -77
- package/dist/cjs/cloud/build/builders/include-static-files.d.ts +0 -5
- package/dist/cjs/cloud/build/builders/include-static-files.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/include-static-files.js +0 -28
- package/dist/cjs/cloud/build/builders/node/index.d.ts +0 -12
- package/dist/cjs/cloud/build/builders/node/index.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/node/index.js +0 -141
- package/dist/cjs/cloud/build/builders/node/router-template.d.ts +0 -10
- package/dist/cjs/cloud/build/builders/node/router-template.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/node/router-template.js +0 -6
- package/dist/cjs/cloud/build/builders/python/index.d.ts +0 -16
- package/dist/cjs/cloud/build/builders/python/index.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/index.js +0 -129
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/convert-import-path.test.d.ts +0 -2
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/convert-import-path.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/convert-import-path.test.js +0 -24
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/extract-python-data.test.d.ts +0 -2
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/extract-python-data.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/extract-python-data.test.js +0 -41
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/get-dependencies-from-file.test.d.ts +0 -2
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/get-dependencies-from-file.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/get-dependencies-from-file.test.js +0 -64
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/read-requirements.test.d.ts +0 -2
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/read-requirements.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/read-requirements.test.js +0 -94
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/resolve-dep-name.test.d.ts +0 -2
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/resolve-dep-name.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/__tests__/resolve-dep-name.test.js +0 -38
- package/dist/cjs/cloud/build/builders/python/python-data/constants.d.ts +0 -2
- package/dist/cjs/cloud/build/builders/python/python-data/constants.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/constants.js +0 -110
- package/dist/cjs/cloud/build/builders/python/python-data/convert-import-path.d.ts +0 -2
- package/dist/cjs/cloud/build/builders/python/python-data/convert-import-path.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/convert-import-path.js +0 -24
- package/dist/cjs/cloud/build/builders/python/python-data/extract-python-data.d.ts +0 -8
- package/dist/cjs/cloud/build/builders/python/python-data/extract-python-data.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/extract-python-data.js +0 -24
- package/dist/cjs/cloud/build/builders/python/python-data/get-dependencies-from-file.d.ts +0 -7
- package/dist/cjs/cloud/build/builders/python/python-data/get-dependencies-from-file.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/get-dependencies-from-file.js +0 -72
- package/dist/cjs/cloud/build/builders/python/python-data/python-errors.d.ts +0 -14
- package/dist/cjs/cloud/build/builders/python/python-data/python-errors.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/python-errors.js +0 -28
- package/dist/cjs/cloud/build/builders/python/python-data/read-requirements.d.ts +0 -14
- package/dist/cjs/cloud/build/builders/python/python-data/read-requirements.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/read-requirements.js +0 -32
- package/dist/cjs/cloud/build/builders/python/python-data/resolve-dep-names.d.ts +0 -7
- package/dist/cjs/cloud/build/builders/python/python-data/resolve-dep-names.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/resolve-dep-names.js +0 -52
- package/dist/cjs/cloud/build/builders/python/python-data/traverse-tree.d.ts +0 -7
- package/dist/cjs/cloud/build/builders/python/python-data/traverse-tree.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/python-data/traverse-tree.js +0 -60
- package/dist/cjs/cloud/build/builders/python/uv-packager.d.ts +0 -13
- package/dist/cjs/cloud/build/builders/python/uv-packager.d.ts.map +0 -1
- package/dist/cjs/cloud/build/builders/python/uv-packager.js +0 -69
- package/dist/cjs/cloud/build/validations/__tests__/api-endpoints.validator.test.d.ts +0 -2
- package/dist/cjs/cloud/build/validations/__tests__/api-endpoints.validator.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/__tests__/api-endpoints.validator.test.js +0 -71
- package/dist/cjs/cloud/build/validations/__tests__/build-validation.test.d.ts +0 -2
- package/dist/cjs/cloud/build/validations/__tests__/build-validation.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/__tests__/build-validation.test.js +0 -96
- package/dist/cjs/cloud/build/validations/__tests__/cron-expressions.validator.test.d.ts +0 -2
- package/dist/cjs/cloud/build/validations/__tests__/cron-expressions.validator.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/__tests__/cron-expressions.validator.test.js +0 -68
- package/dist/cjs/cloud/build/validations/__tests__/duplicate-step-names.validator.test.d.ts +0 -2
- package/dist/cjs/cloud/build/validations/__tests__/duplicate-step-names.validator.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/__tests__/duplicate-step-names.validator.test.js +0 -66
- package/dist/cjs/cloud/build/validations/__tests__/router-bundle-sizes.validator.test.d.ts +0 -2
- package/dist/cjs/cloud/build/validations/__tests__/router-bundle-sizes.validator.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/__tests__/router-bundle-sizes.validator.test.js +0 -71
- package/dist/cjs/cloud/build/validations/__tests__/step-bundle-sizes.validator.test.d.ts +0 -2
- package/dist/cjs/cloud/build/validations/__tests__/step-bundle-sizes.validator.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/__tests__/step-bundle-sizes.validator.test.js +0 -69
- package/dist/cjs/cloud/build/validations/__tests__/step-name-lengths.validator.test.d.ts +0 -2
- package/dist/cjs/cloud/build/validations/__tests__/step-name-lengths.validator.test.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/__tests__/step-name-lengths.validator.test.js +0 -68
- package/dist/cjs/cloud/build/validations/api-endpoints.validator.d.ts +0 -3
- package/dist/cjs/cloud/build/validations/api-endpoints.validator.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/api-endpoints.validator.js +0 -36
- package/dist/cjs/cloud/build/validations/constants.d.ts +0 -7
- package/dist/cjs/cloud/build/validations/constants.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/constants.js +0 -9
- package/dist/cjs/cloud/build/validations/cron-expressions.validator.d.ts +0 -3
- package/dist/cjs/cloud/build/validations/cron-expressions.validator.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/cron-expressions.validator.js +0 -62
- package/dist/cjs/cloud/build/validations/duplicate-step-names.validator.d.ts +0 -3
- package/dist/cjs/cloud/build/validations/duplicate-step-names.validator.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/duplicate-step-names.validator.js +0 -26
- package/dist/cjs/cloud/build/validations/infrastructure-configs.validator.d.ts +0 -3
- package/dist/cjs/cloud/build/validations/infrastructure-configs.validator.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/infrastructure-configs.validator.js +0 -32
- package/dist/cjs/cloud/build/validations/router-bundle-sizes.validator.d.ts +0 -3
- package/dist/cjs/cloud/build/validations/router-bundle-sizes.validator.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/router-bundle-sizes.validator.js +0 -31
- package/dist/cjs/cloud/build/validations/step-bundle-sizes.validator.d.ts +0 -3
- package/dist/cjs/cloud/build/validations/step-bundle-sizes.validator.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/step-bundle-sizes.validator.js +0 -36
- package/dist/cjs/cloud/build/validations/step-name-lengths.validator.d.ts +0 -3
- package/dist/cjs/cloud/build/validations/step-name-lengths.validator.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/step-name-lengths.validator.js +0 -27
- package/dist/cjs/cloud/build/validations/types.d.ts +0 -8
- package/dist/cjs/cloud/build/validations/types.d.ts.map +0 -1
- package/dist/cjs/cloud/build/validations/types.js +0 -2
- package/dist/cjs/cloud/cli/build.d.ts +0 -2
- package/dist/cjs/cloud/cli/build.d.ts.map +0 -1
- package/dist/cjs/cloud/cli/build.js +0 -19
- package/dist/cjs/cloud/cli/deploy.d.ts +0 -2
- package/dist/cjs/cloud/cli/deploy.d.ts.map +0 -1
- package/dist/cjs/cloud/cli/deploy.js +0 -61
- package/dist/cjs/cloud/cli-output-manager.d.ts +0 -37
- package/dist/cjs/cloud/cli-output-manager.d.ts.map +0 -1
- package/dist/cjs/cloud/cli-output-manager.js +0 -131
- package/dist/cjs/cloud/cli.d.ts +0 -2
- package/dist/cjs/cloud/cli.d.ts.map +0 -1
- package/dist/cjs/cloud/cli.js +0 -5
- package/dist/cjs/cloud/config-utils.d.ts +0 -10
- package/dist/cjs/cloud/config-utils.d.ts.map +0 -1
- package/dist/cjs/cloud/config-utils.js +0 -64
- package/dist/cjs/cloud/endpoints.d.ts +0 -3
- package/dist/cjs/cloud/endpoints.d.ts.map +0 -1
- package/dist/cjs/cloud/endpoints.js +0 -93
- package/dist/cjs/cloud/index.d.ts +0 -3
- package/dist/cjs/cloud/index.d.ts.map +0 -1
- package/dist/cjs/cloud/index.js +0 -4
- package/dist/cjs/cloud/new-deployment/build.d.ts +0 -4
- package/dist/cjs/cloud/new-deployment/build.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/build.js +0 -61
- package/dist/cjs/cloud/new-deployment/cloud-api/create-deployment.d.ts +0 -18
- package/dist/cjs/cloud/new-deployment/cloud-api/create-deployment.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/cloud-api/create-deployment.js +0 -18
- package/dist/cjs/cloud/new-deployment/cloud-api/endpoints.d.ts +0 -8
- package/dist/cjs/cloud/new-deployment/cloud-api/endpoints.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/cloud-api/endpoints.js +0 -10
- package/dist/cjs/cloud/new-deployment/cloud-api/index.d.ts +0 -36
- package/dist/cjs/cloud/new-deployment/cloud-api/index.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/cloud-api/index.js +0 -11
- package/dist/cjs/cloud/new-deployment/cloud-api/start-deployment.d.ts +0 -14
- package/dist/cjs/cloud/new-deployment/cloud-api/start-deployment.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/cloud-api/start-deployment.js +0 -13
- package/dist/cjs/cloud/new-deployment/cloud-api/upload.d.ts +0 -14
- package/dist/cjs/cloud/new-deployment/cloud-api/upload.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/cloud-api/upload.js +0 -13
- package/dist/cjs/cloud/new-deployment/constants.d.ts +0 -5
- package/dist/cjs/cloud/new-deployment/constants.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/constants.js +0 -11
- package/dist/cjs/cloud/new-deployment/deploy.d.ts +0 -14
- package/dist/cjs/cloud/new-deployment/deploy.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/deploy.js +0 -49
- package/dist/cjs/cloud/new-deployment/listeners/build-printer.d.ts +0 -17
- package/dist/cjs/cloud/new-deployment/listeners/build-printer.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/listeners/build-printer.js +0 -107
- package/dist/cjs/cloud/new-deployment/listeners/cli-listener.d.ts +0 -35
- package/dist/cjs/cloud/new-deployment/listeners/cli-listener.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/listeners/cli-listener.js +0 -97
- package/dist/cjs/cloud/new-deployment/listeners/listener.types.d.ts +0 -67
- package/dist/cjs/cloud/new-deployment/listeners/listener.types.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/listeners/listener.types.js +0 -2
- package/dist/cjs/cloud/new-deployment/listeners/print-deployment-status.d.ts +0 -7
- package/dist/cjs/cloud/new-deployment/listeners/print-deployment-status.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/listeners/print-deployment-status.js +0 -93
- package/dist/cjs/cloud/new-deployment/listeners/printer.d.ts +0 -17
- package/dist/cjs/cloud/new-deployment/listeners/printer.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/listeners/printer.js +0 -98
- package/dist/cjs/cloud/new-deployment/listeners/streaming-deployment-listener.d.ts +0 -44
- package/dist/cjs/cloud/new-deployment/listeners/streaming-deployment-listener.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/listeners/streaming-deployment-listener.js +0 -278
- package/dist/cjs/cloud/new-deployment/streams/deployment-stream.d.ts +0 -47
- package/dist/cjs/cloud/new-deployment/streams/deployment-stream.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/streams/deployment-stream.js +0 -108
- package/dist/cjs/cloud/new-deployment/upload-artifacts.d.ts +0 -4
- package/dist/cjs/cloud/new-deployment/upload-artifacts.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/upload-artifacts.js +0 -25
- package/dist/cjs/cloud/new-deployment/utils/load-env-data.d.ts +0 -3
- package/dist/cjs/cloud/new-deployment/utils/load-env-data.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/utils/load-env-data.js +0 -48
- package/dist/cjs/cloud/new-deployment/utils/pretty-bytes.d.ts +0 -2
- package/dist/cjs/cloud/new-deployment/utils/pretty-bytes.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/utils/pretty-bytes.js +0 -19
- package/dist/cjs/cloud/new-deployment/utils/upload.d.ts +0 -2
- package/dist/cjs/cloud/new-deployment/utils/upload.d.ts.map +0 -1
- package/dist/cjs/cloud/new-deployment/utils/upload.js +0 -40
- package/dist/cjs/constants.d.ts +0 -3
- package/dist/cjs/constants.d.ts.map +0 -1
- package/dist/cjs/constants.js +0 -17
- package/dist/cjs/create/index.d.ts +0 -11
- package/dist/cjs/create/index.d.ts.map +0 -1
- package/dist/cjs/create/index.js +0 -215
- package/dist/cjs/create/interactive.d.ts +0 -9
- package/dist/cjs/create/interactive.d.ts.map +0 -1
- package/dist/cjs/create/interactive.js +0 -75
- package/dist/cjs/create/pull-rules.d.ts +0 -8
- package/dist/cjs/create/pull-rules.d.ts.map +0 -1
- package/dist/cjs/create/pull-rules.js +0 -28
- package/dist/cjs/create/setup-template.d.ts +0 -3
- package/dist/cjs/create/setup-template.d.ts.map +0 -1
- package/dist/cjs/create/setup-template.js +0 -15
- package/dist/cjs/create/templates/generate.d.ts +0 -5
- package/dist/cjs/create/templates/generate.d.ts.map +0 -1
- package/dist/cjs/create/templates/generate.js +0 -163
- package/dist/cjs/create/templates/generate.ts +0 -139
- package/dist/cjs/create/templates/hello/motia.config.ts.txt +0 -10
- package/dist/cjs/create/templates/hello_js/motia.config.ts.txt +0 -10
- package/dist/cjs/create/templates/hello_python/motia.config.ts.txt +0 -10
- package/dist/cjs/create/templates/index.d.ts +0 -3
- package/dist/cjs/create/templates/index.d.ts.map +0 -1
- package/dist/cjs/create/templates/index.js +0 -12
- package/dist/cjs/create/templates/nodejs/motia.config.ts.txt +0 -10
- package/dist/cjs/create/templates/nodejs/steps/petstore/notification.step.ts.txt +0 -35
- package/dist/cjs/create/templates/python/motia.config.ts.txt +0 -10
- package/dist/cjs/create/utils.d.ts +0 -3
- package/dist/cjs/create/utils.d.ts.map +0 -1
- package/dist/cjs/create/utils.js +0 -21
- package/dist/cjs/create-step/getAnswers.d.ts +0 -3
- package/dist/cjs/create-step/getAnswers.d.ts.map +0 -1
- package/dist/cjs/create-step/getAnswers.js +0 -170
- package/dist/cjs/create-step/index.d.ts +0 -4
- package/dist/cjs/create-step/index.d.ts.map +0 -1
- package/dist/cjs/create-step/index.js +0 -47
- package/dist/cjs/create-step/teamplateUtils.d.ts +0 -6
- package/dist/cjs/create-step/teamplateUtils.d.ts.map +0 -1
- package/dist/cjs/create-step/teamplateUtils.js +0 -50
- package/dist/cjs/create-step/templates/ui/overrides.d.ts +0 -6
- package/dist/cjs/create-step/templates/ui/overrides.d.ts.map +0 -1
- package/dist/cjs/create-step/templates/ui/overrides.js +0 -26
- package/dist/cjs/create-step/templates/ui/overrides.ts +0 -24
- package/dist/cjs/create-step/types.d.ts +0 -22
- package/dist/cjs/create-step/types.d.ts.map +0 -1
- package/dist/cjs/create-step/types.js +0 -6
- package/dist/cjs/create-step/utils.d.ts +0 -3
- package/dist/cjs/create-step/utils.d.ts.map +0 -1
- package/dist/cjs/create-step/utils.js +0 -13
- package/dist/cjs/dev-watchers.d.ts +0 -5
- package/dist/cjs/dev-watchers.d.ts.map +0 -1
- package/dist/cjs/dev-watchers.js +0 -101
- package/dist/cjs/dev.d.ts +0 -2
- package/dist/cjs/dev.d.ts.map +0 -1
- package/dist/cjs/dev.js +0 -128
- package/dist/cjs/docker/build.d.ts +0 -2
- package/dist/cjs/docker/build.d.ts.map +0 -1
- package/dist/cjs/docker/build.js +0 -59
- package/dist/cjs/docker/run.d.ts +0 -2
- package/dist/cjs/docker/run.d.ts.map +0 -1
- package/dist/cjs/docker/run.js +0 -83
- package/dist/cjs/docker/setup.d.ts +0 -2
- package/dist/cjs/docker/setup.d.ts.map +0 -1
- package/dist/cjs/docker/setup.js +0 -123
- package/dist/cjs/docker/utils/build-docker-image.d.ts +0 -2
- package/dist/cjs/docker/utils/build-docker-image.d.ts.map +0 -1
- package/dist/cjs/docker/utils/build-docker-image.js +0 -52
- package/dist/cjs/docker/utils/print-intro.d.ts +0 -2
- package/dist/cjs/docker/utils/print-intro.d.ts.map +0 -1
- package/dist/cjs/docker/utils/print-intro.js +0 -21
- package/dist/cjs/docker/utils/promised-exec.d.ts +0 -2
- package/dist/cjs/docker/utils/promised-exec.d.ts.map +0 -1
- package/dist/cjs/docker/utils/promised-exec.js +0 -28
- package/dist/cjs/generate-locked-data.d.ts +0 -18
- package/dist/cjs/generate-locked-data.d.ts.map +0 -1
- package/dist/cjs/generate-locked-data.js +0 -133
- package/dist/cjs/generate-types.d.ts +0 -2
- package/dist/cjs/generate-types.d.ts.map +0 -1
- package/dist/cjs/generate-types.js +0 -31
- package/dist/cjs/index.d.ts +0 -3
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -21
- package/dist/cjs/install.d.ts +0 -11
- package/dist/cjs/install.d.ts.map +0 -1
- package/dist/cjs/install.js +0 -68
- package/dist/cjs/load-motia-config.d.ts +0 -4
- package/dist/cjs/load-motia-config.d.ts.map +0 -1
- package/dist/cjs/load-motia-config.js +0 -52
- package/dist/cjs/openapi/generate.d.ts +0 -3
- package/dist/cjs/openapi/generate.d.ts.map +0 -1
- package/dist/cjs/openapi/generate.js +0 -125
- package/dist/cjs/openapi/process-schema.d.ts +0 -3
- package/dist/cjs/openapi/process-schema.d.ts.map +0 -1
- package/dist/cjs/openapi/process-schema.js +0 -54
- package/dist/cjs/openapi/utils.d.ts +0 -3
- package/dist/cjs/openapi/utils.d.ts.map +0 -1
- package/dist/cjs/openapi/utils.js +0 -7
- package/dist/cjs/plugins/collect-plugin-steps.d.ts +0 -6
- package/dist/cjs/plugins/collect-plugin-steps.d.ts.map +0 -1
- package/dist/cjs/plugins/collect-plugin-steps.js +0 -44
- package/dist/cjs/plugins/create-plugin-context.d.ts +0 -3
- package/dist/cjs/plugins/create-plugin-context.d.ts.map +0 -1
- package/dist/cjs/plugins/create-plugin-context.js +0 -34
- package/dist/cjs/plugins/index.d.ts +0 -2
- package/dist/cjs/plugins/index.d.ts.map +0 -1
- package/dist/cjs/plugins/index.js +0 -5
- package/dist/cjs/plugins/install-plugin-dependencies.d.ts +0 -3
- package/dist/cjs/plugins/install-plugin-dependencies.d.ts.map +0 -1
- package/dist/cjs/plugins/install-plugin-dependencies.js +0 -61
- package/dist/cjs/plugins/load-config.d.ts +0 -3
- package/dist/cjs/plugins/load-config.d.ts.map +0 -1
- package/dist/cjs/plugins/load-config.js +0 -57
- package/dist/cjs/plugins/plugin-dependencies.d.ts +0 -2
- package/dist/cjs/plugins/plugin-dependencies.d.ts.map +0 -1
- package/dist/cjs/plugins/plugin-dependencies.js +0 -11
- package/dist/cjs/plugins/process-plugins.d.ts +0 -3
- package/dist/cjs/plugins/process-plugins.d.ts.map +0 -1
- package/dist/cjs/plugins/process-plugins.js +0 -20
- package/dist/cjs/plugins/process-steps.d.ts +0 -3
- package/dist/cjs/plugins/process-steps.d.ts.map +0 -1
- package/dist/cjs/plugins/process-steps.js +0 -40
- package/dist/cjs/redis-memory-manager.d.ts +0 -8
- package/dist/cjs/redis-memory-manager.d.ts.map +0 -1
- package/dist/cjs/redis-memory-manager.js +0 -126
- package/dist/cjs/start.d.ts +0 -2
- package/dist/cjs/start.d.ts.map +0 -1
- package/dist/cjs/start.js +0 -81
- package/dist/cjs/utils/activate-python-env.d.ts +0 -9
- package/dist/cjs/utils/activate-python-env.d.ts.map +0 -1
- package/dist/cjs/utils/activate-python-env.js +0 -48
- package/dist/cjs/utils/amplitude/enrichment-plugin.d.ts +0 -8
- package/dist/cjs/utils/amplitude/enrichment-plugin.d.ts.map +0 -1
- package/dist/cjs/utils/amplitude/enrichment-plugin.js +0 -32
- package/dist/cjs/utils/analytics.d.ts +0 -7
- package/dist/cjs/utils/analytics.d.ts.map +0 -1
- package/dist/cjs/utils/analytics.js +0 -92
- package/dist/cjs/utils/build-tools-error.d.ts +0 -8
- package/dist/cjs/utils/build-tools-error.d.ts.map +0 -1
- package/dist/cjs/utils/build-tools-error.js +0 -51
- package/dist/cjs/utils/ensure-uv.d.ts +0 -2
- package/dist/cjs/utils/ensure-uv.d.ts.map +0 -1
- package/dist/cjs/utils/ensure-uv.js +0 -81
- package/dist/cjs/utils/errors/build.error.d.ts +0 -11
- package/dist/cjs/utils/errors/build.error.d.ts.map +0 -1
- package/dist/cjs/utils/errors/build.error.js +0 -21
- package/dist/cjs/utils/errors/compilation.error.d.ts +0 -5
- package/dist/cjs/utils/errors/compilation.error.d.ts.map +0 -1
- package/dist/cjs/utils/errors/compilation.error.js +0 -11
- package/dist/cjs/utils/errors/locked-data-generation.error.d.ts +0 -5
- package/dist/cjs/utils/errors/locked-data-generation.error.d.ts.map +0 -1
- package/dist/cjs/utils/errors/locked-data-generation.error.js +0 -11
- package/dist/cjs/utils/execute-command.d.ts +0 -6
- package/dist/cjs/utils/execute-command.d.ts.map +0 -1
- package/dist/cjs/utils/execute-command.js +0 -26
- package/dist/cjs/utils/get-package-manager.d.ts +0 -2
- package/dist/cjs/utils/get-package-manager.d.ts.map +0 -1
- package/dist/cjs/utils/get-package-manager.js +0 -19
- package/dist/cjs/utils/install-lambda-python-packages.d.ts +0 -7
- package/dist/cjs/utils/install-lambda-python-packages.d.ts.map +0 -1
- package/dist/cjs/utils/install-lambda-python-packages.js +0 -35
- package/dist/cjs/utils/internal-logger.d.ts +0 -6
- package/dist/cjs/utils/internal-logger.d.ts.map +0 -1
- package/dist/cjs/utils/internal-logger.js +0 -30
- package/dist/cjs/utils/python-version-utils.d.ts +0 -4
- package/dist/cjs/utils/python-version-utils.d.ts.map +0 -1
- package/dist/cjs/utils/python-version-utils.js +0 -74
- package/dist/cjs/version.d.ts +0 -2
- package/dist/cjs/version.d.ts.map +0 -1
- package/dist/cjs/version.js +0 -11
- package/dist/cjs/watcher.d.ts +0 -42
- package/dist/cjs/watcher.d.ts.map +0 -1
- package/dist/cjs/watcher.js +0 -155
- package/dist/cjs/workbench.d.ts +0 -2
- package/dist/cjs/workbench.d.ts.map +0 -1
- package/dist/cjs/workbench.js +0 -17
- package/dist/esm/__tests__/openapi/generate.test.d.ts +0 -2
- package/dist/esm/__tests__/openapi/generate.test.d.ts.map +0 -1
- package/dist/esm/__tests__/openapi/generate.test.js +0 -252
- package/dist/esm/__tests__/redis-memory-manager.test.d.ts +0 -2
- package/dist/esm/__tests__/redis-memory-manager.test.d.ts.map +0 -1
- package/dist/esm/__tests__/redis-memory-manager.test.js +0 -174
- package/dist/esm/__tests__/test-helpers/redis-test-helper.d.ts +0 -52
- package/dist/esm/__tests__/test-helpers/redis-test-helper.d.ts.map +0 -1
- package/dist/esm/__tests__/test-helpers/redis-test-helper.example.test.d.ts +0 -2
- package/dist/esm/__tests__/test-helpers/redis-test-helper.example.test.d.ts.map +0 -1
- package/dist/esm/__tests__/test-helpers/redis-test-helper.example.test.js +0 -81
- package/dist/esm/__tests__/test-helpers/redis-test-helper.js +0 -94
- package/dist/esm/cli.d.ts +0 -3
- package/dist/esm/cli.d.ts.map +0 -1
- package/dist/esm/cli.js +0 -188
- package/dist/esm/cloud/build/__tests__/infrastructure-serialization.test.d.ts +0 -2
- package/dist/esm/cloud/build/__tests__/infrastructure-serialization.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/__tests__/infrastructure-serialization.test.js +0 -320
- package/dist/esm/cloud/build/__tests__/infrastructure-validation.test.d.ts +0 -2
- package/dist/esm/cloud/build/__tests__/infrastructure-validation.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/__tests__/infrastructure-validation.test.js +0 -569
- package/dist/esm/cloud/build/build-validation.d.ts +0 -6
- package/dist/esm/cloud/build/build-validation.d.ts.map +0 -1
- package/dist/esm/cloud/build/build-validation.js +0 -39
- package/dist/esm/cloud/build/builder.d.ts +0 -58
- package/dist/esm/cloud/build/builder.d.ts.map +0 -1
- package/dist/esm/cloud/build/builder.js +0 -90
- package/dist/esm/cloud/build/builders/archiver.d.ts +0 -16
- package/dist/esm/cloud/build/builders/archiver.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/archiver.js +0 -70
- package/dist/esm/cloud/build/builders/include-static-files.d.ts +0 -5
- package/dist/esm/cloud/build/builders/include-static-files.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/include-static-files.js +0 -21
- package/dist/esm/cloud/build/builders/node/index.d.ts +0 -12
- package/dist/esm/cloud/build/builders/node/index.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/node/index.js +0 -101
- package/dist/esm/cloud/build/builders/node/router-template.d.ts +0 -10
- package/dist/esm/cloud/build/builders/node/router-template.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/node/router-template.js +0 -3
- package/dist/esm/cloud/build/builders/node/router-template.ts +0 -14
- package/dist/esm/cloud/build/builders/python/index.d.ts +0 -16
- package/dist/esm/cloud/build/builders/python/index.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/index.js +0 -122
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/convert-import-path.test.d.ts +0 -2
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/convert-import-path.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/convert-import-path.test.js +0 -22
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/extract-python-data.test.d.ts +0 -2
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/extract-python-data.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/extract-python-data.test.js +0 -36
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/get-dependencies-from-file.test.d.ts +0 -2
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/get-dependencies-from-file.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/get-dependencies-from-file.test.js +0 -62
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/read-requirements.test.d.ts +0 -2
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/read-requirements.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/read-requirements.test.js +0 -89
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/resolve-dep-name.test.d.ts +0 -2
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/resolve-dep-name.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/__tests__/resolve-dep-name.test.js +0 -33
- package/dist/esm/cloud/build/builders/python/python-data/constants.d.ts +0 -2
- package/dist/esm/cloud/build/builders/python/python-data/constants.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/constants.js +0 -107
- package/dist/esm/cloud/build/builders/python/python-data/convert-import-path.d.ts +0 -2
- package/dist/esm/cloud/build/builders/python/python-data/convert-import-path.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/convert-import-path.js +0 -17
- package/dist/esm/cloud/build/builders/python/python-data/extract-python-data.d.ts +0 -8
- package/dist/esm/cloud/build/builders/python/python-data/extract-python-data.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/extract-python-data.js +0 -20
- package/dist/esm/cloud/build/builders/python/python-data/get-dependencies-from-file.d.ts +0 -7
- package/dist/esm/cloud/build/builders/python/python-data/get-dependencies-from-file.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/get-dependencies-from-file.js +0 -68
- package/dist/esm/cloud/build/builders/python/python-data/python-errors.d.ts +0 -14
- package/dist/esm/cloud/build/builders/python/python-data/python-errors.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/python-errors.js +0 -21
- package/dist/esm/cloud/build/builders/python/python-data/read-requirements.d.ts +0 -14
- package/dist/esm/cloud/build/builders/python/python-data/read-requirements.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/read-requirements.js +0 -25
- package/dist/esm/cloud/build/builders/python/python-data/resolve-dep-names.d.ts +0 -7
- package/dist/esm/cloud/build/builders/python/python-data/resolve-dep-names.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/resolve-dep-names.js +0 -45
- package/dist/esm/cloud/build/builders/python/python-data/traverse-tree.d.ts +0 -7
- package/dist/esm/cloud/build/builders/python/python-data/traverse-tree.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/python-data/traverse-tree.js +0 -53
- package/dist/esm/cloud/build/builders/python/router_template.py +0 -15
- package/dist/esm/cloud/build/builders/python/uv-packager.d.ts +0 -13
- package/dist/esm/cloud/build/builders/python/uv-packager.d.ts.map +0 -1
- package/dist/esm/cloud/build/builders/python/uv-packager.js +0 -62
- package/dist/esm/cloud/build/validations/__tests__/api-endpoints.validator.test.d.ts +0 -2
- package/dist/esm/cloud/build/validations/__tests__/api-endpoints.validator.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/__tests__/api-endpoints.validator.test.js +0 -69
- package/dist/esm/cloud/build/validations/__tests__/build-validation.test.d.ts +0 -2
- package/dist/esm/cloud/build/validations/__tests__/build-validation.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/__tests__/build-validation.test.js +0 -94
- package/dist/esm/cloud/build/validations/__tests__/cron-expressions.validator.test.d.ts +0 -2
- package/dist/esm/cloud/build/validations/__tests__/cron-expressions.validator.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/__tests__/cron-expressions.validator.test.js +0 -66
- package/dist/esm/cloud/build/validations/__tests__/duplicate-step-names.validator.test.d.ts +0 -2
- package/dist/esm/cloud/build/validations/__tests__/duplicate-step-names.validator.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/__tests__/duplicate-step-names.validator.test.js +0 -64
- package/dist/esm/cloud/build/validations/__tests__/router-bundle-sizes.validator.test.d.ts +0 -2
- package/dist/esm/cloud/build/validations/__tests__/router-bundle-sizes.validator.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/__tests__/router-bundle-sizes.validator.test.js +0 -69
- package/dist/esm/cloud/build/validations/__tests__/step-bundle-sizes.validator.test.d.ts +0 -2
- package/dist/esm/cloud/build/validations/__tests__/step-bundle-sizes.validator.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/__tests__/step-bundle-sizes.validator.test.js +0 -67
- package/dist/esm/cloud/build/validations/__tests__/step-name-lengths.validator.test.d.ts +0 -2
- package/dist/esm/cloud/build/validations/__tests__/step-name-lengths.validator.test.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/__tests__/step-name-lengths.validator.test.js +0 -66
- package/dist/esm/cloud/build/validations/api-endpoints.validator.d.ts +0 -3
- package/dist/esm/cloud/build/validations/api-endpoints.validator.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/api-endpoints.validator.js +0 -29
- package/dist/esm/cloud/build/validations/constants.d.ts +0 -7
- package/dist/esm/cloud/build/validations/constants.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/constants.js +0 -6
- package/dist/esm/cloud/build/validations/cron-expressions.validator.d.ts +0 -3
- package/dist/esm/cloud/build/validations/cron-expressions.validator.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/cron-expressions.validator.js +0 -22
- package/dist/esm/cloud/build/validations/duplicate-step-names.validator.d.ts +0 -3
- package/dist/esm/cloud/build/validations/duplicate-step-names.validator.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/duplicate-step-names.validator.js +0 -19
- package/dist/esm/cloud/build/validations/infrastructure-configs.validator.d.ts +0 -3
- package/dist/esm/cloud/build/validations/infrastructure-configs.validator.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/infrastructure-configs.validator.js +0 -25
- package/dist/esm/cloud/build/validations/router-bundle-sizes.validator.d.ts +0 -3
- package/dist/esm/cloud/build/validations/router-bundle-sizes.validator.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/router-bundle-sizes.validator.js +0 -24
- package/dist/esm/cloud/build/validations/step-bundle-sizes.validator.d.ts +0 -3
- package/dist/esm/cloud/build/validations/step-bundle-sizes.validator.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/step-bundle-sizes.validator.js +0 -29
- package/dist/esm/cloud/build/validations/step-name-lengths.validator.d.ts +0 -3
- package/dist/esm/cloud/build/validations/step-name-lengths.validator.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/step-name-lengths.validator.js +0 -20
- package/dist/esm/cloud/build/validations/types.d.ts +0 -8
- package/dist/esm/cloud/build/validations/types.d.ts.map +0 -1
- package/dist/esm/cloud/build/validations/types.js +0 -1
- package/dist/esm/cloud/cli/build.d.ts +0 -2
- package/dist/esm/cloud/cli/build.d.ts.map +0 -1
- package/dist/esm/cloud/cli/build.js +0 -17
- package/dist/esm/cloud/cli/deploy.d.ts +0 -2
- package/dist/esm/cloud/cli/deploy.d.ts.map +0 -1
- package/dist/esm/cloud/cli/deploy.js +0 -59
- package/dist/esm/cloud/cli-output-manager.d.ts +0 -37
- package/dist/esm/cloud/cli-output-manager.d.ts.map +0 -1
- package/dist/esm/cloud/cli-output-manager.js +0 -123
- package/dist/esm/cloud/cli.d.ts +0 -2
- package/dist/esm/cloud/cli.d.ts.map +0 -1
- package/dist/esm/cloud/cli.js +0 -2
- package/dist/esm/cloud/config-utils.d.ts +0 -10
- package/dist/esm/cloud/config-utils.d.ts.map +0 -1
- package/dist/esm/cloud/config-utils.js +0 -59
- package/dist/esm/cloud/endpoints.d.ts +0 -3
- package/dist/esm/cloud/endpoints.d.ts.map +0 -1
- package/dist/esm/cloud/endpoints.js +0 -89
- package/dist/esm/cloud/index.d.ts +0 -3
- package/dist/esm/cloud/index.d.ts.map +0 -1
- package/dist/esm/cloud/index.js +0 -2
- package/dist/esm/cloud/new-deployment/build.d.ts +0 -4
- package/dist/esm/cloud/new-deployment/build.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/build.js +0 -54
- package/dist/esm/cloud/new-deployment/cloud-api/create-deployment.d.ts +0 -18
- package/dist/esm/cloud/new-deployment/cloud-api/create-deployment.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/cloud-api/create-deployment.js +0 -11
- package/dist/esm/cloud/new-deployment/cloud-api/endpoints.d.ts +0 -8
- package/dist/esm/cloud/new-deployment/cloud-api/endpoints.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/cloud-api/endpoints.js +0 -7
- package/dist/esm/cloud/new-deployment/cloud-api/index.d.ts +0 -36
- package/dist/esm/cloud/new-deployment/cloud-api/index.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/cloud-api/index.js +0 -8
- package/dist/esm/cloud/new-deployment/cloud-api/start-deployment.d.ts +0 -14
- package/dist/esm/cloud/new-deployment/cloud-api/start-deployment.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/cloud-api/start-deployment.js +0 -6
- package/dist/esm/cloud/new-deployment/cloud-api/upload.d.ts +0 -14
- package/dist/esm/cloud/new-deployment/cloud-api/upload.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/cloud-api/upload.js +0 -6
- package/dist/esm/cloud/new-deployment/constants.d.ts +0 -5
- package/dist/esm/cloud/new-deployment/constants.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/constants.js +0 -5
- package/dist/esm/cloud/new-deployment/deploy.d.ts +0 -14
- package/dist/esm/cloud/new-deployment/deploy.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/deploy.js +0 -45
- package/dist/esm/cloud/new-deployment/listeners/build-printer.d.ts +0 -17
- package/dist/esm/cloud/new-deployment/listeners/build-printer.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/listeners/build-printer.js +0 -100
- package/dist/esm/cloud/new-deployment/listeners/cli-listener.d.ts +0 -35
- package/dist/esm/cloud/new-deployment/listeners/cli-listener.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/listeners/cli-listener.js +0 -90
- package/dist/esm/cloud/new-deployment/listeners/listener.types.d.ts +0 -67
- package/dist/esm/cloud/new-deployment/listeners/listener.types.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/listeners/listener.types.js +0 -1
- package/dist/esm/cloud/new-deployment/listeners/print-deployment-status.d.ts +0 -7
- package/dist/esm/cloud/new-deployment/listeners/print-deployment-status.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/listeners/print-deployment-status.js +0 -85
- package/dist/esm/cloud/new-deployment/listeners/printer.d.ts +0 -17
- package/dist/esm/cloud/new-deployment/listeners/printer.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/listeners/printer.js +0 -91
- package/dist/esm/cloud/new-deployment/listeners/streaming-deployment-listener.d.ts +0 -44
- package/dist/esm/cloud/new-deployment/listeners/streaming-deployment-listener.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/listeners/streaming-deployment-listener.js +0 -274
- package/dist/esm/cloud/new-deployment/streams/deployment-stream.d.ts +0 -47
- package/dist/esm/cloud/new-deployment/streams/deployment-stream.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/streams/deployment-stream.js +0 -103
- package/dist/esm/cloud/new-deployment/upload-artifacts.d.ts +0 -4
- package/dist/esm/cloud/new-deployment/upload-artifacts.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/upload-artifacts.js +0 -21
- package/dist/esm/cloud/new-deployment/utils/load-env-data.d.ts +0 -3
- package/dist/esm/cloud/new-deployment/utils/load-env-data.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/utils/load-env-data.js +0 -41
- package/dist/esm/cloud/new-deployment/utils/pretty-bytes.d.ts +0 -2
- package/dist/esm/cloud/new-deployment/utils/pretty-bytes.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/utils/pretty-bytes.js +0 -15
- package/dist/esm/cloud/new-deployment/utils/upload.d.ts +0 -2
- package/dist/esm/cloud/new-deployment/utils/upload.d.ts.map +0 -1
- package/dist/esm/cloud/new-deployment/utils/upload.js +0 -33
- package/dist/esm/constants.d.ts +0 -3
- package/dist/esm/constants.d.ts.map +0 -1
- package/dist/esm/constants.js +0 -11
- package/dist/esm/create/index.d.ts +0 -11
- package/dist/esm/create/index.d.ts.map +0 -1
- package/dist/esm/create/index.js +0 -208
- package/dist/esm/create/interactive.d.ts +0 -9
- package/dist/esm/create/interactive.d.ts.map +0 -1
- package/dist/esm/create/interactive.js +0 -68
- package/dist/esm/create/pull-rules.d.ts +0 -8
- package/dist/esm/create/pull-rules.d.ts.map +0 -1
- package/dist/esm/create/pull-rules.js +0 -21
- package/dist/esm/create/setup-template.d.ts +0 -3
- package/dist/esm/create/setup-template.d.ts.map +0 -1
- package/dist/esm/create/setup-template.js +0 -11
- package/dist/esm/create/templates/generate.d.ts +0 -5
- package/dist/esm/create/templates/generate.d.ts.map +0 -1
- package/dist/esm/create/templates/generate.js +0 -125
- package/dist/esm/create/templates/generate.ts +0 -139
- package/dist/esm/create/templates/hello/README.md.txt +0 -84
- package/dist/esm/create/templates/hello/motia-workbench.json +0 -16
- package/dist/esm/create/templates/hello/motia.config.ts.txt +0 -10
- package/dist/esm/create/templates/hello/steps/hello/hello-api.step.ts.txt +0 -46
- package/dist/esm/create/templates/hello/steps/hello/process-greeting.step.ts.txt +0 -41
- package/dist/esm/create/templates/hello_js/README.md.txt +0 -84
- package/dist/esm/create/templates/hello_js/motia-workbench.json +0 -16
- package/dist/esm/create/templates/hello_js/motia.config.ts.txt +0 -10
- package/dist/esm/create/templates/hello_js/steps/hello/hello-api.step.js.txt +0 -47
- package/dist/esm/create/templates/hello_js/steps/hello/process-greeting.step.js.txt +0 -42
- package/dist/esm/create/templates/hello_python/README.md.txt +0 -85
- package/dist/esm/create/templates/hello_python/motia-workbench.json +0 -16
- package/dist/esm/create/templates/hello_python/motia.config.ts.txt +0 -10
- package/dist/esm/create/templates/hello_python/requirements.txt +0 -2
- package/dist/esm/create/templates/hello_python/steps/hello/hello_api_step.py.txt +0 -74
- package/dist/esm/create/templates/hello_python/steps/hello/process_greeting_step.py.txt +0 -65
- package/dist/esm/create/templates/index.d.ts +0 -3
- package/dist/esm/create/templates/index.d.ts.map +0 -1
- package/dist/esm/create/templates/index.js +0 -9
- package/dist/esm/create/templates/index.ts +0 -10
- package/dist/esm/create/templates/nodejs/README.md.txt +0 -93
- package/dist/esm/create/templates/nodejs/motia-workbench.json +0 -27
- package/dist/esm/create/templates/nodejs/motia.config.ts.txt +0 -10
- package/dist/esm/create/templates/nodejs/src/services/pet-store.ts.txt +0 -29
- package/dist/esm/create/templates/nodejs/src/services/types.ts.txt +0 -22
- package/dist/esm/create/templates/nodejs/steps/petstore/api.step.ts.txt +0 -48
- package/dist/esm/create/templates/nodejs/steps/petstore/notification.step.ts.txt +0 -35
- package/dist/esm/create/templates/nodejs/steps/petstore/process-food-order.step.ts.txt +0 -46
- package/dist/esm/create/templates/nodejs/steps/petstore/state-audit-cron.step.ts.txt +0 -43
- package/dist/esm/create/templates/nodejs/tutorial/petstore/api.step.ts-features.json.txt +0 -50
- package/dist/esm/create/templates/nodejs/tutorial/petstore/process-food-order.step.ts-features.json.txt +0 -50
- package/dist/esm/create/templates/nodejs/tutorial/petstore/state-audit-cron.step.ts-features.json.txt +0 -20
- package/dist/esm/create/templates/nodejs/tutorial/tutorial.tsx.txt +0 -687
- package/dist/esm/create/templates/plugin/.gitignore.txt +0 -3
- package/dist/esm/create/templates/plugin/README.md.txt +0 -64
- package/dist/esm/create/templates/plugin/package.json.txt +0 -47
- package/dist/esm/create/templates/plugin/postcss.config.js.txt +0 -6
- package/dist/esm/create/templates/plugin/src/components/example-page.tsx.txt +0 -64
- package/dist/esm/create/templates/plugin/src/index.ts.txt +0 -4
- package/dist/esm/create/templates/plugin/src/plugin.ts.txt +0 -17
- package/dist/esm/create/templates/plugin/src/styles.css.txt +0 -3
- package/dist/esm/create/templates/plugin/tsconfig.json.txt +0 -27
- package/dist/esm/create/templates/plugin/vite.config.ts.txt +0 -30
- package/dist/esm/create/templates/python/README.md.txt +0 -94
- package/dist/esm/create/templates/python/motia-workbench.json +0 -27
- package/dist/esm/create/templates/python/motia.config.ts.txt +0 -10
- package/dist/esm/create/templates/python/requirements.txt +0 -2
- package/dist/esm/create/templates/python/src/__init__.py.txt +0 -0
- package/dist/esm/create/templates/python/src/services/__init__.py.txt +0 -0
- package/dist/esm/create/templates/python/src/services/pet_store.py.txt +0 -37
- package/dist/esm/create/templates/python/src/services/types.py.txt +0 -20
- package/dist/esm/create/templates/python/steps/petstore/api_step.py.txt +0 -50
- package/dist/esm/create/templates/python/steps/petstore/notification_step.py.txt +0 -40
- package/dist/esm/create/templates/python/steps/petstore/process_food_order_step.py.txt +0 -48
- package/dist/esm/create/templates/python/steps/petstore/state_audit_cron_step.py.txt +0 -39
- package/dist/esm/create/templates/python/tutorial/petstore/api_step.py-features.json.txt +0 -50
- package/dist/esm/create/templates/python/tutorial/petstore/process_food_order_step.py-features.json.txt +0 -50
- package/dist/esm/create/templates/python/tutorial/petstore/state_audit_cron_step.py-features.json.txt +0 -26
- package/dist/esm/create/templates/python/tutorial/tutorial.tsx.txt +0 -687
- package/dist/esm/create/utils.d.ts +0 -3
- package/dist/esm/create/utils.d.ts.map +0 -1
- package/dist/esm/create/utils.js +0 -13
- package/dist/esm/create-step/getAnswers.d.ts +0 -3
- package/dist/esm/create-step/getAnswers.d.ts.map +0 -1
- package/dist/esm/create-step/getAnswers.js +0 -163
- package/dist/esm/create-step/index.d.ts +0 -4
- package/dist/esm/create-step/index.d.ts.map +0 -1
- package/dist/esm/create-step/index.js +0 -41
- package/dist/esm/create-step/teamplateUtils.d.ts +0 -6
- package/dist/esm/create-step/teamplateUtils.d.ts.map +0 -1
- package/dist/esm/create-step/teamplateUtils.js +0 -44
- package/dist/esm/create-step/templates/api/template.javascript.txt +0 -25
- package/dist/esm/create-step/templates/api/template.python.txt +0 -29
- package/dist/esm/create-step/templates/api/template.ruby.txt +0 -22
- package/dist/esm/create-step/templates/api/template.typescript.txt +0 -31
- package/dist/esm/create-step/templates/cron/template.javascript.txt +0 -20
- package/dist/esm/create-step/templates/cron/template.python.txt +0 -19
- package/dist/esm/create-step/templates/cron/template.ruby.txt +0 -22
- package/dist/esm/create-step/templates/cron/template.type.txt +0 -22
- package/dist/esm/create-step/templates/cron/template.typescript.txt +0 -22
- package/dist/esm/create-step/templates/event/template.javascript.txt +0 -27
- package/dist/esm/create-step/templates/event/template.python.txt +0 -29
- package/dist/esm/create-step/templates/event/template.ruby.txt +0 -22
- package/dist/esm/create-step/templates/event/template.typescript.txt +0 -26
- package/dist/esm/create-step/templates/noop/template.javascript.txt +0 -8
- package/dist/esm/create-step/templates/noop/template.python.txt +0 -8
- package/dist/esm/create-step/templates/noop/template.ruby.txt +0 -10
- package/dist/esm/create-step/templates/noop/template.typescript.txt +0 -10
- package/dist/esm/create-step/templates/ui/api.step.txt +0 -20
- package/dist/esm/create-step/templates/ui/cron.step.txt +0 -15
- package/dist/esm/create-step/templates/ui/event.step.txt +0 -15
- package/dist/esm/create-step/templates/ui/noop.step.txt +0 -15
- package/dist/esm/create-step/templates/ui/overrides.d.ts +0 -6
- package/dist/esm/create-step/templates/ui/overrides.d.ts.map +0 -1
- package/dist/esm/create-step/templates/ui/overrides.js +0 -20
- package/dist/esm/create-step/templates/ui/overrides.ts +0 -24
- package/dist/esm/create-step/types.d.ts +0 -22
- package/dist/esm/create-step/types.d.ts.map +0 -1
- package/dist/esm/create-step/types.js +0 -3
- package/dist/esm/create-step/utils.d.ts +0 -3
- package/dist/esm/create-step/utils.d.ts.map +0 -1
- package/dist/esm/create-step/utils.js +0 -9
- package/dist/esm/cursor-rules/dot-files/.claude/agents/motia-developer.md +0 -95
- package/dist/esm/cursor-rules/dot-files/.cursor/architecture/architecture.mdc +0 -96
- package/dist/esm/cursor-rules/dot-files/.cursor/architecture/error-handling.mdc +0 -122
- package/dist/esm/cursor-rules/dot-files/.cursor/index.mdc +0 -34
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/motia/api-steps.mdc +0 -441
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/motia/cron-steps.mdc +0 -171
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/motia/event-steps.mdc +0 -234
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/motia/middlewares.mdc +0 -217
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/motia/motia-config.mdc +0 -359
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/motia/realtime-streaming.mdc +0 -401
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/motia/state-management.mdc +0 -136
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/motia/ui-steps.mdc +0 -76
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/motia/virtual-steps.mdc +0 -251
- package/dist/esm/cursor-rules/dot-files/AGENTS.md +0 -215
- package/dist/esm/cursor-rules/dot-files/CLAUDE.md +0 -58
- package/dist/esm/cursor-rules/dot-files/opencode.json +0 -18
- package/dist/esm/dev-watchers.d.ts +0 -5
- package/dist/esm/dev-watchers.d.ts.map +0 -1
- package/dist/esm/dev-watchers.js +0 -94
- package/dist/esm/dev.d.ts +0 -2
- package/dist/esm/dev.d.ts.map +0 -1
- package/dist/esm/dev.js +0 -124
- package/dist/esm/docker/build.d.ts +0 -2
- package/dist/esm/docker/build.d.ts.map +0 -1
- package/dist/esm/docker/build.js +0 -22
- package/dist/esm/docker/run.d.ts +0 -2
- package/dist/esm/docker/run.d.ts.map +0 -1
- package/dist/esm/docker/run.js +0 -46
- package/dist/esm/docker/setup.d.ts +0 -2
- package/dist/esm/docker/setup.d.ts.map +0 -1
- package/dist/esm/docker/setup.js +0 -86
- package/dist/esm/docker/templates/.dockerignore.sample +0 -37
- package/dist/esm/docker/templates/MotiaDockerSample +0 -20
- package/dist/esm/docker/utils/build-docker-image.d.ts +0 -2
- package/dist/esm/docker/utils/build-docker-image.d.ts.map +0 -1
- package/dist/esm/docker/utils/build-docker-image.js +0 -15
- package/dist/esm/docker/utils/print-intro.d.ts +0 -2
- package/dist/esm/docker/utils/print-intro.d.ts.map +0 -1
- package/dist/esm/docker/utils/print-intro.js +0 -17
- package/dist/esm/docker/utils/promised-exec.d.ts +0 -2
- package/dist/esm/docker/utils/promised-exec.d.ts.map +0 -1
- package/dist/esm/docker/utils/promised-exec.js +0 -24
- package/dist/esm/generate-locked-data.d.ts +0 -18
- package/dist/esm/generate-locked-data.d.ts.map +0 -1
- package/dist/esm/generate-locked-data.js +0 -123
- package/dist/esm/generate-types.d.ts +0 -2
- package/dist/esm/generate-types.d.ts.map +0 -1
- package/dist/esm/generate-types.js +0 -24
- package/dist/esm/index.d.ts +0 -3
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/install.d.ts +0 -11
- package/dist/esm/install.d.ts.map +0 -1
- package/dist/esm/install.js +0 -60
- package/dist/esm/load-motia-config.d.ts +0 -4
- package/dist/esm/load-motia-config.d.ts.map +0 -1
- package/dist/esm/load-motia-config.js +0 -15
- package/dist/esm/openapi/generate.d.ts +0 -3
- package/dist/esm/openapi/generate.d.ts.map +0 -1
- package/dist/esm/openapi/generate.js +0 -89
- package/dist/esm/openapi/process-schema.d.ts +0 -3
- package/dist/esm/openapi/process-schema.d.ts.map +0 -1
- package/dist/esm/openapi/process-schema.js +0 -51
- package/dist/esm/openapi/utils.d.ts +0 -3
- package/dist/esm/openapi/utils.d.ts.map +0 -1
- package/dist/esm/openapi/utils.js +0 -4
- package/dist/esm/plugins/collect-plugin-steps.d.ts +0 -6
- package/dist/esm/plugins/collect-plugin-steps.d.ts.map +0 -1
- package/dist/esm/plugins/collect-plugin-steps.js +0 -37
- package/dist/esm/plugins/create-plugin-context.d.ts +0 -3
- package/dist/esm/plugins/create-plugin-context.d.ts.map +0 -1
- package/dist/esm/plugins/create-plugin-context.js +0 -30
- package/dist/esm/plugins/index.d.ts +0 -2
- package/dist/esm/plugins/index.d.ts.map +0 -1
- package/dist/esm/plugins/index.js +0 -1
- package/dist/esm/plugins/install-plugin-dependencies.d.ts +0 -3
- package/dist/esm/plugins/install-plugin-dependencies.d.ts.map +0 -1
- package/dist/esm/plugins/install-plugin-dependencies.js +0 -54
- package/dist/esm/plugins/load-config.d.ts +0 -3
- package/dist/esm/plugins/load-config.d.ts.map +0 -1
- package/dist/esm/plugins/load-config.js +0 -17
- package/dist/esm/plugins/plugin-dependencies.d.ts +0 -2
- package/dist/esm/plugins/plugin-dependencies.d.ts.map +0 -1
- package/dist/esm/plugins/plugin-dependencies.js +0 -8
- package/dist/esm/plugins/process-plugins.d.ts +0 -3
- package/dist/esm/plugins/process-plugins.d.ts.map +0 -1
- package/dist/esm/plugins/process-plugins.js +0 -16
- package/dist/esm/plugins/process-steps.d.ts +0 -3
- package/dist/esm/plugins/process-steps.d.ts.map +0 -1
- package/dist/esm/plugins/process-steps.js +0 -36
- package/dist/esm/redis-memory-manager.d.ts +0 -8
- package/dist/esm/redis-memory-manager.d.ts.map +0 -1
- package/dist/esm/redis-memory-manager.js +0 -121
- package/dist/esm/start.d.ts +0 -2
- package/dist/esm/start.d.ts.map +0 -1
- package/dist/esm/start.js +0 -74
- package/dist/esm/utils/activate-python-env.d.ts +0 -9
- package/dist/esm/utils/activate-python-env.d.ts.map +0 -1
- package/dist/esm/utils/activate-python-env.js +0 -40
- package/dist/esm/utils/amplitude/enrichment-plugin.d.ts +0 -8
- package/dist/esm/utils/amplitude/enrichment-plugin.d.ts.map +0 -1
- package/dist/esm/utils/amplitude/enrichment-plugin.js +0 -25
- package/dist/esm/utils/analytics.d.ts +0 -7
- package/dist/esm/utils/analytics.d.ts.map +0 -1
- package/dist/esm/utils/analytics.js +0 -84
- package/dist/esm/utils/build-tools-error.d.ts +0 -8
- package/dist/esm/utils/build-tools-error.d.ts.map +0 -1
- package/dist/esm/utils/build-tools-error.js +0 -46
- package/dist/esm/utils/ensure-uv.d.ts +0 -2
- package/dist/esm/utils/ensure-uv.d.ts.map +0 -1
- package/dist/esm/utils/ensure-uv.js +0 -77
- package/dist/esm/utils/errors/build.error.d.ts +0 -11
- package/dist/esm/utils/errors/build.error.d.ts.map +0 -1
- package/dist/esm/utils/errors/build.error.js +0 -17
- package/dist/esm/utils/errors/compilation.error.d.ts +0 -5
- package/dist/esm/utils/errors/compilation.error.d.ts.map +0 -1
- package/dist/esm/utils/errors/compilation.error.js +0 -7
- package/dist/esm/utils/errors/locked-data-generation.error.d.ts +0 -5
- package/dist/esm/utils/errors/locked-data-generation.error.d.ts.map +0 -1
- package/dist/esm/utils/errors/locked-data-generation.error.js +0 -7
- package/dist/esm/utils/execute-command.d.ts +0 -6
- package/dist/esm/utils/execute-command.d.ts.map +0 -1
- package/dist/esm/utils/execute-command.js +0 -22
- package/dist/esm/utils/get-package-manager.d.ts +0 -2
- package/dist/esm/utils/get-package-manager.d.ts.map +0 -1
- package/dist/esm/utils/get-package-manager.js +0 -15
- package/dist/esm/utils/install-lambda-python-packages.d.ts +0 -7
- package/dist/esm/utils/install-lambda-python-packages.d.ts.map +0 -1
- package/dist/esm/utils/install-lambda-python-packages.js +0 -28
- package/dist/esm/utils/internal-logger.d.ts +0 -6
- package/dist/esm/utils/internal-logger.d.ts.map +0 -1
- package/dist/esm/utils/internal-logger.js +0 -24
- package/dist/esm/utils/python-version-utils.d.ts +0 -4
- package/dist/esm/utils/python-version-utils.d.ts.map +0 -1
- package/dist/esm/utils/python-version-utils.js +0 -66
- package/dist/esm/version.d.ts +0 -2
- package/dist/esm/version.d.ts.map +0 -1
- package/dist/esm/version.js +0 -5
- package/dist/esm/watcher.d.ts +0 -42
- package/dist/esm/watcher.d.ts.map +0 -1
- package/dist/esm/watcher.js +0 -148
- package/dist/esm/workbench.d.ts +0 -2
- package/dist/esm/workbench.d.ts.map +0 -1
- package/dist/esm/workbench.js +0 -1
- package/dist/types/__tests__/openapi/generate.test.d.ts +0 -2
- package/dist/types/__tests__/openapi/generate.test.d.ts.map +0 -1
- package/dist/types/__tests__/redis-memory-manager.test.d.ts +0 -2
- package/dist/types/__tests__/redis-memory-manager.test.d.ts.map +0 -1
- package/dist/types/__tests__/test-helpers/redis-test-helper.d.ts +0 -52
- package/dist/types/__tests__/test-helpers/redis-test-helper.d.ts.map +0 -1
- package/dist/types/__tests__/test-helpers/redis-test-helper.example.test.d.ts +0 -2
- package/dist/types/__tests__/test-helpers/redis-test-helper.example.test.d.ts.map +0 -1
- package/dist/types/cli.d.ts +0 -3
- package/dist/types/cli.d.ts.map +0 -1
- package/dist/types/cloud/build/__tests__/infrastructure-serialization.test.d.ts +0 -2
- package/dist/types/cloud/build/__tests__/infrastructure-serialization.test.d.ts.map +0 -1
- package/dist/types/cloud/build/__tests__/infrastructure-validation.test.d.ts +0 -2
- package/dist/types/cloud/build/__tests__/infrastructure-validation.test.d.ts.map +0 -1
- package/dist/types/cloud/build/build-validation.d.ts +0 -6
- package/dist/types/cloud/build/build-validation.d.ts.map +0 -1
- package/dist/types/cloud/build/builder.d.ts +0 -58
- package/dist/types/cloud/build/builder.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/archiver.d.ts +0 -16
- package/dist/types/cloud/build/builders/archiver.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/include-static-files.d.ts +0 -5
- package/dist/types/cloud/build/builders/include-static-files.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/node/index.d.ts +0 -12
- package/dist/types/cloud/build/builders/node/index.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/node/router-template.d.ts +0 -10
- package/dist/types/cloud/build/builders/node/router-template.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/index.d.ts +0 -16
- package/dist/types/cloud/build/builders/python/index.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/__tests__/convert-import-path.test.d.ts +0 -2
- package/dist/types/cloud/build/builders/python/python-data/__tests__/convert-import-path.test.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/__tests__/extract-python-data.test.d.ts +0 -2
- package/dist/types/cloud/build/builders/python/python-data/__tests__/extract-python-data.test.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/__tests__/get-dependencies-from-file.test.d.ts +0 -2
- package/dist/types/cloud/build/builders/python/python-data/__tests__/get-dependencies-from-file.test.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/__tests__/read-requirements.test.d.ts +0 -2
- package/dist/types/cloud/build/builders/python/python-data/__tests__/read-requirements.test.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/__tests__/resolve-dep-name.test.d.ts +0 -2
- package/dist/types/cloud/build/builders/python/python-data/__tests__/resolve-dep-name.test.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/constants.d.ts +0 -2
- package/dist/types/cloud/build/builders/python/python-data/constants.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/convert-import-path.d.ts +0 -2
- package/dist/types/cloud/build/builders/python/python-data/convert-import-path.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/extract-python-data.d.ts +0 -8
- package/dist/types/cloud/build/builders/python/python-data/extract-python-data.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/get-dependencies-from-file.d.ts +0 -7
- package/dist/types/cloud/build/builders/python/python-data/get-dependencies-from-file.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/python-errors.d.ts +0 -14
- package/dist/types/cloud/build/builders/python/python-data/python-errors.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/read-requirements.d.ts +0 -14
- package/dist/types/cloud/build/builders/python/python-data/read-requirements.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/resolve-dep-names.d.ts +0 -7
- package/dist/types/cloud/build/builders/python/python-data/resolve-dep-names.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/python-data/traverse-tree.d.ts +0 -7
- package/dist/types/cloud/build/builders/python/python-data/traverse-tree.d.ts.map +0 -1
- package/dist/types/cloud/build/builders/python/uv-packager.d.ts +0 -13
- package/dist/types/cloud/build/builders/python/uv-packager.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/__tests__/api-endpoints.validator.test.d.ts +0 -2
- package/dist/types/cloud/build/validations/__tests__/api-endpoints.validator.test.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/__tests__/build-validation.test.d.ts +0 -2
- package/dist/types/cloud/build/validations/__tests__/build-validation.test.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/__tests__/cron-expressions.validator.test.d.ts +0 -2
- package/dist/types/cloud/build/validations/__tests__/cron-expressions.validator.test.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/__tests__/duplicate-step-names.validator.test.d.ts +0 -2
- package/dist/types/cloud/build/validations/__tests__/duplicate-step-names.validator.test.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/__tests__/router-bundle-sizes.validator.test.d.ts +0 -2
- package/dist/types/cloud/build/validations/__tests__/router-bundle-sizes.validator.test.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/__tests__/step-bundle-sizes.validator.test.d.ts +0 -2
- package/dist/types/cloud/build/validations/__tests__/step-bundle-sizes.validator.test.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/__tests__/step-name-lengths.validator.test.d.ts +0 -2
- package/dist/types/cloud/build/validations/__tests__/step-name-lengths.validator.test.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/api-endpoints.validator.d.ts +0 -3
- package/dist/types/cloud/build/validations/api-endpoints.validator.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/constants.d.ts +0 -7
- package/dist/types/cloud/build/validations/constants.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/cron-expressions.validator.d.ts +0 -3
- package/dist/types/cloud/build/validations/cron-expressions.validator.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/duplicate-step-names.validator.d.ts +0 -3
- package/dist/types/cloud/build/validations/duplicate-step-names.validator.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/infrastructure-configs.validator.d.ts +0 -3
- package/dist/types/cloud/build/validations/infrastructure-configs.validator.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/router-bundle-sizes.validator.d.ts +0 -3
- package/dist/types/cloud/build/validations/router-bundle-sizes.validator.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/step-bundle-sizes.validator.d.ts +0 -3
- package/dist/types/cloud/build/validations/step-bundle-sizes.validator.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/step-name-lengths.validator.d.ts +0 -3
- package/dist/types/cloud/build/validations/step-name-lengths.validator.d.ts.map +0 -1
- package/dist/types/cloud/build/validations/types.d.ts +0 -8
- package/dist/types/cloud/build/validations/types.d.ts.map +0 -1
- package/dist/types/cloud/cli/build.d.ts +0 -2
- package/dist/types/cloud/cli/build.d.ts.map +0 -1
- package/dist/types/cloud/cli/deploy.d.ts +0 -2
- package/dist/types/cloud/cli/deploy.d.ts.map +0 -1
- package/dist/types/cloud/cli-output-manager.d.ts +0 -37
- package/dist/types/cloud/cli-output-manager.d.ts.map +0 -1
- package/dist/types/cloud/cli.d.ts +0 -2
- package/dist/types/cloud/cli.d.ts.map +0 -1
- package/dist/types/cloud/config-utils.d.ts +0 -10
- package/dist/types/cloud/config-utils.d.ts.map +0 -1
- package/dist/types/cloud/endpoints.d.ts +0 -3
- package/dist/types/cloud/endpoints.d.ts.map +0 -1
- package/dist/types/cloud/index.d.ts +0 -3
- package/dist/types/cloud/index.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/build.d.ts +0 -4
- package/dist/types/cloud/new-deployment/build.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/cloud-api/create-deployment.d.ts +0 -18
- package/dist/types/cloud/new-deployment/cloud-api/create-deployment.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/cloud-api/endpoints.d.ts +0 -8
- package/dist/types/cloud/new-deployment/cloud-api/endpoints.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/cloud-api/index.d.ts +0 -36
- package/dist/types/cloud/new-deployment/cloud-api/index.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/cloud-api/start-deployment.d.ts +0 -14
- package/dist/types/cloud/new-deployment/cloud-api/start-deployment.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/cloud-api/upload.d.ts +0 -14
- package/dist/types/cloud/new-deployment/cloud-api/upload.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/constants.d.ts +0 -5
- package/dist/types/cloud/new-deployment/constants.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/deploy.d.ts +0 -14
- package/dist/types/cloud/new-deployment/deploy.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/listeners/build-printer.d.ts +0 -17
- package/dist/types/cloud/new-deployment/listeners/build-printer.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/listeners/cli-listener.d.ts +0 -35
- package/dist/types/cloud/new-deployment/listeners/cli-listener.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/listeners/listener.types.d.ts +0 -67
- package/dist/types/cloud/new-deployment/listeners/listener.types.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/listeners/print-deployment-status.d.ts +0 -7
- package/dist/types/cloud/new-deployment/listeners/print-deployment-status.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/listeners/printer.d.ts +0 -17
- package/dist/types/cloud/new-deployment/listeners/printer.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/listeners/streaming-deployment-listener.d.ts +0 -44
- package/dist/types/cloud/new-deployment/listeners/streaming-deployment-listener.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/streams/deployment-stream.d.ts +0 -47
- package/dist/types/cloud/new-deployment/streams/deployment-stream.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/upload-artifacts.d.ts +0 -4
- package/dist/types/cloud/new-deployment/upload-artifacts.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/utils/load-env-data.d.ts +0 -3
- package/dist/types/cloud/new-deployment/utils/load-env-data.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/utils/pretty-bytes.d.ts +0 -2
- package/dist/types/cloud/new-deployment/utils/pretty-bytes.d.ts.map +0 -1
- package/dist/types/cloud/new-deployment/utils/upload.d.ts +0 -2
- package/dist/types/cloud/new-deployment/utils/upload.d.ts.map +0 -1
- package/dist/types/constants.d.ts +0 -3
- package/dist/types/constants.d.ts.map +0 -1
- package/dist/types/create/index.d.ts +0 -11
- package/dist/types/create/index.d.ts.map +0 -1
- package/dist/types/create/interactive.d.ts +0 -9
- package/dist/types/create/interactive.d.ts.map +0 -1
- package/dist/types/create/pull-rules.d.ts +0 -8
- package/dist/types/create/pull-rules.d.ts.map +0 -1
- package/dist/types/create/setup-template.d.ts +0 -3
- package/dist/types/create/setup-template.d.ts.map +0 -1
- package/dist/types/create/templates/generate.d.ts +0 -5
- package/dist/types/create/templates/generate.d.ts.map +0 -1
- package/dist/types/create/templates/index.d.ts +0 -3
- package/dist/types/create/templates/index.d.ts.map +0 -1
- package/dist/types/create/utils.d.ts +0 -3
- package/dist/types/create/utils.d.ts.map +0 -1
- package/dist/types/create-step/getAnswers.d.ts +0 -3
- package/dist/types/create-step/getAnswers.d.ts.map +0 -1
- package/dist/types/create-step/index.d.ts +0 -4
- package/dist/types/create-step/index.d.ts.map +0 -1
- package/dist/types/create-step/teamplateUtils.d.ts +0 -6
- package/dist/types/create-step/teamplateUtils.d.ts.map +0 -1
- package/dist/types/create-step/templates/ui/overrides.d.ts +0 -6
- package/dist/types/create-step/templates/ui/overrides.d.ts.map +0 -1
- package/dist/types/create-step/types.d.ts +0 -22
- package/dist/types/create-step/types.d.ts.map +0 -1
- package/dist/types/create-step/utils.d.ts +0 -3
- package/dist/types/create-step/utils.d.ts.map +0 -1
- package/dist/types/dev-watchers.d.ts +0 -5
- package/dist/types/dev-watchers.d.ts.map +0 -1
- package/dist/types/dev.d.ts +0 -2
- package/dist/types/dev.d.ts.map +0 -1
- package/dist/types/docker/build.d.ts +0 -2
- package/dist/types/docker/build.d.ts.map +0 -1
- package/dist/types/docker/run.d.ts +0 -2
- package/dist/types/docker/run.d.ts.map +0 -1
- package/dist/types/docker/setup.d.ts +0 -2
- package/dist/types/docker/setup.d.ts.map +0 -1
- package/dist/types/docker/utils/build-docker-image.d.ts +0 -2
- package/dist/types/docker/utils/build-docker-image.d.ts.map +0 -1
- package/dist/types/docker/utils/print-intro.d.ts +0 -2
- package/dist/types/docker/utils/print-intro.d.ts.map +0 -1
- package/dist/types/docker/utils/promised-exec.d.ts +0 -2
- package/dist/types/docker/utils/promised-exec.d.ts.map +0 -1
- package/dist/types/generate-locked-data.d.ts +0 -18
- package/dist/types/generate-locked-data.d.ts.map +0 -1
- package/dist/types/generate-types.d.ts +0 -2
- package/dist/types/generate-types.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -3
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/install.d.ts +0 -11
- package/dist/types/install.d.ts.map +0 -1
- package/dist/types/load-motia-config.d.ts +0 -4
- package/dist/types/load-motia-config.d.ts.map +0 -1
- package/dist/types/openapi/generate.d.ts +0 -3
- package/dist/types/openapi/generate.d.ts.map +0 -1
- package/dist/types/openapi/process-schema.d.ts +0 -3
- package/dist/types/openapi/process-schema.d.ts.map +0 -1
- package/dist/types/openapi/utils.d.ts +0 -3
- package/dist/types/openapi/utils.d.ts.map +0 -1
- package/dist/types/plugins/collect-plugin-steps.d.ts +0 -6
- package/dist/types/plugins/collect-plugin-steps.d.ts.map +0 -1
- package/dist/types/plugins/create-plugin-context.d.ts +0 -3
- package/dist/types/plugins/create-plugin-context.d.ts.map +0 -1
- package/dist/types/plugins/index.d.ts +0 -2
- package/dist/types/plugins/index.d.ts.map +0 -1
- package/dist/types/plugins/install-plugin-dependencies.d.ts +0 -3
- package/dist/types/plugins/install-plugin-dependencies.d.ts.map +0 -1
- package/dist/types/plugins/load-config.d.ts +0 -3
- package/dist/types/plugins/load-config.d.ts.map +0 -1
- package/dist/types/plugins/plugin-dependencies.d.ts +0 -2
- package/dist/types/plugins/plugin-dependencies.d.ts.map +0 -1
- package/dist/types/plugins/process-plugins.d.ts +0 -3
- package/dist/types/plugins/process-plugins.d.ts.map +0 -1
- package/dist/types/plugins/process-steps.d.ts +0 -3
- package/dist/types/plugins/process-steps.d.ts.map +0 -1
- package/dist/types/redis-memory-manager.d.ts +0 -8
- package/dist/types/redis-memory-manager.d.ts.map +0 -1
- package/dist/types/start.d.ts +0 -2
- package/dist/types/start.d.ts.map +0 -1
- package/dist/types/utils/activate-python-env.d.ts +0 -9
- package/dist/types/utils/activate-python-env.d.ts.map +0 -1
- package/dist/types/utils/amplitude/enrichment-plugin.d.ts +0 -8
- package/dist/types/utils/amplitude/enrichment-plugin.d.ts.map +0 -1
- package/dist/types/utils/analytics.d.ts +0 -7
- package/dist/types/utils/analytics.d.ts.map +0 -1
- package/dist/types/utils/build-tools-error.d.ts +0 -8
- package/dist/types/utils/build-tools-error.d.ts.map +0 -1
- package/dist/types/utils/ensure-uv.d.ts +0 -2
- package/dist/types/utils/ensure-uv.d.ts.map +0 -1
- package/dist/types/utils/errors/build.error.d.ts +0 -11
- package/dist/types/utils/errors/build.error.d.ts.map +0 -1
- package/dist/types/utils/errors/compilation.error.d.ts +0 -5
- package/dist/types/utils/errors/compilation.error.d.ts.map +0 -1
- package/dist/types/utils/errors/locked-data-generation.error.d.ts +0 -5
- package/dist/types/utils/errors/locked-data-generation.error.d.ts.map +0 -1
- package/dist/types/utils/execute-command.d.ts +0 -6
- package/dist/types/utils/execute-command.d.ts.map +0 -1
- package/dist/types/utils/get-package-manager.d.ts +0 -2
- package/dist/types/utils/get-package-manager.d.ts.map +0 -1
- package/dist/types/utils/install-lambda-python-packages.d.ts +0 -7
- package/dist/types/utils/install-lambda-python-packages.d.ts.map +0 -1
- package/dist/types/utils/internal-logger.d.ts +0 -6
- package/dist/types/utils/internal-logger.d.ts.map +0 -1
- package/dist/types/utils/python-version-utils.d.ts +0 -4
- package/dist/types/utils/python-version-utils.d.ts.map +0 -1
- package/dist/types/version.d.ts +0 -2
- package/dist/types/version.d.ts.map +0 -1
- package/dist/types/watcher.d.ts +0 -42
- package/dist/types/watcher.d.ts.map +0 -1
- package/dist/types/workbench.d.ts +0 -2
- package/dist/types/workbench.d.ts.map +0 -1
- /package/dist/{cjs/cloud → cloud}/build/builders/node/router-template.ts +0 -0
- /package/dist/{cjs/cloud → cloud}/build/builders/python/router_template.py +0 -0
- /package/dist/{cjs/create → create}/templates/hello/README.md.txt +0 -0
- /package/dist/{cjs/create → create}/templates/hello/motia-workbench.json +0 -0
- /package/dist/{cjs/create → create}/templates/hello/steps/hello/hello-api.step.ts.txt +0 -0
- /package/dist/{cjs/create → create}/templates/hello/steps/hello/process-greeting.step.ts.txt +0 -0
- /package/dist/{cjs/create → create}/templates/hello_js/README.md.txt +0 -0
- /package/dist/{cjs/create → create}/templates/hello_js/motia-workbench.json +0 -0
- /package/dist/{cjs/create → create}/templates/hello_js/steps/hello/hello-api.step.js.txt +0 -0
- /package/dist/{cjs/create → create}/templates/hello_js/steps/hello/process-greeting.step.js.txt +0 -0
- /package/dist/{cjs/create → create}/templates/hello_python/README.md.txt +0 -0
- /package/dist/{cjs/create → create}/templates/hello_python/motia-workbench.json +0 -0
- /package/dist/{cjs/create → create}/templates/hello_python/requirements.txt +0 -0
- /package/dist/{cjs/create → create}/templates/hello_python/steps/hello/hello_api_step.py.txt +0 -0
- /package/dist/{cjs/create → create}/templates/hello_python/steps/hello/process_greeting_step.py.txt +0 -0
- /package/dist/{cjs/create → create}/templates/index.ts +0 -0
- /package/dist/{cjs/create → create}/templates/nodejs/README.md.txt +0 -0
- /package/dist/{cjs/create → create}/templates/nodejs/motia-workbench.json +0 -0
- /package/dist/{cjs/create → create}/templates/nodejs/src/services/pet-store.ts.txt +0 -0
- /package/dist/{cjs/create → create}/templates/nodejs/src/services/types.ts.txt +0 -0
- /package/dist/{cjs/create → create}/templates/nodejs/steps/petstore/api.step.ts.txt +0 -0
- /package/dist/{cjs/create → create}/templates/nodejs/steps/petstore/process-food-order.step.ts.txt +0 -0
- /package/dist/{cjs/create → create}/templates/nodejs/steps/petstore/state-audit-cron.step.ts.txt +0 -0
- /package/dist/{cjs/create → create}/templates/nodejs/tutorial/petstore/api.step.ts-features.json.txt +0 -0
- /package/dist/{cjs/create → create}/templates/nodejs/tutorial/petstore/process-food-order.step.ts-features.json.txt +0 -0
- /package/dist/{cjs/create → create}/templates/nodejs/tutorial/petstore/state-audit-cron.step.ts-features.json.txt +0 -0
- /package/dist/{cjs/create → create}/templates/nodejs/tutorial/tutorial.tsx.txt +0 -0
- /package/dist/{cjs/create → create}/templates/plugin/.gitignore.txt +0 -0
- /package/dist/{cjs/create → create}/templates/plugin/README.md.txt +0 -0
- /package/dist/{cjs/create → create}/templates/plugin/package.json.txt +0 -0
- /package/dist/{cjs/create → create}/templates/plugin/postcss.config.js.txt +0 -0
- /package/dist/{cjs/create → create}/templates/plugin/src/components/example-page.tsx.txt +0 -0
- /package/dist/{cjs/create → create}/templates/plugin/src/index.ts.txt +0 -0
- /package/dist/{cjs/create → create}/templates/plugin/src/plugin.ts.txt +0 -0
- /package/dist/{cjs/create → create}/templates/plugin/src/styles.css.txt +0 -0
- /package/dist/{cjs/create → create}/templates/plugin/tsconfig.json.txt +0 -0
- /package/dist/{cjs/create → create}/templates/plugin/vite.config.ts.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/README.md.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/motia-workbench.json +0 -0
- /package/dist/{cjs/create → create}/templates/python/requirements.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/src/__init__.py.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/src/services/__init__.py.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/src/services/pet_store.py.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/src/services/types.py.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/steps/petstore/api_step.py.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/steps/petstore/notification_step.py.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/steps/petstore/process_food_order_step.py.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/steps/petstore/state_audit_cron_step.py.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/tutorial/petstore/api_step.py-features.json.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/tutorial/petstore/process_food_order_step.py-features.json.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/tutorial/petstore/state_audit_cron_step.py-features.json.txt +0 -0
- /package/dist/{cjs/create → create}/templates/python/tutorial/tutorial.tsx.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/api/template.javascript.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/api/template.python.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/api/template.ruby.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/api/template.typescript.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/cron/template.javascript.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/cron/template.python.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/cron/template.ruby.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/cron/template.type.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/cron/template.typescript.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/event/template.javascript.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/event/template.python.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/event/template.ruby.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/event/template.typescript.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/noop/template.javascript.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/noop/template.python.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/noop/template.ruby.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/noop/template.typescript.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/ui/api.step.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/ui/cron.step.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/ui/event.step.txt +0 -0
- /package/dist/{cjs/create-step → create-step}/templates/ui/noop.step.txt +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.claude/agents/motia-developer.md +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.cursor/architecture/architecture.mdc +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.cursor/architecture/error-handling.mdc +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.cursor/index.mdc +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.cursor/rules/motia/api-steps.mdc +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.cursor/rules/motia/cron-steps.mdc +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.cursor/rules/motia/event-steps.mdc +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.cursor/rules/motia/middlewares.mdc +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.cursor/rules/motia/motia-config.mdc +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.cursor/rules/motia/realtime-streaming.mdc +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.cursor/rules/motia/state-management.mdc +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.cursor/rules/motia/ui-steps.mdc +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/.cursor/rules/motia/virtual-steps.mdc +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/AGENTS.md +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/CLAUDE.md +0 -0
- /package/dist/{cjs/cursor-rules → cursor-rules}/dot-files/opencode.json +0 -0
- /package/dist/{cjs/docker → docker}/templates/.dockerignore.sample +0 -0
- /package/dist/{cjs/docker → docker}/templates/MotiaDockerSample +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-locked-data.mjs","names":["invalidSteps: Step[]"],"sources":["../src/generate-locked-data.ts"],"sourcesContent":["import {\n getStepConfig,\n getStreamConfig,\n type JsonSchema,\n LockedData,\n MemoryStreamAdapterManager,\n NoPrinter,\n Printer,\n type Step,\n type StreamAdapterManager,\n type StreamAuthConfig,\n} from '@motiadev/core'\nimport { randomUUID } from 'crypto'\nimport { existsSync } from 'fs'\nimport { globSync } from 'glob'\nimport path from 'path'\nimport pc from 'picocolors'\nimport type { RedisClientType } from 'redis'\nimport { activatePythonVenv } from './utils/activate-python-env'\nimport { CompilationError } from './utils/errors/compilation.error'\nimport { LockedDataGenerationError } from './utils/errors/locked-data-generation.error'\n\nconst version = `${randomUUID()}:${Math.floor(Date.now() / 1000)}`\n\nconst getStepFilesFromDir = (dir: string): string[] => {\n if (!existsSync(dir)) {\n return []\n }\n return [\n ...globSync('**/*.step.{ts,js,rb}', { absolute: true, cwd: dir }),\n ...globSync('**/*_step.{ts,js,py,rb}', { absolute: true, cwd: dir }),\n ]\n}\n\nexport const getStepFiles = (projectDir: string): string[] => {\n const stepsDir = path.join(projectDir, 'steps')\n const srcDir = path.join(projectDir, 'src')\n return [...getStepFilesFromDir(stepsDir), ...getStepFilesFromDir(srcDir)]\n}\n\nconst getStreamFilesFromDir = (dir: string): string[] => {\n if (!existsSync(dir)) {\n return []\n }\n return [\n ...globSync('**/*.stream.{ts,js,rb}', { absolute: true, cwd: dir }),\n ...globSync('**/*_stream.{ts,js,py,rb}', { absolute: true, cwd: dir }),\n ]\n}\n\nexport const getStreamFiles = (projectDir: string): string[] => {\n const stepsDir = path.join(projectDir, 'steps')\n const srcDir = path.join(projectDir, 'src')\n return [...getStreamFilesFromDir(stepsDir), ...getStreamFilesFromDir(srcDir)]\n}\n\n// Helper function to recursively collect flow data\nexport const collectFlows = async (projectDir: string, lockedData: LockedData): Promise<Step[]> => {\n const invalidSteps: Step[] = []\n const stepFiles = getStepFiles(projectDir)\n const streamFiles = getStreamFiles(projectDir)\n const stepsDir = path.join(projectDir, 'steps')\n const srcDir = path.join(projectDir, 'src')\n const deprecatedSteps = [\n ...(existsSync(stepsDir) ? globSync('**/*.step.py', { absolute: true, cwd: stepsDir }) : []),\n ...(existsSync(srcDir) ? globSync('**/*.step.py', { absolute: true, cwd: srcDir }) : []),\n ]\n\n const hasPythonFiles =\n stepFiles.some((file) => file.endsWith('.py')) || streamFiles.some((file) => file.endsWith('.py'))\n\n if (hasPythonFiles) {\n activatePythonVenv({ baseDir: projectDir })\n }\n\n for (const filePath of stepFiles) {\n try {\n const config = await getStepConfig(filePath, projectDir)\n\n if (!config) {\n console.warn(`No config found in step ${filePath}, step skipped`)\n continue\n }\n\n const result = lockedData.createStep({ filePath, version, config }, { disableTypeCreation: true })\n\n if (!result) {\n invalidSteps.push({ filePath, version, config })\n }\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err)\n if (errorMessage.includes('Executable ruby not found') || errorMessage.includes('Executable python not found')) {\n console.warn(pc.yellow(`! [WARNING] Skipping step ${filePath}: ${errorMessage}`))\n continue\n }\n throw new CompilationError(`Error collecting flow ${filePath}`, path.relative(projectDir, filePath), err as Error)\n }\n }\n\n for (const filePath of streamFiles) {\n const config = await getStreamConfig(filePath)\n\n if (!config) {\n console.warn(`No config found in stream ${filePath}, stream skipped`)\n continue\n }\n\n lockedData.createStream({ filePath, config }, { disableTypeCreation: true })\n }\n\n if (deprecatedSteps.length > 0) {\n const warning = pc.yellow('! [WARNING]')\n console.warn(\n pc.yellow(\n [\n '',\n '========================================',\n warning,\n '',\n `Python steps with ${pc.gray('.step.py')} extensions are no longer supported.`,\n `Please rename them to ${pc.gray('_step.py')}.`,\n '',\n pc.bold('Steps:'),\n ...deprecatedSteps.map((step) =>\n pc.reset(\n `- ${pc.cyan(pc.bold(step.replace(projectDir, '')))} rename to ${pc.gray(`${step.replace(projectDir, '').replace('.step.py', '_step.py')}`)}`,\n ),\n ),\n\n '',\n 'Make sure the step names are importable from Python:',\n `- Don't use numbers, dots, dashes, commas, spaces, colons, or special characters`,\n '========================================',\n '',\n ].join('\\n'),\n ),\n )\n }\n\n return invalidSteps\n}\n\ntype StreamAuthOptions = {\n authenticate: StreamAuthConfig['authenticate']\n contextSchema?: JsonSchema\n}\n\nexport const generateLockedData = async (config: {\n projectDir: string\n streamAdapter?: StreamAdapterManager\n redisClient?: RedisClientType\n printerType?: 'disabled' | 'default'\n streamAuth?: StreamAuthOptions\n}): Promise<LockedData> => {\n try {\n const {\n projectDir,\n streamAdapter = new MemoryStreamAdapterManager(),\n printerType = 'default',\n redisClient,\n streamAuth,\n } = config\n const printer = printerType === 'disabled' ? new NoPrinter() : new Printer(projectDir)\n /*\n * NOTE: right now for performance and simplicity let's enforce a folder,\n * but we might want to remove this and scan the entire current directory\n */\n const lockedData = new LockedData(projectDir, streamAdapter, printer, redisClient)\n lockedData.setStreamAuthConfig(streamAuth)\n\n await collectFlows(projectDir, lockedData)\n lockedData.saveTypes()\n\n return lockedData\n } catch (error) {\n console.error(error)\n\n throw new LockedDataGenerationError(\n 'Failed to parse the project, generating locked data step failed',\n error as Error,\n )\n }\n}\n"],"mappings":";;;;;;;;;;;AAsBA,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,KAAK,MAAM,KAAK,KAAK,GAAG,IAAK;AAEhE,MAAM,uBAAuB,QAA0B;AACrD,KAAI,CAAC,WAAW,IAAI,CAClB,QAAO,EAAE;AAEX,QAAO,CACL,GAAG,SAAS,wBAAwB;EAAE,UAAU;EAAM,KAAK;EAAK,CAAC,EACjE,GAAG,SAAS,2BAA2B;EAAE,UAAU;EAAM,KAAK;EAAK,CAAC,CACrE;;AAGH,MAAa,gBAAgB,eAAiC;CAC5D,MAAM,WAAW,KAAK,KAAK,YAAY,QAAQ;CAC/C,MAAM,SAAS,KAAK,KAAK,YAAY,MAAM;AAC3C,QAAO,CAAC,GAAG,oBAAoB,SAAS,EAAE,GAAG,oBAAoB,OAAO,CAAC;;AAG3E,MAAM,yBAAyB,QAA0B;AACvD,KAAI,CAAC,WAAW,IAAI,CAClB,QAAO,EAAE;AAEX,QAAO,CACL,GAAG,SAAS,0BAA0B;EAAE,UAAU;EAAM,KAAK;EAAK,CAAC,EACnE,GAAG,SAAS,6BAA6B;EAAE,UAAU;EAAM,KAAK;EAAK,CAAC,CACvE;;AAGH,MAAa,kBAAkB,eAAiC;CAC9D,MAAM,WAAW,KAAK,KAAK,YAAY,QAAQ;CAC/C,MAAM,SAAS,KAAK,KAAK,YAAY,MAAM;AAC3C,QAAO,CAAC,GAAG,sBAAsB,SAAS,EAAE,GAAG,sBAAsB,OAAO,CAAC;;AAI/E,MAAa,eAAe,OAAO,YAAoB,eAA4C;CACjG,MAAMA,eAAuB,EAAE;CAC/B,MAAM,YAAY,aAAa,WAAW;CAC1C,MAAM,cAAc,eAAe,WAAW;CAC9C,MAAM,WAAW,KAAK,KAAK,YAAY,QAAQ;CAC/C,MAAM,SAAS,KAAK,KAAK,YAAY,MAAM;CAC3C,MAAM,kBAAkB,CACtB,GAAI,WAAW,SAAS,GAAG,SAAS,gBAAgB;EAAE,UAAU;EAAM,KAAK;EAAU,CAAC,GAAG,EAAE,EAC3F,GAAI,WAAW,OAAO,GAAG,SAAS,gBAAgB;EAAE,UAAU;EAAM,KAAK;EAAQ,CAAC,GAAG,EAAE,CACxF;AAKD,KAFE,UAAU,MAAM,SAAS,KAAK,SAAS,MAAM,CAAC,IAAI,YAAY,MAAM,SAAS,KAAK,SAAS,MAAM,CAAC,CAGlG,oBAAmB,EAAE,SAAS,YAAY,CAAC;AAG7C,MAAK,MAAM,YAAY,UACrB,KAAI;EACF,MAAM,SAAS,MAAM,cAAc,UAAU,WAAW;AAExD,MAAI,CAAC,QAAQ;AACX,WAAQ,KAAK,2BAA2B,SAAS,gBAAgB;AACjE;;AAKF,MAAI,CAFW,WAAW,WAAW;GAAE;GAAU;GAAS;GAAQ,EAAE,EAAE,qBAAqB,MAAM,CAAC,CAGhG,cAAa,KAAK;GAAE;GAAU;GAAS;GAAQ,CAAC;UAE3C,KAAK;EACZ,MAAM,eAAe,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;AACrE,MAAI,aAAa,SAAS,4BAA4B,IAAI,aAAa,SAAS,8BAA8B,EAAE;AAC9G,WAAQ,KAAK,GAAG,OAAO,6BAA6B,SAAS,IAAI,eAAe,CAAC;AACjF;;AAEF,QAAM,IAAI,iBAAiB,yBAAyB,YAAY,KAAK,SAAS,YAAY,SAAS,EAAE,IAAa;;AAItH,MAAK,MAAM,YAAY,aAAa;EAClC,MAAM,SAAS,MAAM,gBAAgB,SAAS;AAE9C,MAAI,CAAC,QAAQ;AACX,WAAQ,KAAK,6BAA6B,SAAS,kBAAkB;AACrE;;AAGF,aAAW,aAAa;GAAE;GAAU;GAAQ,EAAE,EAAE,qBAAqB,MAAM,CAAC;;AAG9E,KAAI,gBAAgB,SAAS,GAAG;EAC9B,MAAM,UAAU,GAAG,OAAO,cAAc;AACxC,UAAQ,KACN,GAAG,OACD;GACE;GACA;GACA;GACA;GACA,qBAAqB,GAAG,KAAK,WAAW,CAAC;GACzC,yBAAyB,GAAG,KAAK,WAAW,CAAC;GAC7C;GACA,GAAG,KAAK,SAAS;GACjB,GAAG,gBAAgB,KAAK,SACtB,GAAG,MACD,KAAK,GAAG,KAAK,GAAG,KAAK,KAAK,QAAQ,YAAY,GAAG,CAAC,CAAC,CAAC,aAAa,GAAG,KAAK,GAAG,KAAK,QAAQ,YAAY,GAAG,CAAC,QAAQ,YAAY,WAAW,GAAG,GAC5I,CACF;GAED;GACA;GACA;GACA;GACA;GACD,CAAC,KAAK,KAAK,CACb,CACF;;AAGH,QAAO;;AAQT,MAAa,qBAAqB,OAAO,WAMd;AACzB,KAAI;EACF,MAAM,EACJ,YACA,gBAAgB,IAAI,4BAA4B,EAChD,cAAc,WACd,aACA,eACE;EAMJ,MAAM,aAAa,IAAI,WAAW,YAAY,eAL9B,gBAAgB,aAAa,IAAI,WAAW,GAAG,IAAI,QAAQ,WAAW,EAKhB,YAAY;AAClF,aAAW,oBAAoB,WAAW;AAE1C,QAAM,aAAa,YAAY,WAAW;AAC1C,aAAW,WAAW;AAEtB,SAAO;UACA,OAAO;AACd,UAAQ,MAAM,MAAM;AAEpB,QAAM,IAAI,0BACR,mEACA,MACD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { getStepFiles, getStreamFiles } from "./generate-locked-data.mjs";
|
|
2
|
+
import { LockedData, MemoryStreamAdapterManager, Printer, getStepConfig, getStreamConfig } from "@motiadev/core";
|
|
3
|
+
import { randomUUID } from "crypto";
|
|
4
|
+
import pc from "picocolors";
|
|
5
|
+
|
|
6
|
+
//#region src/generate-types.ts
|
|
7
|
+
const version = `${randomUUID()}:${Math.floor(Date.now() / 1e3)}`;
|
|
8
|
+
const generateTypes = async (projectDir) => {
|
|
9
|
+
const files = getStepFiles(projectDir);
|
|
10
|
+
const streamsFiles = getStreamFiles(projectDir);
|
|
11
|
+
const lockedData = new LockedData(projectDir, new MemoryStreamAdapterManager(), new Printer(projectDir));
|
|
12
|
+
for (const filePath of files) {
|
|
13
|
+
const config = await getStepConfig(filePath, projectDir);
|
|
14
|
+
if (config) lockedData.createStep({
|
|
15
|
+
filePath,
|
|
16
|
+
version,
|
|
17
|
+
config
|
|
18
|
+
}, { disableTypeCreation: true });
|
|
19
|
+
}
|
|
20
|
+
for (const filePath of streamsFiles) {
|
|
21
|
+
const config = await getStreamConfig(filePath, projectDir);
|
|
22
|
+
if (config) lockedData.createStream({
|
|
23
|
+
filePath,
|
|
24
|
+
config
|
|
25
|
+
}, { disableTypeCreation: true });
|
|
26
|
+
}
|
|
27
|
+
lockedData.saveTypes();
|
|
28
|
+
console.log(`${pc.green("✓ [SUCCESS]")} Types generated`);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
export { generateTypes };
|
|
33
|
+
//# sourceMappingURL=generate-types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-types.mjs","names":[],"sources":["../src/generate-types.ts"],"sourcesContent":["import { getStepConfig, getStreamConfig, LockedData, MemoryStreamAdapterManager, Printer } from '@motiadev/core'\nimport { randomUUID } from 'crypto'\nimport pc from 'picocolors'\nimport { getStepFiles, getStreamFiles } from './generate-locked-data'\n\nconst version = `${randomUUID()}:${Math.floor(Date.now() / 1000)}`\n\nexport const generateTypes = async (projectDir: string) => {\n const files = getStepFiles(projectDir)\n const streamsFiles = getStreamFiles(projectDir)\n\n const lockedData = new LockedData(projectDir, new MemoryStreamAdapterManager(), new Printer(projectDir))\n\n for (const filePath of files) {\n const config = await getStepConfig(filePath, projectDir)\n\n if (config) {\n lockedData.createStep({ filePath, version, config }, { disableTypeCreation: true })\n }\n }\n\n for (const filePath of streamsFiles) {\n const config = await getStreamConfig(filePath, projectDir)\n\n if (config) {\n lockedData.createStream({ filePath, config }, { disableTypeCreation: true })\n }\n }\n\n lockedData.saveTypes()\n\n console.log(`${pc.green('✓ [SUCCESS]')} Types generated`)\n}\n"],"mappings":";;;;;;AAKA,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,KAAK,MAAM,KAAK,KAAK,GAAG,IAAK;AAEhE,MAAa,gBAAgB,OAAO,eAAuB;CACzD,MAAM,QAAQ,aAAa,WAAW;CACtC,MAAM,eAAe,eAAe,WAAW;CAE/C,MAAM,aAAa,IAAI,WAAW,YAAY,IAAI,4BAA4B,EAAE,IAAI,QAAQ,WAAW,CAAC;AAExG,MAAK,MAAM,YAAY,OAAO;EAC5B,MAAM,SAAS,MAAM,cAAc,UAAU,WAAW;AAExD,MAAI,OACF,YAAW,WAAW;GAAE;GAAU;GAAS;GAAQ,EAAE,EAAE,qBAAqB,MAAM,CAAC;;AAIvF,MAAK,MAAM,YAAY,cAAc;EACnC,MAAM,SAAS,MAAM,gBAAgB,UAAU,WAAW;AAE1D,MAAI,OACF,YAAW,aAAa;GAAE;GAAU;GAAQ,EAAE,EAAE,qBAAqB,MAAM,CAAC;;AAIhF,YAAW,WAAW;AAEtB,SAAQ,IAAI,GAAG,GAAG,MAAM,cAAc,CAAC,kBAAkB"}
|
package/dist/index.d.mts
ADDED
package/dist/index.mjs
ADDED
package/dist/install.mjs
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { executeCommand } from "./utils/execute-command.mjs";
|
|
2
|
+
import { getPythonCommand } from "./utils/python-version-utils.mjs";
|
|
3
|
+
import { activatePythonVenv } from "./utils/activate-python-env.mjs";
|
|
4
|
+
import { getStepFiles, getStreamFiles } from "./generate-locked-data.mjs";
|
|
5
|
+
import { ensureUvInstalled } from "./utils/ensure-uv.mjs";
|
|
6
|
+
import { installLambdaPythonPackages } from "./utils/install-lambda-python-packages.mjs";
|
|
7
|
+
import fs from "fs";
|
|
8
|
+
import path from "path";
|
|
9
|
+
|
|
10
|
+
//#region src/install.ts
|
|
11
|
+
const pythonInstall = async ({ baseDir, isVerbose = false, pythonVersion = "3.13" }) => {
|
|
12
|
+
const venvPath = path.join(baseDir, "python_modules");
|
|
13
|
+
console.log("📦 Installing Python dependencies...", venvPath);
|
|
14
|
+
const requirementsList = [
|
|
15
|
+
path.join(baseDir, "node_modules", "motia", "dist", "requirements-core.txt"),
|
|
16
|
+
path.join(baseDir, "node_modules", "motia", "dist", "requirements-snap.txt"),
|
|
17
|
+
path.join(baseDir, "requirements.txt")
|
|
18
|
+
];
|
|
19
|
+
try {
|
|
20
|
+
const pythonCmd = await getPythonCommand(pythonVersion, baseDir);
|
|
21
|
+
if (isVerbose) console.log(`🐍 Using Python command: ${pythonCmd}`);
|
|
22
|
+
if (!fs.existsSync(venvPath)) {
|
|
23
|
+
console.log("📦 Creating Python virtual environment...");
|
|
24
|
+
await executeCommand(`${pythonCmd} -m venv python_modules`, baseDir);
|
|
25
|
+
}
|
|
26
|
+
activatePythonVenv({
|
|
27
|
+
baseDir,
|
|
28
|
+
isVerbose,
|
|
29
|
+
pythonVersion
|
|
30
|
+
});
|
|
31
|
+
console.log("🔧 Checking UV installation...");
|
|
32
|
+
await ensureUvInstalled();
|
|
33
|
+
console.log("✅ UV is available");
|
|
34
|
+
installLambdaPythonPackages({
|
|
35
|
+
isVerbose,
|
|
36
|
+
requirementsList
|
|
37
|
+
});
|
|
38
|
+
console.log("📥 Installing Python dependencies...");
|
|
39
|
+
for (const requirement of requirementsList) if (fs.existsSync(requirement)) {
|
|
40
|
+
if (isVerbose) console.log("📄 Using requirements from:", requirement);
|
|
41
|
+
await executeCommand(`pip install -r "${requirement}" --only-binary=:all:`, baseDir);
|
|
42
|
+
}
|
|
43
|
+
} catch (error) {
|
|
44
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
45
|
+
console.error("❌ Installation failed:", errorMessage);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const install = async ({ isVerbose = false, pythonVersion = "3.13" }) => {
|
|
50
|
+
const baseDir = process.cwd();
|
|
51
|
+
const steps = getStepFiles(baseDir);
|
|
52
|
+
const streams = getStreamFiles(baseDir);
|
|
53
|
+
if (steps.some((file) => file.endsWith(".py")) || streams.some((file) => file.endsWith(".py"))) await pythonInstall({
|
|
54
|
+
baseDir,
|
|
55
|
+
isVerbose,
|
|
56
|
+
pythonVersion
|
|
57
|
+
});
|
|
58
|
+
console.info("✅ Installation completed successfully!");
|
|
59
|
+
process.exit(0);
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
//#endregion
|
|
63
|
+
export { install, pythonInstall };
|
|
64
|
+
//# sourceMappingURL=install.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.mjs","names":[],"sources":["../src/install.ts"],"sourcesContent":["import fs from 'fs'\nimport path from 'path'\nimport { getStepFiles, getStreamFiles } from './generate-locked-data'\nimport { activatePythonVenv } from './utils/activate-python-env'\nimport { ensureUvInstalled } from './utils/ensure-uv'\nimport { executeCommand } from './utils/execute-command'\nimport { installLambdaPythonPackages } from './utils/install-lambda-python-packages'\nimport { getPythonCommand } from './utils/python-version-utils'\n\ninterface InstallConfig {\n isVerbose?: boolean\n pythonVersion?: string\n}\n\ntype PythonInstallConfig = InstallConfig & { baseDir: string }\n\nexport const pythonInstall = async ({\n baseDir,\n isVerbose = false,\n pythonVersion = '3.13',\n}: PythonInstallConfig): Promise<void> => {\n const venvPath = path.join(baseDir, 'python_modules')\n console.log('📦 Installing Python dependencies...', venvPath)\n\n const coreRequirementsPath = path.join(baseDir, 'node_modules', 'motia', 'dist', 'requirements-core.txt')\n const snapRequirementsPath = path.join(baseDir, 'node_modules', 'motia', 'dist', 'requirements-snap.txt')\n const localRequirements = path.join(baseDir, 'requirements.txt')\n\n const requirementsList = [coreRequirementsPath, snapRequirementsPath, localRequirements]\n\n try {\n // Get the appropriate Python command\n const pythonCmd = await getPythonCommand(pythonVersion, baseDir)\n if (isVerbose) {\n console.log(`🐍 Using Python command: ${pythonCmd}`)\n }\n\n // Check if virtual environment exists\n if (!fs.existsSync(venvPath)) {\n console.log('📦 Creating Python virtual environment...')\n await executeCommand(`${pythonCmd} -m venv python_modules`, baseDir)\n }\n\n activatePythonVenv({ baseDir, isVerbose, pythonVersion })\n\n // Ensure UV is installed\n console.log('🔧 Checking UV installation...')\n await ensureUvInstalled()\n console.log('✅ UV is available')\n\n installLambdaPythonPackages({ isVerbose, requirementsList })\n\n // Install requirements\n console.log('📥 Installing Python dependencies...')\n\n // Core requirements\n\n for (const requirement of requirementsList) {\n if (fs.existsSync(requirement)) {\n if (isVerbose) {\n console.log('📄 Using requirements from:', requirement)\n }\n await executeCommand(`pip install -r \"${requirement}\" --only-binary=:all:`, baseDir)\n }\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error)\n console.error('❌ Installation failed:', errorMessage)\n process.exit(1)\n }\n}\n\nexport const install = async ({ isVerbose = false, pythonVersion = '3.13' }: InstallConfig): Promise<void> => {\n const baseDir = process.cwd()\n\n const steps = getStepFiles(baseDir)\n const streams = getStreamFiles(baseDir)\n if (steps.some((file) => file.endsWith('.py')) || streams.some((file) => file.endsWith('.py'))) {\n await pythonInstall({ baseDir, isVerbose, pythonVersion })\n }\n\n console.info('✅ Installation completed successfully!')\n\n process.exit(0)\n}\n"],"mappings":";;;;;;;;;;AAgBA,MAAa,gBAAgB,OAAO,EAClC,SACA,YAAY,OACZ,gBAAgB,aACwB;CACxC,MAAM,WAAW,KAAK,KAAK,SAAS,iBAAiB;AACrD,SAAQ,IAAI,wCAAwC,SAAS;CAM7D,MAAM,mBAAmB;EAJI,KAAK,KAAK,SAAS,gBAAgB,SAAS,QAAQ,wBAAwB;EAC5E,KAAK,KAAK,SAAS,gBAAgB,SAAS,QAAQ,wBAAwB;EAC/E,KAAK,KAAK,SAAS,mBAAmB;EAEwB;AAExF,KAAI;EAEF,MAAM,YAAY,MAAM,iBAAiB,eAAe,QAAQ;AAChE,MAAI,UACF,SAAQ,IAAI,4BAA4B,YAAY;AAItD,MAAI,CAAC,GAAG,WAAW,SAAS,EAAE;AAC5B,WAAQ,IAAI,4CAA4C;AACxD,SAAM,eAAe,GAAG,UAAU,0BAA0B,QAAQ;;AAGtE,qBAAmB;GAAE;GAAS;GAAW;GAAe,CAAC;AAGzD,UAAQ,IAAI,iCAAiC;AAC7C,QAAM,mBAAmB;AACzB,UAAQ,IAAI,oBAAoB;AAEhC,8BAA4B;GAAE;GAAW;GAAkB,CAAC;AAG5D,UAAQ,IAAI,uCAAuC;AAInD,OAAK,MAAM,eAAe,iBACxB,KAAI,GAAG,WAAW,YAAY,EAAE;AAC9B,OAAI,UACF,SAAQ,IAAI,+BAA+B,YAAY;AAEzD,SAAM,eAAe,mBAAmB,YAAY,wBAAwB,QAAQ;;UAGjF,OAAO;EACd,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;AAC3E,UAAQ,MAAM,0BAA0B,aAAa;AACrD,UAAQ,KAAK,EAAE;;;AAInB,MAAa,UAAU,OAAO,EAAE,YAAY,OAAO,gBAAgB,aAA2C;CAC5G,MAAM,UAAU,QAAQ,KAAK;CAE7B,MAAM,QAAQ,aAAa,QAAQ;CACnC,MAAM,UAAU,eAAe,QAAQ;AACvC,KAAI,MAAM,MAAM,SAAS,KAAK,SAAS,MAAM,CAAC,IAAI,QAAQ,MAAM,SAAS,KAAK,SAAS,MAAM,CAAC,CAC5F,OAAM,cAAc;EAAE;EAAS;EAAW;EAAe,CAAC;AAG5D,SAAQ,KAAK,yCAAyC;AAEtD,SAAQ,KAAK,EAAE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { globSync } from "glob";
|
|
2
|
+
import { createJiti } from "jiti";
|
|
3
|
+
|
|
4
|
+
//#region src/load-motia-config.ts
|
|
5
|
+
const jiti = createJiti(import.meta.url);
|
|
6
|
+
const loadMotiaConfig = async (baseDir) => {
|
|
7
|
+
const configFiles = globSync("motia.config.{ts,js}", {
|
|
8
|
+
absolute: true,
|
|
9
|
+
cwd: baseDir
|
|
10
|
+
});
|
|
11
|
+
if (configFiles.length === 0) return {};
|
|
12
|
+
try {
|
|
13
|
+
return await jiti.import(configFiles[0], { default: true });
|
|
14
|
+
} catch (error) {
|
|
15
|
+
console.warn("Failed to load motia.config.ts:", error);
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { loadMotiaConfig };
|
|
22
|
+
//# sourceMappingURL=load-motia-config.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-motia-config.mjs","names":[],"sources":["../src/load-motia-config.ts"],"sourcesContent":["import type { Config } from '@motiadev/core'\nimport { globSync } from 'glob'\nimport { createJiti } from 'jiti'\n\nexport type LoadedMotiaConfig = Config\n\nconst jiti = createJiti(import.meta.url)\n\nexport const loadMotiaConfig = async (baseDir: string): Promise<LoadedMotiaConfig> => {\n const configFiles = globSync('motia.config.{ts,js}', { absolute: true, cwd: baseDir })\n\n if (configFiles.length === 0) {\n return {}\n }\n\n try {\n const appConfig: Config = (await jiti.import(configFiles[0], { default: true })) as Config\n return appConfig\n } catch (error) {\n console.warn('Failed to load motia.config.ts:', error)\n return {}\n }\n}\n"],"mappings":";;;;AAMA,MAAM,OAAO,WAAW,OAAO,KAAK,IAAI;AAExC,MAAa,kBAAkB,OAAO,YAAgD;CACpF,MAAM,cAAc,SAAS,wBAAwB;EAAE,UAAU;EAAM,KAAK;EAAS,CAAC;AAEtF,KAAI,YAAY,WAAW,EACzB,QAAO,EAAE;AAGX,KAAI;AAEF,SAD2B,MAAM,KAAK,OAAO,YAAY,IAAI,EAAE,SAAS,MAAM,CAAC;UAExE,OAAO;AACd,UAAQ,KAAK,mCAAmC,MAAM;AACtD,SAAO,EAAE"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { processSchema } from "./process-schema.mjs";
|
|
2
|
+
import { isHttpMethod } from "./utils.mjs";
|
|
3
|
+
import * as fs$1 from "fs";
|
|
4
|
+
import * as path$1 from "path";
|
|
5
|
+
|
|
6
|
+
//#region src/openapi/generate.ts
|
|
7
|
+
function generateOpenApi(projectDir, apiSteps, title, version, outputFile = "openapi.json") {
|
|
8
|
+
if (!title || !version) try {
|
|
9
|
+
const packageJsonPath = path$1.join(projectDir, "package.json");
|
|
10
|
+
const packageJson = JSON.parse(fs$1.readFileSync(packageJsonPath, "utf8"));
|
|
11
|
+
if (!title) title = packageJson.name;
|
|
12
|
+
if (!version) version = packageJson.version;
|
|
13
|
+
} catch (error) {
|
|
14
|
+
console.warn(`Could not read package.json in ${projectDir} to determine project name. Using default.`);
|
|
15
|
+
}
|
|
16
|
+
const openApi = {
|
|
17
|
+
openapi: "3.0.0",
|
|
18
|
+
info: {
|
|
19
|
+
title: title ?? "Motia Project API",
|
|
20
|
+
version: version ?? "1.0.0"
|
|
21
|
+
},
|
|
22
|
+
paths: {},
|
|
23
|
+
components: { schemas: {} }
|
|
24
|
+
};
|
|
25
|
+
for (const step of apiSteps) {
|
|
26
|
+
const pathItem = openApi.paths[step.config.path] || {};
|
|
27
|
+
const method = step.config.method.toLowerCase();
|
|
28
|
+
const operation = {
|
|
29
|
+
summary: step.config.name,
|
|
30
|
+
description: step.config.description,
|
|
31
|
+
requestBody: void 0,
|
|
32
|
+
responses: {}
|
|
33
|
+
};
|
|
34
|
+
if (step.config.queryParams) {
|
|
35
|
+
operation.parameters = operation.parameters || [];
|
|
36
|
+
for (const param of step.config.queryParams) operation.parameters.push({
|
|
37
|
+
in: "query",
|
|
38
|
+
name: param.name,
|
|
39
|
+
description: param.description,
|
|
40
|
+
required: false,
|
|
41
|
+
schema: { type: "string" }
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (step.config.bodySchema) {
|
|
45
|
+
const bodySchema = step.config.bodySchema;
|
|
46
|
+
delete bodySchema.$schema;
|
|
47
|
+
const processedSchema = processSchema(bodySchema, openApi);
|
|
48
|
+
operation.requestBody = { content: { "application/json": { schema: processedSchema } } };
|
|
49
|
+
}
|
|
50
|
+
if (step.config.responseSchema) for (const [statusCode, responseSchema] of Object.entries(step.config.responseSchema)) {
|
|
51
|
+
const resSchema = responseSchema;
|
|
52
|
+
delete resSchema.$schema;
|
|
53
|
+
const processedSchema = processSchema(resSchema, openApi);
|
|
54
|
+
operation.responses[statusCode] = {
|
|
55
|
+
description: `Response for status code ${statusCode}`,
|
|
56
|
+
content: { "application/json": { schema: processedSchema } }
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
if (isHttpMethod(method)) pathItem[method] = operation;
|
|
60
|
+
openApi.paths[step.config.path] = pathItem;
|
|
61
|
+
}
|
|
62
|
+
const openApiJson = JSON.stringify(openApi, null, 2);
|
|
63
|
+
fs$1.writeFileSync(path$1.join(projectDir, outputFile), openApiJson);
|
|
64
|
+
console.log(`✅ OpenAPI specification generated successfully at ${outputFile}`);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
//#endregion
|
|
68
|
+
export { generateOpenApi };
|
|
69
|
+
//# sourceMappingURL=generate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.mjs","names":["path","fs","openApi: OpenAPIV3.Document","operation: OpenAPIV3.OperationObject"],"sources":["../../src/openapi/generate.ts"],"sourcesContent":["import type { ApiRouteConfig, Step } from '@motiadev/core'\nimport * as fs from 'fs'\nimport type { OpenAPIV3 } from 'openapi-types'\nimport * as path from 'path'\n\nimport { processSchema } from './process-schema'\nimport { isHttpMethod } from './utils'\n\nexport function generateOpenApi(\n projectDir: string,\n apiSteps: Step<ApiRouteConfig>[],\n title?: string,\n version?: string,\n outputFile = 'openapi.json',\n) {\n // read package.json to get project name for default title & version\n if (!title || !version) {\n try {\n const packageJsonPath = path.join(projectDir, 'package.json')\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))\n\n if (!title) title = packageJson.name\n if (!version) version = packageJson.version\n } catch (error) {\n console.warn(`Could not read package.json in ${projectDir} to determine project name. Using default.`)\n }\n }\n\n const openApi: OpenAPIV3.Document = {\n openapi: '3.0.0',\n info: {\n title: title ?? 'Motia Project API',\n version: version ?? '1.0.0',\n },\n paths: {},\n components: {\n schemas: {},\n },\n }\n\n for (const step of apiSteps) {\n const pathItem = openApi.paths[step.config.path] || {}\n const method = step.config.method.toLowerCase()\n\n const operation: OpenAPIV3.OperationObject = {\n summary: step.config.name,\n description: step.config.description,\n requestBody: undefined,\n responses: {},\n }\n\n if (step.config.queryParams) {\n operation.parameters = operation.parameters || []\n\n for (const param of step.config.queryParams) {\n operation.parameters.push({\n in: 'query',\n name: param.name,\n description: param.description,\n required: false,\n schema: {\n type: 'string',\n },\n })\n }\n }\n\n if (step.config.bodySchema) {\n const bodySchema = step.config.bodySchema as unknown as Record<string, unknown>\n\n delete bodySchema.$schema\n\n const processedSchema = processSchema(bodySchema, openApi)\n\n operation.requestBody = {\n content: {\n 'application/json': {\n schema: processedSchema,\n },\n },\n }\n }\n\n if (step.config.responseSchema) {\n for (const [statusCode, responseSchema] of Object.entries(step.config.responseSchema)) {\n const resSchema = responseSchema as unknown as Record<string, unknown>\n\n delete resSchema.$schema\n\n const processedSchema = processSchema(resSchema, openApi)\n\n operation.responses[statusCode] = {\n description: `Response for status code ${statusCode}`,\n content: {\n 'application/json': {\n schema: processedSchema,\n },\n },\n }\n }\n }\n\n if (isHttpMethod(method)) {\n pathItem[method] = operation\n }\n\n openApi.paths[step.config.path] = pathItem\n }\n\n const openApiJson = JSON.stringify(openApi, null, 2)\n fs.writeFileSync(path.join(projectDir, outputFile), openApiJson)\n\n console.log(`✅ OpenAPI specification generated successfully at ${outputFile}`)\n}\n"],"mappings":";;;;;;AAQA,SAAgB,gBACd,YACA,UACA,OACA,SACA,aAAa,gBACb;AAEA,KAAI,CAAC,SAAS,CAAC,QACb,KAAI;EACF,MAAM,kBAAkBA,OAAK,KAAK,YAAY,eAAe;EAC7D,MAAM,cAAc,KAAK,MAAMC,KAAG,aAAa,iBAAiB,OAAO,CAAC;AAExE,MAAI,CAAC,MAAO,SAAQ,YAAY;AAChC,MAAI,CAAC,QAAS,WAAU,YAAY;UAC7B,OAAO;AACd,UAAQ,KAAK,kCAAkC,WAAW,4CAA4C;;CAI1G,MAAMC,UAA8B;EAClC,SAAS;EACT,MAAM;GACJ,OAAO,SAAS;GAChB,SAAS,WAAW;GACrB;EACD,OAAO,EAAE;EACT,YAAY,EACV,SAAS,EAAE,EACZ;EACF;AAED,MAAK,MAAM,QAAQ,UAAU;EAC3B,MAAM,WAAW,QAAQ,MAAM,KAAK,OAAO,SAAS,EAAE;EACtD,MAAM,SAAS,KAAK,OAAO,OAAO,aAAa;EAE/C,MAAMC,YAAuC;GAC3C,SAAS,KAAK,OAAO;GACrB,aAAa,KAAK,OAAO;GACzB,aAAa;GACb,WAAW,EAAE;GACd;AAED,MAAI,KAAK,OAAO,aAAa;AAC3B,aAAU,aAAa,UAAU,cAAc,EAAE;AAEjD,QAAK,MAAM,SAAS,KAAK,OAAO,YAC9B,WAAU,WAAW,KAAK;IACxB,IAAI;IACJ,MAAM,MAAM;IACZ,aAAa,MAAM;IACnB,UAAU;IACV,QAAQ,EACN,MAAM,UACP;IACF,CAAC;;AAIN,MAAI,KAAK,OAAO,YAAY;GAC1B,MAAM,aAAa,KAAK,OAAO;AAE/B,UAAO,WAAW;GAElB,MAAM,kBAAkB,cAAc,YAAY,QAAQ;AAE1D,aAAU,cAAc,EACtB,SAAS,EACP,oBAAoB,EAClB,QAAQ,iBACT,EACF,EACF;;AAGH,MAAI,KAAK,OAAO,eACd,MAAK,MAAM,CAAC,YAAY,mBAAmB,OAAO,QAAQ,KAAK,OAAO,eAAe,EAAE;GACrF,MAAM,YAAY;AAElB,UAAO,UAAU;GAEjB,MAAM,kBAAkB,cAAc,WAAW,QAAQ;AAEzD,aAAU,UAAU,cAAc;IAChC,aAAa,4BAA4B;IACzC,SAAS,EACP,oBAAoB,EAClB,QAAQ,iBACT,EACF;IACF;;AAIL,MAAI,aAAa,OAAO,CACtB,UAAS,UAAU;AAGrB,UAAQ,MAAM,KAAK,OAAO,QAAQ;;CAGpC,MAAM,cAAc,KAAK,UAAU,SAAS,MAAM,EAAE;AACpD,MAAG,cAAcH,OAAK,KAAK,YAAY,WAAW,EAAE,YAAY;AAEhE,SAAQ,IAAI,qDAAqD,aAAa"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
//#region src/openapi/process-schema.ts
|
|
2
|
+
function processSchema(schema, openApi) {
|
|
3
|
+
if (!schema || typeof schema !== "object") return schema;
|
|
4
|
+
if (schema.$defs) {
|
|
5
|
+
if (!openApi.components) openApi.components = {};
|
|
6
|
+
if (!openApi.components.schemas) openApi.components.schemas = {};
|
|
7
|
+
for (const defName in schema.$defs) if (Object.prototype.hasOwnProperty.call(schema.$defs, defName)) openApi.components.schemas[defName] = schema.$defs[defName];
|
|
8
|
+
delete schema.$defs;
|
|
9
|
+
}
|
|
10
|
+
if (Array.isArray(schema.anyOf)) {
|
|
11
|
+
const nullIndex = schema.anyOf.findIndex((item) => item && item.type === "null");
|
|
12
|
+
if (nullIndex !== -1) {
|
|
13
|
+
schema.anyOf.splice(nullIndex, 1);
|
|
14
|
+
schema.nullable = true;
|
|
15
|
+
if (schema.anyOf.length === 1) {
|
|
16
|
+
const remainingSchema = schema.anyOf[0];
|
|
17
|
+
for (const key in remainingSchema) if (Object.prototype.hasOwnProperty.call(remainingSchema, key)) schema[key] = remainingSchema[key];
|
|
18
|
+
delete schema.anyOf;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
for (const key in schema) if (Object.prototype.hasOwnProperty.call(schema, key)) {
|
|
23
|
+
if (key === "$ref" && typeof schema[key] === "string" && schema[key].startsWith("#/$defs/")) schema[key] = schema[key].replace("#/$defs/", "#/components/schemas/");
|
|
24
|
+
else if (typeof schema[key] === "object") schema[key] = processSchema(schema[key], openApi);
|
|
25
|
+
}
|
|
26
|
+
return schema;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
//#endregion
|
|
30
|
+
export { processSchema };
|
|
31
|
+
//# sourceMappingURL=process-schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-schema.mjs","names":[],"sources":["../../src/openapi/process-schema.ts"],"sourcesContent":["import type { OpenAPIV3 } from 'openapi-types'\n\nexport function processSchema(schema: Record<string, unknown>, openApi: OpenAPIV3.Document) {\n if (!schema || typeof schema !== 'object') {\n return schema as OpenAPIV3.SchemaObject\n }\n\n if (schema.$defs) {\n if (!openApi.components) {\n openApi.components = {}\n }\n\n if (!openApi.components.schemas) {\n openApi.components.schemas = {} as Record<string, OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject>\n }\n\n // copy all definitions to components/schemas for compatibility\n for (const defName in schema.$defs) {\n if (Object.prototype.hasOwnProperty.call(schema.$defs, defName)) {\n ;(openApi.components.schemas as Record<string, OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject>)[defName] = (\n schema.$defs as Record<string, OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject>\n )[defName]\n }\n }\n\n delete schema.$defs\n }\n\n if (Array.isArray(schema.anyOf)) {\n const nullIndex = schema.anyOf.findIndex((item: { type?: string }) => item && item.type === 'null')\n\n if (nullIndex !== -1) {\n schema.anyOf.splice(nullIndex, 1)\n\n schema.nullable = true\n\n if (schema.anyOf.length === 1) {\n // if only one schema remains, lift it up\n const remainingSchema = schema.anyOf[0]\n\n for (const key in remainingSchema) {\n if (Object.prototype.hasOwnProperty.call(remainingSchema, key)) {\n schema[key] = remainingSchema[key]\n }\n }\n\n delete schema.anyOf\n }\n }\n }\n\n for (const key in schema) {\n if (Object.prototype.hasOwnProperty.call(schema, key)) {\n if (key === '$ref' && typeof schema[key] === 'string' && schema[key].startsWith('#/$defs/')) {\n // convert $ref to OpenAPI components/schemas format\n schema[key] = schema[key].replace('#/$defs/', '#/components/schemas/')\n } else if (typeof schema[key] === 'object') {\n const result = processSchema(schema[key] as Record<string, unknown>, openApi)\n schema[key] = result\n }\n }\n }\n\n return schema as OpenAPIV3.SchemaObject\n}\n"],"mappings":";AAEA,SAAgB,cAAc,QAAiC,SAA6B;AAC1F,KAAI,CAAC,UAAU,OAAO,WAAW,SAC/B,QAAO;AAGT,KAAI,OAAO,OAAO;AAChB,MAAI,CAAC,QAAQ,WACX,SAAQ,aAAa,EAAE;AAGzB,MAAI,CAAC,QAAQ,WAAW,QACtB,SAAQ,WAAW,UAAU,EAAE;AAIjC,OAAK,MAAM,WAAW,OAAO,MAC3B,KAAI,OAAO,UAAU,eAAe,KAAK,OAAO,OAAO,QAAQ,CAC5D,CAAC,QAAQ,WAAW,QAA+E,WAClG,OAAO,MACP;AAIN,SAAO,OAAO;;AAGhB,KAAI,MAAM,QAAQ,OAAO,MAAM,EAAE;EAC/B,MAAM,YAAY,OAAO,MAAM,WAAW,SAA4B,QAAQ,KAAK,SAAS,OAAO;AAEnG,MAAI,cAAc,IAAI;AACpB,UAAO,MAAM,OAAO,WAAW,EAAE;AAEjC,UAAO,WAAW;AAElB,OAAI,OAAO,MAAM,WAAW,GAAG;IAE7B,MAAM,kBAAkB,OAAO,MAAM;AAErC,SAAK,MAAM,OAAO,gBAChB,KAAI,OAAO,UAAU,eAAe,KAAK,iBAAiB,IAAI,CAC5D,QAAO,OAAO,gBAAgB;AAIlC,WAAO,OAAO;;;;AAKpB,MAAK,MAAM,OAAO,OAChB,KAAI,OAAO,UAAU,eAAe,KAAK,QAAQ,IAAI,EACnD;MAAI,QAAQ,UAAU,OAAO,OAAO,SAAS,YAAY,OAAO,KAAK,WAAW,WAAW,CAEzF,QAAO,OAAO,OAAO,KAAK,QAAQ,YAAY,wBAAwB;WAC7D,OAAO,OAAO,SAAS,SAEhC,QAAO,OADQ,cAAc,OAAO,MAAiC,QAAQ;;AAMnF,QAAO"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { OpenAPIV3 } from "openapi-types";
|
|
2
|
+
|
|
3
|
+
//#region src/openapi/utils.ts
|
|
4
|
+
function isHttpMethod(method) {
|
|
5
|
+
return Object.values(OpenAPIV3.HttpMethods).includes(method);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
export { isHttpMethod };
|
|
10
|
+
//# sourceMappingURL=utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.mjs","names":[],"sources":["../../src/openapi/utils.ts"],"sourcesContent":["import { OpenAPIV3 } from 'openapi-types'\n\nexport function isHttpMethod(method: string): method is OpenAPIV3.HttpMethods {\n return Object.values(OpenAPIV3.HttpMethods).includes(method as OpenAPIV3.HttpMethods)\n}\n"],"mappings":";;;AAEA,SAAgB,aAAa,QAAiD;AAC5E,QAAO,OAAO,OAAO,UAAU,YAAY,CAAC,SAAS,OAAgC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getStepConfig } from "@motiadev/core";
|
|
2
|
+
import { globSync } from "glob";
|
|
3
|
+
import fs from "node:fs";
|
|
4
|
+
|
|
5
|
+
//#region src/plugins/collect-plugin-steps.ts
|
|
6
|
+
const collectPluginSteps = async (dirname, stepPatterns, projectRoot, printer) => {
|
|
7
|
+
const pluginSteps = [];
|
|
8
|
+
if (!fs.existsSync(dirname)) {
|
|
9
|
+
printer.printPluginWarn(`Directory not found: ${dirname}`);
|
|
10
|
+
return pluginSteps;
|
|
11
|
+
}
|
|
12
|
+
for (const pattern of stepPatterns) try {
|
|
13
|
+
const stepFiles = globSync(pattern, {
|
|
14
|
+
absolute: true,
|
|
15
|
+
cwd: dirname
|
|
16
|
+
});
|
|
17
|
+
if (stepFiles.length === 0) {
|
|
18
|
+
printer.printPluginLog(`No files found matching pattern: ${pattern} in ${dirname}`);
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
for (const filePath of stepFiles) try {
|
|
22
|
+
const config = await getStepConfig(filePath, projectRoot);
|
|
23
|
+
if (config) pluginSteps.push({
|
|
24
|
+
filePath,
|
|
25
|
+
config
|
|
26
|
+
});
|
|
27
|
+
else printer.printPluginWarn(`No config found in step ${filePath}, step skipped`);
|
|
28
|
+
} catch (error) {
|
|
29
|
+
printer.printPluginError(`Error loading step ${filePath}:`, error);
|
|
30
|
+
}
|
|
31
|
+
} catch (error) {
|
|
32
|
+
printer.printPluginError(`Error processing pattern ${pattern}:`, error);
|
|
33
|
+
}
|
|
34
|
+
return pluginSteps;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { collectPluginSteps };
|
|
39
|
+
//# sourceMappingURL=collect-plugin-steps.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-plugin-steps.mjs","names":["pluginSteps: Array<{ filePath: string; config: StepConfig }>"],"sources":["../../src/plugins/collect-plugin-steps.ts"],"sourcesContent":["import fs from 'node:fs'\nimport { getStepConfig, type Printer, type StepConfig } from '@motiadev/core'\nimport { globSync } from 'glob'\n\nexport const collectPluginSteps = async (\n dirname: string,\n stepPatterns: string[],\n projectRoot: string,\n printer: Printer,\n): Promise<Array<{ filePath: string; config: StepConfig }>> => {\n const pluginSteps: Array<{ filePath: string; config: StepConfig }> = []\n\n if (!fs.existsSync(dirname)) {\n printer.printPluginWarn(`Directory not found: ${dirname}`)\n return pluginSteps\n }\n\n for (const pattern of stepPatterns) {\n try {\n const stepFiles = globSync(pattern, { absolute: true, cwd: dirname })\n\n if (stepFiles.length === 0) {\n printer.printPluginLog(`No files found matching pattern: ${pattern} in ${dirname}`)\n continue\n }\n\n for (const filePath of stepFiles) {\n try {\n const config = await getStepConfig(filePath, projectRoot)\n if (config) {\n pluginSteps.push({ filePath, config })\n } else {\n printer.printPluginWarn(`No config found in step ${filePath}, step skipped`)\n }\n } catch (error) {\n printer.printPluginError(`Error loading step ${filePath}:`, error)\n }\n }\n } catch (error) {\n printer.printPluginError(`Error processing pattern ${pattern}:`, error)\n }\n }\n\n return pluginSteps\n}\n"],"mappings":";;;;;AAIA,MAAa,qBAAqB,OAChC,SACA,cACA,aACA,YAC6D;CAC7D,MAAMA,cAA+D,EAAE;AAEvE,KAAI,CAAC,GAAG,WAAW,QAAQ,EAAE;AAC3B,UAAQ,gBAAgB,wBAAwB,UAAU;AAC1D,SAAO;;AAGT,MAAK,MAAM,WAAW,aACpB,KAAI;EACF,MAAM,YAAY,SAAS,SAAS;GAAE,UAAU;GAAM,KAAK;GAAS,CAAC;AAErE,MAAI,UAAU,WAAW,GAAG;AAC1B,WAAQ,eAAe,oCAAoC,QAAQ,MAAM,UAAU;AACnF;;AAGF,OAAK,MAAM,YAAY,UACrB,KAAI;GACF,MAAM,SAAS,MAAM,cAAc,UAAU,YAAY;AACzD,OAAI,OACF,aAAY,KAAK;IAAE;IAAU;IAAQ,CAAC;OAEtC,SAAQ,gBAAgB,2BAA2B,SAAS,gBAAgB;WAEvE,OAAO;AACd,WAAQ,iBAAiB,sBAAsB,SAAS,IAAI,MAAM;;UAG/D,OAAO;AACd,UAAQ,iBAAiB,4BAA4B,QAAQ,IAAI,MAAM;;AAI3E,QAAO"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//#region src/plugins/create-plugin-context.ts
|
|
2
|
+
const createPluginContext = (motiaServer) => {
|
|
3
|
+
const { motia, addRoute, removeRoute, printer } = motiaServer;
|
|
4
|
+
return {
|
|
5
|
+
printer,
|
|
6
|
+
tracerFactory: motia.tracerFactory,
|
|
7
|
+
state: motia.stateAdapter,
|
|
8
|
+
lockedData: motia.lockedData,
|
|
9
|
+
eventAdapter: motia.eventAdapter,
|
|
10
|
+
registerApi: (config, handler) => {
|
|
11
|
+
const apiConfig = {
|
|
12
|
+
type: "api",
|
|
13
|
+
name: `Plugin API: ${config.method} ${config.path}`,
|
|
14
|
+
path: config.path,
|
|
15
|
+
method: config.method,
|
|
16
|
+
emits: [],
|
|
17
|
+
flows: ["_plugin"]
|
|
18
|
+
};
|
|
19
|
+
const step = {
|
|
20
|
+
filePath: `__plugin_${Date.now()}_${config.method}_${config.path.replace(/\//g, "_")}.ts`,
|
|
21
|
+
version: "1",
|
|
22
|
+
config: apiConfig,
|
|
23
|
+
handler
|
|
24
|
+
};
|
|
25
|
+
addRoute(step);
|
|
26
|
+
return () => {
|
|
27
|
+
removeRoute(step);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { createPluginContext };
|
|
35
|
+
//# sourceMappingURL=create-plugin-context.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-plugin-context.mjs","names":["apiConfig: ApiRouteConfig","step: PluginStep<ApiRouteConfig>"],"sources":["../../src/plugins/create-plugin-context.ts"],"sourcesContent":["import type {\n ApiResponse,\n ApiRouteConfig,\n ApiRouteHandler,\n MotiaPluginContext,\n MotiaServer,\n PluginApiConfig,\n PluginStep,\n UnregisterMotiaPluginApi,\n} from '@motiadev/core'\n\nexport const createPluginContext = (motiaServer: MotiaServer): MotiaPluginContext => {\n const { motia, addRoute, removeRoute, printer } = motiaServer\n return {\n printer,\n tracerFactory: motia.tracerFactory,\n state: motia.stateAdapter,\n lockedData: motia.lockedData,\n eventAdapter: motia.eventAdapter,\n registerApi: <\n TRequestBody = unknown,\n TResponseBody extends ApiResponse<number, unknown> = ApiResponse<number, unknown>,\n TEmitData = never,\n >(\n config: PluginApiConfig,\n handler: ApiRouteHandler<TRequestBody, TResponseBody, TEmitData>,\n ): UnregisterMotiaPluginApi => {\n const apiConfig: ApiRouteConfig = {\n type: 'api',\n name: `Plugin API: ${config.method} ${config.path}`,\n path: config.path,\n method: config.method,\n emits: [],\n flows: ['_plugin'],\n }\n\n const step: PluginStep<ApiRouteConfig> = {\n filePath: `__plugin_${Date.now()}_${config.method}_${config.path.replace(/\\//g, '_')}.ts`,\n version: '1',\n config: apiConfig,\n handler,\n }\n addRoute(step)\n return () => {\n removeRoute(step)\n }\n },\n }\n}\n"],"mappings":";AAWA,MAAa,uBAAuB,gBAAiD;CACnF,MAAM,EAAE,OAAO,UAAU,aAAa,YAAY;AAClD,QAAO;EACL;EACA,eAAe,MAAM;EACrB,OAAO,MAAM;EACb,YAAY,MAAM;EAClB,cAAc,MAAM;EACpB,cAKE,QACA,YAC6B;GAC7B,MAAMA,YAA4B;IAChC,MAAM;IACN,MAAM,eAAe,OAAO,OAAO,GAAG,OAAO;IAC7C,MAAM,OAAO;IACb,QAAQ,OAAO;IACf,OAAO,EAAE;IACT,OAAO,CAAC,UAAU;IACnB;GAED,MAAMC,OAAmC;IACvC,UAAU,YAAY,KAAK,KAAK,CAAC,GAAG,OAAO,OAAO,GAAG,OAAO,KAAK,QAAQ,OAAO,IAAI,CAAC;IACrF,SAAS;IACT,QAAQ;IACR;IACD;AACD,YAAS,KAAK;AACd,gBAAa;AACX,gBAAY,KAAK;;;EAGtB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { executeCommand } from "../utils/execute-command.mjs";
|
|
2
|
+
import { version } from "../version.mjs";
|
|
3
|
+
import { pluginDependencies } from "./plugin-dependencies.mjs";
|
|
4
|
+
import { getPackageManager } from "../utils/get-package-manager.mjs";
|
|
5
|
+
import fs from "node:fs";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
|
|
8
|
+
//#region src/plugins/install-plugin-dependencies.ts
|
|
9
|
+
const installPluginDependencies = async (baseDir, printer) => {
|
|
10
|
+
const packageJsonPath = path.join(baseDir, "package.json");
|
|
11
|
+
if (!fs.existsSync(packageJsonPath)) {
|
|
12
|
+
printer.printPluginWarn("No package.json found, skipping plugin dependency installation");
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
|
|
16
|
+
if (!packageJson.dependencies) packageJson.dependencies = {};
|
|
17
|
+
const missingDependencies = [];
|
|
18
|
+
for (const dep of pluginDependencies) {
|
|
19
|
+
if (packageJson.devDependencies?.[dep]) delete packageJson.devDependencies[dep];
|
|
20
|
+
if (!packageJson.dependencies[dep]) {
|
|
21
|
+
packageJson.dependencies[dep] = version;
|
|
22
|
+
missingDependencies.push(dep);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (missingDependencies.length === 0) {
|
|
26
|
+
printer.printPluginLog("All plugin dependencies already installed");
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
printer.printPluginLog(`Adding missing plugin dependencies: ${missingDependencies.join(", ")}`);
|
|
30
|
+
fs.writeFileSync(packageJsonPath, `${JSON.stringify(packageJson, null, 2)}\n`);
|
|
31
|
+
printer.printPluginLog("Updated package.json with plugin dependencies");
|
|
32
|
+
let packageManager = getPackageManager(baseDir);
|
|
33
|
+
if (packageManager === "unknown") {
|
|
34
|
+
printer.printPluginError("No package manager found, using npm as default");
|
|
35
|
+
packageManager = "npm";
|
|
36
|
+
}
|
|
37
|
+
printer.printPluginLog(`Installing dependencies using ${packageManager}...`);
|
|
38
|
+
const installCommand = {
|
|
39
|
+
npm: "npm install",
|
|
40
|
+
yarn: "yarn install",
|
|
41
|
+
pnpm: "pnpm install"
|
|
42
|
+
}[packageManager] || "npm install";
|
|
43
|
+
try {
|
|
44
|
+
await executeCommand(installCommand, baseDir, { silent: false });
|
|
45
|
+
printer.printPluginLog("Plugin dependencies installed successfully");
|
|
46
|
+
} catch (error) {
|
|
47
|
+
printer.printPluginError("Failed to install plugin dependencies:", error);
|
|
48
|
+
printer.printPluginWarn(`Please run '${installCommand}' manually to install the dependencies`);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
//#endregion
|
|
53
|
+
export { installPluginDependencies };
|
|
54
|
+
//# sourceMappingURL=install-plugin-dependencies.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-plugin-dependencies.mjs","names":["missingDependencies: string[]"],"sources":["../../src/plugins/install-plugin-dependencies.ts"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport type { Printer } from '@motiadev/core'\nimport { executeCommand } from '../utils/execute-command'\nimport { getPackageManager } from '../utils/get-package-manager'\nimport { version } from '../version'\nimport { pluginDependencies } from './plugin-dependencies'\n\nexport const installPluginDependencies = async (baseDir: string, printer: Printer): Promise<void> => {\n const packageJsonPath = path.join(baseDir, 'package.json')\n\n if (!fs.existsSync(packageJsonPath)) {\n printer.printPluginWarn('No package.json found, skipping plugin dependency installation')\n return\n }\n\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'))\n\n if (!packageJson.dependencies) {\n packageJson.dependencies = {}\n }\n\n const missingDependencies: string[] = []\n\n for (const dep of pluginDependencies) {\n if (packageJson.devDependencies?.[dep]) {\n delete packageJson.devDependencies[dep]\n }\n\n if (!packageJson.dependencies[dep]) {\n packageJson.dependencies[dep] = version\n missingDependencies.push(dep)\n }\n }\n\n if (missingDependencies.length === 0) {\n printer.printPluginLog('All plugin dependencies already installed')\n return\n }\n\n printer.printPluginLog(`Adding missing plugin dependencies: ${missingDependencies.join(', ')}`)\n\n fs.writeFileSync(packageJsonPath, `${JSON.stringify(packageJson, null, 2)}\\n`)\n printer.printPluginLog('Updated package.json with plugin dependencies')\n\n let packageManager = getPackageManager(baseDir)\n if (packageManager === 'unknown') {\n printer.printPluginError('No package manager found, using npm as default')\n packageManager = 'npm'\n }\n printer.printPluginLog(`Installing dependencies using ${packageManager}...`)\n\n const installCommands: Record<string, string> = {\n npm: 'npm install',\n yarn: 'yarn install',\n pnpm: 'pnpm install',\n }\n\n const installCommand = installCommands[packageManager] || 'npm install'\n\n try {\n await executeCommand(installCommand, baseDir, { silent: false })\n printer.printPluginLog('Plugin dependencies installed successfully')\n } catch (error) {\n printer.printPluginError('Failed to install plugin dependencies:', error)\n printer.printPluginWarn(`Please run '${installCommand}' manually to install the dependencies`)\n }\n}\n"],"mappings":";;;;;;;;AAQA,MAAa,4BAA4B,OAAO,SAAiB,YAAoC;CACnG,MAAM,kBAAkB,KAAK,KAAK,SAAS,eAAe;AAE1D,KAAI,CAAC,GAAG,WAAW,gBAAgB,EAAE;AACnC,UAAQ,gBAAgB,iEAAiE;AACzF;;CAGF,MAAM,cAAc,KAAK,MAAM,GAAG,aAAa,iBAAiB,QAAQ,CAAC;AAEzE,KAAI,CAAC,YAAY,aACf,aAAY,eAAe,EAAE;CAG/B,MAAMA,sBAAgC,EAAE;AAExC,MAAK,MAAM,OAAO,oBAAoB;AACpC,MAAI,YAAY,kBAAkB,KAChC,QAAO,YAAY,gBAAgB;AAGrC,MAAI,CAAC,YAAY,aAAa,MAAM;AAClC,eAAY,aAAa,OAAO;AAChC,uBAAoB,KAAK,IAAI;;;AAIjC,KAAI,oBAAoB,WAAW,GAAG;AACpC,UAAQ,eAAe,4CAA4C;AACnE;;AAGF,SAAQ,eAAe,uCAAuC,oBAAoB,KAAK,KAAK,GAAG;AAE/F,IAAG,cAAc,iBAAiB,GAAG,KAAK,UAAU,aAAa,MAAM,EAAE,CAAC,IAAI;AAC9E,SAAQ,eAAe,gDAAgD;CAEvE,IAAI,iBAAiB,kBAAkB,QAAQ;AAC/C,KAAI,mBAAmB,WAAW;AAChC,UAAQ,iBAAiB,iDAAiD;AAC1E,mBAAiB;;AAEnB,SAAQ,eAAe,iCAAiC,eAAe,KAAK;CAQ5E,MAAM,iBAN0C;EAC9C,KAAK;EACL,MAAM;EACN,MAAM;EACP,CAEsC,mBAAmB;AAE1D,KAAI;AACF,QAAM,eAAe,gBAAgB,SAAS,EAAE,QAAQ,OAAO,CAAC;AAChE,UAAQ,eAAe,6CAA6C;UAC7D,OAAO;AACd,UAAQ,iBAAiB,0CAA0C,MAAM;AACzE,UAAQ,gBAAgB,eAAe,eAAe,wCAAwC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { installPluginDependencies } from "./install-plugin-dependencies.mjs";
|
|
2
|
+
import { globSync } from "glob";
|
|
3
|
+
import { createJiti } from "jiti";
|
|
4
|
+
import fs from "node:fs";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
|
|
8
|
+
//#region src/plugins/load-config.ts
|
|
9
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
10
|
+
const jiti = createJiti(import.meta.url);
|
|
11
|
+
const loadConfig = async (baseDir, printer) => {
|
|
12
|
+
const configFiles = globSync("motia.config.{ts,js}", {
|
|
13
|
+
absolute: true,
|
|
14
|
+
cwd: baseDir
|
|
15
|
+
});
|
|
16
|
+
if (configFiles.length === 0) {
|
|
17
|
+
const templatePath = path.join(__dirname, "../create/templates/nodejs/motia.config.ts.txt");
|
|
18
|
+
const templateContent = fs.readFileSync(templatePath, "utf-8");
|
|
19
|
+
const configPath = path.join(baseDir, "motia.config.ts");
|
|
20
|
+
fs.writeFileSync(configPath, templateContent);
|
|
21
|
+
printer.printPluginLog("Created motia.config.ts");
|
|
22
|
+
await installPluginDependencies(baseDir, printer);
|
|
23
|
+
return await jiti.import(configPath, { default: true });
|
|
24
|
+
}
|
|
25
|
+
return await jiti.import(configFiles[0], { default: true });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
//#endregion
|
|
29
|
+
export { loadConfig };
|
|
30
|
+
//# sourceMappingURL=load-config.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-config.mjs","names":[],"sources":["../../src/plugins/load-config.ts"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport type { Config, Printer } from '@motiadev/core'\nimport { globSync } from 'glob'\nimport { createJiti } from 'jiti'\nimport { installPluginDependencies } from './install-plugin-dependencies'\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url))\nconst jiti = createJiti(import.meta.url)\n\nexport const loadConfig = async (baseDir: string, printer: Printer): Promise<Config> => {\n const configFiles = globSync('motia.config.{ts,js}', { absolute: true, cwd: baseDir })\n if (configFiles.length === 0) {\n const templatePath = path.join(__dirname, '../create/templates/nodejs/motia.config.ts.txt')\n const templateContent = fs.readFileSync(templatePath, 'utf-8')\n const configPath = path.join(baseDir, 'motia.config.ts')\n fs.writeFileSync(configPath, templateContent)\n printer.printPluginLog('Created motia.config.ts')\n\n await installPluginDependencies(baseDir, printer)\n\n return (await jiti.import(configPath, { default: true })) as Config\n }\n\n return (await jiti.import(configFiles[0], { default: true })) as Config\n}\n"],"mappings":";;;;;;;;AAQA,MAAM,YAAY,KAAK,QAAQ,cAAc,OAAO,KAAK,IAAI,CAAC;AAC9D,MAAM,OAAO,WAAW,OAAO,KAAK,IAAI;AAExC,MAAa,aAAa,OAAO,SAAiB,YAAsC;CACtF,MAAM,cAAc,SAAS,wBAAwB;EAAE,UAAU;EAAM,KAAK;EAAS,CAAC;AACtF,KAAI,YAAY,WAAW,GAAG;EAC5B,MAAM,eAAe,KAAK,KAAK,WAAW,iDAAiD;EAC3F,MAAM,kBAAkB,GAAG,aAAa,cAAc,QAAQ;EAC9D,MAAM,aAAa,KAAK,KAAK,SAAS,kBAAkB;AACxD,KAAG,cAAc,YAAY,gBAAgB;AAC7C,UAAQ,eAAe,0BAA0B;AAEjD,QAAM,0BAA0B,SAAS,QAAQ;AAEjD,SAAQ,MAAM,KAAK,OAAO,YAAY,EAAE,SAAS,MAAM,CAAC;;AAG1D,QAAQ,MAAM,KAAK,OAAO,YAAY,IAAI,EAAE,SAAS,MAAM,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/plugins/plugin-dependencies.ts
|
|
2
|
+
const pluginDependencies = [
|
|
3
|
+
"@motiadev/core",
|
|
4
|
+
"@motiadev/plugin-logs",
|
|
5
|
+
"@motiadev/plugin-states",
|
|
6
|
+
"@motiadev/plugin-endpoint",
|
|
7
|
+
"@motiadev/plugin-observability",
|
|
8
|
+
"@motiadev/plugin-bullmq"
|
|
9
|
+
];
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { pluginDependencies };
|
|
13
|
+
//# sourceMappingURL=plugin-dependencies.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-dependencies.mjs","names":[],"sources":["../../src/plugins/plugin-dependencies.ts"],"sourcesContent":["export const pluginDependencies = [\n '@motiadev/core',\n '@motiadev/plugin-logs',\n '@motiadev/plugin-states',\n '@motiadev/plugin-endpoint',\n '@motiadev/plugin-observability',\n '@motiadev/plugin-bullmq',\n]\n"],"mappings":";AAAA,MAAa,qBAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createPluginContext } from "./create-plugin-context.mjs";
|
|
2
|
+
import { loadConfig } from "./load-config.mjs";
|
|
3
|
+
import { processSteps } from "./process-steps.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/plugins/process-plugins.ts
|
|
6
|
+
const processPlugins = async (motiaServer) => {
|
|
7
|
+
const { printer, motia } = motiaServer;
|
|
8
|
+
const baseDir = motia.lockedData.baseDir;
|
|
9
|
+
const context = createPluginContext(motiaServer);
|
|
10
|
+
const appConfig = await loadConfig(baseDir, printer);
|
|
11
|
+
if (!appConfig?.plugins) {
|
|
12
|
+
printer.printPluginError("No plugins found in motia.config.ts");
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
const plugins = appConfig.plugins?.flatMap((item) => item(context)) || [];
|
|
16
|
+
await processSteps(motiaServer, plugins, baseDir);
|
|
17
|
+
return plugins;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { processPlugins };
|
|
22
|
+
//# sourceMappingURL=process-plugins.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-plugins.mjs","names":["context: MotiaPluginContext","appConfig: Config","plugins: MotiaPlugin[]"],"sources":["../../src/plugins/process-plugins.ts"],"sourcesContent":["import type { Config, MotiaPlugin, MotiaPluginContext, MotiaServer } from '@motiadev/core'\nimport { createPluginContext } from './create-plugin-context'\nimport { loadConfig } from './load-config'\nimport { processSteps } from './process-steps'\n\nexport const processPlugins = async (motiaServer: MotiaServer): Promise<MotiaPlugin[]> => {\n const { printer, motia } = motiaServer\n const baseDir = motia.lockedData.baseDir\n\n const context: MotiaPluginContext = createPluginContext(motiaServer)\n\n const appConfig: Config = await loadConfig(baseDir, printer)\n if (!appConfig?.plugins) {\n printer.printPluginError('No plugins found in motia.config.ts')\n return []\n }\n\n const plugins: MotiaPlugin[] = appConfig.plugins?.flatMap((item) => item(context)) || []\n await processSteps(motiaServer, plugins, baseDir)\n return plugins\n}\n"],"mappings":";;;;;AAKA,MAAa,iBAAiB,OAAO,gBAAqD;CACxF,MAAM,EAAE,SAAS,UAAU;CAC3B,MAAM,UAAU,MAAM,WAAW;CAEjC,MAAMA,UAA8B,oBAAoB,YAAY;CAEpE,MAAMC,YAAoB,MAAM,WAAW,SAAS,QAAQ;AAC5D,KAAI,CAAC,WAAW,SAAS;AACvB,UAAQ,iBAAiB,sCAAsC;AAC/D,SAAO,EAAE;;CAGX,MAAMC,UAAyB,UAAU,SAAS,SAAS,SAAS,KAAK,QAAQ,CAAC,IAAI,EAAE;AACxF,OAAM,aAAa,aAAa,SAAS,QAAQ;AACjD,QAAO"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { collectPluginSteps } from "./collect-plugin-steps.mjs";
|
|
2
|
+
import { PLUGIN_FLOW_ID } from "@motiadev/core";
|
|
3
|
+
import { randomUUID } from "node:crypto";
|
|
4
|
+
|
|
5
|
+
//#region src/plugins/process-steps.ts
|
|
6
|
+
const processSteps = async (motiaServer, plugins, baseDir) => {
|
|
7
|
+
const { motia, addRoute, printer } = motiaServer;
|
|
8
|
+
for (const plugin of plugins) if (plugin.dirname && plugin.steps) {
|
|
9
|
+
printer.printPluginLog(`Loading steps from ${plugin.dirname}`);
|
|
10
|
+
try {
|
|
11
|
+
const pluginSteps = await collectPluginSteps(plugin.dirname, plugin.steps, baseDir, printer);
|
|
12
|
+
const version = `plugin_${randomUUID()}:${Math.floor(Date.now() / 1e3)}`;
|
|
13
|
+
for (const { filePath, config } of pluginSteps) try {
|
|
14
|
+
if (motia.lockedData.createStep({
|
|
15
|
+
filePath,
|
|
16
|
+
version,
|
|
17
|
+
config: {
|
|
18
|
+
...config,
|
|
19
|
+
flows: [PLUGIN_FLOW_ID]
|
|
20
|
+
}
|
|
21
|
+
}, { disableTypeCreation: true })) {
|
|
22
|
+
const step = motia.lockedData.activeSteps.find((s) => s.filePath === filePath);
|
|
23
|
+
if (step && step.config.type === "api") addRoute(step);
|
|
24
|
+
} else printer.printPluginWarn(`Failed to register step: ${config.name} from ${filePath}`);
|
|
25
|
+
} catch (error) {
|
|
26
|
+
printer.printPluginError(`Error registering step ${filePath}:`, error);
|
|
27
|
+
}
|
|
28
|
+
} catch (error) {
|
|
29
|
+
printer.printPluginError(`Error loading steps from ${plugin.dirname}:`, error);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
export { processSteps };
|
|
36
|
+
//# sourceMappingURL=process-steps.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-steps.mjs","names":[],"sources":["../../src/plugins/process-steps.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto'\nimport { type MotiaPlugin, type MotiaServer, PLUGIN_FLOW_ID } from '@motiadev/core'\nimport { collectPluginSteps } from './collect-plugin-steps'\n\nexport const processSteps = async (\n motiaServer: MotiaServer,\n plugins: MotiaPlugin[],\n baseDir: string,\n): Promise<void> => {\n const { motia, addRoute, printer } = motiaServer\n for (const plugin of plugins) {\n if (plugin.dirname && plugin.steps) {\n printer.printPluginLog(`Loading steps from ${plugin.dirname}`)\n try {\n const pluginSteps = await collectPluginSteps(plugin.dirname, plugin.steps, baseDir, printer)\n const version = `plugin_${randomUUID()}:${Math.floor(Date.now() / 1000)}`\n\n for (const { filePath, config } of pluginSteps) {\n try {\n const isCreated = motia.lockedData.createStep(\n { filePath, version, config: { ...config, flows: [PLUGIN_FLOW_ID] } },\n { disableTypeCreation: true },\n )\n\n if (isCreated) {\n const step = motia.lockedData.activeSteps.find((s) => s.filePath === filePath)\n if (step && step.config.type === 'api') {\n // biome-ignore lint/suspicious/noExplicitAny: Step type casting needed for route handler\n addRoute(step as any)\n }\n } else {\n printer.printPluginWarn(`Failed to register step: ${config.name} from ${filePath}`)\n }\n } catch (error) {\n printer.printPluginError(`Error registering step ${filePath}:`, error)\n }\n }\n } catch (error) {\n printer.printPluginError(`Error loading steps from ${plugin.dirname}:`, error)\n }\n }\n }\n}\n"],"mappings":";;;;;AAIA,MAAa,eAAe,OAC1B,aACA,SACA,YACkB;CAClB,MAAM,EAAE,OAAO,UAAU,YAAY;AACrC,MAAK,MAAM,UAAU,QACnB,KAAI,OAAO,WAAW,OAAO,OAAO;AAClC,UAAQ,eAAe,sBAAsB,OAAO,UAAU;AAC9D,MAAI;GACF,MAAM,cAAc,MAAM,mBAAmB,OAAO,SAAS,OAAO,OAAO,SAAS,QAAQ;GAC5F,MAAM,UAAU,UAAU,YAAY,CAAC,GAAG,KAAK,MAAM,KAAK,KAAK,GAAG,IAAK;AAEvE,QAAK,MAAM,EAAE,UAAU,YAAY,YACjC,KAAI;AAMF,QALkB,MAAM,WAAW,WACjC;KAAE;KAAU;KAAS,QAAQ;MAAE,GAAG;MAAQ,OAAO,CAAC,eAAe;MAAE;KAAE,EACrE,EAAE,qBAAqB,MAAM,CAC9B,EAEc;KACb,MAAM,OAAO,MAAM,WAAW,YAAY,MAAM,MAAM,EAAE,aAAa,SAAS;AAC9E,SAAI,QAAQ,KAAK,OAAO,SAAS,MAE/B,UAAS,KAAY;UAGvB,SAAQ,gBAAgB,4BAA4B,OAAO,KAAK,QAAQ,WAAW;YAE9E,OAAO;AACd,YAAQ,iBAAiB,0BAA0B,SAAS,IAAI,MAAM;;WAGnE,OAAO;AACd,WAAQ,iBAAiB,4BAA4B,OAAO,QAAQ,IAAI,MAAM"}
|