@marktoflow/core 2.0.0-alpha.7 → 2.0.1

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.
Files changed (120) hide show
  1. package/README.md +24 -220
  2. package/dist/built-in-operations.d.ts +150 -0
  3. package/dist/built-in-operations.d.ts.map +1 -0
  4. package/dist/built-in-operations.js +799 -0
  5. package/dist/built-in-operations.js.map +1 -0
  6. package/dist/core-tools.d.ts +39 -0
  7. package/dist/core-tools.d.ts.map +1 -0
  8. package/dist/core-tools.js +58 -0
  9. package/dist/core-tools.js.map +1 -0
  10. package/dist/credentials.d.ts +60 -1
  11. package/dist/credentials.d.ts.map +1 -1
  12. package/dist/credentials.js +229 -4
  13. package/dist/credentials.js.map +1 -1
  14. package/dist/engine.d.ts +144 -3
  15. package/dist/engine.d.ts.map +1 -1
  16. package/dist/engine.js +1385 -49
  17. package/dist/engine.js.map +1 -1
  18. package/dist/file-operations.d.ts +86 -0
  19. package/dist/file-operations.d.ts.map +1 -0
  20. package/dist/file-operations.js +363 -0
  21. package/dist/file-operations.js.map +1 -0
  22. package/dist/index.d.ts +16 -5
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +46 -4
  25. package/dist/index.js.map +1 -1
  26. package/dist/logging.d.ts +40 -2
  27. package/dist/logging.d.ts.map +1 -1
  28. package/dist/logging.js +166 -13
  29. package/dist/logging.js.map +1 -1
  30. package/dist/models.d.ts +1931 -203
  31. package/dist/models.d.ts.map +1 -1
  32. package/dist/models.js +303 -13
  33. package/dist/models.js.map +1 -1
  34. package/dist/nunjucks-filters.d.ts +271 -0
  35. package/dist/nunjucks-filters.d.ts.map +1 -0
  36. package/dist/nunjucks-filters.js +648 -0
  37. package/dist/nunjucks-filters.js.map +1 -0
  38. package/dist/oauth-manager.d.ts +128 -0
  39. package/dist/oauth-manager.d.ts.map +1 -0
  40. package/dist/oauth-manager.js +291 -0
  41. package/dist/oauth-manager.js.map +1 -0
  42. package/dist/oauth-refresh.d.ts +37 -0
  43. package/dist/oauth-refresh.d.ts.map +1 -0
  44. package/dist/oauth-refresh.js +76 -0
  45. package/dist/oauth-refresh.js.map +1 -0
  46. package/dist/parser.d.ts.map +1 -1
  47. package/dist/parser.js +291 -10
  48. package/dist/parser.js.map +1 -1
  49. package/dist/permissions.d.ts +49 -0
  50. package/dist/permissions.d.ts.map +1 -0
  51. package/dist/permissions.js +286 -0
  52. package/dist/permissions.js.map +1 -0
  53. package/dist/prompt-loader.d.ts +53 -0
  54. package/dist/prompt-loader.d.ts.map +1 -0
  55. package/dist/prompt-loader.js +205 -0
  56. package/dist/prompt-loader.js.map +1 -0
  57. package/dist/scheduler.d.ts +22 -3
  58. package/dist/scheduler.d.ts.map +1 -1
  59. package/dist/scheduler.js +72 -73
  60. package/dist/scheduler.js.map +1 -1
  61. package/dist/script-executor.d.ts +65 -0
  62. package/dist/script-executor.d.ts.map +1 -0
  63. package/dist/script-executor.js +261 -0
  64. package/dist/script-executor.js.map +1 -0
  65. package/dist/sdk-registry.d.ts +20 -2
  66. package/dist/sdk-registry.d.ts.map +1 -1
  67. package/dist/sdk-registry.js +100 -15
  68. package/dist/sdk-registry.js.map +1 -1
  69. package/dist/secret-providers/index.d.ts +12 -0
  70. package/dist/secret-providers/index.d.ts.map +1 -0
  71. package/dist/secret-providers/index.js +11 -0
  72. package/dist/secret-providers/index.js.map +1 -0
  73. package/dist/secret-providers/providers/aws.d.ts +32 -0
  74. package/dist/secret-providers/providers/aws.d.ts.map +1 -0
  75. package/dist/secret-providers/providers/aws.js +118 -0
  76. package/dist/secret-providers/providers/aws.js.map +1 -0
  77. package/dist/secret-providers/providers/azure.d.ts +40 -0
  78. package/dist/secret-providers/providers/azure.d.ts.map +1 -0
  79. package/dist/secret-providers/providers/azure.js +170 -0
  80. package/dist/secret-providers/providers/azure.js.map +1 -0
  81. package/dist/secret-providers/providers/env.d.ts +26 -0
  82. package/dist/secret-providers/providers/env.d.ts.map +1 -0
  83. package/dist/secret-providers/providers/env.js +59 -0
  84. package/dist/secret-providers/providers/env.js.map +1 -0
  85. package/dist/secret-providers/providers/vault.d.ts +39 -0
  86. package/dist/secret-providers/providers/vault.d.ts.map +1 -0
  87. package/dist/secret-providers/providers/vault.js +180 -0
  88. package/dist/secret-providers/providers/vault.js.map +1 -0
  89. package/dist/secret-providers/secret-manager.d.ts +72 -0
  90. package/dist/secret-providers/secret-manager.d.ts.map +1 -0
  91. package/dist/secret-providers/secret-manager.js +226 -0
  92. package/dist/secret-providers/secret-manager.js.map +1 -0
  93. package/dist/secret-providers/types.d.ts +105 -0
  94. package/dist/secret-providers/types.d.ts.map +1 -0
  95. package/dist/secret-providers/types.js +8 -0
  96. package/dist/secret-providers/types.js.map +1 -0
  97. package/dist/security.d.ts +1 -0
  98. package/dist/security.d.ts.map +1 -1
  99. package/dist/security.js +4 -0
  100. package/dist/security.js.map +1 -1
  101. package/dist/state.d.ts.map +1 -1
  102. package/dist/state.js +16 -9
  103. package/dist/state.js.map +1 -1
  104. package/dist/template-engine.d.ts +51 -0
  105. package/dist/template-engine.d.ts.map +1 -0
  106. package/dist/template-engine.js +227 -0
  107. package/dist/template-engine.js.map +1 -0
  108. package/dist/templates.d.ts +10 -0
  109. package/dist/templates.d.ts.map +1 -1
  110. package/dist/templates.js +21 -17
  111. package/dist/templates.js.map +1 -1
  112. package/dist/tools/mcp-tool.js +9 -9
  113. package/dist/tools/mcp-tool.js.map +1 -1
  114. package/dist/trigger-manager.js +1 -1
  115. package/dist/trigger-manager.js.map +1 -1
  116. package/dist/workflow-tools.d.ts +102 -0
  117. package/dist/workflow-tools.d.ts.map +1 -0
  118. package/dist/workflow-tools.js +130 -0
  119. package/dist/workflow-tools.js.map +1 -0
  120. package/package.json +24 -6
package/dist/scheduler.js CHANGED
@@ -2,9 +2,12 @@
2
2
  * Scheduler for marktoflow v2.0
3
3
  *
4
4
  * Handles cron-based scheduling of workflow execution.
5
+ * Uses cron-parser for robust cron expression handling with proper
6
+ * DST handling, leap year support, and timezone awareness.
5
7
  */
8
+ import { CronExpressionParser } from 'cron-parser';
6
9
  // ============================================================================
7
- // Cron Parser
10
+ // Cron Parser (wrapper around cron-parser)
8
11
  // ============================================================================
9
12
  export class CronParser {
10
13
  /**
@@ -17,57 +20,18 @@ export class CronParser {
17
20
  if (parts.length !== 5) {
18
21
  throw new Error(`Invalid cron expression: ${expression}. Expected 5 fields.`);
19
22
  }
20
- const ranges = {
21
- minute: [0, 59],
22
- hour: [0, 23],
23
- day: [1, 31],
24
- month: [1, 12],
25
- weekday: [0, 6],
23
+ // Use cron-parser to validate and parse
24
+ const cronExpr = CronExpressionParser.parse(expression);
25
+ const fields = cronExpr.fields;
26
+ // Extract numeric values from cron fields
27
+ const extractNumbers = (values) => values.filter((v) => typeof v === 'number');
28
+ return {
29
+ minute: extractNumbers(fields.minute.values),
30
+ hour: extractNumbers(fields.hour.values),
31
+ day: extractNumbers(fields.dayOfMonth.values),
32
+ month: extractNumbers(fields.month.values),
33
+ weekday: extractNumbers(fields.dayOfWeek.values),
26
34
  };
27
- const fieldNames = ['minute', 'hour', 'day', 'month', 'weekday'];
28
- const result = {
29
- minute: [],
30
- hour: [],
31
- day: [],
32
- month: [],
33
- weekday: [],
34
- };
35
- for (let i = 0; i < fieldNames.length; i++) {
36
- const name = fieldNames[i];
37
- const [min, max] = ranges[name];
38
- result[name] = this.parseField(parts[i], min, max);
39
- }
40
- return result;
41
- }
42
- static parseField(field, minVal, maxVal) {
43
- const values = new Set();
44
- for (const part of field.split(',')) {
45
- if (part === '*') {
46
- for (let i = minVal; i <= maxVal; i++) {
47
- values.add(i);
48
- }
49
- }
50
- else if (part.includes('/')) {
51
- const [base, stepStr] = part.split('/');
52
- const step = parseInt(stepStr, 10);
53
- const start = base === '*' ? minVal : parseInt(base, 10);
54
- for (let i = start; i <= maxVal; i += step) {
55
- values.add(i);
56
- }
57
- }
58
- else if (part.includes('-')) {
59
- const [startStr, endStr] = part.split('-');
60
- const start = parseInt(startStr, 10);
61
- const end = parseInt(endStr, 10);
62
- for (let i = start; i <= end; i++) {
63
- values.add(i);
64
- }
65
- }
66
- else {
67
- values.add(parseInt(part, 10));
68
- }
69
- }
70
- return Array.from(values).sort((a, b) => a - b);
71
35
  }
72
36
  /**
73
37
  * Check if a date matches a cron expression.
@@ -87,28 +51,63 @@ export class CronParser {
87
51
  }
88
52
  /**
89
53
  * Calculate the next run time for a cron expression.
54
+ * Supports timezone-aware scheduling.
90
55
  */
91
- static nextRun(expression, after) {
92
- const start = after || new Date();
56
+ static nextRun(expression, after, timezone) {
93
57
  try {
94
- this.parse(expression);
58
+ const cronExpr = CronExpressionParser.parse(expression, {
59
+ currentDate: after ?? new Date(),
60
+ tz: timezone ?? 'UTC',
61
+ });
62
+ return cronExpr.next().toDate();
95
63
  }
96
64
  catch {
97
65
  return null;
98
66
  }
99
- // Start from next minute
100
- const current = new Date(start);
101
- current.setSeconds(0, 0);
102
- current.setMinutes(current.getMinutes() + 1);
103
- // Search up to 1 year ahead
104
- const maxIterations = 366 * 24 * 60;
105
- for (let i = 0; i < maxIterations; i++) {
106
- if (this.matches(expression, current)) {
107
- return current;
108
- }
109
- current.setMinutes(current.getMinutes() + 1);
67
+ }
68
+ /**
69
+ * Calculate the previous run time for a cron expression.
70
+ */
71
+ static prevRun(expression, before, timezone) {
72
+ try {
73
+ const cronExpr = CronExpressionParser.parse(expression, {
74
+ currentDate: before ?? new Date(),
75
+ tz: timezone ?? 'UTC',
76
+ });
77
+ return cronExpr.prev().toDate();
78
+ }
79
+ catch {
80
+ return null;
81
+ }
82
+ }
83
+ /**
84
+ * Validate a cron expression without throwing.
85
+ * Only accepts standard 5-field cron expressions.
86
+ */
87
+ static isValid(expression) {
88
+ if (!expression || typeof expression !== 'string') {
89
+ return false;
90
+ }
91
+ const parts = expression.trim().split(/\s+/);
92
+ if (parts.length !== 5) {
93
+ return false;
94
+ }
95
+ try {
96
+ CronExpressionParser.parse(expression);
97
+ return true;
110
98
  }
111
- return null;
99
+ catch {
100
+ return false;
101
+ }
102
+ }
103
+ /**
104
+ * Get the underlying cron-parser CronExpression for advanced usage.
105
+ */
106
+ static getInterval(expression, options) {
107
+ return CronExpressionParser.parse(expression, {
108
+ currentDate: options?.currentDate ?? new Date(),
109
+ tz: options?.tz ?? 'UTC',
110
+ });
112
111
  }
113
112
  }
114
113
  // ============================================================================
@@ -127,8 +126,8 @@ export class Scheduler {
127
126
  * Add a scheduled job.
128
127
  */
129
128
  addJob(job) {
130
- // Calculate next run time
131
- job.nextRun = CronParser.nextRun(job.schedule);
129
+ // Calculate next run time with timezone support
130
+ job.nextRun = CronParser.nextRun(job.schedule, undefined, job.timezone);
132
131
  this.jobs.set(job.id, job);
133
132
  }
134
133
  /**
@@ -203,7 +202,7 @@ export class Scheduler {
203
202
  // Update job state
204
203
  job.lastRun = now;
205
204
  job.runCount++;
206
- job.nextRun = CronParser.nextRun(job.schedule, now);
205
+ job.nextRun = CronParser.nextRun(job.schedule, now, job.timezone);
207
206
  }
208
207
  }
209
208
  /**
@@ -228,7 +227,7 @@ export class Scheduler {
228
227
  }
229
228
  job.lastRun = now;
230
229
  job.runCount++;
231
- job.nextRun = CronParser.nextRun(job.schedule, now);
230
+ job.nextRun = CronParser.nextRun(job.schedule, now, job.timezone);
232
231
  results.set(job.id, now);
233
232
  }
234
233
  return results;
@@ -243,15 +242,15 @@ export class Scheduler {
243
242
  // ============================================================================
244
243
  // Helper Functions
245
244
  // ============================================================================
246
- export function createJob(id, workflowPath, schedule, inputs = {}) {
245
+ export function createJob(id, workflowPath, schedule, inputs = {}, timezone = 'UTC') {
247
246
  return {
248
247
  id,
249
248
  workflowPath,
250
249
  schedule,
251
- timezone: 'UTC',
250
+ timezone,
252
251
  enabled: true,
253
252
  lastRun: null,
254
- nextRun: CronParser.nextRun(schedule),
253
+ nextRun: CronParser.nextRun(schedule, undefined, timezone),
255
254
  runCount: 0,
256
255
  inputs,
257
256
  };
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,oBAAoB,EAAuB,MAAM,aAAa,CAAC;AA4BxE,+EAA+E;AAC/E,2CAA2C;AAC3C,+EAA+E;AAE/E,MAAM,OAAO,UAAU;IACrB;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,UAAkB;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,sBAAsB,CAAC,CAAC;QAChF,CAAC;QAED,wCAAwC;QACxC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE/B,0CAA0C;QAC1C,MAAM,cAAc,GAAG,CAAC,MAAoC,EAAY,EAAE,CACxE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAa,CAAC;QAE1D,OAAO;YACL,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAC5C,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACxC,GAAG,EAAE,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;YAC7C,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAC1C,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;SACjD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,UAAkB,EAAE,IAAU;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAEtC,OAAO,CACL,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC1C,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CACvC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,UAAkB,EAAE,KAAY,EAAE,QAAiB;QAChE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE;gBACtD,WAAW,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE;gBAChC,EAAE,EAAE,QAAQ,IAAI,KAAK;aACtB,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,UAAkB,EAAE,MAAa,EAAE,QAAiB;QACjE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE;gBACtD,WAAW,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE;gBACjC,EAAE,EAAE,QAAQ,IAAI,KAAK;aACtB,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,UAAkB;QAC/B,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,UAAkB,EAAE,OAA6C;QAClF,OAAO,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE;YAC5C,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,IAAI,IAAI,EAAE;YAC/C,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,KAAK;SACzB,CAAC,CAAC;IACL,CAAC;CACF;AAED,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,MAAM,OAAO,SAAS;IAMA;IALZ,IAAI,GAA8B,IAAI,GAAG,EAAE,CAAC;IAC5C,OAAO,GAAG,KAAK,CAAC;IAChB,UAAU,GAA0C,IAAI,CAAC;IACzD,SAAS,GAAkB,EAAE,CAAC;IAEtC,YAAoB,kBAA0B,KAAK;QAA/B,oBAAe,GAAf,eAAe,CAAgB;IAAG,CAAC;IAEvD;;OAEG;IACH,MAAM,CAAC,GAAiB;QACtB,gDAAgD;QAChD,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAqB;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,mCAAmC;QACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,iBAAiB,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QAEjF,6CAA6C;QAC7C,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9E,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS;QACrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,OAAO;gBAAE,SAAS;YAC3B,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO;gBAAE,SAAS;YAEhD,iCAAiC;YACjC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YAED,mBAAmB;YACnB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;YAClB,GAAG,CAAC,QAAQ,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,OAAO;gBAAE,SAAS;YAC3B,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO;gBAAE,SAAS;YAEhD,aAAa;YACb,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YAED,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;YAClB,GAAG,CAAC,QAAQ,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,UAAU,SAAS,CACvB,EAAU,EACV,YAAoB,EACpB,QAAgB,EAChB,SAAkC,EAAE,EACpC,WAAmB,KAAK;IAExB,OAAO;QACL,EAAE;QACF,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC1D,QAAQ,EAAE,CAAC;QACX,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Script Executor for marktoflow v2.0
3
+ *
4
+ * Provides secure inline JavaScript execution for `script` step types.
5
+ * Uses Node.js `vm` module with:
6
+ * - Frozen context (read-only access to variables/inputs)
7
+ * - Configurable timeout
8
+ * - Safe globals (JSON, Math, Date, Array, etc.)
9
+ *
10
+ * Example usage in workflow:
11
+ * ```yaml
12
+ * - type: script
13
+ * inputs:
14
+ * code: |
15
+ * const items = variables.api_response.items;
16
+ * const filtered = items.filter(i => i.status === 'active');
17
+ * return { filtered, count: filtered.length };
18
+ * timeout: 5000
19
+ * output_variable: result
20
+ * ```
21
+ */
22
+ export interface ScriptExecutorOptions {
23
+ /** Maximum execution time in milliseconds (default: 5000) */
24
+ timeout?: number;
25
+ /** Additional globals to expose to the script */
26
+ extraGlobals?: Record<string, unknown>;
27
+ }
28
+ export interface ScriptContext {
29
+ /** Workflow variables (read-only) */
30
+ variables: Record<string, unknown>;
31
+ /** Workflow inputs (read-only) */
32
+ inputs: Record<string, unknown>;
33
+ /** Step results metadata (read-only) */
34
+ steps?: Record<string, unknown>;
35
+ }
36
+ export interface ScriptResult {
37
+ /** Whether the script executed successfully */
38
+ success: boolean;
39
+ /** The return value of the script */
40
+ value?: unknown;
41
+ /** Error message if execution failed */
42
+ error?: string;
43
+ }
44
+ /**
45
+ * Execute a JavaScript code snippet in a sandboxed environment.
46
+ *
47
+ * @param code The JavaScript code to execute
48
+ * @param context Variables and inputs available to the script
49
+ * @param options Execution options (timeout, extra globals)
50
+ * @returns The result of script execution
51
+ */
52
+ export declare function executeScript(code: string, context: ScriptContext, options?: ScriptExecutorOptions): ScriptResult;
53
+ /**
54
+ * Execute a script asynchronously, properly handling async code.
55
+ */
56
+ export declare function executeScriptAsync(code: string, context: ScriptContext, options?: ScriptExecutorOptions): Promise<ScriptResult>;
57
+ /**
58
+ * Validate that a script doesn't contain dangerous patterns.
59
+ * This is a basic check; the VM sandbox provides the real security.
60
+ */
61
+ export declare function validateScript(code: string): {
62
+ valid: boolean;
63
+ warnings: string[];
64
+ };
65
+ //# sourceMappingURL=script-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-executor.d.ts","sourceRoot":"","sources":["../src/script-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAQH,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA4ED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,qBAA0B,GAClC,YAAY,CAmEd;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,YAAY,CAAC,CAgEvB;AA6BD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAwBnF"}
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Script Executor for marktoflow v2.0
3
+ *
4
+ * Provides secure inline JavaScript execution for `script` step types.
5
+ * Uses Node.js `vm` module with:
6
+ * - Frozen context (read-only access to variables/inputs)
7
+ * - Configurable timeout
8
+ * - Safe globals (JSON, Math, Date, Array, etc.)
9
+ *
10
+ * Example usage in workflow:
11
+ * ```yaml
12
+ * - type: script
13
+ * inputs:
14
+ * code: |
15
+ * const items = variables.api_response.items;
16
+ * const filtered = items.filter(i => i.status === 'active');
17
+ * return { filtered, count: filtered.length };
18
+ * timeout: 5000
19
+ * output_variable: result
20
+ * ```
21
+ */
22
+ import * as vm from 'node:vm';
23
+ // ============================================================================
24
+ // Safe Globals
25
+ // ============================================================================
26
+ /**
27
+ * Safe globals available to scripts.
28
+ * These are frozen copies that cannot modify the original objects.
29
+ */
30
+ const SAFE_GLOBALS = {
31
+ // JSON operations
32
+ JSON,
33
+ // Math operations - use the real Math object (it's already effectively immutable)
34
+ Math,
35
+ // Date operations
36
+ Date,
37
+ // Array utilities
38
+ Array,
39
+ // Object utilities
40
+ Object,
41
+ // String utilities
42
+ String,
43
+ // Number utilities
44
+ Number: {
45
+ isFinite: Number.isFinite,
46
+ isInteger: Number.isInteger,
47
+ isNaN: Number.isNaN,
48
+ parseFloat: Number.parseFloat,
49
+ parseInt: Number.parseInt,
50
+ },
51
+ // Other safe utilities
52
+ parseInt,
53
+ parseFloat,
54
+ isFinite,
55
+ isNaN,
56
+ encodeURIComponent,
57
+ decodeURIComponent,
58
+ encodeURI,
59
+ decodeURI,
60
+ // Console for debugging (limited to log/warn/error)
61
+ console: {
62
+ log: (...args) => console.log('[script]', ...args),
63
+ warn: (...args) => console.warn('[script]', ...args),
64
+ error: (...args) => console.error('[script]', ...args),
65
+ },
66
+ // Promise is allowed for async operations
67
+ Promise,
68
+ // Timer functions for async operations
69
+ setTimeout,
70
+ clearTimeout,
71
+ setInterval,
72
+ clearInterval,
73
+ // Map and Set
74
+ Map,
75
+ Set,
76
+ // RegExp for pattern matching
77
+ RegExp,
78
+ };
79
+ // ============================================================================
80
+ // Script Execution
81
+ // ============================================================================
82
+ /**
83
+ * Execute a JavaScript code snippet in a sandboxed environment.
84
+ *
85
+ * @param code The JavaScript code to execute
86
+ * @param context Variables and inputs available to the script
87
+ * @param options Execution options (timeout, extra globals)
88
+ * @returns The result of script execution
89
+ */
90
+ export function executeScript(code, context, options = {}) {
91
+ const timeout = options.timeout ?? 5000;
92
+ try {
93
+ // Create frozen copies of context to prevent modification
94
+ const frozenContext = {
95
+ variables: deepFreeze({ ...context.variables }),
96
+ inputs: deepFreeze({ ...context.inputs }),
97
+ steps: context.steps ? deepFreeze({ ...context.steps }) : undefined,
98
+ };
99
+ // Build the sandbox with safe globals and context
100
+ const sandbox = {
101
+ ...SAFE_GLOBALS,
102
+ ...frozenContext,
103
+ ...(options.extraGlobals ?? {}),
104
+ };
105
+ // Wrap the code in an async IIFE that returns the result
106
+ // This allows `return` statements and async/await
107
+ const wrappedCode = `
108
+ (async () => {
109
+ ${code}
110
+ })()
111
+ `;
112
+ // Create a VM context
113
+ const vmContext = vm.createContext(sandbox, {
114
+ name: 'script-executor',
115
+ codeGeneration: {
116
+ strings: false, // Disable eval() and Function()
117
+ wasm: false, // Disable WebAssembly
118
+ },
119
+ });
120
+ // Compile and run the script
121
+ const script = new vm.Script(wrappedCode, {
122
+ filename: 'inline-script.js',
123
+ });
124
+ // Run with timeout
125
+ const resultPromise = script.runInContext(vmContext, {
126
+ timeout,
127
+ displayErrors: true,
128
+ });
129
+ // Handle both sync and async results
130
+ if (resultPromise instanceof Promise) {
131
+ // For async code, we need to handle the promise
132
+ // Since this is a sync function, we'll need to handle this specially
133
+ // The caller should await the result if it's a promise
134
+ return {
135
+ success: true,
136
+ value: resultPromise,
137
+ };
138
+ }
139
+ return {
140
+ success: true,
141
+ value: resultPromise,
142
+ };
143
+ }
144
+ catch (error) {
145
+ return {
146
+ success: false,
147
+ error: error instanceof Error ? error.message : String(error),
148
+ };
149
+ }
150
+ }
151
+ /**
152
+ * Execute a script asynchronously, properly handling async code.
153
+ */
154
+ export async function executeScriptAsync(code, context, options = {}) {
155
+ const timeout = options.timeout ?? 5000;
156
+ try {
157
+ // Create frozen copies of context to prevent modification
158
+ const frozenContext = {
159
+ variables: deepFreeze({ ...context.variables }),
160
+ inputs: deepFreeze({ ...context.inputs }),
161
+ steps: context.steps ? deepFreeze({ ...context.steps }) : undefined,
162
+ };
163
+ // Build the sandbox with safe globals and context
164
+ const sandbox = {
165
+ ...SAFE_GLOBALS,
166
+ ...frozenContext,
167
+ ...(options.extraGlobals ?? {}),
168
+ };
169
+ // Wrap the code in an async IIFE
170
+ const wrappedCode = `
171
+ (async () => {
172
+ ${code}
173
+ })()
174
+ `;
175
+ // Create a VM context
176
+ const vmContext = vm.createContext(sandbox, {
177
+ name: 'script-executor',
178
+ codeGeneration: {
179
+ strings: false,
180
+ wasm: false,
181
+ },
182
+ });
183
+ // Compile the script
184
+ const script = new vm.Script(wrappedCode, {
185
+ filename: 'inline-script.js',
186
+ });
187
+ // Run with timeout using a race
188
+ const timeoutPromise = new Promise((_, reject) => {
189
+ setTimeout(() => reject(new Error(`Script execution timed out after ${timeout}ms`)), timeout);
190
+ });
191
+ const resultPromise = script.runInContext(vmContext, {
192
+ displayErrors: true,
193
+ });
194
+ // Wait for result or timeout
195
+ const result = await Promise.race([
196
+ resultPromise instanceof Promise ? resultPromise : Promise.resolve(resultPromise),
197
+ timeoutPromise,
198
+ ]);
199
+ return {
200
+ success: true,
201
+ value: result,
202
+ };
203
+ }
204
+ catch (error) {
205
+ return {
206
+ success: false,
207
+ error: error instanceof Error ? error.message : String(error),
208
+ };
209
+ }
210
+ }
211
+ // ============================================================================
212
+ // Utility Functions
213
+ // ============================================================================
214
+ /**
215
+ * Deep freeze an object to prevent any modifications.
216
+ */
217
+ function deepFreeze(obj) {
218
+ if (obj === null || typeof obj !== 'object') {
219
+ return obj;
220
+ }
221
+ // Freeze arrays and objects recursively
222
+ if (Array.isArray(obj)) {
223
+ obj.forEach((item) => deepFreeze(item));
224
+ }
225
+ else {
226
+ Object.keys(obj).forEach((key) => {
227
+ const value = obj[key];
228
+ if (typeof value === 'object' && value !== null) {
229
+ deepFreeze(value);
230
+ }
231
+ });
232
+ }
233
+ return Object.freeze(obj);
234
+ }
235
+ /**
236
+ * Validate that a script doesn't contain dangerous patterns.
237
+ * This is a basic check; the VM sandbox provides the real security.
238
+ */
239
+ export function validateScript(code) {
240
+ const warnings = [];
241
+ // Check for common dangerous patterns
242
+ const dangerousPatterns = [
243
+ { pattern: /require\s*\(/, message: 'require() is not available in scripts' },
244
+ { pattern: /import\s+/, message: 'import statements are not available in scripts' },
245
+ { pattern: /process\./, message: 'process object is not available in scripts' },
246
+ { pattern: /global\./, message: 'global object is not available in scripts' },
247
+ { pattern: /globalThis\./, message: 'globalThis is not available in scripts' },
248
+ { pattern: /eval\s*\(/, message: 'eval() is not available in scripts' },
249
+ { pattern: /Function\s*\(/, message: 'Function constructor is not available in scripts' },
250
+ ];
251
+ for (const { pattern, message } of dangerousPatterns) {
252
+ if (pattern.test(code)) {
253
+ warnings.push(message);
254
+ }
255
+ }
256
+ return {
257
+ valid: warnings.length === 0,
258
+ warnings,
259
+ };
260
+ }
261
+ //# sourceMappingURL=script-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-executor.js","sourceRoot":"","sources":["../src/script-executor.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import { ToolConfig } from './models.js';
8
8
  import { McpLoader } from './mcp-loader.js';
9
+ import { SecretManager } from './secret-providers/secret-manager.js';
9
10
  export interface SDKInstance {
10
11
  name: string;
11
12
  sdk: unknown;
@@ -29,13 +30,19 @@ export interface SDKInitializer {
29
30
  initialize(module: unknown, config: ToolConfig): Promise<unknown>;
30
31
  }
31
32
  export declare const defaultSDKLoader: SDKLoader;
33
+ /**
34
+ * Maps SDK names to actual npm package names.
35
+ * Used when the SDK name in workflows differs from the npm package name.
36
+ */
37
+ export declare const packageNameMappings: Record<string, string>;
32
38
  export declare const defaultInitializers: Record<string, SDKInitializer>;
33
39
  export declare class SDKRegistry {
34
40
  private sdks;
35
41
  private loader;
36
42
  private initializers;
37
43
  private mcpLoader;
38
- constructor(loader?: SDKLoader, initializers?: Record<string, SDKInitializer>, mcpLoader?: McpLoader);
44
+ private secretManager?;
45
+ constructor(loader?: SDKLoader, initializers?: Record<string, SDKInitializer>, mcpLoader?: McpLoader, secretManager?: SecretManager);
39
46
  /**
40
47
  * Register tool configurations from a workflow.
41
48
  */
@@ -48,6 +55,10 @@ export declare class SDKRegistry {
48
55
  * Load and initialize an SDK.
49
56
  */
50
57
  load(name: string): Promise<unknown>;
58
+ /**
59
+ * Resolve secret references in tool configuration.
60
+ */
61
+ private resolveConfigSecrets;
51
62
  private isMcpModule;
52
63
  private createMcpProxy;
53
64
  /**
@@ -71,6 +82,13 @@ export interface SDKRegistryLike {
71
82
  load(sdkName: string): Promise<unknown>;
72
83
  has(sdkName: string): boolean;
73
84
  }
85
+ /**
86
+ * Execution context interface for step executor
87
+ */
88
+ export interface ExecutionContextLike {
89
+ variables: Record<string, unknown>;
90
+ inputs: Record<string, unknown>;
91
+ }
74
92
  /**
75
93
  * Create a step executor that invokes SDK methods.
76
94
  */
@@ -78,5 +96,5 @@ export declare function createSDKStepExecutor(): (step: {
78
96
  action?: string;
79
97
  workflow?: string;
80
98
  inputs: Record<string, unknown>;
81
- }, _context: unknown, sdkRegistry: SDKRegistryLike) => Promise<unknown>;
99
+ }, executionContext: unknown, sdkRegistry: SDKRegistryLike) => Promise<unknown>;
82
100
  //# sourceMappingURL=sdk-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-registry.d.ts","sourceRoot":"","sources":["../src/sdk-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAMD,eAAO,MAAM,gBAAgB,EAAE,SAa9B,CAAC;AAMF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAmE9D,CAAC;AAMF,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,SAAS,CAAY;gBAG3B,MAAM,GAAE,SAA4B,EACpC,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAuB,EAClE,SAAS,CAAC,EAAE,SAAS;IAOvB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI;IAatD;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8C1C,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,cAAc;IAgCtB;;OAEG;YACW,iBAAiB;IAoB/B;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,IAAI;IAIvE;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAMD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,KAEjC,MAAM;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC7E,UAAU,OAAO,EACjB,aAAa,eAAe,KAC3B,OAAO,CAAC,OAAO,CAAC,CAwCpB"}
1
+ {"version":3,"file":"sdk-registry.d.ts","sourceRoot":"","sources":["../src/sdk-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAMrE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAMD,eAAO,MAAM,gBAAgB,EAAE,SAa9B,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMtD,CAAC;AAMF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAmF9D,CAAC;AAMF,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAGpC,MAAM,GAAE,SAA4B,EACpC,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAuB,EAClE,SAAS,CAAC,EAAE,SAAS,EACrB,aAAa,CAAC,EAAE,aAAa;IAU/B;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI;IA0BtD;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoD1C;;OAEG;YACW,oBAAoB;IAsBlC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,cAAc;IAgCtB;;OAEG;YACW,iBAAiB;IAoB/B;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,IAAI;IAIvE;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAMD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,KAEjC,MAAM;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC7E,kBAAkB,OAAO,EACzB,aAAa,eAAe,KAC3B,OAAO,CAAC,OAAO,CAAC,CA0DpB"}