@kb-labs/workflow-contracts 2.94.0 → 2.96.0

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/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import { E as ExpressionContext, W as WorkflowInvocationSpec } from './rest-api-BVWeRsk-.js';
2
- export { A as ApprovalReviewItem, a as ApprovalReviewItemSchema, b as ArtifactMergeConfig, c as ArtifactMergeConfigSchema, d as ArtifactMergeSource, e as ArtifactMergeSourceSchema, f as ArtifactMergeStrategy, g as ArtifactMergeStrategySchema, C as ConcurrencyGroup, h as ConcurrencyGroupSchema, i as CreateRunInput, j as CronInfo, k as CronInfoSchema, l as CronListResponse, m as CronListResponseSchema, n as CronRegistrationRequest, D as DashboardStatsResponse, o as DashboardStatsResponseSchema, p as ExecutionResult, q as ExecutionResultSchema, r as ExecutionTarget, s as ExecutionTargetSchema, I as IWorkflowEngine, t as IdempotencyKey, u as IdempotencyKeySchema, v as IsolationProfile, w as IsolationProfileSchema, J as JobArtifactsSchema, x as JobCancelResponse, y as JobCancelResponseSchema, z as JobConcurrencySchema, B as JobHooks, F as JobHooksSchema, G as JobListFilter, H as JobListResponse, K as JobListResponseSchema, L as JobLogsResponse, M as JobLogsResponseSchema, N as JobRun, O as JobRunSchema, P as JobSpec, Q as JobSpecSchema, R as JobStateSchema, S as JobStatusInfo, T as JobStatusInfoSchema, U as JobStatusSchema, V as JobStepInfo, X as JobStepInfoSchema, Y as JobStepsResponse, Z as JobStepsResponseSchema, _ as JobSubmissionRequest, $ as JobSubmissionResponse, a0 as ListRunsFilter, a1 as Phase, a2 as PhaseSchema, a3 as ResultError, a4 as ResultErrorSchema, a5 as ResultMetrics, a6 as ResultMetricsSchema, a7 as RetryModeSchema, a8 as RetryPolicy, a9 as RetryPolicySchema, aa as RunMetadata, ab as RunMetadataSchema, ac as RunSchema, ad as RunStateSchema, ae as RunTrigger, af as RunTriggerSchema, ag as StepArtifact, ah as StepArtifactSchema, ai as StepProgress, aj as StepProgressSchema, ak as StepRun, al as StepRunErrorSchema, am as StepRunSchema, an as StepSpec, ao as StepSpecSchema, ap as StepStateSchema, aq as TenantIdSchema, ar as TimeoutSchema, as as WorkflowInfo, at as WorkflowInfoSchema, au as WorkflowInputField, av as WorkflowInputFieldSchema, aw as WorkflowListResponse, ax as WorkflowListResponseSchema, ay as WorkflowLogEvent, az as WorkflowRun, aA as WorkflowRunHistoryResponse, aB as WorkflowRunHistoryResponseSchema, aC as WorkflowRunInfo, aD as WorkflowRunInfoSchema, aE as WorkflowRunRequest, aF as WorkflowRunRequestSchema, aG as WorkflowSpec, aH as WorkflowSpecSchema, aI as WorkflowTriggerSchema, aJ as WorkflowValidationResult } from './rest-api-BVWeRsk-.js';
1
+ import { E as ExpressionContext, W as WorkflowInvocationSpec } from './rest-api-C7Qdk5Wo.js';
2
+ export { A as ApprovalReviewItem, a as ApprovalReviewItemSchema, b as ArtifactMergeConfig, c as ArtifactMergeConfigSchema, d as ArtifactMergeSource, e as ArtifactMergeSourceSchema, f as ArtifactMergeStrategy, g as ArtifactMergeStrategySchema, C as ConcurrencyGroup, h as ConcurrencyGroupSchema, i as CreateRunInput, j as CronInfo, k as CronInfoSchema, l as CronListResponse, m as CronListResponseSchema, n as CronRegistrationRequest, D as DashboardStatsResponse, o as DashboardStatsResponseSchema, p as ExecutionResult, q as ExecutionResultSchema, r as ExecutionTarget, s as ExecutionTargetSchema, F as FileLintResult, I as IWorkflowEngine, t as IdempotencyKey, u as IdempotencyKeySchema, v as IsolationProfile, w as IsolationProfileSchema, J as JobArtifactsSchema, x as JobCancelResponse, y as JobCancelResponseSchema, z as JobConcurrencySchema, B as JobHooks, G as JobHooksSchema, H as JobListFilter, K as JobListResponse, L as JobListResponseSchema, M as JobLogsResponse, N as JobLogsResponseSchema, O as JobRun, P as JobRunSchema, Q as JobSpec, R as JobSpecSchema, S as JobStateSchema, T as JobStatusInfo, U as JobStatusInfoSchema, V as JobStatusSchema, X as JobStepInfo, Y as JobStepInfoSchema, Z as JobStepsResponse, _ as JobStepsResponseSchema, $ as JobSubmissionRequest, a0 as JobSubmissionResponse, a1 as ListRunsFilter, a2 as Phase, a3 as PhaseSchema, a4 as ResultError, a5 as ResultErrorSchema, a6 as ResultMetrics, a7 as ResultMetricsSchema, a8 as RetryModeSchema, a9 as RetryPolicy, aa as RetryPolicySchema, ab as RunMetadata, ac as RunMetadataSchema, ad as RunSchema, ae as RunStateSchema, af as RunTrigger, ag as RunTriggerSchema, ah as StepArtifact, ai as StepArtifactSchema, aj as StepProgress, ak as StepProgressSchema, al as StepRun, am as StepRunErrorSchema, an as StepRunSchema, ao as StepSpec, ap as StepSpecSchema, aq as StepStateSchema, ar as TenantIdSchema, as as TimeoutSchema, at as WorkflowInfo, au as WorkflowInfoSchema, av as WorkflowInputField, aw as WorkflowInputFieldSchema, ax as WorkflowListResponse, ay as WorkflowListResponseSchema, az as WorkflowLogEvent, aA as WorkflowRerunRequest, aB as WorkflowRerunRequestSchema, aC as WorkflowRestartRequest, aD as WorkflowRestartRequestSchema, aE as WorkflowRestartResponse, aF as WorkflowRun, aG as WorkflowRunHistoryResponse, aH as WorkflowRunHistoryResponseSchema, aI as WorkflowRunInfo, aJ as WorkflowRunInfoSchema, aK as WorkflowRunRequest, aL as WorkflowRunRequestSchema, aM as WorkflowSpec, aN as WorkflowSpecSchema, aO as WorkflowTriggerSchema, aP as WorkflowValidationResult } from './rest-api-C7Qdk5Wo.js';
3
3
  import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
4
4
  import { z } from 'zod';
5
+ import '@kb-labs/workflow-constants';
5
6
 
6
7
  /**
7
8
  * Parse workflow: uses string into WorkflowInvocationSpec
@@ -24,11 +25,41 @@ declare function evaluateExpression(expr: string, context: ExpressionContext): b
24
25
  * Resolve a value from context (e.g., "env.VAR", "steps.build.outputs.version")
25
26
  */
26
27
  declare function resolveValue(path: string, context: ExpressionContext): unknown;
28
+ /**
29
+ * Coerce value to string for comparison
30
+ */
31
+ declare function coerceToString(value: unknown): string;
27
32
  /**
28
33
  * Interpolate string with context values
29
34
  * Example: "Version: ${{ steps.build.outputs.version }}"
30
35
  */
31
36
  declare function interpolateString(str: string, context: ExpressionContext): string;
37
+ /**
38
+ * Build a shell-safe command from a `run:` block by injecting ${{ expr }} values
39
+ * as environment variables instead of raw string substitution.
40
+ *
41
+ * Raw substitution is unsafe because issue/PR titles may contain shell metacharacters
42
+ * (backticks, $(), quotes). When content arrives via an env var, shell expansion of
43
+ * the variable does NOT re-evaluate backticks or $() — they are literal characters.
44
+ *
45
+ * Single-quote context: when ${{ expr }} is wrapped in single quotes — the natural
46
+ * pattern for `jq --argjson x '${{ inputs.payload }}'` — bash single-quote semantics
47
+ * would prevent ${_WF_var} from expanding. The single-quoted wrapper is replaced with
48
+ * a double-quoted reference instead:
49
+ *
50
+ * Example:
51
+ * Input: `echo "${{ steps.issue.outputs.title }}"`
52
+ * Output: command = `echo "${_WF_steps_issue_outputs_title}"`
53
+ * shellEnvVars = { _WF_steps_issue_outputs_title: "Add `kb cancel` command" }
54
+ *
55
+ * Input: `jq --argjson payload '${{ inputs.invoice_payload }}' '{"x":1}'`
56
+ * Output: command = `jq --argjson payload "${_WF_inputs_invoice_payload}" '{"x":1}'`
57
+ * shellEnvVars = { _WF_inputs_invoice_payload: '{"vendor":"Acme","total":250}' }
58
+ */
59
+ declare function buildShellSafeCommand(rawRun: string, context: ExpressionContext): {
60
+ command: string;
61
+ shellEnvVars: Record<string, string>;
62
+ };
32
63
  /**
33
64
  * Resolve expression preserving types.
34
65
  * If the string is exactly one `${{ expr }}` (no surrounding text),
@@ -77,6 +108,10 @@ declare const logsFlags: _kb_labs_shared_command_kit.FlagSchemaWithInfer<{
77
108
  type: "string";
78
109
  description: string;
79
110
  };
111
+ 'run-id': {
112
+ type: "string";
113
+ description: string;
114
+ };
80
115
  follow: {
81
116
  type: "boolean";
82
117
  description: string;
@@ -180,20 +215,20 @@ declare const PluginCronJobSchema: z.ZodObject<{
180
215
  id: string;
181
216
  priority: "high" | "normal" | "low";
182
217
  schedule: string;
183
- enabled: boolean;
184
218
  handler: string;
219
+ enabled: boolean;
185
220
  timezone?: string | undefined;
186
- input?: Record<string, unknown> | undefined;
187
221
  metadata?: Record<string, unknown> | undefined;
222
+ input?: Record<string, unknown> | undefined;
188
223
  }, {
189
224
  id: string;
190
225
  schedule: string;
191
226
  handler: string;
192
227
  priority?: "high" | "normal" | "low" | undefined;
193
228
  timezone?: string | undefined;
194
- enabled?: boolean | undefined;
195
- input?: Record<string, unknown> | undefined;
196
229
  metadata?: Record<string, unknown> | undefined;
230
+ input?: Record<string, unknown> | undefined;
231
+ enabled?: boolean | undefined;
197
232
  }>;
198
233
  type PluginCronJob = z.infer<typeof PluginCronJobSchema>;
199
234
  /**
@@ -211,24 +246,24 @@ declare const UserCronJobSchema: z.ZodObject<{
211
246
  jobs: z.ZodRecord<z.ZodString, z.ZodAny>;
212
247
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
213
248
  }, "strip", z.ZodTypeAny, {
249
+ name: string;
214
250
  priority: "high" | "normal" | "low";
215
- jobs: Record<string, any>;
216
251
  schedule: string;
252
+ jobs: Record<string, any>;
217
253
  enabled: boolean;
218
- name: string;
219
254
  autoStart: boolean;
220
- timezone?: string | undefined;
221
255
  env?: Record<string, string> | undefined;
256
+ timezone?: string | undefined;
222
257
  metadata?: Record<string, unknown> | undefined;
223
258
  }, {
224
- jobs: Record<string, any>;
225
- schedule: string;
226
259
  name: string;
260
+ schedule: string;
261
+ jobs: Record<string, any>;
262
+ env?: Record<string, string> | undefined;
227
263
  priority?: "high" | "normal" | "low" | undefined;
228
264
  timezone?: string | undefined;
229
- enabled?: boolean | undefined;
230
- env?: Record<string, string> | undefined;
231
265
  metadata?: Record<string, unknown> | undefined;
266
+ enabled?: boolean | undefined;
232
267
  autoStart?: boolean | undefined;
233
268
  }>;
234
269
  type UserCronJob = z.infer<typeof UserCronJobSchema>;
@@ -273,7 +308,7 @@ declare const CronExecutionSchema: z.ZodObject<{
273
308
  stack?: string | undefined;
274
309
  }>>;
275
310
  }, "strip", z.ZodTypeAny, {
276
- status: "pending" | "running" | "failed" | "success";
311
+ status: "running" | "success" | "failed" | "pending";
277
312
  runId: string;
278
313
  cronJobId: string;
279
314
  scheduledAt: string;
@@ -284,7 +319,7 @@ declare const CronExecutionSchema: z.ZodObject<{
284
319
  stack?: string | undefined;
285
320
  } | undefined;
286
321
  }, {
287
- status: "pending" | "running" | "failed" | "success";
322
+ status: "running" | "success" | "failed" | "pending";
288
323
  runId: string;
289
324
  cronJobId: string;
290
325
  scheduledAt: string;
@@ -343,4 +378,4 @@ declare const WORKFLOW_ROUTES: {
343
378
  readonly RESOLVE_APPROVAL: "/runs/:runId/approve";
344
379
  };
345
380
 
346
- export { type CronExecution, CronExecutionSchema, CronScheduleSchema, ExpressionContext, type HealthFlags, type ListFlags, type LogsFlags, type MetricsFlags, type PluginCronJob, PluginCronJobSchema, type RegisteredCronJob, type RunFlags, type StatusFlags, type UserCronJob, UserCronJobSchema, WORKFLOW_BASE_PATH, WORKFLOW_ROUTES, WorkflowInvocationSpec, evaluateExpression, extractExpressions, healthFlags, interpolateObject, interpolateString, listFlags, logsFlags, metricsFlags, parseWorkflowUses, resolveExpression, resolveValue, runFlags, statusFlags };
381
+ export { type CronExecution, CronExecutionSchema, CronScheduleSchema, ExpressionContext, type HealthFlags, type ListFlags, type LogsFlags, type MetricsFlags, type PluginCronJob, PluginCronJobSchema, type RegisteredCronJob, type RunFlags, type StatusFlags, type UserCronJob, UserCronJobSchema, WORKFLOW_BASE_PATH, WORKFLOW_ROUTES, WorkflowInvocationSpec, buildShellSafeCommand, coerceToString, evaluateExpression, extractExpressions, healthFlags, interpolateObject, interpolateString, listFlags, logsFlags, metricsFlags, parseWorkflowUses, resolveExpression, resolveValue, runFlags, statusFlags };
package/dist/index.js CHANGED
@@ -53,6 +53,10 @@ var StepSpecSchema = z.object({
53
53
  z.literal("builtin:shell"),
54
54
  z.literal("builtin:approval"),
55
55
  z.literal("builtin:gate"),
56
+ // CLI command form — the resolver matches the part after `command:`
57
+ // verbatim against a manifest command path (e.g. `review run`,
58
+ // `agent trace stats`), which contains spaces. Allow them here.
59
+ z.string().regex(/^command:[a-zA-Z0-9@/_:+#. -]+$/),
56
60
  z.string().regex(/^(plugin:|workflow:)?[a-zA-Z0-9@/_:+#.-]+$/)
57
61
  ]).optional(),
58
62
  /** Shell command shorthand — equivalent to uses: builtin:shell with: { command: ... } */
@@ -198,7 +202,12 @@ var StepRunSchema = z.object({
198
202
  * Stored separately from spec.with so original ${{ }} templates are preserved
199
203
  * and future re-executions (gate restartFrom) can re-interpolate correctly.
200
204
  */
201
- resolvedInputs: z.record(z.string(), z.unknown()).optional()
205
+ resolvedInputs: z.record(z.string(), z.unknown()).optional(),
206
+ /**
207
+ * Step-level execution metadata (e.g. gate iteration counter).
208
+ * Cleared on step reset except metadata.iterations which persists across restarts.
209
+ */
210
+ metadata: z.record(z.string(), z.unknown()).optional()
202
211
  });
203
212
  var JobRunSchema = z.object({
204
213
  id: z.string().min(1),
@@ -226,6 +235,7 @@ var JobRunSchema = z.object({
226
235
  pendingDependencies: z.array(z.string().min(1)).optional(),
227
236
  blocked: z.boolean().optional(),
228
237
  priority: z.enum(["high", "normal", "low"]).optional(),
238
+ if: z.string().optional(),
229
239
  steps: z.array(StepRunSchema)
230
240
  });
231
241
  var RunTriggerSchema = z.object({
@@ -326,13 +336,13 @@ function extractExpressions(str) {
326
336
  }
327
337
  function evaluateExpression(expr, context) {
328
338
  const trimmed = expr.trim();
329
- if (trimmed.includes("&&")) {
330
- const parts = trimmed.split("&&").map((p) => p.trim());
331
- return parts.every((part) => evaluateExpression(part, context));
339
+ const orParts = splitOnOperator(trimmed, "||");
340
+ if (orParts.length > 1) {
341
+ return orParts.some((part) => evaluateExpression(part.trim(), context));
332
342
  }
333
- if (trimmed.includes("||")) {
334
- const parts = trimmed.split("||").map((p) => p.trim());
335
- return parts.some((part) => evaluateExpression(part, context));
343
+ const andParts = splitOnOperator(trimmed, "&&");
344
+ if (andParts.length > 1) {
345
+ return andParts.every((part) => evaluateExpression(part.trim(), context));
336
346
  }
337
347
  if (trimmed.startsWith("!")) {
338
348
  return !evaluateExpression(trimmed.slice(1).trim(), context);
@@ -464,6 +474,9 @@ function coerceToString(value) {
464
474
  if (typeof value === "boolean") {
465
475
  return value ? "true" : "false";
466
476
  }
477
+ if (typeof value === "object") {
478
+ return JSON.stringify(value);
479
+ }
467
480
  return String(value);
468
481
  }
469
482
  function interpolateString(str, context) {
@@ -480,6 +493,25 @@ function interpolateString(str, context) {
480
493
  }
481
494
  return result;
482
495
  }
496
+ function buildShellSafeCommand(rawRun, context) {
497
+ const expressions = extractExpressions(rawRun);
498
+ const shellEnvVars = {};
499
+ let command = rawRun;
500
+ for (const expr of expressions) {
501
+ const value = resolveValueWithFallback(expr, context);
502
+ const strValue = coerceToString(value);
503
+ const safeName = "_WF_" + expr.trim().replace(/[^a-zA-Z0-9_]/g, "_");
504
+ shellEnvVars[safeName] = strValue;
505
+ const sqPattern = new RegExp(
506
+ `'\\$\\{\\{\\s*${escapeRegex(expr)}\\s*\\}\\}'`,
507
+ "g"
508
+ );
509
+ command = command.replace(sqPattern, `"\${${safeName}}"`);
510
+ const pattern = new RegExp(`\\$\\{\\{\\s*${escapeRegex(expr)}\\s*\\}\\}`, "g");
511
+ command = command.replace(pattern, `\${${safeName}}`);
512
+ }
513
+ return { command, shellEnvVars };
514
+ }
483
515
  function escapeRegex(str) {
484
516
  return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
485
517
  }
@@ -582,7 +614,11 @@ var logsFlags = defineFlags({
582
614
  },
583
615
  "job-id": {
584
616
  type: "string",
585
- description: "Job ID to get logs for (required)"
617
+ description: "Job ID to get logs for"
618
+ },
619
+ "run-id": {
620
+ type: "string",
621
+ description: "Run ID to get logs for (all steps)"
586
622
  },
587
623
  follow: {
588
624
  type: "boolean",
@@ -730,7 +766,9 @@ var WorkflowInfoSchema = z.object({
730
766
  source: z.enum(["manifest", "standalone", "plugin"]),
731
767
  pluginId: z.string().optional(),
732
768
  status: z.enum(["active", "inactive"]).optional(),
733
- tags: z.array(z.string()).optional()
769
+ tags: z.array(z.string()).optional(),
770
+ version: z.string().optional(),
771
+ updatedAt: z.string().optional()
734
772
  });
735
773
  var WorkflowListResponseSchema = z.object({
736
774
  workflows: z.array(WorkflowInfoSchema)
@@ -750,6 +788,13 @@ var WorkflowRunRequestSchema = z.object({
750
788
  user: z.string().optional()
751
789
  }).optional()
752
790
  });
791
+ var WorkflowRerunRequestSchema = z.object({
792
+ failedOnly: z.boolean().optional()
793
+ });
794
+ var WorkflowRestartRequestSchema = z.object({
795
+ fromStepId: z.string().optional(),
796
+ env: z.record(z.string()).optional()
797
+ });
753
798
  var DashboardStatsResponseSchema = z.object({
754
799
  workflows: z.object({
755
800
  total: z.number(),
@@ -872,6 +917,6 @@ var WORKFLOW_ROUTES = {
872
917
  RESOLVE_APPROVAL: "/runs/:runId/approve"
873
918
  };
874
919
 
875
- export { ApprovalReviewItemSchema, ArtifactMergeConfigSchema, ArtifactMergeSourceSchema, ArtifactMergeStrategySchema, ConcurrencyGroupSchema, CronExecutionSchema, CronInfoSchema, CronListResponseSchema, CronScheduleSchema, DashboardStatsResponseSchema, ExecutionResultSchema, ExecutionTargetSchema, IdempotencyKeySchema, IsolationProfileSchema, JobArtifactsSchema, JobCancelResponseSchema, JobConcurrencySchema, JobHooksSchema, JobListResponseSchema, JobLogsResponseSchema, JobRunSchema, JobSpecSchema, JobStateSchema, JobStatusInfoSchema, JobStatusSchema, JobStepInfoSchema, JobStepsResponseSchema, PhaseSchema, PluginCronJobSchema, ResultErrorSchema, ResultMetricsSchema, RetryModeSchema, RetryPolicySchema, RunMetadataSchema, RunSchema, RunStateSchema, RunTriggerSchema, StepArtifactSchema, StepProgressSchema, StepRunErrorSchema, StepRunSchema, StepSpecSchema, StepStateSchema, TenantIdSchema, TimeoutSchema, UserCronJobSchema, WORKFLOW_BASE_PATH, WORKFLOW_ROUTES, WorkflowInfoSchema, WorkflowInputFieldSchema, WorkflowListResponseSchema, WorkflowRunHistoryResponseSchema, WorkflowRunInfoSchema, WorkflowRunRequestSchema, WorkflowSpecSchema, WorkflowTriggerSchema, evaluateExpression, extractExpressions, healthFlags, interpolateObject, interpolateString, listFlags, logsFlags, metricsFlags, parseWorkflowUses, resolveExpression, resolveValue, runFlags, statusFlags };
920
+ export { ApprovalReviewItemSchema, ArtifactMergeConfigSchema, ArtifactMergeSourceSchema, ArtifactMergeStrategySchema, ConcurrencyGroupSchema, CronExecutionSchema, CronInfoSchema, CronListResponseSchema, CronScheduleSchema, DashboardStatsResponseSchema, ExecutionResultSchema, ExecutionTargetSchema, IdempotencyKeySchema, IsolationProfileSchema, JobArtifactsSchema, JobCancelResponseSchema, JobConcurrencySchema, JobHooksSchema, JobListResponseSchema, JobLogsResponseSchema, JobRunSchema, JobSpecSchema, JobStateSchema, JobStatusInfoSchema, JobStatusSchema, JobStepInfoSchema, JobStepsResponseSchema, PhaseSchema, PluginCronJobSchema, ResultErrorSchema, ResultMetricsSchema, RetryModeSchema, RetryPolicySchema, RunMetadataSchema, RunSchema, RunStateSchema, RunTriggerSchema, StepArtifactSchema, StepProgressSchema, StepRunErrorSchema, StepRunSchema, StepSpecSchema, StepStateSchema, TenantIdSchema, TimeoutSchema, UserCronJobSchema, WORKFLOW_BASE_PATH, WORKFLOW_ROUTES, WorkflowInfoSchema, WorkflowInputFieldSchema, WorkflowListResponseSchema, WorkflowRerunRequestSchema, WorkflowRestartRequestSchema, WorkflowRunHistoryResponseSchema, WorkflowRunInfoSchema, WorkflowRunRequestSchema, WorkflowSpecSchema, WorkflowTriggerSchema, buildShellSafeCommand, coerceToString, evaluateExpression, extractExpressions, healthFlags, interpolateObject, interpolateString, listFlags, logsFlags, metricsFlags, parseWorkflowUses, resolveExpression, resolveValue, runFlags, statusFlags };
876
921
  //# sourceMappingURL=index.js.map
877
922
  //# sourceMappingURL=index.js.map