@motiadev/core 0.15.0-beta.165 → 0.15.2-beta.167

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/LICENSE CHANGED
@@ -90,4 +90,4 @@ these terms.
90
90
 
91
91
  **use** means anything you do with the software requiring one of your licenses.
92
92
 
93
- **trademark** means trademarks, service marks, and similar rights.
93
+ **trademark** means trademarks, service marks, and similar rights.
@@ -41,9 +41,16 @@ const getLanguageBasedRunner = (stepFilePath = "", overrides) => {
41
41
  ]
42
42
  };
43
43
  }
44
+ const jsRunner = path.join(__dirname, "node", defaultNodeOverrides?.js ?? "node-runner.mjs");
45
+ const tsxPath = getTsxPath();
46
+ if (tsxPath !== "tsx") return {
47
+ runner: jsRunner,
48
+ command: "node",
49
+ args: [tsxPath]
50
+ };
44
51
  return {
45
- runner: path.join(__dirname, "node", defaultNodeOverrides?.js ?? "node-runner.mjs"),
46
- command: getTsxPath(),
52
+ runner: jsRunner,
53
+ command: tsxPath,
47
54
  args: []
48
55
  };
49
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"language-runner.mjs","names":[],"sources":["../../src/language-runner.ts"],"sourcesContent":["import { createRequire } from 'module'\nimport path from 'path'\nimport { fileURLToPath } from 'url'\n\nexport type LanguageRunnerConfig = {\n command: string\n runner: string\n args: string[]\n}\n\nexport type LanguageRunnerOverrides = {\n python?: string\n ruby?: string\n node?: {\n js: string\n ts?: string\n }\n}\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url))\nconst require = createRequire(import.meta.url)\n\nconst getTsxPath = () => {\n try {\n const tsxModule = require.resolve('tsx/package.json')\n return path.join(path.dirname(tsxModule), 'dist', 'cli.mjs')\n } catch {\n return 'tsx'\n }\n}\n\nexport const getLanguageBasedRunner = (\n stepFilePath = '',\n overrides?: LanguageRunnerOverrides,\n): LanguageRunnerConfig => {\n const isPython = stepFilePath.endsWith('.py')\n const isRuby = stepFilePath.endsWith('.rb')\n const isNode = stepFilePath.endsWith('.js') || stepFilePath.endsWith('.ts')\n\n if (isPython) {\n const pythonRunner = path.join(__dirname, 'python', overrides?.python ?? 'python-runner.py')\n return { runner: pythonRunner, command: 'python', args: [] }\n } else if (isRuby) {\n const rubyRunner = path.join(__dirname, 'ruby', overrides?.ruby ?? 'ruby-runner.rb')\n return { runner: rubyRunner, command: 'ruby', args: [] }\n } else if (isNode) {\n const defaultNodeOverrides = overrides?.node\n\n if (process.env._MOTIA_TEST_MODE === 'true') {\n const runnerFile = defaultNodeOverrides?.ts ?? 'node-runner.ts'\n return {\n runner: path.join(__dirname, 'node', runnerFile),\n command: 'node',\n args: ['--loader', 'ts-node/esm', '--no-warnings=ExperimentalWarning'],\n }\n }\n const jsRunner = path.join(__dirname, 'node', defaultNodeOverrides?.js ?? 'node-runner.mjs')\n\n const tsxPath = getTsxPath()\n return { runner: jsRunner, command: tsxPath, args: [] }\n }\n\n throw Error(`Unsupported file extension ${stepFilePath}`)\n}\n"],"mappings":";;;;;AAmBA,MAAM,YAAY,KAAK,QAAQ,cAAc,OAAO,KAAK,IAAI,CAAC;AAC9D,MAAM,UAAU,cAAc,OAAO,KAAK,IAAI;AAE9C,MAAM,mBAAmB;AACvB,KAAI;EACF,MAAM,YAAY,QAAQ,QAAQ,mBAAmB;AACrD,SAAO,KAAK,KAAK,KAAK,QAAQ,UAAU,EAAE,QAAQ,UAAU;SACtD;AACN,SAAO;;;AAIX,MAAa,0BACX,eAAe,IACf,cACyB;CACzB,MAAM,WAAW,aAAa,SAAS,MAAM;CAC7C,MAAM,SAAS,aAAa,SAAS,MAAM;CAC3C,MAAM,SAAS,aAAa,SAAS,MAAM,IAAI,aAAa,SAAS,MAAM;AAE3E,KAAI,SAEF,QAAO;EAAE,QADY,KAAK,KAAK,WAAW,UAAU,WAAW,UAAU,mBAAmB;EAC7D,SAAS;EAAU,MAAM,EAAE;EAAE;UACnD,OAET,QAAO;EAAE,QADU,KAAK,KAAK,WAAW,QAAQ,WAAW,QAAQ,iBAAiB;EACvD,SAAS;EAAQ,MAAM,EAAE;EAAE;UAC/C,QAAQ;EACjB,MAAM,uBAAuB,WAAW;AAExC,MAAI,QAAQ,IAAI,qBAAqB,QAAQ;GAC3C,MAAM,aAAa,sBAAsB,MAAM;AAC/C,UAAO;IACL,QAAQ,KAAK,KAAK,WAAW,QAAQ,WAAW;IAChD,SAAS;IACT,MAAM;KAAC;KAAY;KAAe;KAAoC;IACvE;;AAKH,SAAO;GAAE,QAHQ,KAAK,KAAK,WAAW,QAAQ,sBAAsB,MAAM,kBAAkB;GAGjE,SADX,YAAY;GACiB,MAAM,EAAE;GAAE;;AAGzD,OAAM,MAAM,8BAA8B,eAAe"}
1
+ {"version":3,"file":"language-runner.mjs","names":[],"sources":["../../src/language-runner.ts"],"sourcesContent":["import { createRequire } from 'module'\nimport path from 'path'\nimport { fileURLToPath } from 'url'\n\nexport type LanguageRunnerConfig = {\n command: string\n runner: string\n args: string[]\n}\n\nexport type LanguageRunnerOverrides = {\n python?: string\n ruby?: string\n node?: {\n js: string\n ts?: string\n }\n}\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url))\nconst require = createRequire(import.meta.url)\n\nconst getTsxPath = () => {\n try {\n const tsxModule = require.resolve('tsx/package.json')\n return path.join(path.dirname(tsxModule), 'dist', 'cli.mjs')\n } catch {\n return 'tsx'\n }\n}\n\nexport const getLanguageBasedRunner = (\n stepFilePath = '',\n overrides?: LanguageRunnerOverrides,\n): LanguageRunnerConfig => {\n const isPython = stepFilePath.endsWith('.py')\n const isRuby = stepFilePath.endsWith('.rb')\n const isNode = stepFilePath.endsWith('.js') || stepFilePath.endsWith('.ts')\n\n if (isPython) {\n const pythonRunner = path.join(__dirname, 'python', overrides?.python ?? 'python-runner.py')\n return { runner: pythonRunner, command: 'python', args: [] }\n } else if (isRuby) {\n const rubyRunner = path.join(__dirname, 'ruby', overrides?.ruby ?? 'ruby-runner.rb')\n return { runner: rubyRunner, command: 'ruby', args: [] }\n } else if (isNode) {\n const defaultNodeOverrides = overrides?.node\n\n if (process.env._MOTIA_TEST_MODE === 'true') {\n const runnerFile = defaultNodeOverrides?.ts ?? 'node-runner.ts'\n return {\n runner: path.join(__dirname, 'node', runnerFile),\n command: 'node',\n args: ['--loader', 'ts-node/esm', '--no-warnings=ExperimentalWarning'],\n }\n }\n const jsRunner = path.join(__dirname, 'node', defaultNodeOverrides?.js ?? 'node-runner.mjs')\n const tsxPath = getTsxPath()\n // When tsx resolves to a file path, run it through node (tsx CLI is an .mjs file)\n // When tsx falls back to 'tsx' string, use it directly as a command (assumes tsx is in PATH)\n if (tsxPath !== 'tsx') {\n return { runner: jsRunner, command: 'node', args: [tsxPath] }\n }\n return { runner: jsRunner, command: tsxPath, args: [] }\n }\n\n throw Error(`Unsupported file extension ${stepFilePath}`)\n}\n"],"mappings":";;;;;AAmBA,MAAM,YAAY,KAAK,QAAQ,cAAc,OAAO,KAAK,IAAI,CAAC;AAC9D,MAAM,UAAU,cAAc,OAAO,KAAK,IAAI;AAE9C,MAAM,mBAAmB;AACvB,KAAI;EACF,MAAM,YAAY,QAAQ,QAAQ,mBAAmB;AACrD,SAAO,KAAK,KAAK,KAAK,QAAQ,UAAU,EAAE,QAAQ,UAAU;SACtD;AACN,SAAO;;;AAIX,MAAa,0BACX,eAAe,IACf,cACyB;CACzB,MAAM,WAAW,aAAa,SAAS,MAAM;CAC7C,MAAM,SAAS,aAAa,SAAS,MAAM;CAC3C,MAAM,SAAS,aAAa,SAAS,MAAM,IAAI,aAAa,SAAS,MAAM;AAE3E,KAAI,SAEF,QAAO;EAAE,QADY,KAAK,KAAK,WAAW,UAAU,WAAW,UAAU,mBAAmB;EAC7D,SAAS;EAAU,MAAM,EAAE;EAAE;UACnD,OAET,QAAO;EAAE,QADU,KAAK,KAAK,WAAW,QAAQ,WAAW,QAAQ,iBAAiB;EACvD,SAAS;EAAQ,MAAM,EAAE;EAAE;UAC/C,QAAQ;EACjB,MAAM,uBAAuB,WAAW;AAExC,MAAI,QAAQ,IAAI,qBAAqB,QAAQ;GAC3C,MAAM,aAAa,sBAAsB,MAAM;AAC/C,UAAO;IACL,QAAQ,KAAK,KAAK,WAAW,QAAQ,WAAW;IAChD,SAAS;IACT,MAAM;KAAC;KAAY;KAAe;KAAoC;IACvE;;EAEH,MAAM,WAAW,KAAK,KAAK,WAAW,QAAQ,sBAAsB,MAAM,kBAAkB;EAC5F,MAAM,UAAU,YAAY;AAG5B,MAAI,YAAY,MACd,QAAO;GAAE,QAAQ;GAAU,SAAS;GAAQ,MAAM,CAAC,QAAQ;GAAE;AAE/D,SAAO;GAAE,QAAQ;GAAU,SAAS;GAAS,MAAM,EAAE;GAAE;;AAGzD,OAAM,MAAM,8BAA8B,eAAe"}
@@ -1,4 +1,5 @@
1
1
  import path from "node:path";
2
+ import { pathToFileURL } from "node:url";
2
3
 
3
4
  //#region src/node/can-access.ts
4
5
  function parsePayload(arg) {
@@ -9,7 +10,7 @@ function parsePayload(arg) {
9
10
  }
10
11
  }
11
12
  async function runCanAccess(filePath$1, payload) {
12
- const module = await import(path.resolve(filePath$1));
13
+ const module = await import(pathToFileURL(path.resolve(filePath$1)).href);
13
14
  const config = module.config || module.default?.config;
14
15
  if (!config) throw new Error(`Config not found in module ${filePath$1}`);
15
16
  const canAccess = config.canAccess;
@@ -1 +1 @@
1
- {"version":3,"file":"can-access.mjs","names":["filePath"],"sources":["../../../src/node/can-access.ts"],"sourcesContent":["import path from 'node:path'\n\ntype CanAccessPayload = {\n subscription: { groupId: string; id?: string }\n authContext?: unknown\n}\n\nfunction parsePayload(arg: string): CanAccessPayload {\n try {\n return JSON.parse(arg)\n } catch {\n throw new Error('Invalid payload for canAccess evaluation')\n }\n}\n\nasync function runCanAccess(filePath: string, payload: CanAccessPayload) {\n const module = await import(path.resolve(filePath))\n\n const config = module.config || module.default?.config\n\n if (!config) {\n throw new Error(`Config not found in module ${filePath}`)\n }\n\n const canAccess = config.canAccess\n\n if (typeof canAccess !== 'function') {\n process.send?.(true)\n process.exit(0)\n }\n\n const result = await canAccess(payload.subscription, payload.authContext)\n process.send?.(Boolean(result))\n process.exit(0)\n}\n\nconst [, , filePath, payloadArg] = process.argv\n\nif (!filePath || !payloadArg) {\n console.error('Usage: node can-access.mjs <file-path> <payload>')\n process.exit(1)\n}\n\nrunCanAccess(filePath, parsePayload(payloadArg))\n .then(() => process.exit(0))\n .catch((error) => {\n console.error('Error evaluating canAccess:', error)\n process.exit(1)\n })\n"],"mappings":";;;AAOA,SAAS,aAAa,KAA+B;AACnD,KAAI;AACF,SAAO,KAAK,MAAM,IAAI;SAChB;AACN,QAAM,IAAI,MAAM,2CAA2C;;;AAI/D,eAAe,aAAa,YAAkB,SAA2B;CACvE,MAAM,SAAS,MAAM,OAAO,KAAK,QAAQA,WAAS;CAElD,MAAM,SAAS,OAAO,UAAU,OAAO,SAAS;AAEhD,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,8BAA8BA,aAAW;CAG3D,MAAM,YAAY,OAAO;AAEzB,KAAI,OAAO,cAAc,YAAY;AACnC,UAAQ,OAAO,KAAK;AACpB,UAAQ,KAAK,EAAE;;CAGjB,MAAM,SAAS,MAAM,UAAU,QAAQ,cAAc,QAAQ,YAAY;AACzE,SAAQ,OAAO,QAAQ,OAAO,CAAC;AAC/B,SAAQ,KAAK,EAAE;;AAGjB,MAAM,KAAK,UAAU,cAAc,QAAQ;AAE3C,IAAI,CAAC,YAAY,CAAC,YAAY;AAC5B,SAAQ,MAAM,mDAAmD;AACjE,SAAQ,KAAK,EAAE;;AAGjB,aAAa,UAAU,aAAa,WAAW,CAAC,CAC7C,WAAW,QAAQ,KAAK,EAAE,CAAC,CAC3B,OAAO,UAAU;AAChB,SAAQ,MAAM,+BAA+B,MAAM;AACnD,SAAQ,KAAK,EAAE;EACf"}
1
+ {"version":3,"file":"can-access.mjs","names":["filePath"],"sources":["../../../src/node/can-access.ts"],"sourcesContent":["import path from 'node:path'\nimport { pathToFileURL } from 'node:url'\n\ntype CanAccessPayload = {\n subscription: { groupId: string; id?: string }\n authContext?: unknown\n}\n\nfunction parsePayload(arg: string): CanAccessPayload {\n try {\n return JSON.parse(arg)\n } catch {\n throw new Error('Invalid payload for canAccess evaluation')\n }\n}\n\nasync function runCanAccess(filePath: string, payload: CanAccessPayload) {\n const module = await import(pathToFileURL(path.resolve(filePath)).href)\n\n const config = module.config || module.default?.config\n\n if (!config) {\n throw new Error(`Config not found in module ${filePath}`)\n }\n\n const canAccess = config.canAccess\n\n if (typeof canAccess !== 'function') {\n process.send?.(true)\n process.exit(0)\n }\n\n const result = await canAccess(payload.subscription, payload.authContext)\n process.send?.(Boolean(result))\n process.exit(0)\n}\n\nconst [, , filePath, payloadArg] = process.argv\n\nif (!filePath || !payloadArg) {\n console.error('Usage: node can-access.mjs <file-path> <payload>')\n process.exit(1)\n}\n\nrunCanAccess(filePath, parsePayload(payloadArg))\n .then(() => process.exit(0))\n .catch((error) => {\n console.error('Error evaluating canAccess:', error)\n process.exit(1)\n })\n"],"mappings":";;;;AAQA,SAAS,aAAa,KAA+B;AACnD,KAAI;AACF,SAAO,KAAK,MAAM,IAAI;SAChB;AACN,QAAM,IAAI,MAAM,2CAA2C;;;AAI/D,eAAe,aAAa,YAAkB,SAA2B;CACvE,MAAM,SAAS,MAAM,OAAO,cAAc,KAAK,QAAQA,WAAS,CAAC,CAAC;CAElE,MAAM,SAAS,OAAO,UAAU,OAAO,SAAS;AAEhD,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,8BAA8BA,aAAW;CAG3D,MAAM,YAAY,OAAO;AAEzB,KAAI,OAAO,cAAc,YAAY;AACnC,UAAQ,OAAO,KAAK;AACpB,UAAQ,KAAK,EAAE;;CAGjB,MAAM,SAAS,MAAM,UAAU,QAAQ,cAAc,QAAQ,YAAY;AACzE,SAAQ,OAAO,QAAQ,OAAO,CAAC;AAC/B,SAAQ,KAAK,EAAE;;AAGjB,MAAM,KAAK,UAAU,cAAc,QAAQ;AAE3C,IAAI,CAAC,YAAY,CAAC,YAAY;AAC5B,SAAQ,MAAM,mDAAmD;AACjE,SAAQ,KAAK,EAAE;;AAGjB,aAAa,UAAU,aAAa,WAAW,CAAC,CAC7C,WAAW,QAAQ,KAAK,EAAE,CAAC,CAC3B,OAAO,UAAU;AAChB,SAAQ,MAAM,+BAA+B,MAAM;AACnD,SAAQ,KAAK,EAAE;EACf"}
@@ -1,10 +1,11 @@
1
1
  import { schemaToJsonSchema } from "../schema-utils.mjs";
2
2
  import path from "node:path";
3
+ import { pathToFileURL } from "node:url";
3
4
 
4
5
  //#region src/node/get-config.ts
5
6
  async function getConfig(filePath$1) {
6
7
  try {
7
- const importedModule = await import(path.resolve(filePath$1));
8
+ const importedModule = await import(pathToFileURL(path.resolve(filePath$1)).href);
8
9
  const config = importedModule.config || importedModule.default?.config;
9
10
  if (!config) throw new Error(`Config not found in module ${filePath$1}`);
10
11
  if (config.input) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-config.mjs","names":["filePath"],"sources":["../../../src/node/get-config.ts"],"sourcesContent":["import path from 'node:path'\nimport { type SchemaInput, schemaToJsonSchema } from '../schema-utils'\n\nasync function getConfig(filePath: string) {\n try {\n const importedModule = await import(path.resolve(filePath))\n const config = importedModule.config || importedModule.default?.config\n\n if (!config) {\n throw new Error(`Config not found in module ${filePath}`)\n }\n\n if (config.input) {\n const converted = schemaToJsonSchema(config.input)\n if (converted) {\n config.input = converted\n }\n }\n\n if (config.bodySchema) {\n const converted = schemaToJsonSchema(config.bodySchema)\n if (converted) {\n config.bodySchema = converted\n }\n }\n\n if (config.responseSchema) {\n for (const [status, schema] of Object.entries(config.responseSchema)) {\n const converted = schemaToJsonSchema(schema as SchemaInput)\n if (converted) {\n config.responseSchema[status] = converted\n }\n }\n }\n\n if (config.schema) {\n const converted = schemaToJsonSchema(config.schema)\n if (converted) {\n config.schema = converted\n }\n }\n\n if (typeof config.canAccess === 'function') {\n config.__motia_hasCanAccess = !!config.canAccess\n delete config.canAccess\n }\n\n process.send?.(config)\n\n process.exit(0)\n } catch (error) {\n console.error('Error running TypeScript module:', error)\n process.exit(1)\n }\n}\n\nconst [, , filePath] = process.argv\n\nif (!filePath) {\n console.error('Usage: node get-config.mjs <file-path>')\n process.exit(1)\n}\n\ngetConfig(filePath).catch((err) => {\n console.error('Error:', err)\n process.exit(1)\n})\n"],"mappings":";;;;AAGA,eAAe,UAAU,YAAkB;AACzC,KAAI;EACF,MAAM,iBAAiB,MAAM,OAAO,KAAK,QAAQA,WAAS;EAC1D,MAAM,SAAS,eAAe,UAAU,eAAe,SAAS;AAEhE,MAAI,CAAC,OACH,OAAM,IAAI,MAAM,8BAA8BA,aAAW;AAG3D,MAAI,OAAO,OAAO;GAChB,MAAM,YAAY,mBAAmB,OAAO,MAAM;AAClD,OAAI,UACF,QAAO,QAAQ;;AAInB,MAAI,OAAO,YAAY;GACrB,MAAM,YAAY,mBAAmB,OAAO,WAAW;AACvD,OAAI,UACF,QAAO,aAAa;;AAIxB,MAAI,OAAO,eACT,MAAK,MAAM,CAAC,QAAQ,WAAW,OAAO,QAAQ,OAAO,eAAe,EAAE;GACpE,MAAM,YAAY,mBAAmB,OAAsB;AAC3D,OAAI,UACF,QAAO,eAAe,UAAU;;AAKtC,MAAI,OAAO,QAAQ;GACjB,MAAM,YAAY,mBAAmB,OAAO,OAAO;AACnD,OAAI,UACF,QAAO,SAAS;;AAIpB,MAAI,OAAO,OAAO,cAAc,YAAY;AAC1C,UAAO,uBAAuB,CAAC,CAAC,OAAO;AACvC,UAAO,OAAO;;AAGhB,UAAQ,OAAO,OAAO;AAEtB,UAAQ,KAAK,EAAE;UACR,OAAO;AACd,UAAQ,MAAM,oCAAoC,MAAM;AACxD,UAAQ,KAAK,EAAE;;;AAInB,MAAM,KAAK,YAAY,QAAQ;AAE/B,IAAI,CAAC,UAAU;AACb,SAAQ,MAAM,yCAAyC;AACvD,SAAQ,KAAK,EAAE;;AAGjB,UAAU,SAAS,CAAC,OAAO,QAAQ;AACjC,SAAQ,MAAM,UAAU,IAAI;AAC5B,SAAQ,KAAK,EAAE;EACf"}
1
+ {"version":3,"file":"get-config.mjs","names":["filePath"],"sources":["../../../src/node/get-config.ts"],"sourcesContent":["import path from 'node:path'\nimport { pathToFileURL } from 'node:url'\nimport { type SchemaInput, schemaToJsonSchema } from '../schema-utils'\n\nasync function getConfig(filePath: string) {\n try {\n const importedModule = await import(pathToFileURL(path.resolve(filePath)).href)\n const config = importedModule.config || importedModule.default?.config\n\n if (!config) {\n throw new Error(`Config not found in module ${filePath}`)\n }\n\n if (config.input) {\n const converted = schemaToJsonSchema(config.input)\n if (converted) {\n config.input = converted\n }\n }\n\n if (config.bodySchema) {\n const converted = schemaToJsonSchema(config.bodySchema)\n if (converted) {\n config.bodySchema = converted\n }\n }\n\n if (config.responseSchema) {\n for (const [status, schema] of Object.entries(config.responseSchema)) {\n const converted = schemaToJsonSchema(schema as SchemaInput)\n if (converted) {\n config.responseSchema[status] = converted\n }\n }\n }\n\n if (config.schema) {\n const converted = schemaToJsonSchema(config.schema)\n if (converted) {\n config.schema = converted\n }\n }\n\n if (typeof config.canAccess === 'function') {\n config.__motia_hasCanAccess = !!config.canAccess\n delete config.canAccess\n }\n\n process.send?.(config)\n\n process.exit(0)\n } catch (error) {\n console.error('Error running TypeScript module:', error)\n process.exit(1)\n }\n}\n\nconst [, , filePath] = process.argv\n\nif (!filePath) {\n console.error('Usage: node get-config.mjs <file-path>')\n process.exit(1)\n}\n\ngetConfig(filePath).catch((err) => {\n console.error('Error:', err)\n process.exit(1)\n})\n"],"mappings":";;;;;AAIA,eAAe,UAAU,YAAkB;AACzC,KAAI;EACF,MAAM,iBAAiB,MAAM,OAAO,cAAc,KAAK,QAAQA,WAAS,CAAC,CAAC;EAC1E,MAAM,SAAS,eAAe,UAAU,eAAe,SAAS;AAEhE,MAAI,CAAC,OACH,OAAM,IAAI,MAAM,8BAA8BA,aAAW;AAG3D,MAAI,OAAO,OAAO;GAChB,MAAM,YAAY,mBAAmB,OAAO,MAAM;AAClD,OAAI,UACF,QAAO,QAAQ;;AAInB,MAAI,OAAO,YAAY;GACrB,MAAM,YAAY,mBAAmB,OAAO,WAAW;AACvD,OAAI,UACF,QAAO,aAAa;;AAIxB,MAAI,OAAO,eACT,MAAK,MAAM,CAAC,QAAQ,WAAW,OAAO,QAAQ,OAAO,eAAe,EAAE;GACpE,MAAM,YAAY,mBAAmB,OAAsB;AAC3D,OAAI,UACF,QAAO,eAAe,UAAU;;AAKtC,MAAI,OAAO,QAAQ;GACjB,MAAM,YAAY,mBAAmB,OAAO,OAAO;AACnD,OAAI,UACF,QAAO,SAAS;;AAIpB,MAAI,OAAO,OAAO,cAAc,YAAY;AAC1C,UAAO,uBAAuB,CAAC,CAAC,OAAO;AACvC,UAAO,OAAO;;AAGhB,UAAQ,OAAO,OAAO;AAEtB,UAAQ,KAAK,EAAE;UACR,OAAO;AACd,UAAQ,MAAM,oCAAoC,MAAM;AACxD,UAAQ,KAAK,EAAE;;;AAInB,MAAM,KAAK,YAAY,QAAQ;AAE/B,IAAI,CAAC,UAAU;AACb,SAAQ,MAAM,yCAAyC;AACvD,SAAQ,KAAK,EAAE;;AAGjB,UAAU,SAAS,CAAC,OAAO,QAAQ;AACjC,SAAQ,MAAM,UAAU,IAAI;AAC5B,SAAQ,KAAK,EAAE;EACf"}
@@ -3,6 +3,7 @@ import { composeMiddleware } from "./middleware-compose.mjs";
3
3
  import { RpcSender } from "./rpc.mjs";
4
4
  import { RpcStateManager } from "./rpc-state-manager.mjs";
5
5
  import path from "path";
6
+ import { pathToFileURL } from "url";
6
7
  import dotenv from "dotenv";
7
8
 
8
9
  //#region src/node/node-runner.ts
@@ -17,7 +18,7 @@ function parseArgs(arg$1) {
17
18
  async function runTypescriptModule(filePath$1, event) {
18
19
  const sender = new RpcSender(process);
19
20
  try {
20
- const importedModule = await import(path.resolve(filePath$1));
21
+ const importedModule = await import(pathToFileURL(path.resolve(filePath$1)).href);
21
22
  const handler = importedModule.handler || importedModule.default?.handler;
22
23
  const config = importedModule.config || importedModule.default?.config || {};
23
24
  if (typeof handler !== "function") throw new Error(`Function handler not found in module ${filePath$1}`);
@@ -1 +1 @@
1
- {"version":3,"file":"node-runner.mjs","names":["arg","filePath","err: any","stack: string[]"],"sources":["../../../src/node/node-runner.ts"],"sourcesContent":["import dotenv from 'dotenv'\nimport path from 'path'\nimport type { StateStreamEvent, StateStreamEventChannel, StreamConfig } from '../types-stream'\nimport { Logger } from './logger'\nimport { composeMiddleware } from './middleware-compose'\nimport { RpcSender } from './rpc'\nimport { RpcStateManager } from './rpc-state-manager'\n\ndotenv.config()\n\nfunction parseArgs(arg: string) {\n try {\n return JSON.parse(arg)\n } catch {\n return arg\n }\n}\n\nasync function runTypescriptModule(filePath: string, event: Record<string, unknown>) {\n const sender = new RpcSender(process)\n\n try {\n const importedModule = await import(path.resolve(filePath))\n const handler = importedModule.handler || importedModule.default?.handler\n const config = importedModule.config || importedModule.default?.config || {}\n\n // Check if the specified function exists in the module\n if (typeof handler !== 'function') {\n throw new Error(`Function handler not found in module ${filePath}`)\n }\n\n const { traceId, flows, contextInFirstArg } = event\n\n const logger = new Logger(traceId as string, flows as string[], sender)\n const state = new RpcStateManager(sender)\n\n const emit = async (data: unknown) => sender.send('emit', data)\n const streamsConfig = event.streams as StreamConfig[]\n const streams = (streamsConfig ?? []).reduce(\n (acc, streams) => {\n acc[streams.name] = {\n get: (groupId: string, id: string) => sender.send(`streams.${streams.name}.get`, { groupId, id }),\n set: (groupId: string, id: string, data: unknown) =>\n sender.send(`streams.${streams.name}.set`, { groupId, id, data }),\n delete: (groupId: string, id: string) => sender.send(`streams.${streams.name}.delete`, { groupId, id }),\n getGroup: (groupId: string) => sender.send(`streams.${streams.name}.getGroup`, { groupId }),\n send: (channel: StateStreamEventChannel, event: StateStreamEvent<unknown>) =>\n sender.send(`streams.${streams.name}.send`, { channel, event }),\n }\n return acc\n },\n {} as Record<string, unknown>,\n )\n\n const context = { traceId, flows, logger, state, emit, streams }\n\n sender.init()\n\n const middlewares = Array.isArray(config.middleware) ? config.middleware : []\n\n const composedMiddleware = composeMiddleware(...middlewares)\n const handlerFn = () => {\n return contextInFirstArg ? handler(context) : handler(event.data, context)\n }\n\n const result = await composedMiddleware(event.data, context, handlerFn)\n\n await sender.send('result', result)\n await sender.close()\n\n process.exit(0)\n } catch (err: any) {\n const stack: string[] = err.stack?.split('\\n') ?? []\n\n if (stack) {\n const index = stack.findIndex((line) => line.includes('src/node/node-runner'))\n stack.splice(index, stack.length - index)\n stack.splice(0, 1) // remove first line which has the error message\n }\n\n const error = {\n message: err.message || '',\n code: err.code || null,\n stack: stack.join('\\n'),\n }\n sender.sendNoWait('close', error)\n }\n}\n\nconst [, , filePath, arg] = process.argv\n\nif (!filePath) {\n console.error('Usage: node node-runner.mjs <file-path> <arg>')\n process.exit(1)\n}\n\nrunTypescriptModule(filePath, parseArgs(arg)).catch((err) => {\n console.error('Error:', err)\n process.exit(1)\n})\n"],"mappings":";;;;;;;;AAQA,OAAO,QAAQ;AAEf,SAAS,UAAU,OAAa;AAC9B,KAAI;AACF,SAAO,KAAK,MAAMA,MAAI;SAChB;AACN,SAAOA;;;AAIX,eAAe,oBAAoB,YAAkB,OAAgC;CACnF,MAAM,SAAS,IAAI,UAAU,QAAQ;AAErC,KAAI;EACF,MAAM,iBAAiB,MAAM,OAAO,KAAK,QAAQC,WAAS;EAC1D,MAAM,UAAU,eAAe,WAAW,eAAe,SAAS;EAClE,MAAM,SAAS,eAAe,UAAU,eAAe,SAAS,UAAU,EAAE;AAG5E,MAAI,OAAO,YAAY,WACrB,OAAM,IAAI,MAAM,wCAAwCA,aAAW;EAGrE,MAAM,EAAE,SAAS,OAAO,sBAAsB;EAE9C,MAAM,SAAS,IAAI,OAAO,SAAmB,OAAmB,OAAO;EACvE,MAAM,QAAQ,IAAI,gBAAgB,OAAO;EAEzC,MAAM,OAAO,OAAO,SAAkB,OAAO,KAAK,QAAQ,KAAK;EAkB/D,MAAM,UAAU;GAAE;GAAS;GAAO;GAAQ;GAAO;GAAM,UAjBjC,MAAM,WACM,EAAE,EAAE,QACnC,KAAK,YAAY;AAChB,QAAI,QAAQ,QAAQ;KAClB,MAAM,SAAiB,OAAe,OAAO,KAAK,WAAW,QAAQ,KAAK,OAAO;MAAE;MAAS;MAAI,CAAC;KACjG,MAAM,SAAiB,IAAY,SACjC,OAAO,KAAK,WAAW,QAAQ,KAAK,OAAO;MAAE;MAAS;MAAI;MAAM,CAAC;KACnE,SAAS,SAAiB,OAAe,OAAO,KAAK,WAAW,QAAQ,KAAK,UAAU;MAAE;MAAS;MAAI,CAAC;KACvG,WAAW,YAAoB,OAAO,KAAK,WAAW,QAAQ,KAAK,YAAY,EAAE,SAAS,CAAC;KAC3F,OAAO,SAAkC,YACvC,OAAO,KAAK,WAAW,QAAQ,KAAK,QAAQ;MAAE;MAAS;MAAO,CAAC;KAClE;AACD,WAAO;MAET,EAAE,CACH;GAE+D;AAEhE,SAAO,MAAM;EAIb,MAAM,qBAAqB,kBAAkB,GAFzB,MAAM,QAAQ,OAAO,WAAW,GAAG,OAAO,aAAa,EAAE,CAEjB;EAC5D,MAAM,kBAAkB;AACtB,UAAO,oBAAoB,QAAQ,QAAQ,GAAG,QAAQ,MAAM,MAAM,QAAQ;;EAG5E,MAAM,SAAS,MAAM,mBAAmB,MAAM,MAAM,SAAS,UAAU;AAEvE,QAAM,OAAO,KAAK,UAAU,OAAO;AACnC,QAAM,OAAO,OAAO;AAEpB,UAAQ,KAAK,EAAE;UACRC,KAAU;EACjB,MAAMC,QAAkB,IAAI,OAAO,MAAM,KAAK,IAAI,EAAE;AAEpD,MAAI,OAAO;GACT,MAAM,QAAQ,MAAM,WAAW,SAAS,KAAK,SAAS,uBAAuB,CAAC;AAC9E,SAAM,OAAO,OAAO,MAAM,SAAS,MAAM;AACzC,SAAM,OAAO,GAAG,EAAE;;EAGpB,MAAM,QAAQ;GACZ,SAAS,IAAI,WAAW;GACxB,MAAM,IAAI,QAAQ;GAClB,OAAO,MAAM,KAAK,KAAK;GACxB;AACD,SAAO,WAAW,SAAS,MAAM;;;AAIrC,MAAM,KAAK,UAAU,OAAO,QAAQ;AAEpC,IAAI,CAAC,UAAU;AACb,SAAQ,MAAM,gDAAgD;AAC9D,SAAQ,KAAK,EAAE;;AAGjB,oBAAoB,UAAU,UAAU,IAAI,CAAC,CAAC,OAAO,QAAQ;AAC3D,SAAQ,MAAM,UAAU,IAAI;AAC5B,SAAQ,KAAK,EAAE;EACf"}
1
+ {"version":3,"file":"node-runner.mjs","names":["arg","filePath","err: any","stack: string[]"],"sources":["../../../src/node/node-runner.ts"],"sourcesContent":["import dotenv from 'dotenv'\nimport path from 'path'\nimport { pathToFileURL } from 'url'\nimport type { StateStreamEvent, StateStreamEventChannel, StreamConfig } from '../types-stream'\nimport { Logger } from './logger'\nimport { composeMiddleware } from './middleware-compose'\nimport { RpcSender } from './rpc'\nimport { RpcStateManager } from './rpc-state-manager'\n\ndotenv.config()\n\nfunction parseArgs(arg: string) {\n try {\n return JSON.parse(arg)\n } catch {\n return arg\n }\n}\n\nasync function runTypescriptModule(filePath: string, event: Record<string, unknown>) {\n const sender = new RpcSender(process)\n\n try {\n const importedModule = await import(pathToFileURL(path.resolve(filePath)).href)\n const handler = importedModule.handler || importedModule.default?.handler\n const config = importedModule.config || importedModule.default?.config || {}\n\n // Check if the specified function exists in the module\n if (typeof handler !== 'function') {\n throw new Error(`Function handler not found in module ${filePath}`)\n }\n\n const { traceId, flows, contextInFirstArg } = event\n\n const logger = new Logger(traceId as string, flows as string[], sender)\n const state = new RpcStateManager(sender)\n\n const emit = async (data: unknown) => sender.send('emit', data)\n const streamsConfig = event.streams as StreamConfig[]\n const streams = (streamsConfig ?? []).reduce(\n (acc, streams) => {\n acc[streams.name] = {\n get: (groupId: string, id: string) => sender.send(`streams.${streams.name}.get`, { groupId, id }),\n set: (groupId: string, id: string, data: unknown) =>\n sender.send(`streams.${streams.name}.set`, { groupId, id, data }),\n delete: (groupId: string, id: string) => sender.send(`streams.${streams.name}.delete`, { groupId, id }),\n getGroup: (groupId: string) => sender.send(`streams.${streams.name}.getGroup`, { groupId }),\n send: (channel: StateStreamEventChannel, event: StateStreamEvent<unknown>) =>\n sender.send(`streams.${streams.name}.send`, { channel, event }),\n }\n return acc\n },\n {} as Record<string, unknown>,\n )\n\n const context = { traceId, flows, logger, state, emit, streams }\n\n sender.init()\n\n const middlewares = Array.isArray(config.middleware) ? config.middleware : []\n\n const composedMiddleware = composeMiddleware(...middlewares)\n const handlerFn = () => {\n return contextInFirstArg ? handler(context) : handler(event.data, context)\n }\n\n const result = await composedMiddleware(event.data, context, handlerFn)\n\n await sender.send('result', result)\n await sender.close()\n\n process.exit(0)\n } catch (err: any) {\n const stack: string[] = err.stack?.split('\\n') ?? []\n\n if (stack) {\n const index = stack.findIndex((line) => line.includes('src/node/node-runner'))\n stack.splice(index, stack.length - index)\n stack.splice(0, 1) // remove first line which has the error message\n }\n\n const error = {\n message: err.message || '',\n code: err.code || null,\n stack: stack.join('\\n'),\n }\n sender.sendNoWait('close', error)\n }\n}\n\nconst [, , filePath, arg] = process.argv\n\nif (!filePath) {\n console.error('Usage: node node-runner.mjs <file-path> <arg>')\n process.exit(1)\n}\n\nrunTypescriptModule(filePath, parseArgs(arg)).catch((err) => {\n console.error('Error:', err)\n process.exit(1)\n})\n"],"mappings":";;;;;;;;;AASA,OAAO,QAAQ;AAEf,SAAS,UAAU,OAAa;AAC9B,KAAI;AACF,SAAO,KAAK,MAAMA,MAAI;SAChB;AACN,SAAOA;;;AAIX,eAAe,oBAAoB,YAAkB,OAAgC;CACnF,MAAM,SAAS,IAAI,UAAU,QAAQ;AAErC,KAAI;EACF,MAAM,iBAAiB,MAAM,OAAO,cAAc,KAAK,QAAQC,WAAS,CAAC,CAAC;EAC1E,MAAM,UAAU,eAAe,WAAW,eAAe,SAAS;EAClE,MAAM,SAAS,eAAe,UAAU,eAAe,SAAS,UAAU,EAAE;AAG5E,MAAI,OAAO,YAAY,WACrB,OAAM,IAAI,MAAM,wCAAwCA,aAAW;EAGrE,MAAM,EAAE,SAAS,OAAO,sBAAsB;EAE9C,MAAM,SAAS,IAAI,OAAO,SAAmB,OAAmB,OAAO;EACvE,MAAM,QAAQ,IAAI,gBAAgB,OAAO;EAEzC,MAAM,OAAO,OAAO,SAAkB,OAAO,KAAK,QAAQ,KAAK;EAkB/D,MAAM,UAAU;GAAE;GAAS;GAAO;GAAQ;GAAO;GAAM,UAjBjC,MAAM,WACM,EAAE,EAAE,QACnC,KAAK,YAAY;AAChB,QAAI,QAAQ,QAAQ;KAClB,MAAM,SAAiB,OAAe,OAAO,KAAK,WAAW,QAAQ,KAAK,OAAO;MAAE;MAAS;MAAI,CAAC;KACjG,MAAM,SAAiB,IAAY,SACjC,OAAO,KAAK,WAAW,QAAQ,KAAK,OAAO;MAAE;MAAS;MAAI;MAAM,CAAC;KACnE,SAAS,SAAiB,OAAe,OAAO,KAAK,WAAW,QAAQ,KAAK,UAAU;MAAE;MAAS;MAAI,CAAC;KACvG,WAAW,YAAoB,OAAO,KAAK,WAAW,QAAQ,KAAK,YAAY,EAAE,SAAS,CAAC;KAC3F,OAAO,SAAkC,YACvC,OAAO,KAAK,WAAW,QAAQ,KAAK,QAAQ;MAAE;MAAS;MAAO,CAAC;KAClE;AACD,WAAO;MAET,EAAE,CACH;GAE+D;AAEhE,SAAO,MAAM;EAIb,MAAM,qBAAqB,kBAAkB,GAFzB,MAAM,QAAQ,OAAO,WAAW,GAAG,OAAO,aAAa,EAAE,CAEjB;EAC5D,MAAM,kBAAkB;AACtB,UAAO,oBAAoB,QAAQ,QAAQ,GAAG,QAAQ,MAAM,MAAM,QAAQ;;EAG5E,MAAM,SAAS,MAAM,mBAAmB,MAAM,MAAM,SAAS,UAAU;AAEvE,QAAM,OAAO,KAAK,UAAU,OAAO;AACnC,QAAM,OAAO,OAAO;AAEpB,UAAQ,KAAK,EAAE;UACRC,KAAU;EACjB,MAAMC,QAAkB,IAAI,OAAO,MAAM,KAAK,IAAI,EAAE;AAEpD,MAAI,OAAO;GACT,MAAM,QAAQ,MAAM,WAAW,SAAS,KAAK,SAAS,uBAAuB,CAAC;AAC9E,SAAM,OAAO,OAAO,MAAM,SAAS,MAAM;AACzC,SAAM,OAAO,GAAG,EAAE;;EAGpB,MAAM,QAAQ;GACZ,SAAS,IAAI,WAAW;GACxB,MAAM,IAAI,QAAQ;GAClB,OAAO,MAAM,KAAK,KAAK;GACxB;AACD,SAAO,WAAW,SAAS,MAAM;;;AAIrC,MAAM,KAAK,UAAU,OAAO,QAAQ;AAEpC,IAAI,CAAC,UAAU;AACb,SAAQ,MAAM,gDAAgD;AAC9D,SAAQ,KAAK,EAAE;;AAGjB,oBAAoB,UAAU,UAAU,IAAI,CAAC,CAAC,OAAO,QAAQ;AAC3D,SAAQ,MAAM,UAAU,IAAI;AAC5B,SAAQ,KAAK,EAAE;EACf"}
@@ -0,0 +1,31 @@
1
+ import { spawn } from 'child_process'
2
+ import path from 'path'
3
+ import { globalLogger } from '../logger'
4
+ import type { StepConfig } from '../types'
5
+
6
+ export const getRubyConfig = (file: string): Promise<StepConfig> => {
7
+ const getConfig = path.join(__dirname, 'get_config.rb')
8
+
9
+ return new Promise((resolve, reject) => {
10
+ let config: StepConfig | null = null
11
+
12
+ const child = spawn('ruby', [getConfig, file], {
13
+ stdio: ['inherit', 'inherit', 'inherit', 'ipc'],
14
+ })
15
+
16
+ child.on('message', (message) => {
17
+ globalLogger.debug('[Ruby Config] Read config', { config: message })
18
+ config = message as StepConfig
19
+ })
20
+
21
+ child.on('close', (code) => {
22
+ if (code !== 0) {
23
+ reject(new Error(`Process exited with code ${code}`))
24
+ } else if (!config) {
25
+ reject(new Error(`No config found for file ${file}`))
26
+ } else {
27
+ resolve(config)
28
+ }
29
+ })
30
+ })
31
+ }
@@ -41,10 +41,16 @@ type HandlerConfig = {
41
41
  timeout: number;
42
42
  };
43
43
  type QueueConfig = {
44
- type: 'fifo' | 'standard';
44
+ type: 'fifo';
45
45
  maxRetries: number;
46
46
  visibilityTimeout: number;
47
47
  delaySeconds: number;
48
+ } | {
49
+ type: 'standard';
50
+ maxRetries: number;
51
+ visibilityTimeout: number;
52
+ delaySeconds: number;
53
+ concurrency?: number;
48
54
  };
49
55
  type InfrastructureConfig = {
50
56
  handler?: Partial<HandlerConfig>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../../src/types.ts"],"sourcesContent":[],"mappings":";;;;;;;;KAOY,QAAA,GAAW,iBAAiB;KAE5B,eAAA,GAAkB,WAAW;KAE7B,oBAAA;EAJA,GAAA,CAAA,CAAA,CAAA,CAAA,OAAQ,EAAA,MAAA,EAAG,GAAA,EAAA,MAAiB,CAAA,EAKA,OALQ,CAKA,CALA,GAAA,IAAA,CAAA;EAEpC,GAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,MAAe,EAAA,GAAA,EAAA,MAAG,EAAA,KAAW,EAIK,CAJL,CAAA,EAIS,OAJC,CAIO,CAJP,CAAA;EAEvC,MAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,MAAoB,EAAA,GAAA,EAAA,MAAA,CAAA,EAGW,OAHX,CAGmB,CAHnB,GAAA,IAAA,CAAA;EACgB,QAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAGhB,OAHgB,CAGR,CAHQ,EAAA,CAAA;EAAR,KAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAId,OAJc,CAAA,IAAA,CAAA;CACM;AAAY,KAM9C,QAAA,GAN8C;EAAR,KAAA,EAAA,EAAA;EACC,IAAA,EAAA,OAAA;EAAR,cAAA,CAAA,EAAA,MAAA;CACH;AAAR,KAKpB,OALoB,CAAA,KAAA,CAAA,GAAA,CAAA,KAAA,EAKK,KALL,EAAA,GAKe,OALf,CAAA,IAAA,CAAA;AACN,UAOT,uBAAA,CAPS;AAGd,UAMK,WANG,CAAA,YAAA,KAAA,CAAA,CAAA;EACR,IAAA,EAMJ,OANW,CAMH,SANG,CAAA;EAGF,OAAA,EAAA,MAAA;EAEA,KAAA,EAGR,oBAHmB;EACZ,MAAA,EAGN,MAHM;EAAR,OAAA,EAIG,uBAJH;;AAGE,KAIE,YAJF,CAAA,MAAA,EAAA,SAAA,CAAA,GAAA,CAAA,KAAA,EAI4C,MAJ5C,EAAA,GAAA,EAIyD,WAJzD,CAIqE,SAJrE,CAAA,EAAA,GAIoF,OAJpF,CAAA,IAAA,CAAA;AACC,KAKC,IAAA,GALD,MAAA,GAAA;EAAuB,KAAA,EAAA,MAAA;EAGtB,KAAA,CAAA,EAAA,MAAA;EAA0C,WAAA,CAAA,EAAA,OAAA;CAAyB;AAAZ,KAIvD,aAAA,GAJuD;EAA2B,GAAA,EAAA,MAAA;EAAO,GAAA,CAAA,EAAA,MAAA;EAEzF,OAAI,EAAA,MAAA;AAEhB,CAAA;AAMY,KAAA,WAAA,GAAW;EAOX,IAAA,EAAA,MAAA,GAAA,UAAoB;EACZ,UAAA,EAAA,MAAA;EAAR,iBAAA,EAAA,MAAA;EACM,YAAA,EAAA,MAAA;CAAR;AAAO,KAFL,oBAAA,GAEK;EAGL,OAAA,CAAA,EAJA,OAIW,CAJH,aAIG,CAAA;EAKd,KAAA,CAAA,EARC,OAQD,CARS,WAQT,CAAA;CACQ;AAEP,KARE,WAAA,GAQF;EAOiB,IAAA,EAAA,OAAA;EAAR,IAAA,EAAA,MAAA;EAAO,WAAA,CAAA,EAAA,MAAA;EAGd,UAAA,EAAA,MAAU,EAAA;EASV,KAAA,EAtBH,IAsBG,EAAA;EAEA,YAAA,CAAA,EAvBK,IAuBQ,EAAA;EACP,iBAAA,CAAA,EAAA,MAAA,EAAA;EAAX,KAAA,CAAA,EAtBG,eAsBH;EACY,KAAA,CAAA,EAAA,MAAA,EAAA;EAAZ;;;;EAE0B,YAAA,CAAA,EAAA,MAAA,EAAA;EAApB,cAAA,CAAA,EAlBM,OAkBN,CAlBc,oBAkBd,CAAA;CAAR;AAAO,KAfA,UAAA,GAeA;EAEK,IAAA,EAAA,MAAA;EAKA,IAAA,EAAA,MAAA;EAKP,WAAA,CAAA,EAAA,MAAA;EACD,YAAA,EAxBO,IAwBP,EAAA;EACQ,iBAAA,EAAA,MAAA,EAAA;EAGF,KAAA,CAAA,EAAA,MAAA,EAAA;CACA;AACmB,KAzBtB,cAAA,GAyBsB,KAAA,GAAA,MAAA,GAAA,KAAA,GAAA,QAAA,GAAA,OAAA,GAAA,SAAA,GAAA,MAAA;AAAf,KAvBP,aAuBO,CAAA,QAAA,OAAA,EAAA,YAAA,KAAA,EAAA,UAAA,OAAA,CAAA,GAAA,CAAA,GAAA,EAtBZ,UAsBY,CAtBD,KAsBC,CAAA,EAAA,GAAA,EArBZ,WAqBY,CArBA,SAqBA,CAAA,EAAA,IAAA,EAAA,GAAA,GApBL,OAoBK,CApBG,WAoBH,CAAA,MAAA,EApBuB,OAoBvB,CAAA,CAAA,EAAA,GAnBd,OAmBc,CAnBN,WAmBM,CAAA,MAAA,EAnBc,OAmBd,CAAA,CAAA;AACH,UAlBC,UAAA,CAkBD;EAAU,IAAA,EAAA,MAAA;EAQT,WAAA,EAAU,MAAA;;AAEZ,UAvBE,cAAA,CAuBF;EACP,IAAA,EAAA,KAAA;EACG,IAAA,EAAA,MAAA;EAAM,WAAA,CAAA,EAAA,MAAA;EAQL,IAAA,EAAA,MAAA;EAA8D,MAAA,EA5BhE,cA4BgE;EAAS,KAAA,EA3B1E,IA2B0E,EAAA;EACzE,YAAA,CAAA,EA3BO,IA2BP,EAAA;EACE,iBAAA,CAAA,EAAA,MAAA,EAAA;EACJ,KAAA,CAAA,EAAA,MAAA,EAAA;EAAK,UAAA,CAAA,EA1BE,aA0BF,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA,EAAA;EAGD,UAAA,CAAA,EA5BG,eA4BY;EAEH,cAAA,CAAA,EA7BL,MA6BK,CAAA,MAAA,EA7BU,eA6BV,CAAA;EAA+B,WAAA,CAAA,EA5BvC,UA4BuC,EAAA;EAElC;;;;EAAuD,YAAA,CAAA,EAAA,MAAA,EAAA;;AAAD,UAtB1D,UAsB0D,CAAA,QAAA,OAAA,CAAA,CAAA;EAE/D,UAAA,EAvBE,MAuBQ,CAAA,MAKL,EAAA,MAER,CAAA;EASG,WAAA,EAtCG,MAsCQ,CAAA,MAAA,EAAA,MAAA,GAAA,MAAA,EAAA,CAAA;EAAwC,IAAA,EArCvD,KAqCuD;EAAZ,OAAA,EApCxC,MAoCwC,CAAA,MAAA,EAAA,MAAA,GAAA,MAAA,EAAA,CAAA;EAA2B;;AAK9E;;EAAuC,OAAA,EAAA,MAAA;;AAEnC,KAnCQ,WAmCR,CAAA,gBAAA,MAAA,GAAA,MAAA,EAAA,QAAA,MAAA,GAnCsE,MAmCtE,GAnC+E,MAmC/E,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GAAA;EAAU,MAAA,EAlCJ,OAkCI;EACa,OAAA,CAAA,EAlCf,MAkCe,CAAA,MAAA,EAAA,MAAA,CAAA;EAArB,IAAA,EAjCE,KAiCF;CACA;AAAU,KA/BJ,eA+BI,CAAA,eAAA,OAAA,EAAA,sBA7BQ,WA6BR,CAAA,MAAA,EAAA,OAAA,CAAA,GA7BuC,WA6BvC,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,YAAA,KAAA,CAAA,GAAA,CAAA,GAAA,EA3BN,UA2BM,CA3BK,YA2BL,CAAA,EAAA,GAAA,EA3ByB,WA2BzB,CA3BqC,SA2BrC,CAAA,EAAA,GA3BoD,OA2BpD,CA3B4D,aA2B5D,CAAA;AACR,KA1BI,UAAA,GA0BJ;EAAW,IAAA,EAAA,MAAA;EAGP,IAAA,EAAA,MAAK;EAET,WAAA,CAAA,EAAA,MAAA;EAGG,IAAA,EAAA,MAAA;EACA,YAAA,CAAA,EA9BM,IA8BN,EAAA;EAAM,iBAAA,CAAA,EAAA,MAAA,EAAA;EAIL,KAAA,EAhCH,IAgCU,EAAA;EAAkC,KAAA,CAAA,EAAA,MAAA,EAAA;EAAN;;;AAE/C;EAOY,YAAA,CAAA,EAAA,MAAiB,EAAA;AAK7B,CAAA;AAAyB,KArCb,WAqCa,CAAA,YAAA,KAAA,CAAA,GAAA,CAAA,GAAA,EArC0B,WAqC1B,CArCsC,SAqCtC,CAAA,EAAA,GArCqD,OAqCrD,CAAA,IAAA,CAAA;;;;AAAsD,KAhCnE,WAgCmE,CAAA,CAAA,CAAA,GAhClD,CAgCkD,SAhCxC,WAgCwC,GA/B3E,YA+B2E,CAAA,OAAA,EAAA;EAEnE,KAAA,EAAI,MAAA;EAAiB,IAAA,EAAA,GAAA;CAAa,CAAA,GAhC1C,CAgC0C,SAhChC,cAgCgC,GA/BxC,eA+BwC,CAAA,GAAA,EA/BnB,WA+BmB,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA;EAA2D,KAAA,EAAA,MAAA;EAAO,IAAA,EAAA,GAAA;AAEhH,CAAA,CAAA,GAhCM,CAgCM,SAhCI,UAgCM,GA/Bd,WA+Bc,CAAA;EAAiB,KAAA,EAAA,MAAA;EAAa,IAAA,EAAA,GAAA;CAAuB,CAAA,GAAA,KAAA;AAAL,KA5B1D,KA4B0D,CAAA,QAAA,OAAA,CAAA,GAAA;EAC1D,KAAA,EAAA,MAAA;EAAe,IAAA,EA3BnB,KA2BmB;EAGf,OAAI,EAAA,MAAA;EAOC,KAAA,CAAA,EAAA,MAAQ,EAAA;EAAG,MAAA,CAAA,EAlCjB,MAkCiB;EAAA,MAAA,CAAA,EAjCjB,MAiCiB;gBAAA,CAAA,EAAA,MAAA;CAAA;AAAA,KA7BhB,OA6BgB,CAAA,QAAA,OAAA,CAAA,GAAA,CAAA,KAAA,EA7BmB,KA6BnB,CA7ByB,KA6BzB,CAAA,EAAA,GA7BoC,OA6BpC,CAAA,IAAA,CAAA;KA3BhB;;;;WAID,QAAQ;;KAGP,iBAAA;;;;KAKA,UAAA,GAAa,cAAc,aAAa,iBAAiB;KAEzD,qBAAqB,aAAa;;;UAA2D;;KAE7F,2BAA2B,aAAa,kBAAkB,KAAK;YAC/D;;KAGA,IAAA;;;SAGH;;UAIQ,QAAA"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../src/types.ts"],"sourcesContent":[],"mappings":"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"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "import": "./dist/index.mjs"
12
12
  }
13
13
  },
14
- "version": "0.15.0-beta.165",
14
+ "version": "0.15.2-beta.167",
15
15
  "dependencies": {
16
16
  "@amplitude/analytics-node": "^1.5.26",
17
17
  "@standard-schema/spec": "^1.0.0",
@@ -46,14 +46,11 @@
46
46
  },
47
47
  "scripts": {
48
48
  "python-setup": "python3 -m venv python_modules && python_modules/bin/pip install -r requirements.txt",
49
- "move:python": "mkdir -p dist/src/python && cp src/python/*.py dist/src/python",
50
- "move:rb": "mkdir -p dist/src/ruby && cp src/ruby/*.rb dist/src/ruby",
51
- "move:steps": "mkdir -p dist/src/steps && cp src/steps/*.ts dist/src/steps",
52
- "build": "tsdown && npm run move:python && npm run move:rb && npm run move:steps",
49
+ "build": "tsdown",
53
50
  "dev": "tsdown --watch",
54
51
  "lint": "biome check .",
55
52
  "watch": "tsc --watch",
56
53
  "test": "NODE_OPTIONS='--experimental-vm-modules --no-warnings=ExperimentalWarning' jest",
57
- "clean": "rm -rf python_modules dist"
54
+ "clean": "rimraf dist python_modules"
58
55
  }
59
56
  }
package/tsdown.config.ts CHANGED
@@ -50,4 +50,9 @@ export default defineConfig({
50
50
  outDir: 'dist',
51
51
  sourcemap: true,
52
52
  unbundle: true,
53
+ copy: [
54
+ { from: 'src/python', to: 'dist/src/python' },
55
+ { from: 'src/ruby', to: 'dist/src/ruby' },
56
+ { from: 'src/steps', to: 'dist/src/steps' },
57
+ ],
53
58
  })