@open-mercato/core 0.6.7-develop.6580.1.39ab1d9e62 → 0.6.7-develop.6581.1.b770114f54

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.
@@ -1,8 +1,15 @@
1
+ import { registerCodeWorkflowEntries } from "@open-mercato/shared/modules/workflows/code-registry";
1
2
  import { workflowDefinitionDataSchema } from "../data/validators.js";
2
3
  import { createLogger } from "@open-mercato/shared/lib/logger";
3
4
  const logger = createLogger("workflows");
4
- const codeWorkflowRegistry = /* @__PURE__ */ new Map();
5
+ import {
6
+ getCodeWorkflow,
7
+ getAllCodeWorkflows,
8
+ isCodeWorkflow,
9
+ clearCodeWorkflowRegistry
10
+ } from "@open-mercato/shared/modules/workflows/code-registry";
5
11
  function registerCodeWorkflows(workflows) {
12
+ const valid = [];
6
13
  for (const wf of workflows) {
7
14
  const validation = workflowDefinitionDataSchema.safeParse(wf.definition);
8
15
  if (!validation.success) {
@@ -12,23 +19,9 @@ function registerCodeWorkflows(workflows) {
12
19
  });
13
20
  continue;
14
21
  }
15
- if (codeWorkflowRegistry.has(wf.workflowId)) {
16
- logger.warn("Duplicate code workflow ID \u2014 overwriting", { workflowId: wf.workflowId, moduleId: wf.moduleId });
17
- }
18
- codeWorkflowRegistry.set(wf.workflowId, wf);
22
+ valid.push(wf);
19
23
  }
20
- }
21
- function getCodeWorkflow(workflowId) {
22
- return codeWorkflowRegistry.get(workflowId);
23
- }
24
- function getAllCodeWorkflows() {
25
- return Array.from(codeWorkflowRegistry.values());
26
- }
27
- function isCodeWorkflow(workflowId) {
28
- return codeWorkflowRegistry.has(workflowId);
29
- }
30
- function clearCodeWorkflowRegistry() {
31
- codeWorkflowRegistry.clear();
24
+ registerCodeWorkflowEntries(valid);
32
25
  }
33
26
  export {
34
27
  clearCodeWorkflowRegistry,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/modules/workflows/lib/code-registry.ts"],
4
- "sourcesContent": ["/**\n * In-Memory Code Workflow Registry\n *\n * Stores code-based workflow definitions populated at bootstrap from\n * the generated workflows.generated.ts. Definitions live purely in memory \u2014\n * no DB row is created until a user customizes the definition.\n */\n\nimport type { CodeWorkflowDefinition } from '@open-mercato/shared/modules/workflows'\nimport { workflowDefinitionDataSchema } from '../data/validators'\nimport { createLogger } from '@open-mercato/shared/lib/logger'\n\nconst logger = createLogger('workflows')\n\nconst codeWorkflowRegistry = new Map<string, CodeWorkflowDefinition>()\n\n/**\n * Register code-based workflow definitions at bootstrap time.\n * Validates each definition against the Zod schema and warns on failures.\n */\nexport function registerCodeWorkflows(workflows: CodeWorkflowDefinition[]): void {\n for (const wf of workflows) {\n const validation = workflowDefinitionDataSchema.safeParse(wf.definition)\n if (!validation.success) {\n logger.warn('Code workflow failed validation', {\n workflowId: wf.workflowId,\n issues: validation.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`).join('; '),\n })\n continue\n }\n\n if (codeWorkflowRegistry.has(wf.workflowId)) {\n logger.warn('Duplicate code workflow ID \u2014 overwriting', { workflowId: wf.workflowId, moduleId: wf.moduleId })\n }\n\n codeWorkflowRegistry.set(wf.workflowId, wf)\n }\n}\n\n/**\n * Get a single code workflow definition by workflowId.\n */\nexport function getCodeWorkflow(workflowId: string): CodeWorkflowDefinition | undefined {\n return codeWorkflowRegistry.get(workflowId)\n}\n\n/**\n * Get all registered code workflow definitions.\n */\nexport function getAllCodeWorkflows(): CodeWorkflowDefinition[] {\n return Array.from(codeWorkflowRegistry.values())\n}\n\n/**\n * Check if a workflowId is a code-based definition.\n */\nexport function isCodeWorkflow(workflowId: string): boolean {\n return codeWorkflowRegistry.has(workflowId)\n}\n\n/**\n * Clear the registry (for testing).\n */\nexport function clearCodeWorkflowRegistry(): void {\n codeWorkflowRegistry.clear()\n}\n"],
5
- "mappings": "AASA,SAAS,oCAAoC;AAC7C,SAAS,oBAAoB;AAE7B,MAAM,SAAS,aAAa,WAAW;AAEvC,MAAM,uBAAuB,oBAAI,IAAoC;AAM9D,SAAS,sBAAsB,WAA2C;AAC/E,aAAW,MAAM,WAAW;AAC1B,UAAM,aAAa,6BAA6B,UAAU,GAAG,UAAU;AACvE,QAAI,CAAC,WAAW,SAAS;AACvB,aAAO,KAAK,mCAAmC;AAAA,QAC7C,YAAY,GAAG;AAAA,QACf,QAAQ,WAAW,MAAM,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,IAAI;AAAA,MAC3F,CAAC;AACD;AAAA,IACF;AAEA,QAAI,qBAAqB,IAAI,GAAG,UAAU,GAAG;AAC3C,aAAO,KAAK,iDAA4C,EAAE,YAAY,GAAG,YAAY,UAAU,GAAG,SAAS,CAAC;AAAA,IAC9G;AAEA,yBAAqB,IAAI,GAAG,YAAY,EAAE;AAAA,EAC5C;AACF;AAKO,SAAS,gBAAgB,YAAwD;AACtF,SAAO,qBAAqB,IAAI,UAAU;AAC5C;AAKO,SAAS,sBAAgD;AAC9D,SAAO,MAAM,KAAK,qBAAqB,OAAO,CAAC;AACjD;AAKO,SAAS,eAAe,YAA6B;AAC1D,SAAO,qBAAqB,IAAI,UAAU;AAC5C;AAKO,SAAS,4BAAkC;AAChD,uBAAqB,MAAM;AAC7B;",
4
+ "sourcesContent": ["/**\n * Code Workflow Registry (validating bridge)\n *\n * The registry store itself lives in `@open-mercato/shared` so all bootstrap\n * contexts (Next.js app, CLI, `mercato workers`) share one process-wide map \u2014\n * see `@open-mercato/shared/modules/workflows/code-registry`. This module\n * keeps the workflows engine's import path stable and adds Zod validation on\n * top of the raw registration used by the shared bootstrap factory.\n */\n\nimport type { CodeWorkflowDefinition } from '@open-mercato/shared/modules/workflows'\nimport { registerCodeWorkflowEntries } from '@open-mercato/shared/modules/workflows/code-registry'\nimport { workflowDefinitionDataSchema } from '../data/validators'\nimport { createLogger } from '@open-mercato/shared/lib/logger'\n\nconst logger = createLogger('workflows')\n\nexport {\n getCodeWorkflow,\n getAllCodeWorkflows,\n isCodeWorkflow,\n clearCodeWorkflowRegistry,\n} from '@open-mercato/shared/modules/workflows/code-registry'\n\n/**\n * Register code-based workflow definitions at bootstrap time.\n * Validates each definition against the Zod schema and warns on failures.\n */\nexport function registerCodeWorkflows(workflows: CodeWorkflowDefinition[]): void {\n const valid: CodeWorkflowDefinition[] = []\n for (const wf of workflows) {\n const validation = workflowDefinitionDataSchema.safeParse(wf.definition)\n if (!validation.success) {\n logger.warn('Code workflow failed validation', {\n workflowId: wf.workflowId,\n issues: validation.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`).join('; '),\n })\n continue\n }\n valid.push(wf)\n }\n registerCodeWorkflowEntries(valid)\n}\n"],
5
+ "mappings": "AAWA,SAAS,mCAAmC;AAC5C,SAAS,oCAAoC;AAC7C,SAAS,oBAAoB;AAE7B,MAAM,SAAS,aAAa,WAAW;AAEvC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAMA,SAAS,sBAAsB,WAA2C;AAC/E,QAAM,QAAkC,CAAC;AACzC,aAAW,MAAM,WAAW;AAC1B,UAAM,aAAa,6BAA6B,UAAU,GAAG,UAAU;AACvE,QAAI,CAAC,WAAW,SAAS;AACvB,aAAO,KAAK,mCAAmC;AAAA,QAC7C,YAAY,GAAG;AAAA,QACf,QAAQ,WAAW,MAAM,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,IAAI;AAAA,MAC3F,CAAC;AACD;AAAA,IACF;AACA,UAAM,KAAK,EAAE;AAAA,EACf;AACA,8BAA4B,KAAK;AACnC;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-mercato/core",
3
- "version": "0.6.7-develop.6580.1.39ab1d9e62",
3
+ "version": "0.6.7-develop.6581.1.b770114f54",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -253,16 +253,16 @@
253
253
  "zod": "^4.4.3"
254
254
  },
255
255
  "peerDependencies": {
256
- "@open-mercato/ai-assistant": "0.6.7-develop.6580.1.39ab1d9e62",
257
- "@open-mercato/shared": "0.6.7-develop.6580.1.39ab1d9e62",
258
- "@open-mercato/ui": "0.6.7-develop.6580.1.39ab1d9e62",
256
+ "@open-mercato/ai-assistant": "0.6.7-develop.6581.1.b770114f54",
257
+ "@open-mercato/shared": "0.6.7-develop.6581.1.b770114f54",
258
+ "@open-mercato/ui": "0.6.7-develop.6581.1.b770114f54",
259
259
  "react": "^19.0.0",
260
260
  "react-dom": "^19.0.0"
261
261
  },
262
262
  "devDependencies": {
263
- "@open-mercato/ai-assistant": "0.6.7-develop.6580.1.39ab1d9e62",
264
- "@open-mercato/shared": "0.6.7-develop.6580.1.39ab1d9e62",
265
- "@open-mercato/ui": "0.6.7-develop.6580.1.39ab1d9e62",
263
+ "@open-mercato/ai-assistant": "0.6.7-develop.6581.1.b770114f54",
264
+ "@open-mercato/shared": "0.6.7-develop.6581.1.b770114f54",
265
+ "@open-mercato/ui": "0.6.7-develop.6581.1.b770114f54",
266
266
  "@testing-library/dom": "^10.4.1",
267
267
  "@testing-library/jest-dom": "^6.9.1",
268
268
  "@testing-library/react": "^16.3.1",
@@ -1,24 +1,33 @@
1
1
  /**
2
- * In-Memory Code Workflow Registry
2
+ * Code Workflow Registry (validating bridge)
3
3
  *
4
- * Stores code-based workflow definitions populated at bootstrap from
5
- * the generated workflows.generated.ts. Definitions live purely in memory —
6
- * no DB row is created until a user customizes the definition.
4
+ * The registry store itself lives in `@open-mercato/shared` so all bootstrap
5
+ * contexts (Next.js app, CLI, `mercato workers`) share one process-wide map —
6
+ * see `@open-mercato/shared/modules/workflows/code-registry`. This module
7
+ * keeps the workflows engine's import path stable and adds Zod validation on
8
+ * top of the raw registration used by the shared bootstrap factory.
7
9
  */
8
10
 
9
11
  import type { CodeWorkflowDefinition } from '@open-mercato/shared/modules/workflows'
12
+ import { registerCodeWorkflowEntries } from '@open-mercato/shared/modules/workflows/code-registry'
10
13
  import { workflowDefinitionDataSchema } from '../data/validators'
11
14
  import { createLogger } from '@open-mercato/shared/lib/logger'
12
15
 
13
16
  const logger = createLogger('workflows')
14
17
 
15
- const codeWorkflowRegistry = new Map<string, CodeWorkflowDefinition>()
18
+ export {
19
+ getCodeWorkflow,
20
+ getAllCodeWorkflows,
21
+ isCodeWorkflow,
22
+ clearCodeWorkflowRegistry,
23
+ } from '@open-mercato/shared/modules/workflows/code-registry'
16
24
 
17
25
  /**
18
26
  * Register code-based workflow definitions at bootstrap time.
19
27
  * Validates each definition against the Zod schema and warns on failures.
20
28
  */
21
29
  export function registerCodeWorkflows(workflows: CodeWorkflowDefinition[]): void {
30
+ const valid: CodeWorkflowDefinition[] = []
22
31
  for (const wf of workflows) {
23
32
  const validation = workflowDefinitionDataSchema.safeParse(wf.definition)
24
33
  if (!validation.success) {
@@ -28,39 +37,7 @@ export function registerCodeWorkflows(workflows: CodeWorkflowDefinition[]): void
28
37
  })
29
38
  continue
30
39
  }
31
-
32
- if (codeWorkflowRegistry.has(wf.workflowId)) {
33
- logger.warn('Duplicate code workflow ID — overwriting', { workflowId: wf.workflowId, moduleId: wf.moduleId })
34
- }
35
-
36
- codeWorkflowRegistry.set(wf.workflowId, wf)
40
+ valid.push(wf)
37
41
  }
38
- }
39
-
40
- /**
41
- * Get a single code workflow definition by workflowId.
42
- */
43
- export function getCodeWorkflow(workflowId: string): CodeWorkflowDefinition | undefined {
44
- return codeWorkflowRegistry.get(workflowId)
45
- }
46
-
47
- /**
48
- * Get all registered code workflow definitions.
49
- */
50
- export function getAllCodeWorkflows(): CodeWorkflowDefinition[] {
51
- return Array.from(codeWorkflowRegistry.values())
52
- }
53
-
54
- /**
55
- * Check if a workflowId is a code-based definition.
56
- */
57
- export function isCodeWorkflow(workflowId: string): boolean {
58
- return codeWorkflowRegistry.has(workflowId)
59
- }
60
-
61
- /**
62
- * Clear the registry (for testing).
63
- */
64
- export function clearCodeWorkflowRegistry(): void {
65
- codeWorkflowRegistry.clear()
42
+ registerCodeWorkflowEntries(valid)
66
43
  }