@workglow/tasks 0.2.16 → 0.2.17
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/README.md +10 -9
- package/dist/browser.js +860 -648
- package/dist/browser.js.map +41 -41
- package/dist/bun.js +860 -648
- package/dist/bun.js.map +41 -41
- package/dist/electron.js +860 -648
- package/dist/electron.js.map +41 -41
- package/dist/node.js +860 -648
- package/dist/node.js.map +41 -41
- package/dist/task/ArrayTask.d.ts +4 -5
- package/dist/task/ArrayTask.d.ts.map +1 -1
- package/dist/task/DateFormatTask.d.ts +3 -2
- package/dist/task/DateFormatTask.d.ts.map +1 -1
- package/dist/task/DebugLogTask.d.ts +2 -1
- package/dist/task/DebugLogTask.d.ts.map +1 -1
- package/dist/task/InputTask.d.ts +2 -1
- package/dist/task/InputTask.d.ts.map +1 -1
- package/dist/task/JavaScriptTask.d.ts +4 -1
- package/dist/task/JavaScriptTask.d.ts.map +1 -1
- package/dist/task/JsonPathTask.d.ts +3 -2
- package/dist/task/JsonPathTask.d.ts.map +1 -1
- package/dist/task/LambdaTask.d.ts +7 -6
- package/dist/task/LambdaTask.d.ts.map +1 -1
- package/dist/task/OutputTask.d.ts +2 -1
- package/dist/task/OutputTask.d.ts.map +1 -1
- package/dist/task/RegexTask.d.ts +3 -2
- package/dist/task/RegexTask.d.ts.map +1 -1
- package/dist/task/SplitTask.d.ts +3 -2
- package/dist/task/SplitTask.d.ts.map +1 -1
- package/dist/task/TemplateTask.d.ts +3 -2
- package/dist/task/TemplateTask.d.ts.map +1 -1
- package/dist/task/image/ImageBlurTask.d.ts +3 -2
- package/dist/task/image/ImageBlurTask.d.ts.map +1 -1
- package/dist/task/image/ImageBorderTask.d.ts +3 -2
- package/dist/task/image/ImageBorderTask.d.ts.map +1 -1
- package/dist/task/image/ImageBrightnessTask.d.ts +3 -2
- package/dist/task/image/ImageBrightnessTask.d.ts.map +1 -1
- package/dist/task/image/ImageContrastTask.d.ts +3 -2
- package/dist/task/image/ImageContrastTask.d.ts.map +1 -1
- package/dist/task/image/ImageCropTask.d.ts +3 -2
- package/dist/task/image/ImageCropTask.d.ts.map +1 -1
- package/dist/task/image/ImageFlipTask.d.ts +3 -2
- package/dist/task/image/ImageFlipTask.d.ts.map +1 -1
- package/dist/task/image/ImageGrayscaleTask.d.ts +3 -2
- package/dist/task/image/ImageGrayscaleTask.d.ts.map +1 -1
- package/dist/task/image/ImageInvertTask.d.ts +3 -2
- package/dist/task/image/ImageInvertTask.d.ts.map +1 -1
- package/dist/task/image/ImagePixelateTask.d.ts +3 -2
- package/dist/task/image/ImagePixelateTask.d.ts.map +1 -1
- package/dist/task/image/ImagePosterizeTask.d.ts +3 -2
- package/dist/task/image/ImagePosterizeTask.d.ts.map +1 -1
- package/dist/task/image/ImageResizeTask.d.ts +3 -2
- package/dist/task/image/ImageResizeTask.d.ts.map +1 -1
- package/dist/task/image/ImageRotateTask.d.ts +3 -2
- package/dist/task/image/ImageRotateTask.d.ts.map +1 -1
- package/dist/task/image/ImageSepiaTask.d.ts +3 -2
- package/dist/task/image/ImageSepiaTask.d.ts.map +1 -1
- package/dist/task/image/ImageTextTask.d.ts +3 -2
- package/dist/task/image/ImageTextTask.d.ts.map +1 -1
- package/dist/task/image/ImageThresholdTask.d.ts +3 -2
- package/dist/task/image/ImageThresholdTask.d.ts.map +1 -1
- package/dist/task/image/ImageTintTask.d.ts +3 -2
- package/dist/task/image/ImageTintTask.d.ts.map +1 -1
- package/dist/task/image/ImageTransparencyTask.d.ts +3 -2
- package/dist/task/image/ImageTransparencyTask.d.ts.map +1 -1
- package/dist/task/image/ImageWatermarkTask.d.ts +3 -2
- package/dist/task/image/ImageWatermarkTask.d.ts.map +1 -1
- package/dist/task/string/StringConcatTask.d.ts +3 -2
- package/dist/task/string/StringConcatTask.d.ts.map +1 -1
- package/dist/task/string/StringIncludesTask.d.ts +3 -2
- package/dist/task/string/StringIncludesTask.d.ts.map +1 -1
- package/dist/task/string/StringJoinTask.d.ts +3 -2
- package/dist/task/string/StringJoinTask.d.ts.map +1 -1
- package/dist/task/string/StringLengthTask.d.ts +3 -2
- package/dist/task/string/StringLengthTask.d.ts.map +1 -1
- package/dist/task/string/StringLowerCaseTask.d.ts +3 -2
- package/dist/task/string/StringLowerCaseTask.d.ts.map +1 -1
- package/dist/task/string/StringReplaceTask.d.ts +3 -2
- package/dist/task/string/StringReplaceTask.d.ts.map +1 -1
- package/dist/task/string/StringSliceTask.d.ts +3 -2
- package/dist/task/string/StringSliceTask.d.ts.map +1 -1
- package/dist/task/string/StringTemplateTask.d.ts +3 -2
- package/dist/task/string/StringTemplateTask.d.ts.map +1 -1
- package/dist/task/string/StringTrimTask.d.ts +3 -2
- package/dist/task/string/StringTrimTask.d.ts.map +1 -1
- package/dist/task/string/StringUpperCaseTask.d.ts +3 -2
- package/dist/task/string/StringUpperCaseTask.d.ts.map +1 -1
- package/package.json +9 -9
package/dist/node.js.map
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n *\n * Builds the JSON Schema for the `server` object in MCP task config/input schemas.\n * Uses the platform-injected {@link McpTaskDeps.mcpServerConfigSchema} so browser\n * builds get the correct (stdio-free) transport enum.\n */\n\nimport type { DataPortSchemaObject, JsonSchema } from \"@workglow/util/schema\";\nimport type { McpTaskDeps } from \"../util/McpTaskDeps\";\n\n/** Optional fields from {@link McpServerRecordSchema} not present on {@link mcpServerConfigSchema}. */\nexport const mcpServerRecordMetadataProperties = {\n server_id: {\n type: \"string\",\n title: \"Server ID\",\n description:\n \"MCP server repository id; present when the server reference was resolved from the registry\",\n },\n label: {\n type: \"string\",\n title: \"Label\",\n description: \"Display label for the server (optional)\",\n },\n description: {\n type: \"string\",\n title: \"Description\",\n description: \"Optional human-readable description\",\n },\n} as const satisfies DataPortSchemaObject[\"properties\"];\n\n/**\n * Builds the complete `server` oneOf schema for MCP task config/input schemas.\n *\n * Accepts the platform-injected `mcpServerConfigSchema` so that the transport\n * enum and conditional validation rules match the current runtime.\n */\nexport function TypeMcpServer(\n mcpServerConfigSchema: McpTaskDeps[\"mcpServerConfigSchema\"]\n): JsonSchema {\n return {\n oneOf: [\n { type: \"string\", format: \"mcp-server\" },\n {\n type: \"object\",\n format: \"mcp-server\",\n properties: {\n ...mcpServerConfigSchema.properties,\n ...mcpServerRecordMetadataProperties,\n },\n required: [\"transport\"],\n allOf: mcpServerConfigSchema.allOf,\n additionalProperties: false,\n },\n ],\n title: \"Server\",\n description: \"MCP server reference (ID or inline config)\",\n } as const;\n}\n",
|
|
33
33
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DataPortSchemaObject, FromSchema } from \"@workglow/util/schema\";\nimport { mcpServerConfigSchema } from \"../util/McpClientUtil\";\nimport { mcpServerRecordMetadataProperties } from \"./mcpServerReferenceObjectSchema\";\n\nexport const McpServerRecordSchema = {\n type: \"object\",\n properties: {\n ...mcpServerRecordMetadataProperties,\n ...mcpServerConfigSchema.properties,\n },\n required: [\"server_id\", \"transport\"],\n allOf: mcpServerConfigSchema.allOf,\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type McpServerRecord = FromSchema<typeof McpServerRecordSchema>;\nexport const McpServerPrimaryKeyNames = [\"server_id\"] as const;\n",
|
|
34
34
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n createServiceToken,\n globalServiceRegistry,\n registerInputCompactor,\n registerInputResolver,\n ServiceRegistry,\n} from \"@workglow/util\";\nimport { InMemoryMcpServerRepository } from \"./InMemoryMcpServerRepository\";\nimport { McpServerRepository } from \"./McpServerRepository\";\nimport type { McpServerRecord } from \"./McpServerSchema\";\n\nexport interface McpServerConnection {\n readonly config: McpServerRecord;\n}\n\nexport const MCP_SERVERS =\n createServiceToken<Map<string, McpServerConnection>>(\"mcp-server.registry\");\n\nexport const MCP_SERVER_REPOSITORY =\n createServiceToken<McpServerRepository>(\"mcp-server.repository\");\n\nglobalServiceRegistry.registerIfAbsent(\n MCP_SERVERS,\n (): Map<string, McpServerConnection> => new Map(),\n true\n);\n\nglobalServiceRegistry.registerIfAbsent(\n MCP_SERVER_REPOSITORY,\n (): McpServerRepository => new InMemoryMcpServerRepository(),\n true\n);\n\nexport function getGlobalMcpServers(): Map<string, McpServerConnection> {\n return globalServiceRegistry.get(MCP_SERVERS);\n}\n\nexport function getGlobalMcpServerRepository(): McpServerRepository {\n return globalServiceRegistry.get(MCP_SERVER_REPOSITORY);\n}\n\nexport function setGlobalMcpServerRepository(repository: McpServerRepository): void {\n globalServiceRegistry.registerInstance(MCP_SERVER_REPOSITORY, repository);\n}\n\nexport async function registerMcpServer(config: McpServerRecord): Promise<void> {\n const servers = getGlobalMcpServers();\n servers.set(config.server_id, { config });\n\n const repo = getGlobalMcpServerRepository();\n await repo.addServer(config);\n}\n\nexport function getMcpServer(id: string): McpServerConnection | undefined {\n return getGlobalMcpServers().get(id);\n}\n\nasync function resolveServerFromRegistry(\n id: string,\n _format: string,\n registry: ServiceRegistry\n): Promise<McpServerRecord> {\n // Check scoped registry first\n const servers = registry.has(MCP_SERVERS)\n ? registry.get<Map<string, McpServerConnection>>(MCP_SERVERS)\n : getGlobalMcpServers();\n\n const entry = servers.get(id);\n if (entry) return entry.config;\n\n // Fall back to repository lookup\n const repo = registry.has(MCP_SERVER_REPOSITORY)\n ? registry.get<McpServerRepository>(MCP_SERVER_REPOSITORY)\n : getGlobalMcpServerRepository();\n\n const record = await repo.getServer(id);\n if (!record) {\n throw new Error(`MCP server \"${id}\" not found in registry`);\n }\n return record;\n}\n\nregisterInputResolver(\"mcp-server\", resolveServerFromRegistry);\n\n// Register the compactor — extracts server_id from an McpServerRecord\nregisterInputCompactor(\"mcp-server\", (value) => {\n if (typeof value === \"object\" && value !== null && \"server_id\" in value) {\n const id = (value as Record<string, unknown>).server_id;\n return typeof id === \"string\" ? id : undefined;\n }\n return undefined;\n});\n",
|
|
35
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { uuid4 } from \"@workglow/util\";\nimport type { DataPortSchema } from \"@workglow/util/schema\";\nimport { DataPortSchemaNonBoolean, TypedArray, VectorFromSchema } from \"@workglow/util/schema\";\n\nimport {\n GraphAsTask,\n GraphAsTaskConfig,\n GraphAsTaskRunner,\n GraphResultArray,\n JsonTaskItem,\n PROPERTY_ARRAY,\n TaskGraph,\n TaskGraphItemJson,\n TaskInput,\n TaskOutput,\n} from \"@workglow/task-graph\";\n\nexport function TypeReplicateArray<const T extends DataPortSchemaNonBoolean>(\n type: T,\n annotations: Record<string, unknown> = {}\n): DataPortSchemaNonBoolean {\n return {\n oneOf: [type, { type: \"array\", items: type }],\n title: type.title,\n description: type.description,\n ...(type.format ? { format: type.format } : {}),\n ...annotations,\n \"x-replicate\": true,\n };\n}\n\n/**\n * Removes array types from a union, leaving only non-array types.\n * For example, `string | string[]` becomes `string`.\n * Used to extract the single-value type from schemas with x-replicate annotation.\n * Uses distributive conditional types to filter out arrays from unions.\n * Checks for both array types and types with numeric index signatures (FromSchema array output).\n * Preserves Vector types like Float64Array which also have numeric indices.\n */\ntype UnwrapArrayUnion<T> = T extends readonly any[]\n ? T extends TypedArray\n ? T\n : never\n : number extends keyof T\n ? \"push\" extends keyof T\n ? never\n : T\n : T;\n\n/**\n * Transforms a schema by removing array variants from properties marked with x-replicate.\n * Properties with x-replicate use {@link TypeReplicateArray} which creates a union of\n * `T | T[]`, and this type extracts just `T`.\n */\nexport type DeReplicateFromSchema<S extends { properties: Record<string, any> }> = {\n [K in keyof S[\"properties\"]]: S[\"properties\"][K] extends { \"x-replicate\": true }\n ? UnwrapArrayUnion<VectorFromSchema<S[\"properties\"][K]>>\n : VectorFromSchema<S[\"properties\"][K]>;\n};\n\n/**\n * ArrayTask is a compound task that either:\n * 1. Executes directly if all inputs are non-arrays\n * 2. Creates a subGraph with one task instance per array element if any input is an array\n * 3. Creates all combinations if multiple inputs are arrays\n */\nexport abstract class ArrayTask<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends GraphAsTaskConfig<Input> = GraphAsTaskConfig<Input>,\n> extends GraphAsTask<Input, Output, Config> {\n /**\n * The type identifier for this task class\n */\n public static override type = \"ArrayTask\";\n\n /**\n * Make this task have results that look like an array\n */\n public static override readonly compoundMerge = PROPERTY_ARRAY;\n\n /**\n * Gets input schema for this task from the static inputSchema property, which is user defined (reverts GraphAsTask's override)\n */\n public override inputSchema(): DataPortSchema {\n return (this.constructor as typeof ArrayTask).inputSchema();\n }\n\n /**\n * Gets output schema for this task from the static outputSchema property, which is user defined (reverts GraphAsTask's override)\n */\n public override outputSchema(): DataPortSchema {\n return (this.constructor as typeof ArrayTask).outputSchema();\n }\n\n /**\n * Merges the reactive results into the output\n * @param input The input to the task\n * @param output The output of the task\n * @param reactiveResults The reactive results from the subtasks\n * @returns The merged output\n */\n public executeMerge(_input: Input, output: Output): Output {\n return output;\n }\n\n /**\n * Regenerates the task subgraph based on input arrays\n */\n public override regenerateGraph(): void {\n // Check if any inputs are arrays\n const arrayInputs = new Map<string, Array<Input[keyof Input]>>();\n let hasArrayInputs = false;\n const inputSchema = this.inputSchema();\n if (typeof inputSchema !== \"boolean\") {\n const keys = Object.keys(inputSchema.properties || {});\n for (const inputId of keys) {\n const inputValue = this.runInputData[inputId];\n const inputDef = inputSchema.properties?.[inputId];\n if (\n typeof inputDef === \"object\" &&\n inputDef !== null &&\n \"x-replicate\" in inputDef &&\n (inputDef as any)[\"x-replicate\"] === true &&\n Array.isArray(inputValue) &&\n inputValue.length > 1\n ) {\n arrayInputs.set(inputId, inputValue);\n hasArrayInputs = true;\n }\n }\n }\n\n // Clear the existing subgraph\n this.subGraph = new TaskGraph();\n\n // If no array inputs, no need to populate the subgraph\n if (!hasArrayInputs) {\n super.regenerateGraph();\n return;\n }\n\n // Create all combinations of inputs\n const inputIds = Array.from(arrayInputs.keys());\n const inputObject = Object.fromEntries(arrayInputs);\n const combinations = this.generateCombinations(inputObject as Input, inputIds);\n\n // Create task instances for each combination\n const tasks = combinations.map((combination) => {\n // Create a new instance of this same class\n const { id, title, ...rest } = this.config;\n const task = new (this.constructor as any)(\n {\n ...rest,\n id: `${id}_${uuid4()}`,\n defaults: { ...this.defaults, ...this.runInputData, ...combination },\n },\n this.runConfig\n );\n return task;\n });\n\n // Add tasks to subgraph\n this.subGraph.addTasks(tasks);\n\n // Emit regenerate event\n super.regenerateGraph();\n }\n\n /**\n * Generates all possible combinations of array inputs\n * @param input Input object containing arrays\n * @param inputMakeArray Keys of properties to generate combinations for\n * @returns Array of input objects with all possible combinations\n */\n protected generateCombinations(input: Input, inputMakeArray: Array<keyof Input>): Input[] {\n // Prepare arrays for combination generation\n const arraysToCombine: Array<Array<Input[keyof Input]>> = inputMakeArray.map((key) =>\n Array.isArray(input[key]) ? (input[key] as Array<Input[keyof Input]>) : []\n );\n\n const indices = new Array(arraysToCombine.length).fill(0);\n const combinations: number[][] = [];\n let done = false;\n\n while (!done) {\n combinations.push([...indices]); // Add current combination of indices\n\n // Move to the next combination of indices\n for (let i = indices.length - 1; i >= 0; i--) {\n if (++indices[i] < arraysToCombine[i].length) break; // Increment current index if possible\n if (i === 0)\n done = true; // All combinations have been generated\n else indices[i] = 0; // Reset current index and move to the next position\n }\n }\n\n // Build objects based on the combinations\n const combos = combinations.map((combination) => {\n const result = { ...input }; // Start with a shallow copy of the input\n\n // Set values from the arrays based on the current combination\n combination.forEach((valueIndex, arrayIndex) => {\n const key = inputMakeArray[arrayIndex];\n if (Array.isArray(input[key]))\n result[key] = (input[key] as Array<Input[keyof Input]>)[valueIndex];\n });\n\n return result;\n });\n\n return combos;\n }\n\n override toJSON(): TaskGraphItemJson {\n const { subgraph, ...result } = super.toJSON();\n return result;\n }\n\n override toDependencyJSON(): JsonTaskItem {\n const { subtasks, ...result } = super.toDependencyJSON();\n return result;\n }\n\n /**\n * Create a custom runner for ArrayTask that overrides input passing behavior\n * as inputs were already distributed to child tasks during graph regeneration\n */\n\n declare _runner: ArrayTaskRunner<Input, Output, Config>;\n\n /**\n * Task runner for handling the task execution\n */\n override get runner(): ArrayTaskRunner<Input, Output, Config> {\n if (!this._runner) {\n this._runner = new ArrayTaskRunner<Input, Output, Config>(this);\n }\n return this._runner;\n }\n}\n\n/**\n * Custom runner for ArrayTask that passes empty input to child tasks.\n * ArrayTask child tasks get their input values from their defaults (set during task creation),\n * not from the parent task's input.\n */\nclass ArrayTaskRunner<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends GraphAsTaskConfig<Input> = GraphAsTaskConfig<Input>,\n> extends GraphAsTaskRunner<Input, Output, Config> {\n declare task: ArrayTask<Input, Output, Config>;\n\n /**\n * Override to pass empty input to subgraph.\n * Child tasks will use their defaults instead of parent input.\n */\n protected override async executeTaskChildren(_input: Input): Promise<GraphResultArray<Output>> {\n return super.executeTaskChildren({} as Input);\n }\n\n /**\n * Override to pass empty input to subgraph for reactive execution.\n * Child tasks will use their defaults instead of parent input.\n */\n protected override async executeTaskChildrenReactive(): Promise<GraphResultArray<Output>> {\n // Don't pass parent input - child tasks have their input set via defaults during creation\n return this.task.subGraph!.runReactive<Output>({});\n }\n\n public override async executeTaskReactive(input: Input, output: Output): Promise<Output> {\n await super.executeTaskReactive(input, output);\n if (this.task.hasChildren()) {\n this.task.runOutputData = this.task.executeMerge(input, this.task.runOutputData as Output);\n }\n return this.task.runOutputData as Output;\n }\n public override async executeTask(input: Input): Promise<Output> {\n await super.executeTask(input);\n if (this.task.hasChildren()) {\n this.task.runOutputData = this.task.executeMerge(input, this.task.runOutputData as Output);\n }\n return this.task.runOutputData as Output;\n }\n}\n",
|
|
35
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { uuid4 } from \"@workglow/util\";\nimport type { DataPortSchema } from \"@workglow/util/schema\";\nimport { DataPortSchemaNonBoolean, TypedArray, VectorFromSchema } from \"@workglow/util/schema\";\n\nimport {\n GraphAsTask,\n GraphAsTaskConfig,\n GraphAsTaskRunner,\n GraphResultArray,\n JsonTaskItem,\n PROPERTY_ARRAY,\n TaskGraph,\n TaskGraphItemJson,\n TaskInput,\n TaskOutput,\n} from \"@workglow/task-graph\";\n\nexport function TypeReplicateArray<const T extends DataPortSchemaNonBoolean>(\n type: T,\n annotations: Record<string, unknown> = {}\n): DataPortSchemaNonBoolean {\n return {\n oneOf: [type, { type: \"array\", items: type }],\n title: type.title,\n description: type.description,\n ...(type.format ? { format: type.format } : {}),\n ...annotations,\n \"x-replicate\": true,\n };\n}\n\n/**\n * Removes array types from a union, leaving only non-array types.\n * For example, `string | string[]` becomes `string`.\n * Used to extract the single-value type from schemas with x-replicate annotation.\n * Uses distributive conditional types to filter out arrays from unions.\n * Checks for both array types and types with numeric index signatures (FromSchema array output).\n * Preserves Vector types like Float64Array which also have numeric indices.\n */\ntype UnwrapArrayUnion<T> = T extends readonly any[]\n ? T extends TypedArray\n ? T\n : never\n : number extends keyof T\n ? \"push\" extends keyof T\n ? never\n : T\n : T;\n\n/**\n * Transforms a schema by removing array variants from properties marked with x-replicate.\n * Properties with x-replicate use {@link TypeReplicateArray} which creates a union of\n * `T | T[]`, and this type extracts just `T`.\n */\nexport type DeReplicateFromSchema<S extends { properties: Record<string, any> }> = {\n [K in keyof S[\"properties\"]]: S[\"properties\"][K] extends { \"x-replicate\": true }\n ? UnwrapArrayUnion<VectorFromSchema<S[\"properties\"][K]>>\n : VectorFromSchema<S[\"properties\"][K]>;\n};\n\n/**\n * ArrayTask is a compound task that either:\n * 1. Executes directly if all inputs are non-arrays\n * 2. Creates a subGraph with one task instance per array element if any input is an array\n * 3. Creates all combinations if multiple inputs are arrays\n */\nexport abstract class ArrayTask<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends GraphAsTaskConfig<Input> = GraphAsTaskConfig<Input>,\n> extends GraphAsTask<Input, Output, Config> {\n /**\n * The type identifier for this task class\n */\n public static override type = \"ArrayTask\";\n\n /**\n * Make this task have results that look like an array\n */\n public static override readonly compoundMerge = PROPERTY_ARRAY;\n\n /**\n * Gets input schema for this task from the static inputSchema property, which is user defined (reverts GraphAsTask's override)\n */\n public override inputSchema(): DataPortSchema {\n return (this.constructor as typeof ArrayTask).inputSchema();\n }\n\n /**\n * Gets output schema for this task from the static outputSchema property, which is user defined (reverts GraphAsTask's override)\n */\n public override outputSchema(): DataPortSchema {\n return (this.constructor as typeof ArrayTask).outputSchema();\n }\n\n /**\n * Merges the preview results into the output\n * @param input The input to the task\n * @param output The output of the task\n * @returns The merged output\n */\n public executeMerge(_input: Input, output: Output): Output {\n return output;\n }\n\n /**\n * Regenerates the task subgraph based on input arrays\n */\n public override regenerateGraph(): void {\n // Check if any inputs are arrays\n const arrayInputs = new Map<string, Array<Input[keyof Input]>>();\n let hasArrayInputs = false;\n const inputSchema = this.inputSchema();\n if (typeof inputSchema !== \"boolean\") {\n const keys = Object.keys(inputSchema.properties || {});\n for (const inputId of keys) {\n const inputValue = this.runInputData[inputId];\n const inputDef = inputSchema.properties?.[inputId];\n if (\n typeof inputDef === \"object\" &&\n inputDef !== null &&\n \"x-replicate\" in inputDef &&\n (inputDef as any)[\"x-replicate\"] === true &&\n Array.isArray(inputValue) &&\n inputValue.length > 1\n ) {\n arrayInputs.set(inputId, inputValue);\n hasArrayInputs = true;\n }\n }\n }\n\n // Clear the existing subgraph\n this.subGraph = new TaskGraph();\n\n // If no array inputs, no need to populate the subgraph\n if (!hasArrayInputs) {\n super.regenerateGraph();\n return;\n }\n\n // Create all combinations of inputs\n const inputIds = Array.from(arrayInputs.keys());\n const inputObject = Object.fromEntries(arrayInputs);\n const combinations = this.generateCombinations(inputObject as Input, inputIds);\n\n // Create task instances for each combination\n const tasks = combinations.map((combination) => {\n // Create a new instance of this same class\n const { id, title, ...rest } = this.config;\n const task = new (this.constructor as any)(\n {\n ...rest,\n id: `${id}_${uuid4()}`,\n defaults: { ...this.defaults, ...this.runInputData, ...combination },\n },\n this.runConfig\n );\n return task;\n });\n\n // Add tasks to subgraph\n this.subGraph.addTasks(tasks);\n\n // Emit regenerate event\n super.regenerateGraph();\n }\n\n /**\n * Generates all possible combinations of array inputs\n * @param input Input object containing arrays\n * @param inputMakeArray Keys of properties to generate combinations for\n * @returns Array of input objects with all possible combinations\n */\n protected generateCombinations(input: Input, inputMakeArray: Array<keyof Input>): Input[] {\n // Prepare arrays for combination generation\n const arraysToCombine: Array<Array<Input[keyof Input]>> = inputMakeArray.map((key) =>\n Array.isArray(input[key]) ? (input[key] as Array<Input[keyof Input]>) : []\n );\n\n const indices = new Array(arraysToCombine.length).fill(0);\n const combinations: number[][] = [];\n let done = false;\n\n while (!done) {\n combinations.push([...indices]); // Add current combination of indices\n\n // Move to the next combination of indices\n for (let i = indices.length - 1; i >= 0; i--) {\n if (++indices[i] < arraysToCombine[i].length) break; // Increment current index if possible\n if (i === 0)\n done = true; // All combinations have been generated\n else indices[i] = 0; // Reset current index and move to the next position\n }\n }\n\n // Build objects based on the combinations\n const combos = combinations.map((combination) => {\n const result = { ...input }; // Start with a shallow copy of the input\n\n // Set values from the arrays based on the current combination\n combination.forEach((valueIndex, arrayIndex) => {\n const key = inputMakeArray[arrayIndex];\n if (Array.isArray(input[key]))\n result[key] = (input[key] as Array<Input[keyof Input]>)[valueIndex];\n });\n\n return result;\n });\n\n return combos;\n }\n\n override toJSON(): TaskGraphItemJson {\n const { subgraph, ...result } = super.toJSON();\n return result;\n }\n\n override toDependencyJSON(): JsonTaskItem {\n const { subtasks, ...result } = super.toDependencyJSON();\n return result;\n }\n\n /**\n * Create a custom runner for ArrayTask that overrides input passing behavior\n * as inputs were already distributed to child tasks during graph regeneration\n */\n\n declare _runner: ArrayTaskRunner<Input, Output, Config>;\n\n /**\n * Task runner for handling the task execution\n */\n override get runner(): ArrayTaskRunner<Input, Output, Config> {\n if (!this._runner) {\n this._runner = new ArrayTaskRunner<Input, Output, Config>(this);\n }\n return this._runner;\n }\n}\n\n/**\n * Custom runner for ArrayTask that passes empty input to child tasks.\n * ArrayTask child tasks get their input values from their defaults (set during task creation),\n * not from the parent task's input.\n */\nclass ArrayTaskRunner<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n Config extends GraphAsTaskConfig<Input> = GraphAsTaskConfig<Input>,\n> extends GraphAsTaskRunner<Input, Output, Config> {\n declare task: ArrayTask<Input, Output, Config>;\n\n /**\n * Override to pass empty input to subgraph.\n * Child tasks will use their defaults instead of parent input.\n */\n protected override async executeTaskChildren(_input: Input): Promise<GraphResultArray<Output>> {\n return super.executeTaskChildren({} as Input);\n }\n\n /**\n * Override to pass empty input to subgraph for preview execution.\n * Child tasks will use their defaults instead of parent input.\n */\n protected override async executeTaskChildrenPreview(): Promise<GraphResultArray<Output>> {\n // Don't pass parent input - child tasks have their input set via defaults during creation\n return this.task.subGraph!.runPreview<Output>({});\n }\n\n public override async executeTaskPreview(input: Input): Promise<Output | undefined> {\n await super.executeTaskPreview(input);\n if (this.task.hasChildren()) {\n this.task.runOutputData = this.task.executeMerge(input, this.task.runOutputData as Output);\n }\n return this.task.runOutputData as Output;\n }\n public override async executeTask(input: Input): Promise<Output> {\n await super.executeTask(input);\n if (this.task.hasChildren()) {\n this.task.runOutputData = this.task.executeMerge(input, this.task.runOutputData as Output);\n }\n return this.task.runOutputData as Output;\n }\n}\n",
|
|
36
36
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { uuid4 } from \"@workglow/util\";\nimport type { IBrowserContext } from \"./IBrowserContext\";\n\nconst sessions = new Map<string, IBrowserContext>();\n\nexport const BrowserSessionRegistry = {\n /**\n * Register a browser context and return a unique session ID.\n */\n register(context: IBrowserContext): string {\n const id = uuid4();\n sessions.set(id, context);\n return id;\n },\n\n /**\n * Retrieve a registered browser context by session ID.\n * Throws if the session does not exist or has been disconnected.\n */\n get(sessionId: string): IBrowserContext {\n const context = sessions.get(sessionId);\n if (!context) {\n throw new Error(`BrowserSessionRegistry: no session found for id \"${sessionId}\"`);\n }\n if (!context.isConnected()) {\n sessions.delete(sessionId);\n throw new Error(`BrowserSessionRegistry: session \"${sessionId}\" is no longer connected`);\n }\n return context;\n },\n\n /**\n * Remove a session from the registry.\n */\n unregister(sessionId: string): void {\n sessions.delete(sessionId);\n },\n\n /**\n * Returns true if a session with the given ID exists.\n */\n has(sessionId: string): boolean {\n return sessions.has(sessionId);\n },\n\n /**\n * Disconnect all registered contexts using Promise.allSettled, then clear the registry.\n */\n async disconnectAll(): Promise<void> {\n const disconnects = Array.from(sessions.values()).map((ctx) => ctx.disconnect());\n await Promise.allSettled(disconnects);\n sessions.clear();\n },\n\n /**\n * Clear all sessions without disconnecting (for tests).\n */\n clear(): void {\n sessions.clear();\n },\n} as const;\n",
|
|
37
37
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { sleep } from \"@workglow/util\";\nimport { CDPBrowserBackend } from \"./CDPBrowserBackend\";\nimport type {\n BrowserConnectOptions,\n ConsoleMessage,\n DialogAction,\n DialogInfo,\n DownloadOptions,\n DownloadResult,\n ElementRef,\n IBrowserContext,\n NavigateOptions,\n NetworkFilter,\n NetworkRequest,\n ScreenshotOptions,\n TabInfo,\n WaitOptions,\n} from \"./IBrowserContext\";\n\n// ---------------------------------------------------------------------------\n// Bun.WebView type (not imported — accessed via globalThis at runtime)\n// ---------------------------------------------------------------------------\n\n/** @type {InstanceType<typeof Bun.WebView>} */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyWebView = any;\n\n// ---------------------------------------------------------------------------\n// BunWebViewBackend\n// ---------------------------------------------------------------------------\n\n/**\n * IBrowserContext implementation using Bun's built-in WebView API + CDP.\n *\n * Bun.WebView provides a headless browser with Chrome DevTools Protocol\n * access. This backend wraps the WebView, delegating CDP operations to the\n * abstract CDPBrowserBackend base class and using native WebView methods\n * for navigation, screenshots, and keyboard input.\n *\n * This file should only be imported in Bun environments.\n */\nexport class BunWebViewBackend extends CDPBrowserBackend implements IBrowserContext {\n private _wv: AnyWebView | null = null;\n private _connected = false;\n\n // Dialog handler\n private _dialogHandler: ((info: DialogInfo) => DialogAction | Promise<DialogAction>) | null =\n null;\n\n protected readonly backendName = \"BunWebViewBackend\";\n\n /**\n * @param defaultChromePath Optional default Chrome binary path. Used when\n * `connect()` is called without `chromePath` in options (e.g., via\n * BrowserSessionTask which doesn't expose chromePath in its config).\n */\n constructor(private readonly defaultChromePath?: string) {\n super();\n }\n\n // ---------------------------------------------------------------------------\n // CDP helper\n // ---------------------------------------------------------------------------\n\n protected async cdp(method: string, params: Record<string, unknown> = {}): Promise<unknown> {\n return this.wv.cdp(method, params);\n }\n\n // ---------------------------------------------------------------------------\n // evaluateInPage (abstract from CDPBrowserBackend)\n // ---------------------------------------------------------------------------\n\n protected async evaluateInPage<T>(script: string): Promise<T> {\n return this.wv.evaluate(script) as Promise<T>;\n }\n\n // ---------------------------------------------------------------------------\n // Lifecycle\n // ---------------------------------------------------------------------------\n\n async connect(options: BrowserConnectOptions = {}): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const BunWebView = (globalThis as any).Bun?.WebView;\n if (!BunWebView) {\n throw new Error(\n \"BunWebViewBackend: Bun.WebView is not available — \" +\n \"this backend requires Bun with WebView support\"\n );\n }\n\n const { headless = true, chromePath = this.defaultChromePath } = options;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const webViewOptions: Record<string, any> = {\n headless,\n url: \"about:blank\",\n backend: chromePath ? { type: \"chrome\", path: chromePath } : { type: \"chrome\" },\n };\n\n this._wv = new BunWebView(webViewOptions);\n\n // Wait for the initial navigation to complete\n await new Promise<void>((resolve, reject) => {\n const timeout = setTimeout(() => {\n reject(new Error(\"BunWebViewBackend: initial navigation timed out\"));\n }, 30_000);\n\n this._wv!.onNavigated = () => {\n clearTimeout(timeout);\n this._wv!.onNavigated = null;\n this._wv!.onNavigationFailed = null;\n resolve();\n };\n\n this._wv!.onNavigationFailed = (error: unknown) => {\n clearTimeout(timeout);\n this._wv!.onNavigated = null;\n this._wv!.onNavigationFailed = null;\n reject(new Error(`BunWebViewBackend: initial navigation failed — ${error}`));\n };\n });\n\n // Enable Accessibility domain for snapshot/queryAXTree\n await this.cdp(\"Accessibility.enable\");\n\n this._connected = true;\n }\n\n async disconnect(): Promise<void> {\n this._connected = false;\n try {\n if (this._wv) {\n this._wv.close();\n }\n } finally {\n this._wv = null;\n this._refMap.clear();\n this._refCounter.count = 0;\n }\n }\n\n isConnected(): boolean {\n return this._connected && this._wv !== null;\n }\n\n // ---------------------------------------------------------------------------\n // Internal helpers\n // ---------------------------------------------------------------------------\n\n private get wv(): AnyWebView {\n if (!this._wv || !this._connected) {\n throw new Error(\"BunWebViewBackend: not connected — call connect() first\");\n }\n return this._wv;\n }\n\n // ---------------------------------------------------------------------------\n // Navigation\n // ---------------------------------------------------------------------------\n\n async navigate(url: string, options: NavigateOptions = {}): Promise<void> {\n const timeout = options.timeout ?? 30_000;\n\n await new Promise<void>((resolve, reject) => {\n const timer = setTimeout(() => {\n reject(new Error(\"BunWebViewBackend: navigate timed out\"));\n }, timeout);\n\n this.wv.onNavigated = () => {\n clearTimeout(timer);\n this.wv.onNavigated = null;\n resolve();\n };\n\n this.wv.onNavigationFailed = (error: unknown) => {\n clearTimeout(timer);\n this.wv.onNavigationFailed = null;\n this.wv.onNavigated = null;\n reject(new Error(`BunWebViewBackend: navigation failed — ${error}`));\n };\n\n this.wv.navigate(url);\n });\n }\n\n async goBack(_options: NavigateOptions = {}): Promise<void> {\n this.wv.back();\n await this.waitForNavigation();\n }\n\n async goForward(_options: NavigateOptions = {}): Promise<void> {\n this.wv.forward();\n await this.waitForNavigation();\n }\n\n async reload(_options: NavigateOptions = {}): Promise<void> {\n this.wv.reload();\n await this.waitForNavigation();\n }\n\n async currentUrl(): Promise<string> {\n return this.wv.url;\n }\n\n async title(): Promise<string> {\n return this.wv.title;\n }\n\n // ---------------------------------------------------------------------------\n // Content extraction\n // ---------------------------------------------------------------------------\n\n async content(): Promise<string> {\n return this.wv.evaluate(\"document.documentElement.outerHTML\") as Promise<string>;\n }\n\n // ---------------------------------------------------------------------------\n // JS evaluation\n // ---------------------------------------------------------------------------\n\n async evaluate<T>(expression: string): Promise<T> {\n return this.wv.evaluate(expression) as Promise<T>;\n }\n\n // ---------------------------------------------------------------------------\n // Capture\n // ---------------------------------------------------------------------------\n\n async screenshot(options: ScreenshotOptions = {}): Promise<Buffer> {\n const { format = \"png\", quality } = options;\n return this.wv.screenshot({\n encoding: \"buffer\",\n format,\n ...(quality !== undefined && { quality }),\n }) as Promise<Buffer>;\n }\n\n // ---------------------------------------------------------------------------\n // Input (native WebView methods)\n // ---------------------------------------------------------------------------\n\n override async pressKey(key: string, _options: WaitOptions = {}): Promise<void> {\n await this.wv.press(key);\n }\n\n override async type(text: string, _options: WaitOptions = {}): Promise<void> {\n await this.wv.type(text);\n }\n\n // ---------------------------------------------------------------------------\n // File operations\n // ---------------------------------------------------------------------------\n\n async download(\n _trigger: () => Promise<void>,\n _options: DownloadOptions = {}\n ): Promise<DownloadResult> {\n throw new Error(\"BunWebViewBackend: download is not supported\");\n }\n\n // ---------------------------------------------------------------------------\n // Dialogs\n // ---------------------------------------------------------------------------\n\n onDialog(handler: (info: DialogInfo) => DialogAction | Promise<DialogAction>): void {\n this._dialogHandler = handler;\n\n void this.cdp(\"Page.enable\")\n .then(() => {\n this.wv.addEventListener(\n \"Page.javascriptDialogOpening\",\n async (params: Record<string, unknown>) => {\n const info: DialogInfo = {\n type: params.type as DialogInfo[\"type\"],\n message: params.message as string,\n defaultValue: (params.defaultPrompt as string) || undefined,\n };\n\n if (this._dialogHandler) {\n const action = await this._dialogHandler(info);\n const accept = action.accept;\n const promptText =\n accept && \"promptText\" in action\n ? (action as { accept: true; promptText?: string }).promptText\n : undefined;\n await this.cdp(\"Page.handleJavaScriptDialog\", {\n accept,\n ...(promptText !== undefined && { promptText }),\n });\n } else {\n await this.cdp(\"Page.handleJavaScriptDialog\", { accept: false });\n }\n }\n );\n })\n .catch(() => {\n // Page.enable failed — dialog handler will not be wired up.\n // This is non-fatal: the session still works, but dialogs won't be\n // handled automatically and may block page execution.\n });\n }\n\n // ---------------------------------------------------------------------------\n // Tabs (single-view model)\n // ---------------------------------------------------------------------------\n\n async tabs(): Promise<readonly TabInfo[]> {\n const url = this.wv.url;\n const title = this.wv.title;\n return [{ tabId: \"0\", url, title }];\n }\n\n async switchTab(_tabId: string): Promise<void> {\n // Single-view model: no-op\n }\n\n async newTab(url?: string): Promise<TabInfo> {\n if (url) {\n await this.navigate(url);\n }\n return {\n tabId: \"0\",\n url: this.wv.url,\n title: this.wv.title,\n };\n }\n\n async closeTab(_tabId: string): Promise<void> {\n // Single-view model: closing the tab means closing the WebView\n await this.disconnect();\n }\n\n // ---------------------------------------------------------------------------\n // Wait\n // ---------------------------------------------------------------------------\n\n async waitForNavigation(options: NavigateOptions = {}): Promise<void> {\n const timeout = options.timeout ?? 30_000;\n return new Promise<void>((resolve, reject) => {\n const timer = setTimeout(() => {\n this.wv.onNavigated = null;\n this.wv.onNavigationFailed = null;\n reject(new Error(\"BunWebViewBackend: waitForNavigation timed out\"));\n }, timeout);\n\n this.wv.onNavigated = () => {\n clearTimeout(timer);\n this.wv.onNavigated = null;\n this.wv.onNavigationFailed = null;\n resolve();\n };\n\n this.wv.onNavigationFailed = (error: unknown) => {\n clearTimeout(timer);\n this.wv.onNavigated = null;\n this.wv.onNavigationFailed = null;\n reject(new Error(`BunWebViewBackend: navigation failed — ${error}`));\n };\n });\n }\n\n async waitForSelector(selector: string, options: WaitOptions = {}): Promise<ElementRef> {\n const timeout = options.timeout ?? 30_000;\n const interval = 100;\n const deadline = Date.now() + timeout;\n\n while (Date.now() < deadline) {\n const found = await this.wv.evaluate(`!!document.querySelector(${JSON.stringify(selector)})`);\n if (found) {\n const ref = await this.querySelector(selector);\n if (ref) return ref;\n }\n await sleep(interval);\n }\n\n throw new Error(`BunWebViewBackend: waitForSelector timed out for \"${selector}\"`);\n }\n\n async waitForIdle(options: WaitOptions = {}): Promise<void> {\n const timeout = options.timeout ?? 30_000;\n const interval = 100;\n const deadline = Date.now() + timeout;\n\n while (Date.now() < deadline) {\n const ready = await this.wv.evaluate(`document.readyState === \"complete\"`);\n if (ready) return;\n await sleep(interval);\n }\n\n throw new Error(\"BunWebViewBackend: waitForIdle timed out\");\n }\n\n // ---------------------------------------------------------------------------\n // Optional capabilities (stubs)\n // ---------------------------------------------------------------------------\n\n readonly networkRequests = (_filter?: NetworkFilter): Promise<readonly NetworkRequest[]> => {\n return Promise.resolve([]);\n };\n\n readonly consoleMessages = (): Promise<readonly ConsoleMessage[]> => {\n return Promise.resolve([]);\n };\n}\n",
|
|
38
38
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AccessibilityNode,\n AccessibilityTree,\n AriaRole,\n ClickOptions,\n ElementRef,\n SnapshotOptions,\n WaitOptions,\n} from \"./IBrowserContext\";\n\n// ---------------------------------------------------------------------------\n// CDP AX node types (CDP response shape)\n// ---------------------------------------------------------------------------\n\ninterface CDPAXProperty {\n name: string;\n value: {\n type: string;\n value?: unknown;\n relatedNodes?: Array<{ backendDOMNodeId: number }>;\n };\n}\n\ninterface CDPAXNode {\n nodeId: string;\n role: { type: string; value: string };\n name: { type: string; value: string };\n backendDOMNodeId?: number;\n properties?: CDPAXProperty[];\n childIds?: string[];\n ignored?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Mutable accessibility node (used while building the tree)\n// ---------------------------------------------------------------------------\n\ninterface MutableAccessibilityNode {\n ref: ElementRef;\n role: AriaRole;\n name: string;\n level?: number;\n checked?: boolean | \"mixed\";\n disabled?: boolean;\n expanded?: boolean;\n pressed?: boolean | \"mixed\";\n selected?: boolean;\n value?: string | number;\n children?: MutableAccessibilityNode[];\n}\n\n// ---------------------------------------------------------------------------\n// Roles to skip during accessibility tree parsing\n// ---------------------------------------------------------------------------\n\nconst IGNORED_ROLES = new Set([\"none\", \"generic\", \"ignored\", \"InlineTextBox\"]);\n\n// ---------------------------------------------------------------------------\n// Parse CDP AX tree into AccessibilityNode tree\n// ---------------------------------------------------------------------------\n\nfunction parseCDPAXTree(\n nodes: CDPAXNode[],\n refCounter: { count: number },\n refMap: Map<ElementRef, number | null>\n): AccessibilityNode {\n const nodeMap = new Map<string, CDPAXNode>();\n let rootNode: CDPAXNode | undefined;\n\n for (const node of nodes) {\n nodeMap.set(node.nodeId, node);\n // Root: node whose id is not referenced as a child by any other node\n if (!rootNode) {\n rootNode = node;\n }\n }\n\n // Find actual root: the node not referenced as a child\n const childIds = new Set<string>();\n for (const node of nodes) {\n for (const childId of node.childIds ?? []) {\n childIds.add(childId);\n }\n }\n rootNode = nodes.find((n) => !childIds.has(n.nodeId)) ?? nodes[0];\n\n function buildNode(cdpNode: CDPAXNode): MutableAccessibilityNode | null {\n const role = cdpNode.role?.value ?? \"\";\n\n // Skip ignored/transparent roles\n if (cdpNode.ignored || IGNORED_ROLES.has(role)) {\n return null;\n }\n\n const ref = `e${++refCounter.count}`;\n // Store backendDOMNodeId (or null if unavailable) for later element resolution\n refMap.set(ref, cdpNode.backendDOMNodeId ?? null);\n\n const name = typeof cdpNode.name?.value === \"string\" ? cdpNode.name.value : \"\";\n\n const node: MutableAccessibilityNode = {\n ref,\n role: role as AriaRole,\n name,\n };\n\n // Parse AX properties\n for (const prop of cdpNode.properties ?? []) {\n switch (prop.name) {\n case \"level\":\n if (typeof prop.value.value === \"number\") {\n node.level = prop.value.value;\n }\n break;\n case \"checked\":\n if (prop.value.value === \"mixed\") {\n node.checked = \"mixed\";\n } else if (typeof prop.value.value === \"boolean\") {\n node.checked = prop.value.value;\n }\n break;\n case \"disabled\":\n node.disabled = prop.value.value === true;\n break;\n case \"expanded\":\n node.expanded = prop.value.value === true;\n break;\n case \"pressed\":\n if (prop.value.value === \"mixed\") {\n node.pressed = \"mixed\";\n } else if (typeof prop.value.value === \"boolean\") {\n node.pressed = prop.value.value;\n }\n break;\n case \"selected\":\n node.selected = prop.value.value === true;\n break;\n case \"valuetext\":\n case \"value\":\n if (typeof prop.value.value === \"string\" || typeof prop.value.value === \"number\") {\n node.value = prop.value.value;\n }\n break;\n }\n }\n\n // Recurse into children\n const childNodes: MutableAccessibilityNode[] = [];\n for (const childId of cdpNode.childIds ?? []) {\n const childCdp = nodeMap.get(childId);\n if (childCdp) {\n const child = buildNode(childCdp);\n if (child) childNodes.push(child);\n }\n }\n if (childNodes.length > 0) {\n node.children = childNodes;\n }\n\n return node;\n }\n\n if (!rootNode) {\n const ref = `e${++refCounter.count}`;\n refMap.set(ref, null);\n return { ref, role: \"document\", name: \"\" };\n }\n\n const built = buildNode(rootNode);\n if (!built) {\n const ref = `e${++refCounter.count}`;\n refMap.set(ref, null);\n return { ref, role: \"document\", name: \"\" };\n }\n\n return built as AccessibilityNode;\n}\n\n// ---------------------------------------------------------------------------\n// Build a YAML-like accessibility tree string from the node tree\n// ---------------------------------------------------------------------------\n\nfunction serializeAXTree(node: AccessibilityNode, indent = 0): string {\n const spaces = \" \".repeat(indent);\n let line = `${spaces}- ${node.role}`;\n if (node.name) {\n line += ` \"${node.name.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"')}\"`;\n }\n if (node.level !== undefined) line += ` [level=${node.level}]`;\n if (node.checked !== undefined) line += ` [checked=${node.checked}]`;\n if (node.disabled) line += ` [disabled=true]`;\n if (node.expanded !== undefined) line += ` [expanded=${node.expanded}]`;\n if (node.pressed !== undefined) line += ` [pressed=${node.pressed}]`;\n if (node.selected) line += ` [selected=true]`;\n if (node.value !== undefined) line += ` [value=${node.value}]`;\n\n const lines: string[] = [line];\n for (const child of node.children ?? []) {\n lines.push(serializeAXTree(child, indent + 1));\n }\n return lines.join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// Utilities\n// ---------------------------------------------------------------------------\n\n/**\n * Convert modifier key names to CDP modifier bitmask.\n * Alt=1, Control=2, Meta=4, Shift=8\n */\nfunction buildModifiersMask(\n modifiers?: ReadonlyArray<\"Alt\" | \"Control\" | \"Meta\" | \"Shift\">\n): number {\n if (!modifiers) return 0;\n let mask = 0;\n for (const mod of modifiers) {\n if (mod === \"Alt\") mask |= 1;\n else if (mod === \"Control\") mask |= 2;\n else if (mod === \"Meta\") mask |= 4;\n else if (mod === \"Shift\") mask |= 8;\n }\n return mask;\n}\n\n/** Map Playwright-style key names to CDP key names. */\nconst KEY_CODE_MAP: Record<string, string> = {\n Enter: \"Enter\",\n Tab: \"Tab\",\n Escape: \"Escape\",\n Backspace: \"Backspace\",\n Delete: \"Delete\",\n ArrowUp: \"ArrowUp\",\n ArrowDown: \"ArrowDown\",\n ArrowLeft: \"ArrowLeft\",\n ArrowRight: \"ArrowRight\",\n Home: \"Home\",\n End: \"End\",\n PageUp: \"PageUp\",\n PageDown: \"PageDown\",\n Space: \" \",\n F1: \"F1\",\n F2: \"F2\",\n F3: \"F3\",\n F4: \"F4\",\n F5: \"F5\",\n F6: \"F6\",\n F7: \"F7\",\n F8: \"F8\",\n F9: \"F9\",\n F10: \"F10\",\n F11: \"F11\",\n F12: \"F12\",\n};\n\n/** Convert a key name to a CDP code string (best effort). */\nfunction keyToCode(key: string): string {\n if (key.length === 1) {\n const upper = key.toUpperCase();\n return `Key${upper}`;\n }\n const codeMap: Record<string, string> = {\n Enter: \"Enter\",\n Tab: \"Tab\",\n Escape: \"Escape\",\n Backspace: \"Backspace\",\n Delete: \"Delete\",\n ArrowUp: \"ArrowUp\",\n ArrowDown: \"ArrowDown\",\n ArrowLeft: \"ArrowLeft\",\n ArrowRight: \"ArrowRight\",\n Home: \"Home\",\n End: \"End\",\n PageUp: \"PageUp\",\n PageDown: \"PageDown\",\n Space: \"Space\",\n };\n return codeMap[key] ?? key;\n}\n\n// ---------------------------------------------------------------------------\n// CDPBrowserBackend — abstract base for backends that use the Chrome DevTools\n// Protocol (CDP) for element interaction, accessibility, and DOM queries.\n// ---------------------------------------------------------------------------\n\nexport abstract class CDPBrowserBackend {\n protected _refMap = new Map<ElementRef, number | null>();\n protected _refCounter = { count: 0 };\n\n // ---------------------------------------------------------------------------\n // Abstract — subclasses provide these\n // ---------------------------------------------------------------------------\n\n /** Send a CDP command. Subclasses wire this to their transport. */\n protected abstract cdp(method: string, params?: Record<string, unknown>): Promise<unknown>;\n\n /** Human-readable backend name for error messages. */\n protected abstract readonly backendName: string;\n\n /** Evaluate a JavaScript expression in the page and return the result. */\n protected abstract evaluateInPage<T>(script: string): Promise<T>;\n\n // ---------------------------------------------------------------------------\n // Ref resolution\n // ---------------------------------------------------------------------------\n\n /**\n * Resolve an ElementRef to a backendDOMNodeId. Throws if unknown.\n */\n protected resolveRefToNodeId(ref: ElementRef): number {\n if (!this._refMap.has(ref)) {\n throw new Error(`${this.backendName}: unknown ref \"${ref}\"`);\n }\n const nodeId = this._refMap.get(ref);\n if (nodeId == null) {\n throw new Error(`${this.backendName}: ref \"${ref}\" has no associated DOM node`);\n }\n return nodeId;\n }\n\n /**\n * Get the bounding box of a DOM node by backendDOMNodeId via CDP.\n */\n protected async getBoundingBox(\n backendNodeId: number\n ): Promise<{ x: number; y: number; width: number; height: number }> {\n const result = (await this.cdp(\"DOM.getBoxModel\", { backendNodeId })) as {\n model: { content: number[] };\n };\n const content = result.model.content;\n // content is [x1,y1, x2,y2, x3,y3, x4,y4] (quad)\n const x = content[0];\n const y = content[1];\n const width = content[2] - content[0];\n const height = content[5] - content[1];\n return { x, y, width, height };\n }\n\n /**\n * Get the root nodeId of the DOM document.\n */\n protected async getDocumentRootNodeId(): Promise<number> {\n const doc = (await this.cdp(\"DOM.getDocument\", { depth: 0 })) as {\n root: { nodeId: number };\n };\n return doc.root.nodeId;\n }\n\n // ---------------------------------------------------------------------------\n // Accessibility\n // ---------------------------------------------------------------------------\n\n async snapshot(_options: SnapshotOptions = {}): Promise<AccessibilityTree> {\n // Clear old snapshot refs but keep the monotonic counter to avoid\n // collisions with refs created by querySelector between snapshots.\n this._refMap.clear();\n\n const result = (await this.cdp(\"Accessibility.getFullAXTree\")) as { nodes: CDPAXNode[] };\n const nodes = result.nodes ?? [];\n\n const root = parseCDPAXTree(nodes, this._refCounter, this._refMap);\n const yaml = serializeAXTree(root);\n\n return { root, yaml };\n }\n\n // ---------------------------------------------------------------------------\n // Element interaction (by ref)\n // ---------------------------------------------------------------------------\n\n async click(ref: ElementRef, options: ClickOptions = {}): Promise<void> {\n const backendNodeId = this.resolveRefToNodeId(ref);\n const { x, y, width, height } = await this.getBoundingBox(backendNodeId);\n const cx = x + width / 2;\n const cy = y + height / 2;\n\n const button = options.button ?? \"left\";\n const clickCount = options.clickCount ?? 1;\n const modifiers = buildModifiersMask(options.modifiers);\n\n for (let i = 0; i < clickCount; i++) {\n await this.cdp(\"Input.dispatchMouseEvent\", {\n type: \"mousePressed\",\n x: cx,\n y: cy,\n button,\n clickCount: 1,\n modifiers,\n });\n await this.cdp(\"Input.dispatchMouseEvent\", {\n type: \"mouseReleased\",\n x: cx,\n y: cy,\n button,\n clickCount: 1,\n modifiers,\n });\n }\n }\n\n async fill(ref: ElementRef, value: string, _options: WaitOptions = {}): Promise<void> {\n const backendNodeId = this.resolveRefToNodeId(ref);\n\n // Focus the element\n await this.cdp(\"DOM.focus\", { backendNodeId });\n\n // Select all existing text and replace with new value\n await this.cdp(\"Input.dispatchKeyEvent\", {\n type: \"keyDown\",\n key: \"a\",\n code: \"KeyA\",\n modifiers: 2, // Control\n });\n await this.cdp(\"Input.dispatchKeyEvent\", {\n type: \"keyUp\",\n key: \"a\",\n code: \"KeyA\",\n modifiers: 2,\n });\n\n // Insert text via CDP\n await this.cdp(\"Input.insertText\", { text: value });\n }\n\n async selectOption(\n ref: ElementRef,\n values: string | readonly string[],\n _options: WaitOptions = {}\n ): Promise<void> {\n const backendNodeId = this.resolveRefToNodeId(ref);\n const valuesArray = Array.isArray(values) ? values : [values];\n\n // Use JavaScript to set the value on the select element\n const result = (await this.cdp(\"DOM.resolveNode\", { backendNodeId })) as {\n object: { objectId: string };\n };\n const objectId = result.object.objectId;\n\n await this.cdp(\"Runtime.callFunctionOn\", {\n objectId,\n functionDeclaration: `function(vals) {\n const opts = Array.from(this.options);\n for (const opt of opts) {\n opt.selected = vals.includes(opt.value);\n }\n this.dispatchEvent(new Event('change', { bubbles: true }));\n }`,\n arguments: [{ value: valuesArray }],\n });\n }\n\n async hover(ref: ElementRef, _options: WaitOptions = {}): Promise<void> {\n const backendNodeId = this.resolveRefToNodeId(ref);\n const { x, y, width, height } = await this.getBoundingBox(backendNodeId);\n const cx = x + width / 2;\n const cy = y + height / 2;\n\n await this.cdp(\"Input.dispatchMouseEvent\", {\n type: \"mouseMoved\",\n x: cx,\n y: cy,\n });\n }\n\n // ---------------------------------------------------------------------------\n // Semantic interaction\n // ---------------------------------------------------------------------------\n\n async clickByRole(role: AriaRole, name: string, options: ClickOptions = {}): Promise<void> {\n const result = (await this.cdp(\"Accessibility.queryAXTree\", {\n role,\n name,\n })) as { nodes: CDPAXNode[] };\n\n const axNode = result.nodes?.[0];\n if (!axNode) {\n throw new Error(`${this.backendName}: no element with role \"${role}\" and name \"${name}\"`);\n }\n\n if (axNode.backendDOMNodeId == null) {\n throw new Error(\n `${this.backendName}: element with role \"${role}\" and name \"${name}\" has no DOM node`\n );\n }\n\n const { x, y, width, height } = await this.getBoundingBox(axNode.backendDOMNodeId);\n const cx = x + width / 2;\n const cy = y + height / 2;\n\n const button = options.button ?? \"left\";\n const clickCount = options.clickCount ?? 1;\n const modifiers = buildModifiersMask(options.modifiers);\n\n for (let i = 0; i < clickCount; i++) {\n await this.cdp(\"Input.dispatchMouseEvent\", {\n type: \"mousePressed\",\n x: cx,\n y: cy,\n button,\n clickCount: 1,\n modifiers,\n });\n await this.cdp(\"Input.dispatchMouseEvent\", {\n type: \"mouseReleased\",\n x: cx,\n y: cy,\n button,\n clickCount: 1,\n modifiers,\n });\n }\n }\n\n async fillByLabel(label: string, value: string, _options: WaitOptions = {}): Promise<void> {\n // Try CDP path first: find the label via AX tree, resolve its associated input,\n // then use CDP DOM.focus + Input.insertText (no JS injection needed).\n const labelResult = (await this.cdp(\"Accessibility.queryAXTree\", {\n role: \"label\",\n name: label,\n })) as { nodes: CDPAXNode[] };\n\n if (labelResult.nodes?.[0]?.backendDOMNodeId != null) {\n const labelNodeId = labelResult.nodes[0].backendDOMNodeId;\n const resolveResult = (await this.cdp(\"DOM.resolveNode\", {\n backendNodeId: labelNodeId,\n })) as {\n object: { objectId: string };\n };\n\n // Find the associated input element via the label's for/htmlFor or as a child\n const inputResult = (await this.cdp(\"Runtime.callFunctionOn\", {\n objectId: resolveResult.object.objectId,\n functionDeclaration: `function() {\n const forAttr = this.htmlFor || this.getAttribute('for');\n if (forAttr) {\n return document.getElementById(forAttr);\n }\n return this.querySelector('input, textarea, select');\n }`,\n returnByValue: false,\n })) as { result: { objectId?: string; subtype?: string } };\n\n if (inputResult.result.objectId && inputResult.result.subtype !== \"null\") {\n // Get the backendNodeId for the input element\n const inputNodeResult = (await this.cdp(\"DOM.requestNode\", {\n objectId: inputResult.result.objectId,\n })) as { nodeId: number };\n\n const describeResult = (await this.cdp(\"DOM.describeNode\", {\n nodeId: inputNodeResult.nodeId,\n })) as { node: { backendNodeId: number } };\n\n // Focus and fill via CDP — clean, no JS injection\n await this.cdp(\"DOM.focus\", { backendNodeId: describeResult.node.backendNodeId });\n await this.cdp(\"Input.dispatchKeyEvent\", {\n type: \"keyDown\",\n key: \"a\",\n code: \"KeyA\",\n modifiers: 2,\n });\n await this.cdp(\"Input.dispatchKeyEvent\", {\n type: \"keyUp\",\n key: \"a\",\n code: \"KeyA\",\n modifiers: 2,\n });\n await this.cdp(\"Input.insertText\", { text: value });\n return;\n }\n }\n\n // JS fallback: find label by text content, resolve its input, set value with events\n const script = `(function() {\n const labels = Array.from(document.querySelectorAll('label'));\n const label = labels.find(l => l.textContent.trim() === ${JSON.stringify(label)});\n if (!label) return false;\n const forAttr = label.htmlFor;\n let input = forAttr ? document.getElementById(forAttr) : label.querySelector('input, textarea, select');\n if (!input) return false;\n input.focus();\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n Object.getPrototypeOf(input), 'value'\n )?.set;\n if (nativeInputValueSetter) {\n nativeInputValueSetter.call(input, ${JSON.stringify(value)});\n } else {\n input.value = ${JSON.stringify(value)};\n }\n input.dispatchEvent(new Event('input', { bubbles: true }));\n input.dispatchEvent(new Event('change', { bubbles: true }));\n return true;\n })()`;\n const filled = await this.evaluateInPage<boolean>(script);\n if (!filled) {\n throw new Error(`${this.backendName}: no input found for label \"${label}\"`);\n }\n }\n\n // ---------------------------------------------------------------------------\n // Content extraction\n // ---------------------------------------------------------------------------\n\n async innerHTML(ref: ElementRef): Promise<string> {\n const backendNodeId = this.resolveRefToNodeId(ref);\n const result = (await this.cdp(\"DOM.getOuterHTML\", { backendNodeId })) as {\n outerHTML: string;\n };\n // Strip outer tag to get innerHTML\n const outer = result.outerHTML;\n const startTagEnd = outer.indexOf(\">\");\n const endTagStart = outer.lastIndexOf(\"<\");\n if (startTagEnd === -1 || endTagStart <= startTagEnd) {\n return outer;\n }\n return outer.slice(startTagEnd + 1, endTagStart);\n }\n\n async textContent(ref: ElementRef): Promise<string | null> {\n const backendNodeId = this.resolveRefToNodeId(ref);\n const resolveResult = (await this.cdp(\"DOM.resolveNode\", { backendNodeId })) as {\n object: { objectId: string };\n };\n const objectId = resolveResult.object.objectId;\n const result = (await this.cdp(\"Runtime.callFunctionOn\", {\n objectId,\n functionDeclaration: \"function() { return this.textContent; }\",\n returnByValue: true,\n })) as { result: { value: string | null } };\n return result.result.value;\n }\n\n async attribute(ref: ElementRef, name: string): Promise<string | null> {\n const backendNodeId = this.resolveRefToNodeId(ref);\n const resolveResult = (await this.cdp(\"DOM.resolveNode\", { backendNodeId })) as {\n object: { objectId: string };\n };\n const objectId = resolveResult.object.objectId;\n const result = (await this.cdp(\"Runtime.callFunctionOn\", {\n objectId,\n functionDeclaration: \"function(attrName) { return this.getAttribute(attrName); }\",\n arguments: [{ value: name }],\n returnByValue: true,\n })) as { result: { value: string | null } };\n return result.result.value;\n }\n\n // ---------------------------------------------------------------------------\n // CSS selectors\n // ---------------------------------------------------------------------------\n\n async querySelector(selector: string): Promise<ElementRef | null> {\n const rootNodeId = await this.getDocumentRootNodeId();\n const result = (await this.cdp(\"DOM.querySelector\", {\n nodeId: rootNodeId,\n selector,\n })) as { nodeId: number };\n\n if (!result.nodeId || result.nodeId === 0) return null;\n\n // Convert nodeId to backendNodeId\n const describeResult = (await this.cdp(\"DOM.describeNode\", { nodeId: result.nodeId })) as {\n node: { backendNodeId: number };\n };\n\n const ref = `e${++this._refCounter.count}`;\n this._refMap.set(ref, describeResult.node.backendNodeId);\n return ref;\n }\n\n async querySelectorAll(selector: string): Promise<readonly ElementRef[]> {\n const rootNodeId = await this.getDocumentRootNodeId();\n const result = (await this.cdp(\"DOM.querySelectorAll\", {\n nodeId: rootNodeId,\n selector,\n })) as { nodeIds: number[] };\n\n const nodeIds = result.nodeIds ?? [];\n const refs: ElementRef[] = [];\n\n for (const nodeId of nodeIds) {\n const describeResult = (await this.cdp(\"DOM.describeNode\", { nodeId })) as {\n node: { backendNodeId: number };\n };\n const ref = `e${++this._refCounter.count}`;\n this._refMap.set(ref, describeResult.node.backendNodeId);\n refs.push(ref);\n }\n\n return refs;\n }\n\n // ---------------------------------------------------------------------------\n // Input\n // ---------------------------------------------------------------------------\n\n async pressKey(key: string, _options: WaitOptions = {}): Promise<void> {\n // Map common key names to CDP key event fields\n const keyCode = KEY_CODE_MAP[key] ?? key;\n await this.cdp(\"Input.dispatchKeyEvent\", {\n type: \"keyDown\",\n key: keyCode,\n code: keyToCode(key),\n });\n await this.cdp(\"Input.dispatchKeyEvent\", {\n type: \"keyUp\",\n key: keyCode,\n code: keyToCode(key),\n });\n }\n\n async type(text: string, _options: WaitOptions = {}): Promise<void> {\n await this.cdp(\"Input.insertText\", { text });\n }\n\n async scroll(x: number, y: number, ref?: ElementRef): Promise<void> {\n if (ref) {\n // Scroll within element via JS\n const backendNodeId = this.resolveRefToNodeId(ref);\n const resolveResult = (await this.cdp(\"DOM.resolveNode\", { backendNodeId })) as {\n object: { objectId: string };\n };\n const objectId = resolveResult.object.objectId;\n await this.cdp(\"Runtime.callFunctionOn\", {\n objectId,\n functionDeclaration: `function(dx, dy) { this.scrollBy(dx, dy); }`,\n arguments: [{ value: x }, { value: y }],\n });\n } else {\n await this.cdp(\"Input.dispatchMouseEvent\", {\n type: \"mouseWheel\",\n x: 0,\n y: 0,\n deltaX: x,\n deltaY: y,\n });\n }\n }\n\n // ---------------------------------------------------------------------------\n // File operations\n // ---------------------------------------------------------------------------\n\n async uploadFile(ref: ElementRef, paths: string | readonly string[]): Promise<void> {\n const backendNodeId = this.resolveRefToNodeId(ref);\n const files = Array.isArray(paths) ? paths : [paths];\n\n await this.cdp(\"DOM.setFileInputFiles\", {\n backendNodeId,\n files,\n });\n }\n}\n",
|
|
@@ -63,40 +63,40 @@
|
|
|
63
63
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { IExecuteContext, Task, TaskConfig, TaskConfigSchema } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { BrowserSessionRegistry } from \"../BrowserSessionRegistry\";\n\nconst browserSwitchTabTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type BrowserSwitchTabTaskConfig = TaskConfig;\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n sessionId: {\n type: \"string\",\n title: \"Session ID\",\n description: \"The browser session to use\",\n },\n tabId: {\n type: \"string\",\n title: \"Tab ID\",\n description: \"The tab ID to switch to\",\n },\n },\n required: [\"sessionId\", \"tabId\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n sessionId: {\n type: \"string\",\n title: \"Session ID\",\n description: \"The browser session ID\",\n },\n },\n required: [\"sessionId\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type BrowserSwitchTabTaskInput = FromSchema<typeof inputSchema>;\nexport type BrowserSwitchTabTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class BrowserSwitchTabTask extends Task<\n BrowserSwitchTabTaskInput,\n BrowserSwitchTabTaskOutput,\n BrowserSwitchTabTaskConfig\n> {\n static override readonly type = \"BrowserSwitchTabTask\";\n static override readonly category = \"Browser\";\n public static override title = \"Browser Switch Tab\";\n public static override description = \"Switches the active browser tab to the specified tab ID\";\n static override readonly cacheable = false;\n\n public static override configSchema(): DataPortSchema {\n return browserSwitchTabTaskConfigSchema;\n }\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(\n input: BrowserSwitchTabTaskInput,\n _executeContext: IExecuteContext\n ): Promise<BrowserSwitchTabTaskOutput> {\n const ctx = BrowserSessionRegistry.get(input.sessionId);\n await ctx.switchTab(input.tabId);\n return { sessionId: input.sessionId };\n }\n}\n",
|
|
64
64
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { IExecuteContext, Task, TaskConfig, TaskConfigSchema } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { BrowserSessionRegistry } from \"../BrowserSessionRegistry\";\n\nconst browserCloseTabTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n tabId: {\n type: \"string\",\n title: \"Tab ID\",\n description: \"The tab ID to close (closes current tab if not provided)\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type BrowserCloseTabTaskConfig = TaskConfig & {\n tabId?: string;\n};\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n sessionId: {\n type: \"string\",\n title: \"Session ID\",\n description: \"The browser session to use\",\n },\n },\n required: [\"sessionId\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n sessionId: {\n type: \"string\",\n title: \"Session ID\",\n description: \"The browser session ID\",\n },\n },\n required: [\"sessionId\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type BrowserCloseTabTaskInput = FromSchema<typeof inputSchema>;\nexport type BrowserCloseTabTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class BrowserCloseTabTask extends Task<\n BrowserCloseTabTaskInput,\n BrowserCloseTabTaskOutput,\n BrowserCloseTabTaskConfig\n> {\n static override readonly type = \"BrowserCloseTabTask\";\n static override readonly category = \"Browser\";\n public static override title = \"Browser Close Tab\";\n public static override description = \"Closes a browser tab by tab ID\";\n static override readonly cacheable = false;\n\n public static override configSchema(): DataPortSchema {\n return browserCloseTabTaskConfigSchema;\n }\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(\n input: BrowserCloseTabTaskInput,\n _executeContext: IExecuteContext\n ): Promise<BrowserCloseTabTaskOutput> {\n if (!this.config.tabId) {\n throw new Error(\"BrowserCloseTabTask requires config.tabId\");\n }\n const ctx = BrowserSessionRegistry.get(input.sessionId);\n await ctx.closeTab(this.config.tabId);\n return { sessionId: input.sessionId };\n }\n}\n",
|
|
65
65
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n Entitlements,\n IExecuteContext,\n mergeEntitlements,\n Task,\n TaskConfig,\n TaskConfigSchema,\n TaskEntitlements,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { BrowserSessionRegistry } from \"../BrowserSessionRegistry\";\n\nconst browserLoginTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n mode: {\n type: \"string\",\n enum: [\"manual\", \"credential\", \"ai\"],\n title: \"Login Mode\",\n description: \"The login strategy to use\",\n default: \"manual\",\n },\n credentialName: {\n type: \"string\",\n title: \"Credential Name\",\n description: \"Name of the stored credential to use (required when mode is 'credential')\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type BrowserLoginTaskConfig = TaskConfig & {\n mode?: \"manual\" | \"credential\" | \"ai\";\n credentialName?: string;\n};\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n sessionId: {\n type: \"string\",\n title: \"Session ID\",\n description: \"The browser session to use\",\n },\n url: {\n type: \"string\",\n format: \"uri\",\n title: \"URL\",\n description: \"The login page URL to navigate to\",\n },\n },\n required: [\"sessionId\", \"url\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n sessionId: {\n type: \"string\",\n title: \"Session ID\",\n description: \"The browser session ID\",\n },\n },\n required: [\"sessionId\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type BrowserLoginTaskInput = FromSchema<typeof inputSchema>;\nexport type BrowserLoginTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class BrowserLoginTask extends Task<\n BrowserLoginTaskInput,\n BrowserLoginTaskOutput,\n BrowserLoginTaskConfig\n> {\n static override readonly type = \"BrowserLoginTask\";\n static override readonly category = \"Browser\";\n public static override title = \"Browser Login\";\n public static override description =\n \"Logs into a website using manual, credential, or AI-driven login strategies\";\n static override readonly cacheable = false;\n\n public static override hasDynamicEntitlements = true;\n\n public static override configSchema(): DataPortSchema {\n return browserLoginTaskConfigSchema;\n }\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n public static override entitlements(): TaskEntitlements {\n return {\n entitlements: [\n { id: Entitlements.BROWSER_CONTROL_NAVIGATE, reason: \"Navigates to the login page URL\" },\n ],\n };\n }\n\n public override entitlements(): TaskEntitlements {\n const base = BrowserLoginTask.entitlements();\n if (this.config.mode === \"credential\") {\n return mergeEntitlements(base, {\n entitlements: [\n {\n id: Entitlements.BROWSER_CONTROL_CREDENTIAL,\n reason: \"Accesses stored credentials for login\",\n },\n ],\n });\n }\n return base;\n }\n\n override async execute(\n input: BrowserLoginTaskInput,\n executeContext: IExecuteContext\n ): Promise<BrowserLoginTaskOutput> {\n const parsed = new URL(input.url, \"https://placeholder\");\n if (parsed.protocol === \"javascript:\") {\n throw new Error(\"BrowserLoginTask: javascript: URLs are not allowed\");\n }\n const ctx = BrowserSessionRegistry.get(input.sessionId);\n const mode = this.config.mode ?? \"manual\";\n\n await ctx.navigate(input.url);\n await executeContext.updateProgress(20, \"Navigated to login page\");\n\n switch (mode) {\n case \"manual\":\n await executeContext.updateProgress(50, \"Waiting for manual login...\");\n // Placeholder for future HumanInputTask integration\n break;\n case \"credential\":\n throw new Error(\"Credential-based login mode is not yet implemented\");\n case \"ai\":\n throw new Error(\"AI-driven login mode is not yet implemented\");\n }\n\n return { sessionId: input.sessionId };\n }\n}\n",
|
|
66
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
67
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, Task, TaskConfig, TaskConfigSchema, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst log_levels = [\"dir\", \"log\", \"debug\", \"info\", \"warn\", \"error\"] as const;\ntype LogLevel = (typeof log_levels)[number];\nconst DEFAULT_LOG_LEVEL: LogLevel = \"log\";\n\nconst debugLogTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n log_level: {\n type: \"string\",\n enum: log_levels,\n title: \"Log Level\",\n description: \"The log level to use\",\n default: DEFAULT_LOG_LEVEL,\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type DebugLogTaskConfig = TaskConfig & {\n /** Log level to use for output */\n log_level?: LogLevel;\n};\n\nconst inputSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nexport type DebugLogTaskInput = FromSchema<typeof inputSchema>;\nexport type DebugLogTaskOutput = FromSchema<typeof outputSchema>;\n\n/**\n * DebugLogTask provides console logging functionality as a task within the system.\n *\n * Features:\n * - Supports multiple log levels (info, warn, error, dir) via config\n * - Passes through all inputs as outputs unchanged\n * - Configurable logging format and depth\n *\n * This task is particularly useful for debugging task graphs and monitoring\n * data flow between tasks during development and testing.\n */\nexport class DebugLogTask<\n Input extends DebugLogTaskInput = DebugLogTaskInput,\n Output extends DebugLogTaskOutput = DebugLogTaskOutput,\n> extends Task<Input, Output, DebugLogTaskConfig> {\n public static override type = \"DebugLogTask\";\n public static override category = \"Utility\";\n public static override title = \"Debug Log\";\n public static override description =\n \"Logs messages to the console with configurable log levels for debugging task graphs\";\n static override readonly cacheable = false;\n public static override passthroughInputsToOutputs = true;\n public static override customizable = true;\n public static override isPassthrough = true;\n\n public static override configSchema(): DataPortSchema {\n return debugLogTaskConfigSchema;\n }\n\n public static override inputSchema() {\n return inputSchema;\n }\n\n public static override outputSchema() {\n return outputSchema;\n }\n\n override async
|
|
66
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nfunction formatDate(input: {\n value: string;\n format?: string;\n locale?: string;\n timeZone?: string;\n}): string {\n const dateInput = /^\\d+$/.test(input.value) ? Number(input.value) : input.value;\n const date = new Date(dateInput);\n\n if (isNaN(date.getTime())) {\n throw new Error(`Invalid date: ${input.value}`);\n }\n\n const format = input.format ?? \"iso\";\n const locale = input.locale;\n const timeZone = input.timeZone;\n\n switch (format) {\n case \"iso\":\n return date.toISOString();\n case \"date\":\n return date.toLocaleDateString(locale, timeZone ? { timeZone } : undefined);\n case \"time\":\n return date.toLocaleTimeString(locale, timeZone ? { timeZone } : undefined);\n case \"unix\":\n return String(date.getTime());\n case \"datetime\":\n default:\n return date.toLocaleString(locale, timeZone ? { timeZone } : undefined);\n }\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n value: {\n type: \"string\",\n title: \"Value\",\n description: \"Date string, ISO 8601 timestamp, or Unix timestamp in milliseconds\",\n },\n format: {\n type: \"string\",\n title: \"Format\",\n enum: [\"iso\", \"date\", \"time\", \"datetime\", \"unix\"],\n description: \"Output format: 'iso', 'date', 'time', 'datetime', 'unix'\",\n default: \"iso\",\n },\n locale: {\n type: \"string\",\n title: \"Locale\",\n description: \"Locale string (e.g. 'en-US')\",\n default: \"en-US\",\n },\n timeZone: {\n type: \"string\",\n title: \"Time Zone\",\n description: \"IANA time zone (e.g. 'America/New_York', 'UTC')\",\n },\n },\n required: [\"value\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n result: {\n type: \"string\",\n title: \"Result\",\n description: \"Formatted date string\",\n },\n },\n required: [\"result\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type DateFormatTaskInput = FromSchema<typeof inputSchema>;\nexport type DateFormatTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class DateFormatTask<\n Input extends DateFormatTaskInput = DateFormatTaskInput,\n Output extends DateFormatTaskOutput = DateFormatTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"DateFormatTask\";\n static override readonly category = \"Utility\";\n public static override title = \"Date Format\";\n public static override description = \"Parses and formats a date string\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { result: formatDate(input) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { result: formatDate(input) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n dateFormat: CreateWorkflow<DateFormatTaskInput, DateFormatTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.dateFormat = CreateWorkflow(DateFormatTask);\n",
|
|
67
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, Task, TaskConfig, TaskConfigSchema, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst log_levels = [\"dir\", \"log\", \"debug\", \"info\", \"warn\", \"error\"] as const;\ntype LogLevel = (typeof log_levels)[number];\nconst DEFAULT_LOG_LEVEL: LogLevel = \"log\";\n\nconst debugLogTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n log_level: {\n type: \"string\",\n enum: log_levels,\n title: \"Log Level\",\n description: \"The log level to use\",\n default: DEFAULT_LOG_LEVEL,\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type DebugLogTaskConfig = TaskConfig & {\n /** Log level to use for output */\n log_level?: LogLevel;\n};\n\nconst inputSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nexport type DebugLogTaskInput = FromSchema<typeof inputSchema>;\nexport type DebugLogTaskOutput = FromSchema<typeof outputSchema>;\n\n/**\n * Logs the input at the configured level and returns a fresh output object\n * containing the same key/value pairs (passthrough). Pure helper so both\n * execute() and executePreview() can share behavior.\n */\nfunction logAndPassthrough<Output extends DebugLogTaskOutput>(\n input: DebugLogTaskInput,\n log_level: LogLevel\n): Output {\n const inputRecord = input as Record<string, unknown>;\n if (log_level === \"dir\") {\n console.dir(inputRecord, { depth: null });\n } else {\n console[log_level](inputRecord);\n }\n const output = {} as Output;\n Object.assign(output, inputRecord);\n return output;\n}\n\n/**\n * DebugLogTask provides console logging functionality as a task within the system.\n *\n * Features:\n * - Supports multiple log levels (info, warn, error, dir) via config\n * - Passes through all inputs as outputs unchanged\n * - Configurable logging format and depth\n *\n * This task is particularly useful for debugging task graphs and monitoring\n * data flow between tasks during development and testing.\n */\nexport class DebugLogTask<\n Input extends DebugLogTaskInput = DebugLogTaskInput,\n Output extends DebugLogTaskOutput = DebugLogTaskOutput,\n> extends Task<Input, Output, DebugLogTaskConfig> {\n public static override type = \"DebugLogTask\";\n public static override category = \"Utility\";\n public static override title = \"Debug Log\";\n public static override description =\n \"Logs messages to the console with configurable log levels for debugging task graphs\";\n static override readonly cacheable = false;\n public static override passthroughInputsToOutputs = true;\n public static override customizable = true;\n public static override isPassthrough = true;\n\n public static override configSchema(): DataPortSchema {\n return debugLogTaskConfigSchema;\n }\n\n public static override inputSchema() {\n return inputSchema;\n }\n\n public static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input) {\n return logAndPassthrough<Output>(input, this.config.log_level ?? DEFAULT_LOG_LEVEL);\n }\n\n override async executePreview(input: Input) {\n return logAndPassthrough<Output>(input, this.config.log_level ?? DEFAULT_LOG_LEVEL);\n }\n}\n\nexport const debugLog = (input: DebugLogTaskInput, config: DebugLogTaskConfig = {}) => {\n const task = new DebugLogTask(config);\n return task.run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n debugLog: CreateWorkflow<DebugLogTaskInput, DebugLogTaskOutput, DebugLogTaskConfig>;\n }\n}\n\nWorkflow.prototype.debugLog = CreateWorkflow(DebugLogTask);\n",
|
|
68
68
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n Task,\n TaskAbortedError,\n TaskConfig,\n TaskConfigSchema,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { sleep } from \"@workglow/util\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst delayTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n delay: {\n type: \"number\",\n title: \"Delay (ms)\",\n default: 1,\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type DelayTaskConfig = TaskConfig & {\n /** Delay duration in milliseconds */\n delay?: number;\n};\n\nconst inputSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nexport type DelayTaskInput = FromSchema<typeof inputSchema>;\nexport type DelayTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class DelayTask<\n Input extends DelayTaskInput = DelayTaskInput,\n Output extends DelayTaskOutput = DelayTaskOutput,\n> extends Task<Input, Output, DelayTaskConfig> {\n static override readonly type = \"DelayTask\";\n static override readonly category = \"Utility\";\n public static override title = \"Delay\";\n public static override description =\n \"Delays execution for a specified duration with progress tracking\";\n static override readonly cacheable = false;\n public static override passthroughInputsToOutputs = true;\n public static override customizable = true;\n\n public static override configSchema(): DataPortSchema {\n return delayTaskConfigSchema;\n }\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, executeContext: IExecuteContext): Promise<Output> {\n const delay = this.config.delay ?? 1;\n if (delay > 100) {\n const iterations = Math.min(100, Math.floor(delay / 16)); // 1/60fps is about 16ms\n const chunkSize = delay / iterations;\n for (let i = 0; i < iterations; i++) {\n if (executeContext.signal.aborted) {\n throw new TaskAbortedError(\"Task aborted\");\n }\n await sleep(chunkSize);\n await executeContext.updateProgress((100 * i) / iterations, `Delaying for ${delay}ms`);\n }\n } else {\n await sleep(delay);\n }\n return input as unknown as Output;\n }\n}\n\n/**\n * DelayTask\n *\n * Delays the execution of a task for a specified amount of time\n *\n * @param config - Task configuration; use `config.delay` for the delay in milliseconds\n */\nexport const delay = (input: DelayTaskInput, config: DelayTaskConfig = { delay: 1 }) => {\n const task = new DelayTask(config);\n return task.run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n delay: CreateWorkflow<DelayTaskInput, DelayTaskOutput, DelayTaskConfig>;\n }\n}\n\nWorkflow.prototype.delay = CreateWorkflow(DelayTask);\n",
|
|
69
69
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AbortSignalJobError,\n IJobExecuteContext,\n Job,\n PermanentJobError,\n RetryableJobError,\n} from \"@workglow/job-queue\";\nimport type {\n IExecuteContext,\n RegisteredQueue,\n TaskConfig,\n TaskEntitlements,\n} from \"@workglow/task-graph\";\nimport {\n CreateWorkflow,\n Entitlements,\n getJobQueueFactory,\n getTaskQueueRegistry,\n JobTaskFailedError,\n mergeEntitlements,\n Task,\n TaskConfigSchema,\n TaskConfigurationError,\n TaskInvalidInputError,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { safeFetch } from \"../util/SafeFetch\";\nimport { classifyUrl, urlResourcePattern } from \"../util/UrlClassifier\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n url: {\n type: \"string\",\n title: \"URL\",\n description: \"The URL to fetch from\",\n format: \"uri\",\n },\n method: {\n enum: [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\"],\n title: \"Method\",\n description: \"The HTTP method to use\",\n default: \"GET\",\n },\n headers: {\n type: \"object\",\n additionalProperties: {\n type: \"string\",\n },\n title: \"Headers\",\n description: \"The headers to send with the request\",\n },\n body: {\n type: \"string\",\n title: \"Body\",\n description: \"The body of the request\",\n },\n response_type: {\n anyOf: [{ type: \"null\" }, { enum: [\"json\", \"text\", \"blob\", \"arraybuffer\"] }],\n title: \"Response Type\",\n description:\n \"The forced type of response to return. If null, the response type is inferred from the Content-Type header.\",\n default: null,\n },\n timeout: {\n type: \"number\",\n title: \"Timeout\",\n description: \"Request timeout in milliseconds\",\n },\n credential_key: {\n type: \"string\",\n format: \"credential\",\n title: \"Credential Key\",\n description:\n \"Key to look up in the credential store. The resolved value is sent as a Bearer token in the Authorization header.\",\n \"x-ui-hidden\": true,\n },\n },\n required: [\"url\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n json: {\n title: \"JSON\",\n description: \"The JSON response\",\n },\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"The text response\",\n },\n blob: {\n title: \"Blob\",\n description: \"The blob response\",\n },\n arraybuffer: {\n title: \"ArrayBuffer\",\n description: \"The arraybuffer response\",\n },\n metadata: {\n type: \"object\",\n properties: {\n contentType: { type: \"string\" },\n headers: { type: \"object\", additionalProperties: { type: \"string\" } },\n },\n additionalProperties: false,\n title: \"Response Metadata\",\n description: \"HTTP response metadata including content type and headers\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type FetchUrlTaskInput = FromSchema<typeof inputSchema>;\nexport type FetchUrlTaskOutput = FromSchema<typeof outputSchema>;\n\nasync function fetchWithProgress(\n url: string,\n options: RequestInit & {\n allowPrivate?: boolean;\n privateResourceScopes?: readonly string[];\n } = {},\n onProgress?: (progress: number) => Promise<void>\n): Promise<Response> {\n if (!options.signal) {\n throw new TaskConfigurationError(\"An AbortSignal must be provided.\");\n }\n\n const response = await safeFetch(url, options);\n if (!response.body) {\n throw new Error(\"ReadableStream not supported in this environment.\");\n }\n\n const contentLength = response.headers.get(\"Content-Length\");\n const totalBytes = contentLength ? parseInt(contentLength, 10) : 0;\n let receivedBytes = 0;\n const reader = response.body.getReader();\n\n // Create a new ReadableStream that supports progress updates\n const stream = new ReadableStream({\n start(controller) {\n async function push() {\n try {\n while (true) {\n // Check if the request was aborted\n if (options.signal?.aborted) {\n controller.error(new AbortSignalJobError(\"Fetch aborted\"));\n reader.cancel();\n return;\n }\n\n const { done, value } = await reader.read();\n if (done) {\n controller.close();\n break;\n }\n controller.enqueue(value);\n receivedBytes += value.length;\n if (onProgress && totalBytes) {\n await onProgress((receivedBytes / totalBytes) * 100);\n }\n }\n } catch (error) {\n controller.error(error);\n }\n }\n push();\n },\n cancel() {\n reader.cancel();\n },\n });\n\n return new Response(stream, {\n headers: response.headers,\n status: response.status,\n statusText: response.statusText,\n });\n}\n\n/**\n * Extends the base Job class to provide custom execution functionality\n * through a provided function.\n */\nexport class FetchUrlJob<\n Input extends FetchUrlTaskInput = FetchUrlTaskInput,\n Output = FetchUrlTaskOutput,\n> extends Job<Input, Output> {\n static readonly type: string = \"FetchUrlJob\";\n /**\n * Executes the job using the provided function.\n */\n override async execute(input: Input, context: IJobExecuteContext): Promise<Output> {\n const classification = classifyUrl(input.url!);\n if (classification.kind === \"invalid\") {\n throw new PermanentJobError(\n `Refusing to fetch invalid URL ${input.url}: ${classification.reason ?? \"malformed\"}`\n );\n }\n\n // allowPrivate is set to true only when the URL is classified as private:\n // the graph runner (when enforceEntitlements: true) already verified the\n // task was granted `network:private` before reaching this point. When\n // enforceEntitlements is false (default), private URLs are only allowed\n // because the task explicitly declares the network:private entitlement and\n // the caller has opted out of enforcement. safeFetch still re-checks DNS\n // on the server path to defeat DNS rebinding regardless.\n //\n // privateResourceScopes mirrors the task's declared scope from\n // entitlements() below — see urlResourcePattern(input.url) at the task\n // level. Threading it here makes safeFetch re-enforce the same scope on\n // every redirect hop, so a compromised upstream cannot walk across\n // private hosts/ports via Location headers. Least-privilege: the task\n // can only reach the private origin it was specifically authorized for.\n const isPrivate = classification.kind === \"private\";\n const response = await fetchWithProgress(\n input.url!,\n {\n method: input.method,\n headers: input.headers,\n body: input.body,\n signal: context.signal,\n allowPrivate: isPrivate,\n privateResourceScopes: isPrivate ? [urlResourcePattern(input.url!)] : undefined,\n },\n async (progress: number) => await context.updateProgress(progress)\n );\n\n if (response.ok) {\n // Extract metadata from response\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n const responseHeaders: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n responseHeaders[key] = value;\n });\n\n const metadata = {\n contentType,\n headers: responseHeaders,\n };\n\n // Infer response type from response headers if not specified\n let resolvedResponseType = input.response_type;\n if (!resolvedResponseType) {\n if (contentType.includes(\"application/json\")) {\n resolvedResponseType = \"json\";\n } else if (contentType.includes(\"text/\")) {\n resolvedResponseType = \"text\";\n } else if (contentType.includes(\"application/octet-stream\")) {\n resolvedResponseType = \"arraybuffer\";\n } else if (\n contentType.includes(\"application/pdf\") ||\n contentType.includes(\"image/\") ||\n contentType.includes(\"application/zip\")\n ) {\n resolvedResponseType = \"blob\";\n } else {\n resolvedResponseType = \"json\"; // Default fallback\n }\n }\n if (resolvedResponseType === \"json\") {\n return { json: await response.json(), metadata } as Output;\n } else if (resolvedResponseType === \"text\") {\n return { text: await response.text(), metadata } as Output;\n } else if (resolvedResponseType === \"blob\") {\n return { blob: await response.blob(), metadata } as Output;\n } else if (resolvedResponseType === \"arraybuffer\") {\n return { arraybuffer: await response.arrayBuffer(), metadata } as Output;\n }\n throw new TaskInvalidInputError(`Invalid response type: ${resolvedResponseType}`);\n } else {\n if (\n response.status === 429 ||\n response.status === 503 ||\n response.headers.get(\"Retry-After\")\n ) {\n let retryDate: Date | undefined;\n const retryAfterStr = response.headers.get(\"Retry-After\");\n if (retryAfterStr) {\n // Try parsing as seconds first (the common case)\n const seconds = Number(retryAfterStr);\n if (Number.isFinite(seconds) && seconds > 0) {\n retryDate = new Date(Date.now() + seconds * 1000);\n } else {\n // Fall back to HTTP date parsing\n const parsedDate = new Date(retryAfterStr);\n if (!isNaN(parsedDate.getTime()) && parsedDate > new Date()) {\n retryDate = parsedDate;\n }\n }\n }\n\n throw new RetryableJobError(\n `Failed to fetch ${input.url}: ${response.status} ${response.statusText}`,\n retryDate\n );\n } else {\n throw new PermanentJobError(\n `Failed to fetch ${input.url}: ${response.status} ${response.statusText}`\n );\n }\n }\n }\n}\n\n/**\n * FetchUrlTask provides a task for fetching data from a URL.\n */\nconst fetchUrlTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n queue: {\n oneOf: [{ type: \"boolean\" }, { type: \"string\" }],\n description: \"Queue handling: false=run inline, true=use default, string=explicit queue name\",\n \"x-ui-hidden\": true,\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type FetchUrlTaskConfig = TaskConfig & {\n queue?: boolean | string;\n};\n\nexport class FetchUrlTask<\n Input extends FetchUrlTaskInput = FetchUrlTaskInput,\n Output extends FetchUrlTaskOutput = FetchUrlTaskOutput,\n Config extends FetchUrlTaskConfig = FetchUrlTaskConfig,\n> extends Task<Input, Output, Config> {\n public static override type = \"FetchUrlTask\";\n public static override category = \"Input\";\n public static override title = \"Fetch\";\n public static override description =\n \"Fetches data from a URL with progress tracking and automatic retry handling\";\n public static override hasDynamicSchemas: boolean = true;\n public static override hasDynamicEntitlements: boolean = true;\n\n public static override entitlements(): TaskEntitlements {\n return {\n entitlements: [\n { id: Entitlements.NETWORK_HTTP, reason: \"Fetches data from URLs via HTTP/HTTPS\" },\n {\n id: Entitlements.CREDENTIAL,\n reason: \"May use Bearer token authentication\",\n optional: true,\n },\n ],\n };\n }\n\n /**\n * Dynamic entitlement check: when the configured URL targets a private or\n * loopback host the task additionally requires `network:private`, scoped\n * via the URL's origin so grants can be resource-limited (e.g. a dev-mode\n * grant for `http://localhost:*`). The graph runner evaluates this before\n * `execute()` runs, so a denied private URL never issues a network call.\n *\n * Root-task input may not yet be applied when entitlements are evaluated.\n * If the URL is not available at this point, fail closed and require the\n * private-network entitlement rather than under-declaring it.\n */\n public override entitlements(): TaskEntitlements {\n const base = FetchUrlTask.entitlements();\n const url = this.runInputData?.url;\n if (typeof url !== \"string\" || url.length === 0) {\n return mergeEntitlements(base, {\n entitlements: [\n {\n id: Entitlements.NETWORK_PRIVATE,\n reason:\n \"Runtime URL is not yet available during entitlement evaluation; private/internal destinations must be explicitly allowed\",\n },\n ],\n });\n }\n const classification = classifyUrl(url);\n if (classification.kind !== \"private\") {\n return base;\n }\n return mergeEntitlements(base, {\n entitlements: [\n {\n id: Entitlements.NETWORK_PRIVATE,\n reason: `URL targets private/internal host: ${classification.reason ?? classification.host ?? \"unknown\"}`,\n resources: [urlResourcePattern(url)],\n },\n ],\n });\n }\n\n public static override configSchema(): DataPortSchema {\n return fetchUrlTaskConfigSchema;\n }\n\n public static override inputSchema() {\n return inputSchema;\n }\n\n public static override outputSchema() {\n return outputSchema;\n }\n\n /**\n * Override outputSchema to compute it dynamically based on the current response_type value.\n * If response_type is null, all output types are available.\n * If response_type is a specific value (e.g., \"json\"), only that output type is available.\n */\n public override outputSchema(): DataPortSchema {\n // Get the current response_type value from runInputData (if set) or defaults\n // runInputData takes precedence as it contains the most recent input values\n const responseType = this.runInputData?.response_type ?? this.defaults?.response_type ?? null;\n\n // If response_type is null or undefined, return all output types (static schema)\n if (responseType === null || responseType === undefined) {\n return (this.constructor as typeof FetchUrlTask).outputSchema();\n }\n\n // If response_type is a specific value, return only that output type\n const staticSchema = (this.constructor as typeof FetchUrlTask).outputSchema();\n if (typeof staticSchema === \"boolean\") {\n return staticSchema;\n }\n\n if (!staticSchema.properties) {\n return staticSchema;\n }\n\n // Build properties object with only the selected response type\n const properties: Record<string, any> = {};\n if (responseType === \"json\" && staticSchema.properties.json) {\n properties.json = staticSchema.properties.json;\n } else if (responseType === \"text\" && staticSchema.properties.text) {\n properties.text = staticSchema.properties.text;\n } else if (responseType === \"blob\" && staticSchema.properties.blob) {\n properties.blob = staticSchema.properties.blob;\n } else if (responseType === \"arraybuffer\" && staticSchema.properties.arraybuffer) {\n properties.arraybuffer = staticSchema.properties.arraybuffer;\n }\n\n // Always include metadata\n if (staticSchema.properties.metadata) {\n properties.metadata = staticSchema.properties.metadata;\n }\n\n // If no properties were added (shouldn't happen with valid responseType), return static schema\n if (Object.keys(properties).length === 0) {\n return staticSchema;\n }\n\n return {\n type: \"object\",\n properties,\n additionalProperties: false,\n } as const satisfies DataPortSchema;\n }\n\n /**\n * Executes the fetch task, either directly or via a job queue depending on\n * the `queue` config/input. Credential resolution is handled by the input\n * resolver system — credential_key arrives already resolved.\n */\n override async execute(\n input: FetchUrlTaskInput,\n executeContext: IExecuteContext\n ): Promise<Output> {\n // Apply credential as Authorization header and strip it from the payload\n // so the secret is not persisted to queue storage.\n const credential = input.credential_key;\n let jobInput: FetchUrlTaskInput = input;\n if (credential) {\n const { credential_key: _omit, ...rest } = input;\n jobInput = {\n ...rest,\n headers: { ...input.headers, Authorization: `Bearer ${credential}` },\n };\n }\n\n const queuePref = this.config.queue ?? false;\n let cleanup: () => void = () => {};\n\n try {\n if (queuePref === false) {\n // Direct execution — create FetchUrlJob and run inline\n const job = new FetchUrlJob<FetchUrlTaskInput, Output>({ input: jobInput });\n cleanup = job.onJobProgress(\n (progress: number, message: string, details: Record<string, any> | null) => {\n executeContext.updateProgress(progress, message, details);\n }\n );\n return await job.execute(jobInput, {\n signal: executeContext.signal,\n updateProgress: executeContext.updateProgress.bind(this),\n });\n }\n\n // Queued execution\n const queueName =\n typeof queuePref === \"string\" ? queuePref : await this.getDefaultQueueName(input);\n\n if (!queueName) {\n throw new TaskConfigurationError(\"FetchUrlTask: Unable to determine queue name\");\n }\n\n const registeredQueue = await this.resolveOrCreateQueue(queueName);\n\n // Bail early to avoid enqueuing work that has already been cancelled.\n if (executeContext.signal.aborted) {\n throw executeContext.signal.reason ?? new AbortSignalJobError(\"The operation was aborted\");\n }\n\n const handle = await registeredQueue.client.submit(jobInput as Input, {\n jobRunId: this.runConfig.runnerId,\n maxRetries: 10,\n });\n\n // Wire abort signal to queued job\n const onAbort = () => {\n handle.abort().catch((err) => {\n console.warn(`Failed to abort queued fetch job`, err);\n });\n };\n executeContext.signal.addEventListener(\"abort\", onAbort);\n\n cleanup = handle.onProgress(\n (progress: number, message: string | undefined, details: Record<string, any> | null) => {\n executeContext.updateProgress(progress, message, details);\n }\n );\n\n try {\n if (executeContext.signal.aborted) {\n throw (\n executeContext.signal.reason ?? new AbortSignalJobError(\"The operation was aborted\")\n );\n }\n const output = await handle.waitFor();\n return output as Output;\n } finally {\n executeContext.signal.removeEventListener(\"abort\", onAbort);\n }\n } catch (err: any) {\n throw new JobTaskFailedError(err);\n } finally {\n cleanup();\n }\n }\n\n private async resolveOrCreateQueue(queueName: string): Promise<RegisteredQueue<Input, Output>> {\n const registry = getTaskQueueRegistry();\n let registeredQueue = registry.getQueue<Input, Output>(queueName);\n\n if (!registeredQueue) {\n const factory = getJobQueueFactory();\n registeredQueue = await factory({\n queueName,\n jobClass: FetchUrlJob as any,\n config: this.config,\n task: this,\n });\n\n try {\n registry.registerQueue(registeredQueue);\n } catch (err) {\n if (err instanceof Error && err.message.includes(\"already exists\")) {\n const existing = registry.getQueue<Input, Output>(queueName);\n if (existing) {\n // Another concurrent call won the race. Stop the server we just\n // created (safe no-op if not yet started) and use the winner's queue.\n registeredQueue.server.stop().catch((stopErr) => {\n console.warn(\"FetchUrlTask: failed to stop raced-out queue server\", stopErr);\n });\n registeredQueue = existing;\n }\n } else {\n throw err;\n }\n }\n }\n\n if (!registeredQueue.server.isRunning()) {\n await registeredQueue.server.start();\n }\n\n return registeredQueue;\n }\n\n /**\n * Override setInput to detect when response_type changes and emit schemaChange event.\n * This ensures that consumers of the task are notified when the output schema changes.\n */\n public override setInput(input: Partial<Input>): void {\n // Only check for changes if response_type is being set\n if (!(\"response_type\" in input)) {\n super.setInput(input);\n return;\n }\n\n // Get the current response_type before updating\n // Check runInputData first (most recent), then defaults, then null\n const getCurrentResponseType = () => {\n return this.runInputData?.response_type ?? this.defaults?.response_type ?? null;\n };\n\n const previousResponseType = getCurrentResponseType();\n\n // Call parent to update the input\n super.setInput(input);\n\n // Get the new response_type after updating (from runInputData, which is what setInput updates)\n const newResponseType = getCurrentResponseType();\n\n // If response_type changed, emit schemaChange event\n // Compare using strict equality (handles null/undefined correctly)\n if (previousResponseType !== newResponseType) {\n this.emitSchemaChange();\n }\n }\n\n private async getDefaultQueueName(input: FetchUrlTaskInput): Promise<string | undefined> {\n if (!input.url) {\n return `fetch:${this.type}`;\n }\n try {\n const hostname = new URL(input.url).hostname.toLowerCase();\n const parts = hostname.split(\".\").filter(Boolean);\n if (parts.length === 0) {\n return `fetch:${this.type}`;\n }\n const domain = parts.length <= 2 ? parts.join(\".\") : parts.slice(-2).join(\".\");\n return `fetch:${domain}`;\n } catch {\n return `fetch:${this.type}`;\n }\n }\n}\n\nexport const fetchUrl = async (\n input: FetchUrlTaskInput,\n config: FetchUrlTaskConfig = {}\n): Promise<FetchUrlTaskOutput> => {\n const result = await new FetchUrlTask(config).run(input);\n return result as FetchUrlTaskOutput;\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n fetch: CreateWorkflow<FetchUrlTaskInput, FetchUrlTaskOutput, FetchUrlTaskConfig>;\n }\n}\n\nWorkflow.prototype.fetch = CreateWorkflow(FetchUrlTask);\n",
|
|
70
70
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { IExecuteContext } from \"@workglow/task-graph\";\nimport {\n CreateWorkflow,\n Task,\n TaskAbortedError,\n TaskConfig,\n TaskConfigSchema,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { uuid4, resolveHumanConnector } from \"@workglow/util\";\nimport type { HumanResponseAction, IHumanRequest } from \"@workglow/util\";\nimport type { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\n// ========================================================================\n// Schemas\n// ========================================================================\n\nconst humanApprovalConfigSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n targetHumanId: {\n type: \"string\",\n title: \"Target Human\",\n description: \"Identifier of the human to ask for approval\",\n default: \"default\",\n },\n message: {\n type: \"string\",\n title: \"Message\",\n description: \"Explanatory message shown to the approver\",\n \"x-ui-editor\": \"textarea\",\n },\n metadata: {\n type: \"object\",\n additionalProperties: true,\n \"x-ui-hidden\": true,\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type HumanApprovalTaskConfig = TaskConfig & {\n /** Target human identifier — defaults to \"default\" */\n targetHumanId?: string;\n /** Explanatory message */\n message?: string;\n /** Arbitrary metadata passed to the connector */\n metadata?: Record<string, unknown>;\n};\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n prompt: {\n type: \"string\",\n title: \"Prompt\",\n description: \"Dynamic prompt text merged into the approval message\",\n },\n context: {\n type: \"object\",\n additionalProperties: true,\n title: \"Context\",\n description: \"Dynamic context data merged into the request metadata\",\n \"x-ui-hidden\": true,\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst approvalRequestedSchema = {\n type: \"object\",\n properties: {\n approved: {\n type: \"boolean\",\n title: \"Approved\",\n description: \"Whether the request is approved\",\n },\n reason: {\n type: \"string\",\n title: \"Reason\",\n description: \"Optional explanation for the decision\",\n },\n },\n required: [\"approved\"],\n} as const satisfies DataPortSchema;\n\nconst approvalOutputSchema = {\n type: \"object\",\n properties: {\n action: {\n type: \"string\",\n title: \"Action\",\n description: \"The human's action: accept, decline, or cancel\",\n enum: [\"accept\", \"decline\", \"cancel\"],\n },\n approved: {\n type: \"boolean\",\n title: \"Approved\",\n description: \"Whether the human approved the request\",\n },\n reason: {\n type: \"string\",\n title: \"Reason\",\n description: \"Optional explanation for the decision\",\n },\n },\n required: [\"action\", \"approved\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type HumanApprovalTaskInput = FromSchema<typeof inputSchema>;\n\nexport type HumanApprovalTaskOutput = {\n readonly action: HumanResponseAction;\n readonly approved: boolean;\n readonly reason?: string;\n};\n\n// ========================================================================\n// HumanApprovalTask\n// ========================================================================\n\n/**\n * Convenience task for the common approve/deny pattern.\n *\n * Presents the human with an approval dialog via MCP elicitation and returns\n * `{ action, approved, reason }`. Uses \"single\" mode — one question, one answer.\n *\n * If the human declines or cancels at the MCP level, `approved` is false and\n * `action` reflects the specific choice.\n */\nexport class HumanApprovalTask extends Task<\n HumanApprovalTaskInput,\n HumanApprovalTaskOutput,\n HumanApprovalTaskConfig\n> {\n static override readonly type = \"HumanApprovalTask\";\n static override readonly category = \"Flow Control\";\n public static override title = \"Human Approval\";\n public static override description =\n \"Pauses execution to request approval from a human (approve/deny) via MCP elicitation\";\n static override readonly cacheable = false;\n\n public static override configSchema(): DataPortSchema {\n return humanApprovalConfigSchema;\n }\n\n static override inputSchema(): DataPortSchema {\n return inputSchema;\n }\n\n static override outputSchema(): DataPortSchema {\n return approvalOutputSchema;\n }\n\n override async execute(\n input: HumanApprovalTaskInput,\n context: IExecuteContext\n ): Promise<HumanApprovalTaskOutput> {\n const connector = resolveHumanConnector(context);\n const requestId = uuid4();\n\n const message = input.prompt\n ? this.config.message\n ? `${this.config.message}\\n\\n${input.prompt}`\n : input.prompt\n : (this.config.message ?? \"\");\n\n const request: IHumanRequest = {\n requestId,\n targetHumanId: this.config.targetHumanId ?? \"default\",\n kind: \"elicit\",\n message,\n contentSchema: approvalRequestedSchema,\n contentData: undefined,\n expectsResponse: true,\n mode: \"single\",\n metadata: input.context\n ? { ...this.config.metadata, ...input.context }\n : this.config.metadata,\n };\n\n if (context.signal.aborted) {\n throw new TaskAbortedError(\"Task aborted before requesting human approval\");\n }\n\n let response: Awaited<ReturnType<typeof connector.send>>;\n try {\n response = await connector.send(request, context.signal);\n } catch (err) {\n if (context.signal.aborted) {\n throw new TaskAbortedError(\"Task aborted during human approval\");\n }\n throw err;\n }\n\n // Map MCP actions to approval semantics:\n // - \"accept\" with approved field from content\n // - \"decline\" or \"cancel\" → approved = false\n if (response.action === \"accept\" && response.content) {\n return {\n action: response.action,\n approved: response.content.approved === true,\n reason: response.content.reason as string | undefined,\n };\n }\n\n return {\n action: response.action,\n approved: false,\n ...(response.content?.reason !== undefined\n ? { reason: response.content.reason as string }\n : {}),\n };\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n humanApproval: CreateWorkflow<\n HumanApprovalTaskInput,\n HumanApprovalTaskOutput,\n HumanApprovalTaskConfig\n >;\n }\n}\n\nWorkflow.prototype.humanApproval = CreateWorkflow(HumanApprovalTask);\n",
|
|
71
71
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { IExecuteContext } from \"@workglow/task-graph\";\nimport {\n CreateWorkflow,\n Task,\n TaskAbortedError,\n TaskConfig,\n TaskConfigSchema,\n TaskConfigurationError,\n Workflow,\n} from \"@workglow/task-graph\";\nimport type {\n HumanInteractionKind,\n HumanResponseAction,\n IHumanRequest,\n IHumanResponse,\n} from \"@workglow/util\";\nimport { resolveHumanConnector, uuid4 } from \"@workglow/util\";\nimport type { DataPortSchema, PropertySchema } from \"@workglow/util/schema\";\n\n// ========================================================================\n// Task config and schemas\n// ========================================================================\n\nconst humanInputTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n targetHumanId: {\n type: \"string\",\n title: \"Target Human\",\n description: \"Identifier of the human to ask (e.g. 'default', 'admin', 'user:alice')\",\n default: \"default\",\n },\n kind: {\n type: \"string\",\n title: \"Kind\",\n description:\n \"Interaction kind: notify (one-way), display (show content), elicit (request input)\",\n enum: [\"notify\", \"display\", \"elicit\"],\n default: \"elicit\",\n },\n contentSchema: {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n title: \"Content Schema\",\n description: \"JSON schema describing the content/form to present\",\n \"x-ui-hidden\": true,\n },\n message: {\n type: \"string\",\n title: \"Message\",\n description: \"Explanatory message shown to the human\",\n \"x-ui-editor\": \"textarea\",\n },\n mode: {\n type: \"string\",\n title: \"Mode\",\n description: \"Interaction mode\",\n enum: [\"single\", \"multi-turn\"],\n default: \"single\",\n },\n metadata: {\n type: \"object\",\n additionalProperties: true,\n \"x-ui-hidden\": true,\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type HumanInputTaskConfig = TaskConfig & {\n /** Target human identifier — defaults to \"default\" */\n targetHumanId?: string;\n /** Interaction kind — defaults to \"elicit\" */\n kind?: HumanInteractionKind;\n /** JSON schema describing the content/form to render */\n contentSchema?: DataPortSchema;\n /** Explanatory message */\n message?: string;\n /** Interaction mode — defaults to \"single\" */\n mode?: \"single\" | \"multi-turn\";\n /** Arbitrary metadata passed to the connector */\n metadata?: Record<string, unknown>;\n};\n\nconst defaultInputSchema = {\n type: \"object\",\n properties: {\n prompt: {\n type: \"string\",\n title: \"Prompt\",\n description: \"Dynamic prompt text merged into the request message\",\n },\n contentData: {\n type: \"object\",\n additionalProperties: true,\n title: \"Content Data\",\n description: \"Data to display (for notify/display kinds)\",\n \"x-ui-hidden\": true,\n },\n context: {\n type: \"object\",\n additionalProperties: true,\n title: \"Context\",\n description: \"Dynamic context data merged into the request metadata\",\n \"x-ui-hidden\": true,\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst defaultOutputSchema = {\n type: \"object\",\n properties: {\n action: {\n type: \"string\",\n title: \"Action\",\n description: \"The human's action: accept, decline, or cancel\",\n enum: [\"accept\", \"decline\", \"cancel\"],\n },\n },\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nexport type HumanInputTaskInput = {\n prompt?: string;\n contentData?: Record<string, unknown>;\n context?: Record<string, unknown>;\n};\n\nexport type HumanInputTaskOutput = {\n /** The human's action */\n action: HumanResponseAction;\n /** Additional response data (for elicit kind) */\n [key: string]: unknown;\n};\n\n// ========================================================================\n// HumanInputTask\n// ========================================================================\n\n/**\n * A task that sends an interaction to a human via an IHumanConnector.\n *\n * Supports three interaction kinds:\n * - \"notify\": Send a notification (fire-and-forget, task completes immediately)\n * - \"display\": Present content to the human (charts, data, markdown)\n * - \"elicit\": Request structured input via a form (MCP elicitation model)\n *\n * The contentSchema describes WHAT to render. The kind determines HOW.\n * For \"elicit\", the output includes the human's submitted data.\n * For \"notify\"/\"display\", the output is just `{ action: \"accept\" }`.\n */\nexport class HumanInputTask extends Task<\n HumanInputTaskInput,\n HumanInputTaskOutput,\n HumanInputTaskConfig\n> {\n static override readonly type = \"HumanInputTask\";\n static override readonly category = \"Flow Control\";\n public static override title = \"Human Input\";\n public static override description =\n \"Sends an interaction (notification, display, or input request) to a human\";\n static override readonly cacheable = false;\n public static override hasDynamicSchemas = true;\n\n public static override configSchema(): DataPortSchema {\n return humanInputTaskConfigSchema;\n }\n\n static override inputSchema(): DataPortSchema {\n return defaultInputSchema;\n }\n\n static override outputSchema(): DataPortSchema {\n return defaultOutputSchema;\n }\n\n public override outputSchema(): DataPortSchema {\n if (this.config?.contentSchema && (this.config.kind ?? \"elicit\") === \"elicit\") {\n const configSchema = this.config.contentSchema as Record<string, unknown>;\n const existingProps = (configSchema.properties ?? {}) as Record<string, unknown>;\n const additionalProperties = configSchema.additionalProperties ?? false;\n const actionProp = {\n type: \"string\",\n title: \"Action\",\n description: \"The human's action: accept, decline, or cancel\",\n enum: [\"accept\", \"decline\", \"cancel\"],\n } as const satisfies PropertySchema;\n const result = {\n type: \"object\",\n properties: { ...existingProps, action: actionProp },\n required: [\"action\"],\n additionalProperties,\n } as const satisfies DataPortSchema;\n return result;\n }\n return (this.constructor as typeof HumanInputTask).outputSchema();\n }\n\n override async execute(\n input: HumanInputTaskInput,\n context: IExecuteContext\n ): Promise<HumanInputTaskOutput> {\n const connector = resolveHumanConnector(context);\n const kind = this.config.kind ?? \"elicit\";\n const mode = this.config.mode ?? \"single\";\n const requestId = uuid4();\n\n const message = input.prompt\n ? this.config.message\n ? `${this.config.message}\\n\\n${input.prompt}`\n : input.prompt\n : (this.config.message ?? \"\");\n\n const emptySchema: DataPortSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n };\n\n const request: IHumanRequest = {\n requestId,\n targetHumanId: this.config.targetHumanId ?? \"default\",\n kind,\n message,\n contentSchema: this.config.contentSchema ?? emptySchema,\n contentData: input.contentData,\n expectsResponse: kind === \"elicit\",\n mode: kind === \"elicit\" ? mode : \"single\",\n metadata: input.context\n ? { ...this.config.metadata, ...input.context }\n : this.config.metadata,\n };\n\n if (context.signal.aborted) {\n throw new TaskAbortedError(\"Task aborted before sending human interaction\");\n }\n\n let response: IHumanResponse;\n try {\n response = await connector.send(request, context.signal);\n } catch (err) {\n if (context.signal.aborted) {\n throw new TaskAbortedError(\"Task aborted during human interaction\");\n }\n throw err;\n }\n\n if (kind === \"elicit\" && mode === \"multi-turn\" && !response.done) {\n if (typeof connector.followUp !== \"function\") {\n throw new TaskConfigurationError(\n 'HumanInputTask is configured for \"multi-turn\" mode but the registered ' +\n \"IHumanConnector does not implement followUp()\"\n );\n }\n\n while (!response.done) {\n if (context.signal.aborted) {\n throw new TaskAbortedError(\"Task aborted during multi-turn conversation\");\n }\n try {\n response = await connector.followUp(request, response, context.signal);\n } catch (err) {\n if (context.signal.aborted) {\n throw new TaskAbortedError(\"Task aborted during multi-turn conversation\");\n }\n throw err;\n }\n }\n }\n\n return { ...response.content, action: response.action };\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n humanInput: CreateWorkflow<HumanInputTaskInput, HumanInputTaskOutput, HumanInputTaskConfig>;\n }\n}\n\nWorkflow.prototype.humanInput = CreateWorkflow(HumanInputTask);\n",
|
|
72
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
72
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function applyBlur(input: ImageBlurTaskInput): Promise<ImageBlurTaskOutput> {\n const { radius = 1 } = input;\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels } = img;\n const kernelSize = radius * 2 + 1;\n\n // Horizontal pass\n const tmp = new Uint8ClampedArray(src.length);\n for (let y = 0; y < height; y++) {\n for (let c = 0; c < channels; c++) {\n let sum = 0;\n // Initialize running sum for first pixel\n for (let k = -radius; k <= radius; k++) {\n const x = Math.max(0, Math.min(k, width - 1));\n sum += src[(y * width + x) * channels + c];\n }\n tmp[y * width * channels + c] = (sum / kernelSize + 0.5) | 0;\n\n // Slide the window across the row\n for (let x = 1; x < width; x++) {\n const addX = Math.min(x + radius, width - 1);\n const removeX = Math.max(x - radius - 1, 0);\n sum += src[(y * width + addX) * channels + c] - src[(y * width + removeX) * channels + c];\n tmp[(y * width + x) * channels + c] = (sum / kernelSize + 0.5) | 0;\n }\n }\n }\n\n // Vertical pass\n const dst = new Uint8ClampedArray(src.length);\n for (let x = 0; x < width; x++) {\n for (let c = 0; c < channels; c++) {\n let sum = 0;\n for (let k = -radius; k <= radius; k++) {\n const y = Math.max(0, Math.min(k, height - 1));\n sum += tmp[(y * width + x) * channels + c];\n }\n dst[x * channels + c] = (sum / kernelSize + 0.5) | 0;\n\n for (let y = 1; y < height; y++) {\n const addY = Math.min(y + radius, height - 1);\n const removeY = Math.max(y - radius - 1, 0);\n sum += tmp[(addY * width + x) * channels + c] - tmp[(removeY * width + x) * channels + c];\n dst[(y * width + x) * channels + c] = (sum / kernelSize + 0.5) | 0;\n }\n }\n }\n\n return { data: dst, width, height, channels };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n radius: {\n type: \"integer\",\n title: \"Radius\",\n description: \"Blur radius (1-10)\",\n minimum: 1,\n maximum: 10,\n default: 1,\n },\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Blurred image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageBlurTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageBlurTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageBlurTask<\n Input extends ImageBlurTaskInput = ImageBlurTaskInput,\n Output extends ImageBlurTaskOutput = ImageBlurTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageBlurTask\";\n static override readonly category = \"Image\";\n public static override title = \"Blur Image\";\n public static override description = \"Applies a box blur to an image\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await applyBlur(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await applyBlur(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageBlur: CreateWorkflow<ImageBlurTaskInput, ImageBlurTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageBlur = CreateWorkflow(ImageBlurTask);\n",
|
|
73
73
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ColorObject, ImageBinary } from \"@workglow/util/media\";\nimport type { JsonSchema } from \"@workglow/util/schema\";\nimport { FromSchema, FromSchemaDefaultOptions, FromSchemaOptions } from \"@workglow/util/schema\";\n\n// Type-only value for use in deserialize patterns\nconst ImageBinaryType = null as any as ImageBinary;\n\nexport const ImageBinarySchemaOptions = {\n ...FromSchemaDefaultOptions,\n deserialize: [\n {\n pattern: { type: \"object\", format: \"image:ImageBinary\" },\n output: ImageBinaryType,\n },\n ],\n} as const satisfies FromSchemaOptions;\n\nexport type ImageBinarySchemaOptions = typeof ImageBinarySchemaOptions;\n\nexport type ImageFromSchema<SCHEMA extends JsonSchema> = FromSchema<\n SCHEMA,\n ImageBinarySchemaOptions\n>;\n\nexport const ImageBinarySchema = (annotations: Record<string, unknown> = {}) =>\n ({\n type: \"object\",\n properties: {\n data: {\n type: \"array\",\n items: { type: \"number\", format: \"Uint8Clamped\" },\n format: \"Uint8ClampedArray\",\n title: \"Data\",\n description: \"Pixel data of the image\",\n },\n width: {\n type: \"integer\",\n minimum: 1,\n title: \"Width\",\n description: \"Width in pixels\",\n },\n height: {\n type: \"integer\",\n minimum: 1,\n title: \"Height\",\n description: \"Height in pixels\",\n },\n channels: {\n type: \"integer\",\n enum: [1, 3, 4],\n title: \"Channels\",\n description: \"1 (gray), 3 (RGB), or 4 (RGBA)\",\n },\n },\n additionalProperties: false,\n required: [\"data\", \"width\", \"height\", \"channels\"],\n format: \"image:ImageBinary\",\n title: \"Image\",\n description: \"Raw pixel image data\",\n ...annotations,\n }) as const;\n\n/** Accept {@link ImageBinary} or a `data:image/...;base64,...` URI; output matches the input form. */\nexport const ImageBinaryOrDataUriSchema = (annotations: Record<string, unknown> = {}) =>\n ({\n oneOf: [\n ImageBinarySchema(annotations),\n {\n type: \"string\",\n format: \"image:data-uri\",\n title: (annotations.title as string | undefined) ?? \"Image\",\n description:\n (annotations.description as string | undefined) ??\n \"Image as ImageBinary or data URI (data:image/png;base64,...)\",\n },\n ],\n }) as const;\n\nexport const ColorSchema = (annotations: Record<string, unknown> = {}) =>\n ({\n type: \"object\",\n properties: {\n r: { type: \"integer\", minimum: 0, maximum: 255, title: \"Red\" },\n g: { type: \"integer\", minimum: 0, maximum: 255, title: \"Green\" },\n b: { type: \"integer\", minimum: 0, maximum: 255, title: \"Blue\" },\n a: { type: \"integer\", minimum: 0, maximum: 255, title: \"Alpha\", default: 255 },\n },\n required: [\"r\", \"g\", \"b\"],\n format: \"color\",\n additionalProperties: false,\n ...annotations,\n }) as const;\n\nexport const HexColorSchema = (annotations: Record<string, unknown> = {}) =>\n ({\n type: \"string\",\n format: \"color\",\n pattern: \"^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$\",\n title: \"Color (hex)\",\n description: \"Color as a `#RRGGBB[AA]` or `#RGB[A]` hex string\",\n ...annotations,\n }) as const;\n\n/** Accept a {@link ColorObject} or a `#RRGGBB[AA]`/`#RGB[A]` hex string. */\nexport const ColorValueSchema = (annotations: Record<string, unknown> = {}) =>\n ({\n oneOf: [\n ColorSchema(),\n HexColorSchema({\n title: (annotations.title as string | undefined) ?? \"Color\",\n description:\n (annotations.description as string | undefined) ??\n \"Color as {r,g,b,a} object or `#RRGGBB[AA]` / `#RGB[A]` hex string\",\n }),\n ],\n ...annotations,\n }) as const;\n\n// Type-only sentinel for FromSchema deserialize patterns, mirroring ImageBinaryType.\nconst ColorObjectType = null as any as ColorObject;\n\nexport const ColorFromSchemaOptions = {\n ...FromSchemaDefaultOptions,\n deserialize: [\n {\n pattern: { type: \"object\", format: \"color\" },\n output: ColorObjectType,\n },\n ],\n} as const satisfies FromSchemaOptions;\n\nexport type ColorFromSchemaOptions = typeof ColorFromSchemaOptions;\n\nexport type ColorFromSchema<SCHEMA extends JsonSchema> = FromSchema<SCHEMA, ColorFromSchemaOptions>;\n",
|
|
74
74
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ImageBinary } from \"@workglow/util/media\";\nimport { Image, getImageRasterCodec } from \"@workglow/util/media\";\n\n/**\n * Decode the input to pixels via the unified {@link Image} class, run `run`,\n * then return output in the same wire form as the input:\n *\n * - data URI string in → data URI string out (re-encoded with input MIME),\n * - `ImageBinary` in → `ImageBinary` out.\n *\n * The legacy wire format is preserved so existing task graphs and caches\n * keep working; `Image` is used internally to funnel decode/encode through\n * the single raster-codec registry.\n */\nexport async function produceImageOutput(\n inputImage: Image | ImageBinary | string,\n run: (image: ImageBinary) => ImageBinary | Promise<ImageBinary>\n): Promise<ImageBinary | string> {\n const image = Image.is(inputImage) ? inputImage : Image.from(inputImage);\n const pixels = await image.getPixels();\n const out = await run(pixels);\n if (image.kind === \"dataUri\") {\n const mime = image.mimeType ?? \"image/png\";\n return getImageRasterCodec().encodeDataUri(out, mime);\n }\n return out;\n}\n",
|
|
75
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
76
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
77
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
78
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
79
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
80
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
81
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
82
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
83
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
75
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { resolveColor } from \"@workglow/util/media\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ColorValueSchema, ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function applyBorder(input: ImageBorderTaskInput): Promise<ImageBorderTaskOutput> {\n const { borderWidth: bw = 1 } = input;\n const color = resolveColor(input.color);\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width: srcW, height: srcH, channels: srcCh } = img;\n const outCh = 4;\n const dstW = srcW + bw * 2;\n const dstH = srcH + bw * 2;\n const dst = new Uint8ClampedArray(dstW * dstH * outCh);\n\n const r = color.r;\n const g = color.g;\n const b = color.b;\n const a = color.a;\n\n // Fill entire image with border color\n for (let i = 0; i < dst.length; i += outCh) {\n dst[i] = r;\n dst[i + 1] = g;\n dst[i + 2] = b;\n dst[i + 3] = a;\n }\n\n // Copy source image into center\n for (let y = 0; y < srcH; y++) {\n for (let x = 0; x < srcW; x++) {\n const srcIdx = (y * srcW + x) * srcCh;\n const dstIdx = ((y + bw) * dstW + (x + bw)) * outCh;\n dst[dstIdx] = src[srcIdx];\n dst[dstIdx + 1] = srcCh >= 3 ? src[srcIdx + 1] : src[srcIdx];\n dst[dstIdx + 2] = srcCh >= 3 ? src[srcIdx + 2] : src[srcIdx];\n dst[dstIdx + 3] = srcCh === 4 ? src[srcIdx + 3] : 255;\n }\n }\n\n return { data: dst, width: dstW, height: dstH, channels: outCh };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n borderWidth: {\n type: \"integer\",\n title: \"Border Width\",\n description: \"Border width in pixels\",\n minimum: 1,\n default: 1,\n },\n color: ColorValueSchema({ title: \"Color\", description: \"Border color\" }),\n },\n required: [\"image\", \"color\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Image with border\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageBorderTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageBorderTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageBorderTask<\n Input extends ImageBorderTaskInput = ImageBorderTaskInput,\n Output extends ImageBorderTaskOutput = ImageBorderTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageBorderTask\";\n static override readonly category = \"Image\";\n public static override title = \"Add Border\";\n public static override description = \"Adds a colored border around an image\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await applyBorder(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await applyBorder(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageBorder: CreateWorkflow<ImageBorderTaskInput, ImageBorderTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageBorder = CreateWorkflow(ImageBorderTask);\n",
|
|
76
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function applyBrightness(\n input: ImageBrightnessTaskInput\n): Promise<ImageBrightnessTaskOutput> {\n const amount = input.amount ?? 0;\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels } = img;\n const dst = new Uint8ClampedArray(src.length);\n\n if (channels === 4) {\n for (let i = 0; i < src.length; i += 4) {\n dst[i] = src[i]! + amount;\n dst[i + 1] = src[i + 1]! + amount;\n dst[i + 2] = src[i + 2]! + amount;\n dst[i + 3] = src[i + 3]!; // preserve alpha\n }\n } else {\n for (let i = 0; i < src.length; i++) {\n dst[i] = src[i]! + amount;\n }\n }\n\n return { data: dst, width, height, channels };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n amount: {\n type: \"number\",\n title: \"Amount\",\n description: \"Brightness adjustment (-255 to 255)\",\n minimum: -255,\n maximum: 255,\n default: 0,\n },\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Brightness-adjusted image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageBrightnessTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageBrightnessTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageBrightnessTask<\n Input extends ImageBrightnessTaskInput = ImageBrightnessTaskInput,\n Output extends ImageBrightnessTaskOutput = ImageBrightnessTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageBrightnessTask\";\n static override readonly category = \"Image\";\n public static override title = \"Adjust Brightness\";\n public static override description = \"Adjusts the brightness of an image\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await applyBrightness(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await applyBrightness(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageBrightness: CreateWorkflow<\n ImageBrightnessTaskInput,\n ImageBrightnessTaskOutput,\n TaskConfig\n >;\n }\n}\n\nWorkflow.prototype.imageBrightness = CreateWorkflow(ImageBrightnessTask);\n",
|
|
77
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function applyContrast(input: ImageContrastTaskInput): Promise<ImageContrastTaskOutput> {\n const amount = input.amount ?? 0;\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels } = img;\n\n // Precompute 256-entry lookup table\n const factor = (259 * (amount + 255)) / (255 * (259 - amount));\n const lut = new Uint8ClampedArray(256);\n for (let i = 0; i < 256; i++) {\n lut[i] = factor * (i - 128) + 128;\n }\n\n const dst = new Uint8ClampedArray(src.length);\n\n if (channels === 4) {\n for (let i = 0; i < src.length; i += 4) {\n dst[i] = lut[src[i]!]!;\n dst[i + 1] = lut[src[i + 1]!]!;\n dst[i + 2] = lut[src[i + 2]!]!;\n dst[i + 3] = src[i + 3]!; // preserve alpha\n }\n } else {\n for (let i = 0; i < src.length; i++) {\n dst[i] = lut[src[i]!]!;\n }\n }\n\n return { data: dst, width, height, channels };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n amount: {\n type: \"number\",\n title: \"Amount\",\n description: \"Contrast adjustment (-100 to 100)\",\n minimum: -100,\n maximum: 100,\n default: 0,\n },\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Contrast-adjusted image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageContrastTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageContrastTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageContrastTask<\n Input extends ImageContrastTaskInput = ImageContrastTaskInput,\n Output extends ImageContrastTaskOutput = ImageContrastTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageContrastTask\";\n static override readonly category = \"Image\";\n public static override title = \"Adjust Contrast\";\n public static override description = \"Adjusts the contrast of an image\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await applyContrast(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await applyContrast(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageContrast: CreateWorkflow<ImageContrastTaskInput, ImageContrastTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageContrast = CreateWorkflow(ImageContrastTask);\n",
|
|
78
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function cropImage(input: ImageCropTaskInput): Promise<ImageCropTaskOutput> {\n const { x: rawX, y: rawY, width: rawW, height: rawH } = input;\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width: srcW, height: srcH, channels } = img;\n\n if (srcW < 1 || srcH < 1) {\n throw new RangeError(\"Cannot crop an empty image\");\n }\n\n if (rawX < 0 || rawX >= srcW || rawY < 0 || rawY >= srcH) {\n throw new RangeError(\"Crop origin is outside the source image bounds\");\n }\n\n const x = rawX;\n const y = rawY;\n const w = Math.min(rawW, srcW - x);\n const h = Math.min(rawH, srcH - y);\n\n const dst = new Uint8ClampedArray(w * h * channels);\n const rowBytes = w * channels;\n\n for (let row = 0; row < h; row++) {\n const srcOffset = ((y + row) * srcW + x) * channels;\n const dstOffset = row * rowBytes;\n dst.set(src.subarray(srcOffset, srcOffset + rowBytes), dstOffset);\n }\n\n return { data: dst, width: w, height: h, channels };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n x: { type: \"integer\", title: \"X\", description: \"Left offset\", minimum: 0 },\n y: { type: \"integer\", title: \"Y\", description: \"Top offset\", minimum: 0 },\n width: { type: \"integer\", title: \"Width\", description: \"Crop width\", minimum: 1 },\n height: { type: \"integer\", title: \"Height\", description: \"Crop height\", minimum: 1 },\n },\n required: [\"image\", \"x\", \"y\", \"width\", \"height\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Cropped image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageCropTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageCropTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageCropTask<\n Input extends ImageCropTaskInput = ImageCropTaskInput,\n Output extends ImageCropTaskOutput = ImageCropTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageCropTask\";\n static override readonly category = \"Image\";\n public static override title = \"Crop Image\";\n public static override description = \"Crops an image to a rectangular region\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await cropImage(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await cropImage(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageCrop: CreateWorkflow<ImageCropTaskInput, ImageCropTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageCrop = CreateWorkflow(ImageCropTask);\n",
|
|
79
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function flipImage(input: ImageFlipTaskInput): Promise<ImageFlipTaskOutput> {\n const { direction } = input;\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels } = img;\n const dst = new Uint8ClampedArray(src.length);\n const rowBytes = width * channels;\n\n if (direction === \"vertical\") {\n for (let y = 0; y < height; y++) {\n const srcOffset = y * rowBytes;\n const dstOffset = (height - 1 - y) * rowBytes;\n dst.set(src.subarray(srcOffset, srcOffset + rowBytes), dstOffset);\n }\n } else {\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcIdx = (y * width + x) * channels;\n const dstIdx = (y * width + (width - 1 - x)) * channels;\n for (let c = 0; c < channels; c++) {\n dst[dstIdx + c] = src[srcIdx + c];\n }\n }\n }\n }\n\n return { data: dst, width, height, channels };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n direction: {\n type: \"string\",\n enum: [\"horizontal\", \"vertical\"],\n title: \"Direction\",\n description: \"Flip direction\",\n },\n },\n required: [\"image\", \"direction\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Flipped image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageFlipTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageFlipTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageFlipTask<\n Input extends ImageFlipTaskInput = ImageFlipTaskInput,\n Output extends ImageFlipTaskOutput = ImageFlipTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageFlipTask\";\n static override readonly category = \"Image\";\n public static override title = \"Flip Image\";\n public static override description = \"Flips an image horizontally or vertically\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await flipImage(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await flipImage(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageFlip: CreateWorkflow<ImageFlipTaskInput, ImageFlipTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageFlip = CreateWorkflow(ImageFlipTask);\n",
|
|
80
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function applyGrayscale(input: ImageGrayscaleTaskInput): Promise<ImageGrayscaleTaskOutput> {\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels } = img;\n\n if (channels === 1) {\n return { data: new Uint8ClampedArray(src), width, height, channels: 1 };\n }\n\n const pixelCount = width * height;\n const dst = new Uint8ClampedArray(pixelCount);\n\n for (let i = 0; i < pixelCount; i++) {\n const idx = i * channels;\n dst[i] = (src[idx] * 77 + src[idx + 1] * 150 + src[idx + 2] * 29) >> 8;\n }\n\n return { data: dst, width, height, channels: 1 };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Grayscale image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageGrayscaleTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageGrayscaleTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageGrayscaleTask<\n Input extends ImageGrayscaleTaskInput = ImageGrayscaleTaskInput,\n Output extends ImageGrayscaleTaskOutput = ImageGrayscaleTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageGrayscaleTask\";\n static override readonly category = \"Image\";\n public static override title = \"Grayscale\";\n public static override description = \"Converts an image to grayscale using luminance\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await applyGrayscale(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await applyGrayscale(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageGrayscale: CreateWorkflow<ImageGrayscaleTaskInput, ImageGrayscaleTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageGrayscale = CreateWorkflow(ImageGrayscaleTask);\n",
|
|
81
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function invertImage(input: ImageInvertTaskInput): Promise<ImageInvertTaskOutput> {\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels } = img;\n const dst = new Uint8ClampedArray(src.length);\n\n if (channels === 4) {\n for (let i = 0; i < src.length; i += 4) {\n dst[i] = 255 - src[i]!;\n dst[i + 1] = 255 - src[i + 1]!;\n dst[i + 2] = 255 - src[i + 2]!;\n dst[i + 3] = src[i + 3]!; // preserve alpha\n }\n } else {\n for (let i = 0; i < src.length; i++) {\n dst[i] = 255 - src[i]!;\n }\n }\n\n return { data: dst, width, height, channels };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Inverted image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageInvertTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageInvertTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageInvertTask<\n Input extends ImageInvertTaskInput = ImageInvertTaskInput,\n Output extends ImageInvertTaskOutput = ImageInvertTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageInvertTask\";\n static override readonly category = \"Image\";\n public static override title = \"Invert Colors\";\n public static override description = \"Inverts the colors of an image\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await invertImage(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await invertImage(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageInvert: CreateWorkflow<ImageInvertTaskInput, ImageInvertTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageInvert = CreateWorkflow(ImageInvertTask);\n",
|
|
82
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function pixelateImage(input: ImagePixelateTaskInput): Promise<ImagePixelateTaskOutput> {\n const { blockSize = 8 } = input;\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels } = img;\n const dst = new Uint8ClampedArray(src.length);\n\n for (let by = 0; by < height; by += blockSize) {\n const blockH = Math.min(blockSize, height - by);\n for (let bx = 0; bx < width; bx += blockSize) {\n const blockW = Math.min(blockSize, width - bx);\n const blockArea = blockW * blockH;\n\n // Compute average color of the block\n const sums = new Array<number>(channels).fill(0);\n for (let y = by; y < by + blockH; y++) {\n for (let x = bx; x < bx + blockW; x++) {\n const idx = (y * width + x) * channels;\n for (let c = 0; c < channels; c++) {\n sums[c] += src[idx + c];\n }\n }\n }\n\n const avg = sums.map((s) => (s / blockArea + 0.5) | 0);\n\n // Fill the block with the average color\n for (let y = by; y < by + blockH; y++) {\n for (let x = bx; x < bx + blockW; x++) {\n const idx = (y * width + x) * channels;\n for (let c = 0; c < channels; c++) {\n dst[idx + c] = avg[c]!;\n }\n }\n }\n }\n }\n\n return { data: dst, width, height, channels };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n blockSize: {\n type: \"integer\",\n title: \"Block Size\",\n description: \"Size of each pixelation block\",\n minimum: 2,\n default: 8,\n },\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Pixelated image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImagePixelateTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImagePixelateTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImagePixelateTask<\n Input extends ImagePixelateTaskInput = ImagePixelateTaskInput,\n Output extends ImagePixelateTaskOutput = ImagePixelateTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImagePixelateTask\";\n static override readonly category = \"Image\";\n public static override title = \"Pixelate Image\";\n public static override description = \"Pixelates an image by averaging blocks of pixels\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await pixelateImage(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await pixelateImage(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imagePixelate: CreateWorkflow<ImagePixelateTaskInput, ImagePixelateTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imagePixelate = CreateWorkflow(ImagePixelateTask);\n",
|
|
83
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function posterizeImage(input: ImagePosterizeTaskInput): Promise<ImagePosterizeTaskOutput> {\n const levels = input.levels ?? 4;\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels } = img;\n\n // Precompute 256-entry lookup table\n const step = 255 / (levels - 1);\n const lut = new Uint8ClampedArray(256);\n for (let i = 0; i < 256; i++) {\n lut[i] = Math.round(Math.round(i / step) * step);\n }\n\n const dst = new Uint8ClampedArray(src.length);\n\n if (channels === 4) {\n for (let i = 0; i < src.length; i += 4) {\n dst[i] = lut[src[i]!]!;\n dst[i + 1] = lut[src[i + 1]!]!;\n dst[i + 2] = lut[src[i + 2]!]!;\n dst[i + 3] = src[i + 3]!; // preserve alpha\n }\n } else {\n for (let i = 0; i < src.length; i++) {\n dst[i] = lut[src[i]!]!;\n }\n }\n\n return { data: dst, width, height, channels };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n levels: {\n type: \"integer\",\n title: \"Levels\",\n description: \"Number of color levels per channel (2-32)\",\n minimum: 2,\n maximum: 32,\n default: 4,\n },\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Posterized image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImagePosterizeTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImagePosterizeTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImagePosterizeTask<\n Input extends ImagePosterizeTaskInput = ImagePosterizeTaskInput,\n Output extends ImagePosterizeTaskOutput = ImagePosterizeTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImagePosterizeTask\";\n static override readonly category = \"Image\";\n public static override title = \"Posterize\";\n public static override description = \"Reduces the number of color levels in an image\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await posterizeImage(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await posterizeImage(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imagePosterize: CreateWorkflow<ImagePosterizeTaskInput, ImagePosterizeTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imagePosterize = CreateWorkflow(ImagePosterizeTask);\n",
|
|
84
84
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n *\n * Re-exported from {@link @workglow/util/media} — the registry moved so that\n * the `Image` class can dispatch to the codec without creating a reverse\n * dependency. Implementations (`imageRasterCodecBrowser.ts`,\n * `imageRasterCodecNode.ts`) still live in this package.\n */\n\nexport type { ImageRasterCodec } from \"@workglow/util/media\";\nexport { getImageRasterCodec, registerImageRasterCodec } from \"@workglow/util/media\";\n",
|
|
85
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
86
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
87
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
88
|
-
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n Task,\n Workflow,\n type
|
|
89
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
90
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
91
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
92
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
93
|
-
"/**\n * @copyright\n * Copyright 2025 Steven Roussey\n * All Rights Reserved\n */\n\nimport type { IExecuteContext, StreamEvent, StreamFinish } from \"@workglow/task-graph\";\nimport { CreateWorkflow, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport type { DataPortSchema } from \"@workglow/util/schema\";\n\nexport type InputTaskInput = Record<string, unknown>;\nexport type InputTaskOutput = Record<string, unknown>;\nexport type InputTaskConfig = TaskConfig;\n\nexport class InputTask extends Task<InputTaskInput, InputTaskOutput, InputTaskConfig> {\n static override type = \"InputTask\";\n static override category = \"Flow Control\";\n static override title = \"Input\";\n static override description = \"Starts the workflow\";\n static override hasDynamicSchemas = true;\n static override cacheable = false;\n static override isPassthrough = true;\n\n public static override inputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const as DataPortSchema;\n }\n\n public static override outputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const as DataPortSchema;\n }\n\n public override inputSchema(): DataPortSchema {\n return this.config?.inputSchema ?? (this.constructor as typeof InputTask).inputSchema();\n }\n\n public override outputSchema(): DataPortSchema {\n return this.config?.outputSchema ?? (this.constructor as typeof InputTask).outputSchema();\n }\n\n public override async
|
|
94
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskEntitlements } from \"@workglow/task-graph\";\nimport {\n CreateWorkflow,\n Entitlements,\n Task,\n TaskConfig,\n TaskConfigSchema,\n TaskInvalidInputError,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { Interpreter } from \"../util/interpreter\";\n\nconst isValidIdentifier = (key: string) => /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(key);\n\nconst configSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n javascript_code: {\n type: \"string\",\n title: \"Code\",\n minLength: 1,\n description: \"JavaScript code to execute\",\n format: \"code:javascript\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n javascript_code: {\n type: \"string\",\n title: \"Code\",\n minLength: 1,\n description: \"JavaScript code to execute\",\n format: \"code:javascript\",\n },\n },\n required: [\"javascript_code\"],\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n output: {\n title: \"Output\",\n description: \"The output of the JavaScript code\",\n },\n },\n required: [\"output\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type JavaScriptTaskInput = FromSchema<typeof inputSchema>;\nexport type JavaScriptTaskOutput = FromSchema<typeof outputSchema>;\nexport type JavaScriptTaskConfig = TaskConfig & {\n javascript_code?: string;\n};\n\nexport class JavaScriptTask extends Task<\n JavaScriptTaskInput,\n JavaScriptTaskOutput,\n JavaScriptTaskConfig\n> {\n public static override type = \"JavaScriptTask\";\n public static override category = \"Utility\";\n public static override title = \"JavaScript Interpreter\";\n public static override description =\n \"Executes JavaScript code in a sandboxed interpreter environment\";\n public static override customizable = true;\n public static override hasDynamicSchemas = true;\n\n public static override entitlements(): TaskEntitlements {\n return {\n entitlements: [\n {\n id: Entitlements.CODE_EXECUTION_JS,\n reason: \"Executes user-provided JavaScript code in a sandboxed interpreter\",\n },\n ],\n };\n }\n\n public static override configSchema() {\n return configSchema;\n }\n\n public static override inputSchema() {\n return inputSchema;\n }\n\n public static override outputSchema() {\n return outputSchema;\n }\n\n public override inputSchema() {\n if (this.config?.javascript_code) {\n if (this.config.inputSchema) {\n return this.config.inputSchema;\n }\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const satisfies DataPortSchema;\n }\n return inputSchema;\n }\n\n override async
|
|
85
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function resizeImage(input: ImageResizeTaskInput): Promise<ImageResizeTaskOutput> {\n const { width: dstW, height: dstH } = input;\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width: srcW, height: srcH, channels } = img;\n const dst = new Uint8ClampedArray(dstW * dstH * channels);\n\n for (let dy = 0; dy < dstH; dy++) {\n const srcY = Math.min(Math.floor((dy * srcH) / dstH), srcH - 1);\n for (let dx = 0; dx < dstW; dx++) {\n const srcX = Math.min(Math.floor((dx * srcW) / dstW), srcW - 1);\n const srcIdx = (srcY * srcW + srcX) * channels;\n const dstIdx = (dy * dstW + dx) * channels;\n for (let c = 0; c < channels; c++) {\n dst[dstIdx + c] = src[srcIdx + c];\n }\n }\n }\n\n return { data: dst, width: dstW, height: dstH, channels };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n width: { type: \"integer\", title: \"Width\", description: \"Target width in pixels\", minimum: 1 },\n height: {\n type: \"integer\",\n title: \"Height\",\n description: \"Target height in pixels\",\n minimum: 1,\n },\n },\n required: [\"image\", \"width\", \"height\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Resized image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageResizeTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageResizeTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageResizeTask<\n Input extends ImageResizeTaskInput = ImageResizeTaskInput,\n Output extends ImageResizeTaskOutput = ImageResizeTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageResizeTask\";\n static override readonly category = \"Image\";\n public static override title = \"Resize Image\";\n public static override description = \"Resizes an image using nearest-neighbor sampling\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await resizeImage(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await resizeImage(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageResize: CreateWorkflow<ImageResizeTaskInput, ImageResizeTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageResize = CreateWorkflow(ImageResizeTask);\n",
|
|
86
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function rotateImage(input: ImageRotateTaskInput): Promise<ImageRotateTaskOutput> {\n const { angle } = input;\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width: srcW, height: srcH, channels } = img;\n\n const swap = angle === 90 || angle === 270;\n const dstW = swap ? srcH : srcW;\n const dstH = swap ? srcW : srcH;\n const dst = new Uint8ClampedArray(dstW * dstH * channels);\n\n for (let sy = 0; sy < srcH; sy++) {\n for (let sx = 0; sx < srcW; sx++) {\n let dx: number, dy: number;\n if (angle === 90) {\n dx = srcH - 1 - sy;\n dy = sx;\n } else if (angle === 180) {\n dx = srcW - 1 - sx;\n dy = srcH - 1 - sy;\n } else {\n dx = sy;\n dy = srcW - 1 - sx;\n }\n const srcIdx = (sy * srcW + sx) * channels;\n const dstIdx = (dy * dstW + dx) * channels;\n for (let c = 0; c < channels; c++) {\n dst[dstIdx + c] = src[srcIdx + c];\n }\n }\n }\n\n return { data: dst, width: dstW, height: dstH, channels };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n angle: {\n type: \"integer\",\n enum: [90, 180, 270],\n title: \"Angle\",\n description: \"Rotation angle in degrees (clockwise)\",\n },\n },\n required: [\"image\", \"angle\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Rotated image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageRotateTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageRotateTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageRotateTask<\n Input extends ImageRotateTaskInput = ImageRotateTaskInput,\n Output extends ImageRotateTaskOutput = ImageRotateTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageRotateTask\";\n static override readonly category = \"Image\";\n public static override title = \"Rotate Image\";\n public static override description = \"Rotates an image by 90, 180, or 270 degrees clockwise\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await rotateImage(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await rotateImage(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageRotate: CreateWorkflow<ImageRotateTaskInput, ImageRotateTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageRotate = CreateWorkflow(ImageRotateTask);\n",
|
|
87
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function applySepia(input: ImageSepiaTaskInput): Promise<ImageSepiaTaskOutput> {\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels } = img;\n const dst = new Uint8ClampedArray(src.length);\n\n // Integer-approximated sepia coefficients (multiplied by 1024, shift by 10)\n const pixelCount = width * height;\n\n for (let i = 0; i < pixelCount; i++) {\n const idx = i * channels;\n const r = channels === 1 ? src[idx] : src[idx];\n const g = channels === 1 ? src[idx] : src[idx + 1];\n const b = channels === 1 ? src[idx] : src[idx + 2];\n\n const outR = (r * 402 + g * 787 + b * 194) >> 10;\n const outG = (r * 357 + g * 702 + b * 172) >> 10;\n const outB = (r * 279 + g * 547 + b * 134) >> 10;\n\n dst[idx] = outR > 255 ? 255 : outR;\n if (channels >= 3) {\n dst[idx + 1] = outG > 255 ? 255 : outG;\n dst[idx + 2] = outB > 255 ? 255 : outB;\n }\n if (channels === 4) {\n dst[idx + 3] = src[idx + 3]!; // preserve alpha\n }\n }\n\n return { data: dst, width, height, channels };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Sepia-toned image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageSepiaTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageSepiaTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageSepiaTask<\n Input extends ImageSepiaTaskInput = ImageSepiaTaskInput,\n Output extends ImageSepiaTaskOutput = ImageSepiaTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageSepiaTask\";\n static override readonly category = \"Image\";\n public static override title = \"Sepia Tone\";\n public static override description = \"Applies a sepia tone filter to an image\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await applySepia(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await applySepia(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageSepia: CreateWorkflow<ImageSepiaTaskInput, ImageSepiaTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageSepia = CreateWorkflow(ImageSepiaTask);\n",
|
|
88
|
+
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n Task,\n Workflow,\n type IExecuteContext,\n type IExecutePreviewContext,\n type TaskConfig,\n} from \"@workglow/task-graph\";\nimport type { RgbaImageBinary } from \"@workglow/util/media\";\nimport type { DataPortSchema } from \"@workglow/util/schema\";\nimport { ColorValueSchema, ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { resolveColor } from \"@workglow/util/media\";\nimport { produceImageOutput } from \"./imageTaskIo\";\nimport {\n IMAGE_TEXT_ANCHOR_POSITIONS,\n renderImageTextToRgba,\n type ImageTextAnchorPosition,\n} from \"./imageTextRender\";\n\nfunction toRgbaImage(image: {\n readonly data: Uint8ClampedArray;\n readonly width: number;\n readonly height: number;\n readonly channels: number;\n}): RgbaImageBinary {\n const { data, width, height, channels } = image;\n const rgba = new Uint8ClampedArray(width * height * 4);\n if (channels === 4) {\n rgba.set(data);\n return { data: rgba, width, height, channels: 4 };\n }\n if (channels === 3) {\n for (let i = 0; i < width * height; i++) {\n rgba[i * 4] = data[i * 3] ?? 0;\n rgba[i * 4 + 1] = data[i * 3 + 1] ?? 0;\n rgba[i * 4 + 2] = data[i * 3 + 2] ?? 0;\n rgba[i * 4 + 3] = 255;\n }\n return { data: rgba, width, height, channels: 4 };\n }\n if (channels === 1) {\n for (let i = 0; i < width * height; i++) {\n const gray = data[i] ?? 0;\n rgba[i * 4] = gray;\n rgba[i * 4 + 1] = gray;\n rgba[i * 4 + 2] = gray;\n rgba[i * 4 + 3] = 255;\n }\n return { data: rgba, width, height, channels: 4 };\n }\n throw new Error(`ImageTextTask: unsupported background channel count: ${channels}`);\n}\n\nfunction compositeTextOverBackground(\n background: {\n readonly data: Uint8ClampedArray;\n readonly width: number;\n readonly height: number;\n readonly channels: number;\n },\n overlay: {\n readonly data: Uint8ClampedArray;\n readonly width: number;\n readonly height: number;\n readonly channels: number;\n }\n): RgbaImageBinary {\n if (background.width !== overlay.width || background.height !== overlay.height) {\n throw new Error(\"ImageTextTask: background and text overlay dimensions must match\");\n }\n if (overlay.channels !== 4) {\n throw new Error(`ImageTextTask: expected RGBA text overlay, got ${overlay.channels} channels`);\n }\n const bg = toRgbaImage(background);\n const out = new Uint8ClampedArray(bg.data);\n for (let i = 0; i < out.length; i += 4) {\n const srcA = (overlay.data[i + 3] ?? 0) / 255;\n if (srcA <= 0) continue;\n const dstA = (out[i + 3] ?? 0) / 255;\n const outA = srcA + dstA * (1 - srcA);\n if (outA <= 0) {\n out[i] = 0;\n out[i + 1] = 0;\n out[i + 2] = 0;\n out[i + 3] = 0;\n continue;\n }\n\n const srcR = (overlay.data[i] ?? 0) / 255;\n const srcG = (overlay.data[i + 1] ?? 0) / 255;\n const srcB = (overlay.data[i + 2] ?? 0) / 255;\n const dstR = (out[i] ?? 0) / 255;\n const dstG = (out[i + 1] ?? 0) / 255;\n const dstB = (out[i + 2] ?? 0) / 255;\n\n out[i] = Math.round(((srcR * srcA + dstR * dstA * (1 - srcA)) / outA) * 255);\n out[i + 1] = Math.round(((srcG * srcA + dstG * dstA * (1 - srcA)) / outA) * 255);\n out[i + 2] = Math.round(((srcB * srcA + dstB * dstA * (1 - srcA)) / outA) * 255);\n out[i + 3] = Math.round(outA * 255);\n }\n return { data: out, width: bg.width, height: bg.height, channels: 4 };\n}\n\nconst IMAGE_TEXT_POSITION_LABELS: Record<ImageTextAnchorPosition, string> = {\n \"top-left\": \"Top left\",\n \"top-center\": \"Top center\",\n \"top-right\": \"Top right\",\n \"middle-left\": \"Middle left\",\n \"middle-center\": \"Middle center\",\n \"middle-right\": \"Middle right\",\n \"bottom-left\": \"Bottom left\",\n \"bottom-center\": \"Bottom center\",\n \"bottom-right\": \"Bottom right\",\n};\n\nconst backgroundImageProperty = ImageBinaryOrDataUriSchema({\n title: \"Image\",\n description: \"Background image to render the text onto\",\n});\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Text to render (use \\\\n for line breaks)\",\n minLength: 1,\n },\n font: {\n type: \"string\",\n title: \"Font\",\n description: \"CSS font family name (e.g. sans-serif, Arial)\",\n default: \"sans-serif\",\n },\n fontSize: {\n type: \"integer\",\n title: \"Font size\",\n description: \"Font size in pixels\",\n minimum: 1,\n default: 24,\n },\n bold: { type: \"boolean\", title: \"Bold\", default: false },\n italic: { type: \"boolean\", title: \"Italic\", default: false },\n color: ColorValueSchema({ title: \"Color\", description: \"Text color\" }),\n position: {\n type: \"string\",\n title: \"Position\",\n description: \"Anchor position of the text block within the image\",\n enum: [...IMAGE_TEXT_ANCHOR_POSITIONS],\n default: \"middle-center\",\n \"x-ui-enum-labels\": IMAGE_TEXT_POSITION_LABELS,\n },\n image: backgroundImageProperty,\n width: {\n type: \"integer\",\n title: \"Width\",\n description: \"Output width in pixels\",\n minimum: 1,\n },\n height: {\n type: \"integer\",\n title: \"Height\",\n description: \"Output height in pixels\",\n minimum: 1,\n },\n },\n required: [\"text\", \"color\"],\n additionalProperties: false,\n if: {\n not: {\n required: [\"image\"],\n },\n },\n then: {\n required: [\"width\", \"height\"],\n },\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Raster image with text\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageTextTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageTextTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nfunction hasUsableBackgroundImage(value: unknown): value is ImageTextTaskInput[\"image\"] {\n if (typeof value === \"string\") {\n return value.length > 0;\n }\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const candidate = value as Record<string, unknown>;\n return (\n typeof candidate.width === \"number\" &&\n typeof candidate.height === \"number\" &&\n typeof candidate.channels === \"number\" &&\n candidate.data !== undefined\n );\n}\n\nasync function renderImageText(input: ImageTextTaskInput): Promise<ImageTextTaskOutput> {\n const color = resolveColor(input.color);\n const fontSize = input.fontSize ?? 24;\n const font = input.font ?? \"sans-serif\";\n const bold = input.bold ?? false;\n const italic = input.italic ?? false;\n const position = (input.position ?? \"middle-center\") as ImageTextAnchorPosition;\n\n const backgroundImage = \"image\" in input ? input.image : undefined;\n let image: ImageTextTaskOutput[\"image\"];\n if (hasUsableBackgroundImage(backgroundImage)) {\n image = await produceImageOutput(backgroundImage!, async (background) => {\n const overlay = await renderImageTextToRgba({\n text: input.text,\n font,\n fontSize,\n bold,\n italic,\n color,\n width: background.width,\n height: background.height,\n position,\n });\n return compositeTextOverBackground(background, overlay);\n });\n } else {\n if (\n !(\"width\" in input) ||\n !(\"height\" in input) ||\n typeof input.width !== \"number\" ||\n typeof input.height !== \"number\"\n ) {\n throw new Error(\n \"ImageTextTask: width and height are required when no background image is provided\"\n );\n }\n image = await renderImageTextToRgba({\n text: input.text,\n font,\n fontSize,\n bold,\n italic,\n color,\n width: input.width,\n height: input.height,\n position,\n });\n }\n return { image };\n}\n\nexport class ImageTextTask<\n Input extends ImageTextTaskInput = ImageTextTaskInput,\n Output extends ImageTextTaskOutput = ImageTextTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageTextTask\";\n static override readonly category = \"Image\";\n public static override title = \"Render Text to Image\";\n public static override description =\n \"Renders text onto a transparent RGBA image or overlays it on an optional background image\";\n\n static override inputSchema(): DataPortSchema {\n return inputSchema;\n }\n\n static override outputSchema(): DataPortSchema {\n return outputSchema;\n }\n\n override getDefaultInputsFromStaticInputDefinitions(): Partial<Input> {\n const defaults = super.getDefaultInputsFromStaticInputDefinitions() as Record<string, unknown>;\n delete defaults.image;\n delete defaults.width;\n delete defaults.height;\n return defaults as Partial<Input>;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await renderImageText(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await renderImageText(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageText: CreateWorkflow<ImageTextTaskInput, ImageTextTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageText = CreateWorkflow(ImageTextTask);\n",
|
|
89
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function applyThreshold(input: ImageThresholdTaskInput): Promise<ImageThresholdTaskOutput> {\n const threshold = input.threshold ?? 128;\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels } = img;\n const pixelCount = width * height;\n const dst = new Uint8ClampedArray(pixelCount);\n\n for (let i = 0; i < pixelCount; i++) {\n const idx = i * channels;\n let gray: number;\n if (channels === 1) {\n gray = src[idx]!;\n } else {\n gray = (src[idx]! * 77 + src[idx + 1]! * 150 + src[idx + 2]! * 29) >> 8;\n }\n dst[i] = gray >= threshold ? 255 : 0;\n }\n\n return { data: dst, width, height, channels: 1 };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n threshold: {\n type: \"integer\",\n title: \"Threshold\",\n description: \"Threshold value (0-255)\",\n minimum: 0,\n maximum: 255,\n default: 128,\n },\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Thresholded binary image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageThresholdTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageThresholdTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageThresholdTask<\n Input extends ImageThresholdTaskInput = ImageThresholdTaskInput,\n Output extends ImageThresholdTaskOutput = ImageThresholdTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageThresholdTask\";\n static override readonly category = \"Image\";\n public static override title = \"Threshold\";\n public static override description = \"Converts an image to binary black and white\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await applyThreshold(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await applyThreshold(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageThreshold: CreateWorkflow<ImageThresholdTaskInput, ImageThresholdTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageThreshold = CreateWorkflow(ImageThresholdTask);\n",
|
|
90
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ColorValueSchema, ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { resolveColor } from \"@workglow/util/media\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function applyTint(input: ImageTintTaskInput): Promise<ImageTintTaskOutput> {\n const { r: tr, g: tg, b: tb } = resolveColor(input.color);\n const amount = input.amount ?? 0.5;\n const invAmount = 1 - amount;\n const tintR = tr * amount;\n const tintG = tg * amount;\n const tintB = tb * amount;\n\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels } = img;\n const pixelCount = width * height;\n\n if (channels === 1) {\n const dst = new Uint8ClampedArray(pixelCount * 3);\n for (let i = 0; i < pixelCount; i++) {\n const gray = src[i]!;\n dst[i * 3] = gray * invAmount + tintR;\n dst[i * 3 + 1] = gray * invAmount + tintG;\n dst[i * 3 + 2] = gray * invAmount + tintB;\n }\n return { data: dst, width, height, channels: 3 };\n }\n\n const dst = new Uint8ClampedArray(src.length);\n\n for (let i = 0; i < pixelCount; i++) {\n const idx = i * channels;\n dst[idx] = src[idx]! * invAmount + tintR;\n dst[idx + 1] = src[idx + 1]! * invAmount + tintG;\n dst[idx + 2] = src[idx + 2]! * invAmount + tintB;\n if (channels === 4) {\n dst[idx + 3] = src[idx + 3]!; // preserve alpha\n }\n }\n\n return { data: dst, width, height, channels };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n color: ColorValueSchema({ title: \"Color\", description: \"Tint color\" }),\n amount: {\n type: \"number\",\n title: \"Amount\",\n description: \"Tint strength (0.0 = no tint, 1.0 = full tint color)\",\n minimum: 0,\n maximum: 1,\n default: 0.5,\n },\n },\n required: [\"image\", \"color\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Tinted image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageTintTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageTintTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageTintTask<\n Input extends ImageTintTaskInput = ImageTintTaskInput,\n Output extends ImageTintTaskOutput = ImageTintTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageTintTask\";\n static override readonly category = \"Image\";\n public static override title = \"Tint Image\";\n public static override description = \"Applies a color tint to an image\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await applyTint(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await applyTint(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageTint: CreateWorkflow<ImageTintTaskInput, ImageTintTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageTint = CreateWorkflow(ImageTintTask);\n",
|
|
91
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function applyTransparency(\n input: ImageTransparencyTaskInput\n): Promise<ImageTransparencyTaskOutput> {\n const { opacity } = input;\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels: srcCh } = img;\n const pixelCount = width * height;\n const dst = new Uint8ClampedArray(pixelCount * 4);\n const alphaScale = Math.round(opacity * 255);\n\n for (let i = 0; i < pixelCount; i++) {\n const srcIdx = i * srcCh;\n const dstIdx = i * 4;\n dst[dstIdx] = src[srcIdx];\n dst[dstIdx + 1] = srcCh >= 3 ? src[srcIdx + 1] : src[srcIdx];\n dst[dstIdx + 2] = srcCh >= 3 ? src[srcIdx + 2] : src[srcIdx];\n const srcAlpha = srcCh === 4 ? src[srcIdx + 3] : 255;\n dst[dstIdx + 3] = (srcAlpha * alphaScale + 127) / 255;\n }\n\n return { data: dst, width, height, channels: 4 };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n opacity: {\n type: \"number\",\n title: \"Opacity\",\n description: \"Opacity level (0.0 = fully transparent, 1.0 = fully opaque)\",\n minimum: 0,\n maximum: 1,\n },\n },\n required: [\"image\", \"opacity\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({\n title: \"Image\",\n description: \"Image with adjusted transparency\",\n }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageTransparencyTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageTransparencyTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageTransparencyTask<\n Input extends ImageTransparencyTaskInput = ImageTransparencyTaskInput,\n Output extends ImageTransparencyTaskOutput = ImageTransparencyTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageTransparencyTask\";\n static override readonly category = \"Image\";\n public static override title = \"Set Transparency\";\n public static override description = \"Adjusts the opacity of an image\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await applyTransparency(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await applyTransparency(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageTransparency: CreateWorkflow<\n ImageTransparencyTaskInput,\n ImageTransparencyTaskOutput,\n TaskConfig\n >;\n }\n}\n\nWorkflow.prototype.imageTransparency = CreateWorkflow(ImageTransparencyTask);\n",
|
|
92
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\nimport { ImageBinaryOrDataUriSchema, ImageFromSchema } from \"./ImageSchemas\";\nimport { produceImageOutput } from \"./imageTaskIo\";\n\nasync function applyWatermark(input: ImageWatermarkTaskInput): Promise<ImageWatermarkTaskOutput> {\n const { spacing = 64, opacity = 0.3, pattern = \"diagonal-lines\" } = input;\n const image = await produceImageOutput(input.image, (img) => {\n const { data: src, width, height, channels: srcCh } = img;\n const outCh = 4;\n const dst = new Uint8ClampedArray(width * height * outCh);\n const lineWidth = 2;\n const dotRadius = Math.max(2, spacing >> 3);\n const dotRadiusSq = dotRadius * dotRadius;\n const half = spacing >> 1;\n const alpha = Math.round(opacity * 255);\n\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcIdx = (y * width + x) * srcCh;\n const dstIdx = (y * width + x) * outCh;\n\n // Read source pixel\n const sr = src[srcIdx];\n const sg = srcCh >= 3 ? src[srcIdx + 1] : sr;\n const sb = srcCh >= 3 ? src[srcIdx + 2] : sr;\n const sa = srcCh === 4 ? src[srcIdx + 3] : 255;\n\n // Check if this pixel is part of the watermark pattern\n let isPattern = false;\n if (pattern === \"diagonal-lines\") {\n isPattern = (x + y) % spacing < lineWidth;\n } else if (pattern === \"grid\") {\n isPattern = x % spacing < lineWidth || y % spacing < lineWidth;\n } else {\n const dx = (x % spacing) - half;\n const dy = (y % spacing) - half;\n isPattern = dx * dx + dy * dy < dotRadiusSq;\n }\n\n if (isPattern) {\n // Blend white watermark with source\n const blend = alpha;\n const invBlend = 255 - blend;\n dst[dstIdx] = (sr * invBlend + 255 * blend + 127) / 255;\n dst[dstIdx + 1] = (sg * invBlend + 255 * blend + 127) / 255;\n dst[dstIdx + 2] = (sb * invBlend + 255 * blend + 127) / 255;\n dst[dstIdx + 3] = sa;\n } else {\n dst[dstIdx] = sr;\n dst[dstIdx + 1] = sg;\n dst[dstIdx + 2] = sb;\n dst[dstIdx + 3] = sa;\n }\n }\n }\n\n return { data: dst, width, height, channels: outCh };\n });\n return { image };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Source image\" }),\n spacing: {\n type: \"integer\",\n title: \"Spacing\",\n description: \"Pattern spacing in pixels\",\n minimum: 8,\n default: 64,\n },\n opacity: {\n type: \"number\",\n title: \"Opacity\",\n description: \"Watermark opacity (0.0-1.0)\",\n minimum: 0,\n maximum: 1,\n default: 0.3,\n },\n pattern: {\n type: \"string\",\n enum: [\"diagonal-lines\", \"grid\", \"dots\"],\n title: \"Pattern\",\n description: \"Watermark pattern type\",\n default: \"diagonal-lines\",\n },\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n image: ImageBinaryOrDataUriSchema({ title: \"Image\", description: \"Watermarked image\" }),\n },\n required: [\"image\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ImageWatermarkTaskInput = ImageFromSchema<typeof inputSchema>;\nexport type ImageWatermarkTaskOutput = ImageFromSchema<typeof outputSchema>;\n\nexport class ImageWatermarkTask<\n Input extends ImageWatermarkTaskInput = ImageWatermarkTaskInput,\n Output extends ImageWatermarkTaskOutput = ImageWatermarkTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ImageWatermarkTask\";\n static override readonly category = \"Image\";\n public static override title = \"Add Watermark\";\n public static override description = \"Adds a repeating pattern watermark to an image\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return (await applyWatermark(input)) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return (await applyWatermark(input)) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n imageWatermark: CreateWorkflow<ImageWatermarkTaskInput, ImageWatermarkTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.imageWatermark = CreateWorkflow(ImageWatermarkTask);\n",
|
|
93
|
+
"/**\n * @copyright\n * Copyright 2025 Steven Roussey\n * All Rights Reserved\n */\n\nimport type { IExecuteContext, StreamEvent, StreamFinish } from \"@workglow/task-graph\";\nimport { CreateWorkflow, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport type { DataPortSchema } from \"@workglow/util/schema\";\n\nexport type InputTaskInput = Record<string, unknown>;\nexport type InputTaskOutput = Record<string, unknown>;\nexport type InputTaskConfig = TaskConfig;\n\nfunction passthroughInput(input: InputTaskInput): InputTaskOutput {\n return input as InputTaskOutput;\n}\n\nexport class InputTask extends Task<InputTaskInput, InputTaskOutput, InputTaskConfig> {\n static override type = \"InputTask\";\n static override category = \"Flow Control\";\n static override title = \"Input\";\n static override description = \"Starts the workflow\";\n static override hasDynamicSchemas = true;\n static override cacheable = false;\n static override isPassthrough = true;\n\n public static override inputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const as DataPortSchema;\n }\n\n public static override outputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const as DataPortSchema;\n }\n\n public override inputSchema(): DataPortSchema {\n return this.config?.inputSchema ?? (this.constructor as typeof InputTask).inputSchema();\n }\n\n public override outputSchema(): DataPortSchema {\n return this.config?.outputSchema ?? (this.constructor as typeof InputTask).outputSchema();\n }\n\n public override async execute(input: InputTaskInput, _context: IExecuteContext) {\n return passthroughInput(input);\n }\n\n public override async executePreview(input: InputTaskInput) {\n return passthroughInput(input);\n }\n\n /**\n * Stream pass-through: re-yields all events from upstream input streams\n * so downstream consumers see them with near-zero latency, then emits\n * a finish event with the materialized input as data.\n */\n async *executeStream(\n input: InputTaskInput,\n context: IExecuteContext\n ): AsyncIterable<StreamEvent<InputTaskOutput>> {\n if (context.inputStreams) {\n for (const [, stream] of context.inputStreams) {\n const reader = stream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (value.type === \"finish\") continue;\n yield value;\n }\n } finally {\n reader.releaseLock();\n }\n }\n }\n yield { type: \"finish\", data: input } as StreamFinish<InputTaskOutput>;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n input: CreateWorkflow<InputTaskInput, InputTaskOutput, InputTaskConfig>;\n }\n}\n\nWorkflow.prototype.input = CreateWorkflow(InputTask);\n",
|
|
94
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskEntitlements } from \"@workglow/task-graph\";\nimport {\n CreateWorkflow,\n Entitlements,\n Task,\n TaskConfig,\n TaskConfigSchema,\n TaskInvalidInputError,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { Interpreter } from \"../util/interpreter\";\n\nconst isValidIdentifier = (key: string) => /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(key);\n\nfunction runJavaScript(\n input: JavaScriptTaskInput,\n configuredCode: string | undefined\n): JavaScriptTaskOutput {\n const output = {} as JavaScriptTaskOutput;\n const code = input.javascript_code || configuredCode;\n if (code) {\n try {\n const inputVariables = Object.keys(input)\n .filter((key) => key !== \"javascript_code\")\n .filter(isValidIdentifier);\n const inputVariablesString = inputVariables\n .map((key) => `var ${key} = ${JSON.stringify(input[key])};`)\n .join(\"\\n\");\n const myInterpreter = new Interpreter(`${inputVariablesString} ${code}`);\n myInterpreter.run();\n output.output = myInterpreter.value;\n } catch (e) {\n throw new TaskInvalidInputError(\n `JavaScript execution failed: ${e instanceof Error ? e.message : String(e)}`\n );\n }\n }\n return output;\n}\n\nconst configSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n javascript_code: {\n type: \"string\",\n title: \"Code\",\n minLength: 1,\n description: \"JavaScript code to execute\",\n format: \"code:javascript\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n javascript_code: {\n type: \"string\",\n title: \"Code\",\n minLength: 1,\n description: \"JavaScript code to execute\",\n format: \"code:javascript\",\n },\n },\n required: [\"javascript_code\"],\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n output: {\n title: \"Output\",\n description: \"The output of the JavaScript code\",\n },\n },\n required: [\"output\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type JavaScriptTaskInput = FromSchema<typeof inputSchema>;\nexport type JavaScriptTaskOutput = FromSchema<typeof outputSchema>;\nexport type JavaScriptTaskConfig = TaskConfig & {\n javascript_code?: string;\n};\n\nexport class JavaScriptTask extends Task<\n JavaScriptTaskInput,\n JavaScriptTaskOutput,\n JavaScriptTaskConfig\n> {\n public static override type = \"JavaScriptTask\";\n public static override category = \"Utility\";\n public static override title = \"JavaScript Interpreter\";\n public static override description =\n \"Executes JavaScript code in a sandboxed interpreter environment\";\n public static override customizable = true;\n public static override hasDynamicSchemas = true;\n\n public static override entitlements(): TaskEntitlements {\n return {\n entitlements: [\n {\n id: Entitlements.CODE_EXECUTION_JS,\n reason: \"Executes user-provided JavaScript code in a sandboxed interpreter\",\n },\n ],\n };\n }\n\n public static override configSchema() {\n return configSchema;\n }\n\n public static override inputSchema() {\n return inputSchema;\n }\n\n public static override outputSchema() {\n return outputSchema;\n }\n\n public override inputSchema() {\n if (this.config?.javascript_code) {\n if (this.config.inputSchema) {\n return this.config.inputSchema;\n }\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const satisfies DataPortSchema;\n }\n return inputSchema;\n }\n\n override async execute(input: JavaScriptTaskInput) {\n return runJavaScript(input, this.config.javascript_code);\n }\n\n override async executePreview(input: JavaScriptTaskInput) {\n return runJavaScript(input, this.config.javascript_code);\n }\n}\n\nexport const javaScript = (input: JavaScriptTaskInput, config: TaskConfig = {}) => {\n return new JavaScriptTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n javaScript: CreateWorkflow<JavaScriptTaskInput, JavaScriptTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.javaScript = CreateWorkflow(JavaScriptTask);\n",
|
|
95
95
|
"/**\n * @license\n * Copyright 2012 Marijn Haverbeke\n * SPDX-License-Identifier: MIT\n */\n\n// Acorn is a tiny, fast JavaScript parser written in JavaScript.\n//\n// Acorn was written by Marijn Haverbeke and released under an MIT\n// license. The Unicode regexps (for identifiers and whitespace) were\n// taken from [Esprima](http://esprima.org) by Ariya Hidayat.\n//\n// Git repositories for Acorn are available at\n//\n// http://marijnhaverbeke.nl/git/acorn\n// https://github.com/marijnh/acorn.git\n//\n// Please use the [github bug tracker][ghbt] to report issues.\n//\n// [ghbt]: https://github.com/marijnh/acorn/issues\n//\n// This file defines the main parser interface. The library also comes\n// with a [error-tolerant parser][dammit] and an\n// [abstract syntax tree walker][walk], defined in other files.\n//\n// [dammit]: acorn_loose.js\n// [walk]: util/walk.js\n\nvar version = \"0.5.0\";\n// Plus additional edits marked with 'JS-Interpreter change' comments.\n\n// JS-Interpreter change:\n// Added JSDoc type definitions.\n// -- Neil Fraser, July 2023.\n\n// JS-Interpreter change:\n// No longer exporting defaultOptions, getLineInfo, tokenize, tokTypes,\n// isIdentifierStart, and isIdentifierChar. Not used by JS-Interpreter.\n// -- Neil Fraser, February 2023.\n\n// The main exported interface (under `self.acorn` when in the\n// browser) is a `parse` function that takes a code string and\n// returns an abstract syntax tree as specified by [Mozilla parser\n// API][api], with the caveat that the SpiderMonkey-specific syntax\n// (`let`, `yield`, inline XML, etc) is not recognized.\n//\n// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n\n/** @type {!Object|undefined} */\nvar options;\n\n/** @type {string} */\nvar input = \"\";\n/** @type {number|undefined} */\nvar inputLen;\n/** @type {*} */\nvar sourceFile;\n\n/**\n * @param {string} inpt\n * @param {Object=} opts\n * @returns\n */\nvar parse = function (inpt, opts) {\n input = String(inpt);\n inputLen = input.length;\n setOptions(opts);\n initTokenState();\n return parseTopLevel(options.program);\n};\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nvar defaultOptions = {\n // JS-Interpreter change:\n // `ecmaVersion` option has been removed along with all cases where\n // it is checked. In this version of Acorn it was limited to 3 or 5,\n // and there's no use case for 3 with JS-Interpreter.\n // -- Neil Fraser, December 2022.\n\n // Turn on `strictSemicolons` to prevent the parser from doing\n // automatic semicolon insertion.\n strictSemicolons: false,\n // When `allowTrailingCommas` is false, the parser will not allow\n // trailing commas in array and object literals.\n allowTrailingCommas: true,\n // By default, reserved words are not enforced. Enable\n // `forbidReserved` to enforce them. When this option has the\n // value \"everywhere\", reserved words and keywords can also not be\n // used as property names.\n forbidReserved: false,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n};\n\n/**\n * @param {Object|undefined} opts\n */\nfunction setOptions(opts) {\n options = opts || {};\n for (var opt in defaultOptions) {\n if (!Object.prototype.hasOwnProperty.call(options, opt)) {\n options[opt] = defaultOptions[opt];\n }\n }\n sourceFile = options.sourceFile;\n}\n\n/**\n * The `getLineInfo` function is mostly useful when the\n * `locations` option is off (for performance reasons) and you\n * want to find the line/column position for a given character\n * offset. `input` should be the code string that the offset refers\n * into.\n *\n * @param {string} input\n * @param {number} offset\n * @returns {!Object}\n */\nvar getLineInfo = function (input, offset) {\n for (var line = 1, cur = 0; ; ) {\n lineBreak.lastIndex = cur;\n var match = lineBreak.exec(input);\n if (match && match.index < offset) {\n ++line;\n cur = match.index + match[0].length;\n } else {\n break;\n }\n }\n return { line: line, column: offset - cur };\n};\n\n// JS-Interpreter change:\n// tokenize function never used. Removed.\n// -- Neil Fraser, February 2023.\n\n// State is kept in (closure-)global variables. We already saw the\n// `options`, `input`, and `inputLen` variables above.\n\n/**\n * The current position of the tokenizer in the input.\n * @type {number}\n */\nvar tokPos = 0;\n\n/**\n * The start offset of the current token.\n * @type {number}\n */\nvar tokStart = 0;\n\n/**\n * The end offset of the current token.\n * @type {number}\n */\nvar tokEnd = 0;\n\n/**\n * When `options.locations` is true, holds object\n * containing the token's start line/column pairs.\n * @type {!line_loc_t|undefined}\n */\nvar tokStartLoc;\n\n/**\n * When `options.locations` is true, holds object\n * containing the token's end line/column pairs.\n * @type {!line_loc_t|undefined}\n */\nvar tokEndLoc;\n\n/**\n * The type of the current token. Token types are objects,\n * named by variables against which they can be compared, and\n * holding properties that describe them (indicating, for example,\n * the precedence of an infix operator, and the original name of a\n * keyword token).\n * @type {!Object|undefined}\n */\nvar tokType;\n\n/**\n * The value of the current token. The kind of value that's held in\n * `tokVal` depends on the type of the token. For literals, it is the\n * literal value, for operators, the operator name, and so on.\n * @type {*}\n */\nvar tokVal;\n\n/**\n * Interal state for the tokenizer. To distinguish between division\n * operators and regular expressions, it remembers whether the last\n * token was one that is allowed to be followed by an expression.\n * (If it is, a slash is probably a regexp, if it isn't it's a\n * division operator. See the `parseStatement` function for a caveat.)\n * @type {boolean|undefined}\n */\nvar tokRegexpAllowed;\n\n/**\n * When `options.locations` is true, `tokCurLine` is used to keep\n * track of the current line.\n * @type {number|undefined}\n */\nvar tokCurLine;\n\n/**\n * When `options.locations` is true, `tokLineStart` is used to know\n * when a new line has been entered.\n * @type {number|undefined}\n */\nvar tokLineStart;\n\n/**\n * The start of the position of the previous token, which is useful\n * when finishing a node and assigning its `end` position.\n * @type {number}\n */\nvar lastStart = 0;\n\n/**\n * The end oy the position of the previous token, which is useful\n * when finishing a node and assigning its `end` position.\n * @type {number}\n */\nvar lastEnd = 0;\n\n/**\n * Stores the position of the previous token, which is useful\n * when finishing a node and assigning its `end` position.\n * @type {!line_loc_t|undefined}\n */\nvar lastEndLoc;\n\n/**\n * `inFunction` is used to reject `return` statements outside of functions.\n * @type {boolean|undefined}\n */\nvar inFunction;\n\n/**\n * `labels` is used to verify that `break` and `continue` have somewhere\n * to jump to.\n * @type {!Array<!Object>|undefined}\n */\nvar labels;\n\n/**\n * `strict` indicates whether strict mode is on.\n * @type {boolean|undefined}\n */\nvar strict;\n\n/**\n * This function is used to raise exceptions on parse errors. It\n * takes an offset integer (into the current `input`) to indicate\n * the location of the error, attaches the position to the end\n * of the error message, and then raises a `SyntaxError` with that\n * message.\n *\n * @param {number} pos\n * @param {string} message\n * @throws {SyntaxError}\n */\nfunction raise(pos, message) {\n var loc = getLineInfo(input, pos);\n message += \" (\" + loc.line + \":\" + loc.column + \")\";\n var err = new SyntaxError(message);\n err.pos = pos;\n err.loc = loc;\n err.raisedAt = tokPos;\n throw err;\n}\n\n// Reused empty array added for node fields that are always empty.\n\nvar empty = [];\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// These are the general types. The `type` property is only used to\n// make them recognizeable when debugging.\n\nvar _num = { type: \"num\" };\nvar _regexp = { type: \"regexp\" };\nvar _string = { type: \"string\" };\nvar _name = { type: \"name\" };\nvar _eof = { type: \"eof\" };\n\n// Keyword tokens. The `keyword` property (also used in keyword-like\n// operators) indicates that the token originated from an\n// identifier-like word, which is used when parsing property names.\n//\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nvar _break = { keyword: \"break\" };\nvar _case = { keyword: \"case\", beforeExpr: true };\nvar _catch = { keyword: \"catch\" };\nvar _continue = { keyword: \"continue\" };\nvar _debugger = { keyword: \"debugger\" };\nvar _default = { keyword: \"default\" };\nvar _do = { keyword: \"do\", isLoop: true };\nvar _else = { keyword: \"else\", beforeExpr: true };\nvar _finally = { keyword: \"finally\" };\nvar _for = { keyword: \"for\", isLoop: true };\nvar _function = { keyword: \"function\" };\nvar _if = { keyword: \"if\" };\nvar _return = { keyword: \"return\", beforeExpr: true };\nvar _switch = { keyword: \"switch\" };\nvar _throw = { keyword: \"throw\", beforeExpr: true };\nvar _try = { keyword: \"try\" };\nvar _var = { keyword: \"var\" };\nvar _while = { keyword: \"while\", isLoop: true };\nvar _with = { keyword: \"with\" };\nvar _new = { keyword: \"new\", beforeExpr: true };\nvar _this = { keyword: \"this\" };\n\n// The keywords that denote values.\n\nvar _null = { keyword: \"null\", atomValue: null };\nvar _true = { keyword: \"true\", atomValue: true };\nvar _false = { keyword: \"false\", atomValue: false };\n\n// Some keywords are treated as regular operators. `in` sometimes\n// (when parsing `for`) needs to be tested against specifically, so\n// we assign a variable name to it for quick comparing.\n\nvar _in = { keyword: \"in\", binop: 7, beforeExpr: true };\n\n// Map keyword names to token types.\n\nvar keywordTypes = {\n break: _break,\n case: _case,\n catch: _catch,\n continue: _continue,\n debugger: _debugger,\n default: _default,\n do: _do,\n else: _else,\n finally: _finally,\n for: _for,\n function: _function,\n if: _if,\n return: _return,\n switch: _switch,\n throw: _throw,\n try: _try,\n var: _var,\n while: _while,\n with: _with,\n null: _null,\n true: _true,\n false: _false,\n new: _new,\n in: _in,\n instanceof: { keyword: \"instanceof\", binop: 7, beforeExpr: true },\n this: _this,\n typeof: { keyword: \"typeof\", prefix: true, beforeExpr: true },\n void: { keyword: \"void\", prefix: true, beforeExpr: true },\n delete: { keyword: \"delete\", prefix: true, beforeExpr: true },\n};\n\n// Punctuation token types. Again, the `type` property is purely for debugging.\n\nvar _bracketL = { type: \"[\", beforeExpr: true };\nvar _bracketR = { type: \"]\" };\nvar _braceL = { type: \"{\", beforeExpr: true };\nvar _braceR = { type: \"}\" };\nvar _parenL = { type: \"(\", beforeExpr: true };\nvar _parenR = { type: \")\" };\nvar _comma = { type: \",\", beforeExpr: true };\nvar _semi = { type: \";\", beforeExpr: true };\nvar _colon = { type: \":\", beforeExpr: true };\nvar _dot = { type: \".\" };\nvar _question = { type: \"?\", beforeExpr: true };\n\n// Operators. These carry several kinds of properties to help the\n// parser use them properly (the presence of these properties is\n// what categorizes them as operators).\n//\n// `binop`, when present, specifies that this operator is a binary\n// operator, and will refer to its precedence.\n//\n// `prefix` and `postfix` mark the operator as a prefix or postfix\n// unary operator. `isUpdate` specifies that the node produced by\n// the operator should be of type UpdateExpression rather than\n// simply UnaryExpression (`++` and `--`).\n//\n// `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n// binary operators with a very low precedence, that should result\n// in AssignmentExpression nodes.\n\nvar _slash = { binop: 10, beforeExpr: true };\nvar _eq = { isAssign: true, beforeExpr: true };\nvar _assign = { isAssign: true, beforeExpr: true };\nvar _incDec = { postfix: true, prefix: true, isUpdate: true };\nvar _prefix = { prefix: true, beforeExpr: true };\nvar _logicalOR = { binop: 1, beforeExpr: true };\nvar _logicalAND = { binop: 2, beforeExpr: true };\nvar _bitwiseOR = { binop: 3, beforeExpr: true };\nvar _bitwiseXOR = { binop: 4, beforeExpr: true };\nvar _bitwiseAND = { binop: 5, beforeExpr: true };\nvar _equality = { binop: 6, beforeExpr: true };\nvar _relational = { binop: 7, beforeExpr: true };\nvar _bitShift = { binop: 8, beforeExpr: true };\nvar _plusMin = { binop: 9, prefix: true, beforeExpr: true };\nvar _multiplyModulo = { binop: 10, beforeExpr: true };\n\n// JS-Interpreter change:\n// tokTypes map never used. Removed.\n// -- Neil Fraser, February 2023.\n\n// JS-Interpreter change:\n// Acorn's original code built up functions using strings for maximum efficiency.\n// However, this triggered a CSP unsafe-eval requirement. Here's a slower, but\n// simpler approach. -- Neil Fraser, January 2022.\n// https://github.com/NeilFraser/JS-Interpreter/issues/228\n\n/**\n * @param {string} words\n * @returns {function(*): boolean}\n */\nfunction makePredicate(words) {\n var wordList = words.split(\" \");\n var set = Object.create(null);\n for (var i = 0; i < wordList.length; i++) {\n set[wordList[i]] = true;\n }\n return function (str) {\n return set[str] || false;\n };\n}\n\n// ECMAScript 5 reserved words.\n\nvar isReservedWord5 = makePredicate(\"class enum extends super const export import\");\n\n// The additional reserved words in strict mode.\n\nvar isStrictReservedWord = makePredicate(\n \"implements interface var package private protected public static yield\"\n);\n\n// The forbidden variable names in strict mode.\n\nvar isStrictBadIdWord = makePredicate(\"eval arguments\");\n\n// And the keywords.\n\nvar isKeyword = makePredicate(\n \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\"\n);\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point above 128.\n\nvar nonASCIIwhitespace = /[\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\nvar nonASCIIidentifierStartChars =\n \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\nvar nonASCIIidentifierChars =\n \"\\u0300-\\u036f\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u0620-\\u0649\\u0672-\\u06d3\\u06e7-\\u06e8\\u06fb-\\u06fc\\u0730-\\u074a\\u0800-\\u0814\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0840-\\u0857\\u08e4-\\u08fe\\u0900-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962-\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09d7\\u09df-\\u09e0\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2-\\u0ae3\\u0ae6-\\u0aef\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b5f-\\u0b60\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c01-\\u0c03\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62-\\u0c63\\u0c66-\\u0c6f\\u0c82\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2-\\u0ce3\\u0ce6-\\u0cef\\u0d02\\u0d03\\u0d46-\\u0d48\\u0d57\\u0d62-\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2\\u0df3\\u0e34-\\u0e3a\\u0e40-\\u0e45\\u0e50-\\u0e59\\u0eb4-\\u0eb9\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f41-\\u0f47\\u0f71-\\u0f84\\u0f86-\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1029\\u1040-\\u1049\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u170e-\\u1710\\u1720-\\u1730\\u1740-\\u1750\\u1772\\u1773\\u1780-\\u17b2\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1920-\\u192b\\u1930-\\u193b\\u1951-\\u196d\\u19b0-\\u19c0\\u19c8-\\u19c9\\u19d0-\\u19d9\\u1a00-\\u1a15\\u1a20-\\u1a53\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1b46-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c00-\\u1c22\\u1c40-\\u1c49\\u1c5b-\\u1c7d\\u1cd0-\\u1cd2\\u1d00-\\u1dbe\\u1e01-\\u1f15\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2d81-\\u2d96\\u2de0-\\u2dff\\u3021-\\u3028\\u3099\\u309a\\ua640-\\ua66d\\ua674-\\ua67d\\ua69f\\ua6f0-\\ua6f1\\ua7f8-\\ua800\\ua806\\ua80b\\ua823-\\ua827\\ua880-\\ua881\\ua8b4-\\ua8c4\\ua8d0-\\ua8d9\\ua8f3-\\ua8f7\\ua900-\\ua909\\ua926-\\ua92d\\ua930-\\ua945\\ua980-\\ua983\\ua9b3-\\ua9c0\\uaa00-\\uaa27\\uaa40-\\uaa41\\uaa4c-\\uaa4d\\uaa50-\\uaa59\\uaa7b\\uaae0-\\uaae9\\uaaf2-\\uaaf3\\uabc0-\\uabe1\\uabec\\uabed\\uabf0-\\uabf9\\ufb20-\\ufb28\\ufe00-\\ufe0f\\ufe20-\\ufe26\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\nvar nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nvar nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\"\n);\n\n// Whether a single character denotes a newline.\n\nvar newline = /[\\n\\r\\u2028\\u2029]/;\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nvar lineBreak = /\\r\\n|[\\n\\r\\u2028\\u2029]/g;\n\n/**\n * Test whether a given character code starts an identifier.\n *\n * @param {number} code\n * @returns {boolean}\n */\nvar isIdentifierStart = function (code) {\n if (code < 65) return code === 36;\n if (code < 91) return true;\n if (code < 97) return code === 95;\n if (code < 123) return true;\n return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));\n};\n\n/**\n * Test whether a given character is part of an identifier.\n *\n * @param {number} code\n * @returns {boolean}\n */\nvar isIdentifierChar = function (code) {\n if (code < 48) return code === 36;\n if (code < 58) return true;\n if (code < 65) return false;\n if (code < 91) return true;\n if (code < 97) return code === 95;\n if (code < 123) return true;\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n};\n\n// ## Tokenizer\n\n/**\n * These are used when `options.locations` is on, for the\n * `tokStartLoc` and `tokEndLoc` properties.\n * @constructor\n */\nfunction line_loc_t() {\n this.line = tokCurLine;\n this.column = tokPos - tokLineStart;\n}\n\n/**\n * Reset the token state. Used at the start of a parse.\n */\nfunction initTokenState() {\n tokCurLine = 1;\n tokPos = tokLineStart = 0;\n tokRegexpAllowed = true;\n skipSpace();\n}\n\n/**\n * Called at the end of every token. Sets `tokEnd`, `tokVal`, and\n * `tokRegexpAllowed`, and skips the space after the token, so that\n * the next one's `tokStart` will point at the right position.\n *\n * @param {!Object} type\n * @param {*=} val\n */\nfunction finishToken(type, val) {\n tokEnd = tokPos;\n if (options.locations) {\n tokEndLoc = new line_loc_t();\n }\n tokType = type;\n skipSpace();\n tokVal = val;\n tokRegexpAllowed = type.beforeExpr;\n}\n\nfunction skipBlockComment() {\n var startLoc = options.onComment && options.locations && new line_loc_t();\n var start = tokPos;\n var end = input.indexOf(\"*/\", (tokPos += 2));\n if (end === -1) {\n raise(tokPos - 2, \"Unterminated comment\");\n }\n tokPos = end + 2;\n if (options.locations) {\n lineBreak.lastIndex = start;\n var match;\n while ((match = lineBreak.exec(input)) && match.index < tokPos) {\n ++tokCurLine;\n tokLineStart = match.index + match[0].length;\n }\n }\n if (options.onComment) {\n options.onComment(\n true,\n input.slice(start + 2, end),\n start,\n tokPos,\n startLoc,\n options.locations && new line_loc_t()\n );\n }\n}\n\nfunction skipLineComment() {\n var start = tokPos;\n var startLoc = options.onComment && options.locations && new line_loc_t();\n var ch = input.charCodeAt((tokPos += 2));\n while (tokPos < inputLen && ch !== 10 && ch !== 13 && ch !== 8232 && ch !== 8233) {\n ++tokPos;\n ch = input.charCodeAt(tokPos);\n }\n if (options.onComment) {\n options.onComment(\n false,\n input.slice(start + 2, tokPos),\n start,\n tokPos,\n startLoc,\n options.locations && new line_loc_t()\n );\n }\n}\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\nfunction skipSpace() {\n while (tokPos < inputLen) {\n var ch = input.charCodeAt(tokPos);\n if (ch === 32) {\n // ' '\n ++tokPos;\n } else if (ch === 13) {\n ++tokPos;\n var next = input.charCodeAt(tokPos);\n if (next === 10) {\n ++tokPos;\n }\n if (options.locations) {\n ++tokCurLine;\n tokLineStart = tokPos;\n }\n } else if (ch === 10 || ch === 8232 || ch === 8233) {\n ++tokPos;\n if (options.locations) {\n ++tokCurLine;\n tokLineStart = tokPos;\n }\n } else if (ch > 8 && ch < 14) {\n ++tokPos;\n } else if (ch === 47) {\n // '/'\n var next = input.charCodeAt(tokPos + 1);\n if (next === 42) {\n // '*'\n skipBlockComment();\n } else if (next === 47) {\n // '/'\n skipLineComment();\n } else break;\n } else if (ch === 160) {\n // '\\xa0'\n ++tokPos;\n } else if (ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++tokPos;\n } else {\n break;\n }\n }\n}\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\n// The `forceRegexp` parameter is used in the one case where the\n// `tokRegexpAllowed` trick does not work. See `parseStatement`.\n\nfunction readToken_dot() {\n var next = input.charCodeAt(tokPos + 1);\n if (next >= 48 && next <= 57) {\n readNumber(true);\n } else {\n ++tokPos;\n finishToken(_dot);\n }\n}\n\nfunction readToken_slash() {\n // '/'\n var next = input.charCodeAt(tokPos + 1);\n if (tokRegexpAllowed) {\n ++tokPos;\n readRegexp();\n } else if (next === 61) {\n finishOp(_assign, 2);\n } else {\n finishOp(_slash, 1);\n }\n}\n\nfunction readToken_mult_modulo() {\n // '%*'\n var next = input.charCodeAt(tokPos + 1);\n if (next === 61) {\n finishOp(_assign, 2);\n } else {\n finishOp(_multiplyModulo, 1);\n }\n}\n\n/**\n * @param {number} code\n */\nfunction readToken_pipe_amp(code) {\n // '|&'\n var next = input.charCodeAt(tokPos + 1);\n if (next === code) {\n finishOp(code === 124 ? _logicalOR : _logicalAND, 2);\n } else if (next === 61) {\n finishOp(_assign, 2);\n } else {\n finishOp(code === 124 ? _bitwiseOR : _bitwiseAND, 1);\n }\n}\n\nfunction readToken_caret() {\n // '^'\n var next = input.charCodeAt(tokPos + 1);\n if (next === 61) {\n finishOp(_assign, 2);\n } else {\n finishOp(_bitwiseXOR, 1);\n }\n}\n\n/**\n * @param {number} code\n */\nfunction readToken_plus_min(code) {\n // '+-'\n var next = input.charCodeAt(tokPos + 1);\n if (next === code) {\n if (\n next === 45 &&\n input.charCodeAt(tokPos + 2) === 62 &&\n newline.test(input.slice(lastEnd, tokPos))\n ) {\n // A `-->` line comment\n tokPos += 3;\n skipLineComment();\n skipSpace();\n readToken();\n return;\n }\n finishOp(_incDec, 2);\n } else if (next === 61) {\n finishOp(_assign, 2);\n } else {\n finishOp(_plusMin, 1);\n }\n}\n\n/**\n * @param {number} code\n */\nfunction readToken_lt_gt(code) {\n // '<>'\n var next = input.charCodeAt(tokPos + 1);\n var size = 1;\n if (next === code) {\n size = code === 62 && input.charCodeAt(tokPos + 2) === 62 ? 3 : 2;\n if (input.charCodeAt(tokPos + size) === 61) {\n finishOp(_assign, size + 1);\n } else {\n finishOp(_bitShift, size);\n }\n return;\n }\n if (\n next === 33 &&\n code === 60 &&\n input.charCodeAt(tokPos + 2) === 45 &&\n input.charCodeAt(tokPos + 3) === 45\n ) {\n // `<!--`, an XML-style comment that should be interpreted as a line comment\n tokPos += 4;\n skipLineComment();\n skipSpace();\n readToken();\n return;\n }\n if (next === 61) {\n size = input.charCodeAt(tokPos + 2) === 61 ? 3 : 2;\n }\n finishOp(_relational, size);\n}\n\n/**\n * @param {number} code\n */\nfunction readToken_eq_excl(code) {\n // '=!'\n var next = input.charCodeAt(tokPos + 1);\n if (next === 61) {\n finishOp(_equality, input.charCodeAt(tokPos + 2) === 61 ? 3 : 2);\n } else {\n finishOp(code === 61 ? _eq : _prefix, 1);\n }\n}\n\n/**\n * @param {number} code\n * @returns {boolean|undefined}\n */\nfunction getTokenFromCode(code) {\n switch (code) {\n // The interpretation of a dot depends on whether it is followed\n // by a digit.\n case 46: // '.'\n return readToken_dot();\n\n // Punctuation tokens.\n case 40:\n ++tokPos;\n return finishToken(_parenL);\n case 41:\n ++tokPos;\n return finishToken(_parenR);\n case 59:\n ++tokPos;\n return finishToken(_semi);\n case 44:\n ++tokPos;\n return finishToken(_comma);\n case 91:\n ++tokPos;\n return finishToken(_bracketL);\n case 93:\n ++tokPos;\n return finishToken(_bracketR);\n case 123:\n ++tokPos;\n return finishToken(_braceL);\n case 125:\n ++tokPos;\n return finishToken(_braceR);\n case 58:\n ++tokPos;\n return finishToken(_colon);\n case 63:\n ++tokPos;\n return finishToken(_question);\n\n // '0x' is a hexadecimal number.\n case 48: // '0'\n var next = input.charCodeAt(tokPos + 1);\n if (next === 120 || next === 88) return readHexNumber();\n // Anything else beginning with a digit is an integer, octal\n // number, or float.\n case 49:\n case 50:\n case 51:\n case 52:\n case 53:\n case 54:\n case 55:\n case 56:\n case 57: // 1-9\n return readNumber(false);\n\n // Quotes produce strings.\n case 34:\n case 39: // '\"', \"'\"\n return readString(code);\n\n // Operators are parsed inline in tiny state machines. '=' (61) is\n // often referred to. `finishOp` simply skips the amount of\n // characters it is given as second argument, and returns a token\n // of the type given by its first argument.\n\n case 47: // '/'\n return readToken_slash();\n\n case 37:\n case 42: // '%*'\n return readToken_mult_modulo();\n\n case 124:\n case 38: // '|&'\n return readToken_pipe_amp(code);\n\n case 94: // '^'\n return readToken_caret();\n\n case 43:\n case 45: // '+-'\n return readToken_plus_min(code);\n\n case 60:\n case 62: // '<>'\n return readToken_lt_gt(code);\n\n case 61:\n case 33: // '=!'\n return readToken_eq_excl(code);\n\n case 126: // '~'\n return finishOp(_prefix, 1);\n }\n\n return false;\n}\n\n/**\n * @param {boolean=} forceRegexp\n */\nfunction readToken(forceRegexp) {\n if (!forceRegexp) {\n tokStart = tokPos;\n } else {\n tokPos = tokStart + 1;\n }\n if (options.locations) {\n tokStartLoc = new line_loc_t();\n }\n if (forceRegexp) return readRegexp();\n if (tokPos >= inputLen) return finishToken(_eof);\n\n var code = input.charCodeAt(tokPos);\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code) || code === 92) {\n // '\\'\n return readWord();\n }\n\n var tok = getTokenFromCode(code);\n\n if (tok === false) {\n // If we are here, we either found a non-ASCII identifier\n // character, or something that's entirely disallowed.\n var ch = String.fromCharCode(code);\n if (ch === \"\\\\\" || nonASCIIidentifierStart.test(ch)) {\n return readWord();\n }\n raise(tokPos, \"Unexpected character '\" + ch + \"'\");\n }\n}\n\n/**\n * @param {!Object} type\n * @param {number} size\n */\nfunction finishOp(type, size) {\n var str = input.slice(tokPos, tokPos + size);\n tokPos += size;\n finishToken(type, str);\n}\n\n/**\n * Parse a regular expression. Some context-awareness is necessary,\n * since a '/' inside a '[]' set does not end the expression.\n */\nfunction readRegexp() {\n // JS-Interpreter change:\n // Removed redundant declaration of 'content' here. Caused lint errors.\n // -- Neil Fraser, June 2022.\n var escaped;\n var inClass;\n var start = tokPos;\n for (;;) {\n if (tokPos >= inputLen) raise(start, \"Unterminated regexp\");\n var ch = input.charAt(tokPos);\n if (newline.test(ch)) raise(start, \"Unterminated regexp\");\n if (!escaped) {\n if (ch === \"[\") {\n inClass = true;\n } else if (ch === \"]\" && inClass) {\n inClass = false;\n } else if (ch === \"/\" && !inClass) {\n break;\n }\n escaped = ch === \"\\\\\";\n } else escaped = false;\n ++tokPos;\n }\n var content = input.slice(start, tokPos);\n ++tokPos;\n // Need to use `readWord1` because '\\uXXXX' sequences are allowed\n // here (don't ask).\n var mods = readWord1();\n // JS-Interpreter change:\n // Acorn used to use 'gmsiy' to check for flags. But 's' and 'y' are ES6.\n // -- Neil Fraser, December 2022.\n // https://github.com/acornjs/acorn/issues/1163\n if (mods && !/^[gmi]*$/.test(mods)) {\n raise(start, \"Invalid regexp flag\");\n }\n try {\n var value = new RegExp(content, mods);\n } catch (e) {\n if (e instanceof SyntaxError) raise(start, e.message);\n // JS-Interpreter change:\n // Acorn used to use raise(e) here which is incorrect.\n // -- Neil Fraser, July 2023.\n throw e;\n }\n finishToken(_regexp, value);\n}\n\n/**\n * Read an integer in the given radix. Return null if zero digits\n * were read, the integer value otherwise. When `len` is given, this\n * will return `null` unless the integer has exactly `len` digits.\n * @param {number} radix\n * @param {number=} len\n * @returns {?number}\n */\nfunction readInt(radix, len) {\n var start = tokPos;\n var total = 0;\n var e = len === undefined ? Infinity : len;\n for (var i = 0; i < e; ++i) {\n var code = input.charCodeAt(tokPos),\n val;\n if (code >= 97) {\n val = code - 97 + 10; // a\n } else if (code >= 65) {\n val = code - 65 + 10; // A\n } else if (code >= 48 && code <= 57) {\n val = code - 48; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) break;\n ++tokPos;\n total = total * radix + val;\n }\n if (tokPos === start || (len !== undefined && tokPos - start !== len)) {\n return null;\n }\n return total;\n}\n\nfunction readHexNumber() {\n tokPos += 2; // 0x\n var val = readInt(16);\n if (val === null) {\n raise(tokStart + 2, \"Expected hexadecimal number\");\n }\n if (isIdentifierStart(input.charCodeAt(tokPos))) {\n raise(tokPos, \"Identifier directly after number\");\n }\n finishToken(_num, val);\n}\n\n/**\n * Read an integer, octal integer, or floating-point number.\n *\n * @param {boolean} startsWithDot\n */\nfunction readNumber(startsWithDot) {\n var start = tokPos;\n var isFloat = false;\n var octal = input.charCodeAt(tokPos) === 48;\n if (!startsWithDot && readInt(10) === null) {\n raise(start, \"Invalid number\");\n }\n if (input.charCodeAt(tokPos) === 46) {\n ++tokPos;\n readInt(10);\n isFloat = true;\n }\n var next = input.charCodeAt(tokPos);\n if (next === 69 || next === 101) {\n // 'eE'\n next = input.charCodeAt(++tokPos);\n if (next === 43 || next === 45) {\n ++tokPos; // '+-'\n }\n if (readInt(10) === null) {\n raise(start, \"Invalid number\");\n }\n isFloat = true;\n }\n if (isIdentifierStart(input.charCodeAt(tokPos))) {\n raise(tokPos, \"Identifier directly after number\");\n }\n\n var str = input.slice(start, tokPos);\n var val;\n if (isFloat) {\n val = parseFloat(str);\n } else if (!octal || str.length === 1) {\n val = parseInt(str, 10);\n } else if (/[89]/.test(str) || strict) {\n raise(start, \"Invalid number\");\n } else {\n val = parseInt(str, 8);\n }\n finishToken(_num, val);\n}\n\n/**\n * Read a string value, interpreting backslash-escapes.\n *\n * @param {number} quote\n */\nfunction readString(quote) {\n tokPos++;\n var out = \"\";\n for (;;) {\n if (tokPos >= inputLen) raise(tokStart, \"Unterminated string constant\");\n var ch = input.charCodeAt(tokPos);\n if (ch === quote) {\n ++tokPos;\n finishToken(_string, out);\n return;\n }\n if (ch === 92) {\n // '\\'\n ch = input.charCodeAt(++tokPos);\n var octal = /^[0-7]+/.exec(input.slice(tokPos, tokPos + 3));\n if (octal) {\n octal = octal[0];\n }\n while (octal && parseInt(octal, 8) > 255) {\n octal = octal.slice(0, -1);\n }\n if (octal === \"0\") {\n octal = null;\n }\n ++tokPos;\n if (octal) {\n if (strict) raise(tokPos - 2, \"Octal literal in strict mode\");\n out += String.fromCharCode(parseInt(octal, 8));\n tokPos += octal.length - 1;\n } else {\n switch (ch) {\n case 110:\n out += \"\\n\";\n break; // 'n' -> '\\n'\n case 114:\n out += \"\\r\";\n break; // 'r' -> '\\r'\n case 120:\n out += String.fromCharCode(readHexChar(2));\n break; // 'x'\n case 117:\n out += String.fromCharCode(readHexChar(4));\n break; // 'u'\n case 85:\n out += String.fromCharCode(readHexChar(8));\n break; // 'U'\n case 116:\n out += \"\\t\";\n break; // 't' -> '\\t'\n case 98:\n out += \"\\b\";\n break; // 'b' -> '\\b'\n case 118:\n out += \"\\u000b\";\n break; // 'v' -> '\\u000b'\n case 102:\n out += \"\\f\";\n break; // 'f' -> '\\f'\n case 48:\n out += \"\\0\";\n break; // 0 -> '\\0'\n case 13: // '\\r'\n if (input.charCodeAt(tokPos) === 10) {\n ++tokPos; // '\\r\\n'\n }\n case 10: // ' \\n'\n if (options.locations) {\n tokLineStart = tokPos;\n ++tokCurLine;\n }\n break;\n default:\n out += String.fromCharCode(ch);\n break;\n }\n }\n } else {\n if (ch === 13 || ch === 10 || ch === 8232 || ch === 8233) {\n raise(tokStart, \"Unterminated string constant\");\n }\n out += String.fromCharCode(ch); // '\\'\n ++tokPos;\n }\n }\n}\n\n/**\n * Used to read character escape sequences ('\\x', '\\u', '\\U').\n *\n * @param {number} len\n * @returns {number}\n */\nfunction readHexChar(len) {\n var n = readInt(16, len);\n if (n === null) raise(tokStart, \"Bad character escape sequence\");\n return /** @type {number} */ (n);\n}\n\n// Used to signal to callers of `readWord1` whether the word\n// contained any escape sequences. This is needed because words with\n// escape sequences must not be interpreted as keywords.\n\n/** @type {boolean|undefined} */\nvar containsEsc;\n\n/**\n * Read an identifier, and return it as a string. Sets `containsEsc`\n * to whether the word contained a '\\u' escape.\n *\n * Only builds up the word character-by-character when it actually\n * containeds an escape, as a micro-optimization.\n *\n * @returns {string|undefined}\n */\nfunction readWord1() {\n containsEsc = false;\n var word;\n var first = true;\n var start = tokPos;\n for (;;) {\n var ch = input.charCodeAt(tokPos);\n if (isIdentifierChar(ch)) {\n if (containsEsc) {\n word += input.charAt(tokPos);\n }\n ++tokPos;\n } else if (ch === 92) {\n // \"\\\"\n if (!containsEsc) {\n word = input.slice(start, tokPos);\n }\n containsEsc = true;\n if (input.charCodeAt(++tokPos) !== 117) {\n // \"u\"\n raise(tokPos, \"Expecting Unicode escape sequence \\\\uXXXX\");\n }\n ++tokPos;\n var esc = readHexChar(4);\n var escStr = String.fromCharCode(esc);\n if (!escStr) raise(tokPos - 1, \"Invalid Unicode escape\");\n if (!(first ? isIdentifierStart(esc) : isIdentifierChar(esc))) {\n raise(tokPos - 4, \"Invalid Unicode escape\");\n }\n word += escStr;\n } else {\n break;\n }\n first = false;\n }\n return containsEsc ? word : input.slice(start, tokPos);\n}\n\n/**\n * Read an identifier or keyword token. Will check for reserved\n * words when necessary.\n */\nfunction readWord() {\n var word = readWord1();\n var type = _name;\n if (!containsEsc && isKeyword(word)) {\n type = keywordTypes[word];\n }\n finishToken(type, word);\n}\n\n// ## Parser\n\n// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\n// ### Parser utilities\n\n/**\n * Continue to the next token.\n */\nfunction next() {\n lastStart = tokStart;\n lastEnd = tokEnd;\n lastEndLoc = tokEndLoc;\n readToken();\n}\n\n/**\n * Enter strict mode. Re-reads the next token to please pedantic\n * tests (\"use strict\"; 010; -- should fail).\n *\n * @param {boolean} strct\n */\nfunction setStrict(strct) {\n strict = strct;\n tokPos = tokStart;\n if (options.locations) {\n while (tokPos < tokLineStart) {\n tokLineStart = input.lastIndexOf(\"\\n\", tokLineStart - 2) + 1;\n --tokCurLine;\n }\n }\n skipSpace();\n readToken();\n}\n\n// Start an AST node, attaching a start offset.\n\n/**\n * @constructor\n */\nfunction node_t() {\n this.type = null;\n this.start = tokStart;\n this.end = null;\n}\n\n/**\n * @constructor\n */\nfunction node_loc_t() {\n this.start = tokStartLoc;\n this.end = null;\n if (sourceFile) {\n this.source = sourceFile;\n }\n}\n\n/**\n * @returns {!node_t}\n */\nfunction startNode() {\n var node = new node_t();\n if (options.locations) {\n node.loc = new node_loc_t();\n }\n if (options.directSourceFile) {\n node.sourceFile = options.directSourceFile;\n }\n if (options.ranges) {\n node.range = [tokStart, 0];\n }\n return node;\n}\n\n/**\n * Start a node whose start offset information should be based on\n * the start of another node. For example, a binary operator node is\n * only started after its left-hand side has already been parsed.\n *\n * @param {!node_t} other\n * @returns {!node_t}\n */\nfunction startNodeFrom(other) {\n var node = new node_t();\n node.start = other.start;\n if (options.locations) {\n node.loc = new node_loc_t();\n node.loc.start = other.loc.start;\n }\n if (options.ranges) {\n node.range = [other.range[0], 0];\n }\n return node;\n}\n\n/**\n * Finish an AST node, adding `type` and `end` properties.\n *\n * @param {!node_t} node\n * @param {string} type\n * @returns {!node_t}\n */\nfunction finishNode(node, type) {\n node.type = type;\n node.end = lastEnd;\n if (options.locations) {\n node.loc.end = lastEndLoc;\n }\n if (options.ranges) {\n node.range[1] = lastEnd;\n }\n return node;\n}\n\n/**\n * Test whether a statement node is the string literal `\"use strict\"`.\n *\n * @param {!node_t} stmt\n * @returns {boolean}\n */\nfunction isUseStrict(stmt) {\n return (\n stmt.type === \"ExpressionStatement\" &&\n stmt.expression.type === \"Literal\" &&\n stmt.expression.value === \"use strict\"\n );\n}\n\n/**\n * Predicate that tests whether the next token is of the given\n * type, and if yes, consumes it as a side effect.\n * @param {!Object} type\n * @returns {boolean}\n */\nfunction eat(type) {\n if (tokType === type) {\n next();\n return true;\n }\n return false;\n}\n\n/**\n * Test whether a semicolon can be inserted at the current position.\n *\n * @returns {boolean}\n */\nfunction canInsertSemicolon() {\n return (\n !options.strictSemicolons &&\n (tokType === _eof || tokType === _braceR || newline.test(input.slice(lastEnd, tokStart)))\n );\n}\n\n/**\n * Consume a semicolon, or, failing that, see if we are allowed to\n * pretend that there is a semicolon at this position.\n */\nfunction semicolon() {\n if (!eat(_semi) && !canInsertSemicolon()) {\n unexpected();\n }\n}\n\n/**\n * Expect a token of a given type. If found, consume it, otherwise,\n * raise an unexpected token error.\n *\n * @param {!Object} type\n */\nfunction expect(type) {\n if (tokType === type) {\n next();\n } else {\n unexpected();\n }\n}\n\n/**\n * Raise an unexpected token error.\n * @throws {SyntaxError}\n */\nfunction unexpected() {\n raise(tokStart, \"Unexpected token\");\n}\n\n/**\n * Verify that a node is an lval — something that can be assigned to.\n *\n * @param {!node_t} expr\n */\nfunction checkLVal(expr) {\n if (expr.type !== \"Identifier\" && expr.type !== \"MemberExpression\") {\n raise(expr.start, \"Assigning to rvalue\");\n }\n if (strict && expr.type === \"Identifier\" && isStrictBadIdWord(expr.name)) {\n raise(expr.start, \"Assigning to \" + expr.name + \" in strict mode\");\n }\n}\n\n// ### Statement parsing\n\n/**\n * Parse a program. Initializes the parser, reads any number of\n * statements, and wraps them in a Program node. Optionally takes a\n * `program` argument. If present, the statements will be appended\n * to its body instead of creating a new node.\n *\n * @param {node_t} program\n * @returns {!node_t}\n */\nfunction parseTopLevel(program) {\n lastStart = lastEnd = tokPos;\n if (options.locations) {\n lastEndLoc = new line_loc_t();\n }\n inFunction = strict = false;\n labels = [];\n readToken();\n\n var node = program || startNode();\n var first = true;\n if (!program) {\n node.body = [];\n }\n while (tokType !== _eof) {\n var stmt = parseStatement();\n node.body.push(stmt);\n if (first && isUseStrict(stmt)) {\n setStrict(true);\n }\n first = false;\n }\n return finishNode(node, \"Program\");\n}\n\nvar loopLabel = { kind: \"loop\" };\nvar switchLabel = { kind: \"switch\" };\n\n/**\n * Parse a single statement.\n *\n * If expecting a statement and finding a slash operator, parse a\n * regular expression literal. This is to handle cases like\n * `if (foo) /blah/.exec(foo);`, where looking at the previous token\n * does not help.\n *\n * @returns {!node_t}\n */\nfunction parseStatement() {\n if (tokType === _slash || (tokType === _assign && tokVal === \"/=\")) {\n readToken(true);\n }\n\n var starttype = tokType;\n var node = startNode();\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case _break:\n case _continue:\n next();\n var isBreak = starttype === _break;\n if (eat(_semi) || canInsertSemicolon()) {\n node.label = null;\n } else if (tokType !== _name) {\n unexpected();\n } else {\n node.label = parseIdent();\n semicolon();\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n for (var i = 0; i < labels.length; ++i) {\n var lab = labels[i];\n if (node.label === null || lab.name === node.label.name) {\n if (lab.kind !== null && (isBreak || lab.kind === \"loop\")) break;\n if (node.label && isBreak) break;\n }\n }\n if (i === labels.length) {\n raise(node.start, \"Unsyntactic \" + starttype.keyword);\n }\n return finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\");\n\n case _debugger:\n next();\n semicolon();\n return finishNode(node, \"DebuggerStatement\");\n\n case _do:\n next();\n labels.push(loopLabel);\n node.body = parseStatement();\n labels.pop();\n expect(_while);\n node.test = parseParenExpression();\n semicolon();\n return finishNode(node, \"DoWhileStatement\");\n\n // Disambiguating between a `for` and a `for`/`in` loop is\n // non-trivial. Basically, we have to parse the init `var`\n // statement or expression, disallowing the `in` operator (see\n // the second parameter to `parseExpression`), and then check\n // whether the next token is `in`. When there is no init part\n // (semicolon immediately after the opening parenthesis), it is\n // a regular `for` loop.\n\n case _for:\n next();\n labels.push(loopLabel);\n expect(_parenL);\n if (tokType === _semi) return parseFor(node, null);\n if (tokType === _var) {\n var init = startNode();\n next();\n parseVar(init, true);\n finishNode(init, \"VariableDeclaration\");\n if (init.declarations.length === 1 && eat(_in)) return parseForIn(node, init);\n return parseFor(node, init);\n }\n var init = parseExpression(false, true);\n if (eat(_in)) {\n checkLVal(init);\n return parseForIn(node, init);\n }\n return parseFor(node, init);\n\n case _function:\n next();\n return parseFunction(node, true);\n\n case _if:\n next();\n node.test = parseParenExpression();\n node.consequent = parseStatement();\n node.alternate = eat(_else) ? parseStatement() : null;\n return finishNode(node, \"IfStatement\");\n\n case _return:\n if (!inFunction && !options.allowReturnOutsideFunction) {\n raise(tokStart, \"'return' outside of function\");\n }\n next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (eat(_semi) || canInsertSemicolon()) {\n node.argument = null;\n } else {\n node.argument = parseExpression();\n semicolon();\n }\n return finishNode(node, \"ReturnStatement\");\n\n case _switch:\n next();\n node.discriminant = parseParenExpression();\n node.cases = [];\n expect(_braceL);\n labels.push(switchLabel);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n for (var cur, sawDefault; tokType !== _braceR; ) {\n if (tokType === _case || tokType === _default) {\n var isCase = tokType === _case;\n if (cur) {\n finishNode(cur, \"SwitchCase\");\n }\n node.cases.push((cur = startNode()));\n cur.consequent = [];\n next();\n if (isCase) {\n cur.test = parseExpression();\n } else {\n if (sawDefault) {\n raise(lastStart, \"Multiple default clauses\");\n }\n sawDefault = true;\n cur.test = null;\n }\n expect(_colon);\n } else {\n if (!cur) unexpected();\n cur.consequent.push(parseStatement());\n }\n }\n if (cur) finishNode(cur, \"SwitchCase\");\n next(); // Closing brace\n labels.pop();\n return finishNode(node, \"SwitchStatement\");\n\n case _throw:\n next();\n if (newline.test(input.slice(lastEnd, tokStart)))\n raise(lastEnd, \"Illegal newline after throw\");\n node.argument = parseExpression();\n semicolon();\n return finishNode(node, \"ThrowStatement\");\n\n case _try:\n next();\n node.block = parseBlock();\n node.handler = null;\n if (tokType === _catch) {\n var clause = startNode();\n next();\n expect(_parenL);\n clause.param = parseIdent();\n if (strict && isStrictBadIdWord(clause.param.name))\n raise(clause.param.start, \"Binding \" + clause.param.name + \" in strict mode\");\n expect(_parenR);\n // JS-Interpreter change:\n // Obsolete unused property; commenting out.\n // -- Neil Fraser, January 2023.\n // clause.guard = null;\n clause.body = parseBlock();\n node.handler = finishNode(clause, \"CatchClause\");\n }\n // JS-Interpreter change:\n // Obsolete unused property; commenting out.\n // -- Neil Fraser, January 2023.\n // node.guardedHandlers = empty;\n node.finalizer = eat(_finally) ? parseBlock() : null;\n if (!node.handler && !node.finalizer) raise(node.start, \"Missing catch or finally clause\");\n return finishNode(node, \"TryStatement\");\n\n case _var:\n next();\n parseVar(node);\n semicolon();\n return finishNode(node, \"VariableDeclaration\");\n\n case _while:\n next();\n node.test = parseParenExpression();\n labels.push(loopLabel);\n node.body = parseStatement();\n labels.pop();\n return finishNode(node, \"WhileStatement\");\n\n case _with:\n if (strict) raise(tokStart, \"'with' in strict mode\");\n next();\n node.object = parseParenExpression();\n node.body = parseStatement();\n return finishNode(node, \"WithStatement\");\n\n case _braceL:\n return parseBlock();\n\n case _semi:\n next();\n return finishNode(node, \"EmptyStatement\");\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n var maybeName = tokVal;\n var expr = parseExpression();\n if (starttype === _name && expr.type === \"Identifier\" && eat(_colon)) {\n for (var i = 0; i < labels.length; ++i) {\n if (labels[i].name === maybeName) {\n raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n }\n }\n var kind = tokType.isLoop ? \"loop\" : tokType === _switch ? \"switch\" : null;\n labels.push({ name: maybeName, kind: kind });\n node.body = parseStatement();\n labels.pop();\n node.label = expr;\n return finishNode(node, \"LabeledStatement\");\n } else {\n node.expression = expr;\n semicolon();\n return finishNode(node, \"ExpressionStatement\");\n }\n }\n}\n\n/**\n * Used for constructs like `switch` and `if` that insist on\n * parentheses around their expression.\n *\n * @returns {!node_t}\n */\nfunction parseParenExpression() {\n expect(_parenL);\n var val = parseExpression();\n expect(_parenR);\n return val;\n}\n\n/**\n * Parse a semicolon-enclosed block of statements, handling `\"use\n * strict\"` declarations when `allowStrict` is true (used for\n * function bodies).\n *\n * @param {boolean=} allowStrict\n * @returns {!node_t}\n */\nfunction parseBlock(allowStrict) {\n var node = startNode();\n var first = true;\n var strict = false;\n var oldStrict;\n node.body = [];\n expect(_braceL);\n while (!eat(_braceR)) {\n var stmt = parseStatement();\n node.body.push(stmt);\n if (first && allowStrict && isUseStrict(stmt)) {\n oldStrict = strict;\n setStrict((strict = true));\n }\n first = false;\n }\n if (strict && !oldStrict) setStrict(false);\n return finishNode(node, \"BlockStatement\");\n}\n\n/**\n * Parse a regular `for` loop. The disambiguation code in `parseStatement`\n * will already have parsed the init statement or expression.\n *\n * @param {!node_t} node\n * @param {node_t} init\n * @returns {!node_t}\n */\nfunction parseFor(node, init) {\n node.init = init;\n expect(_semi);\n node.test = tokType === _semi ? null : parseExpression();\n expect(_semi);\n node.update = tokType === _parenR ? null : parseExpression();\n expect(_parenR);\n node.body = parseStatement();\n labels.pop();\n return finishNode(node, \"ForStatement\");\n}\n\n/**\n * Parse a `for`/`in` loop.\n *\n * @param {!node_t} node\n * @param {!node_t} init\n * @returns {!node_t}\n */\nfunction parseForIn(node, init) {\n node.left = init;\n node.right = parseExpression();\n expect(_parenR);\n node.body = parseStatement();\n labels.pop();\n return finishNode(node, \"ForInStatement\");\n}\n\n/**\n * Parse a list of variable declarations.\n *\n * @param {!node_t} node\n * @param {boolean=} noIn\n */\nfunction parseVar(node, noIn) {\n node.declarations = [];\n node.kind = \"var\";\n for (;;) {\n var decl = startNode();\n decl.id = parseIdent();\n if (strict && isStrictBadIdWord(decl.id.name))\n raise(decl.id.start, \"Binding \" + decl.id.name + \" in strict mode\");\n decl.init = eat(_eq) ? parseExpression(true, noIn) : null;\n node.declarations.push(finishNode(decl, \"VariableDeclarator\"));\n if (!eat(_comma)) break;\n }\n}\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply var the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n/**\n * Parse a full expression. The arguments are used to forbid comma\n * sequences (in argument lists, array literals, or object literals)\n * or the `in` operator (in for loops initalization expressions).\n *\n * @param {boolean=} noComma\n * @param {boolean=} noIn\n * @returns {!node_t}\n */\nfunction parseExpression(noComma, noIn) {\n var expr = parseMaybeAssign(noIn);\n if (!noComma && tokType === _comma) {\n var node = startNodeFrom(expr);\n node.expressions = [expr];\n while (eat(_comma)) node.expressions.push(parseMaybeAssign(noIn));\n return finishNode(node, \"SequenceExpression\");\n }\n return expr;\n}\n\n/**\n * Parse an assignment expression. This includes applications of\n * operators like `+=`.\n *\n * @param {boolean|undefined} noIn\n * @returns {!node_t}\n */\nfunction parseMaybeAssign(noIn) {\n var left = parseMaybeConditional(noIn);\n if (tokType.isAssign) {\n var node = startNodeFrom(left);\n node.operator = tokVal;\n node.left = left;\n next();\n node.right = parseMaybeAssign(noIn);\n checkLVal(left);\n return finishNode(node, \"AssignmentExpression\");\n }\n return left;\n}\n\n/**\n * Parse a ternary conditional (`?:`) operator.\n *\n * @param {boolean|undefined} noIn\n * @returns {!node_t}\n */\nfunction parseMaybeConditional(noIn) {\n var expr = parseExprOps(noIn);\n if (eat(_question)) {\n var node = startNodeFrom(expr);\n node.test = expr;\n node.consequent = parseExpression(true);\n expect(_colon);\n node.alternate = parseExpression(true, noIn);\n return finishNode(node, \"ConditionalExpression\");\n }\n return expr;\n}\n\n/**\n * Start the precedence parser.\n *\n * @param {boolean|undefined} noIn\n * @returns {!node_t}\n */\nfunction parseExprOps(noIn) {\n return parseExprOp(parseMaybeUnary(), -1, noIn);\n}\n\n/**\n * Parse binary operators with the operator precedence parsing\n * algorithm. `left` is the left-hand side of the operator.\n * `minPrec` provides context that allows the function to stop and\n * defer further parser to one of its callers when it encounters an\n * operator that has a lower precedence than the set it is parsing.\n *\n * @param {!node_t} left\n * @param {number} minPrec\n * @param {boolean|undefined} noIn\n * @returns {!node_t}\n */\nfunction parseExprOp(left, minPrec, noIn) {\n var prec = tokType.binop;\n if (prec !== null && (!noIn || tokType !== _in)) {\n if (prec > minPrec) {\n var node = startNodeFrom(left);\n node.left = left;\n node.operator = tokVal;\n var op = tokType;\n next();\n node.right = parseExprOp(parseMaybeUnary(), prec, noIn);\n var exprNode = finishNode(\n node,\n op === _logicalOR || op === _logicalAND ? \"LogicalExpression\" : \"BinaryExpression\"\n );\n return parseExprOp(exprNode, minPrec, noIn);\n }\n }\n return left;\n}\n\n/**\n * Parse unary operators, both prefix and postfix.\n *\n * @returns {!node_t}\n */\nfunction parseMaybeUnary() {\n if (tokType.prefix) {\n var node = startNode();\n var update = tokType.isUpdate;\n node.operator = tokVal;\n node.prefix = true;\n tokRegexpAllowed = true;\n next();\n node.argument = parseMaybeUnary();\n if (update) checkLVal(node.argument);\n else if (strict && node.operator === \"delete\" && node.argument.type === \"Identifier\")\n raise(node.start, \"Deleting local variable in strict mode\");\n return finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n }\n var expr = parseExprSubscripts();\n while (tokType.postfix && !canInsertSemicolon()) {\n var node = startNodeFrom(expr);\n node.operator = tokVal;\n node.prefix = false;\n node.argument = expr;\n checkLVal(expr);\n next();\n expr = finishNode(node, \"UpdateExpression\");\n }\n return expr;\n}\n\n/**\n * Parse call, dot, and `[]`-subscript expressions.\n *\n * @returns {!node_t}\n */\nfunction parseExprSubscripts() {\n return parseSubscripts(parseExprAtom());\n}\n\n/**\n * @param {!node_t} base\n * @param {boolean=} noCalls\n * @returns {!node_t}\n */\nfunction parseSubscripts(base, noCalls) {\n var node;\n if (eat(_dot)) {\n node = startNodeFrom(base);\n node.object = base;\n node.property = parseIdent(true);\n node.computed = false;\n return parseSubscripts(finishNode(node, \"MemberExpression\"), noCalls);\n }\n if (eat(_bracketL)) {\n node = startNodeFrom(base);\n node.object = base;\n node.property = parseExpression();\n node.computed = true;\n expect(_bracketR);\n return parseSubscripts(finishNode(node, \"MemberExpression\"), noCalls);\n }\n if (!noCalls && eat(_parenL)) {\n node = startNodeFrom(base);\n node.callee = base;\n node.arguments = parseExprList(_parenR, false);\n return parseSubscripts(finishNode(node, \"CallExpression\"), noCalls);\n }\n return base;\n}\n\n/**\n * Parse an atomic expression — either a single token that is an expression,\n * an expression started by a keyword like `function` or `new`,\n * or an expression wrapped in punctuation like `()`, `[]`, or `{}`.\n *\n * @returns {!node_t}\n * @suppress {missingReturn}\n */\nfunction parseExprAtom() {\n var node;\n switch (tokType) {\n case _this:\n node = startNode();\n next();\n return finishNode(node, \"ThisExpression\");\n case _name:\n return parseIdent();\n case _num:\n case _string:\n case _regexp:\n node = startNode();\n node.value = tokVal;\n node.raw = input.slice(tokStart, tokEnd);\n next();\n return finishNode(node, \"Literal\");\n\n case _null:\n case _true:\n case _false:\n node = startNode();\n node.value = tokType.atomValue;\n node.raw = tokType.keyword;\n next();\n return finishNode(node, \"Literal\");\n\n case _parenL:\n var tokStartLoc1 = tokStartLoc;\n var tokStart1 = tokStart;\n next();\n var val = parseExpression();\n val.start = tokStart1;\n val.end = tokEnd;\n if (options.locations) {\n val.loc.start = tokStartLoc1;\n val.loc.end = tokEndLoc;\n }\n if (options.ranges) {\n val.range = [tokStart1, tokEnd];\n }\n expect(_parenR);\n return val;\n\n case _bracketL:\n node = startNode();\n next();\n node.elements = parseExprList(_bracketR, true, true);\n return finishNode(node, \"ArrayExpression\");\n\n case _braceL:\n return parseObj();\n\n case _function:\n node = startNode();\n next();\n return parseFunction(node, false);\n\n case _new:\n return parseNew();\n }\n unexpected();\n}\n\n/**\n * New's precedence is slightly tricky. It must allow its argument to be\n * a `[]` or dot subscript expression, but not a call — at least, not\n * without wrapping it in parentheses. Thus, it uses the noCalls argument\n * to parseSubscripts to prevent it from consuming the argument list.\n *\n * @returns {!node_t}\n */\nfunction parseNew() {\n var node = startNode();\n next();\n node.callee = parseSubscripts(parseExprAtom(), true);\n node.arguments = eat(_parenL) ? parseExprList(_parenR, false) : empty;\n return finishNode(node, \"NewExpression\");\n}\n\n/**\n * Parse an object literal.\n *\n * @returns {!node_t}\n */\nfunction parseObj() {\n var node = startNode();\n var first = true;\n var sawGetSet = false;\n node.properties = [];\n next();\n while (!eat(_braceR)) {\n if (!first) {\n expect(_comma);\n if (options.allowTrailingCommas && eat(_braceR)) {\n break;\n }\n } else {\n first = false;\n }\n\n var prop = { key: parsePropertyName() };\n var isGetSet = false;\n var kind;\n if (eat(_colon)) {\n prop.value = parseExpression(true);\n kind = prop.kind = \"init\";\n } else if (\n prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\")\n ) {\n isGetSet = sawGetSet = true;\n kind = prop.kind = prop.key.name;\n prop.key = parsePropertyName();\n if (tokType !== _parenL) unexpected();\n prop.value = parseFunction(startNode(), false);\n } else {\n unexpected();\n }\n\n // getters and setters are not allowed to clash — either with\n // each other or with an init property — and in strict mode,\n // init properties are also not allowed to be repeated.\n\n if (prop.key.type === \"Identifier\" && (strict || sawGetSet)) {\n for (var i = 0; i < node.properties.length; ++i) {\n var other = node.properties[i];\n if (other.key.name === prop.key.name) {\n var conflict =\n kind === other.kind ||\n (isGetSet && other.kind === \"init\") ||\n (kind === \"init\" && (other.kind === \"get\" || other.kind === \"set\"));\n if (conflict && !strict && kind === \"init\" && other.kind === \"init\") {\n conflict = false;\n }\n if (conflict) {\n raise(prop.key.start, \"Redefinition of property\");\n }\n }\n }\n }\n node.properties.push(prop);\n }\n return finishNode(node, \"ObjectExpression\");\n}\n\n/**\n * @returns {!node_t}\n */\nfunction parsePropertyName() {\n if (tokType === _num || tokType === _string) {\n return parseExprAtom();\n }\n return parseIdent(true);\n}\n\n/**\n * Parse a function declaration or literal (depending on the\n * `isStatement` parameter).\n *\n * @param {!node_t} node\n * @param {boolean} isStatement\n * @returns {!node_t}\n */\nfunction parseFunction(node, isStatement) {\n if (tokType === _name) {\n node.id = parseIdent();\n } else if (isStatement) {\n unexpected();\n } else {\n node.id = null;\n }\n node.params = [];\n var first = true;\n expect(_parenL);\n while (!eat(_parenR)) {\n if (!first) {\n expect(_comma);\n } else {\n first = false;\n }\n node.params.push(parseIdent());\n }\n\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n var oldInFunc = inFunction;\n var oldLabels = labels;\n inFunction = true;\n labels = [];\n node.body = parseBlock(true);\n inFunction = oldInFunc;\n labels = oldLabels;\n\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (strict || (node.body.body.length && isUseStrict(node.body.body[0]))) {\n for (var i = node.id ? -1 : 0; i < node.params.length; ++i) {\n var id = i < 0 ? node.id : node.params[i];\n if (isStrictReservedWord(id.name) || isStrictBadIdWord(id.name)) {\n raise(id.start, \"Defining '\" + id.name + \"' in strict mode\");\n }\n if (i >= 0) {\n for (var j = 0; j < i; ++j) {\n if (id.name === node.params[j].name) {\n raise(id.start, \"Argument name clash in strict mode\");\n }\n }\n }\n }\n }\n\n return finishNode(node, isStatement ? \"FunctionDeclaration\" : \"FunctionExpression\");\n}\n\n/**\n * Parses a comma-separated list of expressions, and returns them as\n * an array. `close` is the token type that ends the list, and\n * `allowEmpty` can be turned on to allow subsequent commas with\n * nothing in between them to be parsed as `null` (which is needed\n * for array literals).\n *\n * @param {!Object} close\n * @param {boolean} allowTrailingComma\n * @param {boolean=} allowEmpty\n * @returns {!Array<!node_t>}\n */\nfunction parseExprList(close, allowTrailingComma, allowEmpty) {\n var elts = [];\n var first = true;\n while (!eat(close)) {\n if (!first) {\n expect(_comma);\n if (allowTrailingComma && options.allowTrailingCommas && eat(close)) {\n break;\n }\n } else {\n first = false;\n }\n\n elts.push(allowEmpty && tokType === _comma ? null : parseExpression(true));\n }\n return elts;\n}\n\n/**\n * Parse the next token as an identifier. If `liberal` is true (used\n * when parsing properties), it will also convert keywords into\n * identifiers.\n *\n * @param {boolean=} liberal\n * @returns {!node_t}\n */\nfunction parseIdent(liberal) {\n var node = startNode();\n if (liberal && options.forbidReserved === \"everywhere\") {\n liberal = false;\n }\n if (tokType === _name) {\n if (\n !liberal &&\n ((options.forbidReserved && isReservedWord5(tokVal)) ||\n (strict && isStrictReservedWord(tokVal))) &&\n input.slice(tokStart, tokEnd).indexOf(\"\\\\\") === -1\n ) {\n raise(tokStart, \"The keyword '\" + tokVal + \"' is reserved\");\n }\n node.name = tokVal;\n } else if (liberal && tokType.keyword) {\n node.name = tokType.keyword;\n } else {\n unexpected();\n }\n tokRegexpAllowed = false;\n next();\n return finishNode(node, \"Identifier\");\n}\n\nexport { version, parse };\n",
|
|
96
96
|
"/**\n * @license\n * Copyright 2013 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @fileoverview Interpreting JavaScript in JavaScript.\n * @author fraser@google.com (Neil Fraser)\n */\nimport * as acorn from \"./acorn\";\n\n/**\n * Create a new interpreter.\n * @param {string|!Object} code Raw JavaScript text or AST.\n * @param {Function=} opt_initFunc Optional initialization function. Used to\n * define APIs. When called it is passed the interpreter object and the\n * global scope object.\n * @type Class\n */\nvar Interpreter = function (code, opt_initFunc) {\n if (typeof code === \"string\") {\n code = this.parse_(code, \"code\");\n }\n // Get a handle on Acorn's node_t object.\n var nodeConstructor = code.constructor;\n this.newNode = function () {\n return new nodeConstructor({ options: {} });\n };\n // Clone the root 'Program' node so that the AST may be modified.\n var ast = this.newNode();\n for (var prop in code) {\n ast[prop] = prop === \"body\" ? code[prop].slice() : code[prop];\n }\n this.ast = ast;\n /**\n * Sorted array of setTimeout/setInterval tasks waiting to execute.\n */\n this.tasks = [];\n this.initFunc_ = opt_initFunc;\n /**\n * True if the interpreter is paused while waiting for an async function.\n */\n this.paused_ = false;\n this.polyfills_ = [];\n // Unique identifier for native functions. Used in serialization.\n this.functionCounter_ = 0;\n // Map node types to our step function names; a property lookup is faster\n // than string concatenation with \"step\" prefix.\n this.stepFunctions_ = Object.create(null);\n var stepMatch = /^step([A-Z]\\w*)$/;\n var m;\n for (var methodName in this) {\n if (typeof this[methodName] === \"function\" && (m = methodName.match(stepMatch))) {\n this.stepFunctions_[m[1]] = this[methodName].bind(this);\n }\n }\n // Create and initialize the global scope.\n this.globalScope = this.createScope(this.ast, null);\n this.globalObject = this.globalScope.object;\n // Run the polyfills.\n this.ast = this.parse_(this.polyfills_.join(\"\\n\"), \"polyfills\");\n this.polyfills_ = undefined; // Allow polyfill strings to garbage collect.\n Interpreter.stripLocations_(this.ast, undefined, undefined);\n var state = new Interpreter.State(this.ast, this.globalScope);\n state.done = false;\n this.stateStack = [state];\n this.run();\n this.value = undefined;\n // Point at the main program.\n this.ast = ast;\n state = new Interpreter.State(this.ast, this.globalScope);\n state.done = false;\n this.stateStack.length = 0;\n this.stateStack[0] = state;\n};\n\n/**\n * Completion Value Types.\n * @enum {number}\n */\nInterpreter.Completion = {\n NORMAL: 0,\n BREAK: 1,\n CONTINUE: 2,\n RETURN: 3,\n THROW: 4,\n};\n\n/**\n * Interpreter status values.\n * @enum {number}\n */\nInterpreter.Status = {\n DONE: 0,\n STEP: 1,\n TASK: 2,\n ASYNC: 3,\n};\n\n/**\n * @const {!Object} Configuration used for all Acorn parsing.\n */\nInterpreter.PARSE_OPTIONS = {\n locations: true,\n ecmaVersion: 5, // Needed in the event a version > 0.5.0 of Acorn is used.\n};\n\n/**\n * Property descriptor of readonly properties.\n */\nInterpreter.READONLY_DESCRIPTOR = {\n configurable: true,\n enumerable: true,\n writable: false,\n};\n\n/**\n * Property descriptor of non-enumerable properties.\n */\nInterpreter.NONENUMERABLE_DESCRIPTOR = {\n configurable: true,\n enumerable: false,\n writable: true,\n};\n\n/**\n * Property descriptor of readonly, non-enumerable properties.\n */\nInterpreter.READONLY_NONENUMERABLE_DESCRIPTOR = {\n configurable: true,\n enumerable: false,\n writable: false,\n};\n\n/**\n * Property descriptor of non-configurable, readonly, non-enumerable properties.\n * E.g. NaN, Infinity.\n */\nInterpreter.NONCONFIGURABLE_READONLY_NONENUMERABLE_DESCRIPTOR = {\n configurable: false,\n enumerable: false,\n writable: false,\n};\n\n/**\n * Property descriptor of variables.\n */\nInterpreter.VARIABLE_DESCRIPTOR = {\n configurable: false,\n enumerable: true,\n writable: true,\n};\n\n/**\n * Unique symbol for indicating that a step has encountered an error, has\n * added it to the stack, and will be thrown within the user's program.\n * When STEP_ERROR is thrown in the JS-Interpreter, the error can be ignored.\n */\nInterpreter.STEP_ERROR = { STEP_ERROR: true };\n\n/**\n * Unique symbol for indicating that a reference is a variable on the scope,\n * not an object property.\n */\nInterpreter.SCOPE_REFERENCE = { SCOPE_REFERENCE: true };\n\n/**\n * Unique symbol for indicating, when used as the value of the value\n * parameter in calls to setProperty and friends, that the value\n * should be taken from the property descriptor instead.\n */\nInterpreter.VALUE_IN_DESCRIPTOR = /** @type {!Interpreter.Value} */ ({\n VALUE_IN_DESCRIPTOR: true,\n});\n\n/**\n * Unique symbol for indicating that a RegExp timeout has occurred in a VM.\n */\nInterpreter.REGEXP_TIMEOUT = { REGEXP_TIMEOUT: true };\n\n/**\n * For cycle detection in array to string and error conversion;\n * see spec bug github.com/tc39/ecma262/issues/289\n * Since this is for atomic actions only, it can be a class property.\n */\nInterpreter.toStringCycles_ = [];\n\n/**\n * Node's vm module, if loaded and required.\n * @type {Object}\n */\nInterpreter.vm = null;\n\n/**\n * Currently executing interpreter. Needed so Interpreter.Object instances\n * can know their environment.\n * @type {Interpreter}\n */\nInterpreter.currentInterpreter_ = null;\n\n/**\n * The global object (`window` in a browser, `global` in node.js) is usually\n * `globalThis`, but older systems use `this`.\n */\nInterpreter.nativeGlobal = typeof globalThis === \"undefined\" ? this : globalThis;\n\n/**\n * Code for executing regular expressions in a thread.\n */\nInterpreter.WORKER_CODE = [\n \"onmessage = function(e) {\",\n \"var result;\",\n \"var data = e.data;\",\n \"switch (data[0]) {\",\n \"case 'split':\",\n // ['split', string, separator, limit]\n \"result = data[1].split(data[2], data[3]);\",\n \"break;\",\n \"case 'match':\",\n // ['match', string, regexp]\n \"result = data[1].match(data[2]);\",\n \"break;\",\n \"case 'search':\",\n // ['search', string, regexp]\n \"result = data[1].search(data[2]);\",\n \"break;\",\n \"case 'replace':\",\n // ['replace', string, regexp, newSubstr]\n \"result = data[1].replace(data[2], data[3]);\",\n \"break;\",\n \"case 'exec':\",\n // ['exec', regexp, lastIndex, string]\n \"var regexp = data[1];\",\n \"regexp.lastIndex = data[2];\",\n \"result = [regexp.exec(data[3]), data[1].lastIndex];\",\n \"break;\",\n \"default:\",\n \"throw Error('Unknown RegExp operation: ' + data[0]);\",\n \"}\",\n \"postMessage(result);\",\n \"close();\",\n \"};\",\n];\n\n/**\n * Is a value a legal integer for an array length?\n * @param {Interpreter.Value} x Value to check.\n * @returns {number} Zero, or a positive integer if the value can be\n * converted to such. NaN otherwise.\n */\nInterpreter.legalArrayLength = function (x) {\n var n = x >>> 0;\n // Array length must be between 0 and 2^32-1 (inclusive).\n return n === Number(x) ? n : NaN;\n};\n\n/**\n * Is a value a legal integer for an array index?\n * @param {Interpreter.Value} x Value to check.\n * @returns {number} Zero, or a positive integer if the value can be\n * converted to such. NaN otherwise.\n */\nInterpreter.legalArrayIndex = function (x) {\n var n = x >>> 0;\n // Array index cannot be 2^32-1, otherwise length would be 2^32.\n // 0xffffffff is 2^32-1.\n return String(n) === String(x) && n !== 0xffffffff ? n : NaN;\n};\n\n/**\n * Remove start and end values from AST, or set start and end values to a\n * constant value. Used to remove highlighting from polyfills and to set\n * highlighting in an eval to cover the entire eval expression.\n * @param {!Object} node AST node.\n * @param {number=} start Starting character of all nodes, or undefined.\n * @param {number=} end Ending character of all nodes, or undefined.\n * @private\n */\nInterpreter.stripLocations_ = function (node, start, end) {\n if (start) {\n node.start = start;\n } else {\n delete node.start;\n }\n if (end) {\n node.end = end;\n } else {\n delete node.end;\n }\n for (var name in node) {\n if (name !== \"loc\" && node.hasOwnProperty(name)) {\n var prop = node[name];\n if (prop && typeof prop === \"object\") {\n Interpreter.stripLocations_(/** @type {!Object} */ (prop), start, end);\n }\n }\n }\n};\n\n/**\n * Some pathological regular expressions can take geometric time.\n * Regular expressions are handled in one of three ways:\n * 0 - throw as invalid.\n * 1 - execute natively (risk of unresponsive program).\n * 2 - execute in separate thread (not supported by IE 9).\n */\nInterpreter.prototype[\"REGEXP_MODE\"] = 2;\n\n/**\n * If REGEXP_MODE = 2, the length of time (in ms) to allow a RegExp\n * thread to execute before terminating it.\n */\nInterpreter.prototype[\"REGEXP_THREAD_TIMEOUT\"] = 1000;\n\n/**\n * Length of time (in ms) to allow a polyfill to run before ending step.\n * If set to 0, polyfills will execute step by step.\n * If set to 1000, polyfills will run for up to a second per step\n * (execution will resume in the polyfill in the next step).\n * If set to Infinity, polyfills will run to completion in a single step.\n */\nInterpreter.prototype[\"POLYFILL_TIMEOUT\"] = 1000;\n\n/**\n * Flag indicating that a getter function needs to be called immediately.\n * @private\n */\nInterpreter.prototype.getterStep_ = false;\n\n/**\n * Flag indicating that a setter function needs to be called immediately.\n * @private\n */\nInterpreter.prototype.setterStep_ = false;\n\n/**\n * Number of code chunks appended to the interpreter.\n * @private\n */\nInterpreter.prototype.appendCodeNumber_ = 0;\n\n/**\n * Number of parsed tasks.\n * @private\n */\nInterpreter.prototype.taskCodeNumber_ = 0;\n\n/**\n * Parse JavaScript code into an AST using Acorn.\n * @param {string} code Raw JavaScript text.\n * @param {string} sourceFile Name of filename (for stack trace).\n * @returns {!Object} AST.\n * @private\n */\nInterpreter.prototype.parse_ = function (code, sourceFile) {\n // Create a new options object, since Acorn will modify this object.\n // Inheritance can't be used since Acorn uses hasOwnProperty.\n // Object.assign can't be used since that's ES6.\n var options = {};\n for (var name in Interpreter.PARSE_OPTIONS) {\n options[name] = Interpreter.PARSE_OPTIONS[name];\n }\n options.sourceFile = sourceFile;\n return acorn.parse(code, options);\n};\n\n/**\n * Add more code to the interpreter.\n * @param {string|!Object} code Raw JavaScript text or AST.\n */\nInterpreter.prototype.appendCode = function (code) {\n var state = this.stateStack[0];\n if (!state || state.node.type !== \"Program\") {\n throw Error(\"Expecting original AST to start with a Program node\");\n }\n if (typeof code === \"string\") {\n code = this.parse_(code, \"appendCode\" + this.appendCodeNumber_++);\n }\n if (!code || code.type !== \"Program\") {\n throw Error(\"Expecting new AST to start with a Program node\");\n }\n this.populateScope_(code, state.scope);\n // Append the new program to the old one.\n Array.prototype.push.apply(state.node.body, code.body);\n state.node.body.variableCache_ = null;\n state.done = false;\n};\n\n/**\n * Execute one step of the interpreter.\n * @returns {boolean} True if a step was executed, false if no more instructions.\n */\nInterpreter.prototype.step = function () {\n var stack = this.stateStack;\n var endTime;\n do {\n var state = stack[stack.length - 1];\n if (this.paused_) {\n // Blocked by an asynchronous function.\n return true;\n } else if (!state || (state.node.type === \"Program\" && state.done)) {\n if (!this.tasks.length) {\n // Main program complete and no queued tasks. We're done!\n return false;\n }\n state = this.nextTask_();\n if (!state) {\n // Main program complete, queued tasks, but nothing to run right now.\n return true;\n }\n // Found a queued task, execute it.\n }\n var node = state.node;\n // Record the interpreter in a global property so calls to toString/valueOf\n // can execute in the proper context.\n var oldInterpreterValue = Interpreter.currentInterpreter_;\n Interpreter.currentInterpreter_ = this;\n try {\n var nextState = this.stepFunctions_[node.type](stack, state, node);\n } catch (e) {\n // Eat any step errors. They have been thrown on the stack.\n if (e !== Interpreter.STEP_ERROR) {\n // This is a real error, either in the JS-Interpreter, or an uncaught\n // error in the interpreted code. Rethrow.\n if (this.value !== e) {\n // Uh oh. Internal error in the JS-Interpreter.\n this.value = undefined;\n }\n throw e;\n }\n } finally {\n // Restore to previous value (probably null, maybe nested toString calls).\n Interpreter.currentInterpreter_ = oldInterpreterValue;\n }\n if (nextState) {\n stack.push(nextState);\n }\n if (this.getterStep_) {\n // Getter from this step was not handled.\n this.value = undefined;\n throw Error(\"Getter not supported in this context\");\n }\n if (this.setterStep_) {\n // Setter from this step was not handled.\n this.value = undefined;\n throw Error(\"Setter not supported in this context\");\n }\n // This may be polyfill code. Keep executing until we arrive at user code.\n if (!endTime && !node.end) {\n // Ideally this would be defined at the top of the function, but that\n // wastes time if the step isn't a polyfill.\n endTime = Date.now() + this[\"POLYFILL_TIMEOUT\"];\n }\n } while (!node.end && endTime > Date.now());\n return true;\n};\n\n/**\n * Execute the interpreter to program completion. Vulnerable to infinite loops.\n * @returns {boolean} True if a execution is asynchronously blocked,\n * false if no more instructions.\n */\nInterpreter.prototype.run = function () {\n while (!this.paused_ && this.step()) {}\n return this.paused_;\n};\n\n/**\n * Current status of the interpreter.\n * @returns {Interpreter.Status} One of DONE, STEP, TASK, or ASYNC.\n */\nInterpreter.prototype.getStatus = function () {\n if (this.paused_) {\n return Interpreter.Status[\"ASYNC\"];\n }\n var stack = this.stateStack;\n var state = stack[stack.length - 1];\n if (state && (state.node.type !== \"Program\" || !state.done)) {\n // There's a step ready to execute.\n return Interpreter.Status[\"STEP\"];\n }\n var task = this.tasks[0];\n if (task) {\n if (task.time > Date.now()) {\n // There's a pending task, but it's not ready.\n return Interpreter.Status[\"TASK\"];\n }\n // There's a task ready to execute.\n return Interpreter.Status[\"STEP\"];\n }\n return Interpreter.Status[\"DONE\"];\n};\n\n/**\n * Initialize the global object with built-in properties and functions.\n * @param {!Interpreter.Object} globalObject Global object.\n */\nInterpreter.prototype.initGlobal = function (globalObject) {\n // Initialize uneditable global properties.\n this.setProperty(\n globalObject,\n \"NaN\",\n NaN,\n Interpreter.NONCONFIGURABLE_READONLY_NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(\n globalObject,\n \"Infinity\",\n Infinity,\n Interpreter.NONCONFIGURABLE_READONLY_NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(\n globalObject,\n \"undefined\",\n undefined,\n Interpreter.NONCONFIGURABLE_READONLY_NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(globalObject, \"window\", globalObject, Interpreter.READONLY_DESCRIPTOR);\n this.setProperty(\n globalObject,\n \"this\",\n globalObject,\n Interpreter.NONCONFIGURABLE_READONLY_NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(globalObject, \"self\", globalObject); // Editable.\n\n // Create the objects which will become Object.prototype and\n // Function.prototype, which are needed to bootstrap everything else.\n this.OBJECT_PROTO = new Interpreter.Object(null);\n this.FUNCTION_PROTO = new Interpreter.Object(this.OBJECT_PROTO);\n // Initialize global objects.\n this.initFunction(globalObject);\n this.initObject(globalObject);\n // Unable to set globalObject's parent prior (OBJECT did not exist).\n // Note that in a browser this would be `Window`, whereas in Node.js it would\n // be `Object`. This interpreter is closer to Node in that it has no DOM.\n globalObject.proto = this.OBJECT_PROTO;\n this.setProperty(globalObject, \"constructor\", this.OBJECT, Interpreter.NONENUMERABLE_DESCRIPTOR);\n this.initArray(globalObject);\n this.initString(globalObject);\n this.initBoolean(globalObject);\n this.initNumber(globalObject);\n this.initDate(globalObject);\n this.initRegExp(globalObject);\n this.initError(globalObject);\n this.initMath(globalObject);\n this.initJSON(globalObject);\n\n // Initialize global functions.\n var thisInterpreter = this;\n var wrapper;\n var func = this.createNativeFunction(function (_x) {\n throw EvalError(\"Can't happen\");\n }, false);\n func.eval = true;\n this.setProperty(globalObject, \"eval\", func, Interpreter.NONENUMERABLE_DESCRIPTOR);\n\n this.setProperty(\n globalObject,\n \"parseInt\",\n this.createNativeFunction(parseInt, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(\n globalObject,\n \"parseFloat\",\n this.createNativeFunction(parseFloat, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n this.setProperty(\n globalObject,\n \"isNaN\",\n this.createNativeFunction(isNaN, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n this.setProperty(\n globalObject,\n \"isFinite\",\n this.createNativeFunction(isFinite, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n var strFunctions = [\n [escape, \"escape\"],\n [unescape, \"unescape\"],\n [decodeURI, \"decodeURI\"],\n [decodeURIComponent, \"decodeURIComponent\"],\n [encodeURI, \"encodeURI\"],\n [encodeURIComponent, \"encodeURIComponent\"],\n ];\n for (var i = 0; i < strFunctions.length; i++) {\n wrapper = (function (nativeFunc) {\n return function (str) {\n try {\n return nativeFunc(str);\n } catch (e) {\n // decodeURI('%xy') will throw an error. Catch and rethrow.\n thisInterpreter.throwException(thisInterpreter.URI_ERROR, e.message);\n }\n };\n })(strFunctions[i][0]);\n this.setProperty(\n globalObject,\n strFunctions[i][1],\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n }\n\n wrapper = function setTimeout(var_args) {\n return thisInterpreter.createTask_(false, arguments);\n };\n this.setProperty(\n globalObject,\n \"setTimeout\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n wrapper = function setInterval(var_args) {\n return thisInterpreter.createTask_(true, arguments);\n };\n this.setProperty(\n globalObject,\n \"setInterval\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n wrapper = function clearTimeout(pid) {\n thisInterpreter.deleteTask_(pid);\n };\n this.setProperty(\n globalObject,\n \"clearTimeout\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n wrapper = function clearInterval(pid) {\n thisInterpreter.deleteTask_(pid);\n };\n this.setProperty(\n globalObject,\n \"clearInterval\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n // Preserve public properties from being pruned/renamed by JS compilers.\n // Add others as needed.\n this[\"OBJECT\"] = this.OBJECT;\n this[\"OBJECT_PROTO\"] = this.OBJECT_PROTO;\n this[\"FUNCTION\"] = this.FUNCTION;\n this[\"FUNCTION_PROTO\"] = this.FUNCTION_PROTO;\n this[\"ARRAY\"] = this.ARRAY;\n this[\"ARRAY_PROTO\"] = this.ARRAY_PROTO;\n this[\"REGEXP\"] = this.REGEXP;\n this[\"REGEXP_PROTO\"] = this.REGEXP_PROTO;\n this[\"DATE\"] = this.DATE;\n this[\"DATE_PROTO\"] = this.DATE_PROTO;\n\n // Run any user-provided initialization.\n if (this.initFunc_) {\n this.initFunc_(this, globalObject);\n }\n};\n\n/**\n * Number of functions created by the interpreter.\n * @private\n */\nInterpreter.prototype.functionCodeNumber_ = 0;\n\n/**\n * Initialize the Function class.\n * @param {!Interpreter.Object} globalObject Global object.\n */\nInterpreter.prototype.initFunction = function (globalObject) {\n var thisInterpreter = this;\n var wrapper;\n var identifierRegexp = /^[A-Za-z_$][\\w$]*$/;\n // Function constructor.\n wrapper = function Function(var_args) {\n if (arguments.length) {\n var code = String(arguments[arguments.length - 1]);\n } else {\n var code = \"\";\n }\n var argsStr = Array.prototype.slice.call(arguments, 0, -1).join(\",\").trim();\n if (argsStr) {\n var args = argsStr.split(/\\s*,\\s*/);\n for (var i = 0; i < args.length; i++) {\n var name = args[i];\n if (!identifierRegexp.test(name)) {\n thisInterpreter.throwException(\n thisInterpreter.SYNTAX_ERROR,\n \"Invalid function argument: \" + name\n );\n }\n }\n argsStr = args.join(\", \");\n }\n // Acorn needs to parse code in the context of a function or else `return`\n // statements will be syntax errors.\n try {\n var ast = thisInterpreter.parse_(\n \"(function(\" + argsStr + \") {\" + code + \"})\",\n \"function\" + thisInterpreter.functionCodeNumber_++\n );\n } catch (e) {\n // Acorn threw a SyntaxError. Rethrow as a trappable error.\n thisInterpreter.throwException(thisInterpreter.SYNTAX_ERROR, \"Invalid code: \" + e.message);\n }\n if (ast.body.length !== 1) {\n // Function('a', 'return a + 6;}; {alert(1);');\n thisInterpreter.throwException(thisInterpreter.SYNTAX_ERROR, \"Invalid code in function body\");\n }\n var node = ast.body[0].expression;\n // Note that if this constructor is called as `new Function()` the function\n // object created by stepCallExpression and assigned to `this` is discarded.\n // Interestingly, the scope for constructed functions is the global scope,\n // even if they were constructed in some other scope.\n return thisInterpreter.createFunction(node, thisInterpreter.globalScope, \"anonymous\");\n };\n this.FUNCTION = this.createNativeFunction(wrapper, true);\n\n this.setProperty(globalObject, \"Function\", this.FUNCTION, Interpreter.NONENUMERABLE_DESCRIPTOR);\n // Throw away the created prototype and use the root prototype.\n this.setProperty(\n this.FUNCTION,\n \"prototype\",\n this.FUNCTION_PROTO,\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n // Configure Function.prototype.\n this.setProperty(\n this.FUNCTION_PROTO,\n \"constructor\",\n this.FUNCTION,\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n this.FUNCTION_PROTO.nativeFunc = function () {};\n this.FUNCTION_PROTO.nativeFunc.id = this.functionCounter_++;\n this.FUNCTION_PROTO.illegalConstructor = true;\n this.setProperty(this.FUNCTION_PROTO, \"length\", 0, Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR);\n this.FUNCTION_PROTO.class = \"Function\";\n\n wrapper = function apply(thisArg, args) {\n var state = thisInterpreter.stateStack[thisInterpreter.stateStack.length - 1];\n // Rewrite the current CallExpression state to apply a different function.\n state.func_ = this;\n // Assign the `this` object.\n state.funcThis_ = thisArg;\n // Bind any provided arguments.\n state.arguments_ = [];\n if (args !== null && args !== undefined) {\n if (args instanceof Interpreter.Object) {\n state.arguments_ = thisInterpreter.arrayPseudoToNative(args);\n } else {\n thisInterpreter.throwException(\n thisInterpreter.TYPE_ERROR,\n \"CreateListFromArrayLike called on non-object\"\n );\n }\n }\n state.doneExec_ = false;\n };\n this.setNativeFunctionPrototype(this.FUNCTION, \"apply\", wrapper);\n\n wrapper = function call(thisArg /*, var_args */) {\n var state = thisInterpreter.stateStack[thisInterpreter.stateStack.length - 1];\n // Rewrite the current CallExpression state to call a different function.\n state.func_ = this;\n // Assign the `this` object.\n state.funcThis_ = thisArg;\n // Bind any provided arguments.\n state.arguments_ = [];\n for (var i = 1; i < arguments.length; i++) {\n state.arguments_.push(arguments[i]);\n }\n state.doneExec_ = false;\n };\n this.setNativeFunctionPrototype(this.FUNCTION, \"call\", wrapper);\n\n this.polyfills_.push(\n // Polyfill copied from:\n // developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind\n \"Object.defineProperty(Function.prototype, 'bind',\",\n \"{configurable: true, writable: true, value:\",\n \"function bind(oThis) {\",\n \"if (typeof this !== 'function') {\",\n \"throw TypeError('What is trying to be bound is not callable');\",\n \"}\",\n \"var aArgs = Array.prototype.slice.call(arguments, 1),\",\n \"fToBind = this,\",\n \"fNOP = function() {},\",\n \"fBound = function() {\",\n \"return fToBind.apply(this instanceof fNOP\",\n \"? this\",\n \": oThis,\",\n \"aArgs.concat(Array.prototype.slice.call(arguments)));\",\n \"};\",\n \"if (this.prototype) {\",\n \"fNOP.prototype = this.prototype;\",\n \"}\",\n \"fBound.prototype = new fNOP();\",\n \"return fBound;\",\n \"}\",\n \"});\",\n \"\"\n );\n\n // Function has no parent to inherit from, so it needs its own mandatory\n // toString and valueOf functions.\n wrapper = function toString() {\n return String(this);\n };\n this.setNativeFunctionPrototype(this.FUNCTION, \"toString\", wrapper);\n this.setProperty(\n this.FUNCTION,\n \"toString\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n wrapper = function valueOf() {\n return this.valueOf();\n };\n this.setNativeFunctionPrototype(this.FUNCTION, \"valueOf\", wrapper);\n this.setProperty(\n this.FUNCTION,\n \"valueOf\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n};\n\n/**\n * Initialize the Object class.\n * @param {!Interpreter.Object} globalObject Global object.\n */\nInterpreter.prototype.initObject = function (globalObject) {\n var thisInterpreter = this;\n var wrapper;\n // Object constructor.\n wrapper = function Object(value) {\n if (value === undefined || value === null) {\n // Create a new object.\n if (thisInterpreter.calledWithNew()) {\n // Called as `new Object()`.\n return this;\n } else {\n // Called as `Object()`.\n return thisInterpreter.createObjectProto(thisInterpreter.OBJECT_PROTO);\n }\n }\n if (!(value instanceof Interpreter.Object)) {\n // Wrap the value as an object.\n var box = thisInterpreter.createObjectProto(thisInterpreter.getPrototype(value));\n box.data = value;\n return box;\n }\n // Return the provided object.\n return value;\n };\n this.OBJECT = this.createNativeFunction(wrapper, true);\n // Throw away the created prototype and use the root prototype.\n this.setProperty(\n this.OBJECT,\n \"prototype\",\n this.OBJECT_PROTO,\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(\n this.OBJECT_PROTO,\n \"constructor\",\n this.OBJECT,\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(globalObject, \"Object\", this.OBJECT, Interpreter.NONENUMERABLE_DESCRIPTOR);\n\n /**\n * Checks if the provided value is null or undefined.\n * If so, then throw an error in the call stack.\n * @param {Interpreter.Value} value Value to check.\n */\n var throwIfNullUndefined = function (value) {\n if (value === undefined || value === null) {\n thisInterpreter.throwException(\n thisInterpreter.TYPE_ERROR,\n \"Cannot convert '\" + value + \"' to object\"\n );\n }\n };\n\n // Static methods on Object.\n wrapper = function getOwnPropertyNames(obj) {\n throwIfNullUndefined(obj);\n var props = obj instanceof Interpreter.Object ? obj.properties : obj;\n return thisInterpreter.arrayNativeToPseudo(Object.getOwnPropertyNames(props));\n };\n this.setProperty(\n this.OBJECT,\n \"getOwnPropertyNames\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n wrapper = function keys(obj) {\n throwIfNullUndefined(obj);\n if (obj instanceof Interpreter.Object) {\n obj = obj.properties;\n }\n return thisInterpreter.arrayNativeToPseudo(Object.keys(obj));\n };\n this.setProperty(\n this.OBJECT,\n \"keys\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n wrapper = function create_(proto) {\n // Support for the second argument is the responsibility of a polyfill.\n if (proto === null) {\n return thisInterpreter.createObjectProto(null);\n }\n if (!(proto instanceof Interpreter.Object)) {\n thisInterpreter.throwException(\n thisInterpreter.TYPE_ERROR,\n \"Object prototype may only be an Object or null, not \" + proto\n );\n }\n return thisInterpreter.createObjectProto(proto);\n };\n this.setProperty(\n this.OBJECT,\n \"create\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n // Add a polyfill to handle create's second argument.\n this.polyfills_.push(\n \"(function() {\",\n \"var create_ = Object.create;\",\n \"Object.create = function create(proto, props) {\",\n \"var obj = create_(proto);\",\n \"props && Object.defineProperties(obj, props);\",\n \"return obj;\",\n \"};\",\n \"})();\",\n \"\"\n );\n\n wrapper = function defineProperty(obj, prop, descriptor) {\n prop = String(prop);\n if (!(obj instanceof Interpreter.Object)) {\n thisInterpreter.throwException(\n thisInterpreter.TYPE_ERROR,\n \"Object.defineProperty called on non-object: \" + obj\n );\n }\n if (!(descriptor instanceof Interpreter.Object)) {\n thisInterpreter.throwException(\n thisInterpreter.TYPE_ERROR,\n \"Property description must be an object\"\n );\n }\n if (obj.preventExtensions && !(prop in obj.properties)) {\n thisInterpreter.throwException(\n thisInterpreter.TYPE_ERROR,\n \"Can't define property '\" + prop + \"', object is not extensible\"\n );\n }\n // The polyfill guarantees no inheritance and no getter functions.\n // Therefore the descriptor properties map is the native object needed.\n thisInterpreter.setProperty(obj, prop, Interpreter.VALUE_IN_DESCRIPTOR, descriptor.properties);\n return obj;\n };\n this.setProperty(\n this.OBJECT,\n \"defineProperty\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n this.polyfills_.push(\n // Flatten the descriptor to remove any inheritance or getter functions.\n \"(function() {\",\n \"var defineProperty_ = Object.defineProperty;\",\n \"Object.defineProperty = function defineProperty(obj, prop, d1) {\",\n \"var d2 = {};\",\n \"if ('configurable' in d1) d2.configurable = d1.configurable;\",\n \"if ('enumerable' in d1) d2.enumerable = d1.enumerable;\",\n \"if ('writable' in d1) d2.writable = d1.writable;\",\n \"if ('value' in d1) d2.value = d1.value;\",\n \"if ('get' in d1) d2.get = d1.get;\",\n \"if ('set' in d1) d2.set = d1.set;\",\n \"return defineProperty_(obj, prop, d2);\",\n \"};\",\n \"})();\",\n\n \"Object.defineProperty(Object, 'defineProperties',\",\n \"{configurable: true, writable: true, value:\",\n \"function defineProperties(obj, props) {\",\n \"var keys = Object.keys(props);\",\n \"for (var i = 0; i < keys.length; i++) {\",\n \"Object.defineProperty(obj, keys[i], props[keys[i]]);\",\n \"}\",\n \"return obj;\",\n \"}\",\n \"});\",\n \"\"\n );\n\n wrapper = function getOwnPropertyDescriptor(obj, prop) {\n if (!(obj instanceof Interpreter.Object)) {\n thisInterpreter.throwException(\n thisInterpreter.TYPE_ERROR,\n \"Object.getOwnPropertyDescriptor called on non-object: \" + obj\n );\n }\n prop = String(prop);\n if (!(prop in obj.properties)) {\n return undefined;\n }\n var descriptor = Object.getOwnPropertyDescriptor(obj.properties, prop);\n var getter = obj.getter[prop];\n var setter = obj.setter[prop];\n\n var pseudoDescriptor = thisInterpreter.createObjectProto(thisInterpreter.OBJECT_PROTO);\n if (getter || setter) {\n thisInterpreter.setProperty(pseudoDescriptor, \"get\", getter);\n thisInterpreter.setProperty(pseudoDescriptor, \"set\", setter);\n } else {\n thisInterpreter.setProperty(\n pseudoDescriptor,\n \"value\",\n /** @type {!Interpreter.Value} */ (descriptor[\"value\"])\n );\n thisInterpreter.setProperty(pseudoDescriptor, \"writable\", descriptor[\"writable\"]);\n }\n thisInterpreter.setProperty(pseudoDescriptor, \"configurable\", descriptor[\"configurable\"]);\n thisInterpreter.setProperty(pseudoDescriptor, \"enumerable\", descriptor[\"enumerable\"]);\n return pseudoDescriptor;\n };\n this.setProperty(\n this.OBJECT,\n \"getOwnPropertyDescriptor\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n wrapper = function getPrototypeOf(obj) {\n throwIfNullUndefined(obj);\n return thisInterpreter.getPrototype(obj);\n };\n this.setProperty(\n this.OBJECT,\n \"getPrototypeOf\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n wrapper = function isExtensible(obj) {\n return Boolean(obj) && !obj.preventExtensions;\n };\n this.setProperty(\n this.OBJECT,\n \"isExtensible\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n wrapper = function preventExtensions(obj) {\n if (obj instanceof Interpreter.Object) {\n obj.preventExtensions = true;\n }\n return obj;\n };\n this.setProperty(\n this.OBJECT,\n \"preventExtensions\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n // Instance methods on Object.\n this.setNativeFunctionPrototype(this.OBJECT, \"toString\", Interpreter.Object.prototype.toString);\n this.setNativeFunctionPrototype(\n this.OBJECT,\n \"toLocaleString\",\n Interpreter.Object.prototype.toString\n );\n this.setNativeFunctionPrototype(this.OBJECT, \"valueOf\", Interpreter.Object.prototype.valueOf);\n\n wrapper = function hasOwnProperty(prop) {\n throwIfNullUndefined(this);\n if (this instanceof Interpreter.Object) {\n return String(prop) in this.properties;\n }\n // Primitive.\n return this.hasOwnProperty(prop);\n };\n this.setNativeFunctionPrototype(this.OBJECT, \"hasOwnProperty\", wrapper);\n\n wrapper = function propertyIsEnumerable(prop) {\n throwIfNullUndefined(this);\n if (this instanceof Interpreter.Object) {\n return Object.prototype.propertyIsEnumerable.call(this.properties, prop);\n }\n // Primitive.\n return this.propertyIsEnumerable(prop);\n };\n this.setNativeFunctionPrototype(this.OBJECT, \"propertyIsEnumerable\", wrapper);\n\n wrapper = function isPrototypeOf(obj) {\n while (true) {\n // Note, circular loops shouldn't be possible.\n obj = thisInterpreter.getPrototype(obj);\n if (!obj) {\n // No parent; reached the top.\n return false;\n }\n if (obj === this) {\n return true;\n }\n }\n };\n this.setNativeFunctionPrototype(this.OBJECT, \"isPrototypeOf\", wrapper);\n};\n\n/**\n * Initialize the Array class.\n * @param {!Interpreter.Object} globalObject Global object.\n */\nInterpreter.prototype.initArray = function (globalObject) {\n var thisInterpreter = this;\n var wrapper;\n // Array constructor.\n wrapper = function Array(var_args) {\n if (thisInterpreter.calledWithNew()) {\n // Called as `new Array()`.\n var newArray = this;\n } else {\n // Called as `Array()`.\n var newArray = thisInterpreter.createArray();\n }\n var first = arguments[0];\n if (arguments.length === 1 && typeof first === \"number\") {\n if (isNaN(Interpreter.legalArrayLength(first))) {\n thisInterpreter.throwException(\n thisInterpreter.RANGE_ERROR,\n \"Invalid array length: \" + first\n );\n }\n newArray.properties.length = first;\n } else {\n for (var i = 0; i < arguments.length; i++) {\n newArray.properties[i] = arguments[i];\n }\n newArray.properties.length = i;\n }\n return newArray;\n };\n this.ARRAY = this.createNativeFunction(wrapper, true);\n this.ARRAY_PROTO = this.ARRAY.properties[\"prototype\"];\n this.setProperty(globalObject, \"Array\", this.ARRAY, Interpreter.NONENUMERABLE_DESCRIPTOR);\n\n // Static methods on Array.\n wrapper = function isArray(obj) {\n return obj && obj.class === \"Array\";\n };\n this.setProperty(\n this.ARRAY,\n \"isArray\",\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n // Instance methods on Array.\n this.setProperty(this.ARRAY_PROTO, \"length\", 0, {\n configurable: false,\n enumerable: false,\n writable: true,\n });\n this.ARRAY_PROTO.class = \"Array\";\n\n this.polyfills_.push(\n \"(function() {\",\n \"function createArrayMethod_(f) {\",\n \"Object.defineProperty(Array.prototype, f.name,\",\n \"{configurable: true, writable: true, value: f});\",\n \"}\",\n\n \"createArrayMethod_(\",\n \"function pop() {\",\n \"if (!this) throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"if (!len || len < 0) {\",\n \"o.length = 0;\",\n \"return undefined;\",\n \"}\",\n \"len--;\",\n \"var x = o[len];\",\n \"delete o[len];\", // Needed for non-arrays.\n \"o.length = len;\",\n \"return x;\",\n \"}\",\n \");\",\n\n \"createArrayMethod_(\",\n \"function push(var_args) {\",\n \"if (!this) throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"for (var i = 0; i < arguments.length; i++) {\",\n \"o[len] = arguments[i];\",\n \"len++;\",\n \"}\",\n \"o.length = len;\",\n \"return len;\",\n \"}\",\n \");\",\n\n \"createArrayMethod_(\",\n \"function shift() {\",\n \"if (!this) throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"if (!len || len < 0) {\",\n \"o.length = 0;\",\n \"return undefined;\",\n \"}\",\n \"var value = o[0];\",\n \"for (var i = 0; i < len - 1; i++) {\",\n \"if ((i + 1) in o) {\",\n \"o[i] = o[i + 1];\",\n \"} else {\",\n \"delete o[i];\",\n \"}\",\n \"}\",\n \"delete o[i];\", // Needed for non-arrays.\n \"o.length = len - 1;\",\n \"return value;\",\n \"}\",\n \");\",\n\n \"createArrayMethod_(\",\n \"function unshift(var_args) {\",\n \"if (!this) throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"if (!len || len < 0) {\",\n \"len = 0;\",\n \"}\",\n \"for (var i = len - 1; i >= 0; i--) {\",\n \"if (i in o) {\",\n \"o[i + arguments.length] = o[i];\",\n \"} else {\",\n \"delete o[i + arguments.length];\",\n \"}\",\n \"}\",\n \"for (var i = 0; i < arguments.length; i++) {\",\n \"o[i] = arguments[i];\",\n \"}\",\n \"return (o.length = len + arguments.length);\",\n \"}\",\n \");\",\n\n \"createArrayMethod_(\",\n \"function reverse() {\",\n \"if (!this) throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"if (!len || len < 2) {\",\n \"return o;\", // Not an array, or too short to reverse.\n \"}\",\n \"for (var i = 0; i < len / 2 - 0.5; i++) {\",\n \"var x = o[i];\",\n \"var hasX = i in o;\",\n \"if ((len - i - 1) in o) {\",\n \"o[i] = o[len - i - 1];\",\n \"} else {\",\n \"delete o[i];\",\n \"}\",\n \"if (hasX) {\",\n \"o[len - i - 1] = x;\",\n \"} else {\",\n \"delete o[len - i - 1];\",\n \"}\",\n \"}\",\n \"return o;\",\n \"}\",\n \");\",\n\n \"createArrayMethod_(\",\n \"function indexOf(searchElement, fromIndex) {\",\n \"if (!this) throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"var n = fromIndex | 0;\",\n \"if (!len || n >= len) {\",\n \"return -1;\",\n \"}\",\n \"var i = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\",\n \"while (i < len) {\",\n \"if (i in o && o[i] === searchElement) {\",\n \"return i;\",\n \"}\",\n \"i++;\",\n \"}\",\n \"return -1;\",\n \"}\",\n \");\",\n\n \"createArrayMethod_(\",\n \"function lastIndexOf(searchElement, fromIndex) {\",\n \"if (!this) throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"if (!len) {\",\n \"return -1;\",\n \"}\",\n \"var n = len - 1;\",\n \"if (arguments.length > 1) {\",\n \"n = fromIndex | 0;\",\n \"if (n) {\",\n \"n = (n > 0 || -1) * Math.floor(Math.abs(n));\",\n \"}\",\n \"}\",\n \"var i = n >= 0 ? Math.min(n, len - 1) : len - Math.abs(n);\",\n \"while (i >= 0) {\",\n \"if (i in o && o[i] === searchElement) {\",\n \"return i;\",\n \"}\",\n \"i--;\",\n \"}\",\n \"return -1;\",\n \"}\",\n \");\",\n\n \"createArrayMethod_(\",\n \"function slice(start, end) {\",\n \"if (!this) throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n // Handle negative value for \"start\"\n \"start |= 0;\",\n \"start = (start >= 0) ? start : Math.max(0, len + start);\",\n // Handle negative value for \"end\"\n \"if (typeof end !== 'undefined') {\",\n \"if (end !== Infinity) {\",\n \"end |= 0;\",\n \"}\",\n \"if (end < 0) {\",\n \"end = len + end;\",\n \"} else {\",\n \"end = Math.min(end, len);\",\n \"}\",\n \"} else {\",\n \"end = len;\",\n \"}\",\n \"var size = end - start;\",\n \"var cloned = new Array(size);\",\n \"for (var i = 0; i < size; i++) {\",\n \"if ((start + i) in o) {\",\n \"cloned[i] = o[start + i];\",\n \"}\",\n \"}\",\n \"return cloned;\",\n \"}\",\n \");\",\n\n \"createArrayMethod_(\",\n \"function splice(start, deleteCount, var_args) {\",\n \"if (!this) throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"start |= 0;\",\n \"if (start < 0) {\",\n \"start = Math.max(len + start, 0);\",\n \"} else {\",\n \"start = Math.min(start, len);\",\n \"}\",\n \"if (arguments.length < 1) {\",\n \"deleteCount = len - start;\",\n \"} else {\",\n \"deleteCount |= 0;\",\n \"deleteCount = Math.max(0, Math.min(deleteCount, len - start));\",\n \"}\",\n \"var removed = [];\",\n // Remove specified elements.\n \"for (var i = start; i < start + deleteCount; i++) {\",\n \"if (i in o) {\",\n \"removed.push(o[i]);\",\n \"} else {\",\n \"removed.length++;\",\n \"}\",\n \"if ((i + deleteCount) in o) {\",\n \"o[i] = o[i + deleteCount];\",\n \"} else {\",\n \"delete o[i];\",\n \"}\",\n \"}\",\n // Move other element to fill the gap.\n \"for (var i = start + deleteCount; i < len - deleteCount; i++) {\",\n \"if ((i + deleteCount) in o) {\",\n \"o[i] = o[i + deleteCount];\",\n \"} else {\",\n \"delete o[i];\",\n \"}\",\n \"}\",\n // Delete superfluous properties.\n \"for (var i = len - deleteCount; i < len; i++) {\",\n \"delete o[i];\",\n \"}\",\n \"len -= deleteCount;\",\n // Insert specified items.\n \"var arl = arguments.length - 2;\",\n \"for (var i = len - 1; i >= start; i--) {\",\n \"if (i in o) {\",\n \"o[i + arl] = o[i];\",\n \"} else {\",\n \"delete o[i + arl];\",\n \"}\",\n \"}\",\n \"len += arl;\",\n \"for (var i = 2; i < arguments.length; i++) {\",\n \"o[start + i - 2] = arguments[i];\",\n \"}\",\n \"o.length = len;\",\n \"return removed;\",\n \"}\",\n \");\",\n\n \"createArrayMethod_(\",\n \"function concat(var_args) {\",\n \"if (!this) throw TypeError();\",\n \"var o = Object(this);\",\n \"var cloned = [];\",\n \"for (var i = -1; i < arguments.length; i++) {\",\n \"var value = (i === -1) ? o : arguments[i];\",\n \"if (Array.isArray(value)) {\",\n \"for (var j = 0, l = value.length; j < l; j++) {\",\n \"if (j in value) {\",\n \"cloned.push(value[j]);\",\n \"} else {\",\n \"cloned.length++;\",\n \"}\",\n \"}\",\n \"} else {\",\n \"cloned.push(value);\",\n \"}\",\n \"}\",\n \"return cloned;\",\n \"}\",\n \");\",\n\n \"createArrayMethod_(\",\n \"function join(opt_separator) {\",\n \"if (!this) throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"var sep = typeof opt_separator === 'undefined' ?\",\n \"',' : ('' + opt_separator);\",\n \"var str = '';\",\n \"for (var i = 0; i < len; i++) {\",\n \"if (i && sep) str += sep;\",\n \"str += (o[i] === null || o[i] === undefined) ? '' : o[i];\",\n \"}\",\n \"return str;\",\n \"}\",\n \");\",\n\n // Polyfill copied from:\n // developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/every\n \"createArrayMethod_(\",\n \"function every(callbackfn, thisArg) {\",\n \"if (!this || typeof callbackfn !== 'function') throw TypeError();\",\n \"var t, k = 0;\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"if (arguments.length > 1) t = thisArg;\",\n \"while (k < len) {\",\n \"if (k in o && !callbackfn.call(t, o[k], k, o)) return false;\",\n \"k++;\",\n \"}\",\n \"return true;\",\n \"}\",\n \");\",\n\n // Polyfill copied from:\n // developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter\n \"createArrayMethod_(\",\n \"function filter(fun, var_args) {\",\n \"if (this === void 0 || this === null || typeof fun !== 'function') throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"var res = [];\",\n \"var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\",\n \"for (var i = 0; i < len; i++) {\",\n \"if (i in o) {\",\n \"var val = o[i];\",\n \"if (fun.call(thisArg, val, i, o)) res.push(val);\",\n \"}\",\n \"}\",\n \"return res;\",\n \"}\",\n \");\",\n\n // Polyfill copied from:\n // developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach\n \"createArrayMethod_(\",\n \"function forEach(callback, thisArg) {\",\n \"if (!this || typeof callback !== 'function') throw TypeError();\",\n \"var t, k = 0;\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"if (arguments.length > 1) t = thisArg;\",\n \"while (k < len) {\",\n \"if (k in o) callback.call(t, o[k], k, o);\",\n \"k++;\",\n \"}\",\n \"}\",\n \");\",\n\n // Polyfill copied from:\n // developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map\n \"createArrayMethod_(\",\n \"function map(callback, thisArg) {\",\n \"if (!this || typeof callback !== 'function') throw TypeError();\",\n \"var t, k = 0;\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"if (arguments.length > 1) t = thisArg;\",\n \"var a = new Array(len);\",\n \"while (k < len) {\",\n \"if (k in o) a[k] = callback.call(t, o[k], k, o);\",\n \"k++;\",\n \"}\",\n \"return a;\",\n \"}\",\n \");\",\n\n // Polyfill copied from:\n // developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce\n \"createArrayMethod_(\",\n \"function reduce(callback /*, initialValue*/) {\",\n \"if (!this || typeof callback !== 'function') throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"var k = 0, value;\",\n \"if (arguments.length === 2) {\",\n \"value = arguments[1];\",\n \"} else {\",\n \"while (k < len && !(k in o)) k++;\",\n \"if (k >= len) {\",\n \"throw TypeError('Reduce of empty array with no initial value');\",\n \"}\",\n \"value = o[k++];\",\n \"}\",\n \"for (; k < len; k++) {\",\n \"if (k in o) value = callback(value, o[k], k, o);\",\n \"}\",\n \"return value;\",\n \"}\",\n \");\",\n\n // Polyfill copied from:\n // developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight\n \"createArrayMethod_(\",\n \"function reduceRight(callback /*, initialValue*/) {\",\n \"if (null === this || 'undefined' === typeof this || 'function' !== typeof callback) throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"var k = len - 1, value;\",\n \"if (arguments.length >= 2) {\",\n \"value = arguments[1];\",\n \"} else {\",\n \"while (k >= 0 && !(k in o)) k--;\",\n \"if (k < 0) {\",\n \"throw TypeError('Reduce of empty array with no initial value');\",\n \"}\",\n \"value = o[k--];\",\n \"}\",\n \"for (; k >= 0; k--) {\",\n \"if (k in o) value = callback(value, o[k], k, o);\",\n \"}\",\n \"return value;\",\n \"}\",\n \");\",\n\n // Polyfill copied from:\n // developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/some\n \"createArrayMethod_(\",\n \"function some(fun/*, thisArg*/) {\",\n \"if (!this || typeof fun !== 'function') throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\",\n \"for (var i = 0; i < len; i++) {\",\n \"if (i in o && fun.call(thisArg, o[i], i, o)) return true;\",\n \"}\",\n \"return false;\",\n \"}\",\n \");\",\n\n \"createArrayMethod_(\",\n \"function sort(opt_comp) {\", // Bubble sort!\n \"if (!this) throw TypeError();\",\n \"if (typeof opt_comp !== 'function') {\",\n \"opt_comp = undefined;\",\n \"}\",\n \"for (var i = 0; i < this.length; i++) {\",\n \"var changes = 0;\",\n \"for (var j = 0; j < this.length - i - 1; j++) {\",\n \"if (opt_comp ? (opt_comp(this[j], this[j + 1]) > 0) :\",\n \"(String(this[j]) > String(this[j + 1]))) {\",\n \"var swap = this[j];\",\n \"var hasSwap = j in this;\",\n \"if ((j + 1) in this) {\",\n \"this[j] = this[j + 1];\",\n \"} else {\",\n \"delete this[j];\",\n \"}\",\n \"if (hasSwap) {\",\n \"this[j + 1] = swap;\",\n \"} else {\",\n \"delete this[j + 1];\",\n \"}\",\n \"changes++;\",\n \"}\",\n \"}\",\n \"if (!changes) break;\",\n \"}\",\n \"return this;\",\n \"}\",\n \");\",\n\n \"createArrayMethod_(\",\n \"function toLocaleString() {\",\n \"if (!this) throw TypeError();\",\n \"var o = Object(this), len = o.length >>> 0;\",\n \"var out = [];\",\n \"for (var i = 0; i < len; i++) {\",\n \"out[i] = (o[i] === null || o[i] === undefined) ? '' : o[i].toLocaleString();\",\n \"}\",\n \"return out.join(',');\",\n \"}\",\n \");\",\n \"})();\",\n \"\"\n );\n};\n\n/**\n * Initialize the String class.\n * @param {!Interpreter.Object} globalObject Global object.\n */\nInterpreter.prototype.initString = function (globalObject) {\n var thisInterpreter = this;\n var wrapper;\n // String constructor.\n wrapper = function String(value) {\n value = arguments.length ? Interpreter.nativeGlobal.String(value) : \"\";\n if (thisInterpreter.calledWithNew()) {\n // Called as `new String()`.\n this.data = value;\n return this;\n } else {\n // Called as `String()`.\n return value;\n }\n };\n this.STRING = this.createNativeFunction(wrapper, true);\n this.setProperty(globalObject, \"String\", this.STRING, Interpreter.NONENUMERABLE_DESCRIPTOR);\n\n // Static methods on String.\n this.setProperty(\n this.STRING,\n \"fromCharCode\",\n this.createNativeFunction(String.fromCharCode, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n // Instance methods on String.\n // Methods with exclusively primitive arguments.\n var functions = [\n \"charAt\",\n \"charCodeAt\",\n \"concat\",\n \"indexOf\",\n \"lastIndexOf\",\n \"slice\",\n \"substr\",\n \"substring\",\n \"toLocaleLowerCase\",\n \"toLocaleUpperCase\",\n \"toLowerCase\",\n \"toUpperCase\",\n \"trim\",\n ];\n for (var i = 0; i < functions.length; i++) {\n this.setNativeFunctionPrototype(this.STRING, functions[i], String.prototype[functions[i]]);\n }\n\n wrapper = function localeCompare(compareString, locales, options) {\n locales = thisInterpreter.pseudoToNative(locales);\n options = thisInterpreter.pseudoToNative(options);\n try {\n return String(this).localeCompare(\n compareString,\n /** @type {?} */ (locales),\n /** @type {?} */ (options)\n );\n } catch (e) {\n thisInterpreter.throwException(thisInterpreter.ERROR, \"localeCompare: \" + e.message);\n }\n };\n this.setNativeFunctionPrototype(this.STRING, \"localeCompare\", wrapper);\n\n wrapper = function split(separator, limit, callback) {\n var string = String(this);\n limit = limit ? Number(limit) : undefined;\n // Example of catastrophic split RegExp:\n // 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaac'.split(/^(a+)+b/)\n if (thisInterpreter.isa(separator, thisInterpreter.REGEXP)) {\n separator = separator.data;\n thisInterpreter.maybeThrowRegExp(separator, callback);\n if (thisInterpreter[\"REGEXP_MODE\"] === 2) {\n if (Interpreter.vm) {\n // Run split in vm.\n var sandbox = {\n string: string,\n separator: separator,\n limit: limit,\n };\n var code = \"string.split(separator, limit)\";\n var jsList = thisInterpreter.vmCall(code, sandbox, separator, callback);\n if (jsList !== Interpreter.REGEXP_TIMEOUT) {\n callback(thisInterpreter.arrayNativeToPseudo(jsList));\n }\n } else {\n // Run split in separate thread.\n var splitWorker = thisInterpreter.createWorker();\n var pid = thisInterpreter.regExpTimeout(separator, splitWorker, callback);\n splitWorker.onmessage = function (e) {\n clearTimeout(pid);\n callback(thisInterpreter.arrayNativeToPseudo(e.data));\n };\n splitWorker.postMessage([\"split\", string, separator, limit]);\n }\n return;\n }\n }\n // Run split natively.\n var jsList = string.split(separator, limit);\n callback(thisInterpreter.arrayNativeToPseudo(jsList));\n };\n this.setAsyncFunctionPrototype(this.STRING, \"split\", wrapper);\n\n wrapper = function match(regexp, callback) {\n var string = String(this);\n regexp = thisInterpreter.isa(regexp, thisInterpreter.REGEXP) ? regexp.data : new RegExp(regexp);\n // Example of catastrophic match RegExp:\n // 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaac'.match(/^(a+)+b/)\n thisInterpreter.maybeThrowRegExp(regexp, callback);\n if (thisInterpreter[\"REGEXP_MODE\"] === 2) {\n if (Interpreter.vm) {\n // Run match in vm.\n var sandbox = {\n string: string,\n regexp: regexp,\n };\n var code = \"string.match(regexp)\";\n var m = thisInterpreter.vmCall(code, sandbox, regexp, callback);\n if (m !== Interpreter.REGEXP_TIMEOUT) {\n callback(m && thisInterpreter.arrayNativeToPseudo(m));\n }\n } else {\n // Run match in separate thread.\n var matchWorker = thisInterpreter.createWorker();\n var pid = thisInterpreter.regExpTimeout(regexp, matchWorker, callback);\n matchWorker.onmessage = function (e) {\n clearTimeout(pid);\n callback(e.data && thisInterpreter.arrayNativeToPseudo(e.data));\n };\n matchWorker.postMessage([\"match\", string, regexp]);\n }\n return;\n }\n // Run match natively.\n var m = string.match(regexp);\n callback(m && thisInterpreter.arrayNativeToPseudo(m));\n };\n this.setAsyncFunctionPrototype(this.STRING, \"match\", wrapper);\n\n wrapper = function search(regexp, callback) {\n var string = String(this);\n if (thisInterpreter.isa(regexp, thisInterpreter.REGEXP)) {\n regexp = regexp.data;\n } else {\n regexp = new RegExp(regexp);\n }\n // Example of catastrophic search RegExp:\n // 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaac'.search(/^(a+)+b/)\n thisInterpreter.maybeThrowRegExp(regexp, callback);\n if (thisInterpreter[\"REGEXP_MODE\"] === 2) {\n if (Interpreter.vm) {\n // Run search in vm.\n var sandbox = {\n string: string,\n regexp: regexp,\n };\n var code = \"string.search(regexp)\";\n var n = thisInterpreter.vmCall(code, sandbox, regexp, callback);\n if (n !== Interpreter.REGEXP_TIMEOUT) {\n callback(n);\n }\n } else {\n // Run search in separate thread.\n var searchWorker = thisInterpreter.createWorker();\n var pid = thisInterpreter.regExpTimeout(regexp, searchWorker, callback);\n searchWorker.onmessage = function (e) {\n clearTimeout(pid);\n callback(e.data);\n };\n searchWorker.postMessage([\"search\", string, regexp]);\n }\n return;\n }\n // Run search natively.\n callback(string.search(regexp));\n };\n this.setAsyncFunctionPrototype(this.STRING, \"search\", wrapper);\n\n wrapper = function replace_(substr, newSubstr, callback) {\n // Support for function replacements is the responsibility of a polyfill.\n var string = String(this);\n newSubstr = String(newSubstr);\n // Example of catastrophic replace RegExp:\n // 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaac'.replace(/^(a+)+b/, '')\n if (thisInterpreter.isa(substr, thisInterpreter.REGEXP)) {\n substr = substr.data;\n thisInterpreter.maybeThrowRegExp(substr, callback);\n if (thisInterpreter[\"REGEXP_MODE\"] === 2) {\n if (Interpreter.vm) {\n // Run replace in vm.\n var sandbox = {\n string: string,\n substr: substr,\n newSubstr: newSubstr,\n };\n var code = \"string.replace(substr, newSubstr)\";\n var str = thisInterpreter.vmCall(code, sandbox, substr, callback);\n if (str !== Interpreter.REGEXP_TIMEOUT) {\n callback(str);\n }\n } else {\n // Run replace in separate thread.\n var replaceWorker = thisInterpreter.createWorker();\n var pid = thisInterpreter.regExpTimeout(substr, replaceWorker, callback);\n replaceWorker.onmessage = function (e) {\n clearTimeout(pid);\n callback(e.data);\n };\n replaceWorker.postMessage([\"replace\", string, substr, newSubstr]);\n }\n return;\n }\n }\n // Run replace natively.\n callback(string.replace(substr, newSubstr));\n };\n this.setAsyncFunctionPrototype(this.STRING, \"replace\", wrapper);\n // Add a polyfill to handle replace's second argument being a function.\n this.polyfills_.push(\n \"(function() {\",\n \"var replace_ = String.prototype.replace;\",\n \"String.prototype.replace = function replace(substr, newSubstr) {\",\n \"if (typeof newSubstr !== 'function') {\",\n // string.replace(string|regexp, string)\n \"return replace_.call(this, substr, newSubstr);\",\n \"}\",\n \"var str = this;\",\n \"if (substr instanceof RegExp) {\", // string.replace(regexp, function)\n \"var subs = [];\",\n \"var m = substr.exec(str);\",\n \"while (m) {\",\n \"m.push(m.index, str);\",\n \"var inject = newSubstr.apply(null, m);\",\n \"subs.push([m.index, m[0].length, inject]);\",\n \"m = substr.global ? substr.exec(str) : null;\",\n \"}\",\n \"for (var i = subs.length - 1; i >= 0; i--) {\",\n \"str = str.substring(0, subs[i][0]) + subs[i][2] + \" +\n \"str.substring(subs[i][0] + subs[i][1]);\",\n \"}\",\n \"} else {\", // string.replace(string, function)\n \"var i = str.indexOf(substr);\",\n \"if (i !== -1) {\",\n \"var inject = newSubstr(str.substr(i, substr.length), i, str);\",\n \"str = str.substring(0, i) + inject + \" + \"str.substring(i + substr.length);\",\n \"}\",\n \"}\",\n \"return str;\",\n \"};\",\n \"})();\",\n \"\"\n );\n};\n\n/**\n * Initialize the Boolean class.\n * @param {!Interpreter.Object} globalObject Global object.\n */\nInterpreter.prototype.initBoolean = function (globalObject) {\n var thisInterpreter = this;\n var wrapper;\n // Boolean constructor.\n wrapper = function Boolean(value) {\n value = Interpreter.nativeGlobal.Boolean(value);\n if (thisInterpreter.calledWithNew()) {\n // Called as `new Boolean()`.\n this.data = value;\n return this;\n } else {\n // Called as `Boolean()`.\n return value;\n }\n };\n this.BOOLEAN = this.createNativeFunction(wrapper, true);\n this.setProperty(globalObject, \"Boolean\", this.BOOLEAN, Interpreter.NONENUMERABLE_DESCRIPTOR);\n};\n\n/**\n * Initialize the Number class.\n * @param {!Interpreter.Object} globalObject Global object.\n */\nInterpreter.prototype.initNumber = function (globalObject) {\n var thisInterpreter = this;\n var wrapper;\n // Number constructor.\n wrapper = function Number(value) {\n value = arguments.length ? Interpreter.nativeGlobal.Number(value) : 0;\n if (thisInterpreter.calledWithNew()) {\n // Called as `new Number()`.\n this.data = value;\n return this;\n } else {\n // Called as `Number()`.\n return value;\n }\n };\n this.NUMBER = this.createNativeFunction(wrapper, true);\n this.setProperty(globalObject, \"Number\", this.NUMBER, Interpreter.NONENUMERABLE_DESCRIPTOR);\n\n var numConsts = [\"MAX_VALUE\", \"MIN_VALUE\", \"NaN\", \"NEGATIVE_INFINITY\", \"POSITIVE_INFINITY\"];\n for (var i = 0; i < numConsts.length; i++) {\n this.setProperty(\n this.NUMBER,\n numConsts[i],\n Number[numConsts[i]],\n Interpreter.NONCONFIGURABLE_READONLY_NONENUMERABLE_DESCRIPTOR\n );\n }\n\n // Instance methods on Number.\n wrapper = function toExponential(fractionDigits) {\n try {\n return Number(this).toExponential(fractionDigits);\n } catch (e) {\n // Throws if fractionDigits isn't within 0-20.\n thisInterpreter.throwException(thisInterpreter.ERROR, e.message);\n }\n };\n this.setNativeFunctionPrototype(this.NUMBER, \"toExponential\", wrapper);\n\n wrapper = function toFixed(digits) {\n try {\n return Number(this).toFixed(digits);\n } catch (e) {\n // Throws if digits isn't within 0-20.\n thisInterpreter.throwException(thisInterpreter.ERROR, e.message);\n }\n };\n this.setNativeFunctionPrototype(this.NUMBER, \"toFixed\", wrapper);\n\n wrapper = function toPrecision(precision) {\n try {\n return Number(this).toPrecision(precision);\n } catch (e) {\n // Throws if precision isn't within range (depends on implementation).\n thisInterpreter.throwException(thisInterpreter.ERROR, e.message);\n }\n };\n this.setNativeFunctionPrototype(this.NUMBER, \"toPrecision\", wrapper);\n\n wrapper = function toString(radix) {\n try {\n return Number(this).toString(radix);\n } catch (e) {\n // Throws if radix isn't within 2-36.\n thisInterpreter.throwException(thisInterpreter.ERROR, e.message);\n }\n };\n this.setNativeFunctionPrototype(this.NUMBER, \"toString\", wrapper);\n\n wrapper = function toLocaleString(locales, options) {\n locales = locales ? thisInterpreter.pseudoToNative(locales) : undefined;\n options = options ? thisInterpreter.pseudoToNative(options) : undefined;\n try {\n return Number(this).toLocaleString(/** @type {?} */ (locales), /** @type {?} */ (options));\n } catch (e) {\n thisInterpreter.throwException(thisInterpreter.ERROR, \"toLocaleString: \" + e.message);\n }\n };\n this.setNativeFunctionPrototype(this.NUMBER, \"toLocaleString\", wrapper);\n};\n\n/**\n * Initialize the Date class.\n * @param {!Interpreter.Object} globalObject Global object.\n */\nInterpreter.prototype.initDate = function (globalObject) {\n var thisInterpreter = this;\n var wrapper;\n // Date constructor.\n wrapper = function Date(_value, var_args) {\n if (!thisInterpreter.calledWithNew()) {\n // Called as `Date()`.\n // Calling Date() as a function returns a string, no arguments are heeded.\n return Interpreter.nativeGlobal.Date();\n }\n // Called as `new Date(...)`.\n var args = [null].concat(Array.from(arguments));\n this.data = new (Function.prototype.bind.apply(Interpreter.nativeGlobal.Date, args))();\n return this;\n };\n this.DATE = this.createNativeFunction(wrapper, true);\n this.DATE_PROTO = this.DATE.properties[\"prototype\"];\n this.setProperty(globalObject, \"Date\", this.DATE, Interpreter.NONENUMERABLE_DESCRIPTOR);\n\n // Static methods on Date.\n this.setProperty(\n this.DATE,\n \"now\",\n this.createNativeFunction(Date.now, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n this.setProperty(\n this.DATE,\n \"parse\",\n this.createNativeFunction(Date.parse, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n this.setProperty(\n this.DATE,\n \"UTC\",\n this.createNativeFunction(Date.UTC, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n // Instance methods on Date.\n var functions = [\n \"getDate\",\n \"getDay\",\n \"getFullYear\",\n \"getHours\",\n \"getMilliseconds\",\n \"getMinutes\",\n \"getMonth\",\n \"getSeconds\",\n \"getTime\",\n \"getTimezoneOffset\",\n \"getUTCDate\",\n \"getUTCDay\",\n \"getUTCFullYear\",\n \"getUTCHours\",\n \"getUTCMilliseconds\",\n \"getUTCMinutes\",\n \"getUTCMonth\",\n \"getUTCSeconds\",\n \"getYear\",\n \"setDate\",\n \"setFullYear\",\n \"setHours\",\n \"setMilliseconds\",\n \"setMinutes\",\n \"setMonth\",\n \"setSeconds\",\n \"setTime\",\n \"setUTCDate\",\n \"setUTCFullYear\",\n \"setUTCHours\",\n \"setUTCMilliseconds\",\n \"setUTCMinutes\",\n \"setUTCMonth\",\n \"setUTCSeconds\",\n \"setYear\",\n \"toDateString\",\n \"toISOString\",\n \"toJSON\",\n \"toGMTString\",\n \"toLocaleDateString\",\n \"toLocaleString\",\n \"toLocaleTimeString\",\n \"toTimeString\",\n \"toUTCString\",\n ];\n for (var i = 0; i < functions.length; i++) {\n wrapper = (function (nativeFunc) {\n return function (var_args) {\n var date = this.data;\n if (!(date instanceof Date)) {\n thisInterpreter.throwException(\n thisInterpreter.TYPE_ERROR,\n nativeFunc + \" not called on a Date\"\n );\n }\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args[i] = thisInterpreter.pseudoToNative(arguments[i]);\n }\n return date[nativeFunc].apply(date, args);\n };\n })(functions[i]);\n this.setNativeFunctionPrototype(this.DATE, functions[i], wrapper);\n }\n};\n\n/**\n * Initialize Regular Expression object.\n * @param {!Interpreter.Object} globalObject Global object.\n */\nInterpreter.prototype.initRegExp = function (globalObject) {\n var thisInterpreter = this;\n var wrapper;\n // RegExp constructor.\n wrapper = function RegExp(pattern, flags) {\n if (thisInterpreter.calledWithNew()) {\n // Called as `new RegExp()`.\n var rgx = this;\n } else {\n // Called as `RegExp()`.\n if (flags === undefined && thisInterpreter.isa(pattern, thisInterpreter.REGEXP)) {\n // Regexp(/foo/) returns the same obj.\n return pattern;\n }\n var rgx = thisInterpreter.createObjectProto(thisInterpreter.REGEXP_PROTO);\n }\n pattern = pattern === undefined ? \"\" : String(pattern);\n flags = flags ? String(flags) : \"\";\n if (!/^[gmi]*$/.test(flags)) {\n // Don't allow ES6 flags 'y' and 's' to pass through.\n thisInterpreter.throwException(thisInterpreter.SYNTAX_ERROR, \"Invalid regexp flag: \" + flags);\n }\n try {\n var nativeRegExp = new Interpreter.nativeGlobal.RegExp(pattern, flags);\n } catch (e) {\n // Throws if flags are repeated.\n thisInterpreter.throwException(thisInterpreter.SYNTAX_ERROR, e.message);\n }\n thisInterpreter.populateRegExp(rgx, nativeRegExp);\n return rgx;\n };\n this.REGEXP = this.createNativeFunction(wrapper, true);\n this.REGEXP_PROTO = this.REGEXP.properties[\"prototype\"];\n this.setProperty(globalObject, \"RegExp\", this.REGEXP, Interpreter.NONENUMERABLE_DESCRIPTOR);\n\n this.setProperty(\n this.REGEXP.properties[\"prototype\"],\n \"global\",\n undefined,\n Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(\n this.REGEXP.properties[\"prototype\"],\n \"ignoreCase\",\n undefined,\n Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(\n this.REGEXP.properties[\"prototype\"],\n \"multiline\",\n undefined,\n Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(\n this.REGEXP.properties[\"prototype\"],\n \"source\",\n \"(?:)\",\n Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR\n );\n\n // Use polyfill to avoid complexity of regexp threads.\n this.polyfills_.push(\n \"Object.defineProperty(RegExp.prototype, 'test',\",\n \"{configurable: true, writable: true, value:\",\n \"function test(str) {\",\n \"return !!this.exec(str);\",\n \"}\",\n \"});\"\n );\n\n wrapper = function exec(string, callback) {\n var regexp = this.data;\n string = String(string);\n // Get lastIndex from wrapped regexp, since this is settable.\n regexp.lastIndex = Number(thisInterpreter.getProperty(this, \"lastIndex\"));\n // Example of catastrophic exec RegExp:\n // /^(a+)+b/.exec('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaac')\n thisInterpreter.maybeThrowRegExp(regexp, callback);\n if (thisInterpreter[\"REGEXP_MODE\"] === 2) {\n if (Interpreter.vm) {\n // Run exec in vm.\n var sandbox = {\n string: string,\n regexp: regexp,\n };\n var code = \"regexp.exec(string)\";\n var match = thisInterpreter.vmCall(code, sandbox, regexp, callback);\n if (match !== Interpreter.REGEXP_TIMEOUT) {\n thisInterpreter.setProperty(this, \"lastIndex\", regexp.lastIndex);\n callback(matchToPseudo(match));\n }\n } else {\n // Run exec in separate thread.\n // Note that lastIndex is not preserved when a RegExp is passed to a\n // Web Worker. Thus it needs to be passed back and forth separately.\n var execWorker = thisInterpreter.createWorker();\n var pid = thisInterpreter.regExpTimeout(regexp, execWorker, callback);\n var thisPseudoRegExp = this;\n execWorker.onmessage = function (e) {\n clearTimeout(pid);\n // Return tuple: [result, lastIndex]\n thisInterpreter.setProperty(thisPseudoRegExp, \"lastIndex\", e.data[1]);\n callback(matchToPseudo(e.data[0]));\n };\n execWorker.postMessage([\"exec\", regexp, regexp.lastIndex, string]);\n }\n return;\n }\n // Run exec natively.\n var match = regexp.exec(string);\n thisInterpreter.setProperty(this, \"lastIndex\", regexp.lastIndex);\n callback(matchToPseudo(match));\n\n function matchToPseudo(match) {\n if (match) {\n var result = thisInterpreter.arrayNativeToPseudo(match);\n // match has additional properties.\n thisInterpreter.setProperty(result, \"index\", match.index);\n thisInterpreter.setProperty(result, \"input\", match.input);\n return result;\n }\n return null;\n }\n };\n this.setAsyncFunctionPrototype(this.REGEXP, \"exec\", wrapper);\n};\n\n/**\n * Initialize the Error class.\n * @param {!Interpreter.Object} globalObject Global object.\n */\nInterpreter.prototype.initError = function (globalObject) {\n var thisInterpreter = this;\n // Error constructor.\n this.ERROR = this.createNativeFunction(function Error(opt_message) {\n if (thisInterpreter.calledWithNew()) {\n // Called as `new Error()`.\n var newError = this;\n } else {\n // Called as `Error()`.\n var newError = thisInterpreter.createObject(thisInterpreter.ERROR);\n }\n thisInterpreter.populateError(newError, opt_message);\n return newError;\n }, true);\n this.setProperty(globalObject, \"Error\", this.ERROR, Interpreter.NONENUMERABLE_DESCRIPTOR);\n this.setProperty(\n this.ERROR.properties[\"prototype\"],\n \"message\",\n \"\",\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(\n this.ERROR.properties[\"prototype\"],\n \"name\",\n \"Error\",\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n var createErrorSubclass = function (name) {\n var constructor = thisInterpreter.createNativeFunction(function (opt_message) {\n if (thisInterpreter.calledWithNew()) {\n // Called as `new XyzError()`.\n var newError = this;\n } else {\n // Called as `XyzError()`.\n var newError = thisInterpreter.createObject(constructor);\n }\n thisInterpreter.populateError(newError, opt_message);\n return newError;\n }, true);\n thisInterpreter.setProperty(\n constructor,\n \"prototype\",\n thisInterpreter.createObject(thisInterpreter.ERROR),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n thisInterpreter.setProperty(\n constructor.properties[\"prototype\"],\n \"name\",\n name,\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n thisInterpreter.setProperty(\n globalObject,\n name,\n constructor,\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n\n return constructor;\n };\n\n this.EVAL_ERROR = createErrorSubclass(\"EvalError\");\n this.RANGE_ERROR = createErrorSubclass(\"RangeError\");\n this.REFERENCE_ERROR = createErrorSubclass(\"ReferenceError\");\n this.SYNTAX_ERROR = createErrorSubclass(\"SyntaxError\");\n this.TYPE_ERROR = createErrorSubclass(\"TypeError\");\n this.URI_ERROR = createErrorSubclass(\"URIError\");\n};\n\n/**\n * Initialize Math object.\n * @param {!Interpreter.Object} globalObject Global object.\n */\nInterpreter.prototype.initMath = function (globalObject) {\n var myMath = this.createObjectProto(this.OBJECT_PROTO);\n this.setProperty(globalObject, \"Math\", myMath, Interpreter.NONENUMERABLE_DESCRIPTOR);\n var mathConsts = [\"E\", \"LN2\", \"LN10\", \"LOG2E\", \"LOG10E\", \"PI\", \"SQRT1_2\", \"SQRT2\"];\n for (var i = 0; i < mathConsts.length; i++) {\n this.setProperty(\n myMath,\n mathConsts[i],\n Math[mathConsts[i]],\n Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR\n );\n }\n var numFunctions = [\n \"abs\",\n \"acos\",\n \"asin\",\n \"atan\",\n \"atan2\",\n \"ceil\",\n \"cos\",\n \"exp\",\n \"floor\",\n \"log\",\n \"max\",\n \"min\",\n \"pow\",\n \"random\",\n \"round\",\n \"sin\",\n \"sqrt\",\n \"tan\",\n ];\n for (var i = 0; i < numFunctions.length; i++) {\n this.setProperty(\n myMath,\n numFunctions[i],\n this.createNativeFunction(Math[numFunctions[i]], false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n }\n};\n\n/**\n * Initialize JSON object.\n * @param {!Interpreter.Object} globalObject Global object.\n */\nInterpreter.prototype.initJSON = function (globalObject) {\n var wrapper;\n var thisInterpreter = this;\n var myJSON = thisInterpreter.createObjectProto(this.OBJECT_PROTO);\n this.setProperty(globalObject, \"JSON\", myJSON, Interpreter.NONENUMERABLE_DESCRIPTOR);\n\n wrapper = function parse(text) {\n try {\n var nativeObj = JSON.parse(String(text));\n } catch (e) {\n thisInterpreter.throwException(thisInterpreter.SYNTAX_ERROR, e.message);\n }\n return thisInterpreter.nativeToPseudo(nativeObj);\n };\n this.setProperty(myJSON, \"parse\", this.createNativeFunction(wrapper, false));\n\n wrapper = function stringify(value, replacer, space) {\n if (replacer && replacer.class === \"Function\") {\n thisInterpreter.throwException(\n thisInterpreter.TYPE_ERROR,\n \"Function replacer on JSON.stringify not supported\"\n );\n } else if (replacer && replacer.class === \"Array\") {\n replacer = thisInterpreter.arrayPseudoToNative(replacer);\n replacer = replacer.filter(function (word) {\n // Spec says we should also support boxed primitives here.\n return typeof word === \"string\" || typeof word === \"number\";\n });\n } else {\n replacer = null;\n }\n // Spec says we should also support boxed primitives here.\n if (typeof space !== \"string\" && typeof space !== \"number\") {\n space = undefined;\n }\n\n var nativeObj = thisInterpreter.pseudoToNative(value);\n try {\n var str = JSON.stringify(nativeObj, replacer, space);\n } catch (e) {\n thisInterpreter.throwException(thisInterpreter.TYPE_ERROR, e.message);\n }\n return str;\n };\n this.setProperty(myJSON, \"stringify\", this.createNativeFunction(wrapper, false));\n};\n\n/**\n * Is an object of a certain class?\n * @param {Interpreter.Value} child Object to check.\n * @param {Interpreter.Object} constructor Constructor of object.\n * @returns {boolean} True if object is the class or inherits from it.\n * False otherwise.\n */\nInterpreter.prototype.isa = function (child, constructor) {\n if (child === null || child === undefined || !constructor) {\n return false;\n }\n var proto = constructor.properties[\"prototype\"];\n if (child === proto) {\n return true;\n }\n // The first step up the prototype chain is harder since the child might be\n // a primitive value. Subsequent steps can just follow the .proto property.\n child = this.getPrototype(child);\n while (child) {\n if (child === proto) {\n return true;\n }\n child = child.proto;\n }\n return false;\n};\n\n/**\n * Initialize a pseudo regular expression object based on a native regular\n * expression object.\n * @param {!Interpreter.Object} pseudoRegexp The existing object to set.\n * @param {!RegExp} nativeRegexp The native regular expression.\n */\nInterpreter.prototype.populateRegExp = function (pseudoRegexp, nativeRegexp) {\n pseudoRegexp.data = new RegExp(nativeRegexp.source, nativeRegexp.flags);\n // lastIndex is settable, all others are read-only attributes\n this.setProperty(\n pseudoRegexp,\n \"lastIndex\",\n nativeRegexp.lastIndex,\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(\n pseudoRegexp,\n \"source\",\n nativeRegexp.source,\n Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(\n pseudoRegexp,\n \"global\",\n nativeRegexp.global,\n Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(\n pseudoRegexp,\n \"ignoreCase\",\n nativeRegexp.ignoreCase,\n Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR\n );\n this.setProperty(\n pseudoRegexp,\n \"multiline\",\n nativeRegexp.multiline,\n Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR\n );\n};\n\n/**\n * Initialize a pseudo error object.\n * @param {!Interpreter.Object} pseudoError The existing object to set.\n * @param {string=} opt_message Error's message.\n */\nInterpreter.prototype.populateError = function (pseudoError, opt_message) {\n if (opt_message) {\n this.setProperty(\n pseudoError,\n \"message\",\n String(opt_message),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n }\n var tracebackData = [];\n for (var i = this.stateStack.length - 1; i >= 0; i--) {\n var state = this.stateStack[i];\n var node = state.node;\n if (node.type === \"CallExpression\") {\n var func = state.func_;\n if (func && tracebackData.length) {\n tracebackData[tracebackData.length - 1].datumName = this.getProperty(func, \"name\");\n }\n }\n if (node.loc && (!tracebackData.length || node.type === \"CallExpression\")) {\n tracebackData.push({ datumLoc: node.loc });\n }\n }\n var errorName = String(this.getProperty(pseudoError, \"name\"));\n var errorMessage = String(this.getProperty(pseudoError, \"message\"));\n var stackString = errorName + \": \" + errorMessage + \"\\n\";\n for (var i = 0; i < tracebackData.length; i++) {\n var loc = tracebackData[i].datumLoc;\n var name = tracebackData[i].datumName;\n var locString = loc.source + \":\" + loc.start.line + \":\" + loc.start.column;\n if (name) {\n stackString += \" at \" + name + \" (\" + locString + \")\\n\";\n } else {\n stackString += \" at \" + locString + \"\\n\";\n }\n }\n this.setProperty(pseudoError, \"stack\", stackString.trim(), Interpreter.NONENUMERABLE_DESCRIPTOR);\n};\n\n/**\n * Create a Web Worker to execute regular expressions.\n * Using a separate file fails in Chrome when run locally on a file:// URI.\n * Using a data encoded URI fails in IE and Edge.\n * Using a blob works in IE11 and all other browsers.\n * @returns {!Worker} Web Worker with regexp execution code loaded.\n */\nInterpreter.prototype.createWorker = function () {\n var blob = this.createWorker.blob_;\n if (!blob) {\n blob = new Blob([Interpreter.WORKER_CODE.join(\"\\n\")], { type: \"application/javascript\" });\n // Cache the blob, so it doesn't need to be created next time.\n this.createWorker.blob_ = blob;\n }\n return new Worker(URL.createObjectURL(blob));\n};\n\n/**\n * Execute regular expressions in a node vm.\n * @param {string} code Code to execute.\n * @param {!Object} sandbox Global variables for new vm.\n * @param {!RegExp} nativeRegExp Regular expression.\n * @param {!Function} callback Asynchronous callback function.\n */\nInterpreter.prototype.vmCall = function (code, sandbox, nativeRegExp, callback) {\n var options = { timeout: this[\"REGEXP_THREAD_TIMEOUT\"] };\n try {\n return Interpreter.vm[\"runInNewContext\"](code, sandbox, options);\n } catch (_e) {\n callback(null);\n this.throwException(this.ERROR, \"RegExp Timeout: \" + nativeRegExp);\n }\n return Interpreter.REGEXP_TIMEOUT;\n};\n\n/**\n * If REGEXP_MODE is 0, then throw an error.\n * Also throw if REGEXP_MODE is 2 and JS doesn't support Web Workers or vm.\n * @param {!RegExp} nativeRegExp Regular expression.\n * @param {!Function} callback Asynchronous callback function.\n */\nInterpreter.prototype.maybeThrowRegExp = function (nativeRegExp, callback) {\n var ok;\n if (this[\"REGEXP_MODE\"] === 0) {\n // Fail: No RegExp support.\n ok = false;\n } else if (this[\"REGEXP_MODE\"] === 1) {\n // Ok: Native RegExp support.\n ok = true;\n } else {\n // Sandboxed RegExp handling.\n if (Interpreter.vm) {\n // Ok: Node's vm module already loaded.\n ok = true;\n } else if (typeof Worker === \"function\" && typeof URL === \"function\") {\n // Ok: Web Workers available.\n ok = true;\n } else if (typeof require === \"function\") {\n // Try to load Node's vm module.\n try {\n Interpreter.vm = require(\"vm\");\n } catch (_e) {}\n ok = !!Interpreter.vm;\n } else {\n // Fail: Neither Web Workers nor vm available.\n ok = false;\n }\n }\n if (!ok) {\n callback(null);\n this.throwException(this.ERROR, \"Regular expressions not supported: \" + nativeRegExp);\n }\n};\n\n/**\n * Set a timeout for regular expression threads. Unless cancelled, this will\n * terminate the thread and throw an error.\n * @param {!RegExp} nativeRegExp Regular expression (used for error message).\n * @param {!Worker} worker Thread to terminate.\n * @param {!Function} callback Async callback function to continue execution.\n * @returns {number} PID of timeout. Used to cancel if thread completes.\n */\nInterpreter.prototype.regExpTimeout = function (nativeRegExp, worker, callback) {\n var thisInterpreter = this;\n return setTimeout(function () {\n worker.terminate();\n callback(null);\n try {\n thisInterpreter.throwException(thisInterpreter.ERROR, \"RegExp Timeout: \" + nativeRegExp);\n } catch (_e) {\n // Eat the expected Interpreter.STEP_ERROR.\n }\n }, this[\"REGEXP_THREAD_TIMEOUT\"]);\n};\n\n/**\n * Create a new data object based on a constructor's prototype.\n * @param {Interpreter.Object} constructor Parent constructor function,\n * or null if scope object.\n * @returns {!Interpreter.Object} New data object.\n */\nInterpreter.prototype.createObject = function (constructor) {\n return this.createObjectProto(constructor && constructor.properties[\"prototype\"]);\n};\n\n/**\n * Create a new data object based on a prototype.\n * @param {Interpreter.Object} proto Prototype object.\n * @returns {!Interpreter.Object} New data object.\n */\nInterpreter.prototype.createObjectProto = function (proto) {\n if (typeof proto !== \"object\") {\n throw Error(\"Non object prototype\");\n }\n var obj = new Interpreter.Object(proto);\n if (this.isa(obj, this.ERROR)) {\n // Record this object as being an error so that its toString function can\n // process it correctly (toString has no access to the interpreter and could\n // not otherwise determine that the object is an error).\n obj.class = \"Error\";\n }\n return obj;\n};\n\n/**\n * Create a new array.\n * @returns {!Interpreter.Object} New array.\n */\nInterpreter.prototype.createArray = function () {\n var array = this.createObjectProto(this.ARRAY_PROTO);\n // Arrays have length.\n this.setProperty(array, \"length\", 0, { configurable: false, enumerable: false, writable: true });\n array.class = \"Array\";\n return array;\n};\n\n/**\n * Create a new function object (could become interpreted or native or async).\n * @param {number} argumentLength Number of arguments.\n * @param {boolean} isConstructor True if function can be used with 'new'.\n * @returns {!Interpreter.Object} New function.\n * @private\n */\nInterpreter.prototype.createFunctionBase_ = function (argumentLength, isConstructor) {\n var func = this.createObjectProto(this.FUNCTION_PROTO);\n if (isConstructor) {\n var proto = this.createObjectProto(this.OBJECT_PROTO);\n this.setProperty(func, \"prototype\", proto, Interpreter.NONENUMERABLE_DESCRIPTOR);\n this.setProperty(proto, \"constructor\", func, Interpreter.NONENUMERABLE_DESCRIPTOR);\n } else {\n func.illegalConstructor = true;\n }\n this.setProperty(func, \"length\", argumentLength, Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR);\n func.class = \"Function\";\n // When making changes to this function, check to see if those changes also\n // need to be made to the creation of FUNCTION_PROTO in initFunction.\n return func;\n};\n\n/**\n * Create a new interpreted function.\n * @param {!Object} node AST node defining the function.\n * @param {!Interpreter.Scope} scope Parent scope.\n * @param {string=} opt_name Optional name for function.\n * @returns {!Interpreter.Object} New function.\n */\nInterpreter.prototype.createFunction = function (node, scope, opt_name) {\n var func = this.createFunctionBase_(node.params.length, true);\n func.parentScope = scope;\n func.node = node;\n // Choose a name for this function.\n // function foo() {} -> 'foo'\n // var bar = function() {}; -> 'bar'\n // var bar = function foo() {}; -> 'foo'\n // foo.bar = function() {}; -> ''\n // var bar = new Function(''); -> 'anonymous'\n var name = node.id ? String(node.id.name) : opt_name || \"\";\n this.setProperty(func, \"name\", name, Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR);\n return func;\n};\n\n/**\n * Create a new native function.\n * @param {!Function} nativeFunc JavaScript function.\n * @param {boolean} isConstructor True if function can be used with 'new'.\n * @returns {!Interpreter.Object} New function.\n */\nInterpreter.prototype.createNativeFunction = function (nativeFunc, isConstructor) {\n var func = this.createFunctionBase_(nativeFunc.length, isConstructor);\n func.nativeFunc = nativeFunc;\n nativeFunc.id = this.functionCounter_++;\n this.setProperty(func, \"name\", nativeFunc.name, Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR);\n return func;\n};\n\n/**\n * Create a new native asynchronous function.\n * @param {!Function} asyncFunc JavaScript function.\n * @returns {!Interpreter.Object} New function.\n */\nInterpreter.prototype.createAsyncFunction = function (asyncFunc) {\n var func = this.createFunctionBase_(asyncFunc.length, true);\n func.asyncFunc = asyncFunc;\n asyncFunc.id = this.functionCounter_++;\n this.setProperty(func, \"name\", asyncFunc.name, Interpreter.READONLY_NONENUMERABLE_DESCRIPTOR);\n return func;\n};\n\n/**\n * Converts from a native JavaScript object or value to a JS-Interpreter object.\n * Can handle JSON-style values, regular expressions, dates and functions.\n * Does NOT handle cycles.\n * @param {*} nativeObj The native JavaScript object to be converted.\n * @returns {Interpreter.Value} The equivalent JS-Interpreter object.\n */\nInterpreter.prototype.nativeToPseudo = function (nativeObj) {\n if (nativeObj instanceof Interpreter.Object) {\n throw Error(\"Object is already pseudo\");\n }\n if (\n nativeObj === null ||\n nativeObj === undefined ||\n nativeObj === true ||\n nativeObj === false ||\n typeof nativeObj === \"string\" ||\n typeof nativeObj === \"number\"\n ) {\n return nativeObj;\n }\n\n if (nativeObj instanceof RegExp) {\n var pseudoRegexp = this.createObjectProto(this.REGEXP_PROTO);\n this.populateRegExp(pseudoRegexp, nativeObj);\n return pseudoRegexp;\n }\n\n if (nativeObj instanceof Date) {\n var pseudoDate = this.createObjectProto(this.DATE_PROTO);\n pseudoDate.data = new Date(nativeObj.valueOf());\n return pseudoDate;\n }\n\n if (typeof nativeObj === \"function\") {\n var thisInterpreter = this;\n var wrapper = function () {\n var args = Array.prototype.slice.call(arguments).map(function (i) {\n return thisInterpreter.pseudoToNative(i);\n });\n var value = nativeObj.apply(thisInterpreter, args);\n return thisInterpreter.nativeToPseudo(value);\n };\n var prototype = Object.getOwnPropertyDescriptor(nativeObj, \"prototype\");\n return this.createNativeFunction(wrapper, !!prototype);\n }\n\n if (Array.isArray(nativeObj)) {\n // Array.\n var pseudoArray = this.createArray();\n for (var i = 0; i < nativeObj.length; i++) {\n if (i in nativeObj) {\n this.setProperty(pseudoArray, i, this.nativeToPseudo(nativeObj[i]));\n }\n }\n return pseudoArray;\n }\n\n // Object.\n var pseudoObj = this.createObjectProto(this.OBJECT_PROTO);\n for (var key in nativeObj) {\n this.setProperty(pseudoObj, key, this.nativeToPseudo(nativeObj[key]));\n }\n return pseudoObj;\n};\n\n/**\n * Converts from a JS-Interpreter object to native JavaScript object.\n * Can handle JSON-style values, regular expressions, and dates.\n * Does handle cycles.\n * @param {Interpreter.Value} pseudoObj The JS-Interpreter object to be\n * converted.\n * @param {Object=} opt_cycles Cycle detection object (used by recursive calls).\n * @returns {*} The equivalent native JavaScript object or value.\n */\nInterpreter.prototype.pseudoToNative = function (pseudoObj, opt_cycles) {\n if ((typeof pseudoObj !== \"object\" && typeof pseudoObj !== \"function\") || pseudoObj === null) {\n return pseudoObj;\n }\n if (!(pseudoObj instanceof Interpreter.Object)) {\n throw Error(\"Object is not pseudo\");\n }\n\n if (this.isa(pseudoObj, this.REGEXP)) {\n // Regular expression.\n var nativeRegExp = new RegExp(pseudoObj.data.source, pseudoObj.data.flags);\n nativeRegExp.lastIndex = pseudoObj.data.lastIndex;\n return nativeRegExp;\n }\n\n if (this.isa(pseudoObj, this.DATE)) {\n // Date.\n return new Date(pseudoObj.data.valueOf());\n }\n\n var cycles = opt_cycles || {\n pseudo: [],\n native: [],\n };\n var index = cycles.pseudo.indexOf(pseudoObj);\n if (index !== -1) {\n return cycles.native[index];\n }\n cycles.pseudo.push(pseudoObj);\n var nativeObj;\n if (this.isa(pseudoObj, this.ARRAY)) {\n // Array.\n nativeObj = [];\n cycles.native.push(nativeObj);\n var len = this.getProperty(pseudoObj, \"length\");\n for (var i = 0; i < len; i++) {\n if (this.hasProperty(pseudoObj, i)) {\n nativeObj[i] = this.pseudoToNative(this.getProperty(pseudoObj, i), cycles);\n }\n }\n } else {\n // Object.\n nativeObj = {};\n cycles.native.push(nativeObj);\n var val;\n for (var key in pseudoObj.properties) {\n val = this.pseudoToNative(pseudoObj.properties[key], cycles);\n // Use defineProperty to avoid side effects if setting '__proto__'.\n Object.defineProperty(nativeObj, key, {\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n cycles.pseudo.pop();\n cycles.native.pop();\n return nativeObj;\n};\n\n/**\n * Converts from a native JavaScript array to a JS-Interpreter array.\n * Does handle non-numeric properties (like str.match's index prop).\n * Does NOT recurse into the array's contents.\n * @param {!Array} nativeArray The JavaScript array to be converted.\n * @returns {!Interpreter.Object} The equivalent JS-Interpreter array.\n */\nInterpreter.prototype.arrayNativeToPseudo = function (nativeArray) {\n var pseudoArray = this.createArray();\n var props = /** @type {!Array<?>} */ (Object.getOwnPropertyNames(nativeArray));\n for (var i = 0; i < props.length; i++) {\n this.setProperty(pseudoArray, props[i], nativeArray[props[i]]);\n }\n return pseudoArray;\n};\n\n/**\n * Converts from a JS-Interpreter array to native JavaScript array.\n * Does handle non-numeric properties (like str.match's index prop).\n * Does NOT recurse into the array's contents.\n * @param {!Interpreter.Object} pseudoArray The JS-Interpreter array,\n * or JS-Interpreter object pretending to be an array.\n * @returns {!Array} The equivalent native JavaScript array.\n */\nInterpreter.prototype.arrayPseudoToNative = function (pseudoArray) {\n var nativeArray = [];\n for (var key in pseudoArray.properties) {\n nativeArray[/** @type {?} */ (key)] = this.getProperty(pseudoArray, key);\n }\n // pseudoArray might be an object pretending to be an array. In this case\n // it's possible that length is non-existent, invalid, or smaller than the\n // largest defined numeric property. Set length explicitly here.\n nativeArray.length = Interpreter.legalArrayLength(this.getProperty(pseudoArray, \"length\")) || 0;\n return nativeArray;\n};\n\n/**\n * Look up the prototype for this value.\n * @param {Interpreter.Value} value Data object.\n * @returns {Interpreter.Object} Prototype object, null if none.\n */\nInterpreter.prototype.getPrototype = function (value) {\n switch (typeof value) {\n case \"number\":\n return this.NUMBER.properties[\"prototype\"];\n case \"boolean\":\n return this.BOOLEAN.properties[\"prototype\"];\n case \"string\":\n return this.STRING.properties[\"prototype\"];\n }\n if (value) {\n return value.proto;\n }\n return null;\n};\n\n/**\n * Fetch a property value from a data object.\n * @param {Interpreter.Value} obj Data object.\n * @param {Interpreter.Value} name Name of property.\n * @returns {Interpreter.Value} Property value (may be undefined).\n */\nInterpreter.prototype.getProperty = function (obj, name) {\n if (this.getterStep_) {\n throw Error(\"Getter not supported in that context\");\n }\n name = String(name);\n if (obj === undefined || obj === null) {\n this.throwException(this.TYPE_ERROR, \"Cannot read property '\" + name + \"' of \" + obj);\n }\n if (typeof obj === \"object\" && !(obj instanceof Interpreter.Object)) {\n throw TypeError(\"Expecting native value or pseudo object\");\n }\n if (name === \"length\") {\n // Special cases for magic length property.\n if (this.isa(obj, this.STRING)) {\n return String(obj).length;\n }\n } else if (name.charCodeAt(0) < 0x40) {\n // Might have numbers in there?\n // Special cases for string array indexing\n if (this.isa(obj, this.STRING)) {\n var n = Interpreter.legalArrayIndex(name);\n if (!isNaN(n) && n < String(obj).length) {\n return String(obj)[n];\n }\n }\n }\n do {\n if (obj.properties && name in obj.properties) {\n var getter = obj.getter[name];\n if (getter) {\n // Flag this function as being a getter and thus needing immediate\n // execution (rather than being the value of the property).\n this.getterStep_ = true;\n return getter;\n }\n return obj.properties[name];\n }\n } while ((obj = this.getPrototype(obj)));\n return undefined;\n};\n\n/**\n * Does the named property exist on a data object.\n * @param {Interpreter.Object} obj Data object.\n * @param {Interpreter.Value} name Name of property.\n * @returns {boolean} True if property exists.\n */\nInterpreter.prototype.hasProperty = function (obj, name) {\n if (!(obj instanceof Interpreter.Object)) {\n throw TypeError(\"Primitive data type has no properties\");\n }\n name = String(name);\n if (name === \"length\" && this.isa(obj, this.STRING)) {\n return true;\n }\n if (this.isa(obj, this.STRING)) {\n var n = Interpreter.legalArrayIndex(name);\n if (!isNaN(n) && n < String(obj).length) {\n return true;\n }\n }\n do {\n if (obj.properties && name in obj.properties) {\n return true;\n }\n } while ((obj = this.getPrototype(obj)));\n return false;\n};\n\n/**\n * Set a property value on a data object.\n * @param {Interpreter.Value} obj Data object.\n * @param {Interpreter.Value} name Name of property.\n * @param {Interpreter.Value} value New property value.\n * Use Interpreter.VALUE_IN_DESCRIPTOR if value is handled by\n * descriptor instead.\n * @param {Object=} opt_descriptor Optional descriptor object.\n * @returns {!Interpreter.Object|undefined} Returns a setter function if one\n * needs to be called, otherwise undefined.\n */\nInterpreter.prototype.setProperty = function (obj, name, value, opt_descriptor) {\n if (this.setterStep_) {\n // Getter from previous call to setProperty was not handled.\n throw Error(\"Setter not supported in that context\");\n }\n name = String(name);\n if (obj === undefined || obj === null) {\n this.throwException(this.TYPE_ERROR, \"Cannot set property '\" + name + \"' of \" + obj);\n }\n if (typeof obj === \"object\" && !(obj instanceof Interpreter.Object)) {\n throw TypeError(\"Expecting native value or pseudo object\");\n }\n if (\n opt_descriptor &&\n (\"get\" in opt_descriptor || \"set\" in opt_descriptor) &&\n (\"value\" in opt_descriptor || \"writable\" in opt_descriptor)\n ) {\n this.throwException(\n this.TYPE_ERROR,\n \"Invalid property descriptor. \" +\n \"Cannot both specify accessors and a value or writable attribute\"\n );\n }\n var strict = !this.stateStack || this.getScope().strict;\n if (!(obj instanceof Interpreter.Object)) {\n if (strict) {\n this.throwException(this.TYPE_ERROR, \"Can't create property '\" + name + \"' on '\" + obj + \"'\");\n }\n return;\n }\n if (this.isa(obj, this.STRING)) {\n var n = Interpreter.legalArrayIndex(name);\n if (name === \"length\" || (!isNaN(n) && n < String(obj).length)) {\n // Can't set length or letters on String objects.\n if (strict) {\n this.throwException(\n this.TYPE_ERROR,\n \"Cannot assign to read only \" + \"property '\" + name + \"' of String '\" + obj.data + \"'\"\n );\n }\n return;\n }\n }\n if (obj.class === \"Array\") {\n // Arrays have a magic length variable that is bound to the elements.\n var len = obj.properties.length;\n var i;\n if (name === \"length\") {\n // Delete elements if length is smaller.\n if (opt_descriptor) {\n if (!(\"value\" in opt_descriptor)) {\n return;\n }\n value = opt_descriptor[\"value\"];\n }\n value = Interpreter.legalArrayLength(value);\n if (isNaN(value)) {\n this.throwException(this.RANGE_ERROR, \"Invalid array length\");\n }\n if (value < len) {\n for (i in obj.properties) {\n i = Interpreter.legalArrayIndex(i);\n if (!isNaN(i) && value <= i) {\n delete obj.properties[i];\n }\n }\n }\n } else if (!isNaN((i = Interpreter.legalArrayIndex(name)))) {\n // Increase length if this index is larger.\n obj.properties.length = Math.max(len, i + 1);\n }\n }\n if (obj.preventExtensions && !(name in obj.properties)) {\n if (strict) {\n this.throwException(\n this.TYPE_ERROR,\n \"Can't add property '\" + name + \"', object is not extensible\"\n );\n }\n return;\n }\n if (opt_descriptor) {\n // Define the property.\n var descriptor = {};\n if (\"get\" in opt_descriptor && opt_descriptor[\"get\"]) {\n obj.getter[name] = opt_descriptor[\"get\"];\n descriptor[\"get\"] = this.setProperty.placeholderGet_;\n }\n if (\"set\" in opt_descriptor && opt_descriptor[\"set\"]) {\n obj.setter[name] = opt_descriptor[\"set\"];\n descriptor[\"set\"] = this.setProperty.placeholderSet_;\n }\n if (\"configurable\" in opt_descriptor) {\n descriptor[\"configurable\"] = opt_descriptor[\"configurable\"];\n }\n if (\"enumerable\" in opt_descriptor) {\n descriptor[\"enumerable\"] = opt_descriptor[\"enumerable\"];\n }\n if (\"writable\" in opt_descriptor) {\n descriptor[\"writable\"] = opt_descriptor[\"writable\"];\n delete obj.getter[name];\n delete obj.setter[name];\n }\n if (\"value\" in opt_descriptor) {\n descriptor[\"value\"] = opt_descriptor[\"value\"];\n delete obj.getter[name];\n delete obj.setter[name];\n } else if (value !== Interpreter.VALUE_IN_DESCRIPTOR) {\n descriptor[\"value\"] = value;\n delete obj.getter[name];\n delete obj.setter[name];\n }\n try {\n Object.defineProperty(obj.properties, name, descriptor);\n } catch (e) {\n this.throwException(this.TYPE_ERROR, \"Cannot redefine property: \" + name);\n }\n // Now that the definition has suceeded, clean up any obsolete get/set funcs.\n if (\"get\" in opt_descriptor && !opt_descriptor[\"get\"]) {\n delete obj.getter[name];\n }\n if (\"set\" in opt_descriptor && !opt_descriptor[\"set\"]) {\n delete obj.setter[name];\n }\n } else {\n // Set the property.\n if (value === Interpreter.VALUE_IN_DESCRIPTOR) {\n throw ReferenceError(\"Value not specified\");\n }\n // Determine the parent (possibly self) where the property is defined.\n var defObj = obj;\n while (!(name in defObj.properties)) {\n defObj = this.getPrototype(defObj);\n if (!defObj) {\n // This is a new property.\n defObj = obj;\n break;\n }\n }\n if (defObj.setter && defObj.setter[name]) {\n this.setterStep_ = true;\n return defObj.setter[name];\n }\n if (defObj.getter && defObj.getter[name]) {\n if (strict) {\n this.throwException(\n this.TYPE_ERROR,\n \"Cannot set property '\" + name + \"' of object '\" + obj + \"' which only has a getter\"\n );\n }\n } else {\n // No setter, simple assignment.\n try {\n obj.properties[name] = value;\n } catch (_e) {\n if (strict) {\n this.throwException(\n this.TYPE_ERROR,\n \"Cannot assign to read only \" + \"property '\" + name + \"' of object '\" + obj + \"'\"\n );\n }\n }\n }\n }\n};\n\nInterpreter.prototype.setProperty.placeholderGet_ = function () {\n throw Error(\"Placeholder getter\");\n};\nInterpreter.prototype.setProperty.placeholderSet_ = function () {\n throw Error(\"Placeholder setter\");\n};\n\n/**\n * Convenience method for adding a native function as a non-enumerable property\n * onto an object's prototype.\n * @param {!Interpreter.Object} obj Data object.\n * @param {Interpreter.Value} name Name of property.\n * @param {!Function} wrapper Function object.\n */\nInterpreter.prototype.setNativeFunctionPrototype = function (obj, name, wrapper) {\n this.setProperty(\n obj.properties[\"prototype\"],\n name,\n this.createNativeFunction(wrapper, false),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n};\n\n/**\n * Convenience method for adding an async function as a non-enumerable property\n * onto an object's prototype.\n * @param {!Interpreter.Object} obj Data object.\n * @param {Interpreter.Value} name Name of property.\n * @param {!Function} wrapper Function object.\n */\nInterpreter.prototype.setAsyncFunctionPrototype = function (obj, name, wrapper) {\n this.setProperty(\n obj.properties[\"prototype\"],\n name,\n this.createAsyncFunction(wrapper),\n Interpreter.NONENUMERABLE_DESCRIPTOR\n );\n};\n\n/**\n * Returns the current scope from the stateStack.\n * @returns {!Interpreter.Scope} Current scope.\n */\nInterpreter.prototype.getScope = function () {\n var scope = this.stateStack[this.stateStack.length - 1].scope;\n if (!scope) {\n throw Error(\"No scope found\");\n }\n return scope;\n};\n\n/**\n * Create a new scope dictionary.\n * @param {!Object} node AST node defining the scope container\n * (e.g. a function).\n * @param {Interpreter.Scope} parentScope Scope to link to.\n * @returns {!Interpreter.Scope} New scope.\n */\nInterpreter.prototype.createScope = function (node, parentScope) {\n // Determine if this scope starts with `use strict`.\n var strict = false;\n if (parentScope && parentScope.strict) {\n strict = true;\n } else {\n var firstNode = node.body && node.body[0];\n if (\n firstNode &&\n firstNode.expression &&\n firstNode.expression.type === \"Literal\" &&\n firstNode.expression.value === \"use strict\"\n ) {\n strict = true;\n }\n }\n var object = this.createObjectProto(null);\n var scope = new Interpreter.Scope(parentScope, strict, object);\n if (!parentScope) {\n this.initGlobal(scope.object);\n }\n this.populateScope_(node, scope);\n return scope;\n};\n\n/**\n * Create a new special scope dictionary. Similar to createScope(), but\n * doesn't assume that the scope is for a function body.\n * This is used for 'catch' clauses, 'with' statements,\n * and named function expressions.\n * @param {!Interpreter.Scope} parentScope Scope to link to.\n * @param {Interpreter.Object=} opt_object Optional object to transform into\n * scope.\n * @returns {!Interpreter.Scope} New scope.\n */\nInterpreter.prototype.createSpecialScope = function (parentScope, opt_object) {\n if (!parentScope) {\n throw Error(\"parentScope required\");\n }\n var object = opt_object || this.createObjectProto(null);\n return new Interpreter.Scope(parentScope, parentScope.strict, object);\n};\n\n/**\n * Retrieves a value from the scope chain.\n * @param {string} name Name of variable.\n * @returns {Interpreter.Value} Any value.\n * May be flagged as being a getter and thus needing immediate execution\n * (rather than being the value of the property).\n */\nInterpreter.prototype.getValueFromScope = function (name) {\n var scope = this.getScope();\n while (scope && scope !== this.globalScope) {\n if (name in scope.object.properties) {\n return scope.object.properties[name];\n }\n scope = scope.parentScope;\n }\n // The root scope is also an object which has inherited properties and\n // could also have getters.\n if (scope === this.globalScope && this.hasProperty(scope.object, name)) {\n return this.getProperty(scope.object, name);\n }\n // Typeof operator is unique: it can safely look at non-defined variables.\n var prevNode = this.stateStack[this.stateStack.length - 1].node;\n if (prevNode.type === \"UnaryExpression\" && prevNode.operator === \"typeof\") {\n return undefined;\n }\n this.throwException(this.REFERENCE_ERROR, name + \" is not defined\");\n};\n\n/**\n * Sets a value to the current scope.\n * @param {string} name Name of variable.\n * @param {Interpreter.Value} value Value.\n * @returns {!Interpreter.Object|undefined} Returns a setter function if one\n * needs to be called, otherwise undefined.\n */\nInterpreter.prototype.setValueToScope = function (name, value) {\n var scope = this.getScope();\n var strict = scope.strict;\n while (scope && scope !== this.globalScope) {\n if (name in scope.object.properties) {\n try {\n scope.object.properties[name] = value;\n } catch (_e) {\n if (strict) {\n this.throwException(\n this.TYPE_ERROR,\n \"Cannot assign to read only variable '\" + name + \"'\"\n );\n }\n }\n return undefined;\n }\n scope = scope.parentScope;\n }\n // The root scope is also an object which has readonly properties and\n // could also have setters.\n if (scope === this.globalScope && (!strict || this.hasProperty(scope.object, name))) {\n return this.setProperty(scope.object, name, value);\n }\n this.throwException(this.REFERENCE_ERROR, name + \" is not defined\");\n};\n\n/**\n * Create a new scope for the given node and populate it with all variables\n * and named functions.\n * @param {!Object} node AST node (usually a program or function when initally\n * calling this function, though it recurses to scan many child nodes).\n * @param {!Interpreter.Scope} scope Scope dictionary to populate.\n * @returns {!Object} Map of all variable and function names.\n * @private\n */\nInterpreter.prototype.populateScope_ = function (node, scope) {\n var variableCache;\n if (!node.variableCache_) {\n variableCache = Object.create(null);\n switch (node.type) {\n case \"VariableDeclaration\":\n for (var i = 0; i < node.declarations.length; i++) {\n variableCache[node.declarations[i].id.name] = true;\n }\n break;\n case \"FunctionDeclaration\":\n variableCache[node.id.name] = node;\n break;\n case \"BlockStatement\":\n case \"CatchClause\":\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"IfStatement\":\n case \"LabeledStatement\":\n case \"Program\":\n case \"SwitchCase\":\n case \"SwitchStatement\":\n case \"TryStatement\":\n case \"WithStatement\":\n case \"WhileStatement\":\n // All the structures within which a variable or function could hide.\n var nodeClass = node.constructor;\n for (var name in node) {\n if (name === \"loc\") continue;\n var prop = node[name];\n if (prop && typeof prop === \"object\") {\n var childCache;\n if (Array.isArray(prop)) {\n for (var i = 0; i < prop.length; i++) {\n if (prop[i] && prop[i].constructor === nodeClass) {\n childCache = this.populateScope_(prop[i], scope);\n for (var name in childCache) {\n variableCache[name] = childCache[name];\n }\n }\n }\n } else {\n if (prop.constructor === nodeClass) {\n childCache = this.populateScope_(prop, scope);\n for (var name in childCache) {\n variableCache[name] = childCache[name];\n }\n }\n }\n }\n }\n }\n node.variableCache_ = variableCache;\n } else {\n variableCache = node.variableCache_;\n }\n for (var name in variableCache) {\n if (variableCache[name] === true) {\n this.setProperty(scope.object, name, undefined, Interpreter.VARIABLE_DESCRIPTOR);\n } else {\n this.setProperty(\n scope.object,\n name,\n this.createFunction(variableCache[name], scope),\n Interpreter.VARIABLE_DESCRIPTOR\n );\n }\n }\n return variableCache;\n};\n\n/**\n * Is the current state directly being called with as a construction with 'new'.\n * @returns {boolean} True if 'new foo()', false if 'foo()'.\n */\nInterpreter.prototype.calledWithNew = function () {\n return this.stateStack[this.stateStack.length - 1].isConstructor;\n};\n\n/**\n * Gets a value from the scope chain or from an object property.\n * @param {!Array} ref Name of variable or object/propname tuple.\n * @returns {Interpreter.Value} Any value.\n * May be flagged as being a getter and thus needing immediate execution\n * (rather than being the value of the property).\n */\nInterpreter.prototype.getValue = function (ref) {\n if (ref[0] === Interpreter.SCOPE_REFERENCE) {\n // A null/varname variable lookup.\n return this.getValueFromScope(ref[1]);\n } else {\n // An obj/prop components tuple (foo.bar).\n return this.getProperty(ref[0], ref[1]);\n }\n};\n\n/**\n * Sets a value to the scope chain or to an object property.\n * @param {!Array} ref Name of variable or object/propname tuple.\n * @param {Interpreter.Value} value Value.\n * @returns {!Interpreter.Object|undefined} Returns a setter function if one\n * needs to be called, otherwise undefined.\n */\nInterpreter.prototype.setValue = function (ref, value) {\n if (ref[0] === Interpreter.SCOPE_REFERENCE) {\n // A null/varname variable lookup.\n return this.setValueToScope(ref[1], value);\n }\n // An obj/prop components tuple (foo.bar).\n return this.setProperty(ref[0], ref[1], value);\n};\n\n/**\n * Throw an exception in the interpreter that can be handled by an\n * interpreter try/catch statement. If unhandled, a real exception will\n * be thrown. Can be called with either an error class and a message, or\n * with an actual object to be thrown.\n * @param {!Interpreter.Object|Interpreter.Value} errorClass Type of error\n * (if message is provided) or the value to throw (if no message).\n * @param {string=} opt_message Message being thrown.\n */\nInterpreter.prototype.throwException = function (errorClass, opt_message) {\n if (!this.globalScope) {\n // This is an error being thrown in the initialization, throw a real error.\n throw opt_message === undefined ? errorClass : opt_message;\n }\n if (opt_message === undefined || !(errorClass instanceof Interpreter.Object)) {\n var error = errorClass; // This is a value to throw, not an error class.\n } else {\n var error = this.createObject(errorClass);\n this.populateError(error, opt_message);\n }\n this.unwind(Interpreter.Completion.THROW, error, undefined);\n // Abort anything related to the current step.\n throw Interpreter.STEP_ERROR;\n};\n\n/**\n * Unwind the stack to the innermost relevant enclosing TryStatement,\n * For/ForIn/WhileStatement or Call/NewExpression. If this results in\n * the stack being completely unwound the thread will be terminated\n * and the appropriate error being thrown.\n * @param {Interpreter.Completion} type Completion type.\n * @param {Interpreter.Value} value Value computed, returned or thrown.\n * @param {string|undefined} label Target label for break or return.\n */\nInterpreter.prototype.unwind = function (type, value, label) {\n if (type === Interpreter.Completion.NORMAL) {\n throw TypeError(\"Should not unwind for NORMAL completions\");\n }\n\n loop: for (var stack = this.stateStack; stack.length > 0; stack.pop()) {\n var state = stack[stack.length - 1];\n switch (state.node.type) {\n case \"TryStatement\":\n state.cv = { type: type, value: value, label: label };\n return;\n case \"CallExpression\":\n case \"NewExpression\":\n if (type === Interpreter.Completion.RETURN) {\n state.value = value;\n return;\n } else if (type !== Interpreter.Completion.THROW) {\n throw Error(\"Unsyntactic break/continue not rejected by Acorn\");\n }\n break;\n case \"Program\":\n // Don't pop the stateStack.\n // Leave the root scope on the tree in case the program is appended to.\n state.done = true;\n break loop;\n }\n if (type === Interpreter.Completion.BREAK) {\n if (\n label ? state.labels && state.labels.indexOf(label) !== -1 : state.isLoop || state.isSwitch\n ) {\n stack.pop();\n return;\n }\n } else if (type === Interpreter.Completion.CONTINUE) {\n if (label ? state.labels && state.labels.indexOf(label) !== -1 : state.isLoop) {\n return;\n }\n }\n }\n\n // Unhandled completion. Throw a real error.\n var realError;\n if (this.isa(value, this.ERROR)) {\n var errorTable = {\n EvalError: EvalError,\n RangeError: RangeError,\n ReferenceError: ReferenceError,\n SyntaxError: SyntaxError,\n TypeError: TypeError,\n URIError: URIError,\n };\n var name = String(this.getProperty(value, \"name\"));\n var message = this.getProperty(value, \"message\").valueOf();\n var errorConstructor = errorTable[name] || Error;\n realError = errorConstructor(message);\n realError.stack = String(this.getProperty(value, \"stack\"));\n } else {\n realError = String(value);\n }\n // Overwrite the previous (more or less random) interpreter return value.\n // Replace it with the error.\n this.value = realError;\n throw realError;\n};\n\n/**\n * AST to code. Summarizes the expression at the given node. Currently\n * not guaranteed to be correct or complete. Used for error messages.\n * E.g. `escape('hello') + 42` -> 'escape(...) + 42'\n * @param {!Object} node AST node.\n * @returns {string} Code string.\n */\nInterpreter.prototype.nodeSummary = function (node) {\n switch (node.type) {\n case \"ArrayExpression\":\n return \"[...]\";\n case \"BinaryExpression\":\n case \"LogicalExpression\":\n return this.nodeSummary(node.left) + \" \" + node.operator + \" \" + this.nodeSummary(node.right);\n case \"CallExpression\":\n return this.nodeSummary(node.callee) + \"(...)\";\n case \"ConditionalExpression\":\n return (\n this.nodeSummary(node.test) +\n \" ? \" +\n this.nodeSummary(node.consequent) +\n \" : \" +\n this.nodeSummary(node.alternate)\n );\n case \"Identifier\":\n return node.name;\n case \"Literal\":\n return node.raw;\n case \"MemberExpression\":\n var obj = this.nodeSummary(node.object);\n var prop = this.nodeSummary(node.property);\n return node.computed ? obj + \"[\" + prop + \"]\" : obj + \".\" + prop;\n case \"NewExpression\":\n return \"new \" + this.nodeSummary(node.callee) + \"(...)\";\n case \"ObjectExpression\":\n return \"{...}\";\n case \"ThisExpression\":\n return \"this\";\n case \"UnaryExpression\":\n return node.operator + \" \" + this.nodeSummary(node.argument);\n case \"UpdateExpression\":\n var argument = this.nodeSummary(node.argument);\n return node.prefix ? node.operator + argument : argument + node.operator;\n }\n return \"???\";\n};\n\n/**\n * Create a new queued task.\n * @param {boolean} isInterval True if setInterval, false if setTimeout.\n * @param {!Arguments} args Arguments from setInterval and setTimeout.\n * [code, delay]\n * [functionRef, delay, param1, param2, param3, ...]\n * @returns {number} PID of new task.\n * @private\n */\nInterpreter.prototype.createTask_ = function (isInterval, args) {\n var parentState = this.stateStack[this.stateStack.length - 1];\n var argsArray = Array.from(args);\n var exec = argsArray.shift();\n var delay = Math.max(Number(argsArray.shift() || 0), 0);\n var node = this.newNode();\n var scope, functionRef, ast;\n\n if (exec instanceof Interpreter.Object && exec.class === \"Function\") {\n // setTimeout/setInterval with a function reference.\n functionRef = exec;\n node.type = \"CallExpression\";\n scope = parentState.scope;\n } else {\n // setTimeout/setInterval with code string.\n try {\n ast = this.parse_(String(exec), \"taskCode\" + this.taskCodeNumber_++);\n } catch (e) {\n // Acorn threw a SyntaxError. Rethrow as a trappable error.\n this.throwException(this.SYNTAX_ERROR, \"Invalid code: \" + e.message);\n }\n node.type = \"EvalProgram_\";\n node.body = ast.body;\n // Change highlighting to encompas the string.\n var execNode = parentState.node.arguments[0];\n var execStart = execNode ? execNode.start : undefined;\n var execEnd = execNode ? execNode.end : undefined;\n Interpreter.stripLocations_(node, execStart, execEnd);\n scope = this.globalScope;\n argsArray.length = 0;\n }\n\n var task = new Interpreter.Task(functionRef, argsArray, scope, node, isInterval ? delay : -1);\n this.scheduleTask_(task, delay);\n return task.pid;\n};\n\n/**\n * Schedule a task to execute at some time in the future.\n * @param {!Interpreter.Task} task Task to schedule.\n * @param {number} delay Number of ms before the task should execute.\n * @private\n */\nInterpreter.prototype.scheduleTask_ = function (task, delay) {\n task.time = Date.now() + delay;\n // For optimum efficiency we could do a binary search and inject the task\n // at the right spot. But 'push' & 'sort' is just two lines of code.\n this.tasks.push(task);\n this.tasks.sort(function (a, b) {\n return a.time - b.time;\n });\n};\n\n/**\n * Delete a queued task.\n * @param {number} pid PID of task to delete.\n * @private\n */\nInterpreter.prototype.deleteTask_ = function (pid) {\n for (var i = 0; i < this.tasks.length; i++) {\n if (this.tasks[i].pid == pid) {\n this.tasks.splice(i, 1);\n break;\n }\n }\n};\n\n/**\n * Find the next queued task that's due to run.\n * @returns {Interpreter.State} Starting state of next task. Null if no task.\n * @private\n */\nInterpreter.prototype.nextTask_ = function () {\n var task = this.tasks[0];\n if (!task || task.time > Date.now()) {\n return null;\n }\n // Found a task that's due to run.\n this.tasks.shift();\n if (task.interval >= 0) {\n this.scheduleTask_(task, task.interval);\n }\n var state = new Interpreter.State(task.node, task.scope);\n if (task.functionRef) {\n // setTimeout/setInterval with a function reference.\n state.doneCallee_ = 2;\n state.funcThis_ = this.globalObject;\n state.func_ = task.functionRef;\n state.doneArgs_ = true;\n state.arguments_ = task.argsArray;\n }\n return state;\n};\n\n/**\n * Create a call to a getter function.\n * @param {!Interpreter.Object} func Function to execute.\n * @param {!Interpreter.Object|!Array} left\n * Name of variable or object/propname tuple.\n * @private\n */\nInterpreter.prototype.createGetter_ = function (func, left) {\n if (!this.getterStep_) {\n throw Error(\"Unexpected call to createGetter\");\n }\n // Clear the getter flag.\n this.getterStep_ = false;\n // Normally `this` will be specified as the object component (o.x).\n // Sometimes `this` is explicitly provided (o).\n var funcThis = Array.isArray(left) ? left[0] : left;\n var node = this.newNode();\n node.type = \"CallExpression\";\n var state = new Interpreter.State(node, this.stateStack[this.stateStack.length - 1].scope);\n state.doneCallee_ = 2;\n state.funcThis_ = funcThis;\n state.func_ = func;\n state.doneArgs_ = true;\n state.arguments_ = [];\n return state;\n};\n\n/**\n * Create a call to a setter function.\n * @param {!Interpreter.Object} func Function to execute.\n * @param {!Interpreter.Object|!Array} left\n * Name of variable or object/propname tuple.\n * @param {Interpreter.Value} value Value to set.\n * @private\n */\nInterpreter.prototype.createSetter_ = function (func, left, value) {\n if (!this.setterStep_) {\n throw Error(\"Unexpected call to createSetter\");\n }\n // Clear the setter flag.\n this.setterStep_ = false;\n // Normally `this` will be specified as the object component (o.x).\n // Sometimes `this` is implicitly the global object (x).\n var funcThis = Array.isArray(left) ? left[0] : this.globalObject;\n var node = this.newNode();\n node.type = \"CallExpression\";\n var state = new Interpreter.State(node, this.stateStack[this.stateStack.length - 1].scope);\n state.doneCallee_ = 2;\n state.funcThis_ = funcThis;\n state.func_ = func;\n state.doneArgs_ = true;\n state.arguments_ = [value];\n return state;\n};\n\n/**\n * In non-strict mode `this` must be an object.\n * Must not be called in strict mode.\n * @param {Interpreter.Value} value Proposed value for `this`.\n * @returns {!Interpreter.Object} Final value for `this`.\n * @private\n */\nInterpreter.prototype.boxThis_ = function (value) {\n if (value === undefined || value === null) {\n // `Undefined` and `null` are changed to the global object.\n return this.globalObject;\n }\n if (!(value instanceof Interpreter.Object)) {\n // Primitives must be boxed.\n var box = this.createObjectProto(this.getPrototype(value));\n box.data = value;\n return box;\n }\n return value;\n};\n\n/**\n * Return the global scope object.\n * @returns {!Interpreter.Scope} Scope object.\n */\nInterpreter.prototype.getGlobalScope = function () {\n return this.globalScope;\n};\n\n/**\n * Return the state stack.\n * @returns {!Array<!Interpreter.State>} State stack.\n */\nInterpreter.prototype.getStateStack = function () {\n return this.stateStack;\n};\n\n/**\n * Replace the state stack with a new one.\n * @param {!Array<!Interpreter.State>} newStack New state stack.\n */\nInterpreter.prototype.setStateStack = function (newStack) {\n this.stateStack = newStack;\n};\n\n/**\n * Typedef for JS values.\n * @typedef {!Interpreter.Object|boolean|number|string|undefined|null}\n */\nInterpreter.Value;\n\n/**\n * Class for a state.\n * @param {!Object} node AST node for the state.\n * @param {!Interpreter.Scope} scope Scope object for the state.\n * @type Class\n */\nclass State {\n constructor(node, scope) {\n this.node = node;\n this.scope = scope;\n }\n}\nInterpreter.State = State;\n/**\n * Class for a scope.\n * @param {Interpreter.Scope} parentScope Parent scope.\n * @param {boolean} strict True if \"use strict\".\n * @param {!Interpreter.Object} object Object containing scope's variables.\n * @type Class\n */\nclass Scope {\n constructor(parentScope, strict, object) {\n this.parentScope = parentScope;\n this.strict = strict;\n this.object = object;\n }\n}\nInterpreter.Scope = Scope;\n/**\n * Class for an object.\n * @param {Interpreter.Object} proto Prototype object or null.\n * @type Class\n */\nInterpreter.Object = function (proto) {\n this.getter = Object.create(null);\n this.setter = Object.create(null);\n this.properties = Object.create(null);\n this.proto = proto;\n};\n\n/** @type {Interpreter.Object} */\nInterpreter.Object.prototype.proto = null;\n\n/** @type {string} */\nInterpreter.Object.prototype.class = \"Object\";\n\n/** @type {Date|RegExp|boolean|number|string|null} */\nInterpreter.Object.prototype.data = null;\n\n/**\n * Convert this object into a string.\n * @returns {string} String value.\n * @override\n */\nInterpreter.Object.prototype.toString = function () {\n if (!Interpreter.currentInterpreter_) {\n // Called from outside an interpreter.\n return \"[object Interpreter.Object]\";\n }\n if (!(this instanceof Interpreter.Object)) {\n // Primitive value.\n return String(this);\n }\n\n if (this.class === \"Array\") {\n // Array contents must not have cycles.\n var cycles = Interpreter.toStringCycles_;\n cycles.push(this);\n try {\n var strs = [];\n // Truncate very long strings. This is not part of the spec,\n // but it prevents hanging the interpreter for gigantic arrays.\n var maxLength = this.properties.length;\n var truncated = false;\n if (maxLength > 1024) {\n maxLength = 1000;\n truncated = true;\n }\n for (var i = 0; i < maxLength; i++) {\n var value = this.properties[i];\n strs[i] =\n value instanceof Interpreter.Object && cycles.indexOf(value) !== -1 ? \"...\" : value;\n }\n if (truncated) {\n strs.push(\"...\");\n }\n } finally {\n cycles.pop();\n }\n return strs.join(\",\");\n }\n\n if (this.class === \"Error\") {\n // Error name and message properties must not have cycles.\n var cycles = Interpreter.toStringCycles_;\n if (cycles.indexOf(this) !== -1) {\n return \"[object Error]\";\n }\n var name, message;\n // Bug: Does not support getters and setters for name or message.\n var obj = this;\n do {\n if (\"name\" in obj.properties) {\n name = obj.properties.name;\n break;\n }\n } while ((obj = obj.proto));\n obj = this;\n do {\n if (\"message\" in obj.properties) {\n message = obj.properties.message;\n break;\n }\n } while ((obj = obj.proto));\n cycles.push(this);\n try {\n name = name && String(name);\n message = message && String(message);\n } finally {\n cycles.pop();\n }\n return message ? name + \": \" + message : String(name);\n }\n\n if (this.data !== null) {\n // RegExp, Date, and boxed primitives.\n return String(this.data);\n }\n\n return \"[object \" + this.class + \"]\";\n};\n\n/**\n * Return the object's value.\n * @returns {Interpreter.Value} Value.\n * @override\n */\nInterpreter.Object.prototype.valueOf = function () {\n if (!Interpreter.currentInterpreter_) {\n // Called from outside an interpreter.\n return this;\n }\n if (this.data === undefined || this.data === null || this.data instanceof RegExp) {\n return this; // An Object, RegExp, or primitive.\n }\n if (this.data instanceof Date) {\n return this.data.valueOf(); // Milliseconds.\n }\n return /** @type {(boolean|number|string)} */ (this.data); // Boxed primitive.\n};\n\n/**\n * Class for a task.\n * @param {!Interpreter.Object|undefined} functionRef Function to call.\n * @param {!Array<Interpreter.Value>} argsArray Array of arguments.\n * @param {!Interpreter.Scope} scope Scope for this task.\n * @param {!Object} node AST node to execute.\n * @param {number} interval Number of ms this task repeats. -1 for no repeats.\n * @struct\n * @constructor\n */\nInterpreter.Task = function (functionRef, argsArray, scope, node, interval) {\n this.functionRef = functionRef;\n this.argsArray = argsArray;\n this.scope = scope;\n this.node = node;\n\n this.interval = interval;\n this.pid = ++Interpreter.Task.pid;\n this.time = 0;\n};\n\nInterpreter.Task.pid = 0;\n\n///////////////////////////////////////////////////////////////////////////////\n// Functions to handle each node type.\n///////////////////////////////////////////////////////////////////////////////\n\nInterpreter.prototype[\"stepArrayExpression\"] = function (stack, state, node) {\n var elements = node.elements;\n var n = state.n_ || 0;\n if (!state.array_) {\n state.array_ = this.createArray();\n state.array_.properties.length = elements.length;\n } else {\n this.setProperty(state.array_, n, state.value);\n n++;\n }\n while (n < elements.length) {\n // Skip missing elements - they're not defined, not undefined.\n if (elements[n]) {\n state.n_ = n;\n return new Interpreter.State(elements[n], state.scope);\n }\n n++;\n }\n stack.pop();\n stack[stack.length - 1].value = state.array_;\n};\n\nInterpreter.prototype[\"stepAssignmentExpression\"] = function (stack, state, node) {\n if (!state.doneLeft_) {\n state.doneLeft_ = true;\n var nextState = new Interpreter.State(node.left, state.scope);\n nextState.components = true;\n return nextState;\n }\n if (!state.doneRight_) {\n if (!state.leftReference_) {\n state.leftReference_ = state.value;\n }\n if (state.doneGetter_) {\n state.leftValue_ = state.value;\n }\n if (!state.doneGetter_ && node.operator !== \"=\") {\n var leftValue = this.getValue(state.leftReference_);\n state.leftValue_ = leftValue;\n if (this.getterStep_) {\n // Call the getter function.\n state.doneGetter_ = true;\n var func = /** @type {!Interpreter.Object} */ (leftValue);\n return this.createGetter_(func, state.leftReference_);\n }\n }\n state.doneRight_ = true;\n // When assigning an unnamed function to a variable, the function's name\n // is set to the variable name. Record the variable name in case the\n // right side is a functionExpression.\n // E.g. foo = function() {};\n if (node.operator === \"=\" && node.left.type === \"Identifier\") {\n state.destinationName = node.left.name;\n }\n return new Interpreter.State(node.right, state.scope);\n }\n if (state.doneSetter_) {\n // Return if setter function.\n // Setter method on property has completed.\n // Ignore its return value, and use the original set value instead.\n stack.pop();\n stack[stack.length - 1].value = state.setterValue_;\n return;\n }\n var value = state.leftValue_;\n var rightValue = state.value;\n switch (node.operator) {\n case \"=\":\n value = rightValue;\n break;\n case \"+=\":\n value += rightValue;\n break;\n case \"-=\":\n value -= rightValue;\n break;\n case \"*=\":\n value *= rightValue;\n break;\n case \"/=\":\n value /= rightValue;\n break;\n case \"%=\":\n value %= rightValue;\n break;\n case \"<<=\":\n value <<= rightValue;\n break;\n case \">>=\":\n value >>= rightValue;\n break;\n case \">>>=\":\n value >>>= rightValue;\n break;\n case \"&=\":\n value &= rightValue;\n break;\n case \"^=\":\n value ^= rightValue;\n break;\n case \"|=\":\n value |= rightValue;\n break;\n default:\n throw SyntaxError(\"Unknown assignment expression: \" + node.operator);\n }\n var setter = this.setValue(state.leftReference_, value);\n if (setter) {\n state.doneSetter_ = true;\n state.setterValue_ = value;\n return this.createSetter_(setter, state.leftReference_, value);\n }\n // Return if no setter function.\n stack.pop();\n stack[stack.length - 1].value = value;\n};\n\nInterpreter.prototype[\"stepBinaryExpression\"] = function (stack, state, node) {\n if (!state.doneLeft_) {\n state.doneLeft_ = true;\n return new Interpreter.State(node.left, state.scope);\n }\n if (!state.doneRight_) {\n state.doneRight_ = true;\n state.leftValue_ = state.value;\n return new Interpreter.State(node.right, state.scope);\n }\n stack.pop();\n var leftValue = state.leftValue_;\n var rightValue = state.value;\n var value;\n switch (node.operator) {\n case \"==\":\n value = leftValue == rightValue;\n break;\n case \"!=\":\n value = leftValue != rightValue;\n break;\n case \"===\":\n value = leftValue === rightValue;\n break;\n case \"!==\":\n value = leftValue !== rightValue;\n break;\n case \">\":\n value = leftValue > rightValue;\n break;\n case \">=\":\n value = leftValue >= rightValue;\n break;\n case \"<\":\n value = leftValue < rightValue;\n break;\n case \"<=\":\n value = leftValue <= rightValue;\n break;\n case \"+\":\n value = leftValue + rightValue;\n break;\n case \"-\":\n value = leftValue - rightValue;\n break;\n case \"*\":\n value = leftValue * rightValue;\n break;\n case \"/\":\n value = leftValue / rightValue;\n break;\n case \"%\":\n value = leftValue % rightValue;\n break;\n case \"&\":\n value = leftValue & rightValue;\n break;\n case \"|\":\n value = leftValue | rightValue;\n break;\n case \"^\":\n value = leftValue ^ rightValue;\n break;\n case \"<<\":\n value = leftValue << rightValue;\n break;\n case \">>\":\n value = leftValue >> rightValue;\n break;\n case \">>>\":\n value = leftValue >>> rightValue;\n break;\n case \"in\":\n if (!(rightValue instanceof Interpreter.Object)) {\n this.throwException(this.TYPE_ERROR, \"'in' expects an object, not '\" + rightValue + \"'\");\n }\n value = this.hasProperty(rightValue, leftValue);\n break;\n case \"instanceof\":\n if (!this.isa(rightValue, this.FUNCTION)) {\n this.throwException(\n this.TYPE_ERROR,\n \"'instanceof' expects an object, not '\" + rightValue + \"'\"\n );\n }\n value = leftValue instanceof Interpreter.Object ? this.isa(leftValue, rightValue) : false;\n break;\n default:\n throw SyntaxError(\"Unknown binary operator: \" + node.operator);\n }\n stack[stack.length - 1].value = value;\n};\n\nInterpreter.prototype[\"stepBlockStatement\"] = function (stack, state, node) {\n var n = state.n_ || 0;\n var expression = node.body[n];\n if (expression) {\n state.n_ = n + 1;\n return new Interpreter.State(expression, state.scope);\n }\n stack.pop();\n};\n\nInterpreter.prototype[\"stepBreakStatement\"] = function (stack, state, node) {\n var label = node.label && node.label.name;\n this.unwind(Interpreter.Completion.BREAK, undefined, label);\n};\n\n/**\n * Number of evals called by the interpreter.\n * @private\n */\nInterpreter.prototype.evalCodeNumber_ = 0;\n\nInterpreter.prototype[\"stepCallExpression\"] = function (stack, state, node) {\n // Handles both CallExpression and NewExpression.\n if (!state.doneCallee_) {\n state.doneCallee_ = 1;\n // Components needed to determine value of `this`.\n var nextState = new Interpreter.State(node.callee, state.scope);\n nextState.components = true;\n return nextState;\n }\n if (state.doneCallee_ === 1) {\n // Determine value of the function.\n state.doneCallee_ = 2;\n var func = state.value;\n if (Array.isArray(func)) {\n state.func_ = this.getValue(func);\n if (func[0] === Interpreter.SCOPE_REFERENCE) {\n // (Globally or locally) named function. Is it named 'eval'?\n state.directEval_ = func[1] === \"eval\";\n } else {\n // Method function, `this` is object (ignored if invoked as `new`).\n state.funcThis_ = func[0];\n }\n func = state.func_;\n if (this.getterStep_) {\n // Call the getter function.\n state.doneCallee_ = 1;\n return this.createGetter_(/** @type {!Interpreter.Object} */ (func), state.value);\n }\n } else {\n // Already evaluated function: (function(){...})();\n state.func_ = func;\n }\n state.arguments_ = [];\n state.n_ = 0;\n }\n var func = state.func_;\n if (!state.doneArgs_) {\n if (state.n_ !== 0) {\n state.arguments_.push(state.value);\n }\n if (node.arguments[state.n_]) {\n return new Interpreter.State(node.arguments[state.n_++], state.scope);\n }\n // Determine value of `this` in function.\n if (node.type === \"NewExpression\") {\n if (!(func instanceof Interpreter.Object) || func.illegalConstructor) {\n // Illegal: new escape();\n this.throwException(\n this.TYPE_ERROR,\n this.nodeSummary(node.callee) + \" is not a constructor\"\n );\n }\n // Constructor, `this` is new object.\n if (func === this.ARRAY) {\n state.funcThis_ = this.createArray();\n } else {\n var proto = func.properties[\"prototype\"];\n if (typeof proto !== \"object\" || proto === null) {\n // Non-object prototypes default to `Object.prototype`.\n proto = this.OBJECT_PROTO;\n }\n state.funcThis_ = this.createObjectProto(proto);\n }\n state.isConstructor = true;\n }\n state.doneArgs_ = true;\n }\n if (!state.doneExec_) {\n state.doneExec_ = true;\n if (!(func instanceof Interpreter.Object)) {\n this.throwException(this.TYPE_ERROR, this.nodeSummary(node.callee) + \" is not a function\");\n }\n var funcNode = func.node;\n if (funcNode) {\n var scope = this.createScope(funcNode.body, func.parentScope);\n // Build arguments variable.\n var argsList = this.createArray();\n for (var i = 0; i < state.arguments_.length; i++) {\n this.setProperty(argsList, i, state.arguments_[i]);\n }\n this.setProperty(scope.object, \"arguments\", argsList);\n // Add all arguments (may clobber 'arguments' if a param is named such).\n for (var i = 0; i < funcNode.params.length; i++) {\n var paramName = funcNode.params[i].name;\n var paramValue = state.arguments_.length > i ? state.arguments_[i] : undefined;\n this.setProperty(scope.object, paramName, paramValue);\n }\n if (!scope.strict) {\n state.funcThis_ = this.boxThis_(state.funcThis_);\n }\n this.setProperty(scope.object, \"this\", state.funcThis_, Interpreter.READONLY_DESCRIPTOR);\n state.value = undefined; // Default value if no explicit return.\n return new Interpreter.State(funcNode.body, scope);\n } else if (func.eval) {\n var code = state.arguments_[0];\n if (typeof code !== \"string\") {\n // JS does not parse String objects:\n // eval(new String('1 + 1')) -> '1 + 1'\n state.value = code;\n } else {\n try {\n var ast = this.parse_(String(code), \"eval\" + this.evalCodeNumber_++);\n } catch (e) {\n // Acorn threw a SyntaxError. Rethrow as a trappable error.\n this.throwException(this.SYNTAX_ERROR, \"Invalid code: \" + e.message);\n }\n var evalNode = this.newNode();\n evalNode.type = \"EvalProgram_\";\n evalNode.body = ast.body;\n Interpreter.stripLocations_(evalNode, node.start, node.end);\n // Create new scope and update it with definitions in eval().\n var scope = state.directEval_ ? state.scope : this.globalScope;\n if (scope.strict) {\n // Strict mode get its own scope in eval.\n scope = this.createScope(ast, scope);\n } else {\n // Non-strict mode pollutes the current scope.\n this.populateScope_(ast, scope);\n }\n this.value = undefined; // Default value if no code.\n return new Interpreter.State(evalNode, scope);\n }\n } else if (func.nativeFunc) {\n if (!state.scope.strict) {\n state.funcThis_ = this.boxThis_(state.funcThis_);\n }\n state.value = func.nativeFunc.apply(state.funcThis_, state.arguments_);\n } else if (func.asyncFunc) {\n var thisInterpreter = this;\n var callback = function (value) {\n state.value = value;\n thisInterpreter.paused_ = false;\n };\n // Force the argument lengths to match, then append the callback.\n var argLength = func.asyncFunc.length - 1;\n var argsWithCallback = state.arguments_.concat(new Array(argLength)).slice(0, argLength);\n argsWithCallback.push(callback);\n this.paused_ = true;\n if (!state.scope.strict) {\n state.funcThis_ = this.boxThis_(state.funcThis_);\n }\n func.asyncFunc.apply(state.funcThis_, argsWithCallback);\n return;\n } else {\n /* A child of a function is a function but is not callable. For example:\n var F = function() {};\n F.prototype = escape;\n var f = new F();\n f();\n */\n this.throwException(this.TYPE_ERROR, this.nodeSummary(node.callee) + \" is not callable\");\n }\n } else {\n // Execution complete. Put the return value on the stack.\n stack.pop();\n if (state.isConstructor && typeof state.value !== \"object\") {\n // Normal case for a constructor is to use the `this` value.\n stack[stack.length - 1].value = state.funcThis_;\n } else {\n // Non-constructors or constructions explicitly returning objects use\n // the return value.\n stack[stack.length - 1].value = state.value;\n }\n }\n};\n\nInterpreter.prototype[\"stepConditionalExpression\"] = function (stack, state, node) {\n // Handles both ConditionalExpression and IfStatement.\n var mode = state.mode_ || 0;\n if (mode === 0) {\n state.mode_ = 1;\n return new Interpreter.State(node.test, state.scope);\n }\n if (mode === 1) {\n state.mode_ = 2;\n var value = Boolean(state.value);\n if (value && node.consequent) {\n // Execute `if` block.\n return new Interpreter.State(node.consequent, state.scope);\n } else if (!value && node.alternate) {\n // Execute `else` block.\n return new Interpreter.State(node.alternate, state.scope);\n }\n // eval('1;if(false){2}') -> undefined\n this.value = undefined;\n }\n stack.pop();\n if (node.type === \"ConditionalExpression\") {\n stack[stack.length - 1].value = state.value;\n }\n};\n\nInterpreter.prototype[\"stepContinueStatement\"] = function (stack, state, node) {\n var label = node.label && node.label.name;\n this.unwind(Interpreter.Completion.CONTINUE, undefined, label);\n};\n\nInterpreter.prototype[\"stepDebuggerStatement\"] = function (stack, state, node) {\n // Do nothing. May be overridden by developers.\n stack.pop();\n};\n\nInterpreter.prototype[\"stepDoWhileStatement\"] = function (stack, state, node) {\n // Handles both DoWhileStatement and WhileStatement.\n if (node.type === \"DoWhileStatement\" && state.test_ === undefined) {\n // First iteration of do/while executes without checking test.\n state.value = true;\n state.test_ = true;\n }\n if (!state.test_) {\n state.test_ = true;\n return new Interpreter.State(node.test, state.scope);\n }\n if (!state.value) {\n // Done, exit loop.\n stack.pop();\n } else if (node.body) {\n // Execute the body.\n state.test_ = false;\n state.isLoop = true;\n return new Interpreter.State(node.body, state.scope);\n }\n};\n\nInterpreter.prototype[\"stepEmptyStatement\"] = function (stack, state, node) {\n stack.pop();\n};\n\nInterpreter.prototype[\"stepEvalProgram_\"] = function (stack, state, node) {\n var n = state.n_ || 0;\n var expression = node.body[n];\n if (expression) {\n state.n_ = n + 1;\n return new Interpreter.State(expression, state.scope);\n }\n stack.pop();\n stack[stack.length - 1].value = this.value;\n};\n\nInterpreter.prototype[\"stepExpressionStatement\"] = function (stack, state, node) {\n if (!state.done_) {\n this.value = undefined;\n state.done_ = true;\n return new Interpreter.State(node.expression, state.scope);\n }\n stack.pop();\n // Save this value to interpreter.value for use as a return value if\n // this code is inside an eval function.\n this.value = state.value;\n};\n\nInterpreter.prototype[\"stepForInStatement\"] = function (stack, state, node) {\n // First, initialize a variable if exists. Only do so once, ever.\n if (!state.doneInit_) {\n state.doneInit_ = true;\n if (node.left.declarations && node.left.declarations[0].init) {\n if (state.scope.strict) {\n this.throwException(\n this.SYNTAX_ERROR,\n \"for-in loop variable declaration may not have an initializer\"\n );\n }\n // Variable initialization: for (var x = 4 in y)\n return new Interpreter.State(node.left, state.scope);\n }\n }\n // Second, look up the object. Only do so once, ever.\n if (!state.doneObject_) {\n state.doneObject_ = true;\n if (!state.variable_) {\n state.variable_ = state.value;\n }\n return new Interpreter.State(node.right, state.scope);\n }\n if (!state.isLoop) {\n // First iteration.\n state.isLoop = true;\n state.object_ = state.value;\n state.visited_ = Object.create(null);\n }\n // Third, find the property name for this iteration.\n if (state.name_ === undefined) {\n gotPropName: while (true) {\n if (state.object_ instanceof Interpreter.Object) {\n if (!state.props_) {\n state.props_ = Object.getOwnPropertyNames(state.object_.properties);\n }\n while (true) {\n var prop = state.props_.shift();\n if (prop === undefined) {\n break; // Reached end of this object's properties.\n }\n if (!Object.prototype.hasOwnProperty.call(state.object_.properties, prop)) {\n continue; // Property has been deleted in the loop.\n }\n if (state.visited_[prop]) {\n continue; // Already seen this property on a child.\n }\n state.visited_[prop] = true;\n if (!Object.prototype.propertyIsEnumerable.call(state.object_.properties, prop)) {\n continue; // Skip non-enumerable property.\n }\n state.name_ = prop;\n break gotPropName;\n }\n } else if (state.object_ !== null && state.object_ !== undefined) {\n // Primitive value (other than null or undefined).\n if (!state.props_) {\n state.props_ = Object.getOwnPropertyNames(state.object_);\n }\n while (true) {\n var prop = state.props_.shift();\n if (prop === undefined) {\n break; // Reached end of this value's properties.\n }\n state.visited_[prop] = true;\n if (!Object.prototype.propertyIsEnumerable.call(state.object_, prop)) {\n continue; // Skip non-enumerable property.\n }\n state.name_ = prop;\n break gotPropName;\n }\n }\n state.object_ = this.getPrototype(state.object_);\n state.props_ = null;\n if (state.object_ === null) {\n // Done, exit loop.\n stack.pop();\n return;\n }\n }\n }\n // Fourth, find the variable\n if (!state.doneVariable_) {\n state.doneVariable_ = true;\n var left = node.left;\n if (left.type === \"VariableDeclaration\") {\n // Inline variable declaration: for (var x in y)\n state.variable_ = [Interpreter.SCOPE_REFERENCE, left.declarations[0].id.name];\n } else {\n // Arbitrary left side: for (foo().bar in y)\n state.variable_ = null;\n var nextState = new Interpreter.State(left, state.scope);\n nextState.components = true;\n return nextState;\n }\n }\n if (!state.variable_) {\n state.variable_ = state.value;\n }\n // Fifth, set the variable.\n if (!state.doneSetter_) {\n state.doneSetter_ = true;\n var value = state.name_;\n var setter = this.setValue(state.variable_, value);\n if (setter) {\n return this.createSetter_(setter, state.variable_, value);\n }\n }\n // Next step will be step three.\n state.name_ = undefined;\n // Reevaluate the variable since it could be a setter on the global object.\n state.doneVariable_ = false;\n state.doneSetter_ = false;\n // Sixth and finally, execute the body if there was one.\n if (node.body) {\n return new Interpreter.State(node.body, state.scope);\n }\n};\n\nInterpreter.prototype[\"stepForStatement\"] = function (stack, state, node) {\n switch (state.mode_) {\n default:\n state.mode_ = 1;\n if (node.init) {\n return new Interpreter.State(node.init, state.scope);\n }\n break;\n case 1:\n state.mode_ = 2;\n if (node.test) {\n return new Interpreter.State(node.test, state.scope);\n }\n break;\n case 2:\n state.mode_ = 3;\n if (node.test && !state.value) {\n // Done, exit loop.\n stack.pop();\n } else {\n // Execute the body.\n state.isLoop = true;\n return new Interpreter.State(node.body, state.scope);\n }\n break;\n case 3:\n state.mode_ = 1;\n if (node.update) {\n return new Interpreter.State(node.update, state.scope);\n }\n break;\n }\n};\n\nInterpreter.prototype[\"stepFunctionDeclaration\"] = function (stack, state, node) {\n // This was found and handled when the scope was populated.\n stack.pop();\n};\n\nInterpreter.prototype[\"stepFunctionExpression\"] = function (stack, state, node) {\n stack.pop();\n state = stack[stack.length - 1];\n var parentScope = state.scope;\n if (node.id) {\n // Create a tiny scope to store the function name.\n // E.g. var x = function foo(){};\n parentScope = this.createSpecialScope(parentScope);\n }\n state.value = this.createFunction(node, parentScope, state.destinationName);\n if (node.id) {\n // Record the function name, read-only.\n this.setProperty(\n parentScope.object,\n node.id.name,\n state.value,\n Interpreter.READONLY_DESCRIPTOR\n );\n }\n};\n\nInterpreter.prototype[\"stepIdentifier\"] = function (stack, state, node) {\n stack.pop();\n if (state.components) {\n stack[stack.length - 1].value = [Interpreter.SCOPE_REFERENCE, node.name];\n return;\n }\n var value = this.getValueFromScope(node.name);\n // An identifier could be a getter if it's a property on the global object.\n if (this.getterStep_) {\n // Call the getter function.\n var func = /** @type {!Interpreter.Object} */ (value);\n return this.createGetter_(func, this.globalObject);\n }\n stack[stack.length - 1].value = value;\n};\n\nInterpreter.prototype[\"stepIfStatement\"] = Interpreter.prototype[\"stepConditionalExpression\"];\n\nInterpreter.prototype[\"stepLabeledStatement\"] = function (stack, state, node) {\n // No need to hit this node again on the way back up the stack.\n stack.pop();\n // Note that a statement might have multiple labels.\n var labels = state.labels || [];\n labels.push(node.label.name);\n var nextState = new Interpreter.State(node.body, state.scope);\n nextState.labels = labels;\n return nextState;\n};\n\nInterpreter.prototype[\"stepLiteral\"] = function (stack, state, node) {\n stack.pop();\n var value = node.value;\n if (value instanceof RegExp) {\n var pseudoRegexp = this.createObjectProto(this.REGEXP_PROTO);\n this.populateRegExp(pseudoRegexp, value);\n value = pseudoRegexp;\n }\n stack[stack.length - 1].value = value;\n};\n\nInterpreter.prototype[\"stepLogicalExpression\"] = function (stack, state, node) {\n if (node.operator !== \"&&\" && node.operator !== \"||\") {\n throw SyntaxError(\"Unknown logical operator: \" + node.operator);\n }\n if (!state.doneLeft_) {\n state.doneLeft_ = true;\n return new Interpreter.State(node.left, state.scope);\n }\n if (!state.doneRight_) {\n if ((node.operator === \"&&\" && !state.value) || (node.operator === \"||\" && state.value)) {\n // Shortcut evaluation.\n stack.pop();\n stack[stack.length - 1].value = state.value;\n } else {\n state.doneRight_ = true;\n return new Interpreter.State(node.right, state.scope);\n }\n } else {\n stack.pop();\n stack[stack.length - 1].value = state.value;\n }\n};\n\nInterpreter.prototype[\"stepMemberExpression\"] = function (stack, state, node) {\n if (!state.doneObject_) {\n state.doneObject_ = true;\n return new Interpreter.State(node.object, state.scope);\n }\n var propName;\n if (!node.computed) {\n state.object_ = state.value;\n // obj.foo -- Just access `foo` directly.\n propName = node.property.name;\n } else if (!state.doneProperty_) {\n state.object_ = state.value;\n // obj[foo] -- Compute value of `foo`.\n state.doneProperty_ = true;\n return new Interpreter.State(node.property, state.scope);\n } else {\n propName = state.value;\n }\n stack.pop();\n if (state.components) {\n stack[stack.length - 1].value = [state.object_, propName];\n } else {\n var value = this.getProperty(state.object_, propName);\n if (this.getterStep_) {\n // Call the getter function.\n var func = /** @type {!Interpreter.Object} */ (value);\n return this.createGetter_(func, state.object_);\n }\n stack[stack.length - 1].value = value;\n }\n};\n\nInterpreter.prototype[\"stepNewExpression\"] = Interpreter.prototype[\"stepCallExpression\"];\n\nInterpreter.prototype[\"stepObjectExpression\"] = function (stack, state, node) {\n var n = state.n_ || 0;\n var property = node.properties[n];\n if (!state.object_) {\n // First execution.\n state.object_ = this.createObjectProto(this.OBJECT_PROTO);\n state.properties_ = Object.create(null);\n } else {\n // Set the property computed in the previous execution.\n var propName = state.destinationName;\n if (!state.properties_[propName]) {\n // Create temp object to collect value, getter, and/or setter.\n state.properties_[propName] = {};\n }\n state.properties_[propName][property.kind] = state.value;\n state.n_ = ++n;\n property = node.properties[n];\n }\n if (property) {\n // Determine property name.\n var key = property.key;\n if (key.type === \"Identifier\") {\n var propName = key.name;\n } else if (key.type === \"Literal\") {\n var propName = key.value;\n } else {\n throw SyntaxError(\"Unknown object structure: \" + key.type);\n }\n // When assigning an unnamed function to a property, the function's name\n // is set to the property name. Record the property name in case the\n // value is a functionExpression.\n // E.g. {foo: function() {}}\n state.destinationName = propName;\n return new Interpreter.State(property.value, state.scope);\n }\n for (var key in state.properties_) {\n var kinds = state.properties_[key];\n if (\"get\" in kinds || \"set\" in kinds) {\n // Set a property with a getter or setter.\n var descriptor = {\n configurable: true,\n enumerable: true,\n get: kinds[\"get\"],\n set: kinds[\"set\"],\n };\n this.setProperty(state.object_, key, Interpreter.VALUE_IN_DESCRIPTOR, descriptor);\n } else {\n // Set a normal property with a value.\n this.setProperty(state.object_, key, kinds[\"init\"]);\n }\n }\n stack.pop();\n stack[stack.length - 1].value = state.object_;\n};\n\nInterpreter.prototype[\"stepProgram\"] = function (stack, state, node) {\n var expression = node.body.shift();\n if (expression) {\n state.done = false;\n return new Interpreter.State(expression, state.scope);\n }\n state.done = true;\n // Don't pop the stateStack.\n // Leave the root scope on the tree in case the program is appended to.\n};\n\nInterpreter.prototype[\"stepReturnStatement\"] = function (stack, state, node) {\n if (node.argument && !state.done_) {\n state.done_ = true;\n return new Interpreter.State(node.argument, state.scope);\n }\n this.unwind(Interpreter.Completion.RETURN, state.value, undefined);\n};\n\nInterpreter.prototype[\"stepSequenceExpression\"] = function (stack, state, node) {\n var n = state.n_ || 0;\n var expression = node.expressions[n];\n if (expression) {\n state.n_ = n + 1;\n return new Interpreter.State(expression, state.scope);\n }\n stack.pop();\n stack[stack.length - 1].value = state.value;\n};\n\nInterpreter.prototype[\"stepSwitchStatement\"] = function (stack, state, node) {\n if (!state.test_) {\n state.test_ = 1;\n return new Interpreter.State(node.discriminant, state.scope);\n }\n if (state.test_ === 1) {\n state.test_ = 2;\n // Preserve switch value between case tests.\n state.switchValue_ = state.value;\n state.defaultCase_ = -1;\n }\n\n while (true) {\n var index = state.index_ || 0;\n var switchCase = node.cases[index];\n if (!state.matched_ && switchCase && !switchCase.test) {\n // Test on the default case is null.\n // Bypass (but store) the default case, and get back to it later.\n state.defaultCase_ = index;\n state.index_ = index + 1;\n continue;\n }\n if (!switchCase && !state.matched_ && state.defaultCase_ !== -1) {\n // Ran through all cases, no match. Jump to the default.\n state.matched_ = true;\n state.index_ = state.defaultCase_;\n continue;\n }\n if (switchCase) {\n if (!state.matched_ && !state.tested_ && switchCase.test) {\n state.tested_ = true;\n return new Interpreter.State(switchCase.test, state.scope);\n }\n if (state.matched_ || state.value === state.switchValue_) {\n state.matched_ = true;\n var n = state.n_ || 0;\n if (switchCase.consequent[n]) {\n state.isSwitch = true;\n state.n_ = n + 1;\n return new Interpreter.State(switchCase.consequent[n], state.scope);\n }\n }\n // Move on to next case.\n state.tested_ = false;\n state.n_ = 0;\n state.index_ = index + 1;\n } else {\n stack.pop();\n return;\n }\n }\n};\n\nInterpreter.prototype[\"stepThisExpression\"] = function (stack, state, node) {\n stack.pop();\n stack[stack.length - 1].value = this.getValueFromScope(\"this\");\n};\n\nInterpreter.prototype[\"stepThrowStatement\"] = function (stack, state, node) {\n if (!state.done_) {\n state.done_ = true;\n return new Interpreter.State(node.argument, state.scope);\n } else {\n this.throwException(state.value);\n }\n};\n\nInterpreter.prototype[\"stepTryStatement\"] = function (stack, state, node) {\n // This step also handles all CatchClause nodes, since these nodes can\n // only appear inside the `handler` property of a TryStatement node.\n if (!state.doneBlock_) {\n state.doneBlock_ = true;\n return new Interpreter.State(node.block, state.scope);\n }\n if (\n state.cv &&\n state.cv.type === Interpreter.Completion.THROW &&\n !state.doneHandler_ &&\n node.handler\n ) {\n state.doneHandler_ = true;\n // Create an new scope and add the error variable.\n var scope = this.createSpecialScope(state.scope);\n this.setProperty(scope.object, node.handler.param.name, state.cv.value);\n state.cv = undefined; // This error has been handled, don't rethrow.\n // Execute catch clause.\n return new Interpreter.State(node.handler.body, scope);\n }\n if (!state.doneFinalizer_ && node.finalizer) {\n state.doneFinalizer_ = true;\n return new Interpreter.State(node.finalizer, state.scope);\n }\n stack.pop();\n if (state.cv) {\n // There was no catch handler, or the catch/finally threw an error.\n // Throw the error up to a higher try.\n this.unwind(state.cv.type, state.cv.value, state.cv.label);\n }\n};\n\nInterpreter.prototype[\"stepUnaryExpression\"] = function (stack, state, node) {\n if (!state.done_) {\n state.done_ = true;\n var nextState = new Interpreter.State(node.argument, state.scope);\n nextState.components = node.operator === \"delete\";\n return nextState;\n }\n stack.pop();\n var value = state.value;\n switch (node.operator) {\n case \"-\":\n value = -value;\n break;\n case \"+\":\n value = +value;\n break;\n case \"!\":\n value = !value;\n break;\n case \"~\":\n value = ~value;\n break;\n case \"delete\":\n var result = true;\n // If value is not an array, then it is a primitive, or some other value.\n // If so, skip the delete and return true.\n if (Array.isArray(value)) {\n var obj = value[0];\n if (obj === Interpreter.SCOPE_REFERENCE) {\n // `delete foo;` is the same as `delete window.foo;`.\n obj = state.scope;\n }\n var name = String(value[1]);\n try {\n delete obj.properties[name];\n } catch (_e) {\n if (state.scope.strict) {\n this.throwException(\n this.TYPE_ERROR,\n \"Cannot delete property '\" + name + \"' of '\" + obj + \"'\"\n );\n } else {\n result = false;\n }\n }\n }\n value = result;\n break;\n case \"typeof\":\n value = value && value.class === \"Function\" ? \"function\" : typeof value;\n break;\n case \"void\":\n value = undefined;\n break;\n default:\n throw SyntaxError(\"Unknown unary operator: \" + node.operator);\n }\n stack[stack.length - 1].value = value;\n};\n\nInterpreter.prototype[\"stepUpdateExpression\"] = function (stack, state, node) {\n if (!state.doneLeft_) {\n state.doneLeft_ = true;\n var nextState = new Interpreter.State(node.argument, state.scope);\n nextState.components = true;\n return nextState;\n }\n if (!state.leftSide_) {\n state.leftSide_ = state.value;\n }\n if (state.doneGetter_) {\n state.leftValue_ = state.value;\n }\n if (!state.doneGetter_) {\n var leftValue = this.getValue(state.leftSide_);\n state.leftValue_ = leftValue;\n if (this.getterStep_) {\n // Call the getter function.\n state.doneGetter_ = true;\n var func = /** @type {!Interpreter.Object} */ (leftValue);\n return this.createGetter_(func, state.leftSide_);\n }\n }\n if (state.doneSetter_) {\n // Return if setter function.\n // Setter method on property has completed.\n // Ignore its return value, and use the original set value instead.\n stack.pop();\n stack[stack.length - 1].value = state.setterValue_;\n return;\n }\n var leftValue = Number(state.leftValue_);\n var changeValue;\n if (node.operator === \"++\") {\n changeValue = leftValue + 1;\n } else if (node.operator === \"--\") {\n changeValue = leftValue - 1;\n } else {\n throw SyntaxError(\"Unknown update expression: \" + node.operator);\n }\n var returnValue = node.prefix ? changeValue : leftValue;\n var setter = this.setValue(state.leftSide_, changeValue);\n if (setter) {\n state.doneSetter_ = true;\n state.setterValue_ = returnValue;\n return this.createSetter_(setter, state.leftSide_, changeValue);\n }\n // Return if no setter function.\n stack.pop();\n stack[stack.length - 1].value = returnValue;\n};\n\nInterpreter.prototype[\"stepVariableDeclaration\"] = function (stack, state, node) {\n // This step also handles all VariableDeclarator nodes, since these nodes can\n // only appear inside the `declarations` array of a VariableDeclaration node.\n var declarations = node.declarations;\n var n = state.n_ || 0;\n var declarationNode = declarations[n];\n if (state.init_ && declarationNode) {\n // This setValue call never needs to deal with calling a setter function.\n // Note that this is setting the init value, not defining the variable.\n // Variable definition is done when scope is populated.\n this.setValueToScope(declarationNode.id.name, state.value);\n state.init_ = false;\n declarationNode = declarations[++n];\n }\n while (declarationNode) {\n // Skip any declarations that are not initialized. They have already\n // been defined as undefined in populateScope_.\n if (declarationNode.init) {\n state.n_ = n;\n state.init_ = true;\n // When assigning an unnamed function to a variable, the function's name\n // is set to the variable name. Record the variable name in case the\n // right side is a functionExpression.\n // E.g. var foo = function() {};\n state.destinationName = declarationNode.id.name;\n return new Interpreter.State(declarationNode.init, state.scope);\n }\n declarationNode = declarations[++n];\n }\n stack.pop();\n};\n\nInterpreter.prototype[\"stepWithStatement\"] = function (stack, state, node) {\n if (!state.doneObject_) {\n state.doneObject_ = true;\n return new Interpreter.State(node.object, state.scope);\n }\n stack.pop();\n var scope = this.createSpecialScope(state.scope, state.value);\n return new Interpreter.State(node.body, scope);\n};\n\nInterpreter.prototype[\"stepWhileStatement\"] = Interpreter.prototype[\"stepDoWhileStatement\"];\n\n// Preserve top-level API functions from being pruned/renamed by JS compilers.\n// Add others as needed.\nInterpreter.nativeGlobal[\"Interpreter\"] = Interpreter;\nInterpreter.prototype[\"step\"] = Interpreter.prototype.step;\nInterpreter.prototype[\"run\"] = Interpreter.prototype.run;\nInterpreter.prototype[\"appendCode\"] = Interpreter.prototype.appendCode;\nInterpreter.prototype[\"createObject\"] = Interpreter.prototype.createObject;\nInterpreter.prototype[\"createObjectProto\"] = Interpreter.prototype.createObjectProto;\nInterpreter.prototype[\"createAsyncFunction\"] = Interpreter.prototype.createAsyncFunction;\nInterpreter.prototype[\"createNativeFunction\"] = Interpreter.prototype.createNativeFunction;\nInterpreter.prototype[\"getProperty\"] = Interpreter.prototype.getProperty;\nInterpreter.prototype[\"setProperty\"] = Interpreter.prototype.setProperty;\nInterpreter.prototype[\"getStatus\"] = Interpreter.prototype.getStatus;\nInterpreter.prototype[\"nativeToPseudo\"] = Interpreter.prototype.nativeToPseudo;\nInterpreter.prototype[\"pseudoToNative\"] = Interpreter.prototype.pseudoToNative;\nInterpreter.prototype[\"getGlobalScope\"] = Interpreter.prototype.getGlobalScope;\nInterpreter.prototype[\"getStateStack\"] = Interpreter.prototype.getStateStack;\nInterpreter.prototype[\"setStateStack\"] = Interpreter.prototype.setStateStack;\nInterpreter[\"VALUE_IN_DESCRIPTOR\"] = Interpreter.VALUE_IN_DESCRIPTOR;\nInterpreter[\"Status\"] = Interpreter.Status;\n\nexport { Interpreter };\n",
|
|
97
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
97
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n value: {\n title: \"Value\",\n description: \"Input object or array to query\",\n },\n path: {\n type: \"string\",\n title: \"Path\",\n description: \"Dot-notation path to extract (e.g. 'a.b.c', 'items.0.name', 'items.*.name')\",\n },\n },\n required: [\"value\", \"path\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n result: {\n title: \"Result\",\n description: \"Extracted value(s) from the path\",\n },\n },\n required: [\"result\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type JsonPathTaskInput = FromSchema<typeof inputSchema>;\nexport type JsonPathTaskOutput = FromSchema<typeof outputSchema>;\n\n/**\n * Resolves a dot-notation path against an object. Supports wildcard '*' for\n * iterating over array elements or object keys at a given level.\n */\nfunction resolvePath(obj: unknown, segments: readonly string[]): unknown {\n if (segments.length === 0) return obj;\n\n const [head, ...tail] = segments;\n\n if (head === \"*\") {\n if (Array.isArray(obj)) {\n const results = obj.map((item) => resolvePath(item, tail));\n return tail.length > 0 ? results.flat() : results;\n }\n if (obj !== null && typeof obj === \"object\") {\n const results = Object.values(obj).map((v) => resolvePath(v, tail));\n return tail.length > 0 ? results.flat() : results;\n }\n return undefined;\n }\n\n if (obj === null || obj === undefined || typeof obj !== \"object\") {\n return undefined;\n }\n\n const next = (obj as Record<string, unknown>)[head];\n return resolvePath(next, tail);\n}\n\nfunction extractJsonPath(value: unknown, path: string): unknown {\n const segments = path.split(\".\");\n return resolvePath(value, segments);\n}\n\nexport class JsonPathTask<\n Input extends JsonPathTaskInput = JsonPathTaskInput,\n Output extends JsonPathTaskOutput = JsonPathTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"JsonPathTask\";\n static override readonly category = \"Utility\";\n public static override title = \"JSON Path\";\n public static override description = \"Extracts a value from an object using a dot-notation path\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { result: extractJsonPath(input.value, input.path) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { result: extractJsonPath(input.value, input.path) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n jsonPath: CreateWorkflow<JsonPathTaskInput, JsonPathTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.jsonPath = CreateWorkflow(JsonPathTask);\n",
|
|
98
98
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n createGraphFromDependencyJSON,\n createGraphFromGraphJSON,\n CreateWorkflow,\n Dataflow,\n GraphAsTask,\n GraphAsTaskConfig,\n JsonTaskItem,\n TaskConfig,\n TaskConfigurationError,\n Workflow,\n} from \"@workglow/task-graph\";\nimport type { TaskGraphJson } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n json: {\n type: \"string\",\n title: \"JSON\",\n description: \"The JSON to parse\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type JsonTaskInput = FromSchema<typeof inputSchema>;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n output: {\n title: \"Output\",\n description: \"Output depends on the generated task graph\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type JsonTaskOutput = FromSchema<typeof outputSchema>;\n\n/**\n * JsonTask is a specialized task that creates and manages task graphs from JSON configurations.\n * It allows dynamic creation of task networks by parsing JSON definitions of tasks and their relationships.\n */\nexport class JsonTask<\n Input extends JsonTaskInput = JsonTaskInput,\n Output extends JsonTaskOutput = JsonTaskOutput,\n Config extends GraphAsTaskConfig<Input> = GraphAsTaskConfig<Input>,\n> extends GraphAsTask<Input, Output, Config> {\n public static override type = \"JsonTask\";\n public static override category = \"Hidden\";\n public static override title = \"JSON Task\";\n public static override description =\n \"A task that creates and manages task graphs from JSON configurations\";\n\n public static override inputSchema() {\n return inputSchema;\n }\n\n public static override outputSchema() {\n return outputSchema;\n }\n\n /**\n * Regenerates the entire task graph based on the current JSON input\n * Creates task nodes and establishes data flow connections between them\n */\n public override regenerateGraph() {\n if (!this.runInputData.json) return;\n const data = JSON.parse(this.runInputData.json) as\n | TaskGraphJson\n | JsonTaskItem[]\n | JsonTaskItem;\n\n // Graph format: { tasks, dataflows } (e.g. from builder export)\n if (\n data &&\n typeof data === \"object\" &&\n \"tasks\" in data &&\n Array.isArray((data as TaskGraphJson).tasks) &&\n \"dataflows\" in data &&\n Array.isArray((data as TaskGraphJson).dataflows)\n ) {\n this.subGraph = createGraphFromGraphJSON(data as TaskGraphJson, this.runConfig?.registry);\n super.regenerateGraph();\n return;\n }\n\n // Dependency format: array of JsonTaskItem (or single item)\n let jsonItems: JsonTaskItem[] = Array.isArray(data) ? data : [data as JsonTaskItem];\n this.subGraph = createGraphFromDependencyJSON(jsonItems, this.runConfig?.registry);\n\n for (const item of jsonItems) {\n if (!item.dependencies) continue;\n for (const [input, dependency] of Object.entries(item.dependencies)) {\n const dependencies = Array.isArray(dependency) ? dependency : [dependency];\n for (const dep of dependencies) {\n const sourceTask = this.subGraph.getTask(dep.id);\n if (!sourceTask) {\n throw new TaskConfigurationError(`Dependency id ${dep.id} not found`);\n }\n const df = new Dataflow(sourceTask.id, dep.output, item.id, input);\n this.subGraph.addDataflow(df);\n }\n }\n }\n super.regenerateGraph();\n }\n}\n\n/**\n * Convenience function to create and run a JsonTask\n */\nexport const json = (input: JsonTaskInput, config: TaskConfig = {}) => {\n return new JsonTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n json: CreateWorkflow<JsonTaskInput, JsonTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.json = CreateWorkflow(JsonTask);\n",
|
|
99
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n DATAFLOW_ALL_PORTS,\n IExecuteContext,\n
|
|
99
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n DATAFLOW_ALL_PORTS,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n TaskConfigSchema,\n TaskConfigurationError,\n TaskInput,\n TaskOutput,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema } from \"@workglow/util/schema\";\n\nexport const lambdaTaskConfigSchema = {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n execute: {},\n executePreview: {},\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\ntype LambdaTaskConfig<\n Input extends TaskInput = TaskInput,\n Output extends TaskOutput = TaskOutput,\n> = TaskConfig & {\n execute?: (input: Input, context: IExecuteContext) => Promise<Output>;\n executePreview?: (input: Input, context: IExecutePreviewContext) => Promise<Output | undefined>;\n};\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n [DATAFLOW_ALL_PORTS]: {\n title: \"Input\",\n description: \"Input data to pass to the function\",\n },\n },\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n [DATAFLOW_ALL_PORTS]: {\n title: \"Output\",\n description: \"The output from the execute function\",\n },\n },\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nexport type LambdaTaskInput = Record<string, any>;\nexport type LambdaTaskOutput = Record<string, any>;\n/**\n * LambdaTask provides a way to execute arbitrary functions within the task framework\n * It wraps a provided function and its input into a task that can be integrated\n * into task graphs and workflows\n */\nexport class LambdaTask<\n Input extends TaskInput = LambdaTaskInput,\n Output extends TaskOutput = LambdaTaskOutput,\n Config extends LambdaTaskConfig<Input, Output> = LambdaTaskConfig<Input, Output>,\n> extends Task<Input, Output, Config> {\n public static override type = \"LambdaTask\";\n public static override title = \"Lambda Task\";\n public static override description = \"A task that wraps a provided function and its input\";\n public static override category = \"Hidden\";\n public static override cacheable = true;\n public static override configSchema(): DataPortSchema {\n return lambdaTaskConfigSchema;\n }\n public static override inputSchema() {\n return inputSchema;\n }\n public static override outputSchema() {\n return outputSchema;\n }\n\n public override canSerializeConfig(): boolean {\n return false;\n }\n\n constructor(config: Partial<Config> = {}) {\n if (!config.execute && !config.executePreview) {\n throw new TaskConfigurationError(\n \"LambdaTask must have either execute or executePreview function in config\"\n );\n }\n super(config);\n }\n\n override async execute(input: Input, context: IExecuteContext): Promise<Output> {\n if (typeof this.config.execute === \"function\") {\n return await this.config.execute(input, context);\n }\n return {} as Output;\n }\n\n /**\n * Executes the user-provided preview function with the given input. Returns\n * undefined when no preview function was supplied in the config (the constructor\n * already validated that at least one of execute / executePreview is present).\n */\n override async executePreview(\n input: Input,\n context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n if (typeof this.config.executePreview === \"function\") {\n return await this.config.executePreview(input, context);\n }\n return undefined;\n }\n}\n\n/**\n * Convenience function to create and run a LambdaTask\n */\nexport function lambda<I extends TaskInput, O extends TaskOutput>(\n fn: (input: I, context: IExecuteContext) => Promise<O>\n): Promise<TaskOutput>;\nexport function lambda<I extends TaskInput, O extends TaskOutput>(\n input: I,\n config?: LambdaTaskConfig<I, O>\n): Promise<TaskOutput>;\n\nexport function lambda<I extends TaskInput, O extends TaskOutput>(\n input: I | ((input: I, context: IExecuteContext) => Promise<O>),\n config?: LambdaTaskConfig<I, O>\n): Promise<TaskOutput> {\n if (typeof input === \"function\") {\n const task = new LambdaTask<I, O>({\n execute: input,\n } as any);\n return task.run();\n }\n const task = new LambdaTask<I, O>({ ...config, defaults: input as Partial<I> } as any);\n return task.run();\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n lambda: CreateWorkflow<\n LambdaTaskInput,\n LambdaTaskOutput,\n LambdaTaskConfig<LambdaTaskInput, LambdaTaskOutput>\n >;\n }\n}\n\nWorkflow.prototype.lambda = CreateWorkflow(LambdaTask);\n",
|
|
100
100
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskEntitlements } from \"@workglow/task-graph\";\nimport {\n CreateWorkflow,\n Entitlements,\n IExecuteContext,\n mergeEntitlements,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\nimport { getMcpServerConfig } from \"../../mcp-server/getMcpServerConfig\";\nimport { TypeMcpServer } from \"../../mcp-server/mcpServerReferenceObjectSchema\";\nimport { getMcpServerTransport } from \"../../util/getMcpServerTransport\";\nimport { getMcpTaskDeps } from \"../../util/McpTaskDeps\";\n\nconst mcpListTypes = [\"tools\", \"resources\", \"prompts\"] as const;\n\nconst iconSchema = {\n type: \"object\",\n properties: {\n src: { type: \"string\" },\n mimeType: { type: \"string\" },\n sizes: { type: \"array\", items: { type: \"string\" } },\n theme: { type: \"string\", enum: [\"light\", \"dark\"] },\n },\n additionalProperties: false,\n} as const;\n\nconst outputSchemaTools = {\n type: \"object\",\n properties: {\n tools: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n name: { type: \"string\" },\n description: { type: \"string\" },\n inputSchema: {\n type: \"object\",\n properties: {\n type: { type: \"string\" },\n properties: { type: \"object\", additionalProperties: true },\n required: { type: \"array\", items: { type: \"string\" } },\n },\n additionalProperties: true,\n },\n outputSchema: {\n type: \"object\",\n properties: {\n type: { type: \"string\" },\n properties: { type: \"object\", additionalProperties: true },\n required: { type: \"array\", items: { type: \"string\" } },\n },\n additionalProperties: true,\n },\n annotations: {\n type: \"object\",\n properties: {\n title: { type: \"string\" },\n readOnlyHint: { type: \"boolean\" },\n destructiveHint: { type: \"boolean\" },\n idempotentHint: { type: \"boolean\" },\n openWorldHint: { type: \"boolean\" },\n },\n additionalProperties: false,\n },\n execution: {\n type: \"object\",\n properties: {\n taskSupport: {\n type: \"string\",\n enum: [\"optional\", \"required\", \"forbidden\"],\n },\n },\n additionalProperties: false,\n },\n _meta: { type: \"object\", additionalProperties: true },\n icons: { type: \"array\", items: iconSchema },\n title: { type: \"string\" },\n },\n required: [\"name\", \"inputSchema\"],\n additionalProperties: false,\n },\n title: \"Tools\",\n description: \"The tools available on the MCP server\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchemaResources = {\n type: \"object\",\n properties: {\n resources: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n uri: { type: \"string\" },\n name: { type: \"string\" },\n description: { type: \"string\" },\n mimeType: { type: \"string\" },\n annotations: {\n type: \"object\",\n properties: {\n audience: {\n type: \"array\",\n items: { type: \"string\", enum: [\"user\", \"assistant\"] },\n },\n priority: { type: \"number\" },\n lastModified: { type: \"string\" },\n },\n additionalProperties: false,\n },\n _meta: { type: \"object\", additionalProperties: true },\n icons: { type: \"array\", items: iconSchema },\n title: { type: \"string\" },\n },\n required: [\"uri\", \"name\"],\n additionalProperties: false,\n },\n title: \"Resources\",\n description: \"The resources available on the MCP server\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchemaPrompts = {\n type: \"object\",\n properties: {\n prompts: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n name: { type: \"string\" },\n description: { type: \"string\" },\n arguments: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n name: { type: \"string\" },\n description: { type: \"string\" },\n required: { type: \"boolean\" },\n },\n required: [\"name\"],\n additionalProperties: false,\n },\n },\n _meta: { type: \"object\", additionalProperties: true },\n icons: { type: \"array\", items: iconSchema },\n title: { type: \"string\" },\n },\n required: [\"name\"],\n additionalProperties: false,\n },\n title: \"Prompts\",\n description: \"The prompts available on the MCP server\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchemaAll = {\n type: \"object\",\n properties: {\n ...outputSchemaTools.properties,\n ...outputSchemaResources.properties,\n ...outputSchemaPrompts.properties,\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type McpListTaskOutput = FromSchema<typeof outputSchemaAll>;\n\n/** MCP list input (transport + server config fields, plus task-specific fields like list_type). */\nexport type McpListTaskInput = Record<string, unknown>;\n\nexport class McpListTask extends Task<McpListTaskInput, McpListTaskOutput, TaskConfig> {\n public static override type = \"McpListTask\";\n public static override category = \"MCP\";\n public static override title = \"MCP List\";\n public static override description =\n \"Lists tools, resources, or prompts available on an MCP server\";\n static override readonly cacheable = false;\n public static override hasDynamicSchemas: boolean = true;\n public static override hasDynamicEntitlements: boolean = true;\n\n public static override entitlements(): TaskEntitlements {\n return {\n entitlements: [\n { id: Entitlements.MCP, reason: \"Lists tools, resources, or prompts on MCP servers\" },\n ],\n };\n }\n\n public override entitlements(): TaskEntitlements {\n const base = McpListTask.entitlements();\n const transport = getMcpServerTransport(this);\n if (transport === \"stdio\") {\n return mergeEntitlements(base, {\n entitlements: [\n { id: Entitlements.MCP_STDIO, reason: \"Uses stdio transport to spawn local process\" },\n ],\n });\n }\n // sse and streamable-http transports require network access\n return mergeEntitlements(base, {\n entitlements: [{ id: Entitlements.NETWORK_HTTP, reason: \"Connects to MCP server over HTTP\" }],\n });\n }\n\n public static override inputSchema(): DataPortSchema {\n const { mcpServerConfigSchema } = getMcpTaskDeps();\n return {\n type: \"object\",\n properties: {\n server: TypeMcpServer(mcpServerConfigSchema),\n list_type: {\n type: \"string\",\n enum: mcpListTypes,\n title: \"List Type\",\n description: \"The type of items to list from the MCP server\",\n },\n },\n required: [\"server\", \"list_type\"],\n additionalProperties: false,\n } as const satisfies DataPortSchema;\n }\n\n public static override outputSchema() {\n return outputSchemaAll;\n }\n\n public override outputSchema(): DataPortSchema {\n const listType = this.runInputData?.list_type ?? this.defaults?.list_type ?? null;\n\n if (listType === null || listType === undefined) {\n return outputSchemaAll;\n }\n\n switch (listType) {\n case \"tools\":\n return outputSchemaTools;\n case \"resources\":\n return outputSchemaResources;\n case \"prompts\":\n return outputSchemaPrompts;\n default:\n return outputSchemaAll;\n }\n }\n\n public override setInput(input: Partial<McpListTaskInput>): void {\n if (!(\"list_type\" in input)) {\n super.setInput(input);\n return;\n }\n\n const previousListType = this.runInputData?.list_type ?? this.defaults?.list_type ?? null;\n super.setInput(input);\n const newListType = this.runInputData?.list_type ?? this.defaults?.list_type ?? null;\n\n if (previousListType !== newListType) {\n this.emitSchemaChange();\n }\n }\n\n override async execute(\n input: McpListTaskInput,\n context: IExecuteContext\n ): Promise<McpListTaskOutput> {\n const serverConfig = getMcpServerConfig(input as Record<string, unknown>);\n\n const { mcpClientFactory } = getMcpTaskDeps();\n const { client } = await mcpClientFactory.create(serverConfig, context.signal);\n const listType = input.list_type;\n try {\n switch (listType) {\n case \"tools\": {\n const result = await client.listTools();\n return { tools: result.tools };\n }\n case \"resources\": {\n const result = await client.listResources();\n return { resources: result.resources };\n }\n case \"prompts\": {\n const result = await client.listPrompts();\n return { prompts: result.prompts };\n }\n default:\n throw new Error(`Unsupported list type: ${String(listType)}`);\n }\n } finally {\n await client.close();\n }\n }\n}\n\nexport const mcpList = async (\n input: McpListTaskInput,\n config: TaskConfig = {}\n): Promise<McpListTaskOutput> => {\n return new McpListTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n mcpList: CreateWorkflow<McpListTaskInput, McpListTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.mcpList = CreateWorkflow(McpListTask);\n",
|
|
101
101
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Task } from \"@workglow/task-graph\";\n\n/**\n * Resolve the MCP server transport from a task instance, preferring runtime\n * input (`runInputData.server.transport`) over construction-time config\n * (`config.server.transport`).\n */\nexport function getMcpServerTransport(task: Task<any, any, any>): string | undefined {\n const runInputData = (task as { runInputData?: Record<string, unknown> }).runInputData;\n const inputServer = runInputData?.server as Record<string, unknown> | undefined;\n if (typeof inputServer?.transport === \"string\") {\n return inputServer.transport;\n }\n\n const configServer = (task.config as Record<string, unknown>)?.server as\n | Record<string, unknown>\n | undefined;\n\n if (typeof configServer?.transport === \"string\") {\n return configServer.transport;\n }\n\n return undefined;\n}\n",
|
|
102
102
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskEntitlements } from \"@workglow/task-graph\";\nimport {\n CreateWorkflow,\n Entitlements,\n IExecuteContext,\n mergeEntitlements,\n Task,\n TaskConfig,\n TaskConfigSchema,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, DataPortSchemaObject, FromSchema } from \"@workglow/util/schema\";\nimport { getMcpServerConfig } from \"../../mcp-server/getMcpServerConfig\";\nimport { getMcpServerTransport } from \"../../util/getMcpServerTransport\";\nimport { TypeMcpServer } from \"../../mcp-server/mcpServerReferenceObjectSchema\";\nimport type { McpServerConfig } from \"../../util/McpTaskDeps\";\nimport { getMcpTaskDeps } from \"../../util/McpTaskDeps\";\nimport type { McpListTaskInput } from \"./McpListTask\";\nimport { mcpList } from \"./McpListTask\";\n\nconst annotationsSchema = {\n type: \"object\",\n properties: {\n audience: {\n type: \"array\",\n items: { type: \"string\", enum: [\"user\", \"assistant\"] },\n },\n priority: { type: \"number\" },\n lastModified: { type: \"string\" },\n },\n additionalProperties: false,\n} as const;\n\nconst contentSchema = {\n anyOf: [\n {\n type: \"object\",\n properties: {\n type: { type: \"string\", const: \"text\" },\n text: { type: \"string\" },\n annotations: annotationsSchema,\n _meta: { type: \"object\", additionalProperties: true },\n },\n required: [\"type\", \"text\"],\n additionalProperties: false,\n },\n {\n type: \"object\",\n properties: {\n type: { type: \"string\", const: \"image\" },\n data: { type: \"string\" },\n mimeType: { type: \"string\" },\n annotations: annotationsSchema,\n _meta: { type: \"object\", additionalProperties: true },\n },\n required: [\"type\", \"data\", \"mimeType\"],\n additionalProperties: false,\n },\n {\n type: \"object\",\n properties: {\n type: { type: \"string\", const: \"audio\" },\n data: { type: \"string\" },\n mimeType: { type: \"string\" },\n annotations: annotationsSchema,\n _meta: { type: \"object\", additionalProperties: true },\n },\n required: [\"type\", \"data\", \"mimeType\"],\n additionalProperties: false,\n },\n {\n type: \"object\",\n properties: {\n type: { type: \"string\", const: \"resource\" },\n resource: {\n type: \"object\",\n properties: {\n uri: { type: \"string\" },\n text: { type: \"string\" },\n blob: { type: \"string\" },\n mimeType: { type: \"string\" },\n _meta: { type: \"object\", additionalProperties: true },\n },\n required: [\"uri\"],\n additionalProperties: false,\n },\n annotations: annotationsSchema,\n _meta: { type: \"object\", additionalProperties: true },\n },\n required: [\"type\", \"resource\"],\n additionalProperties: false,\n },\n {\n type: \"object\",\n properties: {\n type: { type: \"string\", const: \"resource_link\" },\n uri: { type: \"string\" },\n name: { type: \"string\" },\n description: { type: \"string\" },\n mimeType: { type: \"string\" },\n annotations: annotationsSchema,\n icons: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n src: { type: \"string\" },\n mimeType: { type: \"string\" },\n sizes: { type: \"array\", items: { type: \"string\" } },\n theme: { type: \"string\", enum: [\"light\", \"dark\"] },\n },\n additionalProperties: false,\n },\n },\n title: { type: \"string\" },\n _meta: { type: \"object\", additionalProperties: true },\n },\n required: [\"type\", \"uri\", \"name\"],\n additionalProperties: false,\n },\n ],\n} as const;\n\nconst fallbackOutputSchema = {\n type: \"object\",\n properties: {\n messages: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n role: { type: \"string\", enum: [\"user\", \"assistant\"] },\n content: contentSchema,\n },\n required: [\"role\", \"content\"],\n additionalProperties: false,\n },\n title: \"Messages\",\n description: \"The messages returned by the prompt\",\n },\n description: {\n type: \"string\",\n title: \"Description\",\n description: \"The description of the prompt\",\n },\n },\n required: [\"messages\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst fallbackInputSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type McpPromptGetTaskConfig = TaskConfig & Record<string, unknown>;\nexport type McpPromptGetTaskInput = Record<string, unknown>;\nexport type McpPromptGetTaskOutput = FromSchema<typeof fallbackOutputSchema>;\n\nexport class McpPromptGetTask extends Task<\n McpPromptGetTaskInput,\n McpPromptGetTaskOutput,\n McpPromptGetTaskConfig\n> {\n public static override type = \"McpPromptGetTask\";\n public static override category = \"MCP\";\n public static override title = \"MCP Get Prompt\";\n public static override description = \"Gets a prompt from an MCP server\";\n static override readonly cacheable = false;\n public static override customizable = true;\n public static override hasDynamicSchemas = true;\n public static override hasDynamicEntitlements: boolean = true;\n\n public static override entitlements(): TaskEntitlements {\n return {\n entitlements: [{ id: Entitlements.MCP_PROMPT_GET, reason: \"Gets prompts from MCP servers\" }],\n };\n }\n\n public override entitlements(): TaskEntitlements {\n const base = McpPromptGetTask.entitlements();\n const transport = getMcpServerTransport(this);\n if (transport === \"stdio\") {\n return mergeEntitlements(base, {\n entitlements: [\n { id: Entitlements.MCP_STDIO, reason: \"Uses stdio transport to spawn local process\" },\n ],\n });\n }\n // sse and streamable-http transports require network access\n return mergeEntitlements(base, {\n entitlements: [\n { id: Entitlements.NETWORK_HTTP, reason: \"Connects to MCP server over HTTP\" },\n { id: Entitlements.CREDENTIAL, reason: \"May require authentication\", optional: true },\n ],\n });\n }\n\n public static override inputSchema() {\n return fallbackInputSchema;\n }\n\n public static override outputSchema() {\n return fallbackOutputSchema;\n }\n\n public static override configSchema(): DataPortSchema {\n const { mcpServerConfigSchema } = getMcpTaskDeps();\n return {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n server: TypeMcpServer(mcpServerConfigSchema),\n prompt_name: {\n type: \"string\",\n title: \"Prompt Name\",\n description: \"The name of the prompt to get\",\n format: \"string:mcp-promptname\",\n },\n },\n required: [\"server\", \"prompt_name\"],\n additionalProperties: false,\n } as const satisfies DataPortSchema;\n }\n\n public override inputSchema(): DataPortSchema {\n return this.config?.inputSchema ?? fallbackInputSchema;\n }\n\n public override outputSchema(): DataPortSchema {\n return this.config?.outputSchema ?? fallbackOutputSchema;\n }\n\n private _schemasDiscoveringPromise: Promise<void> | undefined;\n\n async discoverSchemas(_signal?: AbortSignal, serverConfig?: McpServerConfig): Promise<void> {\n if (this.config.inputSchema) return;\n if (this._schemasDiscoveringPromise) return this._schemasDiscoveringPromise;\n const resolved = serverConfig ?? getMcpServerConfig(this.config as Record<string, unknown>);\n if (!resolved.transport || !this.config.prompt_name) return;\n\n this._schemasDiscoveringPromise = (async () => {\n try {\n const result = await mcpList({\n server: resolved,\n list_type: \"prompts\",\n } as McpListTaskInput);\n\n const prompt = result.prompts?.find((p) => p.name === this.config.prompt_name);\n if (prompt) {\n const args = prompt.arguments ?? [];\n const required = args.filter((a) => a.required).map((a) => a.name);\n const properties: DataPortSchemaObject[\"properties\"] = {};\n for (const arg of args) {\n properties[arg.name] = {\n type: \"string\",\n ...(arg.description ? { description: arg.description } : {}),\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.config.inputSchema = {\n type: \"object\",\n properties,\n ...(required.length > 0 ? { required } : {}),\n additionalProperties: false,\n };\n\n this.emitSchemaChange();\n }\n } finally {\n this._schemasDiscoveringPromise = undefined;\n }\n })();\n return this._schemasDiscoveringPromise;\n }\n\n override async execute(\n input: McpPromptGetTaskInput,\n context: IExecuteContext\n ): Promise<McpPromptGetTaskOutput> {\n const serverConfig = getMcpServerConfig(this.config as Record<string, unknown>);\n\n await this.discoverSchemas(context.signal, serverConfig);\n\n const { mcpClientFactory } = getMcpTaskDeps();\n const { client } = await mcpClientFactory.create(serverConfig, context.signal);\n try {\n const result = await client.getPrompt({\n name: String(this.config.prompt_name ?? \"\"),\n arguments: input as Record<string, string>,\n });\n return {\n messages: result.messages,\n description: result.description,\n };\n } finally {\n await client.close();\n }\n }\n}\n\nexport const mcpPromptGet = async (\n input: McpPromptGetTaskInput,\n config: McpPromptGetTaskConfig\n): Promise<McpPromptGetTaskOutput> => {\n return new McpPromptGetTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n mcpPromptGet: CreateWorkflow<\n McpPromptGetTaskInput,\n McpPromptGetTaskOutput,\n McpPromptGetTaskConfig\n >;\n }\n}\n\nWorkflow.prototype.mcpPromptGet = CreateWorkflow(McpPromptGetTask);\n",
|
|
@@ -105,8 +105,8 @@
|
|
|
105
105
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TaskEntitlements } from \"@workglow/task-graph\";\nimport {\n CreateWorkflow,\n Entitlements,\n IExecuteContext,\n mergeEntitlements,\n Task,\n TaskConfig,\n TaskConfigSchema,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, DataPortSchemaObject } from \"@workglow/util/schema\";\nimport { getMcpServerConfig } from \"../../mcp-server/getMcpServerConfig\";\nimport { TypeMcpServer } from \"../../mcp-server/mcpServerReferenceObjectSchema\";\nimport { getMcpServerTransport } from \"../../util/getMcpServerTransport\";\nimport type { McpServerConfig } from \"../../util/McpTaskDeps\";\nimport { getMcpTaskDeps } from \"../../util/McpTaskDeps\";\nimport type { McpListTaskInput } from \"./McpListTask\";\nimport { mcpList } from \"./McpListTask\";\n\nconst annotationsSchema = {\n type: \"object\",\n properties: {\n audience: {\n type: \"array\",\n items: { type: \"string\", enum: [\"user\", \"assistant\"] },\n },\n priority: { type: \"number\" },\n lastModified: { type: \"string\" },\n },\n additionalProperties: false,\n} as const;\n\nconst toolContentSchema = {\n anyOf: [\n {\n type: \"object\",\n properties: {\n type: { type: \"string\", const: \"text\" },\n text: { type: \"string\" },\n annotations: annotationsSchema,\n _meta: { type: \"object\", additionalProperties: true },\n },\n required: [\"type\", \"text\"],\n additionalProperties: false,\n },\n {\n type: \"object\",\n properties: {\n type: { type: \"string\", const: \"image\" },\n data: { type: \"string\" },\n mimeType: { type: \"string\" },\n annotations: annotationsSchema,\n _meta: { type: \"object\", additionalProperties: true },\n },\n required: [\"type\", \"data\", \"mimeType\"],\n additionalProperties: false,\n },\n {\n type: \"object\",\n properties: {\n type: { type: \"string\", const: \"audio\" },\n data: { type: \"string\" },\n mimeType: { type: \"string\" },\n annotations: annotationsSchema,\n _meta: { type: \"object\", additionalProperties: true },\n },\n required: [\"type\", \"data\", \"mimeType\"],\n additionalProperties: false,\n },\n {\n type: \"object\",\n properties: {\n type: { type: \"string\", const: \"resource\" },\n resource: {\n type: \"object\",\n properties: {\n uri: { type: \"string\" },\n text: { type: \"string\" },\n blob: { type: \"string\" },\n mimeType: { type: \"string\" },\n _meta: { type: \"object\", additionalProperties: true },\n },\n required: [\"uri\"],\n additionalProperties: false,\n },\n annotations: annotationsSchema,\n _meta: { type: \"object\", additionalProperties: true },\n },\n required: [\"type\", \"resource\"],\n additionalProperties: false,\n },\n {\n type: \"object\",\n properties: {\n type: { type: \"string\", const: \"resource_link\" },\n uri: { type: \"string\" },\n name: { type: \"string\" },\n description: { type: \"string\" },\n mimeType: { type: \"string\" },\n annotations: annotationsSchema,\n icons: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n src: { type: \"string\" },\n mimeType: { type: \"string\" },\n sizes: { type: \"array\", items: { type: \"string\" } },\n theme: { type: \"string\", enum: [\"light\", \"dark\"] },\n },\n additionalProperties: false,\n },\n },\n title: { type: \"string\" },\n _meta: { type: \"object\", additionalProperties: true },\n },\n required: [\"type\", \"uri\", \"name\"],\n additionalProperties: false,\n },\n ],\n} as const;\n\nconst fallbackOutputSchema = {\n type: \"object\",\n properties: {\n content: {\n type: \"array\",\n items: toolContentSchema,\n title: \"Content\",\n description: \"The content returned by the tool\",\n },\n isError: {\n type: \"boolean\",\n title: \"Is Error\",\n description: \"Whether the tool call resulted in an error\",\n },\n },\n required: [\"content\", \"isError\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst fallbackInputSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\n/** Config includes MCP connection fields (transport-dependent shape is registered per platform). */\nexport type McpToolCallTaskConfig = TaskConfig & {\n inputSchema?: DataPortSchema;\n outputSchema?: DataPortSchema;\n} & Record<string, unknown>;\nexport type McpToolCallTaskInput = Record<string, unknown>;\nexport type McpToolCallTaskOutput = Record<string, unknown>;\n\nexport class McpToolCallTask extends Task<\n McpToolCallTaskInput,\n McpToolCallTaskOutput,\n McpToolCallTaskConfig\n> {\n public static override type = \"McpToolCallTask\";\n public static override category = \"MCP\";\n public static override title = \"MCP Call Tool\";\n public static override description = \"Calls a tool on an MCP server and returns the result\";\n public static override cacheable = false;\n public static override customizable = true;\n public static override hasDynamicSchemas = true;\n public static override hasDynamicEntitlements: boolean = true;\n\n public static override entitlements(): TaskEntitlements {\n return {\n entitlements: [{ id: Entitlements.MCP_TOOL_CALL, reason: \"Calls tools on MCP servers\" }],\n };\n }\n\n public override entitlements(): TaskEntitlements {\n const base = McpToolCallTask.entitlements();\n const transport = getMcpServerTransport(this);\n if (transport === \"stdio\") {\n return mergeEntitlements(base, {\n entitlements: [\n { id: Entitlements.MCP_STDIO, reason: \"Uses stdio transport to spawn local process\" },\n ],\n });\n }\n // sse and streamable-http transports require network access\n return mergeEntitlements(base, {\n entitlements: [\n { id: Entitlements.NETWORK_HTTP, reason: \"Connects to MCP server over HTTP\" },\n { id: Entitlements.CREDENTIAL, reason: \"May require authentication\", optional: true },\n ],\n });\n }\n\n public static override inputSchema() {\n return fallbackInputSchema;\n }\n\n public static override outputSchema() {\n return fallbackOutputSchema;\n }\n\n public static override configSchema(): DataPortSchema {\n const { mcpServerConfigSchema } = getMcpTaskDeps();\n return {\n type: \"object\",\n properties: {\n ...TaskConfigSchema[\"properties\"],\n server: TypeMcpServer(mcpServerConfigSchema),\n tool_name: {\n type: \"string\",\n title: \"Tool Name\",\n description: \"The name of the tool to call\",\n format: \"string:mcp-toolname\",\n },\n },\n required: [\"server\", \"tool_name\"],\n additionalProperties: false,\n } as const satisfies DataPortSchema;\n }\n\n public override inputSchema(): DataPortSchema {\n return this.config?.inputSchema ?? fallbackInputSchema;\n }\n\n public override outputSchema(): DataPortSchema {\n return this.config?.outputSchema ?? fallbackOutputSchema;\n }\n\n private _schemasDiscoveringPromise: Promise<void> | undefined;\n\n async discoverSchemas(_signal?: AbortSignal, serverConfig?: McpServerConfig): Promise<void> {\n if (this.config.inputSchema && this.config.outputSchema) return;\n if (this._schemasDiscoveringPromise) return this._schemasDiscoveringPromise;\n const resolved = serverConfig ?? getMcpServerConfig(this.config as Record<string, unknown>);\n if (!resolved.transport || !this.config.tool_name) return;\n\n this._schemasDiscoveringPromise = (async () => {\n try {\n const result = await mcpList({\n server: resolved,\n list_type: \"tools\",\n } as McpListTaskInput);\n\n const tool = result.tools?.find((t) => t.name === this.config.tool_name);\n if (tool) {\n if (!this.config.inputSchema) {\n this.config.inputSchema = tool.inputSchema as DataPortSchemaObject;\n }\n if (!this.config.outputSchema && tool.outputSchema) {\n this.config.outputSchema = tool.outputSchema as DataPortSchemaObject;\n }\n this.emitSchemaChange();\n }\n } finally {\n this._schemasDiscoveringPromise = undefined;\n }\n })();\n return this._schemasDiscoveringPromise;\n }\n\n override async execute(\n input: McpToolCallTaskInput,\n context: IExecuteContext\n ): Promise<McpToolCallTaskOutput> {\n const serverConfig = getMcpServerConfig(this.config as Record<string, unknown>);\n\n await this.discoverSchemas(context.signal, serverConfig);\n\n const { mcpClientFactory } = getMcpTaskDeps();\n const { client } = await mcpClientFactory.create(serverConfig, context.signal);\n try {\n const result = await client.callTool({\n name: String(this.config.tool_name ?? \"\"),\n arguments: input as Record<string, unknown>,\n });\n if (!(\"content\" in result) || !Array.isArray(result.content)) {\n throw new Error(\"Expected tool result with content array\");\n }\n const content = result.content;\n const isError = result.isError === true;\n\n // Prefer structuredContent when present (MCP spec: parsed output matching tool's output schema)\n const structuredContent =\n \"structuredContent\" in result &&\n result.structuredContent &&\n typeof result.structuredContent === \"object\" &&\n !Array.isArray(result.structuredContent)\n ? (result.structuredContent as Record<string, unknown>)\n : undefined;\n\n // When no structuredContent, try parsing single text item as JSON (many servers return JSON in text)\n let parsedFromText: Record<string, unknown> | undefined;\n if (!structuredContent && content.length === 1) {\n const item = content[0];\n if (\n item &&\n typeof item === \"object\" &&\n \"type\" in item &&\n item.type === \"text\" &&\n \"text\" in item\n ) {\n const text = String(item.text);\n const trimmed = text.trim();\n if (\n (trimmed.startsWith(\"{\") && trimmed.endsWith(\"}\")) ||\n (trimmed.startsWith(\"[\") && trimmed.endsWith(\"]\"))\n ) {\n try {\n const parsed = JSON.parse(text) as unknown;\n if (parsed !== null && typeof parsed === \"object\" && !Array.isArray(parsed)) {\n parsedFromText = parsed as Record<string, unknown>;\n }\n } catch {\n // Not valid JSON, ignore\n }\n }\n }\n }\n\n return {\n content,\n isError,\n ...parsedFromText,\n ...structuredContent,\n };\n } finally {\n await client.close();\n }\n }\n}\n\nexport const mcpToolCall = async (\n input: McpToolCallTaskInput,\n config: McpToolCallTaskConfig\n): Promise<McpToolCallTaskOutput> => {\n return new McpToolCallTask(config).run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n mcpToolCall: CreateWorkflow<McpToolCallTaskInput, McpToolCallTaskOutput, McpToolCallTaskConfig>;\n }\n}\n\nWorkflow.prototype.mcpToolCall = CreateWorkflow(McpToolCallTask);\n",
|
|
106
106
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Server } from \"@modelcontextprotocol/sdk/server\";\nimport type { ElicitRequestFormParams, ElicitResult } from \"@modelcontextprotocol/sdk/types\";\nimport type { IHumanConnector, IHumanRequest, IHumanResponse } from \"@workglow/util\";\n\n/**\n * Converts a workglow DataPortSchema to MCP's flat requestedSchema format.\n *\n * MCP elicitation supports only a restricted subset of JSON Schema:\n * flat object with top-level properties only, no nesting.\n */\nfunction defaultAbortError(): Error {\n const err = new Error(\"The operation was aborted\");\n err.name = \"AbortError\";\n return err;\n}\n\nfunction toMcpRequestedSchema(\n schema: Record<string, unknown>\n): ElicitRequestFormParams[\"requestedSchema\"] {\n const props = (schema.properties ??\n {}) as ElicitRequestFormParams[\"requestedSchema\"][\"properties\"];\n const required = schema.required as string[] | undefined;\n return {\n type: \"object\" as const,\n properties: props,\n ...(required ? { required } : {}),\n };\n}\n\n/**\n * IHumanConnector implementation that delegates to MCP Server.elicitInput().\n *\n * Handles all three interaction kinds:\n * - \"notify\": Sends a notification via MCP logging, resolves immediately.\n * - \"display\": Sends content for display, resolves immediately.\n * - \"elicit\": Delegates to Server.elicitInput() for structured form input.\n *\n * Usage:\n * ```ts\n * import { Server } from \"@modelcontextprotocol/sdk/server\";\n * import { McpElicitationConnector } from \"@workglow/tasks\";\n * import { HUMAN_CONNECTOR } from \"@workglow/util\";\n *\n * const mcpServer: Server = ...; // your MCP server instance\n * const connector = new McpElicitationConnector(mcpServer);\n * registry.registerInstance(HUMAN_CONNECTOR, connector);\n * ```\n */\nexport class McpElicitationConnector implements IHumanConnector {\n constructor(private readonly server: Server) {}\n\n async send(request: IHumanRequest, signal: AbortSignal): Promise<IHumanResponse> {\n switch (request.kind) {\n case \"notify\":\n return this.handleNotify(request, signal);\n\n case \"display\":\n return this.handleDisplay(request, signal);\n\n case \"elicit\":\n return this.handleElicit(request, signal);\n\n default:\n return this.handleElicit(request, signal);\n }\n }\n\n /**\n * Multi-turn follow-up via MCP elicitation.\n * Each follow-up is a separate elicitInput() call.\n */\n async followUp(\n request: IHumanRequest,\n _previousResponse: IHumanResponse,\n signal: AbortSignal\n ): Promise<IHumanResponse> {\n return this.send(request, signal);\n }\n\n /**\n * Handle \"notify\" kind — fire-and-forget notification.\n * Uses MCP logging notification to send the message to the client.\n */\n private async handleNotify(request: IHumanRequest, signal: AbortSignal): Promise<IHumanResponse> {\n if (signal.aborted) {\n throw signal.reason ?? defaultAbortError();\n }\n\n await this.server.sendLoggingMessage({\n level: \"info\",\n data: request.contentData ?? request.message,\n logger: request.targetHumanId,\n });\n\n if (signal.aborted) {\n throw signal.reason ?? defaultAbortError();\n }\n\n return {\n requestId: request.requestId,\n action: \"accept\",\n content: undefined,\n done: true,\n };\n }\n\n /**\n * Handle \"display\" kind — present content to the human.\n * Uses MCP logging notification with the content data.\n * Resolves immediately since no response is expected by default.\n */\n private async handleDisplay(\n request: IHumanRequest,\n signal: AbortSignal\n ): Promise<IHumanResponse> {\n if (signal.aborted) {\n throw signal.reason ?? defaultAbortError();\n }\n await this.server.sendLoggingMessage({\n level: \"info\",\n data: {\n message: request.message,\n content: request.contentData,\n schema: request.contentSchema,\n },\n logger: request.targetHumanId,\n });\n\n if (signal.aborted) {\n throw signal.reason ?? defaultAbortError();\n }\n\n return {\n requestId: request.requestId,\n action: \"accept\",\n content: undefined,\n done: true,\n };\n }\n\n /**\n * Handle \"elicit\" kind — request structured input via MCP elicitation.\n */\n private async handleElicit(request: IHumanRequest, signal: AbortSignal): Promise<IHumanResponse> {\n const mcpResult: ElicitResult = await this.server.elicitInput(\n {\n mode: \"form\",\n message: request.message,\n requestedSchema: toMcpRequestedSchema(request.contentSchema as Record<string, unknown>),\n },\n { signal }\n );\n\n return {\n requestId: request.requestId,\n action: mcpResult.action,\n content:\n mcpResult.action === \"accept\" ? (mcpResult.content as Record<string, unknown>) : undefined,\n done: true,\n };\n }\n}\n",
|
|
107
107
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n output: {\n type: \"array\",\n title: \"Merged Array\",\n description: \"Array containing all input values in order\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type MergeTaskInput = FromSchema<typeof inputSchema>;\nexport type MergeTaskOutput = FromSchema<typeof outputSchema>;\n\n/**\n * MergeTask takes multiple inputs and merges them into a single array output.\n * Input properties are collected and sorted by key name to create a deterministic output order.\n * Useful for collecting results from parallel branches into a single array.\n *\n * Features:\n * - Accepts any number of input properties (additionalProperties: true)\n * - Merges all input values into a single array output\n * - Sorts inputs by property name for consistent ordering\n * - Output is always an array\n *\n * Example:\n * Input: { input_0: \"a\", input_1: \"b\", input_2: \"c\" }\n * Output: { output: [\"a\", \"b\", \"c\"] }\n */\nexport class MergeTask<\n Input extends MergeTaskInput = MergeTaskInput,\n Output extends MergeTaskOutput = MergeTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n public static override type = \"MergeTask\";\n public static override category = \"Utility\";\n public static override title = \"Merge\";\n public static override description = \"Merges multiple inputs into a single array output\";\n static override readonly cacheable = true;\n\n public static override inputSchema() {\n return inputSchema;\n }\n\n public static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output> {\n // Get all input keys and sort them for deterministic order\n const keys = Object.keys(input).sort((a, b) =>\n a.localeCompare(b, undefined, { numeric: true })\n );\n\n // Collect values in sorted order\n const values = keys.map((key) => input[key]);\n\n return {\n output: values,\n } as Output;\n }\n}\n\nexport const merge = (input: MergeTaskInput, config: TaskConfig = {}) => {\n const task = new MergeTask(config);\n return task.run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n merge: CreateWorkflow<MergeTaskInput, MergeTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.merge = CreateWorkflow(MergeTask);\n",
|
|
108
|
-
"/**\n * @copyright\n * Copyright 2025 Steven Roussey\n * All Rights Reserved\n */\n\nimport type { IExecuteContext, StreamEvent, StreamFinish } from \"@workglow/task-graph\";\nimport { CreateWorkflow, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport type { DataPortSchema } from \"@workglow/util/schema\";\n\nexport type OutputTaskInput = Record<string, unknown>;\nexport type OutputTaskOutput = Record<string, unknown>;\n\nexport type OutputTaskConfig = TaskConfig;\n\nexport class OutputTask extends Task<OutputTaskInput, OutputTaskOutput, OutputTaskConfig> {\n static override type = \"OutputTask\";\n static override category = \"Flow Control\";\n static override title = \"Output\";\n static override description = \"Ends the workflow\";\n static override hasDynamicSchemas = true;\n static override cacheable = false;\n static override isGraphOutput = true;\n static override isPassthrough = true;\n\n public static override inputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const as DataPortSchema;\n }\n\n public static override outputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const as DataPortSchema;\n }\n\n public override inputSchema(): DataPortSchema {\n return this.config?.inputSchema ?? (this.constructor as typeof OutputTask).inputSchema();\n }\n\n public override outputSchema(): DataPortSchema {\n return this.config?.outputSchema ?? (this.constructor as typeof OutputTask).outputSchema();\n }\n\n public override async
|
|
109
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
108
|
+
"/**\n * @copyright\n * Copyright 2025 Steven Roussey\n * All Rights Reserved\n */\n\nimport type { IExecuteContext, StreamEvent, StreamFinish } from \"@workglow/task-graph\";\nimport { CreateWorkflow, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport type { DataPortSchema } from \"@workglow/util/schema\";\n\nexport type OutputTaskInput = Record<string, unknown>;\nexport type OutputTaskOutput = Record<string, unknown>;\n\nexport type OutputTaskConfig = TaskConfig;\n\nfunction passthroughInput(input: OutputTaskInput): OutputTaskOutput {\n return input as OutputTaskOutput;\n}\n\nexport class OutputTask extends Task<OutputTaskInput, OutputTaskOutput, OutputTaskConfig> {\n static override type = \"OutputTask\";\n static override category = \"Flow Control\";\n static override title = \"Output\";\n static override description = \"Ends the workflow\";\n static override hasDynamicSchemas = true;\n static override cacheable = false;\n static override isGraphOutput = true;\n static override isPassthrough = true;\n\n public static override inputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const as DataPortSchema;\n }\n\n public static override outputSchema(): DataPortSchema {\n return {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n } as const as DataPortSchema;\n }\n\n public override inputSchema(): DataPortSchema {\n return this.config?.inputSchema ?? (this.constructor as typeof OutputTask).inputSchema();\n }\n\n public override outputSchema(): DataPortSchema {\n return this.config?.outputSchema ?? (this.constructor as typeof OutputTask).outputSchema();\n }\n\n public override async execute(input: OutputTaskInput, _context: IExecuteContext) {\n return passthroughInput(input);\n }\n\n public override async executePreview(input: OutputTaskInput) {\n return passthroughInput(input);\n }\n\n /**\n * Stream pass-through: re-yields all events from upstream input streams\n * so downstream consumers see them with near-zero latency, then emits\n * a finish event with the materialized input as data.\n */\n async *executeStream(\n input: OutputTaskInput,\n context: IExecuteContext\n ): AsyncIterable<StreamEvent<OutputTaskOutput>> {\n if (context.inputStreams) {\n for (const [, stream] of context.inputStreams) {\n const reader = stream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (value.type === \"finish\") continue;\n yield value;\n }\n } finally {\n reader.releaseLock();\n }\n }\n }\n yield { type: \"finish\", data: input } as StreamFinish<OutputTaskOutput>;\n }\n}\n\n/**\n * Module augmentation to register task type in the workflow system\n */\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n output: CreateWorkflow<OutputTaskInput, OutputTaskOutput, OutputTaskConfig>;\n }\n}\n\nWorkflow.prototype.output = CreateWorkflow(OutputTask);\n",
|
|
109
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n TaskInvalidInputError,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\n/** Maximum number of '[' characters allowed in a regex pattern before rejecting (ReDoS guard). */\nconst MAX_BRACKET_COUNT = 100;\n\n/**\n * Detects regex patterns prone to catastrophic backtracking (ReDoS).\n * Checks for nested quantifiers like (a+)+, (a*)+, (a+)*, etc.\n */\nfunction hasNestedQuantifiers(pattern: string): boolean {\n // Strip character classes to avoid false positives on quantifiers inside [...]\n const withoutClasses = pattern.replace(/\\[(?:[^\\]\\\\]|\\\\.)*\\]/g, \"X\");\n // Detect group with inner quantifier followed by outer quantifier\n return /\\([^)]*[+*][^)]*\\)[+*?]|\\([^)]*[+*][^)]*\\)\\{/.test(withoutClasses);\n}\n\nfunction executeRegex(input: { value: string; pattern: string; flags?: string }): {\n match: boolean;\n matches: string[];\n} {\n const bracketCount = (input.pattern.match(/\\[/g) ?? []).length;\n if (bracketCount > MAX_BRACKET_COUNT) {\n throw new TaskInvalidInputError(\n \"Regex pattern rejected: too many '[' characters (potential ReDoS). \" +\n \"Simplify the pattern to reduce complexity.\"\n );\n }\n\n if (hasNestedQuantifiers(input.pattern)) {\n throw new TaskInvalidInputError(\n \"Regex pattern rejected: nested quantifiers detected (potential ReDoS). \" +\n \"Simplify the pattern to avoid catastrophic backtracking.\"\n );\n }\n\n const flags = input.flags ?? \"\";\n const regex = new RegExp(input.pattern, flags);\n\n if (flags.includes(\"g\")) {\n const allMatches = Array.from(input.value.matchAll(new RegExp(input.pattern, flags)));\n return {\n match: allMatches.length > 0,\n matches: allMatches.map((m) => m[0]),\n };\n }\n\n const result = regex.exec(input.value);\n if (!result) {\n return { match: false, matches: [] as string[] };\n }\n\n // Return full match + captured groups\n return {\n match: true,\n matches: result.slice(0),\n };\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n value: {\n type: \"string\",\n title: \"Value\",\n description: \"Input string to match against\",\n },\n pattern: {\n type: \"string\",\n title: \"Pattern\",\n description: \"Regular expression pattern\",\n },\n flags: {\n type: \"string\",\n title: \"Flags\",\n description: \"Regex flags (e.g. 'g', 'i', 'gi')\",\n default: \"\",\n },\n },\n required: [\"value\", \"pattern\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n match: {\n type: \"boolean\",\n title: \"Match\",\n description: \"Whether the pattern matched\",\n },\n matches: {\n type: \"array\",\n items: { type: \"string\" },\n title: \"Matches\",\n description: \"Array of matched strings (full matches when global, groups when not)\",\n },\n },\n required: [\"match\", \"matches\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type RegexTaskInput = FromSchema<typeof inputSchema>;\nexport type RegexTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class RegexTask<\n Input extends RegexTaskInput = RegexTaskInput,\n Output extends RegexTaskOutput = RegexTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"RegexTask\";\n static override readonly category = \"String\";\n public static override title = \"Regex\";\n public static override description = \"Matches a string against a regular expression pattern\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return executeRegex(input) as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return executeRegex(input) as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n regex: CreateWorkflow<RegexTaskInput, RegexTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.regex = CreateWorkflow(RegexTask);\n",
|
|
110
110
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n value: {\n type: \"number\",\n title: \"Value\",\n description: \"Input number\",\n },\n },\n required: [\"value\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n result: {\n type: \"number\",\n title: \"Result\",\n description: \"Absolute value\",\n },\n },\n required: [\"result\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ScalarAbsTaskInput = FromSchema<typeof inputSchema>;\nexport type ScalarAbsTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class ScalarAbsTask<\n Input extends ScalarAbsTaskInput = ScalarAbsTaskInput,\n Output extends ScalarAbsTaskOutput = ScalarAbsTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ScalarAbsTask\";\n static override readonly category = \"Math\";\n public static override title = \"Abs\";\n public static override description = \"Returns the absolute value of a number\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output> {\n return { result: Math.abs(input.value) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n scalarAbs: CreateWorkflow<ScalarAbsTaskInput, ScalarAbsTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.scalarAbs = CreateWorkflow(ScalarAbsTask);\n",
|
|
111
111
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n value: {\n type: \"number\",\n title: \"Value\",\n description: \"Input number\",\n },\n },\n required: [\"value\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n result: {\n type: \"number\",\n title: \"Result\",\n description: \"Ceiling value\",\n },\n },\n required: [\"result\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ScalarCeilTaskInput = FromSchema<typeof inputSchema>;\nexport type ScalarCeilTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class ScalarCeilTask<\n Input extends ScalarCeilTaskInput = ScalarCeilTaskInput,\n Output extends ScalarCeilTaskOutput = ScalarCeilTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ScalarCeilTask\";\n static override readonly category = \"Math\";\n public static override title = \"Ceil\";\n public static override description =\n \"Returns the smallest integer greater than or equal to a number\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output> {\n return { result: Math.ceil(input.value) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n scalarCeil: CreateWorkflow<ScalarCeilTaskInput, ScalarCeilTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.scalarCeil = CreateWorkflow(ScalarCeilTask);\n",
|
|
112
112
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n value: {\n type: \"number\",\n title: \"Value\",\n description: \"Input number\",\n },\n },\n required: [\"value\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n result: {\n type: \"number\",\n title: \"Result\",\n description: \"Floored value\",\n },\n },\n required: [\"result\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ScalarFloorTaskInput = FromSchema<typeof inputSchema>;\nexport type ScalarFloorTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class ScalarFloorTask<\n Input extends ScalarFloorTaskInput = ScalarFloorTaskInput,\n Output extends ScalarFloorTaskOutput = ScalarFloorTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ScalarFloorTask\";\n static override readonly category = \"Math\";\n public static override title = \"Floor\";\n public static override description = \"Returns the largest integer less than or equal to a number\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output> {\n return { result: Math.floor(input.value) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n scalarFloor: CreateWorkflow<ScalarFloorTaskInput, ScalarFloorTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.scalarFloor = CreateWorkflow(ScalarFloorTask);\n",
|
|
@@ -114,18 +114,18 @@
|
|
|
114
114
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n values: {\n type: \"array\",\n items: { type: \"number\" },\n title: \"Values\",\n description: \"Array of numbers\",\n },\n },\n required: [\"values\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n result: {\n type: \"number\",\n title: \"Result\",\n description: \"Minimum value\",\n },\n },\n required: [\"result\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ScalarMinTaskInput = FromSchema<typeof inputSchema>;\nexport type ScalarMinTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class ScalarMinTask<\n Input extends ScalarMinTaskInput = ScalarMinTaskInput,\n Output extends ScalarMinTaskOutput = ScalarMinTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ScalarMinTask\";\n static override readonly category = \"Math\";\n public static override title = \"Min\";\n public static override description = \"Returns the smallest of the given numbers\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output> {\n return { result: Math.min(...input.values) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n scalarMin: CreateWorkflow<ScalarMinTaskInput, ScalarMinTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.scalarMin = CreateWorkflow(ScalarMinTask);\n",
|
|
115
115
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n value: {\n type: \"number\",\n title: \"Value\",\n description: \"Input number\",\n },\n },\n required: [\"value\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n result: {\n type: \"number\",\n title: \"Result\",\n description: \"Rounded value\",\n },\n },\n required: [\"result\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ScalarRoundTaskInput = FromSchema<typeof inputSchema>;\nexport type ScalarRoundTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class ScalarRoundTask<\n Input extends ScalarRoundTaskInput = ScalarRoundTaskInput,\n Output extends ScalarRoundTaskOutput = ScalarRoundTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ScalarRoundTask\";\n static override readonly category = \"Math\";\n public static override title = \"Round\";\n public static override description =\n \"Returns the value of a number rounded to the nearest integer\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output> {\n return { result: Math.round(input.value) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n scalarRound: CreateWorkflow<ScalarRoundTaskInput, ScalarRoundTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.scalarRound = CreateWorkflow(ScalarRoundTask);\n",
|
|
116
116
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n value: {\n type: \"number\",\n title: \"Value\",\n description: \"Input number\",\n },\n },\n required: [\"value\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n result: {\n type: \"number\",\n title: \"Result\",\n description: \"Truncated value\",\n },\n },\n required: [\"result\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type ScalarTruncTaskInput = FromSchema<typeof inputSchema>;\nexport type ScalarTruncTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class ScalarTruncTask<\n Input extends ScalarTruncTaskInput = ScalarTruncTaskInput,\n Output extends ScalarTruncTaskOutput = ScalarTruncTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"ScalarTruncTask\";\n static override readonly category = \"Math\";\n public static override title = \"Truncate\";\n public static override description =\n \"Returns the integer part of a number by removing fractional digits\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output> {\n return { result: Math.trunc(input.value) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n scalarTrunc: CreateWorkflow<ScalarTruncTaskInput, ScalarTruncTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.scalarTrunc = CreateWorkflow(ScalarTruncTask);\n",
|
|
117
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n input: {\n title: \"Single Input\",\n description: \"A single value to output\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nexport type SplitTaskInput = FromSchema<typeof inputSchema>;\nexport type SplitTaskOutput = FromSchema<typeof outputSchema>;\n\n/**\n * SplitTask takes an array or single value as input and creates\n * separate outputs for each element. Each output is named by its index (0, 1, 2, etc.).\n * Useful for workflows that need to process array elements in parallel branches.\n *\n * Features:\n * - Accepts both arrays and single values as input\n * - Creates one output per array element (output_0, output_1, etc.)\n * - Single values are treated as a single-element array\n * - Output count matches array length\n *\n * Example:\n * Input: { input: [1, 2, 3] }\n * Output: { output_0: 1, output_1: 2, output_2: 3 }\n */\nexport class SplitTask<\n Input extends SplitTaskInput = SplitTaskInput,\n Output extends SplitTaskOutput = SplitTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n public static override type = \"SplitTask\";\n public static override category = \"Utility\";\n public static override title = \"Split\";\n public static override description =\n \"Splits an array into individual outputs, creating one output per element\";\n static override readonly cacheable = false;\n\n public static override inputSchema() {\n return inputSchema;\n }\n\n public static override outputSchema() {\n return outputSchema;\n }\n\n override async
|
|
118
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
119
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
120
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
121
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
122
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
123
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
124
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
125
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
126
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
127
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
128
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n
|
|
117
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n input: {\n title: \"Single Input\",\n description: \"A single value to output\",\n },\n },\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: true,\n} as const satisfies DataPortSchema;\n\nexport type SplitTaskInput = FromSchema<typeof inputSchema>;\nexport type SplitTaskOutput = FromSchema<typeof outputSchema>;\n\nfunction fanoutToIndexedOutputs<Output extends SplitTaskOutput>(inputValue: unknown): Output {\n const output = {} as Output;\n\n // Handle array input\n if (Array.isArray(inputValue)) {\n inputValue.forEach((item, index) => {\n (output as any)[`output_${index}`] = item;\n });\n } else {\n // Handle single value as a single-element array\n (output as any).output_0 = inputValue;\n }\n\n return output;\n}\n\n/**\n * SplitTask takes an array or single value as input and creates\n * separate outputs for each element. Each output is named by its index (0, 1, 2, etc.).\n * Useful for workflows that need to process array elements in parallel branches.\n *\n * Features:\n * - Accepts both arrays and single values as input\n * - Creates one output per array element (output_0, output_1, etc.)\n * - Single values are treated as a single-element array\n * - Output count matches array length\n *\n * Example:\n * Input: { input: [1, 2, 3] }\n * Output: { output_0: 1, output_1: 2, output_2: 3 }\n */\nexport class SplitTask<\n Input extends SplitTaskInput = SplitTaskInput,\n Output extends SplitTaskOutput = SplitTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n public static override type = \"SplitTask\";\n public static override category = \"Utility\";\n public static override title = \"Split\";\n public static override description =\n \"Splits an array into individual outputs, creating one output per element\";\n static override readonly cacheable = false;\n\n public static override inputSchema() {\n return inputSchema;\n }\n\n public static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return fanoutToIndexedOutputs<Output>(input.input);\n }\n\n override async executePreview(input: Input): Promise<Output | undefined> {\n return fanoutToIndexedOutputs<Output>(input.input);\n }\n}\n\nexport const split = (input: SplitTaskInput, config: TaskConfig = {}) => {\n const task = new SplitTask(config);\n return task.run(input);\n};\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n split: CreateWorkflow<SplitTaskInput, SplitTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.split = CreateWorkflow(SplitTask);\n",
|
|
118
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nfunction concatStrings(input: Record<string, unknown>): string {\n return Object.values(input).join(\"\");\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {},\n additionalProperties: { type: \"string\" },\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Concatenation of all input strings\",\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type StringConcatTaskInput = FromSchema<typeof inputSchema>;\nexport type StringConcatTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class StringConcatTask<\n Input extends StringConcatTaskInput = StringConcatTaskInput,\n Output extends StringConcatTaskOutput = StringConcatTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"StringConcatTask\";\n static override readonly category = \"String\";\n public static override title = \"Concat\";\n public static override description = \"Concatenates all input strings\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { text: concatStrings(input) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { text: concatStrings(input) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n stringConcat: CreateWorkflow<StringConcatTaskInput, StringConcatTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.stringConcat = CreateWorkflow(StringConcatTask);\n",
|
|
119
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nfunction stringIncludes(text: string, search: string): boolean {\n return text.includes(search);\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Input string to search in\",\n },\n search: {\n type: \"string\",\n title: \"Search\",\n description: \"Substring to search for\",\n },\n },\n required: [\"text\", \"search\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n included: {\n type: \"boolean\",\n title: \"Included\",\n description: \"Whether the string contains the search substring\",\n },\n },\n required: [\"included\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type StringIncludesTaskInput = FromSchema<typeof inputSchema>;\nexport type StringIncludesTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class StringIncludesTask<\n Input extends StringIncludesTaskInput = StringIncludesTaskInput,\n Output extends StringIncludesTaskOutput = StringIncludesTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"StringIncludesTask\";\n static override readonly category = \"String\";\n public static override title = \"Includes\";\n public static override description = \"Checks if a string contains a substring\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { included: stringIncludes(input.text, input.search) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { included: stringIncludes(input.text, input.search) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n stringIncludes: CreateWorkflow<StringIncludesTaskInput, StringIncludesTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.stringIncludes = CreateWorkflow(StringIncludesTask);\n",
|
|
120
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nfunction joinStrings(texts: readonly string[], separator: string | undefined): string {\n return texts.join(separator ?? \"\");\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n texts: {\n type: \"array\",\n items: { type: \"string\" },\n title: \"Texts\",\n description: \"Array of strings to join\",\n },\n separator: {\n type: \"string\",\n title: \"Separator\",\n description: \"Separator between elements\",\n default: \"\",\n },\n },\n required: [\"texts\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Joined string\",\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type StringJoinTaskInput = FromSchema<typeof inputSchema>;\nexport type StringJoinTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class StringJoinTask<\n Input extends StringJoinTaskInput = StringJoinTaskInput,\n Output extends StringJoinTaskOutput = StringJoinTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"StringJoinTask\";\n static override readonly category = \"String\";\n public static override title = \"Join\";\n public static override description = \"Joins an array of strings with a separator\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { text: joinStrings(input.texts, input.separator) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { text: joinStrings(input.texts, input.separator) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n stringJoin: CreateWorkflow<StringJoinTaskInput, StringJoinTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.stringJoin = CreateWorkflow(StringJoinTask);\n",
|
|
121
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nfunction stringLength(text: string): number {\n return text.length;\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Input string\",\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n length: {\n type: \"integer\",\n title: \"Length\",\n description: \"Length of the string\",\n },\n },\n required: [\"length\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type StringLengthTaskInput = FromSchema<typeof inputSchema>;\nexport type StringLengthTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class StringLengthTask<\n Input extends StringLengthTaskInput = StringLengthTaskInput,\n Output extends StringLengthTaskOutput = StringLengthTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"StringLengthTask\";\n static override readonly category = \"String\";\n public static override title = \"Length\";\n public static override description = \"Returns the length of a string\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { length: stringLength(input.text) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { length: stringLength(input.text) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n stringLength: CreateWorkflow<StringLengthTaskInput, StringLengthTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.stringLength = CreateWorkflow(StringLengthTask);\n",
|
|
122
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nfunction toLowerCase(text: string): string {\n return text.toLowerCase();\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Input string\",\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Lowercased string\",\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type StringLowerCaseTaskInput = FromSchema<typeof inputSchema>;\nexport type StringLowerCaseTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class StringLowerCaseTask<\n Input extends StringLowerCaseTaskInput = StringLowerCaseTaskInput,\n Output extends StringLowerCaseTaskOutput = StringLowerCaseTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"StringLowerCaseTask\";\n static override readonly category = \"String\";\n public static override title = \"Lower Case\";\n public static override description = \"Converts a string to lower case\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { text: toLowerCase(input.text) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { text: toLowerCase(input.text) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n stringLowerCase: CreateWorkflow<\n StringLowerCaseTaskInput,\n StringLowerCaseTaskOutput,\n TaskConfig\n >;\n }\n}\n\nWorkflow.prototype.stringLowerCase = CreateWorkflow(StringLowerCaseTask);\n",
|
|
123
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nfunction replaceString(text: string, search: string, replace: string): string {\n return text.replaceAll(search, replace);\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Input string\",\n },\n search: {\n type: \"string\",\n title: \"Search\",\n description: \"Substring to search for\",\n },\n replace: {\n type: \"string\",\n title: \"Replace\",\n description: \"Replacement string\",\n },\n },\n required: [\"text\", \"search\", \"replace\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"String with all occurrences replaced\",\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type StringReplaceTaskInput = FromSchema<typeof inputSchema>;\nexport type StringReplaceTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class StringReplaceTask<\n Input extends StringReplaceTaskInput = StringReplaceTaskInput,\n Output extends StringReplaceTaskOutput = StringReplaceTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"StringReplaceTask\";\n static override readonly category = \"String\";\n public static override title = \"Replace\";\n public static override description = \"Replaces all occurrences of a substring\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { text: replaceString(input.text, input.search, input.replace) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { text: replaceString(input.text, input.search, input.replace) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n stringReplace: CreateWorkflow<StringReplaceTaskInput, StringReplaceTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.stringReplace = CreateWorkflow(StringReplaceTask);\n",
|
|
124
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nfunction sliceString(text: string, start: number, end: number | undefined): string {\n return text.slice(start, end);\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Input string\",\n },\n start: {\n type: \"integer\",\n title: \"Start\",\n description: \"Start index (inclusive, supports negative indexing)\",\n },\n end: {\n type: \"integer\",\n title: \"End\",\n description: \"End index (exclusive, supports negative indexing)\",\n },\n },\n required: [\"text\", \"start\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Extracted substring\",\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type StringSliceTaskInput = FromSchema<typeof inputSchema>;\nexport type StringSliceTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class StringSliceTask<\n Input extends StringSliceTaskInput = StringSliceTaskInput,\n Output extends StringSliceTaskOutput = StringSliceTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"StringSliceTask\";\n static override readonly category = \"String\";\n public static override title = \"Slice\";\n public static override description = \"Extracts a substring by start and optional end index\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { text: sliceString(input.text, input.start, input.end) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { text: sliceString(input.text, input.start, input.end) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n stringSlice: CreateWorkflow<StringSliceTaskInput, StringSliceTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.stringSlice = CreateWorkflow(StringSliceTask);\n",
|
|
125
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nfunction renderStringTemplate(template: string, values: Record<string, unknown>): string {\n let text = template;\n for (const [key, value] of Object.entries(values)) {\n text = text.replaceAll(`{{${key}}}`, String(value));\n }\n return text;\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n template: {\n type: \"string\",\n title: \"Template\",\n description: \"Template string with {{key}} placeholders\",\n },\n values: {\n type: \"object\",\n title: \"Values\",\n description: \"Key-value pairs to substitute into the template\",\n additionalProperties: true,\n },\n },\n required: [\"template\", \"values\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Template with placeholders replaced by values\",\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type StringTemplateTaskInput = FromSchema<typeof inputSchema>;\nexport type StringTemplateTaskOutput = FromSchema<typeof outputSchema>;\n\n/**\n * @deprecated Use {@link TemplateTask} instead, which supports dot-notation paths\n * and `{{key|default}}` fallback syntax.\n */\nexport class StringTemplateTask<\n Input extends StringTemplateTaskInput = StringTemplateTaskInput,\n Output extends StringTemplateTaskOutput = StringTemplateTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"StringTemplateTask\";\n static override readonly category = \"String\";\n public static override title = \"Template\";\n public static override description =\n \"Replaces {{key}} placeholders in a template string with values\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { text: renderStringTemplate(input.template, input.values) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { text: renderStringTemplate(input.template, input.values) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n stringTemplate: CreateWorkflow<StringTemplateTaskInput, StringTemplateTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.stringTemplate = CreateWorkflow(StringTemplateTask);\n",
|
|
126
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nfunction trimString(text: string): string {\n return text.trim();\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Input string\",\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Trimmed string\",\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type StringTrimTaskInput = FromSchema<typeof inputSchema>;\nexport type StringTrimTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class StringTrimTask<\n Input extends StringTrimTaskInput = StringTrimTaskInput,\n Output extends StringTrimTaskOutput = StringTrimTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"StringTrimTask\";\n static override readonly category = \"String\";\n public static override title = \"Trim\";\n public static override description = \"Removes leading and trailing whitespace from a string\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { text: trimString(input.text) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { text: trimString(input.text) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n stringTrim: CreateWorkflow<StringTrimTaskInput, StringTrimTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.stringTrim = CreateWorkflow(StringTrimTask);\n",
|
|
127
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nfunction toUpperCase(text: string): string {\n return text.toUpperCase();\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Input string\",\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"Text\",\n description: \"Uppercased string\",\n },\n },\n required: [\"text\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type StringUpperCaseTaskInput = FromSchema<typeof inputSchema>;\nexport type StringUpperCaseTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class StringUpperCaseTask<\n Input extends StringUpperCaseTaskInput = StringUpperCaseTaskInput,\n Output extends StringUpperCaseTaskOutput = StringUpperCaseTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"StringUpperCaseTask\";\n static override readonly category = \"String\";\n public static override title = \"Upper Case\";\n public static override description = \"Converts a string to upper case\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { text: toUpperCase(input.text) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { text: toUpperCase(input.text) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n stringUpperCase: CreateWorkflow<\n StringUpperCaseTaskInput,\n StringUpperCaseTaskOutput,\n TaskConfig\n >;\n }\n}\n\nWorkflow.prototype.stringUpperCase = CreateWorkflow(StringUpperCaseTask);\n",
|
|
128
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n CreateWorkflow,\n IExecuteContext,\n IExecutePreviewContext,\n Task,\n TaskConfig,\n Workflow,\n} from \"@workglow/task-graph\";\nimport { DataPortSchema, FromSchema } from \"@workglow/util/schema\";\n\nfunction renderTemplate(template: string, values: Record<string, unknown>): string {\n return template.replace(/\\{\\{([^{}]+)\\}\\}/g, (_match, expr: string) => {\n const [path, defaultValue] = expr.split(\"|\").map((s: string) => s.trim());\n const segments = path.split(\".\");\n let current: unknown = values;\n for (const segment of segments) {\n if (current === null || current === undefined || typeof current !== \"object\") {\n current = undefined;\n break;\n }\n current = (current as Record<string, unknown>)[segment];\n }\n if (current !== undefined && current !== null) {\n return String(current);\n }\n return defaultValue !== undefined ? defaultValue : \"\";\n });\n}\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n template: {\n type: \"string\",\n title: \"Template\",\n description:\n \"Template string with {{key}} placeholders; supports {{key|default}} for defaults\",\n },\n values: {\n type: \"object\",\n title: \"Values\",\n description: \"Key-value pairs to substitute into the template\",\n additionalProperties: true,\n },\n },\n required: [\"template\", \"values\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n result: {\n type: \"string\",\n title: \"Result\",\n description: \"Rendered template string\",\n },\n },\n required: [\"result\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type TemplateTaskInput = FromSchema<typeof inputSchema>;\nexport type TemplateTaskOutput = FromSchema<typeof outputSchema>;\n\n/**\n * TemplateTask renders a template string by replacing `{{key}}` placeholders\n * with corresponding values. Supports `{{key|default}}` syntax for fallback\n * values when a key is missing. Nested dot-notation paths (e.g. `{{a.b}}`)\n * are resolved against the values object.\n */\nexport class TemplateTask<\n Input extends TemplateTaskInput = TemplateTaskInput,\n Output extends TemplateTaskOutput = TemplateTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"TemplateTask\";\n static override readonly category = \"Utility\";\n public static override title = \"Template\";\n public static override description =\n \"Renders a template string with {{key}} placeholders and optional defaults\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output | undefined> {\n return { result: renderTemplate(input.template, input.values) } as Output;\n }\n\n override async executePreview(\n input: Input,\n _context: IExecutePreviewContext\n ): Promise<Output | undefined> {\n return { result: renderTemplate(input.template, input.values) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n template: CreateWorkflow<TemplateTaskInput, TemplateTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.template = CreateWorkflow(TemplateTask);\n",
|
|
129
129
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport {\n DataPortSchema,\n FromSchema,\n TypedArray,\n TypedArraySchema,\n TypedArraySchemaOptions,\n} from \"@workglow/util/schema\";\nimport { sumPrecise } from \"../scalar/sumPrecise\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n vectors: {\n type: \"array\",\n items: TypedArraySchema({\n title: \"Vector\",\n description: \"Vector for distance computation\",\n }),\n title: \"Vectors\",\n description: \"Array of two vectors to compute Euclidean distance\",\n },\n },\n required: [\"vectors\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n result: {\n type: \"number\",\n title: \"Result\",\n description: \"Euclidean distance between vectors\",\n },\n },\n required: [\"result\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type VectorDistanceTaskInput = FromSchema<typeof inputSchema, TypedArraySchemaOptions>;\nexport type VectorDistanceTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class VectorDistanceTask<\n Input extends VectorDistanceTaskInput = VectorDistanceTaskInput,\n Output extends VectorDistanceTaskOutput = VectorDistanceTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"VectorDistanceTask\";\n static override readonly category = \"Vector\";\n public static override title = \"Distance\";\n public static override description =\n \"Returns the Euclidean distance between the first two vectors\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output> {\n const { vectors } = input as { vectors: TypedArray[] };\n if (vectors.length < 2) {\n throw new Error(\"Exactly two vectors are required for distance\");\n }\n const [a, b] = vectors;\n if (a.length !== b.length) {\n throw new Error(\"Vectors must have the same length\");\n }\n const diffs = Array.from({ length: a.length }, (_, i) => {\n const d = Number(a[i]) - Number(b[i]);\n return d * d;\n });\n return { result: Math.sqrt(sumPrecise(diffs)) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n vectorDistance: CreateWorkflow<VectorDistanceTaskInput, VectorDistanceTaskOutput, TaskConfig>;\n }\n}\n\nWorkflow.prototype.vectorDistance = CreateWorkflow(VectorDistanceTask);\n",
|
|
130
130
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport {\n DataPortSchema,\n FromSchema,\n TypedArray,\n TypedArraySchema,\n TypedArraySchemaOptions,\n} from \"@workglow/util/schema\";\nimport { sumPrecise } from \"../scalar/sumPrecise\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n vectors: {\n type: \"array\",\n items: TypedArraySchema({\n title: \"Vector\",\n description: \"Vector for dot product\",\n }),\n title: \"Vectors\",\n description: \"Array of two vectors to compute dot product\",\n },\n },\n required: [\"vectors\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n result: {\n type: \"number\",\n title: \"Result\",\n description: \"Dot product of the vectors\",\n },\n },\n required: [\"result\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type VectorDotProductTaskInput = FromSchema<typeof inputSchema, TypedArraySchemaOptions>;\nexport type VectorDotProductTaskOutput = FromSchema<typeof outputSchema>;\n\nexport class VectorDotProductTask<\n Input extends VectorDotProductTaskInput = VectorDotProductTaskInput,\n Output extends VectorDotProductTaskOutput = VectorDotProductTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"VectorDotProductTask\";\n static override readonly category = \"Vector\";\n public static override title = \"Dot Product\";\n public static override description = \"Returns the dot (inner) product of the first two vectors\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output> {\n const { vectors } = input as { vectors: TypedArray[] };\n if (vectors.length < 2) {\n throw new Error(\"Exactly two vectors are required for dot product\");\n }\n const [a, b] = vectors;\n if (a.length !== b.length) {\n throw new Error(\"Vectors must have the same length\");\n }\n const products = Array.from({ length: a.length }, (_, i) => Number(a[i]) * Number(b[i]));\n return { result: sumPrecise(products) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n vectorDotProduct: CreateWorkflow<\n VectorDotProductTaskInput,\n VectorDotProductTaskOutput,\n TaskConfig\n >;\n }\n}\n\nWorkflow.prototype.vectorDotProduct = CreateWorkflow(VectorDotProductTask);\n",
|
|
131
131
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CreateWorkflow, IExecuteContext, Task, TaskConfig, Workflow } from \"@workglow/task-graph\";\nimport {\n DataPortSchema,\n FromSchema,\n TypedArraySchema,\n TypedArraySchemaOptions,\n normalize,\n} from \"@workglow/util/schema\";\n\nconst inputSchema = {\n type: \"object\",\n properties: {\n vector: TypedArraySchema({\n title: \"Vector\",\n description: \"Input vector to normalize\",\n }),\n },\n required: [\"vector\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nconst outputSchema = {\n type: \"object\",\n properties: {\n result: TypedArraySchema({\n title: \"Result\",\n description: \"L2-normalized vector\",\n }),\n },\n required: [\"result\"],\n additionalProperties: false,\n} as const satisfies DataPortSchema;\n\nexport type VectorNormalizeTaskInput = FromSchema<typeof inputSchema, TypedArraySchemaOptions>;\nexport type VectorNormalizeTaskOutput = FromSchema<typeof outputSchema, TypedArraySchemaOptions>;\n\nexport class VectorNormalizeTask<\n Input extends VectorNormalizeTaskInput = VectorNormalizeTaskInput,\n Output extends VectorNormalizeTaskOutput = VectorNormalizeTaskOutput,\n Config extends TaskConfig = TaskConfig,\n> extends Task<Input, Output, Config> {\n static override readonly type = \"VectorNormalizeTask\";\n static override readonly category = \"Vector\";\n public static override title = \"Normalize\";\n public static override description = \"Returns the L2-normalized (unit length) vector\";\n\n static override inputSchema() {\n return inputSchema;\n }\n\n static override outputSchema() {\n return outputSchema;\n }\n\n override async execute(input: Input, _context: IExecuteContext): Promise<Output> {\n return { result: normalize(input.vector) } as Output;\n }\n}\n\ndeclare module \"@workglow/task-graph\" {\n interface Workflow {\n vectorNormalize: CreateWorkflow<\n VectorNormalizeTaskInput,\n VectorNormalizeTaskOutput,\n TaskConfig\n >;\n }\n}\n\nWorkflow.prototype.vectorNormalize = CreateWorkflow(VectorNormalizeTask);\n",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport \"./task/image/registerImageRasterCodec.node\";\nimport \"./task/image/registerImageTextRenderer.node\";\n// Install the DNS-resolving, connection-pinning SafeFetch implementation.\n// This side-effect import must happen before FetchUrlTask is used.\nimport \"./util/SafeFetch.server\";\n\nexport * from \"./common\";\nexport * from \"./task/browser-control/PlaywrightBackend\";\nexport * from \"./task/FileLoaderTask.server\";\nexport * from \"./util/McpAuthProvider\";\nexport * from \"./util/McpAuthTypes\";\nexport * from \"./util/McpClientUtil\";\nexport * from \"./util/McpTaskDeps\";\n\nimport { TaskRegistry } from \"@workglow/task-graph\";\nimport { registerCommonTasks as registerCommonTasksFn } from \"./common\";\nimport { registerBrowserDepsServer, registerMcpTaskDepsServer } from \"./server\";\nimport { FileLoaderTask } from \"./task/FileLoaderTask.server\";\n\nregisterMcpTaskDepsServer();\nregisterBrowserDepsServer();\n\nexport const registerCommonTasks = () => {\n const tasks = registerCommonTasksFn();\n TaskRegistry.registerTask(FileLoaderTask);\n return [...tasks, FileLoaderTask];\n};\n",
|
|
139
139
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\nimport path from \"node:path\";\nimport { PlaywrightBackend } from \"./task/browser-control/PlaywrightBackend\";\nimport { registerBrowserDeps } from \"./util/BrowserTaskDeps\";\nimport { mcpClientFactory, mcpServerConfigSchema } from \"./util/McpClientUtil\";\nimport type { McpServerConfig } from \"./util/McpTaskDeps\";\nimport { registerMcpTaskDeps } from \"./util/McpTaskDeps\";\n\nconst SAFE_NAME_RE = /^[a-zA-Z0-9_-]+$/;\n\nfunction safeName(value: string, label: string): string {\n if (!SAFE_NAME_RE.test(value)) {\n throw new Error(\n `Invalid ${label}: must contain only alphanumeric characters, hyphens, and underscores`\n );\n }\n return value;\n}\n\nexport function registerMcpTaskDepsServer(): void {\n registerMcpTaskDeps({\n mcpClientFactory,\n mcpServerConfigSchema,\n createStdioTransport: (config: McpServerConfig) =>\n Promise.resolve(\n new StdioClientTransport({\n command: config.command!,\n args: config.args,\n env: config.env,\n })\n ),\n });\n}\n\nexport function registerBrowserDepsServer(): void {\n registerBrowserDeps({\n createContext: (_options) => new PlaywrightBackend(),\n availableBackends: [\"local\", \"cloud\"],\n defaultBackend: \"local\",\n profileStorage: {\n async save(projectId, profileName, state) {\n const fs = await import(\"node:fs/promises\");\n const dir = path.join(\n process.cwd(),\n \".workglow\",\n \"browser-profiles\",\n safeName(projectId, \"projectId\")\n );\n await fs.mkdir(dir, { recursive: true });\n await fs.writeFile(\n path.join(dir, `${safeName(profileName, \"profileName\")}.json`),\n state,\n \"utf-8\"\n );\n },\n async load(projectId, profileName) {\n const fs = await import(\"node:fs/promises\");\n try {\n return await fs.readFile(\n path.join(\n process.cwd(),\n \".workglow\",\n \"browser-profiles\",\n safeName(projectId, \"projectId\"),\n `${safeName(profileName, \"profileName\")}.json`\n ),\n \"utf-8\"\n );\n } catch {\n return null;\n }\n },\n async delete(projectId, profileName) {\n const fs = await import(\"node:fs/promises\");\n try {\n await fs.unlink(\n path.join(\n process.cwd(),\n \".workglow\",\n \"browser-profiles\",\n safeName(projectId, \"projectId\"),\n `${safeName(profileName, \"profileName\")}.json`\n )\n );\n } catch {\n /* ignore */\n }\n },\n },\n });\n}\n"
|
|
140
140
|
],
|
|
141
|
-
"mappings": "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WAAW,SAAS;AAAA,IAC/B,EAAO;AAAA,MACL,SAAS,IAAI,EAAG,IAAI,UAAU,QAAQ,KAAK;AAAA,QACzC,SAAS,WAAW,KAAK,UAAU;AAAA,MACrC;AAAA,MACA,SAAS,WAAW,SAAS;AAAA;AAAA,IAE/B,OAAO;AAAA;AAAA,EAET,KAAK,QAAQ,KAAK,qBAAqB,SAAS,IAAI;AAAA,EACpD,KAAK,cAAc,KAAK,MAAM,WAAW;AAAA,EACzC,KAAK,YAAY,cAAc,SAAS,KAAK,OAAO,YAAY,wBAAwB;AAAA,EAGxF,UAAU,SAAS,OAAO,CAAC,KAAK;AAAA,IAC9B,OAAO,OAAO,IAAI,UAAU;AAAA;AAAA,EAE9B,KAAK,YACH,KAAK,OACL,WACA,KAAK,qBAAqB,SAAS,KAAK,GACxC,YAAY,wBACd;AAAA,EAGA,KAAK,YAAY,KAAK,aAAa,UAAU,GAAG;AAAA,IAC9C,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC;AAAA,EACD,KAAK,YAAY,QAAQ;AAAA,EAEzB,KAAK,WAAW,KACd,iBACA,oCACA,kDACA,oDACA,KAEA,uBACA,oBACA,iCACA,+CACA,0BACA,iBACA,qBACA,KACA,UACA,mBACA,kBACA,mBACA,aACA,KACA,MAEA,uBACA,6BACA,iCACA,+CACA,gDACA,0BACA,UACA,KACA,mBACA,eACA,KACA,MAEA,uBACA,sBACA,iCACA,+CACA,0BACA,iBACA,qBACA,KACA,qBACA,uCACA,uBACA,oBACA,YACA,gBACA,KACA,KACA,gBACA,uBACA,iBACA,KACA,MAEA,uBACA,gCACA,iCACA,+CACA,0BACA,YACA,KACA,wCACA,iBACA,mCACA,YACA,mCACA,KACA,KACA,gDACA,wBACA,KACA,+CACA,KACA,MAEA,uBACA,wBACA,iCACA,+CACA,0BACA,aACA,KACA,6CACA,iBACA,sBACA,6BACA,0BACA,YACA,gBACA,KACA,eACA,uBACA,YACA,0BACA,KACA,KACA,aACA,KACA,MAEA,uBACA,gDACA,iCACA,+CACA,0BACA,2BACA,cACA,KACA,wDACA,qBACA,2CACA,aACA,KACA,QACA,KACA,cACA,KACA,MAEA,uBACA,oDACA,iCACA,+CACA,eACA,cACA,KACA,oBACA,+BACA,sBACA,YACA,gDACA,KACA,KACA,8DACA,oBACA,2CACA,aACA,KACA,QACA,KACA,cACA,KACA,MAEA,uBACA,gCACA,iCACA,+CAEA,eACA,4DAEA,qCACA,2BACA,aACA,KACA,kBACA,oBACA,YACA,6BACA,KACA,YACA,cACA,KACA,2BACA,iCACA,oCACA,2BACA,6BACA,KACA,KACA,kBACA,KACA,MAEA,uBACA,mDACA,iCACA,+CACA,eACA,oBACA,qCACA,YACA,iCACA,KACA,+BACA,8BACA,YACA,qBACA,kEACA,KACA,qBAEA,uDACA,iBACA,uBACA,YACA,qBACA,KACA,iCACA,8BACA,YACA,gBACA,KACA,KAEA,mEACA,iCACA,8BACA,YACA,gBACA,KACA,KAEA,mDACA,gBACA,KACA,uBAEA,mCACA,4CACA,iBACA,sBACA,YACA,sBACA,KACA,KACA,eACA,gDACA,oCACA,KACA,mBACA,mBACA,KACA,MAEA,uBACA,+BACA,iCACA,yBACA,oBACA,iDACA,8CACA,+BACA,mDACA,qBACA,0BACA,YACA,oBACA,KACA,KACA,YACA,uBACA,KACA,KACA,kBACA,KACA,MAEA,uBACA,kCACA,iCACA,+CACA,oDACA,+BACA,iBACA,mCACA,6BACA,6DACA,KACA,eACA,KACA,MAIA,uBACA,yCACA,qEACA,iBACA,+CACA,0CACA,qBACA,gEACA,QACA,KACA,gBACA,KACA,MAIA,uBACA,oCACA,yFACA,+CACA,iBACA,gEACA,mCACA,iBACA,mBACA,oDACA,KACA,KACA,eACA,KACA,MAIA,uBACA,yCACA,mEACA,iBACA,+CACA,0CACA,qBACA,6CACA,QACA,KACA,KACA,MAIA,uBACA,qCACA,mEACA,iBACA,+CACA,0CACA,2BACA,qBACA,oDACA,QACA,KACA,aACA,KACA,MAIA,uBACA,kDACA,mEACA,+CACA,qBACA,iCACA,yBACA,YACA,qC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",
|
|
142
|
-
"debugId": "
|
|
141
|
+
"mappings": "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iCACA,+CACA,0BACA,aACA,KACA,6CACA,iBACA,sBACA,6BACA,0BACA,YACA,gBACA,KACA,eACA,uBACA,YACA,0BACA,KACA,KACA,aACA,KACA,MAEA,uBACA,gDACA,iCACA,+CACA,0BACA,2BACA,cACA,KACA,wDACA,qBACA,2CACA,aACA,KACA,QACA,KACA,cACA,KACA,MAEA,uBACA,oDACA,iCACA,+CACA,eACA,cACA,KACA,oBACA,+BACA,sBACA,YACA,gDACA,KACA,KACA,8DACA,oBACA,2CACA,aACA,KACA,QACA,KACA,cACA,KACA,MAEA,uBACA,gCACA,iCACA,+CAEA,eACA,4DAEA,qCACA,2BACA,aACA,KACA,kBACA,oBACA,YACA,6BACA,KACA,YACA,cACA,KACA,2BACA,iCACA,oCACA,2BACA,6BACA,KACA,KACA,kBACA,KACA,MAEA,uBACA,mDACA,iCACA,+CACA,eACA,oBACA,qCACA,YACA,iCACA,KACA,+BACA,8BACA,YACA,qBACA,kEACA,KACA,qBAEA,uDACA,iBACA,uBACA,YACA,qBACA,KACA,iCACA,8BACA,YACA,gBACA,KACA,KAEA,mEACA,iCACA,8BACA,YACA,gBACA,KACA,KAEA,mDACA,gBACA,KACA,uBAEA,mCACA,4CACA,iBACA,sBACA,YACA,sBACA,KACA,KACA,eACA,gDACA,oCACA,KACA,mBACA,mBACA,KACA,MAEA,uBACA,+BACA,iCACA,yBACA,oBACA,iDACA,8CACA,+BACA,mDACA,qBACA,0BACA,YACA,oBACA,KACA,KACA,YACA,uBACA,KACA,KACA,kBACA,KACA,MAEA,uBACA,kCACA,iCACA,+CACA,oDACA,+BACA,iBACA,mCACA,6BACA,6DACA,KACA,eACA,KACA,MAIA,uBACA,yCACA,qEACA,iBACA,+CACA,0CACA,qBACA,gEACA,QACA,KACA,gBACA,KACA,MAIA,uBACA,oCACA,yFACA,+CACA,iBACA,gEACA,mCACA,iBACA,mBACA,oDACA,KACA,KACA,eACA,KACA,MAIA,uBACA,yCACA,mEACA,iBACA,+CACA,0CACA,qBACA,6CACA,QACA,KACA,KACA,MAIA,uBACA,qCACA,mEACA,iBACA,+CACA,0CACA,2BACA,qBACA,oDACA,QACA,KACA,aACA,KACA,MAIA,uBACA,kDACA,mEACA,+CACA,qBACA,iCACA,yBACA,YACA,qCACA,mBACA,mEACA,KACA,mBACA,KACA,0BACA,oDACA,KACA,iBACA,KACA,MAIA,uBACA,uDACA,0GACA,+CACA,2BACA,gCACA,yBACA,YACA,oCACA,gBACA,mEACA,KACA,mBACA,KACA,yBACA,oDACA,KACA,iBACA,KACA,MAIA,uBACA,qCACA,8DACA,+CACA,gEACA,mCACA,6DACA,KACA,iBACA,KACA,MAEA,uBACA,6BACA,iCACA,yCACA,yBACA,KACA,2CACA,oBACA,mDACA,yDACA,8CACA,uBACA,4BACA,0BACA,0BACA,YACA,mBACA,KACA,kBACA,uBACA,YACA,uBACA,KACA,cACA,KACA,KACA,wBACA,KACA,gBACA,KACA,MAEA,uBACA,+BACA,iCACA,+CACA,iBACA,mCACA,gFACA,KACA,yBACA,KACA,MACA,SACA,EACF;AAAA;AAOF,YAAY,UAAU,aAAa,QAAS,CAAC,cAAc;AAAA,EACzD,IAAI,kBAAkB;AAAA,EACtB,IAAI;AAAA,EAEJ,UAAU,SAAS,OAAM,CAAC,OAAO;AAAA,IAC/B,QAAQ,UAAU,SAAS,YAAY,aAAa,OAAO,KAAK,IAAI;AAAA,IACpE,IAAI,gBAAgB,cAAc,GAAG;AAAA,MAEnC,KAAK,OAAO;AAAA,MACZ,OAAO;AAAA,IACT,EAAO;AAAA,MAEL,OAAO;AAAA;AAAA;AAAA,EAGX,KAAK,SAAS,KAAK,qBAAqB,SAAS,IAAI;AAAA,EACrD,KAAK,YAAY,cAAc,UAAU,KAAK,QAAQ,YAAY,wBAAwB;AAAA,EAG1F,KAAK,YACH,KAAK,QACL,gBACA,KAAK,qBAAqB,OAAO,cAAc,KAAK,GACpD,YAAY,wBACd;AAAA,EAIA,IAAI,YAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA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",
|
|
142
|
+
"debugId": "5A05433CE5000E5A64756E2164756E21",
|
|
143
143
|
"names": []
|
|
144
144
|
}
|