{"version":3,"sources":["node_modules/jsonpath/jsonpath.js","node_modules/ng-in-viewport/fesm2020/ng-in-viewport.mjs","node_modules/@vendasta/automata/fesm2020/vendasta-automata.mjs","apps/vendasta-center-client/src/app/pages/automations/task-definitions/conversion.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/create-task-definition-page/event-trigger-definition-selector-dialog/event-trigger-definition-selector-dialog.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/create-task-definition-page/event-trigger-definition-selector-dialog/event-trigger-definition-selector-dialog.component.html","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-defintions-table/cells/common-cell.component.ts","apps/vendasta-center-client/src/app/pages/automations/common/constants.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-defintions-table/cells/task-type-cell.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-defintions-table/cells/published-state-cell.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-defintions-table/cells/input-params-cell.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-defintions-table/cells/output-params-cell.component.ts","apps/vendasta-center-client/src/app/pages/automations/common/boolean-cell.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-defintions-table/cells/name-cell.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-defintions-table/cells/resource-cell.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-defintions-table/cells/supported-contexts-cell.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-defintions-table/table-model.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-defintions-table/task-definitions-table.service.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-defintions-table/task-defintions-filters.service.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-definitions-list-page.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definitions-list-page/task-definitions-list-page.component.html","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/event-trigger-definitions-list-page/event-trigger-defintions-table/event-trigger-definitions-filters.service.ts","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/event-trigger-definitions-list-page/event-trigger-defintions-table/event-trigger-definitions-table.service.ts","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/event-trigger-definitions-list-page/event-trigger-defintions-table/cells/common-cell.component.ts","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/event-trigger-definitions-list-page/event-trigger-defintions-table/cells/name-cell.component.ts","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/event-trigger-definitions-list-page/event-trigger-defintions-table/table-model.ts","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/event-trigger-definitions-list-page/event-trigger-definitions-list-page.component.ts","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/event-trigger-definitions-list-page/event-trigger-definitions-list-page.component.html","apps/vendasta-center-client/src/app/pages/automations/common/form-helpers.ts","apps/vendasta-center-client/src/app/pages/automations/common/import-from-json-dialog/import-from-json-dialog.component.ts","apps/vendasta-center-client/src/app/pages/automations/common/import-from-json-dialog/import-from-json-dialog.component.html","apps/vendasta-center-client/src/app/pages/automations/common/json-path-tester-dialog/json-path-tester-dialog.component.ts","apps/vendasta-center-client/src/app/pages/automations/common/json-path-tester-dialog/json-path-tester-dialog.component.html","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definition-form/add-input-parameter-dialog/add-input-parameter-dialog.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definition-form/add-input-parameter-dialog/add-input-parameter-dialog.component.html","apps/vendasta-center-client/src/app/pages/automations/task-definitions/rule-input/rule-input.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/rule-input/rule-input.component.html","apps/vendasta-center-client/src/app/pages/automations/task-definitions/and-or-input/and-or-input.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/and-or-input/and-or-input.component.html","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definition-form/task-definition-form.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/task-definition-form/task-definition-form.component.html","apps/vendasta-center-client/src/app/pages/automations/task-definitions/edit-task-definition-page/edit-task-definition-page.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/edit-task-definition-page/edit-task-definition-page.component.html","apps/vendasta-center-client/src/app/pages/automations/task-definitions/create-task-definition-page/create-task-definition-page.component.ts","apps/vendasta-center-client/src/app/pages/automations/task-definitions/create-task-definition-page/create-task-definition-page.component.html","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/event-trigger-definition-form/event-trigger-definition-form.component.ts","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/event-trigger-definition-form/event-trigger-definition-form.component.html","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/edit-event-trigger-definition-page/edit-event-trigger-definition-page.component.ts","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/edit-event-trigger-definition-page/edit-event-trigger-definition-page.component.html","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/create-event-trigger-definition-page/create-event-trigger-definition-page.component.ts","apps/vendasta-center-client/src/app/pages/automations/event-trigger-definitions/create-event-trigger-definition-page/create-event-trigger-definition-page.component.html","apps/vendasta-center-client/src/app/pages/automations/automations.routing.module.ts","apps/vendasta-center-client/src/app/pages/automations/automations.module.ts"],"sourcesContent":["/*! jsonpath 1.1.1 */\n\n(function (f) {\n if (typeof exports === \"object\" && typeof module !== \"undefined\") {\n module.exports = f();\n } else if (typeof define === \"function\" && define.amd) {\n define([], f);\n } else {\n var g;\n if (typeof window !== \"undefined\") {\n g = window;\n } else if (typeof global !== \"undefined\") {\n g = global;\n } else if (typeof self !== \"undefined\") {\n g = self;\n } else {\n g = this;\n }\n g.jsonpath = f();\n }\n})(function () {\n var define, module, exports;\n return function e(t, n, r) {\n function s(o, u) {\n if (!n[o]) {\n if (!t[o]) {\n var a = typeof require == \"function\" && require;\n if (!u && a) return a(o, !0);\n if (i) return i(o, !0);\n var f = new Error(\"Cannot find module '\" + o + \"'\");\n throw f.code = \"MODULE_NOT_FOUND\", f;\n }\n var l = n[o] = {\n exports: {}\n };\n t[o][0].call(l.exports, function (e) {\n var n = t[o][1][e];\n return s(n ? n : e);\n }, l, l.exports, e, t, n, r);\n }\n return n[o].exports;\n }\n var i = typeof require == \"function\" && require;\n for (var o = 0; o < r.length; o++) s(r[o]);\n return s;\n }({\n \"./aesprim\": [function (require, module, exports) {\n /*\n Copyright (C) 2013 Ariya Hidayat \n Copyright (C) 2013 Thaddee Tyl \n Copyright (C) 2013 Mathias Bynens \n Copyright (C) 2012 Ariya Hidayat \n Copyright (C) 2012 Mathias Bynens \n Copyright (C) 2012 Joost-Wim Boekesteijn \n Copyright (C) 2012 Kris Kowal \n Copyright (C) 2012 Yusuke Suzuki \n Copyright (C) 2012 Arpad Borsos \n Copyright (C) 2011 Ariya Hidayat \n \n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n \n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n \n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n /*jslint bitwise:true plusplus:true */\n /*global esprima:true, define:true, exports:true, window: true,\n throwErrorTolerant: true,\n throwError: true, generateStatement: true, peek: true,\n parseAssignmentExpression: true, parseBlock: true, parseExpression: true,\n parseFunctionDeclaration: true, parseFunctionExpression: true,\n parseFunctionSourceElements: true, parseVariableIdentifier: true,\n parseLeftHandSideExpression: true,\n parseUnaryExpression: true,\n parseStatement: true, parseSourceElement: true */\n\n (function (root, factory) {\n 'use strict';\n\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js,\n // Rhino, and plain browser loading.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define(['exports'], factory);\n } else if (typeof exports !== 'undefined') {\n factory(exports);\n } else {\n factory(root.esprima = {});\n }\n })(this, function (exports) {\n 'use strict';\n\n var Token, TokenName, FnExprTokens, Syntax, PropertyKind, Messages, Regex, SyntaxTreeDelegate, source, strict, index, lineNumber, lineStart, length, delegate, lookahead, state, extra;\n Token = {\n BooleanLiteral: 1,\n EOF: 2,\n Identifier: 3,\n Keyword: 4,\n NullLiteral: 5,\n NumericLiteral: 6,\n Punctuator: 7,\n StringLiteral: 8,\n RegularExpression: 9\n };\n TokenName = {};\n TokenName[Token.BooleanLiteral] = 'Boolean';\n TokenName[Token.EOF] = '';\n TokenName[Token.Identifier] = 'Identifier';\n TokenName[Token.Keyword] = 'Keyword';\n TokenName[Token.NullLiteral] = 'Null';\n TokenName[Token.NumericLiteral] = 'Numeric';\n TokenName[Token.Punctuator] = 'Punctuator';\n TokenName[Token.StringLiteral] = 'String';\n TokenName[Token.RegularExpression] = 'RegularExpression';\n\n // A function following one of those tokens is an expression.\n FnExprTokens = ['(', '{', '[', 'in', 'typeof', 'instanceof', 'new', 'return', 'case', 'delete', 'throw', 'void',\n // assignment operators\n '=', '+=', '-=', '*=', '/=', '%=', '<<=', '>>=', '>>>=', '&=', '|=', '^=', ',',\n // binary/unary operators\n '+', '-', '*', '/', '%', '++', '--', '<<', '>>', '>>>', '&', '|', '^', '!', '~', '&&', '||', '?', ':', '===', '==', '>=', '<=', '<', '>', '!=', '!=='];\n Syntax = {\n AssignmentExpression: 'AssignmentExpression',\n ArrayExpression: 'ArrayExpression',\n BlockStatement: 'BlockStatement',\n BinaryExpression: 'BinaryExpression',\n BreakStatement: 'BreakStatement',\n CallExpression: 'CallExpression',\n CatchClause: 'CatchClause',\n ConditionalExpression: 'ConditionalExpression',\n ContinueStatement: 'ContinueStatement',\n DoWhileStatement: 'DoWhileStatement',\n DebuggerStatement: 'DebuggerStatement',\n EmptyStatement: 'EmptyStatement',\n ExpressionStatement: 'ExpressionStatement',\n ForStatement: 'ForStatement',\n ForInStatement: 'ForInStatement',\n FunctionDeclaration: 'FunctionDeclaration',\n FunctionExpression: 'FunctionExpression',\n Identifier: 'Identifier',\n IfStatement: 'IfStatement',\n Literal: 'Literal',\n LabeledStatement: 'LabeledStatement',\n LogicalExpression: 'LogicalExpression',\n MemberExpression: 'MemberExpression',\n NewExpression: 'NewExpression',\n ObjectExpression: 'ObjectExpression',\n Program: 'Program',\n Property: 'Property',\n ReturnStatement: 'ReturnStatement',\n SequenceExpression: 'SequenceExpression',\n SwitchStatement: 'SwitchStatement',\n SwitchCase: 'SwitchCase',\n ThisExpression: 'ThisExpression',\n ThrowStatement: 'ThrowStatement',\n TryStatement: 'TryStatement',\n UnaryExpression: 'UnaryExpression',\n UpdateExpression: 'UpdateExpression',\n VariableDeclaration: 'VariableDeclaration',\n VariableDeclarator: 'VariableDeclarator',\n WhileStatement: 'WhileStatement',\n WithStatement: 'WithStatement'\n };\n PropertyKind = {\n Data: 1,\n Get: 2,\n Set: 4\n };\n\n // Error messages should be identical to V8.\n Messages = {\n UnexpectedToken: 'Unexpected token %0',\n UnexpectedNumber: 'Unexpected number',\n UnexpectedString: 'Unexpected string',\n UnexpectedIdentifier: 'Unexpected identifier',\n UnexpectedReserved: 'Unexpected reserved word',\n UnexpectedEOS: 'Unexpected end of input',\n NewlineAfterThrow: 'Illegal newline after throw',\n InvalidRegExp: 'Invalid regular expression',\n UnterminatedRegExp: 'Invalid regular expression: missing /',\n InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\n InvalidLHSInForIn: 'Invalid left-hand side in for-in',\n MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\n NoCatchOrFinally: 'Missing catch or finally after try',\n UnknownLabel: 'Undefined label \\'%0\\'',\n Redeclaration: '%0 \\'%1\\' has already been declared',\n IllegalContinue: 'Illegal continue statement',\n IllegalBreak: 'Illegal break statement',\n IllegalReturn: 'Illegal return statement',\n StrictModeWith: 'Strict mode code may not include a with statement',\n StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\n StrictVarName: 'Variable name may not be eval or arguments in strict mode',\n StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\n StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\n StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\n StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\n StrictDelete: 'Delete of an unqualified identifier in strict mode.',\n StrictDuplicateProperty: 'Duplicate data property in object literal not allowed in strict mode',\n AccessorDataProperty: 'Object literal may not have data and accessor property with the same name',\n AccessorGetSet: 'Object literal may not have multiple get/set accessors with the same name',\n StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\n StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\n StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\n StrictReservedWord: 'Use of future reserved word in strict mode'\n };\n\n // See also tools/generate-unicode-regex.py.\n Regex = {\n NonAsciiIdentifierStart: new RegExp('[\\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]'),\n NonAsciiIdentifierPart: new RegExp('[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0\\u08A2-\\u08AC\\u08E4-\\u08FE\\u0900-\\u0963\\u0966-\\u096F\\u0971-\\u0977\\u0979-\\u097F\\u0981-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\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\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F0\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1D00-\\u1DE6\\u1DFC-\\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\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\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-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\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-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA697\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7B\\uAA80-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE26\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]')\n };\n\n // Ensure the condition is true, otherwise throw an error.\n // This is only to have a better contract semantic, i.e. another safety net\n // to catch a logic error. The condition shall be fulfilled in normal case.\n // Do NOT use this to enforce a certain condition on any user input.\n\n function assert(condition, message) {\n /* istanbul ignore if */\n if (!condition) {\n throw new Error('ASSERT: ' + message);\n }\n }\n function isDecimalDigit(ch) {\n return ch >= 48 && ch <= 57; // 0..9\n }\n function isHexDigit(ch) {\n return '0123456789abcdefABCDEF'.indexOf(ch) >= 0;\n }\n function isOctalDigit(ch) {\n return '01234567'.indexOf(ch) >= 0;\n }\n\n // 7.2 White Space\n\n function isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || ch >= 0x1680 && [0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(ch) >= 0;\n }\n\n // 7.3 Line Terminators\n\n function isLineTerminator(ch) {\n return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029;\n }\n\n // 7.6 Identifier Names and Identifiers\n\n function isIdentifierStart(ch) {\n return ch == 0x40 || ch === 0x24 || ch === 0x5F ||\n // $ (dollar) and _ (underscore)\n ch >= 0x41 && ch <= 0x5A ||\n // A..Z\n ch >= 0x61 && ch <= 0x7A ||\n // a..z\n ch === 0x5C ||\n // \\ (backslash)\n ch >= 0x80 && Regex.NonAsciiIdentifierStart.test(String.fromCharCode(ch));\n }\n function isIdentifierPart(ch) {\n return ch === 0x24 || ch === 0x5F ||\n // $ (dollar) and _ (underscore)\n ch >= 0x41 && ch <= 0x5A ||\n // A..Z\n ch >= 0x61 && ch <= 0x7A ||\n // a..z\n ch >= 0x30 && ch <= 0x39 ||\n // 0..9\n ch === 0x5C ||\n // \\ (backslash)\n ch >= 0x80 && Regex.NonAsciiIdentifierPart.test(String.fromCharCode(ch));\n }\n\n // 7.6.1.2 Future Reserved Words\n\n function isFutureReservedWord(id) {\n switch (id) {\n case 'class':\n case 'enum':\n case 'export':\n case 'extends':\n case 'import':\n case 'super':\n return true;\n default:\n return false;\n }\n }\n function isStrictModeReservedWord(id) {\n switch (id) {\n case 'implements':\n case 'interface':\n case 'package':\n case 'private':\n case 'protected':\n case 'public':\n case 'static':\n case 'yield':\n case 'let':\n return true;\n default:\n return false;\n }\n }\n function isRestrictedWord(id) {\n return id === 'eval' || id === 'arguments';\n }\n\n // 7.6.1.1 Keywords\n\n function isKeyword(id) {\n if (strict && isStrictModeReservedWord(id)) {\n return true;\n }\n\n // 'const' is specialized as Keyword in V8.\n // 'yield' and 'let' are for compatiblity with SpiderMonkey and ES.next.\n // Some others are from future reserved words.\n\n switch (id.length) {\n case 2:\n return id === 'if' || id === 'in' || id === 'do';\n case 3:\n return id === 'var' || id === 'for' || id === 'new' || id === 'try' || id === 'let';\n case 4:\n return id === 'this' || id === 'else' || id === 'case' || id === 'void' || id === 'with' || id === 'enum';\n case 5:\n return id === 'while' || id === 'break' || id === 'catch' || id === 'throw' || id === 'const' || id === 'yield' || id === 'class' || id === 'super';\n case 6:\n return id === 'return' || id === 'typeof' || id === 'delete' || id === 'switch' || id === 'export' || id === 'import';\n case 7:\n return id === 'default' || id === 'finally' || id === 'extends';\n case 8:\n return id === 'function' || id === 'continue' || id === 'debugger';\n case 10:\n return id === 'instanceof';\n default:\n return false;\n }\n }\n\n // 7.4 Comments\n\n function addComment(type, value, start, end, loc) {\n var comment, attacher;\n assert(typeof start === 'number', 'Comment must have valid position');\n\n // Because the way the actual token is scanned, often the comments\n // (if any) are skipped twice during the lexical analysis.\n // Thus, we need to skip adding a comment if the comment array already\n // handled it.\n if (state.lastCommentStart >= start) {\n return;\n }\n state.lastCommentStart = start;\n comment = {\n type: type,\n value: value\n };\n if (extra.range) {\n comment.range = [start, end];\n }\n if (extra.loc) {\n comment.loc = loc;\n }\n extra.comments.push(comment);\n if (extra.attachComment) {\n extra.leadingComments.push(comment);\n extra.trailingComments.push(comment);\n }\n }\n function skipSingleLineComment(offset) {\n var start, loc, ch, comment;\n start = index - offset;\n loc = {\n start: {\n line: lineNumber,\n column: index - lineStart - offset\n }\n };\n while (index < length) {\n ch = source.charCodeAt(index);\n ++index;\n if (isLineTerminator(ch)) {\n if (extra.comments) {\n comment = source.slice(start + offset, index - 1);\n loc.end = {\n line: lineNumber,\n column: index - lineStart - 1\n };\n addComment('Line', comment, start, index - 1, loc);\n }\n if (ch === 13 && source.charCodeAt(index) === 10) {\n ++index;\n }\n ++lineNumber;\n lineStart = index;\n return;\n }\n }\n if (extra.comments) {\n comment = source.slice(start + offset, index);\n loc.end = {\n line: lineNumber,\n column: index - lineStart\n };\n addComment('Line', comment, start, index, loc);\n }\n }\n function skipMultiLineComment() {\n var start, loc, ch, comment;\n if (extra.comments) {\n start = index - 2;\n loc = {\n start: {\n line: lineNumber,\n column: index - lineStart - 2\n }\n };\n }\n while (index < length) {\n ch = source.charCodeAt(index);\n if (isLineTerminator(ch)) {\n if (ch === 0x0D && source.charCodeAt(index + 1) === 0x0A) {\n ++index;\n }\n ++lineNumber;\n ++index;\n lineStart = index;\n if (index >= length) {\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n } else if (ch === 0x2A) {\n // Block comment ends with '*/'.\n if (source.charCodeAt(index + 1) === 0x2F) {\n ++index;\n ++index;\n if (extra.comments) {\n comment = source.slice(start + 2, index - 2);\n loc.end = {\n line: lineNumber,\n column: index - lineStart\n };\n addComment('Block', comment, start, index, loc);\n }\n return;\n }\n ++index;\n } else {\n ++index;\n }\n }\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n function skipComment() {\n var ch, start;\n start = index === 0;\n while (index < length) {\n ch = source.charCodeAt(index);\n if (isWhiteSpace(ch)) {\n ++index;\n } else if (isLineTerminator(ch)) {\n ++index;\n if (ch === 0x0D && source.charCodeAt(index) === 0x0A) {\n ++index;\n }\n ++lineNumber;\n lineStart = index;\n start = true;\n } else if (ch === 0x2F) {\n // U+002F is '/'\n ch = source.charCodeAt(index + 1);\n if (ch === 0x2F) {\n ++index;\n ++index;\n skipSingleLineComment(2);\n start = true;\n } else if (ch === 0x2A) {\n // U+002A is '*'\n ++index;\n ++index;\n skipMultiLineComment();\n } else {\n break;\n }\n } else if (start && ch === 0x2D) {\n // U+002D is '-'\n // U+003E is '>'\n if (source.charCodeAt(index + 1) === 0x2D && source.charCodeAt(index + 2) === 0x3E) {\n // '-->' is a single-line comment\n index += 3;\n skipSingleLineComment(3);\n } else {\n break;\n }\n } else if (ch === 0x3C) {\n // U+003C is '<'\n if (source.slice(index + 1, index + 4) === '!--') {\n ++index; // `<`\n ++index; // `!`\n ++index; // `-`\n ++index; // `-`\n skipSingleLineComment(4);\n } else {\n break;\n }\n } else {\n break;\n }\n }\n }\n function scanHexEscape(prefix) {\n var i,\n len,\n ch,\n code = 0;\n len = prefix === 'u' ? 4 : 2;\n for (i = 0; i < len; ++i) {\n if (index < length && isHexDigit(source[index])) {\n ch = source[index++];\n code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase());\n } else {\n return '';\n }\n }\n return String.fromCharCode(code);\n }\n function getEscapedIdentifier() {\n var ch, id;\n ch = source.charCodeAt(index++);\n id = String.fromCharCode(ch);\n\n // '\\u' (U+005C, U+0075) denotes an escaped character.\n if (ch === 0x5C) {\n if (source.charCodeAt(index) !== 0x75) {\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n ++index;\n ch = scanHexEscape('u');\n if (!ch || ch === '\\\\' || !isIdentifierStart(ch.charCodeAt(0))) {\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n id = ch;\n }\n while (index < length) {\n ch = source.charCodeAt(index);\n if (!isIdentifierPart(ch)) {\n break;\n }\n ++index;\n id += String.fromCharCode(ch);\n\n // '\\u' (U+005C, U+0075) denotes an escaped character.\n if (ch === 0x5C) {\n id = id.substr(0, id.length - 1);\n if (source.charCodeAt(index) !== 0x75) {\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n ++index;\n ch = scanHexEscape('u');\n if (!ch || ch === '\\\\' || !isIdentifierPart(ch.charCodeAt(0))) {\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n id += ch;\n }\n }\n return id;\n }\n function getIdentifier() {\n var start, ch;\n start = index++;\n while (index < length) {\n ch = source.charCodeAt(index);\n if (ch === 0x5C) {\n // Blackslash (U+005C) marks Unicode escape sequence.\n index = start;\n return getEscapedIdentifier();\n }\n if (isIdentifierPart(ch)) {\n ++index;\n } else {\n break;\n }\n }\n return source.slice(start, index);\n }\n function scanIdentifier() {\n var start, id, type;\n start = index;\n\n // Backslash (U+005C) starts an escaped character.\n id = source.charCodeAt(index) === 0x5C ? getEscapedIdentifier() : getIdentifier();\n\n // There is no keyword or literal with only one character.\n // Thus, it must be an identifier.\n if (id.length === 1) {\n type = Token.Identifier;\n } else if (isKeyword(id)) {\n type = Token.Keyword;\n } else if (id === 'null') {\n type = Token.NullLiteral;\n } else if (id === 'true' || id === 'false') {\n type = Token.BooleanLiteral;\n } else {\n type = Token.Identifier;\n }\n return {\n type: type,\n value: id,\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n }\n\n // 7.7 Punctuators\n\n function scanPunctuator() {\n var start = index,\n code = source.charCodeAt(index),\n code2,\n ch1 = source[index],\n ch2,\n ch3,\n ch4;\n switch (code) {\n // Check for most common single-character punctuators.\n case 0x2E: // . dot\n case 0x28: // ( open bracket\n case 0x29: // ) close bracket\n case 0x3B: // ; semicolon\n case 0x2C: // , comma\n case 0x7B: // { open curly brace\n case 0x7D: // } close curly brace\n case 0x5B: // [\n case 0x5D: // ]\n case 0x3A: // :\n case 0x3F: // ?\n case 0x7E:\n // ~\n ++index;\n if (extra.tokenize) {\n if (code === 0x28) {\n extra.openParenToken = extra.tokens.length;\n } else if (code === 0x7B) {\n extra.openCurlyToken = extra.tokens.length;\n }\n }\n return {\n type: Token.Punctuator,\n value: String.fromCharCode(code),\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n default:\n code2 = source.charCodeAt(index + 1);\n\n // '=' (U+003D) marks an assignment or comparison operator.\n if (code2 === 0x3D) {\n switch (code) {\n case 0x2B: // +\n case 0x2D: // -\n case 0x2F: // /\n case 0x3C: // <\n case 0x3E: // >\n case 0x5E: // ^\n case 0x7C: // |\n case 0x25: // %\n case 0x26: // &\n case 0x2A:\n // *\n index += 2;\n return {\n type: Token.Punctuator,\n value: String.fromCharCode(code) + String.fromCharCode(code2),\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n case 0x21: // !\n case 0x3D:\n // =\n index += 2;\n\n // !== and ===\n if (source.charCodeAt(index) === 0x3D) {\n ++index;\n }\n return {\n type: Token.Punctuator,\n value: source.slice(start, index),\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n }\n }\n }\n\n // 4-character punctuator: >>>=\n\n ch4 = source.substr(index, 4);\n if (ch4 === '>>>=') {\n index += 4;\n return {\n type: Token.Punctuator,\n value: ch4,\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n }\n\n // 3-character punctuators: === !== >>> <<= >>=\n\n ch3 = ch4.substr(0, 3);\n if (ch3 === '>>>' || ch3 === '<<=' || ch3 === '>>=') {\n index += 3;\n return {\n type: Token.Punctuator,\n value: ch3,\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n }\n\n // Other 2-character punctuators: ++ -- << >> && ||\n ch2 = ch3.substr(0, 2);\n if (ch1 === ch2[1] && '+-<>&|'.indexOf(ch1) >= 0 || ch2 === '=>') {\n index += 2;\n return {\n type: Token.Punctuator,\n value: ch2,\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n }\n\n // 1-character punctuators: < > = ! + - * % & | ^ /\n if ('<>=!+-*%&|^/'.indexOf(ch1) >= 0) {\n ++index;\n return {\n type: Token.Punctuator,\n value: ch1,\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n }\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n\n // 7.8.3 Numeric Literals\n\n function scanHexLiteral(start) {\n var number = '';\n while (index < length) {\n if (!isHexDigit(source[index])) {\n break;\n }\n number += source[index++];\n }\n if (number.length === 0) {\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n if (isIdentifierStart(source.charCodeAt(index))) {\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n return {\n type: Token.NumericLiteral,\n value: parseInt('0x' + number, 16),\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n }\n function scanOctalLiteral(start) {\n var number = '0' + source[index++];\n while (index < length) {\n if (!isOctalDigit(source[index])) {\n break;\n }\n number += source[index++];\n }\n if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) {\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n return {\n type: Token.NumericLiteral,\n value: parseInt(number, 8),\n octal: true,\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n }\n function scanNumericLiteral() {\n var number, start, ch;\n ch = source[index];\n assert(isDecimalDigit(ch.charCodeAt(0)) || ch === '.', 'Numeric literal must start with a decimal digit or a decimal point');\n start = index;\n number = '';\n if (ch !== '.') {\n number = source[index++];\n ch = source[index];\n\n // Hex number starts with '0x'.\n // Octal number starts with '0'.\n if (number === '0') {\n if (ch === 'x' || ch === 'X') {\n ++index;\n return scanHexLiteral(start);\n }\n if (isOctalDigit(ch)) {\n return scanOctalLiteral(start);\n }\n\n // decimal number starts with '0' such as '09' is illegal.\n if (ch && isDecimalDigit(ch.charCodeAt(0))) {\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n }\n while (isDecimalDigit(source.charCodeAt(index))) {\n number += source[index++];\n }\n ch = source[index];\n }\n if (ch === '.') {\n number += source[index++];\n while (isDecimalDigit(source.charCodeAt(index))) {\n number += source[index++];\n }\n ch = source[index];\n }\n if (ch === 'e' || ch === 'E') {\n number += source[index++];\n ch = source[index];\n if (ch === '+' || ch === '-') {\n number += source[index++];\n }\n if (isDecimalDigit(source.charCodeAt(index))) {\n while (isDecimalDigit(source.charCodeAt(index))) {\n number += source[index++];\n }\n } else {\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n }\n if (isIdentifierStart(source.charCodeAt(index))) {\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n return {\n type: Token.NumericLiteral,\n value: parseFloat(number),\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n }\n\n // 7.8.4 String Literals\n\n function scanStringLiteral() {\n var str = '',\n quote,\n start,\n ch,\n code,\n unescaped,\n restore,\n octal = false,\n startLineNumber,\n startLineStart;\n startLineNumber = lineNumber;\n startLineStart = lineStart;\n quote = source[index];\n assert(quote === '\\'' || quote === '\"', 'String literal must starts with a quote');\n start = index;\n ++index;\n while (index < length) {\n ch = source[index++];\n if (ch === quote) {\n quote = '';\n break;\n } else if (ch === '\\\\') {\n ch = source[index++];\n if (!ch || !isLineTerminator(ch.charCodeAt(0))) {\n switch (ch) {\n case 'u':\n case 'x':\n restore = index;\n unescaped = scanHexEscape(ch);\n if (unescaped) {\n str += unescaped;\n } else {\n index = restore;\n str += ch;\n }\n break;\n case 'n':\n str += '\\n';\n break;\n case 'r':\n str += '\\r';\n break;\n case 't':\n str += '\\t';\n break;\n case 'b':\n str += '\\b';\n break;\n case 'f':\n str += '\\f';\n break;\n case 'v':\n str += '\\x0B';\n break;\n default:\n if (isOctalDigit(ch)) {\n code = '01234567'.indexOf(ch);\n\n // \\0 is not octal escape sequence\n if (code !== 0) {\n octal = true;\n }\n if (index < length && isOctalDigit(source[index])) {\n octal = true;\n code = code * 8 + '01234567'.indexOf(source[index++]);\n\n // 3 digits are only allowed when string starts\n // with 0, 1, 2, 3\n if ('0123'.indexOf(ch) >= 0 && index < length && isOctalDigit(source[index])) {\n code = code * 8 + '01234567'.indexOf(source[index++]);\n }\n }\n str += String.fromCharCode(code);\n } else {\n str += ch;\n }\n break;\n }\n } else {\n ++lineNumber;\n if (ch === '\\r' && source[index] === '\\n') {\n ++index;\n }\n lineStart = index;\n }\n } else if (isLineTerminator(ch.charCodeAt(0))) {\n break;\n } else {\n str += ch;\n }\n }\n if (quote !== '') {\n throwError({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n return {\n type: Token.StringLiteral,\n value: str,\n octal: octal,\n startLineNumber: startLineNumber,\n startLineStart: startLineStart,\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n }\n function testRegExp(pattern, flags) {\n var value;\n try {\n value = new RegExp(pattern, flags);\n } catch (e) {\n throwError({}, Messages.InvalidRegExp);\n }\n return value;\n }\n function scanRegExpBody() {\n var ch, str, classMarker, terminated, body;\n ch = source[index];\n assert(ch === '/', 'Regular expression literal must start with a slash');\n str = source[index++];\n classMarker = false;\n terminated = false;\n while (index < length) {\n ch = source[index++];\n str += ch;\n if (ch === '\\\\') {\n ch = source[index++];\n // ECMA-262 7.8.5\n if (isLineTerminator(ch.charCodeAt(0))) {\n throwError({}, Messages.UnterminatedRegExp);\n }\n str += ch;\n } else if (isLineTerminator(ch.charCodeAt(0))) {\n throwError({}, Messages.UnterminatedRegExp);\n } else if (classMarker) {\n if (ch === ']') {\n classMarker = false;\n }\n } else {\n if (ch === '/') {\n terminated = true;\n break;\n } else if (ch === '[') {\n classMarker = true;\n }\n }\n }\n if (!terminated) {\n throwError({}, Messages.UnterminatedRegExp);\n }\n\n // Exclude leading and trailing slash.\n body = str.substr(1, str.length - 2);\n return {\n value: body,\n literal: str\n };\n }\n function scanRegExpFlags() {\n var ch, str, flags, restore;\n str = '';\n flags = '';\n while (index < length) {\n ch = source[index];\n if (!isIdentifierPart(ch.charCodeAt(0))) {\n break;\n }\n ++index;\n if (ch === '\\\\' && index < length) {\n ch = source[index];\n if (ch === 'u') {\n ++index;\n restore = index;\n ch = scanHexEscape('u');\n if (ch) {\n flags += ch;\n for (str += '\\\\u'; restore < index; ++restore) {\n str += source[restore];\n }\n } else {\n index = restore;\n flags += 'u';\n str += '\\\\u';\n }\n throwErrorTolerant({}, Messages.UnexpectedToken, 'ILLEGAL');\n } else {\n str += '\\\\';\n throwErrorTolerant({}, Messages.UnexpectedToken, 'ILLEGAL');\n }\n } else {\n flags += ch;\n str += ch;\n }\n }\n return {\n value: flags,\n literal: str\n };\n }\n function scanRegExp() {\n var start, body, flags, pattern, value;\n lookahead = null;\n skipComment();\n start = index;\n body = scanRegExpBody();\n flags = scanRegExpFlags();\n value = testRegExp(body.value, flags.value);\n if (extra.tokenize) {\n return {\n type: Token.RegularExpression,\n value: value,\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: start,\n end: index\n };\n }\n return {\n literal: body.literal + flags.literal,\n value: value,\n start: start,\n end: index\n };\n }\n function collectRegex() {\n var pos, loc, regex, token;\n skipComment();\n pos = index;\n loc = {\n start: {\n line: lineNumber,\n column: index - lineStart\n }\n };\n regex = scanRegExp();\n loc.end = {\n line: lineNumber,\n column: index - lineStart\n };\n\n /* istanbul ignore next */\n if (!extra.tokenize) {\n // Pop the previous token, which is likely '/' or '/='\n if (extra.tokens.length > 0) {\n token = extra.tokens[extra.tokens.length - 1];\n if (token.range[0] === pos && token.type === 'Punctuator') {\n if (token.value === '/' || token.value === '/=') {\n extra.tokens.pop();\n }\n }\n }\n extra.tokens.push({\n type: 'RegularExpression',\n value: regex.literal,\n range: [pos, index],\n loc: loc\n });\n }\n return regex;\n }\n function isIdentifierName(token) {\n return token.type === Token.Identifier || token.type === Token.Keyword || token.type === Token.BooleanLiteral || token.type === Token.NullLiteral;\n }\n function advanceSlash() {\n var prevToken, checkToken;\n // Using the following algorithm:\n // https://github.com/mozilla/sweet.js/wiki/design\n prevToken = extra.tokens[extra.tokens.length - 1];\n if (!prevToken) {\n // Nothing before that: it cannot be a division.\n return collectRegex();\n }\n if (prevToken.type === 'Punctuator') {\n if (prevToken.value === ']') {\n return scanPunctuator();\n }\n if (prevToken.value === ')') {\n checkToken = extra.tokens[extra.openParenToken - 1];\n if (checkToken && checkToken.type === 'Keyword' && (checkToken.value === 'if' || checkToken.value === 'while' || checkToken.value === 'for' || checkToken.value === 'with')) {\n return collectRegex();\n }\n return scanPunctuator();\n }\n if (prevToken.value === '}') {\n // Dividing a function by anything makes little sense,\n // but we have to check for that.\n if (extra.tokens[extra.openCurlyToken - 3] && extra.tokens[extra.openCurlyToken - 3].type === 'Keyword') {\n // Anonymous function.\n checkToken = extra.tokens[extra.openCurlyToken - 4];\n if (!checkToken) {\n return scanPunctuator();\n }\n } else if (extra.tokens[extra.openCurlyToken - 4] && extra.tokens[extra.openCurlyToken - 4].type === 'Keyword') {\n // Named function.\n checkToken = extra.tokens[extra.openCurlyToken - 5];\n if (!checkToken) {\n return collectRegex();\n }\n } else {\n return scanPunctuator();\n }\n // checkToken determines whether the function is\n // a declaration or an expression.\n if (FnExprTokens.indexOf(checkToken.value) >= 0) {\n // It is an expression.\n return scanPunctuator();\n }\n // It is a declaration.\n return collectRegex();\n }\n return collectRegex();\n }\n if (prevToken.type === 'Keyword') {\n return collectRegex();\n }\n return scanPunctuator();\n }\n function advance() {\n var ch;\n skipComment();\n if (index >= length) {\n return {\n type: Token.EOF,\n lineNumber: lineNumber,\n lineStart: lineStart,\n start: index,\n end: index\n };\n }\n ch = source.charCodeAt(index);\n if (isIdentifierStart(ch)) {\n return scanIdentifier();\n }\n\n // Very common: ( and ) and ;\n if (ch === 0x28 || ch === 0x29 || ch === 0x3B) {\n return scanPunctuator();\n }\n\n // String literal starts with single quote (U+0027) or double quote (U+0022).\n if (ch === 0x27 || ch === 0x22) {\n return scanStringLiteral();\n }\n\n // Dot (.) U+002E can also start a floating-point number, hence the need\n // to check the next character.\n if (ch === 0x2E) {\n if (isDecimalDigit(source.charCodeAt(index + 1))) {\n return scanNumericLiteral();\n }\n return scanPunctuator();\n }\n if (isDecimalDigit(ch)) {\n return scanNumericLiteral();\n }\n\n // Slash (/) U+002F can also start a regex.\n if (extra.tokenize && ch === 0x2F) {\n return advanceSlash();\n }\n return scanPunctuator();\n }\n function collectToken() {\n var loc, token, range, value;\n skipComment();\n loc = {\n start: {\n line: lineNumber,\n column: index - lineStart\n }\n };\n token = advance();\n loc.end = {\n line: lineNumber,\n column: index - lineStart\n };\n if (token.type !== Token.EOF) {\n value = source.slice(token.start, token.end);\n extra.tokens.push({\n type: TokenName[token.type],\n value: value,\n range: [token.start, token.end],\n loc: loc\n });\n }\n return token;\n }\n function lex() {\n var token;\n token = lookahead;\n index = token.end;\n lineNumber = token.lineNumber;\n lineStart = token.lineStart;\n lookahead = typeof extra.tokens !== 'undefined' ? collectToken() : advance();\n index = token.end;\n lineNumber = token.lineNumber;\n lineStart = token.lineStart;\n return token;\n }\n function peek() {\n var pos, line, start;\n pos = index;\n line = lineNumber;\n start = lineStart;\n lookahead = typeof extra.tokens !== 'undefined' ? collectToken() : advance();\n index = pos;\n lineNumber = line;\n lineStart = start;\n }\n function Position(line, column) {\n this.line = line;\n this.column = column;\n }\n function SourceLocation(startLine, startColumn, line, column) {\n this.start = new Position(startLine, startColumn);\n this.end = new Position(line, column);\n }\n SyntaxTreeDelegate = {\n name: 'SyntaxTree',\n processComment: function (node) {\n var lastChild, trailingComments;\n if (node.type === Syntax.Program) {\n if (node.body.length > 0) {\n return;\n }\n }\n if (extra.trailingComments.length > 0) {\n if (extra.trailingComments[0].range[0] >= node.range[1]) {\n trailingComments = extra.trailingComments;\n extra.trailingComments = [];\n } else {\n extra.trailingComments.length = 0;\n }\n } else {\n if (extra.bottomRightStack.length > 0 && extra.bottomRightStack[extra.bottomRightStack.length - 1].trailingComments && extra.bottomRightStack[extra.bottomRightStack.length - 1].trailingComments[0].range[0] >= node.range[1]) {\n trailingComments = extra.bottomRightStack[extra.bottomRightStack.length - 1].trailingComments;\n delete extra.bottomRightStack[extra.bottomRightStack.length - 1].trailingComments;\n }\n }\n\n // Eating the stack.\n while (extra.bottomRightStack.length > 0 && extra.bottomRightStack[extra.bottomRightStack.length - 1].range[0] >= node.range[0]) {\n lastChild = extra.bottomRightStack.pop();\n }\n if (lastChild) {\n if (lastChild.leadingComments && lastChild.leadingComments[lastChild.leadingComments.length - 1].range[1] <= node.range[0]) {\n node.leadingComments = lastChild.leadingComments;\n delete lastChild.leadingComments;\n }\n } else if (extra.leadingComments.length > 0 && extra.leadingComments[extra.leadingComments.length - 1].range[1] <= node.range[0]) {\n node.leadingComments = extra.leadingComments;\n extra.leadingComments = [];\n }\n if (trailingComments) {\n node.trailingComments = trailingComments;\n }\n extra.bottomRightStack.push(node);\n },\n markEnd: function (node, startToken) {\n if (extra.range) {\n node.range = [startToken.start, index];\n }\n if (extra.loc) {\n node.loc = new SourceLocation(startToken.startLineNumber === undefined ? startToken.lineNumber : startToken.startLineNumber, startToken.start - (startToken.startLineStart === undefined ? startToken.lineStart : startToken.startLineStart), lineNumber, index - lineStart);\n this.postProcess(node);\n }\n if (extra.attachComment) {\n this.processComment(node);\n }\n return node;\n },\n postProcess: function (node) {\n if (extra.source) {\n node.loc.source = extra.source;\n }\n return node;\n },\n createArrayExpression: function (elements) {\n return {\n type: Syntax.ArrayExpression,\n elements: elements\n };\n },\n createAssignmentExpression: function (operator, left, right) {\n return {\n type: Syntax.AssignmentExpression,\n operator: operator,\n left: left,\n right: right\n };\n },\n createBinaryExpression: function (operator, left, right) {\n var type = operator === '||' || operator === '&&' ? Syntax.LogicalExpression : Syntax.BinaryExpression;\n return {\n type: type,\n operator: operator,\n left: left,\n right: right\n };\n },\n createBlockStatement: function (body) {\n return {\n type: Syntax.BlockStatement,\n body: body\n };\n },\n createBreakStatement: function (label) {\n return {\n type: Syntax.BreakStatement,\n label: label\n };\n },\n createCallExpression: function (callee, args) {\n return {\n type: Syntax.CallExpression,\n callee: callee,\n 'arguments': args\n };\n },\n createCatchClause: function (param, body) {\n return {\n type: Syntax.CatchClause,\n param: param,\n body: body\n };\n },\n createConditionalExpression: function (test, consequent, alternate) {\n return {\n type: Syntax.ConditionalExpression,\n test: test,\n consequent: consequent,\n alternate: alternate\n };\n },\n createContinueStatement: function (label) {\n return {\n type: Syntax.ContinueStatement,\n label: label\n };\n },\n createDebuggerStatement: function () {\n return {\n type: Syntax.DebuggerStatement\n };\n },\n createDoWhileStatement: function (body, test) {\n return {\n type: Syntax.DoWhileStatement,\n body: body,\n test: test\n };\n },\n createEmptyStatement: function () {\n return {\n type: Syntax.EmptyStatement\n };\n },\n createExpressionStatement: function (expression) {\n return {\n type: Syntax.ExpressionStatement,\n expression: expression\n };\n },\n createForStatement: function (init, test, update, body) {\n return {\n type: Syntax.ForStatement,\n init: init,\n test: test,\n update: update,\n body: body\n };\n },\n createForInStatement: function (left, right, body) {\n return {\n type: Syntax.ForInStatement,\n left: left,\n right: right,\n body: body,\n each: false\n };\n },\n createFunctionDeclaration: function (id, params, defaults, body) {\n return {\n type: Syntax.FunctionDeclaration,\n id: id,\n params: params,\n defaults: defaults,\n body: body,\n rest: null,\n generator: false,\n expression: false\n };\n },\n createFunctionExpression: function (id, params, defaults, body) {\n return {\n type: Syntax.FunctionExpression,\n id: id,\n params: params,\n defaults: defaults,\n body: body,\n rest: null,\n generator: false,\n expression: false\n };\n },\n createIdentifier: function (name) {\n return {\n type: Syntax.Identifier,\n name: name\n };\n },\n createIfStatement: function (test, consequent, alternate) {\n return {\n type: Syntax.IfStatement,\n test: test,\n consequent: consequent,\n alternate: alternate\n };\n },\n createLabeledStatement: function (label, body) {\n return {\n type: Syntax.LabeledStatement,\n label: label,\n body: body\n };\n },\n createLiteral: function (token) {\n return {\n type: Syntax.Literal,\n value: token.value,\n raw: source.slice(token.start, token.end)\n };\n },\n createMemberExpression: function (accessor, object, property) {\n return {\n type: Syntax.MemberExpression,\n computed: accessor === '[',\n object: object,\n property: property\n };\n },\n createNewExpression: function (callee, args) {\n return {\n type: Syntax.NewExpression,\n callee: callee,\n 'arguments': args\n };\n },\n createObjectExpression: function (properties) {\n return {\n type: Syntax.ObjectExpression,\n properties: properties\n };\n },\n createPostfixExpression: function (operator, argument) {\n return {\n type: Syntax.UpdateExpression,\n operator: operator,\n argument: argument,\n prefix: false\n };\n },\n createProgram: function (body) {\n return {\n type: Syntax.Program,\n body: body\n };\n },\n createProperty: function (kind, key, value) {\n return {\n type: Syntax.Property,\n key: key,\n value: value,\n kind: kind\n };\n },\n createReturnStatement: function (argument) {\n return {\n type: Syntax.ReturnStatement,\n argument: argument\n };\n },\n createSequenceExpression: function (expressions) {\n return {\n type: Syntax.SequenceExpression,\n expressions: expressions\n };\n },\n createSwitchCase: function (test, consequent) {\n return {\n type: Syntax.SwitchCase,\n test: test,\n consequent: consequent\n };\n },\n createSwitchStatement: function (discriminant, cases) {\n return {\n type: Syntax.SwitchStatement,\n discriminant: discriminant,\n cases: cases\n };\n },\n createThisExpression: function () {\n return {\n type: Syntax.ThisExpression\n };\n },\n createThrowStatement: function (argument) {\n return {\n type: Syntax.ThrowStatement,\n argument: argument\n };\n },\n createTryStatement: function (block, guardedHandlers, handlers, finalizer) {\n return {\n type: Syntax.TryStatement,\n block: block,\n guardedHandlers: guardedHandlers,\n handlers: handlers,\n finalizer: finalizer\n };\n },\n createUnaryExpression: function (operator, argument) {\n if (operator === '++' || operator === '--') {\n return {\n type: Syntax.UpdateExpression,\n operator: operator,\n argument: argument,\n prefix: true\n };\n }\n return {\n type: Syntax.UnaryExpression,\n operator: operator,\n argument: argument,\n prefix: true\n };\n },\n createVariableDeclaration: function (declarations, kind) {\n return {\n type: Syntax.VariableDeclaration,\n declarations: declarations,\n kind: kind\n };\n },\n createVariableDeclarator: function (id, init) {\n return {\n type: Syntax.VariableDeclarator,\n id: id,\n init: init\n };\n },\n createWhileStatement: function (test, body) {\n return {\n type: Syntax.WhileStatement,\n test: test,\n body: body\n };\n },\n createWithStatement: function (object, body) {\n return {\n type: Syntax.WithStatement,\n object: object,\n body: body\n };\n }\n };\n\n // Return true if there is a line terminator before the next token.\n\n function peekLineTerminator() {\n var pos, line, start, found;\n pos = index;\n line = lineNumber;\n start = lineStart;\n skipComment();\n found = lineNumber !== line;\n index = pos;\n lineNumber = line;\n lineStart = start;\n return found;\n }\n\n // Throw an exception\n\n function throwError(token, messageFormat) {\n var error,\n args = Array.prototype.slice.call(arguments, 2),\n msg = messageFormat.replace(/%(\\d)/g, function (whole, index) {\n assert(index < args.length, 'Message reference must be in range');\n return args[index];\n });\n if (typeof token.lineNumber === 'number') {\n error = new Error('Line ' + token.lineNumber + ': ' + msg);\n error.index = token.start;\n error.lineNumber = token.lineNumber;\n error.column = token.start - lineStart + 1;\n } else {\n error = new Error('Line ' + lineNumber + ': ' + msg);\n error.index = index;\n error.lineNumber = lineNumber;\n error.column = index - lineStart + 1;\n }\n error.description = msg;\n throw error;\n }\n function throwErrorTolerant() {\n try {\n throwError.apply(null, arguments);\n } catch (e) {\n if (extra.errors) {\n extra.errors.push(e);\n } else {\n throw e;\n }\n }\n }\n\n // Throw an exception because of the token.\n\n function throwUnexpected(token) {\n if (token.type === Token.EOF) {\n throwError(token, Messages.UnexpectedEOS);\n }\n if (token.type === Token.NumericLiteral) {\n throwError(token, Messages.UnexpectedNumber);\n }\n if (token.type === Token.StringLiteral) {\n throwError(token, Messages.UnexpectedString);\n }\n if (token.type === Token.Identifier) {\n throwError(token, Messages.UnexpectedIdentifier);\n }\n if (token.type === Token.Keyword) {\n if (isFutureReservedWord(token.value)) {\n throwError(token, Messages.UnexpectedReserved);\n } else if (strict && isStrictModeReservedWord(token.value)) {\n throwErrorTolerant(token, Messages.StrictReservedWord);\n return;\n }\n throwError(token, Messages.UnexpectedToken, token.value);\n }\n\n // BooleanLiteral, NullLiteral, or Punctuator.\n throwError(token, Messages.UnexpectedToken, token.value);\n }\n\n // Expect the next token to match the specified punctuator.\n // If not, an exception will be thrown.\n\n function expect(value) {\n var token = lex();\n if (token.type !== Token.Punctuator || token.value !== value) {\n throwUnexpected(token);\n }\n }\n\n // Expect the next token to match the specified keyword.\n // If not, an exception will be thrown.\n\n function expectKeyword(keyword) {\n var token = lex();\n if (token.type !== Token.Keyword || token.value !== keyword) {\n throwUnexpected(token);\n }\n }\n\n // Return true if the next token matches the specified punctuator.\n\n function match(value) {\n return lookahead.type === Token.Punctuator && lookahead.value === value;\n }\n\n // Return true if the next token matches the specified keyword\n\n function matchKeyword(keyword) {\n return lookahead.type === Token.Keyword && lookahead.value === keyword;\n }\n\n // Return true if the next token is an assignment operator\n\n function matchAssign() {\n var op;\n if (lookahead.type !== Token.Punctuator) {\n return false;\n }\n op = lookahead.value;\n return op === '=' || op === '*=' || op === '/=' || op === '%=' || op === '+=' || op === '-=' || op === '<<=' || op === '>>=' || op === '>>>=' || op === '&=' || op === '^=' || op === '|=';\n }\n function consumeSemicolon() {\n var line;\n\n // Catch the very common case first: immediately a semicolon (U+003B).\n if (source.charCodeAt(index) === 0x3B || match(';')) {\n lex();\n return;\n }\n line = lineNumber;\n skipComment();\n if (lineNumber !== line) {\n return;\n }\n if (lookahead.type !== Token.EOF && !match('}')) {\n throwUnexpected(lookahead);\n }\n }\n\n // Return true if provided expression is LeftHandSideExpression\n\n function isLeftHandSide(expr) {\n return expr.type === Syntax.Identifier || expr.type === Syntax.MemberExpression;\n }\n\n // 11.1.4 Array Initialiser\n\n function parseArrayInitialiser() {\n var elements = [],\n startToken;\n startToken = lookahead;\n expect('[');\n while (!match(']')) {\n if (match(',')) {\n lex();\n elements.push(null);\n } else {\n elements.push(parseAssignmentExpression());\n if (!match(']')) {\n expect(',');\n }\n }\n }\n lex();\n return delegate.markEnd(delegate.createArrayExpression(elements), startToken);\n }\n\n // 11.1.5 Object Initialiser\n\n function parsePropertyFunction(param, first) {\n var previousStrict, body, startToken;\n previousStrict = strict;\n startToken = lookahead;\n body = parseFunctionSourceElements();\n if (first && strict && isRestrictedWord(param[0].name)) {\n throwErrorTolerant(first, Messages.StrictParamName);\n }\n strict = previousStrict;\n return delegate.markEnd(delegate.createFunctionExpression(null, param, [], body), startToken);\n }\n function parseObjectPropertyKey() {\n var token, startToken;\n startToken = lookahead;\n token = lex();\n\n // Note: This function is called only from parseObjectProperty(), where\n // EOF and Punctuator tokens are already filtered out.\n\n if (token.type === Token.StringLiteral || token.type === Token.NumericLiteral) {\n if (strict && token.octal) {\n throwErrorTolerant(token, Messages.StrictOctalLiteral);\n }\n return delegate.markEnd(delegate.createLiteral(token), startToken);\n }\n return delegate.markEnd(delegate.createIdentifier(token.value), startToken);\n }\n function parseObjectProperty() {\n var token, key, id, value, param, startToken;\n token = lookahead;\n startToken = lookahead;\n if (token.type === Token.Identifier) {\n id = parseObjectPropertyKey();\n\n // Property Assignment: Getter and Setter.\n\n if (token.value === 'get' && !match(':')) {\n key = parseObjectPropertyKey();\n expect('(');\n expect(')');\n value = parsePropertyFunction([]);\n return delegate.markEnd(delegate.createProperty('get', key, value), startToken);\n }\n if (token.value === 'set' && !match(':')) {\n key = parseObjectPropertyKey();\n expect('(');\n token = lookahead;\n if (token.type !== Token.Identifier) {\n expect(')');\n throwErrorTolerant(token, Messages.UnexpectedToken, token.value);\n value = parsePropertyFunction([]);\n } else {\n param = [parseVariableIdentifier()];\n expect(')');\n value = parsePropertyFunction(param, token);\n }\n return delegate.markEnd(delegate.createProperty('set', key, value), startToken);\n }\n expect(':');\n value = parseAssignmentExpression();\n return delegate.markEnd(delegate.createProperty('init', id, value), startToken);\n }\n if (token.type === Token.EOF || token.type === Token.Punctuator) {\n throwUnexpected(token);\n } else {\n key = parseObjectPropertyKey();\n expect(':');\n value = parseAssignmentExpression();\n return delegate.markEnd(delegate.createProperty('init', key, value), startToken);\n }\n }\n function parseObjectInitialiser() {\n var properties = [],\n property,\n name,\n key,\n kind,\n map = {},\n toString = String,\n startToken;\n startToken = lookahead;\n expect('{');\n while (!match('}')) {\n property = parseObjectProperty();\n if (property.key.type === Syntax.Identifier) {\n name = property.key.name;\n } else {\n name = toString(property.key.value);\n }\n kind = property.kind === 'init' ? PropertyKind.Data : property.kind === 'get' ? PropertyKind.Get : PropertyKind.Set;\n key = '$' + name;\n if (Object.prototype.hasOwnProperty.call(map, key)) {\n if (map[key] === PropertyKind.Data) {\n if (strict && kind === PropertyKind.Data) {\n throwErrorTolerant({}, Messages.StrictDuplicateProperty);\n } else if (kind !== PropertyKind.Data) {\n throwErrorTolerant({}, Messages.AccessorDataProperty);\n }\n } else {\n if (kind === PropertyKind.Data) {\n throwErrorTolerant({}, Messages.AccessorDataProperty);\n } else if (map[key] & kind) {\n throwErrorTolerant({}, Messages.AccessorGetSet);\n }\n }\n map[key] |= kind;\n } else {\n map[key] = kind;\n }\n properties.push(property);\n if (!match('}')) {\n expect(',');\n }\n }\n expect('}');\n return delegate.markEnd(delegate.createObjectExpression(properties), startToken);\n }\n\n // 11.1.6 The Grouping Operator\n\n function parseGroupExpression() {\n var expr;\n expect('(');\n expr = parseExpression();\n expect(')');\n return expr;\n }\n\n // 11.1 Primary Expressions\n\n function parsePrimaryExpression() {\n var type, token, expr, startToken;\n if (match('(')) {\n return parseGroupExpression();\n }\n if (match('[')) {\n return parseArrayInitialiser();\n }\n if (match('{')) {\n return parseObjectInitialiser();\n }\n type = lookahead.type;\n startToken = lookahead;\n if (type === Token.Identifier) {\n expr = delegate.createIdentifier(lex().value);\n } else if (type === Token.StringLiteral || type === Token.NumericLiteral) {\n if (strict && lookahead.octal) {\n throwErrorTolerant(lookahead, Messages.StrictOctalLiteral);\n }\n expr = delegate.createLiteral(lex());\n } else if (type === Token.Keyword) {\n if (matchKeyword('function')) {\n return parseFunctionExpression();\n }\n if (matchKeyword('this')) {\n lex();\n expr = delegate.createThisExpression();\n } else {\n throwUnexpected(lex());\n }\n } else if (type === Token.BooleanLiteral) {\n token = lex();\n token.value = token.value === 'true';\n expr = delegate.createLiteral(token);\n } else if (type === Token.NullLiteral) {\n token = lex();\n token.value = null;\n expr = delegate.createLiteral(token);\n } else if (match('/') || match('/=')) {\n if (typeof extra.tokens !== 'undefined') {\n expr = delegate.createLiteral(collectRegex());\n } else {\n expr = delegate.createLiteral(scanRegExp());\n }\n peek();\n } else {\n throwUnexpected(lex());\n }\n return delegate.markEnd(expr, startToken);\n }\n\n // 11.2 Left-Hand-Side Expressions\n\n function parseArguments() {\n var args = [];\n expect('(');\n if (!match(')')) {\n while (index < length) {\n args.push(parseAssignmentExpression());\n if (match(')')) {\n break;\n }\n expect(',');\n }\n }\n expect(')');\n return args;\n }\n function parseNonComputedProperty() {\n var token, startToken;\n startToken = lookahead;\n token = lex();\n if (!isIdentifierName(token)) {\n throwUnexpected(token);\n }\n return delegate.markEnd(delegate.createIdentifier(token.value), startToken);\n }\n function parseNonComputedMember() {\n expect('.');\n return parseNonComputedProperty();\n }\n function parseComputedMember() {\n var expr;\n expect('[');\n expr = parseExpression();\n expect(']');\n return expr;\n }\n function parseNewExpression() {\n var callee, args, startToken;\n startToken = lookahead;\n expectKeyword('new');\n callee = parseLeftHandSideExpression();\n args = match('(') ? parseArguments() : [];\n return delegate.markEnd(delegate.createNewExpression(callee, args), startToken);\n }\n function parseLeftHandSideExpressionAllowCall() {\n var previousAllowIn, expr, args, property, startToken;\n startToken = lookahead;\n previousAllowIn = state.allowIn;\n state.allowIn = true;\n expr = matchKeyword('new') ? parseNewExpression() : parsePrimaryExpression();\n state.allowIn = previousAllowIn;\n for (;;) {\n if (match('.')) {\n property = parseNonComputedMember();\n expr = delegate.createMemberExpression('.', expr, property);\n } else if (match('(')) {\n args = parseArguments();\n expr = delegate.createCallExpression(expr, args);\n } else if (match('[')) {\n property = parseComputedMember();\n expr = delegate.createMemberExpression('[', expr, property);\n } else {\n break;\n }\n delegate.markEnd(expr, startToken);\n }\n return expr;\n }\n function parseLeftHandSideExpression() {\n var previousAllowIn, expr, property, startToken;\n startToken = lookahead;\n previousAllowIn = state.allowIn;\n expr = matchKeyword('new') ? parseNewExpression() : parsePrimaryExpression();\n state.allowIn = previousAllowIn;\n while (match('.') || match('[')) {\n if (match('[')) {\n property = parseComputedMember();\n expr = delegate.createMemberExpression('[', expr, property);\n } else {\n property = parseNonComputedMember();\n expr = delegate.createMemberExpression('.', expr, property);\n }\n delegate.markEnd(expr, startToken);\n }\n return expr;\n }\n\n // 11.3 Postfix Expressions\n\n function parsePostfixExpression() {\n var expr,\n token,\n startToken = lookahead;\n expr = parseLeftHandSideExpressionAllowCall();\n if (lookahead.type === Token.Punctuator) {\n if ((match('++') || match('--')) && !peekLineTerminator()) {\n // 11.3.1, 11.3.2\n if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) {\n throwErrorTolerant({}, Messages.StrictLHSPostfix);\n }\n if (!isLeftHandSide(expr)) {\n throwErrorTolerant({}, Messages.InvalidLHSInAssignment);\n }\n token = lex();\n expr = delegate.markEnd(delegate.createPostfixExpression(token.value, expr), startToken);\n }\n }\n return expr;\n }\n\n // 11.4 Unary Operators\n\n function parseUnaryExpression() {\n var token, expr, startToken;\n if (lookahead.type !== Token.Punctuator && lookahead.type !== Token.Keyword) {\n expr = parsePostfixExpression();\n } else if (match('++') || match('--')) {\n startToken = lookahead;\n token = lex();\n expr = parseUnaryExpression();\n // 11.4.4, 11.4.5\n if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) {\n throwErrorTolerant({}, Messages.StrictLHSPrefix);\n }\n if (!isLeftHandSide(expr)) {\n throwErrorTolerant({}, Messages.InvalidLHSInAssignment);\n }\n expr = delegate.createUnaryExpression(token.value, expr);\n expr = delegate.markEnd(expr, startToken);\n } else if (match('+') || match('-') || match('~') || match('!')) {\n startToken = lookahead;\n token = lex();\n expr = parseUnaryExpression();\n expr = delegate.createUnaryExpression(token.value, expr);\n expr = delegate.markEnd(expr, startToken);\n } else if (matchKeyword('delete') || matchKeyword('void') || matchKeyword('typeof')) {\n startToken = lookahead;\n token = lex();\n expr = parseUnaryExpression();\n expr = delegate.createUnaryExpression(token.value, expr);\n expr = delegate.markEnd(expr, startToken);\n if (strict && expr.operator === 'delete' && expr.argument.type === Syntax.Identifier) {\n throwErrorTolerant({}, Messages.StrictDelete);\n }\n } else {\n expr = parsePostfixExpression();\n }\n return expr;\n }\n function binaryPrecedence(token, allowIn) {\n var prec = 0;\n if (token.type !== Token.Punctuator && token.type !== Token.Keyword) {\n return 0;\n }\n switch (token.value) {\n case '||':\n prec = 1;\n break;\n case '&&':\n prec = 2;\n break;\n case '|':\n prec = 3;\n break;\n case '^':\n prec = 4;\n break;\n case '&':\n prec = 5;\n break;\n case '==':\n case '!=':\n case '===':\n case '!==':\n prec = 6;\n break;\n case '<':\n case '>':\n case '<=':\n case '>=':\n case 'instanceof':\n prec = 7;\n break;\n case 'in':\n prec = allowIn ? 7 : 0;\n break;\n case '<<':\n case '>>':\n case '>>>':\n prec = 8;\n break;\n case '+':\n case '-':\n prec = 9;\n break;\n case '*':\n case '/':\n case '%':\n prec = 11;\n break;\n default:\n break;\n }\n return prec;\n }\n\n // 11.5 Multiplicative Operators\n // 11.6 Additive Operators\n // 11.7 Bitwise Shift Operators\n // 11.8 Relational Operators\n // 11.9 Equality Operators\n // 11.10 Binary Bitwise Operators\n // 11.11 Binary Logical Operators\n\n function parseBinaryExpression() {\n var marker, markers, expr, token, prec, stack, right, operator, left, i;\n marker = lookahead;\n left = parseUnaryExpression();\n token = lookahead;\n prec = binaryPrecedence(token, state.allowIn);\n if (prec === 0) {\n return left;\n }\n token.prec = prec;\n lex();\n markers = [marker, lookahead];\n right = parseUnaryExpression();\n stack = [left, token, right];\n while ((prec = binaryPrecedence(lookahead, state.allowIn)) > 0) {\n // Reduce: make a binary expression from the three topmost entries.\n while (stack.length > 2 && prec <= stack[stack.length - 2].prec) {\n right = stack.pop();\n operator = stack.pop().value;\n left = stack.pop();\n expr = delegate.createBinaryExpression(operator, left, right);\n markers.pop();\n marker = markers[markers.length - 1];\n delegate.markEnd(expr, marker);\n stack.push(expr);\n }\n\n // Shift.\n token = lex();\n token.prec = prec;\n stack.push(token);\n markers.push(lookahead);\n expr = parseUnaryExpression();\n stack.push(expr);\n }\n\n // Final reduce to clean-up the stack.\n i = stack.length - 1;\n expr = stack[i];\n markers.pop();\n while (i > 1) {\n expr = delegate.createBinaryExpression(stack[i - 1].value, stack[i - 2], expr);\n i -= 2;\n marker = markers.pop();\n delegate.markEnd(expr, marker);\n }\n return expr;\n }\n\n // 11.12 Conditional Operator\n\n function parseConditionalExpression() {\n var expr, previousAllowIn, consequent, alternate, startToken;\n startToken = lookahead;\n expr = parseBinaryExpression();\n if (match('?')) {\n lex();\n previousAllowIn = state.allowIn;\n state.allowIn = true;\n consequent = parseAssignmentExpression();\n state.allowIn = previousAllowIn;\n expect(':');\n alternate = parseAssignmentExpression();\n expr = delegate.createConditionalExpression(expr, consequent, alternate);\n delegate.markEnd(expr, startToken);\n }\n return expr;\n }\n\n // 11.13 Assignment Operators\n\n function parseAssignmentExpression() {\n var token, left, right, node, startToken;\n token = lookahead;\n startToken = lookahead;\n node = left = parseConditionalExpression();\n if (matchAssign()) {\n // LeftHandSideExpression\n if (!isLeftHandSide(left)) {\n throwErrorTolerant({}, Messages.InvalidLHSInAssignment);\n }\n\n // 11.13.1\n if (strict && left.type === Syntax.Identifier && isRestrictedWord(left.name)) {\n throwErrorTolerant(token, Messages.StrictLHSAssignment);\n }\n token = lex();\n right = parseAssignmentExpression();\n node = delegate.markEnd(delegate.createAssignmentExpression(token.value, left, right), startToken);\n }\n return node;\n }\n\n // 11.14 Comma Operator\n\n function parseExpression() {\n var expr,\n startToken = lookahead;\n expr = parseAssignmentExpression();\n if (match(',')) {\n expr = delegate.createSequenceExpression([expr]);\n while (index < length) {\n if (!match(',')) {\n break;\n }\n lex();\n expr.expressions.push(parseAssignmentExpression());\n }\n delegate.markEnd(expr, startToken);\n }\n return expr;\n }\n\n // 12.1 Block\n\n function parseStatementList() {\n var list = [],\n statement;\n while (index < length) {\n if (match('}')) {\n break;\n }\n statement = parseSourceElement();\n if (typeof statement === 'undefined') {\n break;\n }\n list.push(statement);\n }\n return list;\n }\n function parseBlock() {\n var block, startToken;\n startToken = lookahead;\n expect('{');\n block = parseStatementList();\n expect('}');\n return delegate.markEnd(delegate.createBlockStatement(block), startToken);\n }\n\n // 12.2 Variable Statement\n\n function parseVariableIdentifier() {\n var token, startToken;\n startToken = lookahead;\n token = lex();\n if (token.type !== Token.Identifier) {\n throwUnexpected(token);\n }\n return delegate.markEnd(delegate.createIdentifier(token.value), startToken);\n }\n function parseVariableDeclaration(kind) {\n var init = null,\n id,\n startToken;\n startToken = lookahead;\n id = parseVariableIdentifier();\n\n // 12.2.1\n if (strict && isRestrictedWord(id.name)) {\n throwErrorTolerant({}, Messages.StrictVarName);\n }\n if (kind === 'const') {\n expect('=');\n init = parseAssignmentExpression();\n } else if (match('=')) {\n lex();\n init = parseAssignmentExpression();\n }\n return delegate.markEnd(delegate.createVariableDeclarator(id, init), startToken);\n }\n function parseVariableDeclarationList(kind) {\n var list = [];\n do {\n list.push(parseVariableDeclaration(kind));\n if (!match(',')) {\n break;\n }\n lex();\n } while (index < length);\n return list;\n }\n function parseVariableStatement() {\n var declarations;\n expectKeyword('var');\n declarations = parseVariableDeclarationList();\n consumeSemicolon();\n return delegate.createVariableDeclaration(declarations, 'var');\n }\n\n // kind may be `const` or `let`\n // Both are experimental and not in the specification yet.\n // see http://wiki.ecmascript.org/doku.php?id=harmony:const\n // and http://wiki.ecmascript.org/doku.php?id=harmony:let\n function parseConstLetDeclaration(kind) {\n var declarations, startToken;\n startToken = lookahead;\n expectKeyword(kind);\n declarations = parseVariableDeclarationList(kind);\n consumeSemicolon();\n return delegate.markEnd(delegate.createVariableDeclaration(declarations, kind), startToken);\n }\n\n // 12.3 Empty Statement\n\n function parseEmptyStatement() {\n expect(';');\n return delegate.createEmptyStatement();\n }\n\n // 12.4 Expression Statement\n\n function parseExpressionStatement() {\n var expr = parseExpression();\n consumeSemicolon();\n return delegate.createExpressionStatement(expr);\n }\n\n // 12.5 If statement\n\n function parseIfStatement() {\n var test, consequent, alternate;\n expectKeyword('if');\n expect('(');\n test = parseExpression();\n expect(')');\n consequent = parseStatement();\n if (matchKeyword('else')) {\n lex();\n alternate = parseStatement();\n } else {\n alternate = null;\n }\n return delegate.createIfStatement(test, consequent, alternate);\n }\n\n // 12.6 Iteration Statements\n\n function parseDoWhileStatement() {\n var body, test, oldInIteration;\n expectKeyword('do');\n oldInIteration = state.inIteration;\n state.inIteration = true;\n body = parseStatement();\n state.inIteration = oldInIteration;\n expectKeyword('while');\n expect('(');\n test = parseExpression();\n expect(')');\n if (match(';')) {\n lex();\n }\n return delegate.createDoWhileStatement(body, test);\n }\n function parseWhileStatement() {\n var test, body, oldInIteration;\n expectKeyword('while');\n expect('(');\n test = parseExpression();\n expect(')');\n oldInIteration = state.inIteration;\n state.inIteration = true;\n body = parseStatement();\n state.inIteration = oldInIteration;\n return delegate.createWhileStatement(test, body);\n }\n function parseForVariableDeclaration() {\n var token, declarations, startToken;\n startToken = lookahead;\n token = lex();\n declarations = parseVariableDeclarationList();\n return delegate.markEnd(delegate.createVariableDeclaration(declarations, token.value), startToken);\n }\n function parseForStatement() {\n var init, test, update, left, right, body, oldInIteration;\n init = test = update = null;\n expectKeyword('for');\n expect('(');\n if (match(';')) {\n lex();\n } else {\n if (matchKeyword('var') || matchKeyword('let')) {\n state.allowIn = false;\n init = parseForVariableDeclaration();\n state.allowIn = true;\n if (init.declarations.length === 1 && matchKeyword('in')) {\n lex();\n left = init;\n right = parseExpression();\n init = null;\n }\n } else {\n state.allowIn = false;\n init = parseExpression();\n state.allowIn = true;\n if (matchKeyword('in')) {\n // LeftHandSideExpression\n if (!isLeftHandSide(init)) {\n throwErrorTolerant({}, Messages.InvalidLHSInForIn);\n }\n lex();\n left = init;\n right = parseExpression();\n init = null;\n }\n }\n if (typeof left === 'undefined') {\n expect(';');\n }\n }\n if (typeof left === 'undefined') {\n if (!match(';')) {\n test = parseExpression();\n }\n expect(';');\n if (!match(')')) {\n update = parseExpression();\n }\n }\n expect(')');\n oldInIteration = state.inIteration;\n state.inIteration = true;\n body = parseStatement();\n state.inIteration = oldInIteration;\n return typeof left === 'undefined' ? delegate.createForStatement(init, test, update, body) : delegate.createForInStatement(left, right, body);\n }\n\n // 12.7 The continue statement\n\n function parseContinueStatement() {\n var label = null,\n key;\n expectKeyword('continue');\n\n // Optimize the most common form: 'continue;'.\n if (source.charCodeAt(index) === 0x3B) {\n lex();\n if (!state.inIteration) {\n throwError({}, Messages.IllegalContinue);\n }\n return delegate.createContinueStatement(null);\n }\n if (peekLineTerminator()) {\n if (!state.inIteration) {\n throwError({}, Messages.IllegalContinue);\n }\n return delegate.createContinueStatement(null);\n }\n if (lookahead.type === Token.Identifier) {\n label = parseVariableIdentifier();\n key = '$' + label.name;\n if (!Object.prototype.hasOwnProperty.call(state.labelSet, key)) {\n throwError({}, Messages.UnknownLabel, label.name);\n }\n }\n consumeSemicolon();\n if (label === null && !state.inIteration) {\n throwError({}, Messages.IllegalContinue);\n }\n return delegate.createContinueStatement(label);\n }\n\n // 12.8 The break statement\n\n function parseBreakStatement() {\n var label = null,\n key;\n expectKeyword('break');\n\n // Catch the very common case first: immediately a semicolon (U+003B).\n if (source.charCodeAt(index) === 0x3B) {\n lex();\n if (!(state.inIteration || state.inSwitch)) {\n throwError({}, Messages.IllegalBreak);\n }\n return delegate.createBreakStatement(null);\n }\n if (peekLineTerminator()) {\n if (!(state.inIteration || state.inSwitch)) {\n throwError({}, Messages.IllegalBreak);\n }\n return delegate.createBreakStatement(null);\n }\n if (lookahead.type === Token.Identifier) {\n label = parseVariableIdentifier();\n key = '$' + label.name;\n if (!Object.prototype.hasOwnProperty.call(state.labelSet, key)) {\n throwError({}, Messages.UnknownLabel, label.name);\n }\n }\n consumeSemicolon();\n if (label === null && !(state.inIteration || state.inSwitch)) {\n throwError({}, Messages.IllegalBreak);\n }\n return delegate.createBreakStatement(label);\n }\n\n // 12.9 The return statement\n\n function parseReturnStatement() {\n var argument = null;\n expectKeyword('return');\n if (!state.inFunctionBody) {\n throwErrorTolerant({}, Messages.IllegalReturn);\n }\n\n // 'return' followed by a space and an identifier is very common.\n if (source.charCodeAt(index) === 0x20) {\n if (isIdentifierStart(source.charCodeAt(index + 1))) {\n argument = parseExpression();\n consumeSemicolon();\n return delegate.createReturnStatement(argument);\n }\n }\n if (peekLineTerminator()) {\n return delegate.createReturnStatement(null);\n }\n if (!match(';')) {\n if (!match('}') && lookahead.type !== Token.EOF) {\n argument = parseExpression();\n }\n }\n consumeSemicolon();\n return delegate.createReturnStatement(argument);\n }\n\n // 12.10 The with statement\n\n function parseWithStatement() {\n var object, body;\n if (strict) {\n // TODO(ikarienator): Should we update the test cases instead?\n skipComment();\n throwErrorTolerant({}, Messages.StrictModeWith);\n }\n expectKeyword('with');\n expect('(');\n object = parseExpression();\n expect(')');\n body = parseStatement();\n return delegate.createWithStatement(object, body);\n }\n\n // 12.10 The swith statement\n\n function parseSwitchCase() {\n var test,\n consequent = [],\n statement,\n startToken;\n startToken = lookahead;\n if (matchKeyword('default')) {\n lex();\n test = null;\n } else {\n expectKeyword('case');\n test = parseExpression();\n }\n expect(':');\n while (index < length) {\n if (match('}') || matchKeyword('default') || matchKeyword('case')) {\n break;\n }\n statement = parseStatement();\n consequent.push(statement);\n }\n return delegate.markEnd(delegate.createSwitchCase(test, consequent), startToken);\n }\n function parseSwitchStatement() {\n var discriminant, cases, clause, oldInSwitch, defaultFound;\n expectKeyword('switch');\n expect('(');\n discriminant = parseExpression();\n expect(')');\n expect('{');\n cases = [];\n if (match('}')) {\n lex();\n return delegate.createSwitchStatement(discriminant, cases);\n }\n oldInSwitch = state.inSwitch;\n state.inSwitch = true;\n defaultFound = false;\n while (index < length) {\n if (match('}')) {\n break;\n }\n clause = parseSwitchCase();\n if (clause.test === null) {\n if (defaultFound) {\n throwError({}, Messages.MultipleDefaultsInSwitch);\n }\n defaultFound = true;\n }\n cases.push(clause);\n }\n state.inSwitch = oldInSwitch;\n expect('}');\n return delegate.createSwitchStatement(discriminant, cases);\n }\n\n // 12.13 The throw statement\n\n function parseThrowStatement() {\n var argument;\n expectKeyword('throw');\n if (peekLineTerminator()) {\n throwError({}, Messages.NewlineAfterThrow);\n }\n argument = parseExpression();\n consumeSemicolon();\n return delegate.createThrowStatement(argument);\n }\n\n // 12.14 The try statement\n\n function parseCatchClause() {\n var param, body, startToken;\n startToken = lookahead;\n expectKeyword('catch');\n expect('(');\n if (match(')')) {\n throwUnexpected(lookahead);\n }\n param = parseVariableIdentifier();\n // 12.14.1\n if (strict && isRestrictedWord(param.name)) {\n throwErrorTolerant({}, Messages.StrictCatchVariable);\n }\n expect(')');\n body = parseBlock();\n return delegate.markEnd(delegate.createCatchClause(param, body), startToken);\n }\n function parseTryStatement() {\n var block,\n handlers = [],\n finalizer = null;\n expectKeyword('try');\n block = parseBlock();\n if (matchKeyword('catch')) {\n handlers.push(parseCatchClause());\n }\n if (matchKeyword('finally')) {\n lex();\n finalizer = parseBlock();\n }\n if (handlers.length === 0 && !finalizer) {\n throwError({}, Messages.NoCatchOrFinally);\n }\n return delegate.createTryStatement(block, [], handlers, finalizer);\n }\n\n // 12.15 The debugger statement\n\n function parseDebuggerStatement() {\n expectKeyword('debugger');\n consumeSemicolon();\n return delegate.createDebuggerStatement();\n }\n\n // 12 Statements\n\n function parseStatement() {\n var type = lookahead.type,\n expr,\n labeledBody,\n key,\n startToken;\n if (type === Token.EOF) {\n throwUnexpected(lookahead);\n }\n if (type === Token.Punctuator && lookahead.value === '{') {\n return parseBlock();\n }\n startToken = lookahead;\n if (type === Token.Punctuator) {\n switch (lookahead.value) {\n case ';':\n return delegate.markEnd(parseEmptyStatement(), startToken);\n case '(':\n return delegate.markEnd(parseExpressionStatement(), startToken);\n default:\n break;\n }\n }\n if (type === Token.Keyword) {\n switch (lookahead.value) {\n case 'break':\n return delegate.markEnd(parseBreakStatement(), startToken);\n case 'continue':\n return delegate.markEnd(parseContinueStatement(), startToken);\n case 'debugger':\n return delegate.markEnd(parseDebuggerStatement(), startToken);\n case 'do':\n return delegate.markEnd(parseDoWhileStatement(), startToken);\n case 'for':\n return delegate.markEnd(parseForStatement(), startToken);\n case 'function':\n return delegate.markEnd(parseFunctionDeclaration(), startToken);\n case 'if':\n return delegate.markEnd(parseIfStatement(), startToken);\n case 'return':\n return delegate.markEnd(parseReturnStatement(), startToken);\n case 'switch':\n return delegate.markEnd(parseSwitchStatement(), startToken);\n case 'throw':\n return delegate.markEnd(parseThrowStatement(), startToken);\n case 'try':\n return delegate.markEnd(parseTryStatement(), startToken);\n case 'var':\n return delegate.markEnd(parseVariableStatement(), startToken);\n case 'while':\n return delegate.markEnd(parseWhileStatement(), startToken);\n case 'with':\n return delegate.markEnd(parseWithStatement(), startToken);\n default:\n break;\n }\n }\n expr = parseExpression();\n\n // 12.12 Labelled Statements\n if (expr.type === Syntax.Identifier && match(':')) {\n lex();\n key = '$' + expr.name;\n if (Object.prototype.hasOwnProperty.call(state.labelSet, key)) {\n throwError({}, Messages.Redeclaration, 'Label', expr.name);\n }\n state.labelSet[key] = true;\n labeledBody = parseStatement();\n delete state.labelSet[key];\n return delegate.markEnd(delegate.createLabeledStatement(expr, labeledBody), startToken);\n }\n consumeSemicolon();\n return delegate.markEnd(delegate.createExpressionStatement(expr), startToken);\n }\n\n // 13 Function Definition\n\n function parseFunctionSourceElements() {\n var sourceElement,\n sourceElements = [],\n token,\n directive,\n firstRestricted,\n oldLabelSet,\n oldInIteration,\n oldInSwitch,\n oldInFunctionBody,\n startToken;\n startToken = lookahead;\n expect('{');\n while (index < length) {\n if (lookahead.type !== Token.StringLiteral) {\n break;\n }\n token = lookahead;\n sourceElement = parseSourceElement();\n sourceElements.push(sourceElement);\n if (sourceElement.expression.type !== Syntax.Literal) {\n // this is not directive\n break;\n }\n directive = source.slice(token.start + 1, token.end - 1);\n if (directive === 'use strict') {\n strict = true;\n if (firstRestricted) {\n throwErrorTolerant(firstRestricted, Messages.StrictOctalLiteral);\n }\n } else {\n if (!firstRestricted && token.octal) {\n firstRestricted = token;\n }\n }\n }\n oldLabelSet = state.labelSet;\n oldInIteration = state.inIteration;\n oldInSwitch = state.inSwitch;\n oldInFunctionBody = state.inFunctionBody;\n state.labelSet = {};\n state.inIteration = false;\n state.inSwitch = false;\n state.inFunctionBody = true;\n while (index < length) {\n if (match('}')) {\n break;\n }\n sourceElement = parseSourceElement();\n if (typeof sourceElement === 'undefined') {\n break;\n }\n sourceElements.push(sourceElement);\n }\n expect('}');\n state.labelSet = oldLabelSet;\n state.inIteration = oldInIteration;\n state.inSwitch = oldInSwitch;\n state.inFunctionBody = oldInFunctionBody;\n return delegate.markEnd(delegate.createBlockStatement(sourceElements), startToken);\n }\n function parseParams(firstRestricted) {\n var param,\n params = [],\n token,\n stricted,\n paramSet,\n key,\n message;\n expect('(');\n if (!match(')')) {\n paramSet = {};\n while (index < length) {\n token = lookahead;\n param = parseVariableIdentifier();\n key = '$' + token.value;\n if (strict) {\n if (isRestrictedWord(token.value)) {\n stricted = token;\n message = Messages.StrictParamName;\n }\n if (Object.prototype.hasOwnProperty.call(paramSet, key)) {\n stricted = token;\n message = Messages.StrictParamDupe;\n }\n } else if (!firstRestricted) {\n if (isRestrictedWord(token.value)) {\n firstRestricted = token;\n message = Messages.StrictParamName;\n } else if (isStrictModeReservedWord(token.value)) {\n firstRestricted = token;\n message = Messages.StrictReservedWord;\n } else if (Object.prototype.hasOwnProperty.call(paramSet, key)) {\n firstRestricted = token;\n message = Messages.StrictParamDupe;\n }\n }\n params.push(param);\n paramSet[key] = true;\n if (match(')')) {\n break;\n }\n expect(',');\n }\n }\n expect(')');\n return {\n params: params,\n stricted: stricted,\n firstRestricted: firstRestricted,\n message: message\n };\n }\n function parseFunctionDeclaration() {\n var id,\n params = [],\n body,\n token,\n stricted,\n tmp,\n firstRestricted,\n message,\n previousStrict,\n startToken;\n startToken = lookahead;\n expectKeyword('function');\n token = lookahead;\n id = parseVariableIdentifier();\n if (strict) {\n if (isRestrictedWord(token.value)) {\n throwErrorTolerant(token, Messages.StrictFunctionName);\n }\n } else {\n if (isRestrictedWord(token.value)) {\n firstRestricted = token;\n message = Messages.StrictFunctionName;\n } else if (isStrictModeReservedWord(token.value)) {\n firstRestricted = token;\n message = Messages.StrictReservedWord;\n }\n }\n tmp = parseParams(firstRestricted);\n params = tmp.params;\n stricted = tmp.stricted;\n firstRestricted = tmp.firstRestricted;\n if (tmp.message) {\n message = tmp.message;\n }\n previousStrict = strict;\n body = parseFunctionSourceElements();\n if (strict && firstRestricted) {\n throwError(firstRestricted, message);\n }\n if (strict && stricted) {\n throwErrorTolerant(stricted, message);\n }\n strict = previousStrict;\n return delegate.markEnd(delegate.createFunctionDeclaration(id, params, [], body), startToken);\n }\n function parseFunctionExpression() {\n var token,\n id = null,\n stricted,\n firstRestricted,\n message,\n tmp,\n params = [],\n body,\n previousStrict,\n startToken;\n startToken = lookahead;\n expectKeyword('function');\n if (!match('(')) {\n token = lookahead;\n id = parseVariableIdentifier();\n if (strict) {\n if (isRestrictedWord(token.value)) {\n throwErrorTolerant(token, Messages.StrictFunctionName);\n }\n } else {\n if (isRestrictedWord(token.value)) {\n firstRestricted = token;\n message = Messages.StrictFunctionName;\n } else if (isStrictModeReservedWord(token.value)) {\n firstRestricted = token;\n message = Messages.StrictReservedWord;\n }\n }\n }\n tmp = parseParams(firstRestricted);\n params = tmp.params;\n stricted = tmp.stricted;\n firstRestricted = tmp.firstRestricted;\n if (tmp.message) {\n message = tmp.message;\n }\n previousStrict = strict;\n body = parseFunctionSourceElements();\n if (strict && firstRestricted) {\n throwError(firstRestricted, message);\n }\n if (strict && stricted) {\n throwErrorTolerant(stricted, message);\n }\n strict = previousStrict;\n return delegate.markEnd(delegate.createFunctionExpression(id, params, [], body), startToken);\n }\n\n // 14 Program\n\n function parseSourceElement() {\n if (lookahead.type === Token.Keyword) {\n switch (lookahead.value) {\n case 'const':\n case 'let':\n return parseConstLetDeclaration(lookahead.value);\n case 'function':\n return parseFunctionDeclaration();\n default:\n return parseStatement();\n }\n }\n if (lookahead.type !== Token.EOF) {\n return parseStatement();\n }\n }\n function parseSourceElements() {\n var sourceElement,\n sourceElements = [],\n token,\n directive,\n firstRestricted;\n while (index < length) {\n token = lookahead;\n if (token.type !== Token.StringLiteral) {\n break;\n }\n sourceElement = parseSourceElement();\n sourceElements.push(sourceElement);\n if (sourceElement.expression.type !== Syntax.Literal) {\n // this is not directive\n break;\n }\n directive = source.slice(token.start + 1, token.end - 1);\n if (directive === 'use strict') {\n strict = true;\n if (firstRestricted) {\n throwErrorTolerant(firstRestricted, Messages.StrictOctalLiteral);\n }\n } else {\n if (!firstRestricted && token.octal) {\n firstRestricted = token;\n }\n }\n }\n while (index < length) {\n sourceElement = parseSourceElement();\n /* istanbul ignore if */\n if (typeof sourceElement === 'undefined') {\n break;\n }\n sourceElements.push(sourceElement);\n }\n return sourceElements;\n }\n function parseProgram() {\n var body, startToken;\n skipComment();\n peek();\n startToken = lookahead;\n strict = false;\n body = parseSourceElements();\n return delegate.markEnd(delegate.createProgram(body), startToken);\n }\n function filterTokenLocation() {\n var i,\n entry,\n token,\n tokens = [];\n for (i = 0; i < extra.tokens.length; ++i) {\n entry = extra.tokens[i];\n token = {\n type: entry.type,\n value: entry.value\n };\n if (extra.range) {\n token.range = entry.range;\n }\n if (extra.loc) {\n token.loc = entry.loc;\n }\n tokens.push(token);\n }\n extra.tokens = tokens;\n }\n function tokenize(code, options) {\n var toString, token, tokens;\n toString = String;\n if (typeof code !== 'string' && !(code instanceof String)) {\n code = toString(code);\n }\n delegate = SyntaxTreeDelegate;\n source = code;\n index = 0;\n lineNumber = source.length > 0 ? 1 : 0;\n lineStart = 0;\n length = source.length;\n lookahead = null;\n state = {\n allowIn: true,\n labelSet: {},\n inFunctionBody: false,\n inIteration: false,\n inSwitch: false,\n lastCommentStart: -1\n };\n extra = {};\n\n // Options matching.\n options = options || {};\n\n // Of course we collect tokens here.\n options.tokens = true;\n extra.tokens = [];\n extra.tokenize = true;\n // The following two fields are necessary to compute the Regex tokens.\n extra.openParenToken = -1;\n extra.openCurlyToken = -1;\n extra.range = typeof options.range === 'boolean' && options.range;\n extra.loc = typeof options.loc === 'boolean' && options.loc;\n if (typeof options.comment === 'boolean' && options.comment) {\n extra.comments = [];\n }\n if (typeof options.tolerant === 'boolean' && options.tolerant) {\n extra.errors = [];\n }\n try {\n peek();\n if (lookahead.type === Token.EOF) {\n return extra.tokens;\n }\n token = lex();\n while (lookahead.type !== Token.EOF) {\n try {\n token = lex();\n } catch (lexError) {\n token = lookahead;\n if (extra.errors) {\n extra.errors.push(lexError);\n // We have to break on the first error\n // to avoid infinite loops.\n break;\n } else {\n throw lexError;\n }\n }\n }\n filterTokenLocation();\n tokens = extra.tokens;\n if (typeof extra.comments !== 'undefined') {\n tokens.comments = extra.comments;\n }\n if (typeof extra.errors !== 'undefined') {\n tokens.errors = extra.errors;\n }\n } catch (e) {\n throw e;\n } finally {\n extra = {};\n }\n return tokens;\n }\n function parse(code, options) {\n var program, toString;\n toString = String;\n if (typeof code !== 'string' && !(code instanceof String)) {\n code = toString(code);\n }\n delegate = SyntaxTreeDelegate;\n source = code;\n index = 0;\n lineNumber = source.length > 0 ? 1 : 0;\n lineStart = 0;\n length = source.length;\n lookahead = null;\n state = {\n allowIn: true,\n labelSet: {},\n inFunctionBody: false,\n inIteration: false,\n inSwitch: false,\n lastCommentStart: -1\n };\n extra = {};\n if (typeof options !== 'undefined') {\n extra.range = typeof options.range === 'boolean' && options.range;\n extra.loc = typeof options.loc === 'boolean' && options.loc;\n extra.attachComment = typeof options.attachComment === 'boolean' && options.attachComment;\n if (extra.loc && options.source !== null && options.source !== undefined) {\n extra.source = toString(options.source);\n }\n if (typeof options.tokens === 'boolean' && options.tokens) {\n extra.tokens = [];\n }\n if (typeof options.comment === 'boolean' && options.comment) {\n extra.comments = [];\n }\n if (typeof options.tolerant === 'boolean' && options.tolerant) {\n extra.errors = [];\n }\n if (extra.attachComment) {\n extra.range = true;\n extra.comments = [];\n extra.bottomRightStack = [];\n extra.trailingComments = [];\n extra.leadingComments = [];\n }\n }\n try {\n program = parseProgram();\n if (typeof extra.comments !== 'undefined') {\n program.comments = extra.comments;\n }\n if (typeof extra.tokens !== 'undefined') {\n filterTokenLocation();\n program.tokens = extra.tokens;\n }\n if (typeof extra.errors !== 'undefined') {\n program.errors = extra.errors;\n }\n } catch (e) {\n throw e;\n } finally {\n extra = {};\n }\n return program;\n }\n\n // Sync with *.json manifests.\n exports.version = '1.2.2';\n exports.tokenize = tokenize;\n exports.parse = parse;\n\n // Deep copy.\n /* istanbul ignore next */\n exports.Syntax = function () {\n var name,\n types = {};\n if (typeof Object.create === 'function') {\n types = Object.create(null);\n }\n for (name in Syntax) {\n if (Syntax.hasOwnProperty(name)) {\n types[name] = Syntax[name];\n }\n }\n if (typeof Object.freeze === 'function') {\n Object.freeze(types);\n }\n return types;\n }();\n });\n /* vim: set sw=4 ts=4 et tw=80 : */\n }, {}],\n 1: [function (require, module, exports) {\n (function (process) {\n /* parser generated by jison 0.4.13 */\n /*\n Returns a Parser object of the following structure:\n \n Parser: {\n yy: {}\n }\n \n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n \n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n \n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n \n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n \n \n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n \n \n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n */\n var parser = function () {\n var parser = {\n trace: function trace() {},\n yy: {},\n symbols_: {\n \"error\": 2,\n \"JSON_PATH\": 3,\n \"DOLLAR\": 4,\n \"PATH_COMPONENTS\": 5,\n \"LEADING_CHILD_MEMBER_EXPRESSION\": 6,\n \"PATH_COMPONENT\": 7,\n \"MEMBER_COMPONENT\": 8,\n \"SUBSCRIPT_COMPONENT\": 9,\n \"CHILD_MEMBER_COMPONENT\": 10,\n \"DESCENDANT_MEMBER_COMPONENT\": 11,\n \"DOT\": 12,\n \"MEMBER_EXPRESSION\": 13,\n \"DOT_DOT\": 14,\n \"STAR\": 15,\n \"IDENTIFIER\": 16,\n \"SCRIPT_EXPRESSION\": 17,\n \"INTEGER\": 18,\n \"END\": 19,\n \"CHILD_SUBSCRIPT_COMPONENT\": 20,\n \"DESCENDANT_SUBSCRIPT_COMPONENT\": 21,\n \"[\": 22,\n \"SUBSCRIPT\": 23,\n \"]\": 24,\n \"SUBSCRIPT_EXPRESSION\": 25,\n \"SUBSCRIPT_EXPRESSION_LIST\": 26,\n \"SUBSCRIPT_EXPRESSION_LISTABLE\": 27,\n \",\": 28,\n \"STRING_LITERAL\": 29,\n \"ARRAY_SLICE\": 30,\n \"FILTER_EXPRESSION\": 31,\n \"QQ_STRING\": 32,\n \"Q_STRING\": 33,\n \"$accept\": 0,\n \"$end\": 1\n },\n terminals_: {\n 2: \"error\",\n 4: \"DOLLAR\",\n 12: \"DOT\",\n 14: \"DOT_DOT\",\n 15: \"STAR\",\n 16: \"IDENTIFIER\",\n 17: \"SCRIPT_EXPRESSION\",\n 18: \"INTEGER\",\n 19: \"END\",\n 22: \"[\",\n 24: \"]\",\n 28: \",\",\n 30: \"ARRAY_SLICE\",\n 31: \"FILTER_EXPRESSION\",\n 32: \"QQ_STRING\",\n 33: \"Q_STRING\"\n },\n productions_: [0, [3, 1], [3, 2], [3, 1], [3, 2], [5, 1], [5, 2], [7, 1], [7, 1], [8, 1], [8, 1], [10, 2], [6, 1], [11, 2], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [9, 1], [9, 1], [20, 3], [21, 4], [23, 1], [23, 1], [26, 1], [26, 3], [27, 1], [27, 1], [27, 1], [25, 1], [25, 1], [25, 1], [29, 1], [29, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */\n /**/) {\n /* this == yyval */\n if (!yy.ast) {\n yy.ast = _ast;\n _ast.initialize();\n }\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n yy.ast.set({\n expression: {\n type: \"root\",\n value: $$[$0]\n }\n });\n yy.ast.unshift();\n return yy.ast.yield();\n break;\n case 2:\n yy.ast.set({\n expression: {\n type: \"root\",\n value: $$[$0 - 1]\n }\n });\n yy.ast.unshift();\n return yy.ast.yield();\n break;\n case 3:\n yy.ast.unshift();\n return yy.ast.yield();\n break;\n case 4:\n yy.ast.set({\n operation: \"member\",\n scope: \"child\",\n expression: {\n type: \"identifier\",\n value: $$[$0 - 1]\n }\n });\n yy.ast.unshift();\n return yy.ast.yield();\n break;\n case 5:\n break;\n case 6:\n break;\n case 7:\n yy.ast.set({\n operation: \"member\"\n });\n yy.ast.push();\n break;\n case 8:\n yy.ast.set({\n operation: \"subscript\"\n });\n yy.ast.push();\n break;\n case 9:\n yy.ast.set({\n scope: \"child\"\n });\n break;\n case 10:\n yy.ast.set({\n scope: \"descendant\"\n });\n break;\n case 11:\n break;\n case 12:\n yy.ast.set({\n scope: \"child\",\n operation: \"member\"\n });\n break;\n case 13:\n break;\n case 14:\n yy.ast.set({\n expression: {\n type: \"wildcard\",\n value: $$[$0]\n }\n });\n break;\n case 15:\n yy.ast.set({\n expression: {\n type: \"identifier\",\n value: $$[$0]\n }\n });\n break;\n case 16:\n yy.ast.set({\n expression: {\n type: \"script_expression\",\n value: $$[$0]\n }\n });\n break;\n case 17:\n yy.ast.set({\n expression: {\n type: \"numeric_literal\",\n value: parseInt($$[$0])\n }\n });\n break;\n case 18:\n break;\n case 19:\n yy.ast.set({\n scope: \"child\"\n });\n break;\n case 20:\n yy.ast.set({\n scope: \"descendant\"\n });\n break;\n case 21:\n break;\n case 22:\n break;\n case 23:\n break;\n case 24:\n $$[$0].length > 1 ? yy.ast.set({\n expression: {\n type: \"union\",\n value: $$[$0]\n }\n }) : this.$ = $$[$0];\n break;\n case 25:\n this.$ = [$$[$0]];\n break;\n case 26:\n this.$ = $$[$0 - 2].concat($$[$0]);\n break;\n case 27:\n this.$ = {\n expression: {\n type: \"numeric_literal\",\n value: parseInt($$[$0])\n }\n };\n yy.ast.set(this.$);\n break;\n case 28:\n this.$ = {\n expression: {\n type: \"string_literal\",\n value: $$[$0]\n }\n };\n yy.ast.set(this.$);\n break;\n case 29:\n this.$ = {\n expression: {\n type: \"slice\",\n value: $$[$0]\n }\n };\n yy.ast.set(this.$);\n break;\n case 30:\n this.$ = {\n expression: {\n type: \"wildcard\",\n value: $$[$0]\n }\n };\n yy.ast.set(this.$);\n break;\n case 31:\n this.$ = {\n expression: {\n type: \"script_expression\",\n value: $$[$0]\n }\n };\n yy.ast.set(this.$);\n break;\n case 32:\n this.$ = {\n expression: {\n type: \"filter_expression\",\n value: $$[$0]\n }\n };\n yy.ast.set(this.$);\n break;\n case 33:\n this.$ = $$[$0];\n break;\n case 34:\n this.$ = $$[$0];\n break;\n }\n },\n table: [{\n 3: 1,\n 4: [1, 2],\n 6: 3,\n 13: 4,\n 15: [1, 5],\n 16: [1, 6],\n 17: [1, 7],\n 18: [1, 8],\n 19: [1, 9]\n }, {\n 1: [3]\n }, {\n 1: [2, 1],\n 5: 10,\n 7: 11,\n 8: 12,\n 9: 13,\n 10: 14,\n 11: 15,\n 12: [1, 18],\n 14: [1, 19],\n 20: 16,\n 21: 17,\n 22: [1, 20]\n }, {\n 1: [2, 3],\n 5: 21,\n 7: 11,\n 8: 12,\n 9: 13,\n 10: 14,\n 11: 15,\n 12: [1, 18],\n 14: [1, 19],\n 20: 16,\n 21: 17,\n 22: [1, 20]\n }, {\n 1: [2, 12],\n 12: [2, 12],\n 14: [2, 12],\n 22: [2, 12]\n }, {\n 1: [2, 14],\n 12: [2, 14],\n 14: [2, 14],\n 22: [2, 14]\n }, {\n 1: [2, 15],\n 12: [2, 15],\n 14: [2, 15],\n 22: [2, 15]\n }, {\n 1: [2, 16],\n 12: [2, 16],\n 14: [2, 16],\n 22: [2, 16]\n }, {\n 1: [2, 17],\n 12: [2, 17],\n 14: [2, 17],\n 22: [2, 17]\n }, {\n 1: [2, 18],\n 12: [2, 18],\n 14: [2, 18],\n 22: [2, 18]\n }, {\n 1: [2, 2],\n 7: 22,\n 8: 12,\n 9: 13,\n 10: 14,\n 11: 15,\n 12: [1, 18],\n 14: [1, 19],\n 20: 16,\n 21: 17,\n 22: [1, 20]\n }, {\n 1: [2, 5],\n 12: [2, 5],\n 14: [2, 5],\n 22: [2, 5]\n }, {\n 1: [2, 7],\n 12: [2, 7],\n 14: [2, 7],\n 22: [2, 7]\n }, {\n 1: [2, 8],\n 12: [2, 8],\n 14: [2, 8],\n 22: [2, 8]\n }, {\n 1: [2, 9],\n 12: [2, 9],\n 14: [2, 9],\n 22: [2, 9]\n }, {\n 1: [2, 10],\n 12: [2, 10],\n 14: [2, 10],\n 22: [2, 10]\n }, {\n 1: [2, 19],\n 12: [2, 19],\n 14: [2, 19],\n 22: [2, 19]\n }, {\n 1: [2, 20],\n 12: [2, 20],\n 14: [2, 20],\n 22: [2, 20]\n }, {\n 13: 23,\n 15: [1, 5],\n 16: [1, 6],\n 17: [1, 7],\n 18: [1, 8],\n 19: [1, 9]\n }, {\n 13: 24,\n 15: [1, 5],\n 16: [1, 6],\n 17: [1, 7],\n 18: [1, 8],\n 19: [1, 9],\n 22: [1, 25]\n }, {\n 15: [1, 29],\n 17: [1, 30],\n 18: [1, 33],\n 23: 26,\n 25: 27,\n 26: 28,\n 27: 32,\n 29: 34,\n 30: [1, 35],\n 31: [1, 31],\n 32: [1, 36],\n 33: [1, 37]\n }, {\n 1: [2, 4],\n 7: 22,\n 8: 12,\n 9: 13,\n 10: 14,\n 11: 15,\n 12: [1, 18],\n 14: [1, 19],\n 20: 16,\n 21: 17,\n 22: [1, 20]\n }, {\n 1: [2, 6],\n 12: [2, 6],\n 14: [2, 6],\n 22: [2, 6]\n }, {\n 1: [2, 11],\n 12: [2, 11],\n 14: [2, 11],\n 22: [2, 11]\n }, {\n 1: [2, 13],\n 12: [2, 13],\n 14: [2, 13],\n 22: [2, 13]\n }, {\n 15: [1, 29],\n 17: [1, 30],\n 18: [1, 33],\n 23: 38,\n 25: 27,\n 26: 28,\n 27: 32,\n 29: 34,\n 30: [1, 35],\n 31: [1, 31],\n 32: [1, 36],\n 33: [1, 37]\n }, {\n 24: [1, 39]\n }, {\n 24: [2, 23]\n }, {\n 24: [2, 24],\n 28: [1, 40]\n }, {\n 24: [2, 30]\n }, {\n 24: [2, 31]\n }, {\n 24: [2, 32]\n }, {\n 24: [2, 25],\n 28: [2, 25]\n }, {\n 24: [2, 27],\n 28: [2, 27]\n }, {\n 24: [2, 28],\n 28: [2, 28]\n }, {\n 24: [2, 29],\n 28: [2, 29]\n }, {\n 24: [2, 33],\n 28: [2, 33]\n }, {\n 24: [2, 34],\n 28: [2, 34]\n }, {\n 24: [1, 41]\n }, {\n 1: [2, 21],\n 12: [2, 21],\n 14: [2, 21],\n 22: [2, 21]\n }, {\n 18: [1, 33],\n 27: 42,\n 29: 34,\n 30: [1, 35],\n 32: [1, 36],\n 33: [1, 37]\n }, {\n 1: [2, 22],\n 12: [2, 22],\n 14: [2, 22],\n 22: [2, 22]\n }, {\n 24: [2, 26],\n 28: [2, 26]\n }],\n defaultActions: {\n 27: [2, 23],\n 29: [2, 30],\n 30: [2, 31],\n 31: [2, 32]\n },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n throw new Error(str);\n }\n },\n parse: function parse(input) {\n var self = this,\n stack = [0],\n vstack = [null],\n lstack = [],\n table = this.table,\n yytext = '',\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n this.lexer.setInput(input);\n this.lexer.yy = this.yy;\n this.yy.lexer = this.lexer;\n this.yy.parser = this;\n if (typeof this.lexer.yylloc == 'undefined') {\n this.lexer.yylloc = {};\n }\n var yyloc = this.lexer.yylloc;\n lstack.push(yyloc);\n var ranges = this.lexer.options && this.lexer.options.ranges;\n if (typeof this.yy.parseError === 'function') {\n this.parseError = this.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = self.lexer.lex() || EOF;\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol,\n preErrorSymbol,\n state,\n action,\n a,\n r,\n yyval = {},\n p,\n len,\n newState,\n expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (this.lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + this.lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: this.lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: this.lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(this.lexer.yytext);\n lstack.push(this.lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];\n }\n r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var _ast = {\n initialize: function () {\n this._nodes = [];\n this._node = {};\n this._stash = [];\n },\n set: function (props) {\n for (var k in props) this._node[k] = props[k];\n return this._node;\n },\n node: function (obj) {\n if (arguments.length) this._node = obj;\n return this._node;\n },\n push: function () {\n this._nodes.push(this._node);\n this._node = {};\n },\n unshift: function () {\n this._nodes.unshift(this._node);\n this._node = {};\n },\n yield: function () {\n var _nodes = this._nodes;\n this.initialize();\n return _nodes;\n }\n };\n /* generated by jison-lex 0.2.1 */\n var lexer = function () {\n var lexer = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function (input) {\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len - 1);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function () {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function (n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function (match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n // return next match in input\n next: function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {},\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START\n /**/) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n return 4;\n break;\n case 1:\n return 14;\n break;\n case 2:\n return 12;\n break;\n case 3:\n return 15;\n break;\n case 4:\n return 16;\n break;\n case 5:\n return 22;\n break;\n case 6:\n return 24;\n break;\n case 7:\n return 28;\n break;\n case 8:\n return 30;\n break;\n case 9:\n return 18;\n break;\n case 10:\n yy_.yytext = yy_.yytext.substr(1, yy_.yyleng - 2);\n return 32;\n break;\n case 11:\n yy_.yytext = yy_.yytext.substr(1, yy_.yyleng - 2);\n return 33;\n break;\n case 12:\n return 17;\n break;\n case 13:\n return 31;\n break;\n }\n },\n rules: [/^(?:\\$)/, /^(?:\\.\\.)/, /^(?:\\.)/, /^(?:\\*)/, /^(?:[a-zA-Z_]+[a-zA-Z0-9_]*)/, /^(?:\\[)/, /^(?:\\])/, /^(?:,)/, /^(?:((-?(?:0|[1-9][0-9]*)))?\\:((-?(?:0|[1-9][0-9]*)))?(\\:((-?(?:0|[1-9][0-9]*)))?)?)/, /^(?:(-?(?:0|[1-9][0-9]*)))/, /^(?:\"(?:\\\\[\"bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^\"\\\\])*\")/, /^(?:'(?:\\\\['bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^'\\\\])*')/, /^(?:\\(.+?\\)(?=\\]))/, /^(?:\\?\\(.+?\\)(?=\\]))/],\n conditions: {\n \"INITIAL\": {\n \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n \"inclusive\": true\n }\n }\n };\n return lexer;\n }();\n parser.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser;\n parser.Parser = Parser;\n return new Parser();\n }();\n if (typeof require !== 'undefined' && typeof exports !== 'undefined') {\n exports.parser = parser;\n exports.Parser = parser.Parser;\n exports.parse = function () {\n return parser.parse.apply(parser, arguments);\n };\n exports.main = function commonjsMain(args) {\n if (!args[1]) {\n console.log('Usage: ' + args[0] + ' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n };\n if (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n }\n }\n }).call(this, require('_process'));\n }, {\n \"_process\": 14,\n \"fs\": 12,\n \"path\": 13\n }],\n 2: [function (require, module, exports) {\n module.exports = {\n identifier: \"[a-zA-Z_]+[a-zA-Z0-9_]*\",\n integer: \"-?(?:0|[1-9][0-9]*)\",\n qq_string: \"\\\"(?:\\\\\\\\[\\\"bfnrt/\\\\\\\\]|\\\\\\\\u[a-fA-F0-9]{4}|[^\\\"\\\\\\\\])*\\\"\",\n q_string: \"'(?:\\\\\\\\[\\'bfnrt/\\\\\\\\]|\\\\\\\\u[a-fA-F0-9]{4}|[^\\'\\\\\\\\])*'\"\n };\n }, {}],\n 3: [function (require, module, exports) {\n var dict = require('./dict');\n var fs = require('fs');\n var grammar = {\n lex: {\n macros: {\n esc: \"\\\\\\\\\",\n int: dict.integer\n },\n rules: [[\"\\\\$\", \"return 'DOLLAR'\"], [\"\\\\.\\\\.\", \"return 'DOT_DOT'\"], [\"\\\\.\", \"return 'DOT'\"], [\"\\\\*\", \"return 'STAR'\"], [dict.identifier, \"return 'IDENTIFIER'\"], [\"\\\\[\", \"return '['\"], [\"\\\\]\", \"return ']'\"], [\",\", \"return ','\"], [\"({int})?\\\\:({int})?(\\\\:({int})?)?\", \"return 'ARRAY_SLICE'\"], [\"{int}\", \"return 'INTEGER'\"], [dict.qq_string, \"yytext = yytext.substr(1,yyleng-2); return 'QQ_STRING';\"], [dict.q_string, \"yytext = yytext.substr(1,yyleng-2); return 'Q_STRING';\"], [\"\\\\(.+?\\\\)(?=\\\\])\", \"return 'SCRIPT_EXPRESSION'\"], [\"\\\\?\\\\(.+?\\\\)(?=\\\\])\", \"return 'FILTER_EXPRESSION'\"]]\n },\n start: \"JSON_PATH\",\n bnf: {\n JSON_PATH: [['DOLLAR', 'yy.ast.set({ expression: { type: \"root\", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'], ['DOLLAR PATH_COMPONENTS', 'yy.ast.set({ expression: { type: \"root\", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'], ['LEADING_CHILD_MEMBER_EXPRESSION', 'yy.ast.unshift(); return yy.ast.yield()'], ['LEADING_CHILD_MEMBER_EXPRESSION PATH_COMPONENTS', 'yy.ast.set({ operation: \"member\", scope: \"child\", expression: { type: \"identifier\", value: $1 }}); yy.ast.unshift(); return yy.ast.yield()']],\n PATH_COMPONENTS: [['PATH_COMPONENT', ''], ['PATH_COMPONENTS PATH_COMPONENT', '']],\n PATH_COMPONENT: [['MEMBER_COMPONENT', 'yy.ast.set({ operation: \"member\" }); yy.ast.push()'], ['SUBSCRIPT_COMPONENT', 'yy.ast.set({ operation: \"subscript\" }); yy.ast.push() ']],\n MEMBER_COMPONENT: [['CHILD_MEMBER_COMPONENT', 'yy.ast.set({ scope: \"child\" })'], ['DESCENDANT_MEMBER_COMPONENT', 'yy.ast.set({ scope: \"descendant\" })']],\n CHILD_MEMBER_COMPONENT: [['DOT MEMBER_EXPRESSION', '']],\n LEADING_CHILD_MEMBER_EXPRESSION: [['MEMBER_EXPRESSION', 'yy.ast.set({ scope: \"child\", operation: \"member\" })']],\n DESCENDANT_MEMBER_COMPONENT: [['DOT_DOT MEMBER_EXPRESSION', '']],\n MEMBER_EXPRESSION: [['STAR', 'yy.ast.set({ expression: { type: \"wildcard\", value: $1 } })'], ['IDENTIFIER', 'yy.ast.set({ expression: { type: \"identifier\", value: $1 } })'], ['SCRIPT_EXPRESSION', 'yy.ast.set({ expression: { type: \"script_expression\", value: $1 } })'], ['INTEGER', 'yy.ast.set({ expression: { type: \"numeric_literal\", value: parseInt($1) } })'], ['END', '']],\n SUBSCRIPT_COMPONENT: [['CHILD_SUBSCRIPT_COMPONENT', 'yy.ast.set({ scope: \"child\" })'], ['DESCENDANT_SUBSCRIPT_COMPONENT', 'yy.ast.set({ scope: \"descendant\" })']],\n CHILD_SUBSCRIPT_COMPONENT: [['[ SUBSCRIPT ]', '']],\n DESCENDANT_SUBSCRIPT_COMPONENT: [['DOT_DOT [ SUBSCRIPT ]', '']],\n SUBSCRIPT: [['SUBSCRIPT_EXPRESSION', ''], ['SUBSCRIPT_EXPRESSION_LIST', '$1.length > 1? yy.ast.set({ expression: { type: \"union\", value: $1 } }) : $$ = $1']],\n SUBSCRIPT_EXPRESSION_LIST: [['SUBSCRIPT_EXPRESSION_LISTABLE', '$$ = [$1]'], ['SUBSCRIPT_EXPRESSION_LIST , SUBSCRIPT_EXPRESSION_LISTABLE', '$$ = $1.concat($3)']],\n SUBSCRIPT_EXPRESSION_LISTABLE: [['INTEGER', '$$ = { expression: { type: \"numeric_literal\", value: parseInt($1) } }; yy.ast.set($$)'], ['STRING_LITERAL', '$$ = { expression: { type: \"string_literal\", value: $1 } }; yy.ast.set($$)'], ['ARRAY_SLICE', '$$ = { expression: { type: \"slice\", value: $1 } }; yy.ast.set($$)']],\n SUBSCRIPT_EXPRESSION: [['STAR', '$$ = { expression: { type: \"wildcard\", value: $1 } }; yy.ast.set($$)'], ['SCRIPT_EXPRESSION', '$$ = { expression: { type: \"script_expression\", value: $1 } }; yy.ast.set($$)'], ['FILTER_EXPRESSION', '$$ = { expression: { type: \"filter_expression\", value: $1 } }; yy.ast.set($$)']],\n STRING_LITERAL: [['QQ_STRING', \"$$ = $1\"], ['Q_STRING', \"$$ = $1\"]]\n }\n };\n if (fs.readFileSync) {\n grammar.moduleInclude = fs.readFileSync(require.resolve(\"../include/module.js\"));\n grammar.actionInclude = fs.readFileSync(require.resolve(\"../include/action.js\"));\n }\n module.exports = grammar;\n }, {\n \"./dict\": 2,\n \"fs\": 12\n }],\n 4: [function (require, module, exports) {\n var aesprim = require('./aesprim');\n var slice = require('./slice');\n var _evaluate = require('static-eval');\n var _uniq = require('underscore').uniq;\n var Handlers = function () {\n return this.initialize.apply(this, arguments);\n };\n Handlers.prototype.initialize = function () {\n this.traverse = traverser(true);\n this.descend = traverser();\n };\n Handlers.prototype.keys = Object.keys;\n Handlers.prototype.resolve = function (component) {\n var key = [component.operation, component.scope, component.expression.type].join('-');\n var method = this._fns[key];\n if (!method) throw new Error(\"couldn't resolve key: \" + key);\n return method.bind(this);\n };\n Handlers.prototype.register = function (key, handler) {\n if (!handler instanceof Function) {\n throw new Error(\"handler must be a function\");\n }\n this._fns[key] = handler;\n };\n Handlers.prototype._fns = {\n 'member-child-identifier': function (component, partial) {\n var key = component.expression.value;\n var value = partial.value;\n if (value instanceof Object && key in value) {\n return [{\n value: value[key],\n path: partial.path.concat(key)\n }];\n }\n },\n 'member-descendant-identifier': _traverse(function (key, value, ref) {\n return key == ref;\n }),\n 'subscript-child-numeric_literal': _descend(function (key, value, ref) {\n return key === ref;\n }),\n 'member-child-numeric_literal': _descend(function (key, value, ref) {\n return String(key) === String(ref);\n }),\n 'subscript-descendant-numeric_literal': _traverse(function (key, value, ref) {\n return key === ref;\n }),\n 'member-child-wildcard': _descend(function () {\n return true;\n }),\n 'member-descendant-wildcard': _traverse(function () {\n return true;\n }),\n 'subscript-descendant-wildcard': _traverse(function () {\n return true;\n }),\n 'subscript-child-wildcard': _descend(function () {\n return true;\n }),\n 'subscript-child-slice': function (component, partial) {\n if (is_array(partial.value)) {\n var args = component.expression.value.split(':').map(_parse_nullable_int);\n var values = partial.value.map(function (v, i) {\n return {\n value: v,\n path: partial.path.concat(i)\n };\n });\n return slice.apply(null, [values].concat(args));\n }\n },\n 'subscript-child-union': function (component, partial) {\n var results = [];\n component.expression.value.forEach(function (component) {\n var _component = {\n operation: 'subscript',\n scope: 'child',\n expression: component.expression\n };\n var handler = this.resolve(_component);\n var _results = handler(_component, partial);\n if (_results) {\n results = results.concat(_results);\n }\n }, this);\n return unique(results);\n },\n 'subscript-descendant-union': function (component, partial, count) {\n var jp = require('..');\n var self = this;\n var results = [];\n var nodes = jp.nodes(partial, '$..*').slice(1);\n nodes.forEach(function (node) {\n if (results.length >= count) return;\n component.expression.value.forEach(function (component) {\n var _component = {\n operation: 'subscript',\n scope: 'child',\n expression: component.expression\n };\n var handler = self.resolve(_component);\n var _results = handler(_component, node);\n results = results.concat(_results);\n });\n });\n return unique(results);\n },\n 'subscript-child-filter_expression': function (component, partial, count) {\n // slice out the expression from ?(expression)\n var src = component.expression.value.slice(2, -1);\n var ast = aesprim.parse(src).body[0].expression;\n var passable = function (key, value) {\n return evaluate(ast, {\n '@': value\n });\n };\n return this.descend(partial, null, passable, count);\n },\n 'subscript-descendant-filter_expression': function (component, partial, count) {\n // slice out the expression from ?(expression)\n var src = component.expression.value.slice(2, -1);\n var ast = aesprim.parse(src).body[0].expression;\n var passable = function (key, value) {\n return evaluate(ast, {\n '@': value\n });\n };\n return this.traverse(partial, null, passable, count);\n },\n 'subscript-child-script_expression': function (component, partial) {\n var exp = component.expression.value.slice(1, -1);\n return eval_recurse(partial, exp, '$[{{value}}]');\n },\n 'member-child-script_expression': function (component, partial) {\n var exp = component.expression.value.slice(1, -1);\n return eval_recurse(partial, exp, '$.{{value}}');\n },\n 'member-descendant-script_expression': function (component, partial) {\n var exp = component.expression.value.slice(1, -1);\n return eval_recurse(partial, exp, '$..value');\n }\n };\n Handlers.prototype._fns['subscript-child-string_literal'] = Handlers.prototype._fns['member-child-identifier'];\n Handlers.prototype._fns['member-descendant-numeric_literal'] = Handlers.prototype._fns['subscript-descendant-string_literal'] = Handlers.prototype._fns['member-descendant-identifier'];\n function eval_recurse(partial, src, template) {\n var jp = require('./index');\n var ast = aesprim.parse(src).body[0].expression;\n var value = evaluate(ast, {\n '@': partial.value\n });\n var path = template.replace(/\\{\\{\\s*value\\s*\\}\\}/g, value);\n var results = jp.nodes(partial.value, path);\n results.forEach(function (r) {\n r.path = partial.path.concat(r.path.slice(1));\n });\n return results;\n }\n function is_array(val) {\n return Array.isArray(val);\n }\n function is_object(val) {\n // is this a non-array, non-null object?\n return val && !(val instanceof Array) && val instanceof Object;\n }\n function traverser(recurse) {\n return function (partial, ref, passable, count) {\n var value = partial.value;\n var path = partial.path;\n var results = [];\n var descend = function (value, path) {\n if (is_array(value)) {\n value.forEach(function (element, index) {\n if (results.length >= count) {\n return;\n }\n if (passable(index, element, ref)) {\n results.push({\n path: path.concat(index),\n value: element\n });\n }\n });\n value.forEach(function (element, index) {\n if (results.length >= count) {\n return;\n }\n if (recurse) {\n descend(element, path.concat(index));\n }\n });\n } else if (is_object(value)) {\n this.keys(value).forEach(function (k) {\n if (results.length >= count) {\n return;\n }\n if (passable(k, value[k], ref)) {\n results.push({\n path: path.concat(k),\n value: value[k]\n });\n }\n });\n this.keys(value).forEach(function (k) {\n if (results.length >= count) {\n return;\n }\n if (recurse) {\n descend(value[k], path.concat(k));\n }\n });\n }\n }.bind(this);\n descend(value, path);\n return results;\n };\n }\n function _descend(passable) {\n return function (component, partial, count) {\n return this.descend(partial, component.expression.value, passable, count);\n };\n }\n function _traverse(passable) {\n return function (component, partial, count) {\n return this.traverse(partial, component.expression.value, passable, count);\n };\n }\n function evaluate() {\n try {\n return _evaluate.apply(this, arguments);\n } catch (e) {}\n }\n function unique(results) {\n results = results.filter(function (d) {\n return d;\n });\n return _uniq(results, function (r) {\n return r.path.map(function (c) {\n return String(c).replace('-', '--');\n }).join('-');\n });\n }\n function _parse_nullable_int(val) {\n var sval = String(val);\n return sval.match(/^-?[0-9]+$/) ? parseInt(sval) : null;\n }\n module.exports = Handlers;\n }, {\n \"..\": \"jsonpath\",\n \"./aesprim\": \"./aesprim\",\n \"./index\": 5,\n \"./slice\": 7,\n \"static-eval\": 15,\n \"underscore\": 12\n }],\n 5: [function (require, module, exports) {\n var assert = require('assert');\n var dict = require('./dict');\n var Parser = require('./parser');\n var Handlers = require('./handlers');\n var JSONPath = function () {\n this.initialize.apply(this, arguments);\n };\n JSONPath.prototype.initialize = function () {\n this.parser = new Parser();\n this.handlers = new Handlers();\n };\n JSONPath.prototype.parse = function (string) {\n assert.ok(_is_string(string), \"we need a path\");\n return this.parser.parse(string);\n };\n JSONPath.prototype.parent = function (obj, string) {\n assert.ok(obj instanceof Object, \"obj needs to be an object\");\n assert.ok(string, \"we need a path\");\n var node = this.nodes(obj, string)[0];\n var key = node.path.pop(); /* jshint unused:false */\n return this.value(obj, node.path);\n };\n JSONPath.prototype.apply = function (obj, string, fn) {\n assert.ok(obj instanceof Object, \"obj needs to be an object\");\n assert.ok(string, \"we need a path\");\n assert.equal(typeof fn, \"function\", \"fn needs to be function\");\n var nodes = this.nodes(obj, string).sort(function (a, b) {\n // sort nodes so we apply from the bottom up\n return b.path.length - a.path.length;\n });\n nodes.forEach(function (node) {\n var key = node.path.pop();\n var parent = this.value(obj, this.stringify(node.path));\n var val = node.value = fn.call(obj, parent[key]);\n parent[key] = val;\n }, this);\n return nodes;\n };\n JSONPath.prototype.value = function (obj, path, value) {\n assert.ok(obj instanceof Object, \"obj needs to be an object\");\n assert.ok(path, \"we need a path\");\n if (arguments.length >= 3) {\n var node = this.nodes(obj, path).shift();\n if (!node) return this._vivify(obj, path, value);\n var key = node.path.slice(-1).shift();\n var parent = this.parent(obj, this.stringify(node.path));\n parent[key] = value;\n }\n return this.query(obj, this.stringify(path), 1).shift();\n };\n JSONPath.prototype._vivify = function (obj, string, value) {\n var self = this;\n assert.ok(obj instanceof Object, \"obj needs to be an object\");\n assert.ok(string, \"we need a path\");\n var path = this.parser.parse(string).map(function (component) {\n return component.expression.value;\n });\n var setValue = function (path, value) {\n var key = path.pop();\n var node = self.value(obj, path);\n if (!node) {\n setValue(path.concat(), typeof key === 'string' ? {} : []);\n node = self.value(obj, path);\n }\n node[key] = value;\n };\n setValue(path, value);\n return this.query(obj, string)[0];\n };\n JSONPath.prototype.query = function (obj, string, count) {\n assert.ok(obj instanceof Object, \"obj needs to be an object\");\n assert.ok(_is_string(string), \"we need a path\");\n var results = this.nodes(obj, string, count).map(function (r) {\n return r.value;\n });\n return results;\n };\n JSONPath.prototype.paths = function (obj, string, count) {\n assert.ok(obj instanceof Object, \"obj needs to be an object\");\n assert.ok(string, \"we need a path\");\n var results = this.nodes(obj, string, count).map(function (r) {\n return r.path;\n });\n return results;\n };\n JSONPath.prototype.nodes = function (obj, string, count) {\n assert.ok(obj instanceof Object, \"obj needs to be an object\");\n assert.ok(string, \"we need a path\");\n if (count === 0) return [];\n var path = this.parser.parse(string);\n var handlers = this.handlers;\n var partials = [{\n path: ['$'],\n value: obj\n }];\n var matches = [];\n if (path.length && path[0].expression.type == 'root') path.shift();\n if (!path.length) return partials;\n path.forEach(function (component, index) {\n if (matches.length >= count) return;\n var handler = handlers.resolve(component);\n var _partials = [];\n partials.forEach(function (p) {\n if (matches.length >= count) return;\n var results = handler(component, p, count);\n if (index == path.length - 1) {\n // if we're through the components we're done\n matches = matches.concat(results || []);\n } else {\n // otherwise accumulate and carry on through\n _partials = _partials.concat(results || []);\n }\n });\n partials = _partials;\n });\n return count ? matches.slice(0, count) : matches;\n };\n JSONPath.prototype.stringify = function (path) {\n assert.ok(path, \"we need a path\");\n var string = '$';\n var templates = {\n 'descendant-member': '..{{value}}',\n 'child-member': '.{{value}}',\n 'descendant-subscript': '..[{{value}}]',\n 'child-subscript': '[{{value}}]'\n };\n path = this._normalize(path);\n path.forEach(function (component) {\n if (component.expression.type == 'root') return;\n var key = [component.scope, component.operation].join('-');\n var template = templates[key];\n var value;\n if (component.expression.type == 'string_literal') {\n value = JSON.stringify(component.expression.value);\n } else {\n value = component.expression.value;\n }\n if (!template) throw new Error(\"couldn't find template \" + key);\n string += template.replace(/{{value}}/, value);\n });\n return string;\n };\n JSONPath.prototype._normalize = function (path) {\n assert.ok(path, \"we need a path\");\n if (typeof path == \"string\") {\n return this.parser.parse(path);\n } else if (Array.isArray(path) && typeof path[0] == \"string\") {\n var _path = [{\n expression: {\n type: \"root\",\n value: \"$\"\n }\n }];\n path.forEach(function (component, index) {\n if (component == '$' && index === 0) return;\n if (typeof component == \"string\" && component.match(\"^\" + dict.identifier + \"$\")) {\n _path.push({\n operation: 'member',\n scope: 'child',\n expression: {\n value: component,\n type: 'identifier'\n }\n });\n } else {\n var type = typeof component == \"number\" ? 'numeric_literal' : 'string_literal';\n _path.push({\n operation: 'subscript',\n scope: 'child',\n expression: {\n value: component,\n type: type\n }\n });\n }\n });\n return _path;\n } else if (Array.isArray(path) && typeof path[0] == \"object\") {\n return path;\n }\n throw new Error(\"couldn't understand path \" + path);\n };\n function _is_string(obj) {\n return Object.prototype.toString.call(obj) == '[object String]';\n }\n JSONPath.Handlers = Handlers;\n JSONPath.Parser = Parser;\n var instance = new JSONPath();\n instance.JSONPath = JSONPath;\n module.exports = instance;\n }, {\n \"./dict\": 2,\n \"./handlers\": 4,\n \"./parser\": 6,\n \"assert\": 8\n }],\n 6: [function (require, module, exports) {\n var grammar = require('./grammar');\n var gparser = require('../generated/parser');\n var Parser = function () {\n var parser = new gparser.Parser();\n var _parseError = parser.parseError;\n parser.yy.parseError = function () {\n if (parser.yy.ast) {\n parser.yy.ast.initialize();\n }\n _parseError.apply(parser, arguments);\n };\n return parser;\n };\n Parser.grammar = grammar;\n module.exports = Parser;\n }, {\n \"../generated/parser\": 1,\n \"./grammar\": 3\n }],\n 7: [function (require, module, exports) {\n module.exports = function (arr, start, end, step) {\n if (typeof start == 'string') throw new Error(\"start cannot be a string\");\n if (typeof end == 'string') throw new Error(\"end cannot be a string\");\n if (typeof step == 'string') throw new Error(\"step cannot be a string\");\n var len = arr.length;\n if (step === 0) throw new Error(\"step cannot be zero\");\n step = step ? integer(step) : 1;\n\n // normalize negative values\n start = start < 0 ? len + start : start;\n end = end < 0 ? len + end : end;\n\n // default extents to extents\n start = integer(start === 0 ? 0 : !start ? step > 0 ? 0 : len - 1 : start);\n end = integer(end === 0 ? 0 : !end ? step > 0 ? len : -1 : end);\n\n // clamp extents\n start = step > 0 ? Math.max(0, start) : Math.min(len, start);\n end = step > 0 ? Math.min(end, len) : Math.max(-1, end);\n\n // return empty if extents are backwards\n if (step > 0 && end <= start) return [];\n if (step < 0 && start <= end) return [];\n var result = [];\n for (var i = start; i != end; i += step) {\n if (step < 0 && i <= end || step > 0 && i >= end) break;\n result.push(arr[i]);\n }\n return result;\n };\n function integer(val) {\n return String(val).match(/^[0-9]+$/) ? parseInt(val) : Number.isFinite(val) ? parseInt(val, 10) : 0;\n }\n }, {}],\n 8: [function (require, module, exports) {\n // http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n //\n // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n //\n // Originally from narwhal.js (http://narwhaljs.org)\n // Copyright (c) 2009 Thomas Robinson <280north.com>\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the 'Software'), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n // when used in node, this will actually load the util module we depend on\n // versus loading the builtin util module as happens otherwise\n // this is a bug in node module loading as far as I am concerned\n var util = require('util/');\n var pSlice = Array.prototype.slice;\n var hasOwn = Object.prototype.hasOwnProperty;\n\n // 1. The assert module provides functions that throw\n // AssertionError's when particular conditions are not met. The\n // assert module must conform to the following interface.\n\n var assert = module.exports = ok;\n\n // 2. The AssertionError is defined in assert.\n // new assert.AssertionError({ message: message,\n // actual: actual,\n // expected: expected })\n\n assert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = stackStartFunction.name;\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n this.stack = out;\n }\n }\n };\n\n // assert.AssertionError instanceof Error\n util.inherits(assert.AssertionError, Error);\n function replacer(key, value) {\n if (util.isUndefined(value)) {\n return '' + value;\n }\n if (util.isNumber(value) && !isFinite(value)) {\n return value.toString();\n }\n if (util.isFunction(value) || util.isRegExp(value)) {\n return value.toString();\n }\n return value;\n }\n function truncate(s, n) {\n if (util.isString(s)) {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n }\n function getMessage(self) {\n return truncate(JSON.stringify(self.actual, replacer), 128) + ' ' + self.operator + ' ' + truncate(JSON.stringify(self.expected, replacer), 128);\n }\n\n // At present only the three keys mentioned above are used and\n // understood by the spec. Implementations or sub modules can pass\n // other keys to the AssertionError's constructor - they will be\n // ignored.\n\n // 3. All of the following functions must throw an AssertionError\n // when a corresponding condition is not met, with a message that\n // may be undefined if not provided. All assertion methods provide\n // both the actual and expected values to the assertion error for\n // display purposes.\n\n function fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n }\n\n // EXTENSION! allows for well behaved errors defined elsewhere.\n assert.fail = fail;\n\n // 4. Pure assertion tests whether a value is truthy, as determined\n // by !!guard.\n // assert.ok(guard, message_opt);\n // This statement is equivalent to assert.equal(true, !!guard,\n // message_opt);. To test strictly for the value true, use\n // assert.strictEqual(true, guard, message_opt);.\n\n function ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n }\n assert.ok = ok;\n\n // 5. The equality assertion tests shallow, coercive equality with\n // ==.\n // assert.equal(actual, expected, message_opt);\n\n assert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n };\n\n // 6. The non-equality assertion tests for whether two objects are not equal\n // with != assert.notEqual(actual, expected, message_opt);\n\n assert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n };\n\n // 7. The equivalence assertion tests a deep equality relation.\n // assert.deepEqual(actual, expected, message_opt);\n\n assert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n };\n function _deepEqual(actual, expected) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (util.isBuffer(actual) && util.isBuffer(expected)) {\n if (actual.length != expected.length) return false;\n for (var i = 0; i < actual.length; i++) {\n if (actual[i] !== expected[i]) return false;\n }\n return true;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source && actual.global === expected.global && actual.multiline === expected.multiline && actual.lastIndex === expected.lastIndex && actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!util.isObject(actual) && !util.isObject(expected)) {\n return actual == expected;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected);\n }\n }\n function isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n }\n function objEquiv(a, b) {\n if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b)) return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n // if one is a primitive, the other must be same\n if (util.isPrimitive(a) || util.isPrimitive(b)) {\n return a === b;\n }\n var aIsArgs = isArguments(a),\n bIsArgs = isArguments(b);\n if (aIsArgs && !bIsArgs || !aIsArgs && bIsArgs) return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b);\n }\n var ka = objectKeys(a),\n kb = objectKeys(b),\n key,\n i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length) return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key])) return false;\n }\n return true;\n }\n\n // 8. The non-equivalence assertion tests for any deep inequality.\n // assert.notDeepEqual(actual, expected, message_opt);\n\n assert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n };\n\n // 9. The strict equality assertion tests strict equality, as determined by ===.\n // assert.strictEqual(actual, expected, message_opt);\n\n assert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n };\n\n // 10. The strict non-equality assertion tests for strict inequality, as\n // determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\n assert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n };\n function expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n } else if (actual instanceof expected) {\n return true;\n } else if (expected.call({}, actual) === true) {\n return true;\n }\n return false;\n }\n function _throws(shouldThrow, block, expected, message) {\n var actual;\n if (util.isString(expected)) {\n message = expected;\n expected = null;\n }\n try {\n block();\n } catch (e) {\n actual = e;\n }\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + (message ? ' ' + message : '.');\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n if (!shouldThrow && expectedException(actual, expected)) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n if (shouldThrow && actual && expected && !expectedException(actual, expected) || !shouldThrow && actual) {\n throw actual;\n }\n }\n\n // 11. Expected to throw an error:\n // assert.throws(block, Error_opt, message_opt);\n\n assert.throws = function (block, /*optional*/error, /*optional*/message) {\n _throws.apply(this, [true].concat(pSlice.call(arguments)));\n };\n\n // EXTENSION! This is annoying to write outside this module.\n assert.doesNotThrow = function (block, /*optional*/message) {\n _throws.apply(this, [false].concat(pSlice.call(arguments)));\n };\n assert.ifError = function (err) {\n if (err) {\n throw err;\n }\n };\n var objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n };\n }, {\n \"util/\": 11\n }],\n 9: [function (require, module, exports) {\n if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n } else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n }\n }, {}],\n 10: [function (require, module, exports) {\n module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function';\n };\n }, {}],\n 11: [function (require, module, exports) {\n (function (process, global) {\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n var formatRegExp = /%[sdj%]/g;\n exports.format = function (f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n };\n\n // Mark that a method should not be used.\n // Returns a modified function which warns once by default.\n // If --no-deprecation is set, then it is a no-op.\n exports.deprecate = function (fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function () {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n if (process.noDeprecation === true) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n };\n var debugs = {};\n var debugEnviron;\n exports.debuglog = function (set) {\n if (isUndefined(debugEnviron)) debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function () {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function () {};\n }\n }\n return debugs[set];\n };\n\n /**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n /* legacy: obj, showHidden, depth, colors*/\n function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n }\n exports.inspect = inspect;\n\n // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n inspect.colors = {\n 'bold': [1, 22],\n 'italic': [3, 23],\n 'underline': [4, 24],\n 'inverse': [7, 27],\n 'white': [37, 39],\n 'grey': [90, 39],\n 'black': [30, 39],\n 'blue': [34, 39],\n 'cyan': [36, 39],\n 'green': [32, 39],\n 'magenta': [35, 39],\n 'red': [31, 39],\n 'yellow': [33, 39]\n };\n\n // Don't use 'blue' not visible on cmd.exe\n inspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n };\n function stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str + '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n }\n function stylizeNoColor(str, styleType) {\n return str;\n }\n function arrayToHash(array) {\n var hash = {};\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n return hash;\n }\n function formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect && value && isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value) && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n var base = '',\n array = false,\n braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n ctx.seen.push(value);\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n }\n function formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '').replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value)) return ctx.stylize('null', 'null');\n }\n function formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n }\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));\n }\n });\n return output;\n }\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {\n value: value[key]\n };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n return name + ': ' + str;\n }\n function reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function (prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n if (length > 60) {\n return braces[0] + (base === '' ? '' : base + '\\n ') + ' ' + output.join(',\\n ') + ' ' + braces[1];\n }\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n }\n\n // NOTE: These type checking functions intentionally don't use `instanceof`\n // because it is fragile and can be easily faked with `Object.create()`.\n function isArray(ar) {\n return Array.isArray(ar);\n }\n exports.isArray = isArray;\n function isBoolean(arg) {\n return typeof arg === 'boolean';\n }\n exports.isBoolean = isBoolean;\n function isNull(arg) {\n return arg === null;\n }\n exports.isNull = isNull;\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n exports.isNullOrUndefined = isNullOrUndefined;\n function isNumber(arg) {\n return typeof arg === 'number';\n }\n exports.isNumber = isNumber;\n function isString(arg) {\n return typeof arg === 'string';\n }\n exports.isString = isString;\n function isSymbol(arg) {\n return typeof arg === 'symbol';\n }\n exports.isSymbol = isSymbol;\n function isUndefined(arg) {\n return arg === void 0;\n }\n exports.isUndefined = isUndefined;\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n }\n exports.isRegExp = isRegExp;\n function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n }\n exports.isObject = isObject;\n function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n }\n exports.isDate = isDate;\n function isError(e) {\n return isObject(e) && (objectToString(e) === '[object Error]' || e instanceof Error);\n }\n exports.isError = isError;\n function isFunction(arg) {\n return typeof arg === 'function';\n }\n exports.isFunction = isFunction;\n function isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' ||\n // ES6 symbol\n typeof arg === 'undefined';\n }\n exports.isPrimitive = isPrimitive;\n exports.isBuffer = require('./support/isBuffer');\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n function pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n }\n var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\n // 26 Feb 16:19:34\n function timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n }\n\n // log is just a thin wrapper to console.log that prepends a timestamp\n exports.log = function () {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n };\n\n /**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\n exports.inherits = require('inherits');\n exports._extend = function (origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n };\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n }).call(this, require('_process'), typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {});\n }, {\n \"./support/isBuffer\": 10,\n \"_process\": 14,\n \"inherits\": 9\n }],\n 12: [function (require, module, exports) {}, {}],\n 13: [function (require, module, exports) {\n (function (process) {\n // .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n // backported and transplited with Babel, with backwards-compat fixes\n\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n // resolves . and .. elements in a path array with directory names there\n // must be no slashes, empty elements, or device names (c:\\) in the array\n // (so also no leading and trailing slashes - it does not distinguish\n // relative and absolute paths)\n function normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n return parts;\n }\n\n // path.resolve([from ...], to)\n // posix version\n exports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n };\n\n // path.normalize(path)\n // posix version\n exports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n return (isAbsolute ? '/' : '') + path;\n };\n\n // posix version\n exports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n };\n\n // posix version\n exports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n };\n\n // path.relative(from, to)\n // posix version\n exports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n };\n exports.sep = '/';\n exports.delimiter = ':';\n exports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n };\n function basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n if (end === -1) return '';\n return path.slice(start, end);\n }\n\n // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n // in new Node.js versions, so only basename() above is backported here\n exports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n };\n exports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n };\n function filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n }\n\n // String.prototype.substr - negative index don't work in IE8\n var substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n } : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n };\n }).call(this, require('_process'));\n }, {\n \"_process\": 14\n }],\n 14: [function (require, module, exports) {\n // shim for using process in browser\n var process = module.exports = {};\n\n // cached from whatever global is present so that test runners that stub it\n // don't break things. But we need to wrap it in a try catch in case it is\n // wrapped in strict mode code which doesn't define any globals. It's inside a\n // function because try/catches deoptimize in certain engines.\n\n var cachedSetTimeout;\n var cachedClearTimeout;\n function defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n }\n function defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n }\n (function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n })();\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n }\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n }\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n }\n function drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n process.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n };\n\n // v8 likes predictible objects\n function Item(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n Item.prototype.run = function () {\n this.fun.apply(null, this.array);\n };\n process.title = 'browser';\n process.browser = true;\n process.env = {};\n process.argv = [];\n process.version = ''; // empty string to avoid regexp issues\n process.versions = {};\n function noop() {}\n process.on = noop;\n process.addListener = noop;\n process.once = noop;\n process.off = noop;\n process.removeListener = noop;\n process.removeAllListeners = noop;\n process.emit = noop;\n process.prependListener = noop;\n process.prependOnceListener = noop;\n process.listeners = function (name) {\n return [];\n };\n process.binding = function (name) {\n throw new Error('process.binding is not supported');\n };\n process.cwd = function () {\n return '/';\n };\n process.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n };\n process.umask = function () {\n return 0;\n };\n }, {}],\n 15: [function (require, module, exports) {\n var unparse = require('escodegen').generate;\n module.exports = function (ast, vars) {\n if (!vars) vars = {};\n var FAIL = {};\n var result = function walk(node, scopeVars) {\n if (node.type === 'Literal') {\n return node.value;\n } else if (node.type === 'UnaryExpression') {\n var val = walk(node.argument);\n if (node.operator === '+') return +val;\n if (node.operator === '-') return -val;\n if (node.operator === '~') return ~val;\n if (node.operator === '!') return !val;\n return FAIL;\n } else if (node.type === 'ArrayExpression') {\n var xs = [];\n for (var i = 0, l = node.elements.length; i < l; i++) {\n var x = walk(node.elements[i]);\n if (x === FAIL) return FAIL;\n xs.push(x);\n }\n return xs;\n } else if (node.type === 'ObjectExpression') {\n var obj = {};\n for (var i = 0; i < node.properties.length; i++) {\n var prop = node.properties[i];\n var value = prop.value === null ? prop.value : walk(prop.value);\n if (value === FAIL) return FAIL;\n obj[prop.key.value || prop.key.name] = value;\n }\n return obj;\n } else if (node.type === 'BinaryExpression' || node.type === 'LogicalExpression') {\n var l = walk(node.left);\n if (l === FAIL) return FAIL;\n var r = walk(node.right);\n if (r === FAIL) return FAIL;\n var op = node.operator;\n if (op === '==') return l == r;\n if (op === '===') return l === r;\n if (op === '!=') return l != r;\n if (op === '!==') return l !== r;\n if (op === '+') return l + r;\n if (op === '-') return l - r;\n if (op === '*') return l * r;\n if (op === '/') return l / r;\n if (op === '%') return l % r;\n if (op === '<') return l < r;\n if (op === '<=') return l <= r;\n if (op === '>') return l > r;\n if (op === '>=') return l >= r;\n if (op === '|') return l | r;\n if (op === '&') return l & r;\n if (op === '^') return l ^ r;\n if (op === '&&') return l && r;\n if (op === '||') return l || r;\n return FAIL;\n } else if (node.type === 'Identifier') {\n if ({}.hasOwnProperty.call(vars, node.name)) {\n return vars[node.name];\n } else return FAIL;\n } else if (node.type === 'ThisExpression') {\n if ({}.hasOwnProperty.call(vars, 'this')) {\n return vars['this'];\n } else return FAIL;\n } else if (node.type === 'CallExpression') {\n var callee = walk(node.callee);\n if (callee === FAIL) return FAIL;\n if (typeof callee !== 'function') return FAIL;\n var ctx = node.callee.object ? walk(node.callee.object) : FAIL;\n if (ctx === FAIL) ctx = null;\n var args = [];\n for (var i = 0, l = node.arguments.length; i < l; i++) {\n var x = walk(node.arguments[i]);\n if (x === FAIL) return FAIL;\n args.push(x);\n }\n return callee.apply(ctx, args);\n } else if (node.type === 'MemberExpression') {\n var obj = walk(node.object);\n // do not allow access to methods on Function \n if (obj === FAIL || typeof obj == 'function') {\n return FAIL;\n }\n if (node.property.type === 'Identifier') {\n return obj[node.property.name];\n }\n var prop = walk(node.property);\n if (prop === FAIL) return FAIL;\n return obj[prop];\n } else if (node.type === 'ConditionalExpression') {\n var val = walk(node.test);\n if (val === FAIL) return FAIL;\n return val ? walk(node.consequent) : walk(node.alternate);\n } else if (node.type === 'ExpressionStatement') {\n var val = walk(node.expression);\n if (val === FAIL) return FAIL;\n return val;\n } else if (node.type === 'ReturnStatement') {\n return walk(node.argument);\n } else if (node.type === 'FunctionExpression') {\n var bodies = node.body.body;\n\n // Create a \"scope\" for our arguments\n var oldVars = {};\n Object.keys(vars).forEach(function (element) {\n oldVars[element] = vars[element];\n });\n for (var i = 0; i < node.params.length; i++) {\n var key = node.params[i];\n if (key.type == 'Identifier') {\n vars[key.name] = null;\n } else return FAIL;\n }\n for (var i in bodies) {\n if (walk(bodies[i]) === FAIL) {\n return FAIL;\n }\n }\n // restore the vars and scope after we walk\n vars = oldVars;\n var keys = Object.keys(vars);\n var vals = keys.map(function (key) {\n return vars[key];\n });\n return Function(keys.join(', '), 'return ' + unparse(node)).apply(null, vals);\n } else if (node.type === 'TemplateLiteral') {\n var str = '';\n for (var i = 0; i < node.expressions.length; i++) {\n str += walk(node.quasis[i]);\n str += walk(node.expressions[i]);\n }\n str += walk(node.quasis[i]);\n return str;\n } else if (node.type === 'TaggedTemplateExpression') {\n var tag = walk(node.tag);\n var quasi = node.quasi;\n var strings = quasi.quasis.map(walk);\n var values = quasi.expressions.map(walk);\n return tag.apply(null, [strings].concat(values));\n } else if (node.type === 'TemplateElement') {\n return node.value.cooked;\n } else return FAIL;\n }(ast);\n return result === FAIL ? undefined : result;\n };\n }, {\n \"escodegen\": 12\n }],\n \"jsonpath\": [function (require, module, exports) {\n module.exports = require('./lib/index');\n }, {\n \"./lib/index\": 5\n }]\n }, {}, [\"jsonpath\"])(\"jsonpath\");\n});","import { isPlatformBrowser as isPlatformBrowser$1, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, PLATFORM_ID, Directive, Inject, Input, Output, NgModule } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\n/**\r\n * @license\r\n * Copyright Piotr Stępniewski All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://raw.githubusercontent.com/k3nsei/ng-in-viewport/stable/LICENSE\r\n */\nvar InViewportConfigDirection = /*#__PURE__*/function (InViewportConfigDirection) {\n InViewportConfigDirection[\"BOTH\"] = \"both\";\n InViewportConfigDirection[\"VERTICAL\"] = \"vertical\";\n InViewportConfigDirection[\"HORIZONTAL\"] = \"horizontal\";\n return InViewportConfigDirection;\n}(InViewportConfigDirection || {});\nconst isPlatformBrowser = new Function(`\n try {\n return typeof window !== 'undefined' && this === window;\n } catch(e) {\n return false;\n }\n`);\nconst toBase64 = !isPlatformBrowser() ? new Function('input', `return Buffer.from(input).toString('base64')`) : new Function('input', 'return btoa(input)');\nclass InViewportConfig {\n constructor(options) {\n this._rootMargin = '0px 0px 0px 0px';\n this._threshold = [...InViewportConfig.DEFAULT_THRESHOLD];\n this._partial = true;\n this._direction = InViewportConfigDirection.BOTH;\n if (Object.prototype.toString.call(options) === '[object Object]') {\n ['root', 'rootMargin', 'threshold', 'partial', 'direction', 'checkFn'].forEach(prop => {\n if (options?.hasOwnProperty(prop)) {\n // @ts-ignore setters do value validation\n this[prop] = options[prop];\n }\n });\n }\n this._hash = InViewportConfig.hash({\n rootMargin: this.rootMargin,\n threshold: this.threshold,\n partial: this.partial,\n direction: this.direction,\n checkFn: String(this.checkFn)\n });\n }\n static get DEFAULT_THRESHOLD() {\n return [0, 1];\n }\n static get STRINGIFY_DELIMITER() {\n return '|';\n }\n static stringify(input) {\n if (Array.isArray(input)) {\n const stringifiedArr = [];\n for (let i = 0; i < input.length; i++) {\n stringifiedArr.push(InViewportConfig.stringify(input[i]));\n }\n return `[${stringifiedArr.join(',')}]`;\n } else if (typeof input === 'object' && input !== null) {\n const acc = [];\n const sortedKeys = Object.keys(input).sort();\n for (const k of sortedKeys) {\n const v = InViewportConfig.stringify(input[k]);\n acc.push(`${k}:${v}`);\n }\n return acc.join(InViewportConfig.STRINGIFY_DELIMITER);\n }\n return String(input);\n }\n static hash(input) {\n return toBase64(InViewportConfig.stringify(input));\n }\n get root() {\n return this._root;\n }\n set root(value) {\n this._root = value && value.nodeType === 1 ? value : undefined;\n }\n get rootMargin() {\n return this._rootMargin;\n }\n set rootMargin(value) {\n if (!value || typeof value !== 'string') {\n this._rootMargin = '0px 0px 0px 0px';\n } else {\n const marginString = value || '0px';\n const margins = marginString.split(new RegExp('\\\\s+')).map(margin => {\n const parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new TypeError('rootMargin must be specified in pixels or percent');\n }\n return `${parts[1]}${parts[2]}`;\n });\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n this._rootMargin = margins.join(' ');\n }\n }\n get threshold() {\n return this._threshold;\n }\n set threshold(value) {\n let threshold = [];\n const isValidThreshold = val => typeof val === 'number' && val >= 0 && val <= 1;\n if (isValidThreshold(value)) {\n threshold = [value];\n } else if (Array.isArray(value) && value.length) {\n threshold = value.filter(val => isValidThreshold(val));\n }\n if (threshold.length === 0) {\n threshold = [...InViewportConfig.DEFAULT_THRESHOLD];\n }\n this._threshold = threshold;\n }\n get partial() {\n return this._partial;\n }\n set partial(value) {\n this._partial = !!value;\n }\n get direction() {\n return this._direction;\n }\n set direction(value) {\n const isValidValue = val => {\n return [InViewportConfigDirection.BOTH, InViewportConfigDirection.HORIZONTAL, InViewportConfigDirection.VERTICAL].indexOf(val) >= 0;\n };\n this._direction = isValidValue(value) ? value : InViewportConfigDirection.BOTH;\n }\n get hash() {\n return this._hash;\n }\n get checkFn() {\n return this._checkFn;\n }\n set checkFn(value) {\n this._checkFn = value;\n }\n}\n\n/**\r\n * @license\r\n * Copyright Piotr Stępniewski All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://raw.githubusercontent.com/k3nsei/ng-in-viewport/stable/LICENSE\r\n */\nlet InViewportService = /*#__PURE__*/(() => {\n class InViewportService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.trigger$ = new Subject();\n this.registry = [];\n }\n emitTrigger(entries) {\n if (Array.isArray(entries) && entries.length) {\n entries.forEach(entry => this.trigger$.next(entry));\n }\n }\n getRootElement(element) {\n return element && element.nodeType === Node.ELEMENT_NODE ? element : undefined;\n }\n findEntry(root, configHash) {\n return this.registry.find(entry => entry.root === this.getRootElement(root) && entry.configHash === configHash);\n }\n register(target, config) {\n this.ngZone.runOutsideAngular(() => {\n const foundedEntry = this.findEntry(config.root, config.hash);\n if (foundedEntry && !foundedEntry.targets.has(target)) {\n foundedEntry.targets.add(target);\n foundedEntry.observer.observe(target);\n } else {\n const root = this.getRootElement(config.root);\n const options = {\n root: root,\n rootMargin: config.rootMargin,\n threshold: config.threshold\n };\n const entry = {\n root: root,\n configHash: config.hash,\n targets: new Set([target]),\n observer: new IntersectionObserver(entries => this.ngZone.run(() => this.emitTrigger(entries)), options)\n };\n entry.observer.observe(target);\n this.registry = [...this.registry, entry];\n }\n });\n }\n unregister(target, config) {\n this.ngZone.runOutsideAngular(() => {\n const foundedEntry = this.findEntry(config.root, config.hash);\n if (foundedEntry) {\n const {\n observer,\n targets\n } = foundedEntry;\n if (targets.has(target)) {\n observer.unobserve(target);\n targets.delete(target);\n }\n if (targets.size === 0) {\n observer.disconnect();\n this.registry = this.registry.filter(entry => entry !== foundedEntry);\n }\n }\n });\n }\n }\n InViewportService.ɵfac = function InViewportService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InViewportService)(i0.ɵɵinject(i0.NgZone));\n };\n InViewportService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InViewportService,\n factory: InViewportService.ɵfac,\n providedIn: 'root'\n });\n return InViewportService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\r\n * @license\r\n * Copyright Piotr Stępniewski All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://raw.githubusercontent.com/k3nsei/ng-in-viewport/stable/LICENSE\r\n */\nconst InViewportMetadata = Symbol('InViewportMetadata');\nlet InViewportDirective = /*#__PURE__*/(() => {\n class InViewportDirective {\n constructor(platformId, elementRef, inViewport) {\n this.platformId = platformId;\n this.elementRef = elementRef;\n this.inViewport = inViewport;\n this.inViewportAction = new EventEmitter();\n this.config = new InViewportConfig();\n this.destroyed$ = new Subject();\n }\n set options(value) {\n this.config = new InViewportConfig(value);\n }\n ngAfterViewInit() {\n if (isPlatformBrowser$1(this.platformId)) {\n this.inViewport.register(this.elementRef.nativeElement, this.config);\n this.inViewport.trigger$.pipe(filter(entry => entry && entry.target === this.elementRef.nativeElement), takeUntil(this.destroyed$)).subscribe(entry => this.emitAction(entry, false));\n } else {\n this.emitAction(undefined, true);\n }\n }\n ngOnDestroy() {\n if (isPlatformBrowser$1(this.platformId)) {\n this.inViewport.unregister(this.elementRef.nativeElement, this.config);\n }\n if (this.destroyed$ && !this.destroyed$.closed) {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n }\n check(entry, force) {\n const isVisible = () => {\n const {\n isIntersecting = true,\n intersectionRatio = 1\n } = entry ?? {};\n const partiallyVisible = isIntersecting || intersectionRatio > 0;\n const completelyVisible = intersectionRatio >= 1;\n return this.config.partial ? partiallyVisible : completelyVisible;\n };\n const visible = force || !entry || isVisible();\n return {\n [InViewportMetadata]: {\n entry\n },\n target: this.elementRef.nativeElement,\n visible\n };\n }\n emitAction(entry, force) {\n const event = this.config.checkFn ? this.config.checkFn(entry, {\n force,\n config: this.config\n }) : this.check(entry, force);\n this.inViewportAction.emit(event);\n }\n }\n InViewportDirective.ɵfac = function InViewportDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InViewportDirective)(i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(InViewportService));\n };\n InViewportDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: InViewportDirective,\n selectors: [[\"\", \"inViewport\", \"\"]],\n inputs: {\n options: [0, \"inViewportOptions\", \"options\"]\n },\n outputs: {\n inViewportAction: \"inViewportAction\"\n }\n });\n return InViewportDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\r\n * @license\r\n * Copyright Piotr Stępniewski All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://raw.githubusercontent.com/k3nsei/ng-in-viewport/stable/LICENSE\r\n */\nlet InViewportModule = /*#__PURE__*/(() => {\n class InViewportModule {}\n InViewportModule.ɵfac = function InViewportModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InViewportModule)();\n };\n InViewportModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: InViewportModule\n });\n InViewportModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule]]\n });\n return InViewportModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\r\n * @license\r\n * Copyright Piotr Stępniewski All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://raw.githubusercontent.com/k3nsei/ng-in-viewport/stable/LICENSE\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { InViewportConfig, InViewportConfigDirection, InViewportDirective, InViewportMetadata, InViewportModule, InViewportService };\n","import * as i0 from '@angular/core';\nimport { Injectable, inject } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nfunction enumStringToValue$b(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Choices {\n static fromProto(proto) {\n let m = new Choices();\n m = Object.assign(m, proto);\n if (proto.rules) {\n m.rules = proto.rules.map(Rule$1.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.rules !== 'undefined' && this.rules !== null) {\n toReturn['rules'] = 'toApiJson' in this.rules ? this.rules.toApiJson() : this.rules;\n }\n if (typeof this.defaultNextStep !== 'undefined') {\n toReturn['defaultNextStep'] = this.defaultNextStep;\n }\n return toReturn;\n }\n}\nlet Rule$1 = class Rule {\n static fromProto(proto) {\n let m = new Rule();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.variablePath !== 'undefined') {\n toReturn['variablePath'] = this.variablePath;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.next !== 'undefined') {\n toReturn['next'] = this.next;\n }\n if (typeof this.comparison !== 'undefined') {\n toReturn['comparison'] = this.comparison;\n }\n return toReturn;\n }\n};\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar DataType = /*#__PURE__*/function (DataType) {\n DataType[DataType[\"DATA_TYPE_UNSPECIFIED\"] = 0] = \"DATA_TYPE_UNSPECIFIED\";\n DataType[DataType[\"DATA_TYPE_UNKNOWN\"] = 1] = \"DATA_TYPE_UNKNOWN\";\n DataType[DataType[\"DATA_TYPE_STRING\"] = 2] = \"DATA_TYPE_STRING\";\n DataType[DataType[\"DATA_TYPE_BOOLEAN\"] = 3] = \"DATA_TYPE_BOOLEAN\";\n DataType[DataType[\"DATA_TYPE_ORDER_ACTION_TYPE\"] = 4] = \"DATA_TYPE_ORDER_ACTION_TYPE\";\n DataType[DataType[\"DATA_TYPE_ORDER_DECLINED_REASON_IDS\"] = 5] = \"DATA_TYPE_ORDER_DECLINED_REASON_IDS\";\n DataType[DataType[\"DATA_TYPE_ACCOUNT_GROUP_ID\"] = 6] = \"DATA_TYPE_ACCOUNT_GROUP_ID\";\n DataType[DataType[\"DATA_TYPE_ORDER_ID\"] = 7] = \"DATA_TYPE_ORDER_ID\";\n DataType[DataType[\"DATA_TYPE_SMB_USER_ID\"] = 8] = \"DATA_TYPE_SMB_USER_ID\";\n DataType[DataType[\"DATA_TYPE_FULFILLMENT_PROJECT_ID\"] = 9] = \"DATA_TYPE_FULFILLMENT_PROJECT_ID\";\n DataType[DataType[\"DATA_TYPE_EMAIL_ID\"] = 10] = \"DATA_TYPE_EMAIL_ID\";\n DataType[DataType[\"DATA_TYPE_EMAIL_EVENT\"] = 11] = \"DATA_TYPE_EMAIL_EVENT\";\n DataType[DataType[\"DATA_TYPE_OPPORTUNITY_ID\"] = 12] = \"DATA_TYPE_OPPORTUNITY_ID\";\n DataType[DataType[\"DATA_TYPE_JSON\"] = 13] = \"DATA_TYPE_JSON\";\n DataType[DataType[\"DATA_TYPE_COMPANY_ID\"] = 14] = \"DATA_TYPE_COMPANY_ID\";\n DataType[DataType[\"DATA_TYPE_CONTACT_ID\"] = 15] = \"DATA_TYPE_CONTACT_ID\";\n DataType[DataType[\"DATA_TYPE_PRODUCT\"] = 16] = \"DATA_TYPE_PRODUCT\";\n DataType[DataType[\"DATA_TYPE_TASK\"] = 17] = \"DATA_TYPE_TASK\";\n DataType[DataType[\"DATA_TYPE_CRM_NOTE\"] = 18] = \"DATA_TYPE_CRM_NOTE\";\n DataType[DataType[\"DATA_TYPE_CRM_EMAIL\"] = 19] = \"DATA_TYPE_CRM_EMAIL\";\n DataType[DataType[\"DATA_TYPE_CRM_MEETING\"] = 20] = \"DATA_TYPE_CRM_MEETING\";\n DataType[DataType[\"DATA_TYPE_CRM_CALL\"] = 21] = \"DATA_TYPE_CRM_CALL\";\n DataType[DataType[\"DATA_TYPE_CRM_SMS\"] = 22] = \"DATA_TYPE_CRM_SMS\";\n DataType[DataType[\"DATA_TYPE_CRM_LINKEDIN\"] = 23] = \"DATA_TYPE_CRM_LINKEDIN\";\n DataType[DataType[\"DATA_TYPE_CRM_INBOX\"] = 24] = \"DATA_TYPE_CRM_INBOX\";\n DataType[DataType[\"DATA_TYPE_INTEGRATION_CONNECTION\"] = 25] = \"DATA_TYPE_INTEGRATION_CONNECTION\";\n DataType[DataType[\"DATA_TYPE_NUMBER\"] = 26] = \"DATA_TYPE_NUMBER\";\n DataType[DataType[\"DATA_TYPE_CURRENCY\"] = 27] = \"DATA_TYPE_CURRENCY\";\n DataType[DataType[\"DATA_TYPE_DATETIME\"] = 28] = \"DATA_TYPE_DATETIME\";\n DataType[DataType[\"DATA_TYPE_CRM_OPPORTUNITY_ID\"] = 29] = \"DATA_TYPE_CRM_OPPORTUNITY_ID\";\n return DataType;\n}(DataType || {});\nvar ValidationType = /*#__PURE__*/function (ValidationType) {\n ValidationType[ValidationType[\"VALIDATION_TYPE_UNSPECIFIED\"] = 0] = \"VALIDATION_TYPE_UNSPECIFIED\";\n ValidationType[ValidationType[\"VALIDATION_TYPE_STREAM\"] = 1] = \"VALIDATION_TYPE_STREAM\";\n ValidationType[ValidationType[\"VALIDATION_TYPE_USER_PROVIDED\"] = 2] = \"VALIDATION_TYPE_USER_PROVIDED\";\n ValidationType[ValidationType[\"VALIDATION_TYPE_SYSTEM\"] = 3] = \"VALIDATION_TYPE_SYSTEM\";\n return ValidationType;\n}(ValidationType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar Context = /*#__PURE__*/function (Context) {\n Context[Context[\"AUTOMATION_CONTEXT_UNSET\"] = 0] = \"AUTOMATION_CONTEXT_UNSET\";\n Context[Context[\"AUTOMATION_CONTEXT_PARTNER\"] = 1] = \"AUTOMATION_CONTEXT_PARTNER\";\n Context[Context[\"AUTOMATION_CONTEXT_SMB\"] = 2] = \"AUTOMATION_CONTEXT_SMB\";\n return Context;\n}(Context || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar EntityType = /*#__PURE__*/function (EntityType) {\n EntityType[EntityType[\"ENTITY_TYPE_NOT_SPECIFIED\"] = 0] = \"ENTITY_TYPE_NOT_SPECIFIED\";\n EntityType[EntityType[\"ENTITY_TYPE_ACCOUNT_GROUP\"] = 1] = \"ENTITY_TYPE_ACCOUNT_GROUP\";\n EntityType[EntityType[\"ENTITY_TYPE_ORDER\"] = 2] = \"ENTITY_TYPE_ORDER\";\n EntityType[EntityType[\"ENTITY_TYPE_USER\"] = 3] = \"ENTITY_TYPE_USER\";\n EntityType[EntityType[\"ENTITY_TYPE_NO_ENTITY\"] = 4] = \"ENTITY_TYPE_NO_ENTITY\";\n EntityType[EntityType[\"ENTITY_TYPE_CONTACT\"] = 5] = \"ENTITY_TYPE_CONTACT\";\n EntityType[EntityType[\"ENTITY_TYPE_COMPANY\"] = 6] = \"ENTITY_TYPE_COMPANY\";\n return EntityType;\n}(EntityType || {});\nvar ErrorHandlingType = /*#__PURE__*/function (ErrorHandlingType) {\n ErrorHandlingType[ErrorHandlingType[\"ERROR_HANDLING_TYPE_UNDEFINED\"] = 0] = \"ERROR_HANDLING_TYPE_UNDEFINED\";\n ErrorHandlingType[ErrorHandlingType[\"ERROR_HANDLING_TYPE_STOP_ON_ERROR\"] = 1] = \"ERROR_HANDLING_TYPE_STOP_ON_ERROR\";\n ErrorHandlingType[ErrorHandlingType[\"ERROR_HANDLING_TYPE_CONTINUE_ON_ERROR\"] = 2] = \"ERROR_HANDLING_TYPE_CONTINUE_ON_ERROR\";\n return ErrorHandlingType;\n}(ErrorHandlingType || {});\nvar RunType = /*#__PURE__*/function (RunType) {\n RunType[RunType[\"RUN_TYPE_NOT_SPECIFIED\"] = 0] = \"RUN_TYPE_NOT_SPECIFIED\";\n RunType[RunType[\"RUN_TYPE_ONLY_ONCE\"] = 1] = \"RUN_TYPE_ONLY_ONCE\";\n RunType[RunType[\"RUN_TYPE_MULTIPLE\"] = 2] = \"RUN_TYPE_MULTIPLE\";\n RunType[RunType[\"RUN_TYPE_ONE_AT_A_TIME\"] = 3] = \"RUN_TYPE_ONE_AT_A_TIME\";\n return RunType;\n}(RunType || {});\nvar RunningState = /*#__PURE__*/function (RunningState) {\n RunningState[RunningState[\"RUNNING_STATE_NOT_SPECIFIED\"] = 0] = \"RUNNING_STATE_NOT_SPECIFIED\";\n RunningState[RunningState[\"RUNNING_STATE_RUNNING\"] = 1] = \"RUNNING_STATE_RUNNING\";\n RunningState[RunningState[\"RUNNING_STATE_STOPPED\"] = 2] = \"RUNNING_STATE_STOPPED\";\n RunningState[RunningState[\"RUNNING_STATE_DRAINING\"] = 3] = \"RUNNING_STATE_DRAINING\";\n return RunningState;\n}(RunningState || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar Stage = /*#__PURE__*/function (Stage) {\n Stage[Stage[\"STAGE_NOT_SPECIFIED\"] = 0] = \"STAGE_NOT_SPECIFIED\";\n Stage[Stage[\"STAGE_WORKFLOW_STEP\"] = 1] = \"STAGE_WORKFLOW_STEP\";\n Stage[Stage[\"STAGE_WORKFLOW_COMPLETED\"] = 2] = \"STAGE_WORKFLOW_COMPLETED\";\n Stage[Stage[\"STAGE_WORKFLOW_CANCELED\"] = 3] = \"STAGE_WORKFLOW_CANCELED\";\n Stage[Stage[\"STAGE_WORKFLOW_COMPLETED_FROM_ERROR\"] = 4] = \"STAGE_WORKFLOW_COMPLETED_FROM_ERROR\";\n Stage[Stage[\"STAGE_WORKFLOW_DID_NOT_RUN\"] = 5] = \"STAGE_WORKFLOW_DID_NOT_RUN\";\n Stage[Stage[\"STAGE_WORKFLOW_CONTINUED_FROM_ERROR\"] = 6] = \"STAGE_WORKFLOW_CONTINUED_FROM_ERROR\";\n Stage[Stage[\"STAGE_WORKFLOW_CONTINUED\"] = 7] = \"STAGE_WORKFLOW_CONTINUED\";\n return Stage;\n}(Stage || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar FlattenedConfigDataType = /*#__PURE__*/function (FlattenedConfigDataType) {\n FlattenedConfigDataType[FlattenedConfigDataType[\"FLATTENED_CONFIG_DATA_TYPE_UNSET\"] = 0] = \"FLATTENED_CONFIG_DATA_TYPE_UNSET\";\n FlattenedConfigDataType[FlattenedConfigDataType[\"FLATTENED_CONFIG_DATA_TYPE_STRUCT\"] = 1] = \"FLATTENED_CONFIG_DATA_TYPE_STRUCT\";\n FlattenedConfigDataType[FlattenedConfigDataType[\"FLATTENED_CONFIG_DATA_TYPE_STRING\"] = 2] = \"FLATTENED_CONFIG_DATA_TYPE_STRING\";\n FlattenedConfigDataType[FlattenedConfigDataType[\"FLATTENED_CONFIG_DATA_TYPE_INT\"] = 3] = \"FLATTENED_CONFIG_DATA_TYPE_INT\";\n FlattenedConfigDataType[FlattenedConfigDataType[\"FLATTENED_CONFIG_DATA_TYPE_FLOAT\"] = 4] = \"FLATTENED_CONFIG_DATA_TYPE_FLOAT\";\n FlattenedConfigDataType[FlattenedConfigDataType[\"FLATTENED_CONFIG_DATA_TYPE_BOOL\"] = 5] = \"FLATTENED_CONFIG_DATA_TYPE_BOOL\";\n FlattenedConfigDataType[FlattenedConfigDataType[\"FLATTENED_CONFIG_DATA_TYPE_TIME\"] = 6] = \"FLATTENED_CONFIG_DATA_TYPE_TIME\";\n return FlattenedConfigDataType;\n}(FlattenedConfigDataType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar PublishedState = /*#__PURE__*/function (PublishedState) {\n PublishedState[PublishedState[\"PUBLISHED_STATE_UNSPECIFIED\"] = 0] = \"PUBLISHED_STATE_UNSPECIFIED\";\n PublishedState[PublishedState[\"PUBLISHED_STATE_PUBLISHED\"] = 1] = \"PUBLISHED_STATE_PUBLISHED\";\n PublishedState[PublishedState[\"PUBLISHED_STATE_DRAFT\"] = 2] = \"PUBLISHED_STATE_DRAFT\";\n return PublishedState;\n}(PublishedState || {});\nvar TaskType = /*#__PURE__*/function (TaskType) {\n TaskType[TaskType[\"TASK_TYPE_UNSPECIFIED\"] = 0] = \"TASK_TYPE_UNSPECIFIED\";\n TaskType[TaskType[\"TASK_TYPE_ACTION\"] = 1] = \"TASK_TYPE_ACTION\";\n TaskType[TaskType[\"TASK_TYPE_TRIGGER\"] = 2] = \"TASK_TYPE_TRIGGER\";\n TaskType[TaskType[\"TASK_TYPE_BUILDING_BLOCKS\"] = 3] = \"TASK_TYPE_BUILDING_BLOCKS\";\n TaskType[TaskType[\"TASK_TYPE_FILTER\"] = 4] = \"TASK_TYPE_FILTER\";\n return TaskType;\n}(TaskType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar RateLimitUnit = /*#__PURE__*/function (RateLimitUnit) {\n RateLimitUnit[RateLimitUnit[\"RATE_LIMIT_UNIT_UNSPECIFIED\"] = 0] = \"RATE_LIMIT_UNIT_UNSPECIFIED\";\n RateLimitUnit[RateLimitUnit[\"RATE_LIMIT_UNIT_HOUR\"] = 1] = \"RATE_LIMIT_UNIT_HOUR\";\n RateLimitUnit[RateLimitUnit[\"RATE_LIMIT_UNIT_DAY\"] = 2] = \"RATE_LIMIT_UNIT_DAY\";\n return RateLimitUnit;\n}(RateLimitUnit || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar AutomationPublishedState = /*#__PURE__*/function (AutomationPublishedState) {\n AutomationPublishedState[AutomationPublishedState[\"AUTOMATION_PUBLISHED_STATE_NOT_SPECIFIED\"] = 0] = \"AUTOMATION_PUBLISHED_STATE_NOT_SPECIFIED\";\n AutomationPublishedState[AutomationPublishedState[\"AUTOMATION_PUBLISHED_STATE_PUBLISHED\"] = 1] = \"AUTOMATION_PUBLISHED_STATE_PUBLISHED\";\n AutomationPublishedState[AutomationPublishedState[\"AUTOMATION_PUBLISHED_STATE_DRAFT\"] = 2] = \"AUTOMATION_PUBLISHED_STATE_DRAFT\";\n return AutomationPublishedState;\n}(AutomationPublishedState || {});\nvar AutomationStatus = /*#__PURE__*/function (AutomationStatus) {\n AutomationStatus[AutomationStatus[\"AUTOMATION_STATUS_NOT_SPECIFIED\"] = 0] = \"AUTOMATION_STATUS_NOT_SPECIFIED\";\n AutomationStatus[AutomationStatus[\"AUTOMATION_STATUS_ON\"] = 1] = \"AUTOMATION_STATUS_ON\";\n AutomationStatus[AutomationStatus[\"AUTOMATION_STATUS_OFF\"] = 2] = \"AUTOMATION_STATUS_OFF\";\n return AutomationStatus;\n}(AutomationStatus || {});\nvar AutomationType = /*#__PURE__*/function (AutomationType) {\n AutomationType[AutomationType[\"AUTOMATION_TYPE_NOT_SPECIFIED\"] = 0] = \"AUTOMATION_TYPE_NOT_SPECIFIED\";\n AutomationType[AutomationType[\"AUTOMATION_TYPE_STANDARD\"] = 1] = \"AUTOMATION_TYPE_STANDARD\";\n AutomationType[AutomationType[\"AUTOMATION_TYPE_DEFAULT\"] = 2] = \"AUTOMATION_TYPE_DEFAULT\";\n AutomationType[AutomationType[\"AUTOMATION_TYPE_TEMPLATE\"] = 3] = \"AUTOMATION_TYPE_TEMPLATE\";\n AutomationType[AutomationType[\"AUTOMATION_TYPE_SNIPPET\"] = 4] = \"AUTOMATION_TYPE_SNIPPET\";\n return AutomationType;\n}(AutomationType || {});\nvar DefaultAutomationStatus = /*#__PURE__*/function (DefaultAutomationStatus) {\n DefaultAutomationStatus[DefaultAutomationStatus[\"LIST_DEFAULT_AUTOMATIONS_FOR_PARTNER_REQUEST_DEFAULT_AUTOMATION_STATUS_ON\"] = 0] = \"LIST_DEFAULT_AUTOMATIONS_FOR_PARTNER_REQUEST_DEFAULT_AUTOMATION_STATUS_ON\";\n DefaultAutomationStatus[DefaultAutomationStatus[\"LIST_DEFAULT_AUTOMATIONS_FOR_PARTNER_REQUEST_DEFAULT_AUTOMATION_STATUS_OFF\"] = 1] = \"LIST_DEFAULT_AUTOMATIONS_FOR_PARTNER_REQUEST_DEFAULT_AUTOMATION_STATUS_OFF\";\n return DefaultAutomationStatus;\n}(DefaultAutomationStatus || {});\n// *********************************\n\nfunction enumStringToValue$a(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass InputParameter {\n static fromProto(proto) {\n let m = new InputParameter();\n m = Object.assign(m, proto);\n if (proto.settings) {\n m.settings = Parameter.fromProto(proto.settings);\n }\n if (proto.validationType) {\n m.validationType = enumStringToValue$a(ValidationType, proto.validationType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.settings !== 'undefined' && this.settings !== null) {\n toReturn['settings'] = 'toApiJson' in this.settings ? this.settings.toApiJson() : this.settings;\n }\n if (typeof this.required !== 'undefined') {\n toReturn['required'] = this.required;\n }\n if (typeof this.path !== 'undefined') {\n toReturn['path'] = this.path;\n }\n if (typeof this.validationType !== 'undefined') {\n toReturn['validationType'] = this.validationType;\n }\n return toReturn;\n }\n}\nclass OutputParameter {\n static fromProto(proto) {\n let m = new OutputParameter();\n m = Object.assign(m, proto);\n if (proto.settings) {\n m.settings = Parameter.fromProto(proto.settings);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.settings !== 'undefined' && this.settings !== null) {\n toReturn['settings'] = 'toApiJson' in this.settings ? this.settings.toApiJson() : this.settings;\n }\n if (typeof this.optional !== 'undefined') {\n toReturn['optional'] = this.optional;\n }\n if (typeof this.isEntity !== 'undefined') {\n toReturn['isEntity'] = this.isEntity;\n }\n if (typeof this.path !== 'undefined') {\n toReturn['path'] = this.path;\n }\n return toReturn;\n }\n}\nclass Parameter {\n static fromProto(proto) {\n let m = new Parameter();\n m = Object.assign(m, proto);\n if (proto.dataType) {\n m.dataType = enumStringToValue$a(DataType, proto.dataType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.dataType !== 'undefined') {\n toReturn['dataType'] = this.dataType;\n }\n if (typeof this.repeated !== 'undefined') {\n toReturn['repeated'] = this.repeated;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$9(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Automation {\n static fromProto(proto) {\n let m = new Automation();\n m = Object.assign(m, proto);\n if (proto.runningState) {\n m.runningState = enumStringToValue$9(RunningState, proto.runningState);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n if (proto.workflow) {\n m.workflow = proto.workflow.map(WorkflowStep.fromProto);\n }\n if (proto.triggerStep) {\n m.triggerStep = WorkflowStep.fromProto(proto.triggerStep);\n }\n if (proto.settings) {\n m.settings = AutomationSettings.fromProto(proto.settings);\n }\n if (proto.triggerFilters) {\n m.triggerFilters = proto.triggerFilters.map(WorkflowStep.fromProto);\n }\n if (proto.runningVersion) {\n m.runningVersion = new Date(proto.runningVersion);\n }\n if (proto.templatePublishedTime) {\n m.templatePublishedTime = new Date(proto.templatePublishedTime);\n }\n if (proto.defaultAutomationPublishedTime) {\n m.defaultAutomationPublishedTime = new Date(proto.defaultAutomationPublishedTime);\n }\n if (proto.entityType) {\n m.entityType = enumStringToValue$9(EntityType, proto.entityType);\n }\n if (proto.token) {\n m.token = Token.fromProto(proto.token);\n }\n if (proto.context) {\n m.context = enumStringToValue$9(Context, proto.context);\n }\n if (proto.groups) {\n m.groups = proto.groups.map(Group.fromProto);\n }\n if (proto.snippetAutomationPublishedTime) {\n m.snippetAutomationPublishedTime = new Date(proto.snippetAutomationPublishedTime);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.triggerDefinitionId !== 'undefined') {\n toReturn['triggerDefinitionId'] = this.triggerDefinitionId;\n }\n if (typeof this.triggerSubDefinitionId !== 'undefined') {\n toReturn['triggerSubDefinitionId'] = this.triggerSubDefinitionId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.runningState !== 'undefined') {\n toReturn['runningState'] = this.runningState;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n if (typeof this.workflow !== 'undefined' && this.workflow !== null) {\n toReturn['workflow'] = 'toApiJson' in this.workflow ? this.workflow.toApiJson() : this.workflow;\n }\n if (typeof this.triggerStep !== 'undefined' && this.triggerStep !== null) {\n toReturn['triggerStep'] = 'toApiJson' in this.triggerStep ? this.triggerStep.toApiJson() : this.triggerStep;\n }\n if (typeof this.lastEditedBy !== 'undefined') {\n toReturn['lastEditedBy'] = this.lastEditedBy;\n }\n if (typeof this.settings !== 'undefined' && this.settings !== null) {\n toReturn['settings'] = 'toApiJson' in this.settings ? this.settings.toApiJson() : this.settings;\n }\n if (typeof this.triggerFilters !== 'undefined' && this.triggerFilters !== null) {\n toReturn['triggerFilters'] = 'toApiJson' in this.triggerFilters ? this.triggerFilters.toApiJson() : this.triggerFilters;\n }\n if (typeof this.runningVersion !== 'undefined' && this.runningVersion !== null) {\n toReturn['runningVersion'] = 'toApiJson' in this.runningVersion ? this.runningVersion.toApiJson() : this.runningVersion;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.isTemplate !== 'undefined') {\n toReturn['isTemplate'] = this.isTemplate;\n }\n if (typeof this.templatePublishedTime !== 'undefined' && this.templatePublishedTime !== null) {\n toReturn['templatePublishedTime'] = 'toApiJson' in this.templatePublishedTime ? this.templatePublishedTime.toApiJson() : this.templatePublishedTime;\n }\n if (typeof this.isDefaultAutomation !== 'undefined') {\n toReturn['isDefaultAutomation'] = this.isDefaultAutomation;\n }\n if (typeof this.defaultAutomationPublishedTime !== 'undefined' && this.defaultAutomationPublishedTime !== null) {\n toReturn['defaultAutomationPublishedTime'] = 'toApiJson' in this.defaultAutomationPublishedTime ? this.defaultAutomationPublishedTime.toApiJson() : this.defaultAutomationPublishedTime;\n }\n if (typeof this.originTemplateId !== 'undefined') {\n toReturn['originTemplateId'] = this.originTemplateId;\n }\n if (typeof this.originDefaultAutomationId !== 'undefined') {\n toReturn['originDefaultAutomationId'] = this.originDefaultAutomationId;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.hidden !== 'undefined') {\n toReturn['hidden'] = this.hidden;\n }\n if (typeof this.entityType !== 'undefined') {\n toReturn['entityType'] = this.entityType;\n }\n if (typeof this.token !== 'undefined' && this.token !== null) {\n toReturn['token'] = 'toApiJson' in this.token ? this.token.toApiJson() : this.token;\n }\n if (typeof this.context !== 'undefined') {\n toReturn['context'] = this.context;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.externalId !== 'undefined') {\n toReturn['externalId'] = this.externalId;\n }\n if (typeof this.groups !== 'undefined' && this.groups !== null) {\n toReturn['groups'] = 'toApiJson' in this.groups ? this.groups.toApiJson() : this.groups;\n }\n if (typeof this.isSnippetAutomation !== 'undefined') {\n toReturn['isSnippetAutomation'] = this.isSnippetAutomation;\n }\n if (typeof this.snippetAutomationPublishedTime !== 'undefined' && this.snippetAutomationPublishedTime !== null) {\n toReturn['snippetAutomationPublishedTime'] = 'toApiJson' in this.snippetAutomationPublishedTime ? this.snippetAutomationPublishedTime.toApiJson() : this.snippetAutomationPublishedTime;\n }\n return toReturn;\n }\n}\nclass AutomationSettings {\n static fromProto(proto) {\n let m = new AutomationSettings();\n m = Object.assign(m, proto);\n if (proto.runType) {\n m.runType = enumStringToValue$9(RunType, proto.runType);\n }\n if (proto.errorHandlingType) {\n m.errorHandlingType = enumStringToValue$9(ErrorHandlingType, proto.errorHandlingType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.runType !== 'undefined') {\n toReturn['runType'] = this.runType;\n }\n if (typeof this.errorHandlingType !== 'undefined') {\n toReturn['errorHandlingType'] = this.errorHandlingType;\n }\n if (typeof this.timeZone !== 'undefined') {\n toReturn['timeZone'] = this.timeZone;\n }\n return toReturn;\n }\n}\nclass Group {\n static fromProto(proto) {\n let m = new Group();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n return toReturn;\n }\n}\nclass SleepWaitConditions {\n static fromProto(proto) {\n let m = new SleepWaitConditions();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.weekdaySelection !== 'undefined') {\n toReturn['weekdaySelection'] = this.weekdaySelection;\n }\n if (typeof this.timeRangeStartHour !== 'undefined') {\n toReturn['timeRangeStartHour'] = this.timeRangeStartHour;\n }\n if (typeof this.timeRangeStartMinute !== 'undefined') {\n toReturn['timeRangeStartMinute'] = this.timeRangeStartMinute;\n }\n if (typeof this.timeRangeEndHour !== 'undefined') {\n toReturn['timeRangeEndHour'] = this.timeRangeEndHour;\n }\n if (typeof this.timeRangeEndMinute !== 'undefined') {\n toReturn['timeRangeEndMinute'] = this.timeRangeEndMinute;\n }\n if (typeof this.dayOfMonthSelection !== 'undefined') {\n toReturn['dayOfMonthSelection'] = this.dayOfMonthSelection;\n }\n return toReturn;\n }\n}\nclass Token {\n static fromProto(proto) {\n let m = new Token();\n m = Object.assign(m, proto);\n if (proto.refreshTokenExpiry) {\n m.refreshTokenExpiry = new Date(proto.refreshTokenExpiry);\n }\n if (proto.brokenTime) {\n m.brokenTime = new Date(proto.brokenTime);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.scopes !== 'undefined') {\n toReturn['scopes'] = this.scopes;\n }\n if (typeof this.refreshTokenExpiry !== 'undefined' && this.refreshTokenExpiry !== null) {\n toReturn['refreshTokenExpiry'] = 'toApiJson' in this.refreshTokenExpiry ? this.refreshTokenExpiry.toApiJson() : this.refreshTokenExpiry;\n }\n if (typeof this.brokenTime !== 'undefined' && this.brokenTime !== null) {\n toReturn['brokenTime'] = 'toApiJson' in this.brokenTime ? this.brokenTime.toApiJson() : this.brokenTime;\n }\n return toReturn;\n }\n}\nclass WaitForTriggerFilter {\n static fromProto(proto) {\n let m = new WaitForTriggerFilter();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass WorkflowStep {\n static fromProto(proto) {\n let m = new WorkflowStep();\n m = Object.assign(m, proto);\n if (proto.choices) {\n m.choices = Choices.fromProto(proto.choices);\n }\n if (proto.sleep) {\n m.sleep = parseInt(proto.sleep, 10);\n }\n if (proto.customOutputParameters) {\n m.customOutputParameters = proto.customOutputParameters.map(OutputParameter.fromProto);\n }\n if (proto.waitForTriggerFilter) {\n m.waitForTriggerFilter = WaitForTriggerFilter.fromProto(proto.waitForTriggerFilter);\n }\n if (proto.sleepWaitConditions) {\n m.sleepWaitConditions = SleepWaitConditions.fromProto(proto.sleepWaitConditions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.taskDefinitionId !== 'undefined') {\n toReturn['taskDefinitionId'] = this.taskDefinitionId;\n }\n if (typeof this.data !== 'undefined') {\n toReturn['data'] = this.data;\n }\n if (typeof this.choices !== 'undefined' && this.choices !== null) {\n toReturn['choices'] = 'toApiJson' in this.choices ? this.choices.toApiJson() : this.choices;\n }\n if (typeof this.sleep !== 'undefined') {\n toReturn['sleep'] = this.sleep;\n }\n if (typeof this.waitForTriggerDefinitionId !== 'undefined') {\n toReturn['waitForTriggerDefinitionId'] = this.waitForTriggerDefinitionId;\n }\n if (typeof this.waitForTriggerTaskDefinitionId !== 'undefined') {\n toReturn['waitForTriggerTaskDefinitionId'] = this.waitForTriggerTaskDefinitionId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.customOutputParameters !== 'undefined' && this.customOutputParameters !== null) {\n toReturn['customOutputParameters'] = 'toApiJson' in this.customOutputParameters ? this.customOutputParameters.toApiJson() : this.customOutputParameters;\n }\n if (typeof this.waitForTriggerFilter !== 'undefined' && this.waitForTriggerFilter !== null) {\n toReturn['waitForTriggerFilter'] = 'toApiJson' in this.waitForTriggerFilter ? this.waitForTriggerFilter.toApiJson() : this.waitForTriggerFilter;\n }\n if (typeof this.clearedDataFlag !== 'undefined') {\n toReturn['clearedDataFlag'] = this.clearedDataFlag;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.sleepWaitConditions !== 'undefined' && this.sleepWaitConditions !== null) {\n toReturn['sleepWaitConditions'] = 'toApiJson' in this.sleepWaitConditions ? this.sleepWaitConditions.toApiJson() : this.sleepWaitConditions;\n }\n if (typeof this.groupId !== 'undefined') {\n toReturn['groupId'] = this.groupId;\n }\n return toReturn;\n }\n}\nclass WorkflowStepOutputParameterContainer {\n static fromProto(proto) {\n let m = new WorkflowStepOutputParameterContainer();\n m = Object.assign(m, proto);\n if (proto.workflowStep) {\n m.workflowStep = WorkflowStep.fromProto(proto.workflowStep);\n }\n if (proto.outputParameters) {\n m.outputParameters = proto.outputParameters.map(OutputParameter.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.workflowStep !== 'undefined' && this.workflowStep !== null) {\n toReturn['workflowStep'] = 'toApiJson' in this.workflowStep ? this.workflowStep.toApiJson() : this.workflowStep;\n }\n if (typeof this.outputParameters !== 'undefined' && this.outputParameters !== null) {\n toReturn['outputParameters'] = 'toApiJson' in this.outputParameters ? this.outputParameters.toApiJson() : this.outputParameters;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$8(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AutomationConfiguration {\n static fromProto(proto) {\n let m = new AutomationConfiguration();\n m = Object.assign(m, proto);\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.disabledMarkets !== 'undefined') {\n toReturn['disabledMarkets'] = this.disabledMarkets;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n return toReturn;\n }\n}\nclass AutomationConfigurationV2 {\n static fromProto(proto) {\n let m = new AutomationConfigurationV2();\n m = Object.assign(m, proto);\n if (proto.context) {\n m.context = enumStringToValue$8(Context, proto.context);\n }\n if (proto.disabled) {\n m.disabled = new Date(proto.disabled);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.context !== 'undefined') {\n toReturn['context'] = this.context;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.disabled !== 'undefined' && this.disabled !== null) {\n toReturn['disabled'] = 'toApiJson' in this.disabled ? this.disabled.toApiJson() : this.disabled;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n return toReturn;\n }\n}\nclass AutomationConfigurationV2Identifier {\n static fromProto(proto) {\n let m = new AutomationConfigurationV2Identifier();\n m = Object.assign(m, proto);\n if (proto.context) {\n m.context = enumStringToValue$8(Context, proto.context);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.context !== 'undefined') {\n toReturn['context'] = this.context;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$7(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AutomationSubscription {\n static fromProto(proto) {\n let m = new AutomationSubscription();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$6(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Activity {\n static fromProto(proto) {\n let m = new Activity();\n m = Object.assign(m, proto);\n if (proto.error) {\n m.error = Error.fromProto(proto.error);\n }\n if (proto.startedProcessing) {\n m.startedProcessing = new Date(proto.startedProcessing);\n }\n if (proto.completedProcessing) {\n m.completedProcessing = new Date(proto.completedProcessing);\n }\n if (proto.workflowStep) {\n m.workflowStep = WorkflowStep.fromProto(proto.workflowStep);\n }\n if (proto.nextWorkflowStep) {\n m.nextWorkflowStep = WorkflowStep.fromProto(proto.nextWorkflowStep);\n }\n if (proto.stage) {\n m.stage = enumStringToValue$6(Stage, proto.stage);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.entityId !== 'undefined') {\n toReturn['entityId'] = this.entityId;\n }\n if (typeof this.runId !== 'undefined') {\n toReturn['runId'] = this.runId;\n }\n if (typeof this.error !== 'undefined' && this.error !== null) {\n toReturn['error'] = 'toApiJson' in this.error ? this.error.toApiJson() : this.error;\n }\n if (typeof this.startedProcessing !== 'undefined' && this.startedProcessing !== null) {\n toReturn['startedProcessing'] = 'toApiJson' in this.startedProcessing ? this.startedProcessing.toApiJson() : this.startedProcessing;\n }\n if (typeof this.completedProcessing !== 'undefined' && this.completedProcessing !== null) {\n toReturn['completedProcessing'] = 'toApiJson' in this.completedProcessing ? this.completedProcessing.toApiJson() : this.completedProcessing;\n }\n if (typeof this.workflowStep !== 'undefined' && this.workflowStep !== null) {\n toReturn['workflowStep'] = 'toApiJson' in this.workflowStep ? this.workflowStep.toApiJson() : this.workflowStep;\n }\n if (typeof this.inputData !== 'undefined') {\n toReturn['inputData'] = this.inputData;\n }\n if (typeof this.outputData !== 'undefined') {\n toReturn['outputData'] = this.outputData;\n }\n if (typeof this.activityData !== 'undefined') {\n toReturn['activityData'] = this.activityData;\n }\n if (typeof this.nextWorkflowStep !== 'undefined' && this.nextWorkflowStep !== null) {\n toReturn['nextWorkflowStep'] = 'toApiJson' in this.nextWorkflowStep ? this.nextWorkflowStep.toApiJson() : this.nextWorkflowStep;\n }\n if (typeof this.stage !== 'undefined') {\n toReturn['stage'] = this.stage;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.waitForTriggerDefinitionId !== 'undefined') {\n toReturn['waitForTriggerDefinitionId'] = this.waitForTriggerDefinitionId;\n }\n if (typeof this.triggerData !== 'undefined') {\n toReturn['triggerData'] = this.triggerData;\n }\n if (typeof this.endRunRequested !== 'undefined') {\n toReturn['endRunRequested'] = this.endRunRequested;\n }\n if (typeof this.mainRunId !== 'undefined') {\n toReturn['mainRunId'] = this.mainRunId;\n }\n if (typeof this.stepExecutionUuid !== 'undefined') {\n toReturn['stepExecutionUuid'] = this.stepExecutionUuid;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass Error {\n static fromProto(proto) {\n let m = new Error();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.code !== 'undefined') {\n toReturn['code'] = this.code;\n }\n if (typeof this.humanReadableMessage !== 'undefined') {\n toReturn['humanReadableMessage'] = this.humanReadableMessage;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$5(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass EventTriggerDefinition {\n static fromProto(proto) {\n let m = new EventTriggerDefinition();\n m = Object.assign(m, proto);\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n if (proto.flattenedConfig) {\n m.flattenedConfig = FlattenedConfig.fromProto(proto.flattenedConfig);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.eventTypeId !== 'undefined') {\n toReturn['eventTypeId'] = this.eventTypeId;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.parametersPaths !== 'undefined') {\n toReturn['parametersPaths'] = this.parametersPaths;\n }\n if (typeof this.triggerContextIdFormat !== 'undefined') {\n toReturn['triggerContextIdFormat'] = this.triggerContextIdFormat;\n }\n if (typeof this.lastEditedBy !== 'undefined') {\n toReturn['lastEditedBy'] = this.lastEditedBy;\n }\n if (typeof this.parameterFilterKeys !== 'undefined') {\n toReturn['parameterFilterKeys'] = this.parameterFilterKeys;\n }\n if (typeof this.flattenedConfig !== 'undefined' && this.flattenedConfig !== null) {\n toReturn['flattenedConfig'] = 'toApiJson' in this.flattenedConfig ? this.flattenedConfig.toApiJson() : this.flattenedConfig;\n }\n return toReturn;\n }\n}\nclass FlattenedConfig {\n static fromProto(proto) {\n let m = new FlattenedConfig();\n m = Object.assign(m, proto);\n if (proto.dataType) {\n m.dataType = enumStringToValue$5(FlattenedConfigDataType, proto.dataType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sourcePath !== 'undefined') {\n toReturn['sourcePath'] = this.sourcePath;\n }\n if (typeof this.dataType !== 'undefined') {\n toReturn['dataType'] = this.dataType;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$4(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AppKey {\n static fromProto(proto) {\n let m = new AppKey();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.appId !== 'undefined') {\n toReturn['appId'] = this.appId;\n }\n if (typeof this.editionId !== 'undefined') {\n toReturn['editionId'] = this.editionId;\n }\n return toReturn;\n }\n}\nclass CallOptions {\n static fromProto(proto) {\n let m = new CallOptions();\n m = Object.assign(m, proto);\n if (proto.retryPolicyOptions) {\n m.retryPolicyOptions = proto.retryPolicyOptions.map(RetryPolicy.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.retryPolicyOptions !== 'undefined' && this.retryPolicyOptions !== null) {\n toReturn['retryPolicyOptions'] = 'toApiJson' in this.retryPolicyOptions ? this.retryPolicyOptions.toApiJson() : this.retryPolicyOptions;\n }\n return toReturn;\n }\n}\nclass Resource {\n static fromProto(proto) {\n let m = new Resource();\n m = Object.assign(m, proto);\n if (proto.callOptions) {\n m.callOptions = CallOptions.fromProto(proto.callOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.method !== 'undefined') {\n toReturn['method'] = this.method;\n }\n if (typeof this.isGetter !== 'undefined') {\n toReturn['isGetter'] = this.isGetter;\n }\n if (typeof this.callOptions !== 'undefined' && this.callOptions !== null) {\n toReturn['callOptions'] = 'toApiJson' in this.callOptions ? this.callOptions.toApiJson() : this.callOptions;\n }\n return toReturn;\n }\n}\nclass RetryPolicy {\n static fromProto(proto) {\n let m = new RetryPolicy();\n m = Object.assign(m, proto);\n if (proto.maximumAttempts) {\n m.maximumAttempts = parseInt(proto.maximumAttempts, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.statusCode !== 'undefined') {\n toReturn['statusCode'] = this.statusCode;\n }\n if (typeof this.maximumAttempts !== 'undefined') {\n toReturn['maximumAttempts'] = this.maximumAttempts;\n }\n return toReturn;\n }\n}\nclass TaskDefinition {\n static fromProto(proto) {\n let m = new TaskDefinition();\n m = Object.assign(m, proto);\n if (proto.resource) {\n m.resource = Resource.fromProto(proto.resource);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n if (proto.inputParameters) {\n m.inputParameters = proto.inputParameters.map(InputParameter.fromProto);\n }\n if (proto.outputParameters) {\n m.outputParameters = proto.outputParameters.map(OutputParameter.fromProto);\n }\n if (proto.taskType) {\n m.taskType = enumStringToValue$4(TaskType, proto.taskType);\n }\n if (proto.publishedState) {\n m.publishedState = enumStringToValue$4(PublishedState, proto.publishedState);\n }\n if (proto.preProcessors) {\n m.preProcessors = proto.preProcessors.map(WorkflowStep.fromProto);\n }\n if (proto.supportedContexts) {\n m.supportedContexts = proto.supportedContexts.map(v => enumStringToValue$4(Context, v));\n }\n if (proto.choices) {\n m.choices = Choices.fromProto(proto.choices);\n }\n if (proto.requiredApps) {\n m.requiredApps = proto.requiredApps.map(AppKey.fromProto);\n }\n if (proto.staticValidationRules) {\n m.staticValidationRules = Choices.fromProto(proto.staticValidationRules);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.resource !== 'undefined' && this.resource !== null) {\n toReturn['resource'] = 'toApiJson' in this.resource ? this.resource.toApiJson() : this.resource;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n if (typeof this.inputParameters !== 'undefined' && this.inputParameters !== null) {\n toReturn['inputParameters'] = 'toApiJson' in this.inputParameters ? this.inputParameters.toApiJson() : this.inputParameters;\n }\n if (typeof this.outputParameters !== 'undefined' && this.outputParameters !== null) {\n toReturn['outputParameters'] = 'toApiJson' in this.outputParameters ? this.outputParameters.toApiJson() : this.outputParameters;\n }\n if (typeof this.taskType !== 'undefined') {\n toReturn['taskType'] = this.taskType;\n }\n if (typeof this.internal !== 'undefined') {\n toReturn['internal'] = this.internal;\n }\n if (typeof this.publishedState !== 'undefined') {\n toReturn['publishedState'] = this.publishedState;\n }\n if (typeof this.requiredScopes !== 'undefined') {\n toReturn['requiredScopes'] = this.requiredScopes;\n }\n if (typeof this.availableInDefaultAutomations !== 'undefined') {\n toReturn['availableInDefaultAutomations'] = this.availableInDefaultAutomations;\n }\n if (typeof this.requiredSubscriptionFeatures !== 'undefined') {\n toReturn['requiredSubscriptionFeatures'] = this.requiredSubscriptionFeatures;\n }\n if (typeof this.lastEditedBy !== 'undefined') {\n toReturn['lastEditedBy'] = this.lastEditedBy;\n }\n if (typeof this.eventTypeId !== 'undefined') {\n toReturn['eventTypeId'] = this.eventTypeId;\n }\n if (typeof this.preProcessors !== 'undefined' && this.preProcessors !== null) {\n toReturn['preProcessors'] = 'toApiJson' in this.preProcessors ? this.preProcessors.toApiJson() : this.preProcessors;\n }\n if (typeof this.marketReliant !== 'undefined') {\n toReturn['marketReliant'] = this.marketReliant;\n }\n if (typeof this.eventSubTypeId !== 'undefined') {\n toReturn['eventSubTypeId'] = this.eventSubTypeId;\n }\n if (typeof this.supportedContexts !== 'undefined') {\n toReturn['supportedContexts'] = this.supportedContexts;\n }\n if (typeof this.choices !== 'undefined' && this.choices !== null) {\n toReturn['choices'] = 'toApiJson' in this.choices ? this.choices.toApiJson() : this.choices;\n }\n if (typeof this.requiredApps !== 'undefined' && this.requiredApps !== null) {\n toReturn['requiredApps'] = 'toApiJson' in this.requiredApps ? this.requiredApps.toApiJson() : this.requiredApps;\n }\n if (typeof this.staticValidationRules !== 'undefined' && this.staticValidationRules !== null) {\n toReturn['staticValidationRules'] = 'toApiJson' in this.staticValidationRules ? this.staticValidationRules.toApiJson() : this.staticValidationRules;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$3(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass RateLimit {\n static fromProto(proto) {\n let m = new RateLimit();\n m = Object.assign(m, proto);\n if (proto.unit) {\n m.unit = enumStringToValue$3(RateLimitUnit, proto.unit);\n }\n if (proto.amount) {\n m.amount = parseInt(proto.amount, 10);\n }\n if (proto.limit) {\n m.limit = parseInt(proto.limit, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.runningVersion !== 'undefined') {\n toReturn['runningVersion'] = this.runningVersion;\n }\n if (typeof this.stepId !== 'undefined') {\n toReturn['stepId'] = this.stepId;\n }\n if (typeof this.entityId !== 'undefined') {\n toReturn['entityId'] = this.entityId;\n }\n if (typeof this.unit !== 'undefined') {\n toReturn['unit'] = this.unit;\n }\n if (typeof this.amount !== 'undefined') {\n toReturn['amount'] = this.amount;\n }\n if (typeof this.limit !== 'undefined') {\n toReturn['limit'] = this.limit;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass FieldMask {\n static fromProto(proto) {\n let m = new FieldMask();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.paths !== 'undefined') {\n toReturn['paths'] = this.paths;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Access {\n static fromProto(proto) {\n let m = new Access();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.scope !== 'undefined') {\n toReturn['scope'] = this.scope;\n }\n if (typeof this.public !== 'undefined') {\n toReturn['public'] = this.public;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass SendTestWebhookRequestAdditionalFieldsEntry {\n static fromProto(proto) {\n let m = new SendTestWebhookRequestAdditionalFieldsEntry();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass ContinueAutomationFromStepRequest {\n static fromProto(proto) {\n let m = new ContinueAutomationFromStepRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.entityId !== 'undefined') {\n toReturn['entityId'] = this.entityId;\n }\n if (typeof this.previousWorkflowStepId !== 'undefined') {\n toReturn['previousWorkflowStepId'] = this.previousWorkflowStepId;\n }\n if (typeof this.previousRunId !== 'undefined') {\n toReturn['previousRunId'] = this.previousRunId;\n }\n if (typeof this.workflowStepIdToContinue !== 'undefined') {\n toReturn['workflowStepIdToContinue'] = this.workflowStepIdToContinue;\n }\n return toReturn;\n }\n}\nclass CopyAutomationRequest {\n static fromProto(proto) {\n let m = new CopyAutomationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.originalAutomationId !== 'undefined') {\n toReturn['originalAutomationId'] = this.originalAutomationId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass CopyAutomationResponse {\n static fromProto(proto) {\n let m = new CopyAutomationResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass CountRunningWorkflowsRequest {\n static fromProto(proto) {\n let m = new CountRunningWorkflowsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n return toReturn;\n }\n}\nclass CountRunningWorkflowsResponse {\n static fromProto(proto) {\n let m = new CountRunningWorkflowsResponse();\n m = Object.assign(m, proto);\n if (proto.count) {\n m.count = parseInt(proto.count, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n return toReturn;\n }\n}\nclass CreateAutomationRequest {\n static fromProto(proto) {\n let m = new CreateAutomationRequest();\n m = Object.assign(m, proto);\n if (proto.automation) {\n m.automation = Automation.fromProto(proto.automation);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automation !== 'undefined' && this.automation !== null) {\n toReturn['automation'] = 'toApiJson' in this.automation ? this.automation.toApiJson() : this.automation;\n }\n if (typeof this.sourceId !== 'undefined') {\n toReturn['sourceId'] = this.sourceId;\n }\n return toReturn;\n }\n}\nclass CreateAutomationResponse {\n static fromProto(proto) {\n let m = new CreateAutomationResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass CreateEventTriggerDefinitionRequest {\n static fromProto(proto) {\n let m = new CreateEventTriggerDefinitionRequest();\n m = Object.assign(m, proto);\n if (proto.eventTriggerDefinition) {\n m.eventTriggerDefinition = EventTriggerDefinition.fromProto(proto.eventTriggerDefinition);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.eventTriggerDefinition !== 'undefined' && this.eventTriggerDefinition !== null) {\n toReturn['eventTriggerDefinition'] = 'toApiJson' in this.eventTriggerDefinition ? this.eventTriggerDefinition.toApiJson() : this.eventTriggerDefinition;\n }\n return toReturn;\n }\n}\nclass CreateTaskDefinitionRequest {\n static fromProto(proto) {\n let m = new CreateTaskDefinitionRequest();\n m = Object.assign(m, proto);\n if (proto.taskDefinition) {\n m.taskDefinition = TaskDefinition.fromProto(proto.taskDefinition);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.taskDefinition !== 'undefined' && this.taskDefinition !== null) {\n toReturn['taskDefinition'] = 'toApiJson' in this.taskDefinition ? this.taskDefinition.toApiJson() : this.taskDefinition;\n }\n return toReturn;\n }\n}\nclass CreateTaskDefinitionResponse {\n static fromProto(proto) {\n let m = new CreateTaskDefinitionResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass DefaultAutomation {\n static fromProto(proto) {\n let m = new DefaultAutomation();\n m = Object.assign(m, proto);\n if (proto.defaultAutomation) {\n m.defaultAutomation = Automation.fromProto(proto.defaultAutomation);\n }\n if (proto.configuration) {\n m.configuration = AutomationConfigurationV2.fromProto(proto.configuration);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.defaultAutomation !== 'undefined' && this.defaultAutomation !== null) {\n toReturn['defaultAutomation'] = 'toApiJson' in this.defaultAutomation ? this.defaultAutomation.toApiJson() : this.defaultAutomation;\n }\n if (typeof this.configuration !== 'undefined' && this.configuration !== null) {\n toReturn['configuration'] = 'toApiJson' in this.configuration ? this.configuration.toApiJson() : this.configuration;\n }\n return toReturn;\n }\n}\nclass DefaultAutomationWithConfiguration {\n static fromProto(proto) {\n let m = new DefaultAutomationWithConfiguration();\n m = Object.assign(m, proto);\n if (proto.defaultAutomation) {\n m.defaultAutomation = Automation.fromProto(proto.defaultAutomation);\n }\n if (proto.configuration) {\n m.configuration = AutomationConfiguration.fromProto(proto.configuration);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.defaultAutomation !== 'undefined' && this.defaultAutomation !== null) {\n toReturn['defaultAutomation'] = 'toApiJson' in this.defaultAutomation ? this.defaultAutomation.toApiJson() : this.defaultAutomation;\n }\n if (typeof this.configuration !== 'undefined' && this.configuration !== null) {\n toReturn['configuration'] = 'toApiJson' in this.configuration ? this.configuration.toApiJson() : this.configuration;\n }\n return toReturn;\n }\n}\nclass DeleteAutomationRequest {\n static fromProto(proto) {\n let m = new DeleteAutomationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass DeleteConfigurationRequest {\n static fromProto(proto) {\n let m = new DeleteConfigurationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n return toReturn;\n }\n}\nclass DeleteEventTriggerDefinitionRequest {\n static fromProto(proto) {\n let m = new DeleteEventTriggerDefinitionRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.eventTypeId !== 'undefined') {\n toReturn['eventTypeId'] = this.eventTypeId;\n }\n return toReturn;\n }\n}\nclass DeleteTaskDefinitionRequest {\n static fromProto(proto) {\n let m = new DeleteTaskDefinitionRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass DisableAutomationConfigurationRequest {\n static fromProto(proto) {\n let m = new DisableAutomationConfigurationRequest();\n m = Object.assign(m, proto);\n if (proto.automationConfigurationId) {\n m.automationConfigurationId = AutomationConfigurationV2Identifier.fromProto(proto.automationConfigurationId);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationConfigurationId !== 'undefined' && this.automationConfigurationId !== null) {\n toReturn['automationConfigurationId'] = 'toApiJson' in this.automationConfigurationId ? this.automationConfigurationId.toApiJson() : this.automationConfigurationId;\n }\n return toReturn;\n }\n}\nclass DisableForMarketsRequest {\n static fromProto(proto) {\n let m = new DisableForMarketsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n return toReturn;\n }\n}\nclass EmitAutomationEventRequest {\n static fromProto(proto) {\n let m = new EmitAutomationEventRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.eventId !== 'undefined') {\n toReturn['eventId'] = this.eventId;\n }\n if (typeof this.eventData !== 'undefined') {\n toReturn['eventData'] = this.eventData;\n }\n return toReturn;\n }\n}\nclass EnableAutomationConfigurationRequest {\n static fromProto(proto) {\n let m = new EnableAutomationConfigurationRequest();\n m = Object.assign(m, proto);\n if (proto.automationConfigurationId) {\n m.automationConfigurationId = AutomationConfigurationV2Identifier.fromProto(proto.automationConfigurationId);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationConfigurationId !== 'undefined' && this.automationConfigurationId !== null) {\n toReturn['automationConfigurationId'] = 'toApiJson' in this.automationConfigurationId ? this.automationConfigurationId.toApiJson() : this.automationConfigurationId;\n }\n return toReturn;\n }\n}\nclass EnableForMarketsRequest {\n static fromProto(proto) {\n let m = new EnableForMarketsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n return toReturn;\n }\n}\nclass EndAutomationRunRequest {\n static fromProto(proto) {\n let m = new EndAutomationRunRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.runId !== 'undefined') {\n toReturn['runId'] = this.runId;\n }\n if (typeof this.entityId !== 'undefined') {\n toReturn['entityId'] = this.entityId;\n }\n if (typeof this.workflowStepId !== 'undefined') {\n toReturn['workflowStepId'] = this.workflowStepId;\n }\n if (typeof this.mainRunId !== 'undefined') {\n toReturn['mainRunId'] = this.mainRunId;\n }\n if (typeof this.stepExecutionUuid !== 'undefined') {\n toReturn['stepExecutionUuid'] = this.stepExecutionUuid;\n }\n return toReturn;\n }\n}\nclass ListAutomationsRequestV2Filters {\n static fromProto(proto) {\n let m = new ListAutomationsRequestV2Filters();\n m = Object.assign(m, proto);\n if (proto.context) {\n m.context = enumStringToValue(Context, proto.context);\n }\n if (proto.automationTypes) {\n m.automationTypes = proto.automationTypes.map(v => enumStringToValue(AutomationType, v));\n }\n if (proto.runningStates) {\n m.runningStates = proto.runningStates.map(v => enumStringToValue(RunningState, v));\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.context !== 'undefined') {\n toReturn['context'] = this.context;\n }\n if (typeof this.automationTypes !== 'undefined') {\n toReturn['automationTypes'] = this.automationTypes;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.runningStates !== 'undefined') {\n toReturn['runningStates'] = this.runningStates;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.triggerTaskDefinitionIds !== 'undefined') {\n toReturn['triggerTaskDefinitionIds'] = this.triggerTaskDefinitionIds;\n }\n if (typeof this.lastUpdatedBy !== 'undefined') {\n toReturn['lastUpdatedBy'] = this.lastUpdatedBy;\n }\n if (typeof this.tokenUserId !== 'undefined') {\n toReturn['tokenUserId'] = this.tokenUserId;\n }\n if (typeof this.parentNamespace !== 'undefined') {\n toReturn['parentNamespace'] = this.parentNamespace;\n }\n if (typeof this.excludePlatformAutomations !== 'undefined') {\n toReturn['excludePlatformAutomations'] = this.excludePlatformAutomations;\n }\n return toReturn;\n }\n}\nclass ListActivitiesCurrentlyWaitingRequestFilters {\n static fromProto(proto) {\n let m = new ListActivitiesCurrentlyWaitingRequestFilters();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.workflowStepId !== 'undefined') {\n toReturn['workflowStepId'] = this.workflowStepId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass ListAutomationRunsRequestFilters {\n static fromProto(proto) {\n let m = new ListAutomationRunsRequestFilters();\n m = Object.assign(m, proto);\n if (proto.stages) {\n m.stages = proto.stages.map(v => enumStringToValue(Stage, v));\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.entityId !== 'undefined') {\n toReturn['entityId'] = this.entityId;\n }\n if (typeof this.stages !== 'undefined') {\n toReturn['stages'] = this.stages;\n }\n if (typeof this.showDefault !== 'undefined') {\n toReturn['showDefault'] = this.showDefault;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass ListDefaultAutomationsForPartnerRequestFilters {\n static fromProto(proto) {\n let m = new ListDefaultAutomationsForPartnerRequestFilters();\n m = Object.assign(m, proto);\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(DefaultAutomationStatus, v));\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n return toReturn;\n }\n}\nclass ListSnippetsRequestFilters {\n static fromProto(proto) {\n let m = new ListSnippetsRequestFilters();\n m = Object.assign(m, proto);\n if (proto.context) {\n m.context = enumStringToValue(Context, proto.context);\n }\n if (proto.publishedStates) {\n m.publishedStates = proto.publishedStates.map(v => enumStringToValue(AutomationPublishedState, v));\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.parentNamespace !== 'undefined') {\n toReturn['parentNamespace'] = this.parentNamespace;\n }\n if (typeof this.context !== 'undefined') {\n toReturn['context'] = this.context;\n }\n if (typeof this.publishedStates !== 'undefined') {\n toReturn['publishedStates'] = this.publishedStates;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass ListActivitiesRequestFilters {\n static fromProto(proto) {\n let m = new ListActivitiesRequestFilters();\n m = Object.assign(m, proto);\n if (proto.stage) {\n m.stage = proto.stage.map(v => enumStringToValue(Stage, v));\n }\n if (proto.automationType) {\n m.automationType = enumStringToValue(AutomationType, proto.automationType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.runId !== 'undefined') {\n toReturn['runId'] = this.runId;\n }\n if (typeof this.entityId !== 'undefined') {\n toReturn['entityId'] = this.entityId;\n }\n if (typeof this.workflowStepId !== 'undefined') {\n toReturn['workflowStepId'] = this.workflowStepId;\n }\n if (typeof this.stage !== 'undefined') {\n toReturn['stage'] = this.stage;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n if (typeof this.latestPerAutomation !== 'undefined') {\n toReturn['latestPerAutomation'] = this.latestPerAutomation;\n }\n if (typeof this.automationType !== 'undefined') {\n toReturn['automationType'] = this.automationType;\n }\n if (typeof this.onlyErrors !== 'undefined') {\n toReturn['onlyErrors'] = this.onlyErrors;\n }\n if (typeof this.mainRunId !== 'undefined') {\n toReturn['mainRunId'] = this.mainRunId;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass ListTaskDefinitionsRequestFilters {\n static fromProto(proto) {\n let m = new ListTaskDefinitionsRequestFilters();\n m = Object.assign(m, proto);\n if (proto.taskType) {\n m.taskType = enumStringToValue(TaskType, proto.taskType);\n }\n if (proto.publishedState) {\n m.publishedState = enumStringToValue(PublishedState, proto.publishedState);\n }\n if (proto.waitForDataTypeScope) {\n m.waitForDataTypeScope = enumStringToValue(DataType, proto.waitForDataTypeScope);\n }\n if (proto.supportedContexts) {\n m.supportedContexts = proto.supportedContexts.map(v => enumStringToValue(Context, v));\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.taskType !== 'undefined') {\n toReturn['taskType'] = this.taskType;\n }\n if (typeof this.internal !== 'undefined') {\n toReturn['internal'] = this.internal;\n }\n if (typeof this.publishedState !== 'undefined') {\n toReturn['publishedState'] = this.publishedState;\n }\n if (typeof this.onlyAvailableInDefaultAutomations !== 'undefined') {\n toReturn['onlyAvailableInDefaultAutomations'] = this.onlyAvailableInDefaultAutomations;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.waitForDataTypeScope !== 'undefined') {\n toReturn['waitForDataTypeScope'] = this.waitForDataTypeScope;\n }\n if (typeof this.marketReliant !== 'undefined') {\n toReturn['marketReliant'] = this.marketReliant;\n }\n if (typeof this.supportedContexts !== 'undefined') {\n toReturn['supportedContexts'] = this.supportedContexts;\n }\n return toReturn;\n }\n}\nclass SearchManualAutomationsRequestFilters {\n static fromProto(proto) {\n let m = new SearchManualAutomationsRequestFilters();\n m = Object.assign(m, proto);\n if (proto.entityTypes) {\n m.entityTypes = proto.entityTypes.map(v => enumStringToValue(EntityType, v));\n }\n if (proto.context) {\n m.context = enumStringToValue(Context, proto.context);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.onlySalesRunnable !== 'undefined') {\n toReturn['onlySalesRunnable'] = this.onlySalesRunnable;\n }\n if (typeof this.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.entityTypes !== 'undefined') {\n toReturn['entityTypes'] = this.entityTypes;\n }\n if (typeof this.context !== 'undefined') {\n toReturn['context'] = this.context;\n }\n return toReturn;\n }\n}\nclass ListEventTriggerDefinitionRequestFilters {\n static fromProto(proto) {\n let m = new ListEventTriggerDefinitionRequestFilters();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass ListAutomationsRequestFilters {\n static fromProto(proto) {\n let m = new ListAutomationsRequestFilters();\n m = Object.assign(m, proto);\n if (proto.runningStates) {\n m.runningStates = proto.runningStates.map(v => enumStringToValue(RunningState, v));\n }\n if (proto.automationType) {\n m.automationType = enumStringToValue(AutomationType, proto.automationType);\n }\n if (proto.publishedStates) {\n m.publishedStates = proto.publishedStates.map(v => enumStringToValue(AutomationPublishedState, v));\n }\n if (proto.status) {\n m.status = proto.status.map(v => enumStringToValue(AutomationStatus, v));\n }\n if (proto.context) {\n m.context = enumStringToValue(Context, proto.context);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n if (typeof this.lastUpdatedBy !== 'undefined') {\n toReturn['lastUpdatedBy'] = this.lastUpdatedBy;\n }\n if (typeof this.includeDeleted !== 'undefined') {\n toReturn['includeDeleted'] = this.includeDeleted;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.runningStates !== 'undefined') {\n toReturn['runningStates'] = this.runningStates;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.automationType !== 'undefined') {\n toReturn['automationType'] = this.automationType;\n }\n if (typeof this.publishedStates !== 'undefined') {\n toReturn['publishedStates'] = this.publishedStates;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.workflowStepTaskDefinitionId !== 'undefined') {\n toReturn['workflowStepTaskDefinitionId'] = this.workflowStepTaskDefinitionId;\n }\n if (typeof this.triggerTaskDefinitionId !== 'undefined') {\n toReturn['triggerTaskDefinitionId'] = this.triggerTaskDefinitionId;\n }\n if (typeof this.tokenUserId !== 'undefined') {\n toReturn['tokenUserId'] = this.tokenUserId;\n }\n if (typeof this.context !== 'undefined') {\n toReturn['context'] = this.context;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass ListDefaultAutomationsRequestFilters {\n static fromProto(proto) {\n let m = new ListDefaultAutomationsRequestFilters();\n m = Object.assign(m, proto);\n if (proto.context) {\n m.context = enumStringToValue(Context, proto.context);\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(DefaultAutomationStatus, v));\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.context !== 'undefined') {\n toReturn['context'] = this.context;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass GetAutomationAccessRequirementsRequest {\n static fromProto(proto) {\n let m = new GetAutomationAccessRequirementsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n return toReturn;\n }\n}\nclass GetAutomationAccessRequirementsResponse {\n static fromProto(proto) {\n let m = new GetAutomationAccessRequirementsResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.successIds !== 'undefined') {\n toReturn['successIds'] = this.successIds;\n }\n if (typeof this.failedIds !== 'undefined') {\n toReturn['failedIds'] = this.failedIds;\n }\n return toReturn;\n }\n}\nclass GetAutomationConfigurationV2Request {\n static fromProto(proto) {\n let m = new GetAutomationConfigurationV2Request();\n m = Object.assign(m, proto);\n if (proto.automationConfigurationId) {\n m.automationConfigurationId = AutomationConfigurationV2Identifier.fromProto(proto.automationConfigurationId);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationConfigurationId !== 'undefined' && this.automationConfigurationId !== null) {\n toReturn['automationConfigurationId'] = 'toApiJson' in this.automationConfigurationId ? this.automationConfigurationId.toApiJson() : this.automationConfigurationId;\n }\n return toReturn;\n }\n}\nclass GetAutomationConfigurationV2Response {\n static fromProto(proto) {\n let m = new GetAutomationConfigurationV2Response();\n m = Object.assign(m, proto);\n if (proto.configuration) {\n m.configuration = AutomationConfigurationV2.fromProto(proto.configuration);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configuration !== 'undefined' && this.configuration !== null) {\n toReturn['configuration'] = 'toApiJson' in this.configuration ? this.configuration.toApiJson() : this.configuration;\n }\n return toReturn;\n }\n}\nclass GetAutomationRequest {\n static fromProto(proto) {\n let m = new GetAutomationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass GetAutomationResponse {\n static fromProto(proto) {\n let m = new GetAutomationResponse();\n m = Object.assign(m, proto);\n if (proto.automation) {\n m.automation = Automation.fromProto(proto.automation);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automation !== 'undefined' && this.automation !== null) {\n toReturn['automation'] = 'toApiJson' in this.automation ? this.automation.toApiJson() : this.automation;\n }\n return toReturn;\n }\n}\nclass GetAutomationTagsRequest {\n static fromProto(proto) {\n let m = new GetAutomationTagsRequest();\n m = Object.assign(m, proto);\n if (proto.automationType) {\n m.automationType = enumStringToValue(AutomationType, proto.automationType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n if (typeof this.automationType !== 'undefined') {\n toReturn['automationType'] = this.automationType;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass GetAutomationTagsResponse {\n static fromProto(proto) {\n let m = new GetAutomationTagsResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n return toReturn;\n }\n}\nclass GetConfigurationRequest {\n static fromProto(proto) {\n let m = new GetConfigurationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n return toReturn;\n }\n}\nclass GetConfigurationResponse {\n static fromProto(proto) {\n let m = new GetConfigurationResponse();\n m = Object.assign(m, proto);\n if (proto.configuration) {\n m.configuration = AutomationConfiguration.fromProto(proto.configuration);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configuration !== 'undefined' && this.configuration !== null) {\n toReturn['configuration'] = 'toApiJson' in this.configuration ? this.configuration.toApiJson() : this.configuration;\n }\n return toReturn;\n }\n}\nclass GetEventTriggerDefinitionRequest {\n static fromProto(proto) {\n let m = new GetEventTriggerDefinitionRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.eventTypeId !== 'undefined') {\n toReturn['eventTypeId'] = this.eventTypeId;\n }\n return toReturn;\n }\n}\nclass GetEventTriggerDefinitionResponse {\n static fromProto(proto) {\n let m = new GetEventTriggerDefinitionResponse();\n m = Object.assign(m, proto);\n if (proto.eventTriggerDefinition) {\n m.eventTriggerDefinition = EventTriggerDefinition.fromProto(proto.eventTriggerDefinition);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.eventTriggerDefinition !== 'undefined' && this.eventTriggerDefinition !== null) {\n toReturn['eventTriggerDefinition'] = 'toApiJson' in this.eventTriggerDefinition ? this.eventTriggerDefinition.toApiJson() : this.eventTriggerDefinition;\n }\n return toReturn;\n }\n}\nclass GetMultiAutomationsRequest {\n static fromProto(proto) {\n let m = new GetMultiAutomationsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.automationIds !== 'undefined') {\n toReturn['automationIds'] = this.automationIds;\n }\n return toReturn;\n }\n}\nclass GetMultiAutomationsResponse {\n static fromProto(proto) {\n let m = new GetMultiAutomationsResponse();\n m = Object.assign(m, proto);\n if (proto.automations) {\n m.automations = proto.automations.map(Automation.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automations !== 'undefined' && this.automations !== null) {\n toReturn['automations'] = 'toApiJson' in this.automations ? this.automations.toApiJson() : this.automations;\n }\n return toReturn;\n }\n}\nclass GetMultiTaskDefinitionRequest {\n static fromProto(proto) {\n let m = new GetMultiTaskDefinitionRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.ids !== 'undefined') {\n toReturn['ids'] = this.ids;\n }\n return toReturn;\n }\n}\nclass GetMultiTaskDefinitionResponse {\n static fromProto(proto) {\n let m = new GetMultiTaskDefinitionResponse();\n m = Object.assign(m, proto);\n if (proto.taskDefinitions) {\n m.taskDefinitions = proto.taskDefinitions.map(TaskDefinition.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.taskDefinitions !== 'undefined' && this.taskDefinitions !== null) {\n toReturn['taskDefinitions'] = 'toApiJson' in this.taskDefinitions ? this.taskDefinitions.toApiJson() : this.taskDefinitions;\n }\n return toReturn;\n }\n}\nclass GetSubscriptionRequest {\n static fromProto(proto) {\n let m = new GetSubscriptionRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n return toReturn;\n }\n}\nclass GetSubscriptionResponse {\n static fromProto(proto) {\n let m = new GetSubscriptionResponse();\n m = Object.assign(m, proto);\n if (proto.subscription) {\n m.subscription = AutomationSubscription.fromProto(proto.subscription);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.subscription !== 'undefined' && this.subscription !== null) {\n toReturn['subscription'] = 'toApiJson' in this.subscription ? this.subscription.toApiJson() : this.subscription;\n }\n return toReturn;\n }\n}\nclass GetTaskDefinitionRequest {\n static fromProto(proto) {\n let m = new GetTaskDefinitionRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass GetTaskDefinitionResponse {\n static fromProto(proto) {\n let m = new GetTaskDefinitionResponse();\n m = Object.assign(m, proto);\n if (proto.taskDefinition) {\n m.taskDefinition = TaskDefinition.fromProto(proto.taskDefinition);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.taskDefinition !== 'undefined' && this.taskDefinition !== null) {\n toReturn['taskDefinition'] = 'toApiJson' in this.taskDefinition ? this.taskDefinition.toApiJson() : this.taskDefinition;\n }\n return toReturn;\n }\n}\nclass GetWorkflowStepPredecessorOutputParamsRequest {\n static fromProto(proto) {\n let m = new GetWorkflowStepPredecessorOutputParamsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.workflowStepParentIds !== 'undefined') {\n toReturn['workflowStepParentIds'] = this.workflowStepParentIds;\n }\n if (typeof this.onlyIncludeNamedSteps !== 'undefined') {\n toReturn['onlyIncludeNamedSteps'] = this.onlyIncludeNamedSteps;\n }\n return toReturn;\n }\n}\nclass GetWorkflowStepPredecessorOutputParamsResponse {\n static fromProto(proto) {\n let m = new GetWorkflowStepPredecessorOutputParamsResponse();\n m = Object.assign(m, proto);\n if (proto.workflowStepOutputParameters) {\n m.workflowStepOutputParameters = proto.workflowStepOutputParameters.map(WorkflowStepOutputParameterContainer.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.workflowStepOutputParameters !== 'undefined' && this.workflowStepOutputParameters !== null) {\n toReturn['workflowStepOutputParameters'] = 'toApiJson' in this.workflowStepOutputParameters ? this.workflowStepOutputParameters.toApiJson() : this.workflowStepOutputParameters;\n }\n return toReturn;\n }\n}\nclass HideRequest {\n static fromProto(proto) {\n let m = new HideRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass ListActivitiesCurrentlyWaitingRequest {\n static fromProto(proto) {\n let m = new ListActivitiesCurrentlyWaitingRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListActivitiesCurrentlyWaitingRequestFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListActivitiesCurrentlyWaitingResponse {\n static fromProto(proto) {\n let m = new ListActivitiesCurrentlyWaitingResponse();\n m = Object.assign(m, proto);\n if (proto.activities) {\n m.activities = proto.activities.map(Activity.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.activities !== 'undefined' && this.activities !== null) {\n toReturn['activities'] = 'toApiJson' in this.activities ? this.activities.toApiJson() : this.activities;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListActivitiesRequest {\n static fromProto(proto) {\n let m = new ListActivitiesRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListActivitiesRequestFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListActivitiesResponse {\n static fromProto(proto) {\n let m = new ListActivitiesResponse();\n m = Object.assign(m, proto);\n if (proto.activities) {\n m.activities = proto.activities.map(Activity.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.activities !== 'undefined' && this.activities !== null) {\n toReturn['activities'] = 'toApiJson' in this.activities ? this.activities.toApiJson() : this.activities;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListAutomationRunsRequest {\n static fromProto(proto) {\n let m = new ListAutomationRunsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListAutomationRunsRequestFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListAutomationRunsResponse {\n static fromProto(proto) {\n let m = new ListAutomationRunsResponse();\n m = Object.assign(m, proto);\n if (proto.automationRuns) {\n m.automationRuns = proto.automationRuns.map(Activity.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationRuns !== 'undefined' && this.automationRuns !== null) {\n toReturn['automationRuns'] = 'toApiJson' in this.automationRuns ? this.automationRuns.toApiJson() : this.automationRuns;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListAutomationsRequest {\n static fromProto(proto) {\n let m = new ListAutomationsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListAutomationsRequestFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListAutomationsRequestV2 {\n static fromProto(proto) {\n let m = new ListAutomationsRequestV2();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListAutomationsRequestV2Filters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListAutomationsResponse {\n static fromProto(proto) {\n let m = new ListAutomationsResponse();\n m = Object.assign(m, proto);\n if (proto.automations) {\n m.automations = proto.automations.map(Automation.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automations !== 'undefined' && this.automations !== null) {\n toReturn['automations'] = 'toApiJson' in this.automations ? this.automations.toApiJson() : this.automations;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListDefaultAutomationsForPartnerRequest {\n static fromProto(proto) {\n let m = new ListDefaultAutomationsForPartnerRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListDefaultAutomationsForPartnerRequestFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListDefaultAutomationsForPartnerResponse {\n static fromProto(proto) {\n let m = new ListDefaultAutomationsForPartnerResponse();\n m = Object.assign(m, proto);\n if (proto.results) {\n m.results = proto.results.map(DefaultAutomationWithConfiguration.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.results !== 'undefined' && this.results !== null) {\n toReturn['results'] = 'toApiJson' in this.results ? this.results.toApiJson() : this.results;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListDefaultAutomationsRequest {\n static fromProto(proto) {\n let m = new ListDefaultAutomationsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListDefaultAutomationsRequestFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListDefaultAutomationsResponse {\n static fromProto(proto) {\n let m = new ListDefaultAutomationsResponse();\n m = Object.assign(m, proto);\n if (proto.results) {\n m.results = proto.results.map(DefaultAutomation.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.results !== 'undefined' && this.results !== null) {\n toReturn['results'] = 'toApiJson' in this.results ? this.results.toApiJson() : this.results;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListEventTriggerDefinitionRequest {\n static fromProto(proto) {\n let m = new ListEventTriggerDefinitionRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListEventTriggerDefinitionRequestFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListEventTriggerDefinitionResponse {\n static fromProto(proto) {\n let m = new ListEventTriggerDefinitionResponse();\n m = Object.assign(m, proto);\n if (proto.eventTriggerDefinitions) {\n m.eventTriggerDefinitions = proto.eventTriggerDefinitions.map(EventTriggerDefinition.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.eventTriggerDefinitions !== 'undefined' && this.eventTriggerDefinitions !== null) {\n toReturn['eventTriggerDefinitions'] = 'toApiJson' in this.eventTriggerDefinitions ? this.eventTriggerDefinitions.toApiJson() : this.eventTriggerDefinitions;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListSnippetsRequest {\n static fromProto(proto) {\n let m = new ListSnippetsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListSnippetsRequestFilters.fromProto(proto.filters);\n }\n if (proto.validationData) {\n m.validationData = ListSnippetsRequestValidationData.fromProto(proto.validationData);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.validationData !== 'undefined' && this.validationData !== null) {\n toReturn['validationData'] = 'toApiJson' in this.validationData ? this.validationData.toApiJson() : this.validationData;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListSnippetsResponse {\n static fromProto(proto) {\n let m = new ListSnippetsResponse();\n m = Object.assign(m, proto);\n if (proto.snippets) {\n m.snippets = proto.snippets.map(Snippet.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.snippets !== 'undefined' && this.snippets !== null) {\n toReturn['snippets'] = 'toApiJson' in this.snippets ? this.snippets.toApiJson() : this.snippets;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListTaskDefinition {\n static fromProto(proto) {\n let m = new ListTaskDefinition();\n m = Object.assign(m, proto);\n if (proto.taskDefinition) {\n m.taskDefinition = TaskDefinition.fromProto(proto.taskDefinition);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.valid !== 'undefined') {\n toReturn['valid'] = this.valid;\n }\n if (typeof this.taskDefinition !== 'undefined' && this.taskDefinition !== null) {\n toReturn['taskDefinition'] = 'toApiJson' in this.taskDefinition ? this.taskDefinition.toApiJson() : this.taskDefinition;\n }\n if (typeof this.hasAccessToRun !== 'undefined') {\n toReturn['hasAccessToRun'] = this.hasAccessToRun;\n }\n return toReturn;\n }\n}\nclass ListTaskDefinitionsRequest {\n static fromProto(proto) {\n let m = new ListTaskDefinitionsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListTaskDefinitionsRequestFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n if (proto.validationData) {\n m.validationData = ListTaskDefinitionsRequestValidationData.fromProto(proto.validationData);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n if (typeof this.validationData !== 'undefined' && this.validationData !== null) {\n toReturn['validationData'] = 'toApiJson' in this.validationData ? this.validationData.toApiJson() : this.validationData;\n }\n return toReturn;\n }\n}\nclass ListTaskDefinitionsResponse {\n static fromProto(proto) {\n let m = new ListTaskDefinitionsResponse();\n m = Object.assign(m, proto);\n if (proto.taskDefinitions) {\n m.taskDefinitions = proto.taskDefinitions.map(ListTaskDefinition.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.taskDefinitions !== 'undefined' && this.taskDefinitions !== null) {\n toReturn['taskDefinitions'] = 'toApiJson' in this.taskDefinitions ? this.taskDefinitions.toApiJson() : this.taskDefinitions;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass OrderKey {\n static fromProto(proto) {\n let m = new OrderKey();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.orderId !== 'undefined') {\n toReturn['orderId'] = this.orderId;\n }\n return toReturn;\n }\n}\nclass PagedRequestOptions {\n static fromProto(proto) {\n let m = new PagedRequestOptions();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedResponseMetadata {\n static fromProto(proto) {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n if (proto.totalResults) {\n m.totalResults = parseInt(proto.totalResults, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.totalResults !== 'undefined') {\n toReturn['totalResults'] = this.totalResults;\n }\n return toReturn;\n }\n}\nclass PublishRequest {\n static fromProto(proto) {\n let m = new PublishRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass RateLimitCheckRequest {\n static fromProto(proto) {\n let m = new RateLimitCheckRequest();\n m = Object.assign(m, proto);\n if (proto.rateLimit) {\n m.rateLimit = RateLimit.fromProto(proto.rateLimit);\n }\n if (proto.timestamp) {\n m.timestamp = new Date(proto.timestamp);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.rateLimit !== 'undefined' && this.rateLimit !== null) {\n toReturn['rateLimit'] = 'toApiJson' in this.rateLimit ? this.rateLimit.toApiJson() : this.rateLimit;\n }\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {\n toReturn['timestamp'] = 'toApiJson' in this.timestamp ? this.timestamp.toApiJson() : this.timestamp;\n }\n return toReturn;\n }\n}\nclass SearchManualAutomationsRequest {\n static fromProto(proto) {\n let m = new SearchManualAutomationsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = SearchManualAutomationsRequestFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n if (proto.entityType) {\n m.entityType = enumStringToValue(EntityType, proto.entityType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n if (typeof this.entityType !== 'undefined') {\n toReturn['entityType'] = this.entityType;\n }\n return toReturn;\n }\n}\nclass SearchManualAutomationsResponse {\n static fromProto(proto) {\n let m = new SearchManualAutomationsResponse();\n m = Object.assign(m, proto);\n if (proto.automations) {\n m.automations = proto.automations.map(Automation.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automations !== 'undefined' && this.automations !== null) {\n toReturn['automations'] = 'toApiJson' in this.automations ? this.automations.toApiJson() : this.automations;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass SendTestWebhookRequest {\n static fromProto(proto) {\n let m = new SendTestWebhookRequest();\n m = Object.assign(m, proto);\n if (proto.additionalFields) {\n m.additionalFields = Object.keys(proto.additionalFields).reduce((obj, k) => {\n obj[k] = proto.additionalFields[k];\n return obj;\n }, {});\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.verifierToken !== 'undefined') {\n toReturn['verifierToken'] = this.verifierToken;\n }\n if (typeof this.additionalFields !== 'undefined' && this.additionalFields !== null) {\n toReturn['additionalFields'] = 'toApiJson' in this.additionalFields ? this.additionalFields.toApiJson() : this.additionalFields;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass SetAutomationToDrainingRequest {\n static fromProto(proto) {\n let m = new SetAutomationToDrainingRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass Snippet {\n static fromProto(proto) {\n let m = new Snippet();\n m = Object.assign(m, proto);\n if (proto.automation) {\n m.automation = Automation.fromProto(proto.automation);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automation !== 'undefined' && this.automation !== null) {\n toReturn['automation'] = 'toApiJson' in this.automation ? this.automation.toApiJson() : this.automation;\n }\n if (typeof this.valid !== 'undefined') {\n toReturn['valid'] = this.valid;\n }\n return toReturn;\n }\n}\nclass StartAccountGroupAutomationRequest {\n static fromProto(proto) {\n let m = new StartAccountGroupAutomationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.accountGroupIds !== 'undefined') {\n toReturn['accountGroupIds'] = this.accountGroupIds;\n }\n if (typeof this.actionListName !== 'undefined') {\n toReturn['actionListName'] = this.actionListName;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass StartAutomationRequestStartAutomationPayload {\n static fromProto(proto) {\n let m = new StartAutomationRequestStartAutomationPayload();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.entityId !== 'undefined') {\n toReturn['entityId'] = this.entityId;\n }\n if (typeof this.data !== 'undefined') {\n toReturn['data'] = this.data;\n }\n return toReturn;\n }\n}\nclass StartAutomationRequest {\n static fromProto(proto) {\n let m = new StartAutomationRequest();\n m = Object.assign(m, proto);\n if (proto.orderKeys) {\n m.orderKeys = proto.orderKeys.map(OrderKey.fromProto);\n }\n if (proto.payloads) {\n m.payloads = proto.payloads.map(StartAutomationRequestStartAutomationPayload.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.accountGroupIds !== 'undefined') {\n toReturn['accountGroupIds'] = this.accountGroupIds;\n }\n if (typeof this.orderKeys !== 'undefined' && this.orderKeys !== null) {\n toReturn['orderKeys'] = 'toApiJson' in this.orderKeys ? this.orderKeys.toApiJson() : this.orderKeys;\n }\n if (typeof this.payloads !== 'undefined' && this.payloads !== null) {\n toReturn['payloads'] = 'toApiJson' in this.payloads ? this.payloads.toApiJson() : this.payloads;\n }\n if (typeof this.checkAccessOnly !== 'undefined') {\n toReturn['checkAccessOnly'] = this.checkAccessOnly;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass StartAutomationRunningRequest {\n static fromProto(proto) {\n let m = new StartAutomationRunningRequest();\n m = Object.assign(m, proto);\n if (proto.settings) {\n m.settings = AutomationSettings.fromProto(proto.settings);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.settings !== 'undefined' && this.settings !== null) {\n toReturn['settings'] = 'toApiJson' in this.settings ? this.settings.toApiJson() : this.settings;\n }\n if (typeof this.subscribeToNotifications !== 'undefined') {\n toReturn['subscribeToNotifications'] = this.subscribeToNotifications;\n }\n return toReturn;\n }\n}\nclass StopAllAutomationRunsRequest {\n static fromProto(proto) {\n let m = new StopAllAutomationRunsRequest();\n m = Object.assign(m, proto);\n if (proto.context) {\n m.context = enumStringToValue(Context, proto.context);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.context !== 'undefined') {\n toReturn['context'] = this.context;\n }\n return toReturn;\n }\n}\nclass StopAutomationRunningRequest {\n static fromProto(proto) {\n let m = new StopAutomationRunningRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass SubscribeRequest {\n static fromProto(proto) {\n let m = new SubscribeRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass SummarizeAutomationRequest {\n static fromProto(proto) {\n let m = new SummarizeAutomationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.prompts !== 'undefined') {\n toReturn['prompts'] = this.prompts;\n }\n return toReturn;\n }\n}\nclass SummarizeAutomationResponse {\n static fromProto(proto) {\n let m = new SummarizeAutomationResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.summary !== 'undefined') {\n toReturn['summary'] = this.summary;\n }\n return toReturn;\n }\n}\nclass UnhideRequest {\n static fromProto(proto) {\n let m = new UnhideRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass UnpublishRequest {\n static fromProto(proto) {\n let m = new UnpublishRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass UnsubscribeRequest {\n static fromProto(proto) {\n let m = new UnsubscribeRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n return toReturn;\n }\n}\nclass UpdateAutomationRequest {\n static fromProto(proto) {\n let m = new UpdateAutomationRequest();\n m = Object.assign(m, proto);\n if (proto.automation) {\n m.automation = Automation.fromProto(proto.automation);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automation !== 'undefined' && this.automation !== null) {\n toReturn['automation'] = 'toApiJson' in this.automation ? this.automation.toApiJson() : this.automation;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpdateEventTriggerDefinitionRequest {\n static fromProto(proto) {\n let m = new UpdateEventTriggerDefinitionRequest();\n m = Object.assign(m, proto);\n if (proto.eventTriggerDefinition) {\n m.eventTriggerDefinition = EventTriggerDefinition.fromProto(proto.eventTriggerDefinition);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.eventTriggerDefinition !== 'undefined' && this.eventTriggerDefinition !== null) {\n toReturn['eventTriggerDefinition'] = 'toApiJson' in this.eventTriggerDefinition ? this.eventTriggerDefinition.toApiJson() : this.eventTriggerDefinition;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpdateTaskDefinitionRequest {\n static fromProto(proto) {\n let m = new UpdateTaskDefinitionRequest();\n m = Object.assign(m, proto);\n if (proto.taskDefinition) {\n m.taskDefinition = TaskDefinition.fromProto(proto.taskDefinition);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.taskDefinition !== 'undefined' && this.taskDefinition !== null) {\n toReturn['taskDefinition'] = 'toApiJson' in this.taskDefinition ? this.taskDefinition.toApiJson() : this.taskDefinition;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass ListTaskDefinitionsRequestValidationData {\n static fromProto(proto) {\n let m = new ListTaskDefinitionsRequestValidationData();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.workflowStepParentIds !== 'undefined') {\n toReturn['workflowStepParentIds'] = this.workflowStepParentIds;\n }\n if (typeof this.triggerTaskDefinitionId !== 'undefined') {\n toReturn['triggerTaskDefinitionId'] = this.triggerTaskDefinitionId;\n }\n return toReturn;\n }\n}\nclass ListSnippetsRequestValidationData {\n static fromProto(proto) {\n let m = new ListSnippetsRequestValidationData();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.automationId !== 'undefined') {\n toReturn['automationId'] = this.automationId;\n }\n if (typeof this.immediateStepParentIds !== 'undefined') {\n toReturn['immediateStepParentIds'] = this.immediateStepParentIds;\n }\n return toReturn;\n }\n}\n\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'automata-api.vendasta-local.com',\n 'test': '',\n 'demo': 'automata-demo.apigateway.co',\n 'prod': 'automata-prod.apigateway.co',\n 'production': 'automata-prod.apigateway.co'\n};\nlet HostService = /*#__PURE__*/(() => {\n class HostService {\n get host() {\n return hostMap[environment.toLowerCase()];\n }\n get hostWithScheme() {\n return 'https://' + this.host;\n }\n }\n HostService.ɵfac = function HostService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet AutomataApiService = /*#__PURE__*/(() => {\n class AutomataApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n createAutomation(r) {\n const request = r.toApiJson ? r : new CreateAutomationRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/CreateAutomation\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateAutomationResponse.fromProto(resp)));\n }\n getAutomation(r) {\n const request = r.toApiJson ? r : new GetAutomationRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/GetAutomation\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAutomationResponse.fromProto(resp)));\n }\n getMultiAutomations(r) {\n const request = r.toApiJson ? r : new GetMultiAutomationsRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/GetMultiAutomations\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiAutomationsResponse.fromProto(resp)));\n }\n deleteAutomation(r) {\n const request = r.toApiJson ? r : new DeleteAutomationRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/DeleteAutomation\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateAutomation(r) {\n const request = r.toApiJson ? r : new UpdateAutomationRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/UpdateAutomation\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n publish(r) {\n const request = r.toApiJson ? r : new PublishRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/Publish\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n unpublish(r) {\n const request = r.toApiJson ? r : new UnpublishRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/Unpublish\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n hide(r) {\n const request = r.toApiJson ? r : new HideRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/Hide\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n unhide(r) {\n const request = r.toApiJson ? r : new UnhideRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/Unhide\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n startAutomationRunning(r) {\n const request = r.toApiJson ? r : new StartAutomationRunningRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/StartAutomationRunning\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n stopAutomationRunning(r) {\n const request = r.toApiJson ? r : new StopAutomationRunningRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/StopAutomationRunning\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n setAutomationToDraining(r) {\n const request = r.toApiJson ? r : new SetAutomationToDrainingRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/SetAutomationToDraining\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listAutomations(r) {\n const request = r.toApiJson ? r : new ListAutomationsRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/ListAutomations\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListAutomationsResponse.fromProto(resp)));\n }\n listAutomationsV2(r) {\n const request = r.toApiJson ? r : new ListAutomationsRequestV2(r);\n return this.http.post(this._host + \"/automata.v1.Automata/ListAutomationsV2\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListAutomationsResponse.fromProto(resp)));\n }\n listSnippets(r) {\n const request = r.toApiJson ? r : new ListSnippetsRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/ListSnippets\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListSnippetsResponse.fromProto(resp)));\n }\n listActivities(r) {\n const request = r.toApiJson ? r : new ListActivitiesRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/ListActivities\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListActivitiesResponse.fromProto(resp)));\n }\n copyAutomation(r) {\n const request = r.toApiJson ? r : new CopyAutomationRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/CopyAutomation\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CopyAutomationResponse.fromProto(resp)));\n }\n getAutomationTags(r) {\n const request = r.toApiJson ? r : new GetAutomationTagsRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/GetAutomationTags\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAutomationTagsResponse.fromProto(resp)));\n }\n subscribe(r) {\n const request = r.toApiJson ? r : new SubscribeRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/Subscribe\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n unsubscribe(r) {\n const request = r.toApiJson ? r : new UnsubscribeRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/Unsubscribe\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getSubscription(r) {\n const request = r.toApiJson ? r : new GetSubscriptionRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/GetSubscription\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetSubscriptionResponse.fromProto(resp)));\n }\n listActivitiesCurrentlyWaiting(r) {\n const request = r.toApiJson ? r : new ListActivitiesCurrentlyWaitingRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/ListActivitiesCurrentlyWaiting\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListActivitiesCurrentlyWaitingResponse.fromProto(resp)));\n }\n getWorkflowStepPredecessorOutputParams(r) {\n const request = r.toApiJson ? r : new GetWorkflowStepPredecessorOutputParamsRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/GetWorkflowStepPredecessorOutputParams\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetWorkflowStepPredecessorOutputParamsResponse.fromProto(resp)));\n }\n listAutomationRuns(r) {\n const request = r.toApiJson ? r : new ListAutomationRunsRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/ListAutomationRuns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListAutomationRunsResponse.fromProto(resp)));\n }\n countRunningWorkflows(r) {\n const request = r.toApiJson ? r : new CountRunningWorkflowsRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/CountRunningWorkflows\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CountRunningWorkflowsResponse.fromProto(resp)));\n }\n stopAllAutomationRuns(r) {\n const request = r.toApiJson ? r : new StopAllAutomationRunsRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/StopAllAutomationRuns\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getAutomationAccessRequirements(r) {\n const request = r.toApiJson ? r : new GetAutomationAccessRequirementsRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/GetAutomationAccessRequirements\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAutomationAccessRequirementsResponse.fromProto(resp)));\n }\n summarizeAutomation(r) {\n const request = r.toApiJson ? r : new SummarizeAutomationRequest(r);\n return this.http.post(this._host + \"/automata.v1.Automata/SummarizeAutomation\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SummarizeAutomationResponse.fromProto(resp)));\n }\n }\n AutomataApiService.ɵfac = function AutomataApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutomataApiService)();\n };\n AutomataApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AutomataApiService,\n factory: AutomataApiService.ɵfac,\n providedIn: 'root'\n });\n return AutomataApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass PagedResponse {\n constructor(results, nextCursor, hasMore, totalResults) {\n this.results = results;\n this.nextCursor = nextCursor;\n this.hasMore = hasMore;\n this.totalResults = totalResults;\n }\n}\nfunction fillEmptyAutomationValues(automation) {\n if (!(automation.settings && automation.settings.runType)) {\n automation.settings = {\n runType: RunType.RUN_TYPE_MULTIPLE\n };\n }\n return new Automation(automation);\n}\nlet AutomataService = /*#__PURE__*/(() => {\n class AutomataService {\n constructor(api, hostService) {\n this.api = api;\n this.hostService = hostService;\n }\n createAutomation(automation, sourceId) {\n return this.api.createAutomation({\n automation: automation,\n sourceId: sourceId\n }).pipe(map(resp => resp.id));\n }\n getAutomation(id) {\n return this.api.getAutomation({\n id: id\n }).pipe(map(resp => fillEmptyAutomationValues(resp.automation)));\n }\n getMultiAutomations(partnerId, marketId, automationIds) {\n return this.api.getMultiAutomations({\n partnerId: partnerId,\n marketId: marketId,\n automationIds: automationIds\n }).pipe(map(resp => resp.automations));\n }\n updateAutomation(automation, fieldMask) {\n return this.api.updateAutomation({\n automation: automation,\n fieldMask: fieldMask\n }).pipe(map(() => true));\n }\n deleteAutomation(id) {\n return this.api.deleteAutomation({\n id: id\n }).pipe(map(() => true));\n }\n listAutomations(filters, cursor, pageSize) {\n const req = new ListAutomationsRequest({\n filters: filters,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n });\n return this.api.listAutomations(req).pipe(map(resp => {\n return new PagedResponse(resp.automations, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore, resp.pagingMetadata.totalResults);\n }));\n }\n listAutomationsV2(filters, cursor, pageSize) {\n const req = new ListAutomationsRequestV2({\n filters: filters,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n });\n return this.api.listAutomationsV2(req).pipe(map(resp => {\n return new PagedResponse(resp.automations, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore, resp.pagingMetadata.totalResults);\n }));\n }\n listSnippets(filters, validationData, pagingOptions) {\n const req = new ListSnippetsRequest({\n filters: filters,\n validationData: validationData,\n pagingOptions: pagingOptions\n });\n return this.api.listSnippets(req).pipe(map(resp => {\n return new PagedResponse(resp.snippets, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore, resp.pagingMetadata.totalResults);\n }));\n }\n startAutomationRunning(id, settings, subscribeToNotifications) {\n return this.api.startAutomationRunning({\n id: id,\n settings: settings,\n subscribeToNotifications: subscribeToNotifications\n }).pipe(map(() => true));\n }\n stopAutomationRunning(id) {\n return this.api.stopAutomationRunning({\n id: id\n }).pipe(map(() => true));\n }\n setAutomationToDraining(id) {\n return this.api.setAutomationToDraining({\n id: id\n }).pipe(map(() => true));\n }\n stopAllAutomationRuns(partnerId, context) {\n return this.api.stopAllAutomationRuns({\n partnerId: partnerId,\n context: context\n }).pipe(map(() => true));\n }\n listActivities(filters, cursor, pageSize) {\n const req = new ListActivitiesRequest({\n filters: filters,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n });\n return this.api.listActivities(req).pipe(map(resp => {\n return new PagedResponse(resp.activities, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore, resp.pagingMetadata.totalResults);\n }));\n }\n listCurrentlyWaitingActivities(partnerId, marketIds, automationId, workflowStepId, cursor, pageSize) {\n const req = new ListActivitiesCurrentlyWaitingRequest({\n filters: {\n automationId: automationId,\n workflowStepId: workflowStepId,\n partnerId: partnerId,\n marketIds: marketIds\n },\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n });\n return this.api.listActivitiesCurrentlyWaiting(req).pipe(map(resp => {\n return new PagedResponse(resp.activities, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore, resp.pagingMetadata.totalResults);\n }));\n }\n getWorkflowStepPredecessorOutputParams(automationId, workflowStepParentIds, onlyIncludeNamedSteps) {\n return this.api.getWorkflowStepPredecessorOutputParams({\n automationId: automationId,\n workflowStepParentIds: workflowStepParentIds,\n onlyIncludeNamedSteps: onlyIncludeNamedSteps\n }).pipe(map(resp => resp.workflowStepOutputParameters || []));\n }\n copyAutomation(originalAutomationId, name) {\n return this.api.copyAutomation({\n originalAutomationId: originalAutomationId,\n name: name\n }).pipe(map(resp => resp.id));\n }\n getOauth2EntryHandlerUrl(automationId, action, originUrl, settings, subscribeToNotifications) {\n const settingsString = JSON.stringify(settings);\n const params = {\n automation: automationId,\n action: action,\n redirect: originUrl,\n settings: settingsString,\n subscribeToNotifications: subscribeToNotifications || false\n };\n const query = Object.keys(params).map(k => encodeURIComponent(k) + '=' + encodeURIComponent(params[k])).join('&');\n return this.hostService.hostWithScheme + '/auth/entry?' + query;\n }\n getTags(partnerId, marketIds, type) {\n const automationType = !!type ? type : AutomationType.AUTOMATION_TYPE_STANDARD;\n return this.api.getAutomationTags({\n partnerId: partnerId,\n marketIds: marketIds,\n automationType: automationType\n }).pipe(map(resp => resp.tags || []));\n }\n publish(automationId) {\n return this.api.publish({\n id: automationId\n }).pipe(map(() => true));\n }\n unpublish(automationId) {\n return this.api.unpublish({\n id: automationId\n }).pipe(map(() => true));\n }\n hide(automationId) {\n return this.api.hide({\n id: automationId\n }).pipe(map(() => true));\n }\n unhide(automationId) {\n return this.api.unhide({\n id: automationId\n }).pipe(map(() => true));\n }\n subscribe(partnerId, marketIds, automationId) {\n return this.api.subscribe({\n partnerId: partnerId,\n marketIds: marketIds,\n automationId: automationId\n }).pipe(map(() => true));\n }\n unsubscribe(automationId) {\n return this.api.unsubscribe({\n automationId: automationId\n }).pipe(map(() => true));\n }\n getSubscription(automationId) {\n return this.api.getSubscription({\n automationId: automationId\n }).pipe(map(resp => resp?.subscription));\n }\n listAutomationRuns(filters, cursor, pageSize) {\n const req = new ListAutomationRunsRequest({\n filters: filters,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n });\n return this.api.listAutomationRuns(req).pipe(map(resp => {\n return new PagedResponse(resp.automationRuns, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore, resp.pagingMetadata.totalResults);\n }));\n }\n getAutomationAccessRequirements(automationId) {\n return this.api.getAutomationAccessRequirements({\n automationId: automationId\n }).pipe(map(res => res));\n }\n summarizeAutomation(automationId, prompts) {\n return this.api.summarizeAutomation({\n automationId: automationId,\n prompts: prompts\n });\n }\n }\n AutomataService.ɵfac = function AutomataService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutomataService)(i0.ɵɵinject(AutomataApiService), i0.ɵɵinject(HostService));\n };\n AutomataService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AutomataService,\n factory: AutomataService.ɵfac,\n providedIn: 'root'\n });\n return AutomataService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet AutomataDevelopmentApiService = /*#__PURE__*/(() => {\n class AutomataDevelopmentApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n createEventTriggerDefinition(r) {\n const request = r.toApiJson ? r : new CreateEventTriggerDefinitionRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDevelopment/CreateEventTriggerDefinition\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateEventTriggerDefinition(r) {\n const request = r.toApiJson ? r : new UpdateEventTriggerDefinitionRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDevelopment/UpdateEventTriggerDefinition\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getEventTriggerDefinition(r) {\n const request = r.toApiJson ? r : new GetEventTriggerDefinitionRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDevelopment/GetEventTriggerDefinition\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEventTriggerDefinitionResponse.fromProto(resp)));\n }\n deleteEventTriggerDefinition(r) {\n const request = r.toApiJson ? r : new DeleteEventTriggerDefinitionRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDevelopment/DeleteEventTriggerDefinition\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listEventTriggerDefinition(r) {\n const request = r.toApiJson ? r : new ListEventTriggerDefinitionRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDevelopment/ListEventTriggerDefinition\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListEventTriggerDefinitionResponse.fromProto(resp)));\n }\n createTaskDefinition(r) {\n const request = r.toApiJson ? r : new CreateTaskDefinitionRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDevelopment/CreateTaskDefinition\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateTaskDefinitionResponse.fromProto(resp)));\n }\n updateTaskDefinition(r) {\n const request = r.toApiJson ? r : new UpdateTaskDefinitionRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDevelopment/UpdateTaskDefinition\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getTaskDefinition(r) {\n const request = r.toApiJson ? r : new GetTaskDefinitionRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDevelopment/GetTaskDefinition\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetTaskDefinitionResponse.fromProto(resp)));\n }\n getMultiTaskDefinition(r) {\n const request = r.toApiJson ? r : new GetMultiTaskDefinitionRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDevelopment/GetMultiTaskDefinition\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiTaskDefinitionResponse.fromProto(resp)));\n }\n deleteTaskDefinition(r) {\n const request = r.toApiJson ? r : new DeleteTaskDefinitionRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDevelopment/DeleteTaskDefinition\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listTaskDefinitions(r) {\n const request = r.toApiJson ? r : new ListTaskDefinitionsRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDevelopment/ListTaskDefinitions\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListTaskDefinitionsResponse.fromProto(resp)));\n }\n }\n AutomataDevelopmentApiService.ɵfac = function AutomataDevelopmentApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutomataDevelopmentApiService)();\n };\n AutomataDevelopmentApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AutomataDevelopmentApiService,\n factory: AutomataDevelopmentApiService.ɵfac,\n providedIn: 'root'\n });\n return AutomataDevelopmentApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AutomataDevelopmentService = /*#__PURE__*/(() => {\n class AutomataDevelopmentService {\n constructor(api) {\n this.api = api;\n }\n createEventTriggerDefinition(eventTriggerDefinition) {\n return this.api.createEventTriggerDefinition({\n eventTriggerDefinition: eventTriggerDefinition\n }).pipe(map(() => true));\n }\n getEventTriggerDefinition(eventTypeId) {\n return this.api.getEventTriggerDefinition({\n eventTypeId: eventTypeId\n }).pipe(map(resp => resp.eventTriggerDefinition));\n }\n deleteEventTriggerDefinition(eventTypeId) {\n return this.api.deleteEventTriggerDefinition({\n eventTypeId: eventTypeId\n }).pipe(map(() => true));\n }\n updateEventTrigger(eventTriggerDefinition, fieldMask) {\n return this.api.updateEventTriggerDefinition({\n eventTriggerDefinition: eventTriggerDefinition,\n fieldMask: fieldMask\n }).pipe(map(() => true));\n }\n createTaskDefinition(taskDefinition) {\n return this.api.createTaskDefinition({\n taskDefinition: taskDefinition\n }).pipe(map(() => true));\n }\n getTaskDefinition(id) {\n return this.api.getTaskDefinition({\n id: id\n }).pipe(map(resp => resp.taskDefinition));\n }\n getMultiTaskDefinition(ids) {\n return this.api.getMultiTaskDefinition({\n ids: ids\n }).pipe(map(resp => resp.taskDefinitions));\n }\n updateTaskDefinition(taskDefinition, fieldMask) {\n return this.api.updateTaskDefinition({\n taskDefinition: taskDefinition,\n fieldMask: fieldMask\n }).pipe(map(() => true));\n }\n deleteTaskDefinition(id) {\n return this.api.deleteTaskDefinition({\n id: id\n }).pipe(map(() => true));\n }\n listTaskDefinitions(filters, validationData, cursor, pageSize) {\n return this.api.listTaskDefinitions({\n filters: filters,\n validationData: validationData,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n }).pipe(map(resp => {\n return new PagedResponse(resp.taskDefinitions, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore, resp.pagingMetadata.totalResults);\n }));\n }\n listEventTriggerDefinitions(filters, cursor, pageSize) {\n return this.api.listEventTriggerDefinition({\n filters: filters,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n }).pipe(map(resp => {\n return new PagedResponse(resp.eventTriggerDefinitions, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore, resp.pagingMetadata.totalResults);\n }));\n }\n }\n AutomataDevelopmentService.ɵfac = function AutomataDevelopmentService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutomataDevelopmentService)(i0.ɵɵinject(AutomataDevelopmentApiService));\n };\n AutomataDevelopmentService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AutomataDevelopmentService,\n factory: AutomataDevelopmentService.ɵfac,\n providedIn: 'root'\n });\n return AutomataDevelopmentService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet AutomataDefaultAutomationsApiService = /*#__PURE__*/(() => {\n class AutomataDefaultAutomationsApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n getConfiguration(r) {\n const request = r.toApiJson ? r : new GetConfigurationRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDefaultAutomations/GetConfiguration\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetConfigurationResponse.fromProto(resp)));\n }\n deleteConfiguration(r) {\n const request = r.toApiJson ? r : new DeleteConfigurationRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDefaultAutomations/DeleteConfiguration\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n disableForMarkets(r) {\n const request = r.toApiJson ? r : new DisableForMarketsRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDefaultAutomations/DisableForMarkets\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n enableForMarkets(r) {\n const request = r.toApiJson ? r : new EnableForMarketsRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDefaultAutomations/EnableForMarkets\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listDefaultAutomationsForPartner(r) {\n const request = r.toApiJson ? r : new ListDefaultAutomationsForPartnerRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDefaultAutomations/ListDefaultAutomationsForPartner\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListDefaultAutomationsForPartnerResponse.fromProto(resp)));\n }\n listDefaultAutomations(r) {\n const request = r.toApiJson ? r : new ListDefaultAutomationsRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDefaultAutomations/ListDefaultAutomations\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListDefaultAutomationsResponse.fromProto(resp)));\n }\n enableAutomationConfigurationV2(r) {\n const request = r.toApiJson ? r : new EnableAutomationConfigurationRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDefaultAutomations/EnableAutomationConfigurationV2\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n disableAutomationConfigurationV2(r) {\n const request = r.toApiJson ? r : new DisableAutomationConfigurationRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDefaultAutomations/DisableAutomationConfigurationV2\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getAutomationConfigurationV2(r) {\n const request = r.toApiJson ? r : new GetAutomationConfigurationV2Request(r);\n return this.http.post(this._host + \"/automata.v1.AutomataDefaultAutomations/GetAutomationConfigurationV2\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAutomationConfigurationV2Response.fromProto(resp)));\n }\n }\n AutomataDefaultAutomationsApiService.ɵfac = function AutomataDefaultAutomationsApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutomataDefaultAutomationsApiService)();\n };\n AutomataDefaultAutomationsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AutomataDefaultAutomationsApiService,\n factory: AutomataDefaultAutomationsApiService.ɵfac,\n providedIn: 'root'\n });\n return AutomataDefaultAutomationsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet AutomataOperationsApiService = /*#__PURE__*/(() => {\n class AutomataOperationsApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n startAccountGroupAutomation(r) {\n const request = r.toApiJson ? r : new StartAccountGroupAutomationRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataOperations/StartAccountGroupAutomation\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n searchManualAutomations(r) {\n const request = r.toApiJson ? r : new SearchManualAutomationsRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataOperations/SearchManualAutomations\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SearchManualAutomationsResponse.fromProto(resp)));\n }\n rateLimitCheck(r) {\n const request = r.toApiJson ? r : new RateLimitCheckRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataOperations/RateLimitCheck\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n startAutomation(r) {\n const request = r.toApiJson ? r : new StartAutomationRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataOperations/StartAutomation\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n sendTestWebhook(r) {\n const request = r.toApiJson ? r : new SendTestWebhookRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataOperations/SendTestWebhook\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n endAutomationRun(r) {\n const request = r.toApiJson ? r : new EndAutomationRunRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataOperations/EndAutomationRun\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n startMigration() {\n return this.http.post(this._host + \"/automata.v1.AutomataOperations/StartMigration\", {}, {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n continueAutomationFromStep(r) {\n const request = r.toApiJson ? r : new ContinueAutomationFromStepRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataOperations/ContinueAutomationFromStep\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n emitAutomationEvent(r) {\n const request = r.toApiJson ? r : new EmitAutomationEventRequest(r);\n return this.http.post(this._host + \"/automata.v1.AutomataOperations/EmitAutomationEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n AutomataOperationsApiService.ɵfac = function AutomataOperationsApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutomataOperationsApiService)();\n };\n AutomataOperationsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AutomataOperationsApiService,\n factory: AutomataOperationsApiService.ɵfac,\n providedIn: 'root'\n });\n return AutomataOperationsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet AutomataDefaultAutomationsService = /*#__PURE__*/(() => {\n class AutomataDefaultAutomationsService {\n constructor(api) {\n this.api = api;\n }\n /**\n * @deprecated Use getConfigurationV2 instead\n */\n getConfiguration(partnerId, automationId) {\n return this.api.getConfiguration({\n partnerId: partnerId,\n automationId: automationId\n }).pipe(map(resp => new AutomationConfiguration(resp.configuration)));\n }\n /**\n * @deprecated There is no replacement for this method\n */\n deleteConfiguration(partnerId, automationId) {\n return this.api.deleteConfiguration({\n partnerId: partnerId,\n automationId: automationId\n }).pipe(map(() => true));\n }\n /**\n * @deprecated Use disable instead\n */\n disableForMarkets(partnerId, automationId, marketIds) {\n return this.api.disableForMarkets({\n partnerId: partnerId,\n automationId: automationId,\n marketIds: marketIds\n }).pipe(map(() => true));\n }\n /**\n * @deprecated Use enable instead\n */\n enableForMarkets(partnerId, automationId, marketIds) {\n return this.api.enableForMarkets({\n partnerId: partnerId,\n automationId: automationId,\n marketIds: marketIds\n }).pipe(map(() => true));\n }\n /**\n * @deprecated Use listDefaultAutomations instead\n */\n listDefaultAutomationsForPartner(filters, cursor, pageSize) {\n const req = new ListDefaultAutomationsForPartnerRequest({\n filters: filters,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n });\n return this.api.listDefaultAutomationsForPartner(req).pipe(map(resp => {\n return new PagedResponse(resp.results, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore, resp.pagingMetadata.totalResults);\n }));\n }\n listDefaultAutomations(filters, cursor, pageSize) {\n const req = new ListDefaultAutomationsRequest({\n filters: filters,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n });\n return this.api.listDefaultAutomations(req).pipe(map(resp => {\n return new PagedResponse(resp.results, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore, resp.pagingMetadata.totalResults);\n }));\n }\n enable(automationId, context, namespace) {\n return this.api.enableAutomationConfigurationV2({\n automationConfigurationId: {\n automationId: automationId,\n context: context,\n namespace: namespace\n }\n }).pipe(map(() => true));\n }\n disable(automationId, context, namespace) {\n return this.api.disableAutomationConfigurationV2({\n automationConfigurationId: {\n automationId: automationId,\n context: context,\n namespace: namespace\n }\n }).pipe(map(() => true));\n }\n getConfigurationV2(automationId, context, namespace) {\n return this.api.getAutomationConfigurationV2({\n automationConfigurationId: {\n automationId: automationId,\n context: context,\n namespace: namespace\n }\n }).pipe(map(resp => new AutomationConfigurationV2(resp.configuration)));\n }\n }\n AutomataDefaultAutomationsService.ɵfac = function AutomataDefaultAutomationsService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutomataDefaultAutomationsService)(i0.ɵɵinject(AutomataDefaultAutomationsApiService));\n };\n AutomataDefaultAutomationsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AutomataDefaultAutomationsService,\n factory: AutomataDefaultAutomationsService.ɵfac,\n providedIn: 'root'\n });\n return AutomataDefaultAutomationsService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AutomataOperationsService = /*#__PURE__*/(() => {\n class AutomataOperationsService {\n constructor(api) {\n this.api = api;\n }\n startAccountGroupAutomation(automationId, accountGroupIds, actionListName, namespace) {\n return this.api.startAccountGroupAutomation({\n automationId: automationId,\n accountGroupIds: accountGroupIds,\n actionListName: actionListName,\n namespace: namespace\n }).pipe(map(() => true));\n }\n //deprecated: use searchManualAutomationsWithContext instead.\n searchManualAutomations(searchTerm, partnerId, marketIds, onlySalesRunnable, entityType, pageSize, cursor) {\n if (typeof entityType === 'number') {\n entityType = [entityType];\n }\n return this.api.searchManualAutomations({\n filters: {\n partnerId: partnerId,\n marketIds: marketIds,\n onlySalesRunnable: onlySalesRunnable,\n entityTypes: entityType\n },\n searchTerm: searchTerm,\n pagingOptions: {\n pageSize: pageSize,\n cursor: cursor\n }\n }).pipe(map(resp => {\n return new PagedResponse(resp?.automations?.map(a => fillEmptyAutomationValues(a)), resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore);\n }));\n }\n searchManualAutomationsWithContext(searchTerm, partnerId, marketIds, onlySalesRunnable, entityType, context, pageSize, cursor) {\n if (typeof entityType === 'number') {\n entityType = [entityType];\n }\n return this.api.searchManualAutomations({\n filters: {\n partnerId: partnerId,\n marketIds: marketIds,\n onlySalesRunnable: onlySalesRunnable,\n entityTypes: entityType,\n context: context\n },\n searchTerm: searchTerm,\n pagingOptions: {\n pageSize: pageSize,\n cursor: cursor\n }\n }).pipe(map(resp => {\n return new PagedResponse(resp?.automations?.map(a => fillEmptyAutomationValues(a)), resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore);\n }));\n }\n sendTestWebhook(partnerId, marketId, automationId, url, verifierToken, additionalFields) {\n return this.api.sendTestWebhook({\n partnerId: partnerId,\n marketId: marketId,\n automationId: automationId,\n url: url,\n verifierToken: verifierToken,\n additionalFields: additionalFields\n }).pipe(map(() => true));\n }\n endAutomationRun(automationId, mainRunId, entityId, workflowStepId, stepExecutionUUID) {\n return this.api.endAutomationRun({\n automationId: automationId,\n mainRunId: mainRunId,\n entityId: entityId,\n workflowStepId: workflowStepId,\n stepExecutionUuid: stepExecutionUUID\n }).pipe(map(() => true));\n }\n continueAutomationFromStep(automationId, entityId, previousRunId, previousWorkflowStepId, workflowStepIdToContinue) {\n return this.api.continueAutomationFromStep({\n automationId: automationId,\n entityId: entityId,\n previousRunId: previousRunId,\n previousWorkflowStepId: previousWorkflowStepId,\n workflowStepIdToContinue: workflowStepIdToContinue\n }).pipe(map(() => true));\n }\n startAutomation(automationId, accountGroupIds, orderKeys, payloads, namespace) {\n if (accountGroupIds && (accountGroupIds || []).length > 0) {\n payloads = accountGroupIds.map(accountGroupId => ({\n entityId: accountGroupId\n }));\n }\n if (orderKeys && (orderKeys || []).length > 0) {\n payloads = orderKeys.map(orderKey => ({\n entityId: orderKey.orderId\n }));\n }\n return this.api.startAutomation({\n automationId: automationId,\n payloads: payloads,\n namespace: namespace\n }).pipe(map(() => true));\n }\n }\n AutomataOperationsService.ɵfac = function AutomataOperationsService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutomataOperationsService)(i0.ɵɵinject(AutomataOperationsApiService));\n };\n AutomataOperationsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AutomataOperationsService,\n factory: AutomataOperationsService.ɵfac,\n providedIn: 'root'\n });\n return AutomataOperationsService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nvar Comparison = /*#__PURE__*/function (Comparison) {\n Comparison[\"And\"] = \"And\";\n Comparison[\"Or\"] = \"Or\";\n Comparison[\"Not\"] = \"Not\";\n Comparison[\"StringExists\"] = \"StringExists\";\n Comparison[\"StringEquals\"] = \"StringEquals\";\n Comparison[\"StringEqualFold\"] = \"StringEqualFold\";\n Comparison[\"StringContains\"] = \"StringContains\";\n Comparison[\"StringContainsFold\"] = \"StringContainsFold\";\n Comparison[\"BoolEquals\"] = \"BoolEquals\";\n Comparison[\"BoolListContains\"] = \"BoolListContains\";\n Comparison[\"StringListContains\"] = \"StringListContains\";\n Comparison[\"StringListContainsAll\"] = \"StringListContainsAll\";\n Comparison[\"StringListContainsPrefix\"] = \"StringListContainsPrefix\";\n Comparison[\"StringListContainsPrefixAll\"] = \"StringListContainsPrefixAll\";\n Comparison[\"StringListContainsFold\"] = \"StringListContainsFold\";\n Comparison[\"IsOneOfInStringListFold\"] = \"IsOneOfInStringListFold\";\n Comparison[\"NumberEquals\"] = \"NumberEquals\";\n Comparison[\"NumberGreaterThan\"] = \"NumberGreaterThan\";\n Comparison[\"NumberExists\"] = \"NumberExists\";\n Comparison[\"RandomNumberLessThan\"] = \"RandomNumberLessThan\";\n Comparison[\"TimeEquals\"] = \"TimeEquals\";\n Comparison[\"TimeAfter\"] = \"TimeAfter\";\n Comparison[\"TimeBefore\"] = \"TimeBefore\";\n Comparison[\"TimeAfterRelative\"] = \"TimeAfterRelative\";\n Comparison[\"AlwaysTrue\"] = \"AlwaysTrue\";\n Comparison[\"OrderActionEquals\"] = \"OrderActionEquals\";\n Comparison[\"ListSizeGreaterThan\"] = \"ListSizeGreaterThan\";\n Comparison[\"Jump\"] = \"Jump\";\n return Comparison;\n}(Comparison || {});\nvar ValidationErrorCode = /*#__PURE__*/function (ValidationErrorCode) {\n ValidationErrorCode[ValidationErrorCode[\"GenericError\"] = 0] = \"GenericError\";\n ValidationErrorCode[ValidationErrorCode[\"StepMissingDataError\"] = 1] = \"StepMissingDataError\";\n ValidationErrorCode[ValidationErrorCode[\"ExtractDataError\"] = 2] = \"ExtractDataError\";\n ValidationErrorCode[ValidationErrorCode[\"BuildGraphError\"] = 3] = \"BuildGraphError\";\n ValidationErrorCode[ValidationErrorCode[\"InvalidWorkflowError\"] = 4] = \"InvalidWorkflowError\";\n ValidationErrorCode[ValidationErrorCode[\"NotFoundError\"] = 5] = \"NotFoundError\";\n ValidationErrorCode[ValidationErrorCode[\"GroupError\"] = 6] = \"GroupError\";\n ValidationErrorCode[ValidationErrorCode[\"OrphanedStepsError\"] = 7] = \"OrphanedStepsError\";\n return ValidationErrorCode;\n}(ValidationErrorCode || {});\nvar Oauth2Action = /*#__PURE__*/function (Oauth2Action) {\n Oauth2Action[\"Start\"] = \"start\";\n Oauth2Action[\"UpdateToken\"] = \"update-token\";\n return Oauth2Action;\n}(Oauth2Action || {});\n// Did Not Run Reason is the possible values of the activityData.reason for an activity with the stage of Stage_STAGE_WORKFLOW_DID_NOT_RUN\nvar DidNotRunReason = /*#__PURE__*/function (DidNotRunReason) {\n DidNotRunReason[\"AutomationRunType\"] = \"AutomationRunType\";\n DidNotRunReason[\"AutomationOneAtATimeRunType\"] = \"AutomationRunTypeOneAtATime\";\n DidNotRunReason[\"RateLimited\"] = \"RateLimited\";\n DidNotRunReason[\"TriggerFiltersFailed\"] = \"TriggerFiltersFailed\";\n return DidNotRunReason;\n}(DidNotRunReason || {});\n/* eslint-disable */\nclass Rule {\n static fromRuleInterface(ri) {\n const variablePath = ri.variablePath || ri.variable_path;\n const comparison = ri.comparison;\n let rawValue = ri.value;\n if (typeof ri.value === 'string') {\n try {\n rawValue = JSON.parse(ri.value);\n } catch (e) {\n // value was just a bare string\n }\n }\n let value = rawValue;\n if (comparison === Comparison.Not) {\n value = Rule.fromRuleInterface(rawValue);\n }\n if (comparison === Comparison.And || comparison === Comparison.Or) {\n const ruleList = [];\n for (let i = 0; i < (rawValue || []).length; i++) {\n ruleList[i] = Rule.fromRuleInterface(rawValue[i]);\n }\n value = ruleList;\n }\n const rule = new Rule(variablePath, value, ri.next);\n rule.comparison = ri.comparison;\n return rule;\n }\n constructor(variablePath, value, next) {\n this.variablePath = variablePath;\n this.variable_path = variablePath;\n this.value = value;\n this.next = next;\n }\n toRuleInterface() {\n return {\n variablePath: this.getVariablePath(),\n value: JSON.stringify(this.value),\n next: this.next,\n comparison: this.comparison\n };\n }\n // deepEquals will compare the with the rule passed in to see if they have the same logical structure\n // if ignoreValue is true it won't compare against values that aren't rules (not) or a list of rules (and/or)\n deepEquals(rule, ignoreValue) {\n if (this.getVariablePath() !== rule.getVariablePath()) {\n return false;\n }\n if (this.next !== rule.next) {\n return false;\n }\n if (this.comparison !== rule.comparison) {\n return false;\n }\n if (this.comparison === Comparison.Not) {\n const knownAValue = this.value;\n const knownBValue = rule.value;\n return knownAValue.deepEquals(knownBValue, ignoreValue);\n } else if (this.comparison === Comparison.And || this.comparison === Comparison.Or) {\n const knownAValue = this.value;\n const knownBValue = rule.value;\n if (knownAValue.length !== knownBValue.length) {\n return false;\n }\n for (let i = 0; i < knownAValue.length; i++) {\n const same = knownAValue[i].deepEquals(knownBValue[i], ignoreValue);\n if (!same) {\n return false;\n }\n }\n } else if (!ignoreValue) {\n // Only compare the value if the comparison isn't a logical operator\n if (this.comparison === Comparison.StringListContains || this.comparison === Comparison.StringListContainsAll || this.comparison === Comparison.StringListContainsPrefix || this.comparison === Comparison.StringListContainsPrefixAll || this.comparison === Comparison.StringListContainsFold || this.comparison === Comparison.IsOneOfInStringListFold) {\n const value1 = this.value;\n const value2 = rule.value;\n if (value1.length !== value2.length) {\n return false;\n }\n value1.map((value, index) => {\n if (value !== value2[index]) {\n return false;\n }\n });\n return true;\n }\n if (this.value !== rule.value) {\n return false;\n }\n }\n return true;\n }\n // extractValue returns the value or list of values of the rule tree.\n // If there is an AND/OR in the tree the child values are converted to a list\n // The value of NOT is ignored and it's child value is returned.\n // A typed rules eg StringEquals will return the string used for comparison\n extractValue() {\n if (this.comparison === Comparison.Not) {\n const knownRule = this.value;\n return knownRule.extractValue();\n }\n if (this.comparison === Comparison.And || this.comparison === Comparison.Or) {\n const values = [];\n const knownChildRules = this.value;\n for (let i = 0; i < knownChildRules.length; i++) {\n values[i] = knownChildRules[i].extractValue();\n }\n return values;\n }\n return this.value;\n }\n // setValue expects a list if the comparison is AND/OR, and a single value otherwise\n // If the comparison is AND/OR it will iterate the child rules and recursively set the value. If a list of values\n // passed in does not match the count of the children the values will be set in order until one is exhausted\n // If the comparison is NOT the value of the child will be set instead\n // If the comparison is a typed rule eg StringEquals it will set the value field\n setValue(value) {\n if (this.comparison === Comparison.Not) {\n const knownRule = this.value;\n knownRule.setValue(value);\n return;\n }\n if (this.comparison === Comparison.And || this.comparison === Comparison.Or) {\n const knownValue = value;\n const knownChildRules = this.value;\n const maxLength = Math.min(knownValue.length, knownChildRules.length);\n for (let i = 0; i < maxLength; i++) {\n knownChildRules[i].setValue(knownValue[i]);\n }\n return;\n }\n this.value = value;\n }\n getVariablePath() {\n if (this.comparison === Comparison.Not) {\n const knownRule = this.value;\n return knownRule.getVariablePath();\n }\n // Not really sure what to return for AND/OR and not sure if this is even required so just returning the\n // concatenated variable paths\n if (this.comparison === Comparison.And || this.comparison === Comparison.Or) {\n const values = [];\n const knownChildRules = this.value;\n if ((knownChildRules || []).length === 0) {\n return \"\";\n }\n for (let i = 0; i < knownChildRules.length; i++) {\n values[i] = knownChildRules[i].getVariablePath();\n }\n return values.reduce((prev, cur) => prev + cur);\n }\n return this.variablePath || this.variable_path;\n }\n /**\n * listValuesByVariablePath returns the value(s) of the entry in the rule's value for a given\n * variablePath. It's returned in a list to support scenarios where there is more than one rule\n * that matches the variablePath. Returns empty list if no entry found for the given variablePath.\n *\n * For example `.path` returns values for {.WorkflowStep.stepId.path} and {.path}\n * This also works for `.path.subpath` on {.WorkflowStep.stepId.path.subpath}\n */\n listValuesByVariablePath(variablePath) {\n // Remove {} so we can support {.path} as an input\n variablePath = variablePath.replace(\"{\", \"\").replace(\"}\", \"\");\n if (this.comparison === Comparison.Not) {\n const knownRule = this.value;\n if (knownRule.getVariablePath().includes(variablePath)) {\n return [knownRule.value];\n }\n }\n // For AND/OR, return the concatenated values\n if (this.comparison === Comparison.And || this.comparison === Comparison.Or) {\n const values = [];\n const knownChildRules = this.value;\n for (let i = 0; i < knownChildRules.length; i++) {\n const child = knownChildRules[i];\n values.push(...child.listValuesByVariablePath(variablePath));\n }\n return values;\n }\n if (this.getVariablePath().includes(variablePath)) {\n return [this.value];\n }\n return [];\n }\n // setValueByItsVariablePath sets the value of a particular entry in the rule's value given\n // it's variablePath\n setValueByItsVariablePath(variablePath, newValue) {\n // handle when the value is a single value\n if (this.value.length === undefined) {\n if (this.getVariablePath() === variablePath) {\n this.setValue(newValue);\n }\n return;\n }\n // otherwise it's a list\n this.value.map(v => {\n if (v.variablePath === variablePath) {\n v.setValue(newValue);\n }\n return v;\n });\n }\n}\nclass Not extends Rule {\n constructor(value, next) {\n super('', value, next);\n this.comparison = Comparison.Not;\n }\n}\nclass And extends Rule {\n constructor(value, next) {\n super('', value, next);\n this.comparison = Comparison.And;\n }\n}\nclass Or extends Rule {\n constructor(value, next) {\n super('', value, next);\n this.comparison = Comparison.Or;\n }\n}\nclass StringExists extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.StringExists;\n }\n}\nclass StringEquals extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.StringEquals;\n }\n}\nclass StringEqualFold extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.StringEqualFold;\n }\n}\nclass StringContains extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.StringContains;\n }\n}\nclass StringContainsFold extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.StringContainsFold;\n }\n}\nclass BoolEquals extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.BoolEquals;\n }\n}\nclass BoolListContains extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.BoolListContains;\n }\n}\nclass ListSizeGreaterThan extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.ListSizeGreaterThan;\n }\n}\nclass StringListContains extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.StringListContains;\n }\n}\nclass StringListContainsAll extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.StringListContainsAll;\n }\n}\nclass StringListContainsPrefix extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.StringListContainsPrefix;\n }\n}\nclass StringListContainsPrefixAll extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.StringListContainsPrefixAll;\n }\n}\nclass StringListContainsFold extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.StringListContainsFold;\n }\n}\nclass IsOneOfInStringListFold extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.IsOneOfInStringListFold;\n }\n}\nclass NumberGreaterThan extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.NumberGreaterThan;\n }\n}\nclass NumberEquals extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.NumberEquals;\n }\n}\nclass NumberExists extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.NumberExists;\n }\n}\nclass RandomNumberLessThan extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.RandomNumberLessThan;\n }\n}\nclass TimeAfter extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.TimeAfter;\n }\n}\nclass TimeBefore extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.TimeBefore;\n }\n}\nclass TimeEquals extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.TimeEquals;\n }\n}\nclass TimeAfterRelative extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.TimeAfterRelative;\n }\n}\nclass AlwaysTrue extends Rule {\n constructor(next) {\n super('', null, next);\n this.comparison = Comparison.AlwaysTrue;\n }\n}\nclass OrderActionEquals extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.OrderActionEquals;\n }\n}\nclass Jump extends Rule {\n constructor() {\n super(...arguments);\n this.comparison = Comparison.Jump;\n }\n}\n\n// NOTE: This logic should be consistent with the utils functions in the automata repo\nfunction IsAutomationAcceptingNewEvents(a) {\n return a?.runningState === RunningState.RUNNING_STATE_RUNNING;\n}\nfunction IsAutomationDraining(a) {\n return a?.runningState === RunningState.RUNNING_STATE_DRAINING;\n}\nfunction IsAutomationStopped(a) {\n return !a || a.runningState === RunningState.RUNNING_STATE_STOPPED;\n}\nfunction IsAutomationAPublishedTemplate(a) {\n return !!a?.isTemplate && !!a?.templatePublishedTime;\n}\nfunction IsAutomationAPublishedDefaultAutomation(a) {\n return !!a?.isDefaultAutomation && !IsAutomationStopped(a);\n}\nfunction DoesAutomationHaveABrokenToken(a) {\n return !!a?.token?.brokenTime;\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Activity, AlwaysTrue, And, AutomataDefaultAutomationsService, AutomataDevelopmentService, AutomataOperationsService, AutomataService, Automation, AutomationConfiguration, AutomationConfigurationV2, AutomationPublishedState, AutomationSettings, AutomationStatus, AutomationType, BoolEquals, BoolListContains, Choices, Comparison, Context, DataType, DefaultAutomation, DefaultAutomationStatus, DefaultAutomationWithConfiguration, DidNotRunReason, DoesAutomationHaveABrokenToken, EntityType, ErrorHandlingType, EventTriggerDefinition, FieldMask, FlattenedConfigDataType, Group, IsAutomationAPublishedDefaultAutomation, IsAutomationAPublishedTemplate, IsAutomationAcceptingNewEvents, IsAutomationDraining, IsAutomationStopped, IsOneOfInStringListFold, Jump, ListSizeGreaterThan, ListTaskDefinition, Not, NumberEquals, NumberExists, NumberGreaterThan, Oauth2Action, Or, OrderActionEquals, OutputParameter, PagedResponse, PublishedState, RandomNumberLessThan, RateLimitUnit, Rule, RunType, RunningState, SleepWaitConditions, Stage, StringContains, StringContainsFold, StringEqualFold, StringEquals, StringExists, StringListContains, StringListContainsAll, StringListContainsFold, StringListContainsPrefix, StringListContainsPrefixAll, TaskDefinition, TaskType, TimeAfter, TimeAfterRelative, TimeBefore, TimeEquals, Token, ValidationErrorCode, ValidationType, WorkflowStep, WorkflowStepOutputParameterContainer };\n","import { TaskType } from '@vendasta/automata';\n\nexport function taskTypeToString(taskType: TaskType): string {\n switch (taskType) {\n case TaskType.TASK_TYPE_ACTION:\n return 'action';\n case TaskType.TASK_TYPE_TRIGGER:\n return 'trigger';\n case TaskType.TASK_TYPE_FILTER:\n return 'filter';\n case TaskType.TASK_TYPE_BUILDING_BLOCKS:\n return 'buildingblocks';\n default:\n return '';\n }\n}\n\nexport function stringToTaskType(taskType: string): TaskType {\n switch (taskType) {\n case 'action':\n return TaskType.TASK_TYPE_ACTION;\n case 'trigger':\n return TaskType.TASK_TYPE_TRIGGER;\n case 'filter':\n return TaskType.TASK_TYPE_FILTER;\n case 'buildingblocks':\n return TaskType.TASK_TYPE_BUILDING_BLOCKS;\n default:\n return TaskType.TASK_TYPE_UNSPECIFIED;\n }\n}\n\nexport function buildLoggingUrl(url: string): string {\n const functionName = url.replace('https://us-central1-repcore-prod.cloudfunctions.net/', '');\n return `https://console.cloud.google.com/logs/query;query=resource.type%20%3D%20%22cloud_function%22%0Aresource.labels.function_name%20%3D%20%22${functionName}%22%0Alog_name%3D%22projects%2Frepcore-prod%2Flogs%2Frequest%22?project=repcore-prod`;\n}\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { AutomataDevelopmentService, EventTriggerDefinitionInterface } from '@vendasta/automata';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { catchError, map, scan, switchMap, tap } from 'rxjs/operators';\nimport { PagedResponse } from '@vendasta/automata/lib/shared';\n\n@Component({\n selector: 'app-event-trigger-definition-selector-dialog',\n templateUrl: './event-trigger-definition-selector-dialog.component.html',\n styleUrls: ['./event-trigger-definition-selector-dialog.component.scss'],\n})\nexport class EventTriggerDefinitionSelectorDialogComponent implements OnInit {\n eventTriggerDefinitions$: Observable;\n nextCursorStorage: string;\n nextCursorTrigger$$: BehaviorSubject = new BehaviorSubject(null);\n\n private hasMore$$: BehaviorSubject = new BehaviorSubject(false);\n hasMore$: Observable = this.hasMore$$.asObservable();\n\n loading = false;\n\n constructor(\n public dialogRef: MatDialogRef,\n private readonly automataDevelopmentService: AutomataDevelopmentService,\n private readonly cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.eventTriggerDefinitions$ = this.nextCursorTrigger$$.pipe(\n tap(() => {\n this.loading = true;\n this.cdr.detectChanges();\n }),\n switchMap((cursor) => this.automataDevelopmentService.listEventTriggerDefinitions(null, cursor, 25)),\n tap((resp: PagedResponse) => this.hasMore$$.next(!!resp?.hasMore)),\n tap((resp: PagedResponse) => (this.nextCursorStorage = resp?.nextCursor || '')),\n map((resp: PagedResponse) => resp?.results || []),\n scan((acc, curr) => {\n return [...acc, ...curr];\n }, []),\n tap(() => {\n this.loading = false;\n this.cdr.detectChanges();\n }),\n catchError((err) => {\n console.error(err);\n return throwError(err);\n }),\n );\n }\n\n loadMore(inViewportEvent: any): void {\n if (inViewportEvent.visible) {\n this.nextCursorTrigger$$.next(this.nextCursorStorage);\n }\n }\n\n selectEventTriggerDefinition(e: EventTriggerDefinitionInterface): void {\n this.dialogRef.close(e);\n }\n}\n","

Select an event trigger definition

\n\n\n \n
\n \n 0\">\n \n \n {{ eventTriggerDefinition.name }}\n \n\n \n \n \n
\n
\n
\n \n \n \n \n
\n
\n\n \n\n","import { EventEmitter, Input, Directive } from '@angular/core';\nimport { ColumnDefinition, CustomCellComponent } from '@vendasta/va-filter2-table';\nimport { TaskDefinitionRow } from '../task-definitions-table.service';\n\n@Directive()\nexport abstract class TaskDefinitionsTableCustomComponent implements CustomCellComponent {\n @Input() columnDefinition: ColumnDefinition;\n @Input() element: TaskDefinitionRow;\n @Input() eventEmitter: EventEmitter;\n}\n","import { GenericTableLabels } from '@vendasta/va-filter2-table';\nimport { Context, DataType, PublishedState, TaskType, ValidationType } from '@vendasta/automata';\n\nexport const AUTOMATION_TABLE_LABELS: GenericTableLabels = {\n noResults: 'No results',\n cancel: 'Cancel',\n none: 'None',\n update: 'Update',\n sortBy: 'Sort by',\n thenSortBy: 'Then sort by',\n addAnotherSortColumn: 'Add another sort column',\n chooseColumnToSortBy: 'Choose column to sort by',\n columnSorting: {\n date: {\n ascending: 'latest',\n descending: 'earliest',\n },\n number: {\n ascending: 'ascending',\n descending: 'descending',\n },\n string: {\n ascending: 'a to z',\n descending: 'z to a',\n },\n default: {\n ascending: 'ascending',\n descending: 'descending',\n },\n },\n columnSelector: {\n buttonText: 'Columns',\n },\n export: {\n buttonText: '',\n buttonTooltipBeforeCount: '',\n buttonTooltipAfterCount: '',\n },\n};\n\nexport const taskTypeLabels = {\n [TaskType.TASK_TYPE_ACTION]: 'Action',\n [TaskType.TASK_TYPE_TRIGGER]: 'Trigger',\n [TaskType.TASK_TYPE_BUILDING_BLOCKS]: 'Building Blocks',\n [TaskType.TASK_TYPE_FILTER]: 'Filter',\n};\n\nexport const taskTypes = [\n TaskType.TASK_TYPE_ACTION,\n TaskType.TASK_TYPE_TRIGGER,\n TaskType.TASK_TYPE_BUILDING_BLOCKS,\n TaskType.TASK_TYPE_FILTER,\n];\n\nexport const publishedStateLabels = {\n [PublishedState.PUBLISHED_STATE_PUBLISHED]: 'Published',\n [PublishedState.PUBLISHED_STATE_DRAFT]: 'Draft',\n};\n\nexport const publishedStates = [PublishedState.PUBLISHED_STATE_PUBLISHED, PublishedState.PUBLISHED_STATE_DRAFT];\n\nexport const validationTypeLabels = {\n [ValidationType.VALIDATION_TYPE_STREAM]: 'Stream',\n [ValidationType.VALIDATION_TYPE_SYSTEM]: 'System',\n [ValidationType.VALIDATION_TYPE_USER_PROVIDED]: 'User Provided',\n};\n\nexport const validationTypes = [\n {\n name: ValidationType.VALIDATION_TYPE_STREAM,\n description: `Run time data that is available for other steps to use. This is a combination of the output of the trigger and contributed to by the output of pervious steps.\n E.g. The activate products step returns the product that was activated so that is available in the \"stream\" for subsequent steps`,\n },\n {\n name: ValidationType.VALIDATION_TYPE_SYSTEM,\n description:\n 'This is data that the system provides for every automation. This validation type essentially means \"don\\'t worry about validating this because the data is guaranteed to exist\"',\n },\n {\n name: ValidationType.VALIDATION_TYPE_USER_PROVIDED,\n description:\n 'This is data that the user inputs via the automation side panel. These data fields are ignored when validating what steps you can add but are included when validating the automation when the user saves',\n },\n];\n\nexport const supportedContexts = [Context.AUTOMATION_CONTEXT_PARTNER, Context.AUTOMATION_CONTEXT_SMB];\nexport const supportedContextsLabels = {\n [Context.AUTOMATION_CONTEXT_PARTNER]: 'Partner',\n [Context.AUTOMATION_CONTEXT_SMB]: 'SMB',\n};\n\nconst dataTypeLabelsMap = new Map([\n [DataType.DATA_TYPE_UNKNOWN, 'Unknown'],\n [DataType.DATA_TYPE_STRING, 'String'],\n [DataType.DATA_TYPE_BOOLEAN, 'Boolean'],\n [DataType.DATA_TYPE_ORDER_ACTION_TYPE, 'Order action'],\n [DataType.DATA_TYPE_ORDER_DECLINED_REASON_IDS, 'Order declined reason IDs'],\n [DataType.DATA_TYPE_ACCOUNT_GROUP_ID, 'Account'],\n [DataType.DATA_TYPE_ORDER_ID, 'Order'],\n [DataType.DATA_TYPE_SMB_USER_ID, 'SMB User'],\n [DataType.DATA_TYPE_FULFILLMENT_PROJECT_ID, 'Fulfillment Project'],\n [DataType.DATA_TYPE_EMAIL_ID, 'Email'],\n [DataType.DATA_TYPE_EMAIL_EVENT, 'Email Event'],\n [DataType.DATA_TYPE_OPPORTUNITY_ID, 'Opportunity'],\n [DataType.DATA_TYPE_COMPANY_ID, 'Company'],\n [DataType.DATA_TYPE_CONTACT_ID, 'Contact'],\n [DataType.DATA_TYPE_JSON, 'JSON'],\n [DataType.DATA_TYPE_PRODUCT, 'Product'],\n [DataType.DATA_TYPE_TASK, 'CRM Task'],\n [DataType.DATA_TYPE_CRM_NOTE, 'CRM Note'],\n [DataType.DATA_TYPE_CRM_EMAIL, 'CRM Email'],\n [DataType.DATA_TYPE_CRM_CALL, 'CRM Call'],\n [DataType.DATA_TYPE_CRM_MEETING, 'CRM Meeting'],\n [DataType.DATA_TYPE_CRM_SMS, 'CRM Sms'],\n [DataType.DATA_TYPE_CRM_INBOX, 'CRM Inbox'],\n [DataType.DATA_TYPE_CRM_LINKEDIN, 'CRM Linkedin'],\n [DataType.DATA_TYPE_INTEGRATION_CONNECTION, 'Integration Connection'],\n [DataType.DATA_TYPE_NUMBER, 'Number'],\n [DataType.DATA_TYPE_CURRENCY, 'Currency'],\n [DataType.DATA_TYPE_DATETIME, 'Datetime'],\n [DataType.DATA_TYPE_CRM_OPPORTUNITY_ID, 'CRM Opportunity'],\n]);\n\nexport const dataTypeLabels = Object.fromEntries(dataTypeLabelsMap.entries());\n\nexport const dataTypes: DataType[] = [...dataTypeLabelsMap.keys()];\n","import { Component, OnInit } from '@angular/core';\nimport { TaskDefinitionsTableCustomComponent } from './common-cell.component';\nimport { taskTypeLabels } from '../../../../common/constants';\n\n@Component({\n template: `\n
{{ display }}
\n `,\n})\nexport class TaskTypeCellComponent extends TaskDefinitionsTableCustomComponent implements OnInit {\n display: string;\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.display = taskTypeLabels[this.element.taskDefinition.taskType];\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TaskDefinitionsTableCustomComponent } from './common-cell.component';\nimport { publishedStateLabels } from '../../../../common/constants';\n\n@Component({\n template: `\n
{{ display }}
\n `,\n})\nexport class PublishedStateCellComponent extends TaskDefinitionsTableCustomComponent implements OnInit {\n display: string;\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.display = publishedStateLabels[this.element.taskDefinition.publishedState];\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TaskDefinitionsTableCustomComponent } from './common-cell.component';\n\n@Component({\n template: `\n
{{ display }}
\n `,\n})\nexport class InputParamsCellComponent extends TaskDefinitionsTableCustomComponent implements OnInit {\n display: string;\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n const ids = this.element?.taskDefinition?.inputParameters?.map((ip) => ip.settings.id);\n this.display = (ids || []).join(', ');\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TaskDefinitionsTableCustomComponent } from './common-cell.component';\n\n@Component({\n template: `\n
{{ display }}
\n `,\n})\nexport class OutputParamsCellComponent extends TaskDefinitionsTableCustomComponent implements OnInit {\n display: string;\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n const ids = this.element?.taskDefinition?.outputParameters?.map((ip) => ip.settings.id);\n this.display = (ids || []).join(', ');\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CellValueService, ColumnDefinition } from '@vendasta/va-filter2-table';\n\n@Component({\n template: `\n {{ yesno }}\n `,\n})\nexport class BooleanCellComponent implements OnInit {\n @Input() columnDefinition: ColumnDefinition;\n @Input() element: T;\n yesno = 'YES';\n\n constructor(private readonly cellValueService: CellValueService) {}\n\n ngOnInit(): void {\n if (!this.cellValueService.getCellValue(this.columnDefinition.id, this.columnDefinition.field, this.element)) {\n this.yesno = 'NO';\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TaskDefinitionsTableCustomComponent } from './common-cell.component';\n\n@Component({\n template: `\n {{ name }}\n `,\n})\nexport class NameCellComponent extends TaskDefinitionsTableCustomComponent implements OnInit {\n name: string;\n id: string;\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.name = this.element.taskDefinition.name;\n this.id = this.element.taskDefinition.id;\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TaskDefinitionsTableCustomComponent } from './common-cell.component';\nimport { buildLoggingUrl } from '../../../conversion';\n\n@Component({\n template: `\n \n {{ display }}\n \n `,\n})\nexport class ResourceCellComponent extends TaskDefinitionsTableCustomComponent implements OnInit {\n display: string;\n url: string;\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n if (this.element?.taskDefinition?.resource) {\n this.url = buildLoggingUrl(this.element.taskDefinition.resource.url);\n this.display = this.element.taskDefinition.resource.url;\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TaskDefinitionsTableCustomComponent } from './common-cell.component';\nimport { supportedContextsLabels } from '../../../../common/constants';\n\n@Component({\n template: `\n {{ context }}\n `,\n})\nexport class SupportedContextsCellComponent extends TaskDefinitionsTableCustomComponent implements OnInit {\n contexts: string[];\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.contexts = this.element.taskDefinition.supportedContexts.map((context) => supportedContextsLabels[context]);\n }\n}\n","import { ColumnType, Pinned, TableDefinition } from '@vendasta/va-filter2-table';\nimport { TaskDefintionsFiltersService } from './task-defintions-filters.service';\nimport { TaskTypeCellComponent } from './cells/task-type-cell.component';\nimport { PublishedStateCellComponent } from './cells/published-state-cell.component';\nimport { InputParamsCellComponent } from './cells/input-params-cell.component';\nimport { OutputParamsCellComponent } from './cells/output-params-cell.component';\nimport { BooleanCellComponent } from '../../../common/boolean-cell.component';\nimport { DateCellComponent } from '../../../common/date-cell.component';\nimport { AUTOMATION_TABLE_LABELS } from '../../../common/constants';\nimport { NameCellComponent } from './cells/name-cell.component';\nimport { ResourceCellComponent } from './cells/resource-cell.component';\nimport { SupportedContextsCellComponent } from './cells/supported-contexts-cell.component';\n\nexport const tableDefinitionFactory = (filterService: TaskDefintionsFiltersService) => {\n const tableDefintion = TASK_DEFINITIONS_TABLE;\n tableDefintion.filters = filterService.filters;\n return tableDefintion;\n};\n\nconst TASK_DEFINITIONS_TABLE: TableDefinition = {\n id: 'task-definitions',\n labels: AUTOMATION_TABLE_LABELS,\n options: {\n selectableRows: false,\n csvExportEnabled: false,\n tableTitle: 'Task definitions',\n },\n columns: [\n {\n id: 'row',\n displayName: 'Row',\n pinned: Pinned.PINNED_LEFT,\n type: ColumnType.COLUMN_TYPE_STRING,\n field: 'rowNumber',\n },\n {\n id: 'name',\n displayName: 'Name',\n cellComponent: NameCellComponent,\n },\n {\n id: 'resource',\n displayName: 'Resource',\n cellComponent: ResourceCellComponent,\n },\n {\n id: 'taskType',\n displayName: 'Task type',\n field: 'taskDefinition.taskType',\n cellComponent: TaskTypeCellComponent,\n },\n {\n id: 'publishedState',\n displayName: 'Published state',\n field: 'taskDefinition.publishedState',\n cellComponent: PublishedStateCellComponent,\n },\n {\n id: 'inputParams',\n displayName: 'Input Params',\n cellComponent: InputParamsCellComponent,\n },\n {\n id: 'outputParams',\n displayName: 'Output Params',\n cellComponent: OutputParamsCellComponent,\n },\n {\n id: 'internal',\n displayName: 'Internal',\n field: 'taskDefinition.internal',\n cellComponent: BooleanCellComponent,\n },\n {\n id: 'availableInDefaultAutomations',\n displayName: 'Available In Default Automations',\n field: 'taskDefinition.availableInDefaultAutomations',\n cellComponent: BooleanCellComponent,\n },\n {\n id: 'id',\n displayName: 'ID',\n type: ColumnType.COLUMN_TYPE_STRING,\n field: 'taskDefinition.id',\n },\n {\n id: 'created',\n displayName: 'Created',\n field: 'taskDefinition.created',\n cellComponent: DateCellComponent,\n },\n {\n id: 'supportedContexts',\n displayName: 'Supported Contexts',\n cellComponent: SupportedContextsCellComponent,\n },\n ],\n};\n","import { Injectable } from '@angular/core';\nimport {\n TaskDefinition,\n ListTaskDefinitionsRequestFiltersInterface,\n AutomataDevelopmentService,\n} from '@vendasta/automata';\nimport { LoadRequest, TableDataService } from '@vendasta/va-filter2-table';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map, shareReplay, take } from 'rxjs/operators';\nimport { Filters } from './task-defintions-filters.service';\n\nexport interface TaskDefinitionRow {\n taskDefinition: TaskDefinition;\n rowNumber: number;\n}\n\nfunction convertFilters(filters: Filters): ListTaskDefinitionsRequestFiltersInterface {\n const f: ListTaskDefinitionsRequestFiltersInterface = {\n internal: filters.internal,\n onlyAvailableInDefaultAutomations: filters.onlyDefault,\n };\n\n if (filters.taskType) {\n f.taskType = filters.taskType;\n }\n if (filters.publishedState) {\n f.publishedState = filters.publishedState;\n }\n\n if (filters.searchTerm) {\n f.name = filters.searchTerm;\n }\n\n if (filters.supportedContexts) {\n f.supportedContexts = filters.supportedContexts;\n }\n\n return f;\n}\n\n@Injectable()\nexport class TaskDefinitionsTableService implements TableDataService {\n private readonly totalResults$$: BehaviorSubject = new BehaviorSubject(0);\n public readonly totalResults$: Observable = this.totalResults$$.asObservable();\n private cursors: { [id: number]: string } = { 0: '' };\n\n constructor(private readonly automataDevelopmentService: AutomataDevelopmentService) {}\n\n initialize(): void {\n // nothing to initialize currently\n }\n\n load(request: LoadRequest): Observable {\n if (request.pageIndex === 0) {\n this.cursors = { 0: '' };\n }\n const nextCursor = this.cursors[request.pageIndex] || '';\n const filters = convertFilters(request.filters);\n return this.listTaskDefinitions(nextCursor, filters, request.pageSize, request.pageIndex);\n }\n\n listTaskDefinitions(\n nextCursor: string,\n filters: ListTaskDefinitionsRequestFiltersInterface,\n pageSize: number,\n pageIndex: number,\n ): Observable {\n const listResponse$ = this.automataDevelopmentService\n .listTaskDefinitions(filters, null, nextCursor, pageSize)\n .pipe(take(1), shareReplay(1));\n\n listResponse$.pipe(take(1)).subscribe((resp) => {\n this.cursors[pageIndex + 1] = resp.nextCursor;\n this.totalResults$$.next(resp.totalResults);\n });\n let current = pageSize * pageIndex;\n return listResponse$.pipe(\n map((listResponse) => {\n return listResponse.results?.map((t) => {\n current++;\n return {\n taskDefinition: t.taskDefinition,\n rowNumber: current,\n };\n });\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Context, PublishedState, TaskType } from '@vendasta/automata';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport {\n CheckboxFilterControl,\n FilterGroup,\n FilterService,\n MultiSelectFilterControl,\n SearchFilterControl,\n SelectFilterControl,\n} from '@vendasta/va-filter2';\nimport { of } from 'rxjs';\nimport {\n publishedStateLabels,\n supportedContexts,\n supportedContextsLabels,\n taskTypeLabels,\n} from '../../../common/constants';\n\nexport interface Filters {\n taskType: TaskType;\n publishedState: PublishedState;\n internal: boolean;\n onlyDefault: boolean;\n searchTerm: string;\n supportedContexts: Context[];\n}\n\n@Injectable()\nexport class TaskDefintionsFiltersService {\n filters: FilterGroup = new FilterGroup('task-definitions');\n\n constructor(private readonly filterService: FilterService, private readonly snackbarService: SnackbarService) {\n const taskTypes: Map = new Map();\n taskTypes.set('Action', TaskType.TASK_TYPE_ACTION);\n taskTypes.set('Trigger', TaskType.TASK_TYPE_TRIGGER);\n taskTypes.set('Building Blocks', TaskType.TASK_TYPE_BUILDING_BLOCKS);\n taskTypes.set('Filter', TaskType.TASK_TYPE_FILTER);\n\n const publishedStates: Map = new Map();\n publishedStates.set('Published', PublishedState.PUBLISHED_STATE_PUBLISHED);\n publishedStates.set('Draft', PublishedState.PUBLISHED_STATE_DRAFT);\n\n const supportedContextsFilter: Map = new Map();\n supportedContexts.map((context) => supportedContextsFilter.set(supportedContextsLabels[context], context));\n\n this.filters.addToolbarSection(new SearchFilterControl('searchTerm', 'Search'));\n this.filters.addSection('Filters', [\n new SelectFilterControl('taskType', 'Task Type', of(taskTypes), false, {\n appliedValueMapper: (name, value) => ({ name, label: taskTypeLabels[value] }),\n }),\n new SelectFilterControl('publishedState', 'Published State', of(publishedStates), false, {\n appliedValueMapper: (name, value) => ({ name, label: publishedStateLabels[value] }),\n }),\n new MultiSelectFilterControl('supportedContexts', 'Supported Contexts', of(supportedContextsFilter), null, {\n appliedValueMapper: (name, value) => ({ name: name, value: value, label: supportedContextsLabels[value] }),\n }),\n ]);\n\n this.filters.addSection('Extra Stuff', [\n new CheckboxFilterControl('internal', 'Internal', false, {\n appliedValueMapper: (name) => ({ name, label: name }),\n }),\n new CheckboxFilterControl('onlyDefault', 'Available In Default', false, {\n appliedValueMapper: (name) => ({ name, label: name }),\n }),\n ]);\n }\n}\n","import { Component } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\nimport { Router } from '@angular/router';\nimport { TaskType } from '@vendasta/automata';\nimport { TABLE_DEFINITION, VaFilteredMatTableService, VaTableSortService } from '@vendasta/va-filter2-table';\nimport { take } from 'rxjs/operators';\nimport { taskTypeToString } from '../conversion';\nimport { EventTriggerDefinitionSelectorDialogComponent } from '../create-task-definition-page/event-trigger-definition-selector-dialog/event-trigger-definition-selector-dialog.component';\nimport { tableDefinitionFactory } from './task-defintions-table/table-model';\nimport { TaskDefinitionsTableService } from './task-defintions-table/task-definitions-table.service';\nimport { TaskDefintionsFiltersService } from './task-defintions-table/task-defintions-filters.service';\n\n@Component({\n selector: 'app-task-definitions-list-page',\n templateUrl: './task-definitions-list-page.component.html',\n styleUrls: ['./task-definitions-list-page.component.scss'],\n providers: [\n TaskDefinitionsTableService,\n TaskDefintionsFiltersService,\n {\n provide: TABLE_DEFINITION,\n useFactory: tableDefinitionFactory,\n deps: [TaskDefintionsFiltersService],\n },\n VaFilteredMatTableService,\n VaTableSortService,\n { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: {} },\n ],\n})\nexport class TaskDefinitionsListPageComponent {\n TaskType = TaskType;\n\n constructor(\n readonly dataService: TaskDefinitionsTableService,\n private dialog: MatDialog,\n private readonly router: Router,\n ) {}\n\n createTaskDefinition(taskType: TaskType): void {\n if (taskType === TaskType.TASK_TYPE_TRIGGER) {\n const dialogRef = this.dialog.open(EventTriggerDefinitionSelectorDialogComponent);\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((result) => {\n if (result?.eventTypeId) {\n this.router.navigate(['/automations/task-definitions/create'], {\n queryParams: { taskType: taskTypeToString(taskType), eventTriggerDefinitionId: result.eventTypeId },\n });\n }\n });\n } else {\n this.router.navigate(['/automations/task-definitions/create'], {\n queryParams: { taskType: taskTypeToString(taskType) },\n });\n }\n }\n}\n","\n \n \n List Task Definitions\n \n \n Import\n \n \n \n \n \n \n \n \n \n \n \n \n\n","import { FilterGroup, FilterService, SearchFilterControl } from '@vendasta/va-filter2';\nimport { Injectable } from '@angular/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\n\nexport interface Filters {\n searchTerm: string;\n}\n\n@Injectable()\nexport class EventTriggerDefinitionsFiltersService {\n filters: FilterGroup = new FilterGroup('event-trigger-definitions');\n\n constructor(private readonly filterService: FilterService, private readonly snackbarService: SnackbarService) {\n this.filters.addToolbarSection(new SearchFilterControl('searchTerm', 'Search'));\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n AutomataDevelopmentService,\n EventTriggerDefinitionInterface,\n ListEventTriggerDefinitionRequestFiltersInterface,\n} from '@vendasta/automata';\nimport { LoadRequest, TableDataService } from '@vendasta/va-filter2-table';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map, shareReplay, take } from 'rxjs/operators';\nimport { Filters } from './event-trigger-definitions-filters.service';\n\nexport interface EventTriggerDefinitionRow {\n eventTriggerDefinition: EventTriggerDefinitionInterface;\n rowNumber: number;\n}\n\nfunction convertFilters(filters: Filters): ListEventTriggerDefinitionRequestFiltersInterface {\n const f: ListEventTriggerDefinitionRequestFiltersInterface = {};\n\n if (filters.searchTerm) {\n f.name = filters.searchTerm;\n }\n\n return f;\n}\n\n@Injectable()\nexport class EventTriggerDefinitionsTableService implements TableDataService {\n private readonly totalResults$$: BehaviorSubject = new BehaviorSubject(0);\n public readonly totalResults$: Observable = this.totalResults$$.asObservable();\n private cursors: { [id: number]: string } = { 0: '' };\n\n constructor(private readonly automataDevelopmentService: AutomataDevelopmentService) {}\n\n initialize(): void {\n // nothing to initialize currently\n }\n\n load(request: LoadRequest): Observable {\n if (request.pageIndex === 0) {\n this.cursors = { 0: '' };\n }\n const nextCursor = this.cursors[request.pageIndex] || '';\n const filters = convertFilters(request.filters);\n return this.listEventTriggerDefinitions(nextCursor, filters, request.pageSize, request.pageIndex);\n }\n\n listEventTriggerDefinitions(\n nextCursor: string,\n filters: ListEventTriggerDefinitionRequestFiltersInterface,\n pageSize: number,\n pageIndex: number,\n ): Observable {\n const listResponse$ = this.automataDevelopmentService\n .listEventTriggerDefinitions(filters, nextCursor, pageSize)\n .pipe(take(1), shareReplay(1));\n\n listResponse$.pipe(take(1)).subscribe((resp) => {\n this.cursors[pageIndex + 1] = resp.nextCursor;\n this.totalResults$$.next(resp.totalResults);\n });\n let current = pageSize * pageIndex;\n return listResponse$.pipe(\n map((listResponse) => {\n return (listResponse?.results || []).map((t) => {\n current++;\n return {\n eventTriggerDefinition: t,\n rowNumber: current,\n };\n });\n }),\n );\n }\n}\n","import { EventEmitter, Input, Directive } from '@angular/core';\nimport { ColumnDefinition, CustomCellComponent } from '@vendasta/va-filter2-table';\nimport { EventTriggerDefinitionRow } from '../event-trigger-definitions-table.service';\n\n@Directive()\nexport abstract class EventTriggerDefinitionTableCustomComponent\n implements CustomCellComponent\n{\n @Input() columnDefinition: ColumnDefinition;\n @Input() element: EventTriggerDefinitionRow;\n @Input() eventEmitter: EventEmitter;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { EventTriggerDefinitionTableCustomComponent } from './common-cell.component';\n\n@Component({\n template: `\n {{ name }}\n `,\n})\nexport class NameCellComponent extends EventTriggerDefinitionTableCustomComponent implements OnInit {\n name: string;\n id: string;\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.name = this.element.eventTriggerDefinition.name || 'Name not found';\n this.id = this.element.eventTriggerDefinition.eventTypeId;\n }\n}\n","import { ColumnType, Pinned, TableDefinition } from '@vendasta/va-filter2-table';\nimport { EventTriggerDefinitionsFiltersService } from './event-trigger-definitions-filters.service';\nimport { AUTOMATION_TABLE_LABELS } from '../../../common/constants';\nimport { DateCellComponent } from '../../../common/date-cell.component';\nimport { NameCellComponent } from './cells/name-cell.component';\n\nexport const tableDefinitionFactory = (filterService: EventTriggerDefinitionsFiltersService) => {\n const tableDefintion = TASK_DEFINITIONS_TABLE;\n tableDefintion.filters = filterService.filters;\n return tableDefintion;\n};\n\nconst TASK_DEFINITIONS_TABLE: TableDefinition = {\n id: 'task-definitions',\n labels: AUTOMATION_TABLE_LABELS,\n options: {\n selectableRows: false,\n csvExportEnabled: false,\n tableTitle: 'Event trigger definitions',\n },\n columns: [\n {\n id: 'row',\n displayName: 'Row',\n pinned: Pinned.PINNED_LEFT,\n type: ColumnType.COLUMN_TYPE_STRING,\n field: 'rowNumber',\n },\n {\n id: 'name',\n displayName: 'Name',\n type: ColumnType.COLUMN_TYPE_STRING,\n field: 'eventTriggerDefinition.name',\n cellComponent: NameCellComponent,\n },\n {\n id: 'eventTypeId',\n displayName: 'Event Type ID',\n type: ColumnType.COLUMN_TYPE_STRING,\n field: 'eventTriggerDefinition.eventTypeId',\n },\n {\n id: 'triggerContextIdFormat',\n displayName: 'Trigger Context ID',\n type: ColumnType.COLUMN_TYPE_STRING,\n field: 'eventTriggerDefinition.triggerContextIdFormat',\n },\n {\n id: 'created',\n displayName: 'Created',\n field: 'eventTriggerDefinition.created',\n cellComponent: DateCellComponent,\n },\n {\n id: 'deleted',\n displayName: 'Deleted',\n field: 'eventTriggerDefinition.deleted',\n cellComponent: DateCellComponent,\n },\n ],\n};\n","import { Component } from '@angular/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\nimport { TABLE_DEFINITION, VaFilteredMatTableService, VaTableSortService } from '@vendasta/va-filter2-table';\nimport { EventTriggerDefinitionsFiltersService } from './event-trigger-defintions-table/event-trigger-definitions-filters.service';\nimport { EventTriggerDefinitionsTableService } from './event-trigger-defintions-table/event-trigger-definitions-table.service';\nimport { tableDefinitionFactory } from './event-trigger-defintions-table/table-model';\n\n@Component({\n selector: 'app-event-trigger-definitions-list-page',\n templateUrl: './event-trigger-definitions-list-page.component.html',\n styleUrls: ['./event-trigger-definitions-list-page.component.scss'],\n providers: [\n EventTriggerDefinitionsTableService,\n EventTriggerDefinitionsFiltersService,\n {\n provide: TABLE_DEFINITION,\n useFactory: tableDefinitionFactory,\n deps: [EventTriggerDefinitionsFiltersService],\n },\n VaFilteredMatTableService,\n VaTableSortService,\n { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: {} },\n ],\n})\nexport class EventTriggerDefinitionsListPageComponent {\n constructor(readonly dataService: EventTriggerDefinitionsTableService) {}\n}\n","\n \n \n List Event Trigger Definitions\n \n \n \n \n \n \n \n\n","import {\n AbstractControl,\n UntypedFormArray,\n UntypedFormControl,\n UntypedFormGroup,\n ValidationErrors,\n} from '@angular/forms';\nimport { validationTypeLabels } from './constants';\n\nexport function updateControlValidity(input: UntypedFormGroup | UntypedFormArray | UntypedFormControl): void {\n if (input instanceof UntypedFormControl) {\n input.markAsTouched();\n input.updateValueAndValidity();\n return;\n }\n Object.keys(input.controls).forEach((key: string) => {\n const abstractControl = input.controls[key];\n updateControlValidity(abstractControl);\n });\n}\n\nexport function validateJson(control: AbstractControl): ValidationErrors | null {\n if (validationTypeLabels[control.value]) {\n return null;\n }\n try {\n JSON.parse(control.value);\n return null;\n } catch (e) {\n return { json: true };\n }\n}\n","import { Component } from '@angular/core';\nimport { UntypedFormControl, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { validateJson } from '../form-helpers';\n\n@Component({\n selector: 'app-import-from-json-dialog',\n templateUrl: './import-from-json-dialog.component.html',\n styleUrls: ['./import-from-json-dialog.component.scss'],\n})\nexport class ImportFromJsonDialogComponent {\n dataControl = new UntypedFormControl('', [Validators.required, validateJson]);\n constructor(public dialogRef: MatDialogRef>) {}\n\n import(): void {\n this.dialogRef.close(JSON.parse(this.dataControl.value));\n }\n}\n","

Import

\n\n
\n \n \n Paste your data here\n \n Required\n \n Invalid json data provided\n \n \n \n
\n
\n\n \n \n Import\n \n\n","import { Component, Inject, Input } from '@angular/core';\nimport { UntypedFormControl, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport JSONPath from 'jsonpath/jsonpath';\nimport { validateJson } from '../form-helpers';\n\nconst exampleData = {\n partner_id: 'ABC',\n market_id: 'default',\n account_group_id: 'AG-123',\n};\n\nexport interface Data {\n toTest: Record;\n}\n\n@Component({\n selector: 'app-json-path-tester-dialog',\n templateUrl: './json-path-tester-dialog.component.html',\n styleUrls: ['./json-path-tester-dialog.component.scss'],\n})\nexport class JsonPathTesterDialogComponent {\n inputDataControl = new UntypedFormControl(JSON.stringify(exampleData, null, 4), [Validators.required, validateJson]);\n outputDataControl = new UntypedFormControl({ value: '', disabled: true });\n\n @Input()\n toTest: Record = {};\n\n constructor(@Inject(MAT_DIALOG_DATA) readonly data: Data, private readonly alertService: SnackbarService) {\n this.toTest = data.toTest;\n }\n\n test(): void {\n const outputData = {};\n Object.entries(this.toTest).map((ent) => {\n const key = ent[0];\n const path = ent[1];\n if (key.endsWith('.$')) {\n //ending with .$ means we should execute the path in 'path' instead of treating path as a constant value\n const strippedKey = key.replace('.$', '');\n outputData[strippedKey] = this.executeJsonPath(this.inputDataControl.value, path);\n } else {\n outputData[key] = path;\n }\n });\n this.outputDataControl.setValue(JSON.stringify(outputData, null, 4));\n }\n\n executeJsonPath(data: string, path: string): string {\n // Our paths are stored as {.partner_id} but this JSONPath library expect it in the form of $.partner_id, need to convert to that path\n if (!path.startsWith('{.') || !path.endsWith('}')) {\n this.alertService.errorSnack('malformed path, should be in the form of {.partner_id}');\n return '';\n }\n\n const pathWithStrippedCurlyBraces = path.substr(1, path.length - 2);\n const pathStartWithDollar = '$' + pathWithStrippedCurlyBraces;\n return JSONPath.value(JSON.parse(data), pathStartWithDollar) || '';\n }\n}\n","

JSON Path tester

\n

\n This is not 100% accurate as we have some custom jsonpath functionality, but\n it should work for most usecases\n

\n\n
\n
\n \n \n Input Data\n \n \n Required\n \n \n Invalid json data provided\n \n \n \n
\n \n
\n \n \n Output Data\n \n \n \n
\n
\n
\n\n \n\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { DataType, ValidationType } from '@vendasta/automata';\n\nexport interface InputParameterOptionInterface {\n id: string;\n name: string;\n pathKey: string;\n pathValue: string;\n required: boolean;\n validationType: ValidationType;\n dataType: DataType;\n}\n\nconst commonInputParameters: InputParameterOptionInterface[] = [\n {\n id: 'idempotency_key',\n name: 'Idempotency Key',\n pathKey: 'idempotency_key.$',\n pathValue: '{.current_activity_details.idempotency_key}',\n required: true,\n validationType: ValidationType.VALIDATION_TYPE_SYSTEM,\n dataType: DataType.DATA_TYPE_UNKNOWN,\n },\n {\n id: 'step_id',\n name: 'Step ID',\n pathKey: 'step_id.$',\n pathValue: '{.current_activity_details.step_id}',\n required: true,\n validationType: ValidationType.VALIDATION_TYPE_SYSTEM,\n dataType: DataType.DATA_TYPE_UNKNOWN,\n },\n {\n id: 'started_processing',\n name: 'Started Processing',\n pathKey: 'started_processing.$',\n pathValue: '{.current_activity_details.started_processing}',\n required: true,\n validationType: ValidationType.VALIDATION_TYPE_SYSTEM,\n dataType: DataType.DATA_TYPE_UNKNOWN,\n },\n {\n id: 'entity_id',\n name: 'Entity ID',\n pathKey: 'entity_id.$',\n pathValue: '{.current_activity_details.entity_id}',\n required: true,\n validationType: ValidationType.VALIDATION_TYPE_SYSTEM,\n dataType: DataType.DATA_TYPE_UNKNOWN,\n },\n {\n id: 'context',\n name: 'Context',\n pathKey: 'context.$',\n pathValue: '{.current_activity_details.context}',\n required: true,\n validationType: ValidationType.VALIDATION_TYPE_SYSTEM,\n dataType: DataType.DATA_TYPE_STRING,\n },\n {\n id: 'partner_id',\n name: 'Partner ID',\n pathKey: 'partner_id.$',\n pathValue: '{.partner_id}',\n required: true,\n validationType: ValidationType.VALIDATION_TYPE_STREAM,\n dataType: DataType.DATA_TYPE_UNKNOWN,\n },\n {\n id: 'market_id',\n name: 'Market ID',\n pathKey: 'market_id.$',\n pathValue: '{.market_id}',\n required: true,\n validationType: ValidationType.VALIDATION_TYPE_STREAM,\n dataType: DataType.DATA_TYPE_UNKNOWN,\n },\n {\n id: 'account_group_id',\n name: 'Account Group ID',\n pathKey: 'account_group_id.$',\n pathValue: '{.account_group_id}',\n required: true,\n validationType: ValidationType.VALIDATION_TYPE_STREAM,\n dataType: DataType.DATA_TYPE_ACCOUNT_GROUP_ID,\n },\n {\n id: 'user_id',\n name: 'User ID',\n pathKey: 'user_id.$',\n pathValue: '{.user_id}',\n required: true,\n validationType: ValidationType.VALIDATION_TYPE_STREAM,\n dataType: DataType.DATA_TYPE_SMB_USER_ID,\n },\n {\n id: 'order_id',\n name: 'Order ID',\n pathKey: 'order_id.$',\n pathValue: '{.order_id}',\n required: true,\n validationType: ValidationType.VALIDATION_TYPE_STREAM,\n dataType: DataType.DATA_TYPE_ORDER_ID,\n },\n];\n\n@Component({\n selector: 'app-add-input-parameter-dialog',\n templateUrl: './add-input-parameter-dialog.component.html',\n styleUrls: ['./add-input-parameter-dialog.component.scss'],\n})\nexport class AddInputParameterDialogComponent {\n commonInputParameters = commonInputParameters;\n constructor(public dialogRef: MatDialogRef) {}\n\n selectParam(p: InputParameterOptionInterface): void {\n this.dialogRef.close(p);\n }\n}\n","

Add a common input parameter

\n\n \n \n \n\n\n \n\n","import { CommonModule } from '@angular/common';\nimport { Component, DestroyRef, EventEmitter, forwardRef, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormGroup,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n Validators,\n} from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { RuleInterface } from '@vendasta/automata';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { map } from 'rxjs/operators';\n\n@Component({\n selector: 'app-rule-input',\n templateUrl: './rule-input.component.html',\n styleUrls: ['./rule-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RuleInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RuleInputComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [\n CommonModule,\n GalaxyFormFieldModule,\n FormsModule,\n MatInputModule,\n ReactiveFormsModule,\n MatOptionModule,\n MatSelectModule,\n MatCheckboxModule,\n MatIconModule,\n MatButtonModule,\n ],\n})\nexport class RuleInputComponent implements ControlValueAccessor, Validator {\n @Output() remove: EventEmitter = new EventEmitter();\n comparisonOptions: string[] = [\n 'StringExists',\n 'StringEquals',\n 'StringEqualFold',\n 'StringContains',\n 'StringContainsFold',\n 'NumberEquals',\n 'NumberGreaterThan',\n 'RandomNumberLessThan',\n // The following comparisons might require special inputs so the developer doesn't have to type an exact date (for example)\n // We don't have use cases for these yet, so we're not implementing them.\n // 'BoolEquals',\n // 'BoolListContains',\n // 'StringListContains',\n // 'StringListContainsAll',\n // 'StringListContainsPrefix',\n // 'StringListContainsPrefixAll',\n // 'StringListContainsFold',\n // 'IsOneOfInStringListFold',\n // 'TimeEquals',\n // 'TimeAfter',\n // 'TimeBefore',\n // 'AlwaysTrue',\n // 'OrderActionEquals',\n // 'ListSizeGreaterThan',\n ];\n\n fg = new FormGroup({\n selectedComparison: new FormControl(null, [Validators.required]),\n variablePath: new FormControl(null, [Validators.required]),\n value: new FormControl(null),\n });\n\n constructor(private readonly destroyRef: DestroyRef) {}\n\n registerOnChange(fn: any): void {\n this.fg.valueChanges\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n map((fg) => {\n const ri: RuleInterface = {\n variablePath: fg.variablePath,\n value: fg.value,\n next: 'start',\n comparison: fg.selectedComparison,\n };\n return ri;\n }),\n )\n .subscribe((value) => {\n fn(value);\n });\n }\n\n registerOnTouched(fn: any): void {\n this.fg.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(fn);\n }\n\n writeValue(rule: RuleInterface): void {\n if (rule) {\n this.fg.controls.selectedComparison.setValue(rule.comparison);\n this.fg.controls.variablePath.setValue(rule.variablePath);\n this.fg.controls.value.setValue(rule.value);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate(control: AbstractControl): ValidationErrors | null {\n return this.fg.invalid ? { invalid: true } : null;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.fg.disable();\n } else {\n this.fg.enable();\n }\n }\n\n removeClicked(): void {\n this.remove.emit();\n }\n}\n","
\n \n Comparison\n \n \n {{ comparisonOption }}\n \n \n \n \n Path\n \n Should be surrounded by curly braces and dot notation. E.G. `{{\n '{'\n }}.account_group.external_identifiers.market_id}`\n \n \n \n \n value\n \n When reloading the values for this control they are wrapped with quotes. I don't know if this is a problem or not\n yet.\n \n \n \n
\n \n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, DestroyRef, forwardRef, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormArray,\n FormControl,\n FormGroup,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n Validators,\n} from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { And, Comparison, Or, Rule, RuleInterface } from '@vendasta/automata';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { map } from 'rxjs/operators';\nimport { RuleInputComponent } from '../rule-input/rule-input.component';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\n\n@Component({\n selector: 'app-and-or-input',\n templateUrl: './and-or-input.component.html',\n styleUrls: ['./and-or-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AndOrInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => AndOrInputComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [\n CommonModule,\n GalaxyFormFieldModule,\n FormsModule,\n MatInputModule,\n ReactiveFormsModule,\n MatOptionModule,\n MatSelectModule,\n MatCheckboxModule,\n RuleInputComponent,\n MatButtonModule,\n MatIconModule,\n MatButtonToggleModule,\n ],\n})\nexport class AndOrInputComponent implements ControlValueAccessor, Validator, OnInit {\n ComparisonAnd = Comparison.And;\n ComparisonOr = Comparison.Or;\n operator = Comparison.And;\n\n fg = new FormGroup({\n andOrInput: new FormControl(Comparison.And),\n rulesInput: new FormArray>([]),\n });\n\n constructor(private readonly destroyRef: DestroyRef) {}\n\n ngOnInit() {\n // This is required because the toggle button doesn't change when the form value changes so we need to use both form values for saving and [(value)] for updating the ui\n this.fg.controls.andOrInput.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((value) => {\n this.operator = value;\n });\n }\n\n registerOnChange(fn: any): void {\n this.fg.valueChanges\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n map(() => {\n if (this.fg.controls.rulesInput.controls.length === 0) {\n return null;\n }\n let value = null;\n if (this.fg.controls.andOrInput.value === Comparison.And) {\n const and = new And(\n this.fg.controls.rulesInput.controls.filter((c) => !!c.value).map((c) => Rule.fromRuleInterface(c.value)),\n 'start',\n );\n value = and.toRuleInterface();\n }\n if (this.fg.controls.andOrInput.value === Comparison.Or) {\n const or = new Or(\n this.fg.controls.rulesInput.controls.filter((c) => !!c.value).map((c) => Rule.fromRuleInterface(c.value)),\n 'start',\n );\n value = or.toRuleInterface();\n }\n return value;\n }),\n )\n .subscribe((value) => {\n fn(value);\n });\n }\n\n registerOnTouched(fn: any): void {\n this.fg.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(fn);\n }\n\n writeValue(rule: RuleInterface): void {\n if (!rule) {\n return;\n }\n if (rule.comparison === Comparison.And) {\n const and: And = And.fromRuleInterface(rule) as And;\n and.value\n .map((r) => r.toRuleInterface())\n .map((ri) => this.fg.controls.rulesInput.push(new FormControl(ri)));\n this.fg.controls.andOrInput.setValue(Comparison.And);\n return;\n }\n if (rule.comparison === Comparison.Or) {\n const or: Or = Or.fromRuleInterface(rule) as Or;\n or.value\n .map((r) => r.toRuleInterface())\n .map((ri) => this.fg.controls.rulesInput.push(new FormControl(ri)));\n this.fg.controls.andOrInput.setValue(Comparison.Or);\n return;\n }\n alert('Only AND/OR rules are allowed');\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate(control: AbstractControl): ValidationErrors | null {\n return this.fg.invalid ? { invalid: true } : null;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.fg.disable();\n } else {\n this.fg.enable();\n }\n }\n\n addRule() {\n this.fg.controls.rulesInput.push(new FormControl(null, [Validators.required]));\n }\n\n addAnd() {\n this.fg.controls.rulesInput.push(\n new FormControl({ comparison: Comparison.And }, [Validators.required]),\n );\n }\n\n removeRule(index: number): void {\n this.fg.controls.rulesInput.removeAt(index);\n }\n}\n","
0\">\n
\n \n \n
\n \n
\n
\n \n \n
\n \n And\n Or\n \n
\n
\n
\n
\n \n \n
\n\n Add an And rule\n\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport {\n ChoicesInterface,\n EventTriggerDefinitionInterface,\n InputParameterInterface,\n OutputParameterInterface,\n PublishedState,\n TaskDefinitionInterface,\n TaskType,\n ValidationType,\n WorkflowStepInterface,\n} from '@vendasta/automata';\n\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, ParamMap } from '@angular/router';\nimport {\n AppKeyInterface,\n CallOptionsInterface,\n ResourceInterface,\n} from '@vendasta/automata/lib/_internal/interfaces/task-definition.interface';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ConsentAdminApiService } from '@vendasta/sso';\nimport { Observable, Subject } from 'rxjs';\nimport { map, pairwise, shareReplay, startWith, take, takeUntil, tap } from 'rxjs/operators';\nimport {\n dataTypeLabels,\n dataTypes,\n publishedStateLabels,\n publishedStates,\n supportedContexts,\n supportedContextsLabels,\n taskTypeLabels,\n taskTypes,\n validationTypeLabels,\n validationTypes,\n} from '../../common/constants';\nimport { updateControlValidity } from '../../common/form-helpers';\nimport { ImportFromJsonDialogComponent } from '../../common/import-from-json-dialog/import-from-json-dialog.component';\nimport { JsonPathTesterDialogComponent } from '../../common/json-path-tester-dialog/json-path-tester-dialog.component';\nimport { AddInputParameterDialogComponent } from './add-input-parameter-dialog/add-input-parameter-dialog.component';\n\n@Component({\n selector: 'app-task-definition-form',\n templateUrl: './task-definition-form.component.html',\n styleUrls: ['./task-definition-form.component.scss'],\n})\nexport class TaskDefinitionFormComponent implements OnInit, OnDestroy {\n @Input()\n taskDefinition: TaskDefinitionInterface = {};\n\n @Output() cancelClicked: EventEmitter = new EventEmitter();\n @Output() saveClicked: EventEmitter = new EventEmitter();\n\n @Input() saveDisabled: boolean;\n @Input() sourceEventTriggerDefinition: EventTriggerDefinitionInterface;\n @Input() taskType: string;\n\n @Input() editMode: boolean;\n @Input() requiredAppsRemoved: boolean;\n @Input() resourcesRemoved: boolean;\n\n form: FormGroup = new FormGroup({\n id: new FormControl('', Validators.required), // Only used for create\n name: new FormControl('', Validators.required),\n taskType: new FormControl('', taskTypeValidator),\n eventTypeId: new FormControl(''),\n eventSubTypeId: new FormControl(''),\n internal: new FormControl(null),\n availableInDefault: new FormControl(null),\n supportedContexts: new FormControl([]),\n resourceUrl: new FormControl(''),\n resourceMethod: new FormControl('', methodValidator),\n resourceIsGetter: new FormControl(''),\n resourceRetryOptions: new FormArray([]),\n preProcessors: new FormArray([]),\n requiredApps: new FormArray([]),\n inputParameters: new FormArray([]),\n outputParameters: new FormArray([]),\n requiredScopes: new FormControl([]),\n requiredSubscriptionFeatures: new FormArray([]),\n choices: new FormControl(null),\n staticValidationChoices: new FormControl(null),\n });\n\n taskTypes = taskTypes;\n taskTypeLabels = taskTypeLabels;\n TRIGGER = TaskType.TASK_TYPE_TRIGGER;\n publishedStateLabels = publishedStateLabels;\n publishedStates = publishedStates;\n validationTypes = validationTypes;\n validationTypeLabels = validationTypeLabels;\n supportedContexts = supportedContexts;\n supportedContextLabels = supportedContextsLabels;\n dataTypes = dataTypes;\n dataTypeLabels = dataTypeLabels;\n DRAFT = PublishedState.PUBLISHED_STATE_DRAFT;\n\n destroyed$$: Subject = new Subject();\n readonly destroyed$ = this.destroyed$$.asObservable();\n\n scopeOptions$: Observable = this.scopes.listScopes({ pageSize: 1000 }).pipe(\n take(1),\n map((resp) => resp?.scopes?.map((s) => s.id)),\n shareReplay(),\n );\n\n private static getRetryOptionsFormGroup(): FormGroup {\n return new FormGroup({\n statusCode: new FormControl(''),\n maximumAttempts: new FormControl('', [Validators.required, nonNegativeIntegerValidator]),\n });\n }\n\n private static getParameterFormGroup(): FormGroup {\n return new FormGroup({\n id: new FormControl('', Validators.required),\n name: new FormControl('', Validators.required),\n dataType: new FormControl('', dataTypeValidator),\n repeated: new FormControl(false),\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private static getPreProcessorKeyValueFormGroup(i: number): FormGroup {\n return new FormGroup({\n pathKey: new FormControl('', Validators.required),\n pathValue: new FormControl('', Validators.required),\n });\n }\n\n private static getPreProcessorChoices(): FormGroup {\n return new FormGroup({\n rules: new FormArray([]),\n default: new FormControl(''),\n });\n }\n\n private static getPreProcessorChoicesRules(): FormGroup {\n return new FormGroup({\n variablePath: new FormControl(''),\n comparison: new FormControl(''),\n value: new FormControl(''),\n next: new FormControl(''),\n });\n }\n\n private static getInputParameterFormGroup(destroyed$: Observable): FormGroup {\n const pfg = this.getParameterFormGroup();\n const fg = new FormGroup({\n settings: pfg,\n required: new FormControl(null),\n pathKey: new FormControl('', Validators.required),\n pathValue: new FormControl('', Validators.required),\n validationType: new FormControl('', validationTypeValidator),\n });\n\n pfg.controls['id'].valueChanges\n .pipe(startWith(undefined), pairwise(), takeUntil(destroyed$))\n .subscribe(([prevId, curId]) => {\n const prevKey = `${prevId}.$`;\n const prevValue = `{.${prevId}}`;\n if (prevId === undefined || fg.controls.pathKey.value === prevKey) {\n fg.controls.pathKey.setValue(`${curId}.$`);\n fg.controls.pathKey.markAsDirty();\n }\n if (prevId === undefined || fg.controls.pathValue.value === prevValue) {\n fg.controls.pathValue.setValue(`{.${curId}}`);\n fg.controls.pathValue.markAsDirty();\n }\n });\n\n return fg;\n }\n\n private static getOutputParameterFormGroup(destroyed$: Observable): FormGroup {\n const pfg = this.getParameterFormGroup();\n const fg = new FormGroup({\n settings: pfg,\n pathKey: new FormControl('', Validators.required),\n pathValue: new FormControl('', Validators.required),\n optional: new FormControl(null),\n isEntity: new FormControl(null),\n });\n\n pfg.controls['id'].valueChanges\n .pipe(startWith(undefined), pairwise(), takeUntil(destroyed$))\n .subscribe(([prevId, curId]) => {\n const prevKey = `${prevId}.$`;\n const prevValue = `{.${prevId}}`;\n if (prevId === undefined || fg.controls.pathKey.value === prevKey) {\n fg.controls.pathKey.setValue(`${curId}.$`);\n fg.controls.pathKey.markAsDirty();\n }\n if (prevId === undefined || fg.controls.pathValue.value === prevValue) {\n fg.controls.pathValue.setValue(`{.${curId}}`);\n fg.controls.pathValue.markAsDirty();\n }\n });\n\n return fg;\n }\n\n private static getPreProcessorDataFormGroup(): FormGroup {\n return new FormGroup({\n id: new FormControl('', Validators.required),\n name: new FormControl('', Validators.required),\n taskDefinitionId: new FormControl('', Validators.required),\n data: new FormArray([]),\n choices: new FormControl(this.getPreProcessorChoices()),\n });\n }\n\n private static getRequiredAppFormGroup(): FormGroup {\n return new FormGroup({\n appId: new FormControl('', Validators.required),\n editionId: new FormControl(''),\n });\n }\n\n constructor(\n private readonly alertService: SnackbarService,\n private dialog: MatDialog,\n private route: ActivatedRoute,\n private scopes: ConsentAdminApiService,\n ) {}\n\n resourceRetryOptionsArray(): FormArray {\n return this.form.controls.resourceRetryOptions as FormArray;\n }\n\n inputParametersFormArray(): FormArray {\n return this.form.controls.inputParameters as FormArray;\n }\n\n preProcessorsFormArray(): FormArray {\n return this.form.controls.preProcessors as FormArray;\n }\n\n preProcessorDataFormArray(i: number): FormArray {\n return (this.preProcessorsFormArray().controls[i] as FormArray).controls['data'];\n }\n\n preProcessorChoicesFormArray(i: number): FormArray {\n return (this.preProcessorsFormArray().controls[i] as FormArray).controls['choices'].value.controls['rules'];\n }\n\n requiredAppsFormArray(): AbstractControl[] {\n return (this.form.controls.requiredApps as FormArray).controls;\n }\n\n outputParametersFormArray(): FormArray {\n return this.form.controls.outputParameters as FormArray;\n }\n\n requiredSubscriptionFeaturesFormArray(): FormArray {\n return this.form.controls.requiredSubscriptionFeatures as FormArray;\n }\n\n ngOnInit(): void {\n if (this.taskDefinition?.id) {\n this.form.controls.id.disable();\n }\n\n this.populateFormFromTaskDefinition(this.taskDefinition);\n\n this.route.queryParamMap.pipe(take(1)).subscribe((paramMap: ParamMap) => {\n if (paramMap.get('import')) {\n this.import();\n }\n });\n this.form.controls.taskType.valueChanges\n .pipe(\n tap((taskType) => {\n if (taskType === this.TRIGGER) {\n this.form.controls.eventTypeId.setValidators([Validators.required]);\n } else {\n this.form.controls.eventTypeId.setValidators([]);\n this.outputParametersFormArray().controls.forEach((op) => {\n op.get('isEntity')?.setValue(false);\n });\n }\n }),\n takeUntil(this.destroyed$$),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this.destroyed$$.next();\n }\n\n populateFormFromTaskDefinition(taskDefinition: TaskDefinitionInterface): void {\n this.form.controls.id.setValue(taskDefinition?.id || 'TaskDefinition-');\n this.form.controls.name.setValue(taskDefinition?.name);\n this.form.controls.taskType.setValue(taskDefinition?.taskType || this.taskType);\n this.form.controls.eventTypeId.setValue(\n taskDefinition?.eventTypeId || this.sourceEventTriggerDefinition?.eventTypeId,\n );\n this.form.controls.eventSubTypeId.setValue(taskDefinition?.eventSubTypeId);\n this.form.controls.internal.setValue(taskDefinition?.internal);\n this.form.controls.availableInDefault.setValue(taskDefinition?.availableInDefaultAutomations);\n this.form.controls.supportedContexts.setValue(taskDefinition?.supportedContexts);\n this.form.controls.resourceUrl.setValue(taskDefinition?.resource?.url);\n this.form.controls.resourceMethod.setValue(taskDefinition?.resource?.method);\n this.form.controls.resourceIsGetter.setValue(taskDefinition?.resource?.isGetter);\n this.form.controls.requiredScopes.setValue(taskDefinition?.requiredScopes);\n\n (this.form.controls.resourceRetryOptions as FormArray).clear();\n (taskDefinition?.resource?.callOptions?.retryPolicyOptions || []).map((opt) => {\n const fg = TaskDefinitionFormComponent.getRetryOptionsFormGroup();\n fg.controls.statusCode.setValue(opt.statusCode);\n fg.controls.maximumAttempts.setValue(opt.maximumAttempts);\n (this.form.controls.resourceRetryOptions as FormArray).push(fg);\n });\n\n (this.form.controls.preProcessors as FormArray).clear();\n\n (taskDefinition?.preProcessors || []).map((pp) => {\n const fg = TaskDefinitionFormComponent.getPreProcessorDataFormGroup();\n fg.controls.id.setValue(pp.id);\n fg.controls.name.setValue(pp.name);\n fg.controls.taskDefinitionId.setValue(pp.taskDefinitionId);\n if (pp.data) {\n const obj = JSON.parse(pp.data);\n const entries = Object.entries(obj);\n for (const index in entries) {\n (fg.controls.data as FormArray).push(TaskDefinitionFormComponent.getPreProcessorKeyValueFormGroup(0));\n (fg.controls.data as FormArray).controls[index].setValue({\n pathKey: entries[index][0],\n pathValue: entries[index][1],\n });\n }\n }\n if (pp.choices) {\n const defaultNextStep = pp.choices.defaultNextStep;\n const rules = pp.choices.rules;\n fg.controls.choices.value.controls.default.setValue(defaultNextStep);\n for (const rule in rules || []) {\n fg.controls.choices.value.controls.rules.push(TaskDefinitionFormComponent.getPreProcessorChoicesRules());\n const r = {\n variablePath: rules[rule].variablePath || '',\n value: rules[rule].value || '',\n next: rules[rule].next || '',\n comparison: rules[rule].comparison || '',\n };\n fg.controls.choices.value.controls.rules.controls[rule].setValue(r);\n }\n }\n (this.form.controls.preProcessors as FormArray).push(fg);\n });\n\n (taskDefinition?.requiredApps || []).forEach((appKey) => {\n const fg = TaskDefinitionFormComponent.getRequiredAppFormGroup();\n fg.controls.appId.setValue(appKey.appId);\n fg.controls.editionId.setValue(appKey.editionId);\n (this.form.controls.requiredApps as FormArray).push(fg);\n });\n\n (this.form.controls.inputParameters as FormArray).clear();\n (taskDefinition?.inputParameters || []).map((ip) => {\n const fg = TaskDefinitionFormComponent.getInputParameterFormGroup(this.destroyed$);\n (fg.controls.settings as FormGroup).controls.id.setValue(ip.settings.id);\n (fg.controls.settings as FormGroup).controls.name.setValue(ip.settings.name);\n (fg.controls.settings as FormGroup).controls.dataType.setValue(ip.settings.dataType);\n (fg.controls.settings as FormGroup).controls.repeated.setValue(ip.settings.repeated);\n fg.controls.required.setValue(ip.required);\n\n if (ip.path) {\n const obj = JSON.parse(ip.path);\n const entries = Object.entries(obj);\n if ((entries || []).length !== 1) {\n this.alertService.errorSnack('something is completely messed up with this input parameter (check the logs)');\n console.log(ip);\n } else {\n fg.controls.pathKey.setValue(entries[0][0]);\n fg.controls.pathValue.setValue(entries[0][1]);\n }\n }\n\n fg.controls.validationType.setValue(ip.validationType);\n (this.form.controls.inputParameters as FormArray).push(fg);\n });\n\n (this.form.controls.outputParameters as FormArray).clear();\n (taskDefinition?.outputParameters || []).map((op) => {\n const fg = TaskDefinitionFormComponent.getOutputParameterFormGroup(this.destroyed$);\n (fg.controls.settings as FormGroup).controls.id.setValue(op.settings.id);\n (fg.controls.settings as FormGroup).controls.name.setValue(op.settings.name);\n (fg.controls.settings as FormGroup).controls.dataType.setValue(op.settings.dataType);\n (fg.controls.settings as FormGroup).controls.repeated.setValue(op.settings.repeated);\n fg.controls.optional.setValue(op.optional);\n if (taskDefinition?.taskType === this.TRIGGER) {\n fg.controls.isEntity.setValue(op.isEntity);\n }\n if (op.path) {\n const obj = JSON.parse(op.path);\n const entries = Object.entries(obj);\n if ((entries || []).length !== 1) {\n this.alertService.errorSnack('something is completely messed up with this output parameter (check the logs)');\n console.log(op);\n } else {\n fg.controls.pathKey.setValue(entries[0][0]);\n fg.controls.pathValue.setValue(entries[0][1]);\n }\n }\n (this.form.controls.outputParameters as FormArray).push(fg);\n });\n\n (this.form.controls.requiredSubscriptionFeatures as FormArray).clear();\n (taskDefinition?.requiredSubscriptionFeatures || []).map((rsf) => {\n (this.form.controls.requiredSubscriptionFeatures as FormArray).push(new FormControl(rsf, Validators.required));\n });\n\n //populate the input parameters from the eventTriggerDefinitionId if provided\n if (this.sourceEventTriggerDefinition?.parametersPaths) {\n const parametersPaths = JSON.parse(this.sourceEventTriggerDefinition.parametersPaths);\n Object.entries(parametersPaths).map((pp) => {\n const fg = TaskDefinitionFormComponent.getInputParameterFormGroup(this.destroyed$);\n const variable = getVarNameFromEventTriggerDefinitionParamPathKey(pp[0]);\n (fg.controls.settings as FormGroup).controls.id.setValue(variable);\n fg.controls.pathKey.setValue(variable + '.$');\n fg.controls.pathValue.setValue(`{.${variable}}`);\n\n fg.controls.validationType.setValue(ValidationType.VALIDATION_TYPE_STREAM);\n (this.form.controls.inputParameters as FormArray).push(fg);\n });\n }\n\n if (taskDefinition?.choices?.rules?.length > 0) {\n if (taskDefinition?.choices?.rules?.length > 1) {\n this.alertService.errorSnack(\n 'The base rule should be an AND or an OR but you have multiple rules instead of one of those for static rules',\n );\n }\n this.form.controls.choices.setValue(taskDefinition?.choices?.rules?.[0]);\n }\n if (taskDefinition?.staticValidationRules?.rules?.length > 0) {\n if (taskDefinition?.staticValidationRules?.rules?.length > 1) {\n this.alertService.errorSnack(\n 'The base rule should be an AND or an OR but you have multiple rules instead of one of those for static validation rules',\n );\n }\n this.form.controls.staticValidationChoices.setValue(taskDefinition?.staticValidationRules?.rules?.[0]);\n }\n }\n\n addRetryOptions(): void {\n (this.form.controls.resourceRetryOptions as FormArray).push(TaskDefinitionFormComponent.getRetryOptionsFormGroup());\n }\n\n removeRetryOption(index: number): void {\n (this.form.controls.resourceRetryOptions as FormArray).removeAt(index);\n }\n\n addInputParameter(): void {\n (this.form.controls.inputParameters as FormArray).push(\n TaskDefinitionFormComponent.getInputParameterFormGroup(this.destroyed$),\n );\n }\n\n addPreProcessor(): void {\n (this.form.controls.preProcessors as FormArray).push(TaskDefinitionFormComponent.getPreProcessorDataFormGroup());\n }\n\n addRequiredApp(): void {\n (this.form.controls.requiredApps as FormArray).push(TaskDefinitionFormComponent.getRequiredAppFormGroup());\n }\n\n removeRequiredApp(index: number): void {\n (this.form.controls.requiredApps as FormArray).removeAt(index);\n }\n\n addPreProcessorKeyValue(i: number): void {\n ((this.form.controls.preProcessors as FormArray).controls[i] as FormArray).controls['data'].push(\n TaskDefinitionFormComponent.getPreProcessorKeyValueFormGroup(i),\n );\n }\n\n addPreProcessorRule(i: number): void {\n ((this.form.controls.preProcessors as FormArray).controls[i] as FormArray).controls['choices'].value.controls[\n 'rules'\n ].push(TaskDefinitionFormComponent.getPreProcessorChoicesRules());\n }\n\n removeInputParameter(index: number): void {\n (this.form.controls.inputParameters as FormArray).removeAt(index);\n }\n\n removePreProcessor(index: number): void {\n (this.form.controls.preProcessors as FormArray).removeAt(index);\n }\n\n removePreProcessorKeyValue(i: number, j: number): void {\n (this.preProcessorsFormArray().controls[i] as FormArray).controls['data'].removeAt(j);\n }\n\n removePreProcessorRule(i: number, j: number): void {\n this.preProcessorChoicesFormArray(i).removeAt(j);\n }\n\n addOutputParameter(): void {\n (this.form.controls.outputParameters as FormArray).push(\n TaskDefinitionFormComponent.getOutputParameterFormGroup(this.destroyed$),\n );\n }\n\n removeOutputParameter(index: number): void {\n (this.form.controls.outputParameters as FormArray).removeAt(index);\n }\n\n addRequiredSubscriptionFeatures(): void {\n (this.form.controls.requiredSubscriptionFeatures as FormArray).push(new FormControl('', Validators.required));\n }\n\n removeRequiredSubscriptionFeatures(index: number): void {\n (this.form.controls.requiredSubscriptionFeatures as FormArray).removeAt(index);\n }\n\n cancel(): void {\n this.cancelClicked.emit(true);\n }\n\n save(): void {\n if (!this.form.valid) {\n updateControlValidity(this.form);\n this.alertService.errorSnack('You need to correctly fill out the form :/');\n return;\n }\n\n let resource: ResourceInterface;\n if (this.form.controls.resourceUrl.value) {\n resource = {};\n resource.url = this.form.controls.resourceUrl.value.trim();\n resource.method = this.form.controls.resourceMethod.value;\n resource.isGetter = this.form.controls.resourceIsGetter.value;\n\n const callOptions: CallOptionsInterface = { retryPolicyOptions: [] };\n ((this.form.controls.resourceRetryOptions as FormArray).controls || []).map((control) => {\n const group = control as FormGroup;\n callOptions.retryPolicyOptions.push({\n statusCode: group.controls.statusCode.value,\n maximumAttempts: group.controls.maximumAttempts.value,\n });\n });\n if (callOptions.retryPolicyOptions.length > 0) {\n resource.callOptions = callOptions;\n }\n }\n const requiredScopes: string[] = this.form.controls.requiredScopes.value;\n\n const requiredSubscriptionFeatures: string[] = [];\n (this.form.controls.requiredSubscriptionFeatures as FormArray).controls.map((c) =>\n requiredSubscriptionFeatures.push(c.value),\n );\n\n const preProcessors: WorkflowStepInterface[] = [];\n (this.form.controls.preProcessors as FormArray).controls.map((controls) => {\n const group = controls as FormGroup;\n const obj = {};\n const other_obj = [];\n for (const ctrl of (group.controls.data as FormArray).controls) {\n obj[ctrl.value.pathKey] = ctrl.value.pathValue;\n }\n\n for (const rule of (group.controls.choices.value.controls.rules as FormArray).controls) {\n other_obj.push(rule.value);\n }\n let defaultValue = '';\n if (other_obj.length > 0) {\n defaultValue = group.controls.choices.value.controls.default.value;\n }\n const choices = {\n rules: other_obj,\n defaultNextStep: defaultValue,\n };\n const jsonParam = JSON.stringify(obj);\n preProcessors.push({\n id: group.controls.id.value,\n name: group.controls.name.value,\n taskDefinitionId: group.controls.taskDefinitionId.value,\n data: jsonParam,\n choices: choices,\n });\n });\n\n const requiredApps: AppKeyInterface[] = (this.form.controls.requiredApps as FormArray).controls.map((fg) => {\n const group = fg as FormGroup;\n return {\n appId: group.controls.appId.value,\n editionId: group.controls.editionId.value,\n };\n });\n\n const inputParameters: InputParameterInterface[] = [];\n (this.form.controls.inputParameters as FormArray).controls.map((controls) => {\n const group = controls as FormGroup;\n const settingsGroup = group.controls.settings as FormGroup;\n const obj = {};\n obj[group.controls.pathKey.value] = group.controls.pathValue.value;\n const jsonParam = JSON.stringify(obj);\n inputParameters.push({\n settings: {\n id: settingsGroup.controls.id.value,\n name: settingsGroup.controls.name.value,\n dataType: settingsGroup.controls.dataType.value,\n repeated: settingsGroup.controls.repeated.value,\n },\n required: group.controls.required.value,\n path: jsonParam,\n validationType: group.controls.validationType.value,\n });\n });\n\n const outputParameters: OutputParameterInterface[] = [];\n (this.form.controls.outputParameters as FormArray).controls.map((controls) => {\n const group = controls as FormGroup;\n const settingsGroup = group.controls.settings as FormGroup;\n const obj = {};\n obj[group.controls.pathKey.value] = group.controls.pathValue.value;\n const jsonParam = JSON.stringify(obj);\n outputParameters.push({\n settings: {\n id: settingsGroup.controls.id.value,\n name: settingsGroup.controls.name.value,\n dataType: settingsGroup.controls.dataType.value,\n repeated: settingsGroup.controls.repeated.value,\n },\n path: jsonParam,\n optional: group.controls.optional.value,\n isEntity: group.controls.isEntity.value,\n });\n });\n\n let eventTypeId = '';\n if (this.form.controls.taskType.value === this.TRIGGER) {\n eventTypeId = this.form.controls.eventTypeId.value;\n }\n\n let choices: ChoicesInterface;\n if (this.form.controls.choices.value) {\n if (this.form.controls.taskType.value !== TaskType.TASK_TYPE_TRIGGER) {\n this.alertService.errorSnack('You can only have choices for triggers');\n return;\n }\n choices = {\n rules: [this.form.controls.choices.value],\n defaultNextStep: '',\n };\n }\n\n let staticValidationChoices: ChoicesInterface;\n if (this.form.controls.staticValidationChoices.value) {\n staticValidationChoices = {\n rules: [this.form.controls.staticValidationChoices.value],\n defaultNextStep: '',\n };\n }\n\n const newTaskDefinition: TaskDefinitionInterface = {\n id: this.form.controls.id.value,\n name: this.form.controls.name.value,\n resource: resource,\n inputParameters: inputParameters,\n outputParameters: outputParameters,\n taskType: this.form.controls.taskType.value,\n eventTypeId: eventTypeId,\n eventSubTypeId: this.form.controls.eventSubTypeId.value,\n internal: this.form.controls.internal.value,\n availableInDefaultAutomations: this.form.controls.availableInDefault.value,\n publishedState: this.taskDefinition?.publishedState || PublishedState.PUBLISHED_STATE_DRAFT,\n requiredScopes: requiredScopes,\n requiredApps: requiredApps,\n requiredSubscriptionFeatures: requiredSubscriptionFeatures,\n preProcessors: preProcessors,\n supportedContexts: this.form.controls.supportedContexts.value,\n choices: choices,\n staticValidationRules: staticValidationChoices,\n };\n this.saveClicked.emit(newTaskDefinition);\n }\n\n openAddInputParameterDialog(): void {\n const dialogRef = this.dialog.open(AddInputParameterDialogComponent, {\n width: '430px',\n });\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((result) => {\n if (result) {\n const group = TaskDefinitionFormComponent.getInputParameterFormGroup(this.destroyed$);\n (group.controls.settings as FormGroup).controls.id.setValue(result.id);\n (group.controls.settings as FormGroup).controls.name.setValue(result.name);\n (group.controls.settings as FormGroup).controls.dataType.setValue(result.dataType);\n group.controls.pathKey.setValue(result.pathKey);\n group.controls.pathValue.setValue(result.pathValue);\n group.controls.required.setValue(result.required);\n group.controls.validationType.setValue(result.validationType);\n\n this.inputParametersFormArray().push(group);\n }\n });\n }\n\n testInputParameters(): void {\n const toTest = this.inputParametersFormArray().controls.reduce((prev, curr) => {\n const group = curr as FormGroup;\n prev[group.controls.pathKey.value] = group.controls.pathValue.value;\n return prev;\n }, {});\n this.dialog.open(JsonPathTesterDialogComponent, {\n data: {\n toTest: toTest,\n },\n });\n }\n\n public import(): void {\n const dialogRef = this.dialog.open(ImportFromJsonDialogComponent);\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((res) => {\n if (res) {\n this.populateFormFromTaskDefinition(res);\n }\n });\n }\n}\n\nfunction taskTypeValidator(control: AbstractControl): ValidationErrors | null {\n if (taskTypeLabels[control.value]) {\n return null;\n }\n return { invalid: true };\n}\n\nfunction methodValidator(control: AbstractControl): ValidationErrors | null {\n if (!!control.value && control.value !== 'POST') {\n return { invalid: true };\n }\n return null;\n}\n\n//nonNegativeIntegerValidator validates that the input contains only integers and not negative\nfunction nonNegativeIntegerValidator(control: AbstractControl): { [key: string]: any } {\n if (!control.value) {\n return null;\n }\n const r = new RegExp(/^[0-9]+$/);\n return r.test(control.value) ? null : { pattern: 'invalid' };\n}\n\nfunction validationTypeValidator(control: AbstractControl): ValidationErrors | null {\n if (validationTypeLabels[control.value]) {\n return null;\n }\n return { invalid: true };\n}\n\nfunction dataTypeValidator(control: AbstractControl): ValidationErrors | null {\n if (dataTypeLabels[control.value]) {\n return null;\n }\n return { invalid: true };\n}\n\nfunction getVarNameFromEventTriggerDefinitionParamPathKey(key: string): string {\n if (key.endsWith('.$')) {\n return key.replace('.$', '');\n }\n return key;\n}\n","
\n
\n
\n \n Base information\n \n
\n
\n \n ID\n \n \n \n info_outline\n \n
\n
\n \n Name\n \n Required\n \n \n info_outline\n \n
\n
\n \n Task Type\n \n \n {{ taskTypeLabels[taskType] }}\n \n \n Required\n Invalid\n \n \n info_outline\n \n
\n \n
\n \n Event Type ID\n \n Required\n \n \n info_outline\n \n
\n\n
\n \n Event Sub Type ID\n \n \n \n info_outline\n \n
\n
\n
\n \n Published State\n \n \n {{ publishedStateLabels[publishedState] }}\n \n \n \n \n info_outline\n \n
\n
\n Internal\n \n info_outline\n \n
\n
\n Available in default automations\n \n info_outline\n \n
\n
\n \n Supported Contexts\n \n \n {{ supportedContextLabels[supportedContext] }}\n \n \n Required\n \n \n info_outline\n \n
\n
\n
\n
\n \n \n Resource\n \n Warnings\n — Resouces removed when data imported\n \n \n \n
\n
\n \n URL\n \n \n \n info_outline\n \n
\n
\n \n Method\n \n \n Only 'POST' is valid right now\n \n \n \n info_outline\n \n
\n
\n Does not modify data\n \n info_outline\n \n
\n \n
\n \n\n \n Status Code\n \n Required\n \n \n Maximum Attempts\n \n \n Must be a positive integer\n \n Required\n \n
\n
\n \n Add Retry Options\n \n
\n
\n
\n
\n
\n \n Preprocessors\n \n
\n \n \n id\n \n \n \n name\n \n \n \n Task Definition ID\n \n \n
\n
\n \n Data Key\n \n \n \n Data Value\n \n \n \n
\n
\n
\n \n
\n
\n
\n \n Default Value\n \n default value\n \n
\n
\n \n Variable Path\n \n variable path\n \n \n Comparison\n \n comparison\n \n \n Value\n \n value\n \n \n Next\n \n next\n \n \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n \n \n Static Rules to be applied to the event to see if this trigger should run\n \n info_outline\n \n \n \n \n \n \n
\n
\n \n \n Static Validation Rules to see if this task definition is valid for the data in the stream\n \n info_outline\n \n \n \n \n \n \n
\n\n \n \n Required Apps\n \n info_outline\n \n \n Warnings\n — Required Apps removed when data imported\n \n \n \n
\n \n \n \n App / Addon ID\n \n \n \n Edition ID\n \n \n \n
\n
\n \n
\n\n \n Subscription features\n \n \n
\n \n \n Required Subscription Feature\n \n \n Required\n \n \n
\n
\n \n Add Required Subscription Feature\n \n
\n
\n
\n \n \n Scopes -\n \n Learn About Scopes Here\n \n \n \n
\n \n \n Required Scopes\n \n \n {{ scopeOption }}\n \n \n \n \n Loading Scopes, just wait a sec\n
\n
\n
\n
\n
\n \n \n \n Input Parameters\n \n info_outline\n \n \n \n \n \n \n
\n \n
\n \n \n id\n \n Required\n \n \n name\n \n Required\n \n
\n \n Data Type\n \n \n {{ dataTypeLabels[dataType] }}\n \n \n \n Required or invalid. Set to Unknown if you are not sure\n \n \n \n info_outline\n \n
\n \n \n Repeated\n Is this a list of things?\n \n \n
\n
\n \n Path Key\n \n This is a key of your cloud function's request body. E.G.: partner_id.$\n Required\n \n \n Path Value\n \n \n This where it'll get the data from that will be used to populate the key. E.G.:\n {{ '{' }}.partner_id{{ '}' }}\n \n Required\n \n
\n Required\n \n Validation Type\n \n \n {{ validationTypeLabels[validationType.name] }}\n \n \n Required or invalid\n \n
\n
\n \n \n
\n
\n \n \n Output Parameters\n \n info_outline\n \n \n \n \n
\n \n
\n \n \n id\n \n Required\n \n \n name\n \n Required\n \n
\n \n Data Type\n \n \n {{ dataTypeLabels[dataType] }}\n \n \n \n Required or invalid. Set to Unknown if you are not sure\n \n \n \n info_outline\n \n
\n \n \n Repeated\n Is this a list of things?\n \n \n
\n
\n \n Path Key\n \n This is the destination the data will be added to stream at. E.G.: partner_id.$\n Required\n \n \n Path Value\n \n \n This is the source the data is coming from (output of the resource) that will be used to populate\n the key. E.G.:\n {{ '{' }}.partner_id{{ '}' }}\n \n Required\n \n
\n
\n \n Does this output define the type of entities the trigger can work with?\n \n
\n Optional\n
\n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n","import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\nimport { map, shareReplay, switchMap, take } from 'rxjs/operators';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AutomataDevelopmentService, PublishedState, TaskDefinitionInterface } from '@vendasta/automata';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { TaskDefinitionFormComponent } from '../task-definition-form/task-definition-form.component';\nimport { buildLoggingUrl } from '../conversion';\nimport { ImportFromJsonDialogComponent } from '../../common/import-from-json-dialog/import-from-json-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-edit-task-definition-page',\n templateUrl: './edit-task-definition-page.component.html',\n styleUrls: ['./edit-task-definition-page.component.scss'],\n})\nexport class EditTaskDefinitionPageComponent implements OnInit {\n buildLoggingUrl = buildLoggingUrl;\n PUBLISHED = PublishedState.PUBLISHED_STATE_PUBLISHED;\n private taskDefinitionId$: Observable;\n taskDefinition$: Observable;\n\n resourcesRemoved$$ = new BehaviorSubject(false);\n requiredAppsRemoved$$ = new BehaviorSubject(false);\n\n @ViewChild('taskDefinitionForm') taskDefinitionForm: TaskDefinitionFormComponent;\n saveDisabled = false;\n publishedDisabled = false;\n\n constructor(\n private route: ActivatedRoute,\n private readonly automataDevelopmentService: AutomataDevelopmentService,\n private router: Router,\n private alertService: SnackbarService,\n private cdr: ChangeDetectorRef,\n private dialog: MatDialog,\n ) {}\n\n ngOnInit(): void {\n this.taskDefinitionId$ = this.route.params.pipe(\n take(1),\n map((params) => params.taskDefinitionId),\n );\n\n this.taskDefinition$ = this.taskDefinitionId$.pipe(\n take(1),\n switchMap((id) => this.automataDevelopmentService.getTaskDefinition(id)),\n shareReplay(1),\n );\n }\n\n cancelClicked(value: boolean): void {\n if (value) {\n this.router.navigate(['/automations/task-definitions/list']);\n }\n }\n\n saveClicked(value: TaskDefinitionInterface): void {\n if (!value) {\n this.alertService.openErrorSnack(`I don't know how we got here, that's on you to figure out`);\n return;\n }\n this.saveDisabled = true;\n this.automataDevelopmentService\n .updateTaskDefinition(value, {\n // Everything but published state cause we don't want to accidentally publish stuff\n paths: [\n 'Name',\n 'Resource',\n 'PreProcessors',\n 'InputParameters',\n 'OutputParameters',\n 'TaskType',\n 'Internal',\n 'AvailableInDefaultAutomations',\n 'RequiredScopes',\n 'RequiredApps',\n 'RequiredSubscriptionFeatures',\n 'EventTypeID',\n 'EventSubTypeID',\n 'SupportedContexts',\n 'Choices',\n 'StaticValidationRules',\n ],\n })\n .pipe(take(1))\n .subscribe(\n () => {\n this.saveDisabled = false;\n this.alertService.openSuccessSnack('Task definition successfully edited');\n this.cdr.detectChanges();\n },\n (err) => {\n console.error(err);\n this.saveDisabled = false;\n this.alertService.openErrorSnack(err?.error?.message);\n this.cdr.detectChanges();\n },\n );\n }\n\n copyToClipboard(): void {\n this.taskDefinition$.pipe(take(1)).subscribe((td) => {\n const selBox = document.createElement('textarea');\n selBox.style.position = 'fixed';\n selBox.style.left = '0';\n selBox.style.top = '0';\n selBox.style.opacity = '0';\n selBox.value = JSON.stringify(td, null, 4);\n document.body.appendChild(selBox);\n selBox.focus();\n selBox.select();\n document.execCommand('copy');\n document.body.removeChild(selBox);\n\n this.alertService.openSuccessSnack('Copied');\n });\n }\n\n import() {\n const dialogRef = this.dialog.open(ImportFromJsonDialogComponent);\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((res) => {\n if (res) {\n this.requiredAppsRemoved$$.next(res?.requiredApps ? true : false);\n this.resourcesRemoved$$.next(res?.resource ? true : false);\n res.requiredApps = []; // ensure imported empty\n\n this.taskDefinitionForm.populateFormFromTaskDefinition(res);\n\n this.taskDefinitionForm.form.controls.resourceUrl.setValue('');\n this.taskDefinitionForm.form.controls.resourceMethod.setValue('');\n this.taskDefinitionForm.form.controls.resourceIsGetter.setValue(false);\n\n // remove required Apps already there before importing\n this.taskDefinitionForm.requiredAppsFormArray().forEach((value, index) => {\n this.taskDefinitionForm.removeRequiredApp(index);\n });\n }\n });\n }\n\n publish(): void {\n this.publishedDisabled = true;\n this.taskDefinition$\n .pipe(\n switchMap((td) =>\n this.automataDevelopmentService.updateTaskDefinition(\n { id: td.id, publishedState: PublishedState.PUBLISHED_STATE_PUBLISHED },\n {\n paths: ['PublishedState'],\n },\n ),\n ),\n take(1),\n )\n .subscribe(\n () => {\n this.publishedDisabled = false;\n this.alertService.openSuccessSnack('Published');\n this.cdr.detectChanges();\n },\n (err) => {\n console.error(err);\n this.publishedDisabled = false;\n this.alertService.openErrorSnack(`It didn't work. You probably don't have permissions to publish this`);\n this.cdr.detectChanges();\n },\n );\n }\n}\n","\n \n \n \n \n\n Edit Task Definition\n\n \n \n \n \n \n \n \n \n \n \n \n \n Publish\n \n \n \n \n \n \n \n \n \n \n \n \n\n","import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\nimport {\n AutomataDevelopmentService,\n EventTriggerDefinitionInterface,\n TaskDefinitionInterface,\n TaskType,\n} from '@vendasta/automata';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { TaskDefinitionFormComponent } from '../task-definition-form/task-definition-form.component';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Observable, of } from 'rxjs';\nimport { stringToTaskType } from '../conversion';\n\n@Component({\n selector: 'app-create-task-definition-page',\n templateUrl: './create-task-definition-page.component.html',\n styleUrls: ['./create-task-definition-page.component.scss'],\n})\nexport class CreateTaskDefinitionPageComponent implements OnInit {\n @ViewChild('taskDefinitionForm') taskDefinitionForm: TaskDefinitionFormComponent;\n saveDisabled = false;\n\n sourceEventTriggerDefinition$: Observable;\n taskType$: Observable;\n\n constructor(\n private route: ActivatedRoute,\n private readonly automataDevelopmentService: AutomataDevelopmentService,\n private router: Router,\n private alertService: SnackbarService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n const eventTriggerDefinitionId$ = this.route.queryParamMap.pipe(\n take(1),\n map((params) => params.get('eventTriggerDefinitionId')),\n );\n\n this.sourceEventTriggerDefinition$ = eventTriggerDefinitionId$.pipe(\n take(1),\n switchMap((id) => {\n if (id) {\n return this.automataDevelopmentService.getEventTriggerDefinition(id);\n }\n return of({});\n }),\n );\n\n this.taskType$ = this.route.queryParamMap.pipe(\n take(1),\n map((params) => stringToTaskType(params.get('taskType'))),\n );\n }\n\n cancelClicked(value: boolean): void {\n if (value) {\n this.router.navigate(['/automations/task-definitions/list']);\n }\n }\n\n saveClicked(value: TaskDefinitionInterface): void {\n if (!value) {\n this.alertService.openErrorSnack(`I don't know how we got here, that's on you to figure out`);\n return;\n }\n this.saveDisabled = true;\n this.automataDevelopmentService\n .createTaskDefinition(value)\n .pipe(take(1))\n .subscribe(\n () => {\n this.saveDisabled = false;\n this.alertService.openSuccessSnack('Task definition successfully created');\n this.cdr.detectChanges();\n this.router.navigate(['/automations/task-definitions/list']);\n },\n (err) => {\n console.error(err);\n this.saveDisabled = false;\n this.alertService.openErrorSnack(err?.error?.message);\n this.cdr.detectChanges();\n },\n );\n }\n\n import(): void {\n this.taskDefinitionForm.import();\n }\n}\n","\n \n \n \n \n\n Create Task Definition\n \n \n \n \n \n \n \n\n","import { Component, DestroyRef, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { EventTriggerDefinitionInterface, FlattenedConfigDataType } from '@vendasta/automata';\nimport { EventBrokerService, EventTypeInterface } from '@vendasta/event-broker';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject, combineLatest, Observable, throwError } from 'rxjs';\nimport { catchError, map, scan, startWith, switchMap, take, tap } from 'rxjs/operators';\nimport { updateControlValidity } from '../../common/form-helpers';\nimport { ImportFromJsonDialogComponent } from '../../common/import-from-json-dialog/import-from-json-dialog.component';\nimport { JsonPathTesterDialogComponent } from '../../common/json-path-tester-dialog/json-path-tester-dialog.component';\n\n@Component({\n selector: 'app-event-trigger-definition-form',\n templateUrl: './event-trigger-definition-form.component.html',\n styleUrls: ['./event-trigger-definition-form.component.scss'],\n})\nexport class EventTriggerDefinitionFormComponent implements OnInit {\n @Input() eventTriggerDefinition: EventTriggerDefinitionInterface = {};\n @Input() saveDisabled: boolean;\n\n @Output() cancelClicked: EventEmitter = new EventEmitter();\n @Output() saveClicked: EventEmitter = new EventEmitter();\n\n flattenedConfigDataType = FlattenedConfigDataType;\n\n eventTypes$: Observable;\n eventTypesNextCursorTrigger$$: BehaviorSubject = new BehaviorSubject(null);\n\n form: UntypedFormGroup = new UntypedFormGroup({\n eventTypeId: new UntypedFormControl('', Validators.required), // Only used for create\n name: new UntypedFormControl('', Validators.required),\n parametersPaths: new UntypedFormArray([], Validators.required),\n triggerContextIdFormat: new UntypedFormControl('', Validators.required),\n flattenFieldToggle: new FormControl(false),\n flattenFieldDataType: new FormControl(0),\n flattenFieldSourcePath: new FormControl(''),\n flattenFieldDestinationPath: new FormControl(''),\n });\n\n filteredEventTypes$: Observable;\n\n private static getParametersPathFormGroup(): UntypedFormGroup {\n return new UntypedFormGroup({\n inStream: new UntypedFormControl('', Validators.required),\n fromEvent: new UntypedFormControl('', Validators.required),\n isFilterKey: new UntypedFormControl(''),\n });\n }\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private readonly alertService: SnackbarService,\n private dialog: MatDialog,\n public eventBrokerService: EventBrokerService,\n ) {}\n\n parametersPathsFormArray(): UntypedFormArray {\n return this.form.controls.parametersPaths as UntypedFormArray;\n }\n\n ngOnInit(): void {\n if (this.eventTriggerDefinition?.eventTypeId) {\n this.form.controls.eventTypeId.disable();\n }\n this.populateFormFromEventTriggerDefinition();\n\n this.eventTypes$ = this.eventTypesNextCursorTrigger$$.pipe(\n switchMap((cursor) => this.eventBrokerService.listEventTypes(cursor, 50)),\n tap((resp) => (resp?.nextCursor ? this.eventTypesNextCursorTrigger$$.next(resp.nextCursor) : null)),\n map((resp) => resp?.eventTypes || []),\n scan((acc, curr) => {\n return [...acc, ...curr];\n }, []),\n catchError((err) => {\n console.error(err);\n return throwError(err);\n }),\n );\n\n this.filteredEventTypes$ = combineLatest([\n this.form.controls.eventTypeId.valueChanges.pipe(startWith('')),\n this.eventTypes$,\n ]).pipe(\n map(([value, eventTypes]) => {\n if (!value) {\n return eventTypes;\n }\n return eventTypes.filter((eventType) => eventType.name.toLocaleLowerCase().includes(value.toLowerCase()));\n }),\n map((eventTypes) => eventTypes.sort((a, b) => a.name.localeCompare(b.name))),\n );\n\n // Enforce required fields for the Flattened Config section\n this.form.controls.flattenFieldToggle.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((value) => {\n if (value) {\n this.form.controls.flattenFieldDataType.setValidators([Validators.required]);\n this.form.controls.flattenFieldSourcePath.setValidators([Validators.required]);\n this.form.controls.flattenFieldDestinationPath.setValidators([Validators.required]);\n } else {\n this.form.controls.flattenFieldDataType.setValidators([]);\n this.form.controls.flattenFieldSourcePath.setValidators([]);\n this.form.controls.flattenFieldDestinationPath.setValidators([]);\n }\n this.form.controls.flattenFieldDataType.updateValueAndValidity();\n this.form.controls.flattenFieldSourcePath.updateValueAndValidity();\n this.form.controls.flattenFieldDestinationPath.updateValueAndValidity();\n });\n this.form.controls.flattenFieldDataType.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n if (\n value === FlattenedConfigDataType.FLATTENED_CONFIG_DATA_TYPE_UNSET ||\n !this.form.controls.flattenFieldToggle.value\n ) {\n return;\n }\n if (value === FlattenedConfigDataType.FLATTENED_CONFIG_DATA_TYPE_STRUCT) {\n this.form.controls.flattenFieldDestinationPath.setValidators([]);\n } else {\n this.form.controls.flattenFieldDestinationPath.setValidators([Validators.required]);\n }\n this.form.controls.flattenFieldDestinationPath.updateValueAndValidity();\n });\n }\n\n populateFormFromEventTriggerDefinition(): void {\n this.form.controls.eventTypeId.setValue(this.eventTriggerDefinition?.eventTypeId);\n this.form.controls.name.setValue(this.eventTriggerDefinition?.name);\n this.form.controls.triggerContextIdFormat.setValue(this.eventTriggerDefinition?.triggerContextIdFormat);\n\n (this.form.controls.parametersPaths as UntypedFormArray).clear();\n const parametersPaths = JSON.parse(this.eventTriggerDefinition?.parametersPaths || '{}');\n Object.entries(parametersPaths || {}).map((pp) => {\n if (!pp[0] || !pp[1]) {\n this.alertService.errorSnack('something went terribly wrong parsing the parametersPaths');\n }\n const fg = EventTriggerDefinitionFormComponent.getParametersPathFormGroup();\n fg.controls.inStream.setValue(pp[0]);\n fg.controls.fromEvent.setValue(pp[1]);\n fg.controls.isFilterKey.setValue(\n this.inParameterFilterKeys(pp[0] as string, this.eventTriggerDefinition?.parameterFilterKeys),\n );\n (this.form.controls.parametersPaths as UntypedFormArray).push(fg);\n });\n if (this.eventTriggerDefinition.flattenedConfig) {\n this.form.controls.flattenFieldToggle.setValue(true);\n this.form.controls.flattenFieldDataType.setValue(this.eventTriggerDefinition.flattenedConfig.dataType);\n\n const flattenedConfigPath = JSON.parse(this.eventTriggerDefinition.flattenedConfig.sourcePath);\n this.form.controls.flattenFieldDestinationPath.setValue(Object.keys(flattenedConfigPath)[0]);\n this.form.controls.flattenFieldSourcePath.setValue(flattenedConfigPath[Object.keys(flattenedConfigPath)[0]]);\n }\n }\n\n inParameterFilterKeys(parameterPath: string, parameterFilterKeys: string[]): boolean {\n const strippedPath = parameterPath.replace('.$', '');\n\n return parameterFilterKeys?.indexOf(strippedPath) > -1;\n }\n\n addParametersPath(): void {\n (this.form.controls.parametersPaths as UntypedFormArray).push(\n EventTriggerDefinitionFormComponent.getParametersPathFormGroup(),\n );\n }\n\n removeParametersPath(index: number): void {\n (this.form.controls.parametersPaths as UntypedFormArray).removeAt(index);\n }\n\n cancel(): void {\n this.cancelClicked.emit(true);\n }\n\n save(): void {\n if (!this.form.valid) {\n updateControlValidity(this.form);\n this.alertService.errorSnack('You need to correctly fill out the form :/');\n return;\n }\n\n const parametersPathsObj = {};\n const parameterFilterKeys = [];\n (this.form.controls.parametersPaths as UntypedFormArray).controls.map((controls) => {\n const group = controls as UntypedFormGroup;\n const inStream = group.controls.inStream.value;\n const fromEvent = group.controls.fromEvent.value;\n if (group.controls.isFilterKey.value) {\n parameterFilterKeys.push(inStream.replace('.$', ''));\n }\n parametersPathsObj[inStream] = fromEvent;\n });\n const parametersPath = JSON.stringify(parametersPathsObj);\n\n let flattenedFieldConfig = null;\n if (this.form.controls.flattenFieldToggle.value) {\n const flattenedFieldPath = {};\n flattenedFieldPath[this.form.controls.flattenFieldDestinationPath.value || ''] =\n this.form.controls.flattenFieldSourcePath.value;\n flattenedFieldConfig = {\n sourcePath: JSON.stringify(flattenedFieldPath),\n dataType: this.form.controls.flattenFieldDataType.value,\n };\n }\n\n const newEventTriggerDefinition: EventTriggerDefinitionInterface = {\n eventTypeId: this.eventTriggerDefinition?.eventTypeId\n ? this.eventTriggerDefinition?.eventTypeId\n : this.form.controls.eventTypeId.value,\n name: this.form.controls.name.value,\n parametersPaths: parametersPath,\n triggerContextIdFormat: this.form.controls.triggerContextIdFormat.value,\n parameterFilterKeys: parameterFilterKeys,\n flattenedConfig: flattenedFieldConfig,\n };\n this.saveClicked.emit(newEventTriggerDefinition);\n }\n\n testParametersPaths(): void {\n const toTest = this.parametersPathsFormArray().controls.reduce((prev, curr) => {\n const group = curr as UntypedFormGroup;\n const inStream = group.controls.inStream.value;\n const fromEvent = group.controls.fromEvent.value;\n prev[inStream] = fromEvent;\n return prev;\n }, {});\n this.dialog.open(JsonPathTesterDialogComponent, {\n data: {\n toTest: toTest,\n },\n });\n }\n\n eventTypeSelected(selectedValue: any): void {\n const eventTypeId = selectedValue.option.value;\n this.eventBrokerService\n .getEventTypes([eventTypeId])\n .pipe(take(1))\n .subscribe((res) => {\n if ((res || []).length !== 1) {\n this.alertService.errorSnack('something went horribly wrong with selecting an event broker event type');\n }\n this.populateParametersPathsFromEventType(res[0]);\n this.alertService.successSnack(\n 'ParametersPaths have been populated for you. This is very naive and you should not just accept all of the values as is. For the most part, you should only have ids of entity (e.g. partner_id, market_id, account_group_id, and the field(s) that will be used for your Trigger Options when you make your Task Definition. ABSOLUTELY NO PII CAN BE MAPPED HERE. THIS IS WHERE YOU STRIP THAT OUT OF THE EVENT DATA BY NOT INCLUDING IT IN THE PARAMETERSPATHS',\n 'Agreed',\n 10000000,\n );\n });\n }\n\n populateParametersPathsFromEventType(eventType: EventTypeInterface): void {\n const parametersPaths = this.form.controls.parametersPaths as UntypedFormArray;\n (eventType?.schema?.properties || []).map((property) => {\n const group = EventTriggerDefinitionFormComponent.getParametersPathFormGroup();\n group.controls.inStream.setValue(`${property.name}.$`);\n group.controls.fromEvent.setValue(`{.${property.name}}`);\n parametersPaths.push(group);\n });\n }\n\n public import(): void {\n const dialogRef = this.dialog.open(ImportFromJsonDialogComponent);\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((res) => {\n if (res) {\n this.eventTriggerDefinition = res;\n this.populateFormFromEventTriggerDefinition();\n }\n });\n }\n}\n","
\n
\n
\n \n \n Base information\n \n \n
\n \n Event Type\n \n \n \n \n {{ eventType.name }}\n \n \n \n \n \n Name\n \n This is not shown to users, just makes it easier to navigate the data\n Required\n \n \n Trigger Context ID Format\n \n Required\n \n\n Flattened Field Config\n
Used to treat each value in an array as it's own trigger event
\n\n
\n \n Data Type\n \n Struct\n \n Simple type (int, bool, string, etc.)\n \n \n Data type of values inside the array\n \n\n \n Destination path\n \n Where to put the field on the stream. Should be of form my_string_array.$\n \n\n \n Source path\n \n \n Where to find the field in the event data. Should be of form {{ '{' }}.my_string{{ '}' }}\n \n \n
\n
\n
\n
\n \n \n Parameters Paths\n \n \n \n
\n \n \n To be added to stream data\n \n should be of form partner_id.$\n Required\n \n \n How to read the data from the event\n \n should be of form {{ '{' }}.partner_id{{ '}' }}\n Required\n \n Is this parameter path filterable?\n \n a filterable parameter path can be waited on when used in the delay until trigger action\n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n","import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n AutomataDevelopmentService,\n EventTriggerDefinitionInterface,\n TaskDefinitionInterface,\n} from '@vendasta/automata';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { map, shareReplay, switchMap, take } from 'rxjs/operators';\nimport { EventTriggerDefinitionFormComponent } from '../event-trigger-definition-form/event-trigger-definition-form.component';\n\n@Component({\n selector: 'app-edit-event-trigger-definition-page',\n templateUrl: './edit-event-trigger-definition-page.component.html',\n styleUrls: ['./edit-event-trigger-definition-page.component.scss'],\n})\nexport class EditEventTriggerDefinitionPageComponent implements OnInit {\n private eventTriggerDefinitionId$: Observable;\n eventTriggerDefinition$: Observable;\n\n @ViewChild('eventTriggerDefinitionForm') eventTriggerDefinitionForm: EventTriggerDefinitionFormComponent;\n saveDisabled = false;\n\n constructor(\n private route: ActivatedRoute,\n private readonly automataDevelopmentService: AutomataDevelopmentService,\n private router: Router,\n private alertService: SnackbarService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.eventTriggerDefinitionId$ = this.route.params.pipe(\n take(1),\n map((params) => params.eventTriggerDefinitionId),\n );\n this.eventTriggerDefinition$ = this.eventTriggerDefinitionId$.pipe(\n take(1),\n switchMap((id) => this.automataDevelopmentService.getEventTriggerDefinition(id)),\n shareReplay(1),\n );\n }\n\n cancelClicked(value: boolean): void {\n if (value) {\n this.router.navigate(['/automations/event-trigger-definitions/list']);\n }\n }\n\n saveClicked(value: EventTriggerDefinitionInterface): void {\n if (!value) {\n this.alertService.openErrorSnack(`I don't know how we got here, that's on you to figure out`);\n return;\n }\n this.saveDisabled = true;\n this.automataDevelopmentService\n .updateEventTrigger(value, {\n paths: ['Name', 'ParametersPaths', 'TriggerContextIDFormat', 'ParameterFilterKeys', 'FlattenedConfig'],\n })\n .pipe(take(1))\n .subscribe(\n () => {\n this.saveDisabled = false;\n this.alertService.openSuccessSnack('Event trigger definition successfully edited');\n this.cdr.detectChanges();\n },\n (err) => {\n console.error(err);\n this.saveDisabled = false;\n this.alertService.openErrorSnack(err?.error?.message);\n this.cdr.detectChanges();\n },\n );\n }\n\n copyToClipboard(): void {\n this.eventTriggerDefinition$.pipe(take(1)).subscribe((etd) => {\n const selBox = document.createElement('textarea');\n selBox.style.position = 'fixed';\n selBox.style.left = '0';\n selBox.style.top = '0';\n selBox.style.opacity = '0';\n selBox.value = JSON.stringify(etd, null, 4);\n document.body.appendChild(selBox);\n selBox.focus();\n selBox.select();\n document.execCommand('copy');\n document.body.removeChild(selBox);\n\n this.alertService.openSuccessSnack('Copied');\n });\n }\n}\n","\n \n \n \n \n\n Edit Trigger Definition\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n","import { ChangeDetectorRef, Component, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AutomataDevelopmentService, EventTriggerDefinitionInterface } from '@vendasta/automata';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { take } from 'rxjs/operators';\nimport { EventTriggerDefinitionFormComponent } from '../event-trigger-definition-form/event-trigger-definition-form.component';\n\n@Component({\n selector: 'app-create-event-trigger-definition-page',\n templateUrl: './create-event-trigger-definition-page.component.html',\n styleUrls: ['./create-event-trigger-definition-page.component.scss'],\n})\nexport class CreateEventTriggerDefinitionPageComponent {\n @ViewChild('eventTriggerDefinitionForm') eventTriggerDefinitionForm: EventTriggerDefinitionFormComponent;\n saveDisabled = false;\n\n constructor(\n private route: ActivatedRoute,\n private readonly automataDevelopmentService: AutomataDevelopmentService,\n private router: Router,\n private alertService: SnackbarService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n cancelClicked(value: boolean): void {\n if (value) {\n this.router.navigate(['/automations/event-trigger-definitions/list']);\n }\n }\n\n saveClicked(value: EventTriggerDefinitionInterface): void {\n if (!value) {\n this.alertService.openErrorSnack(`I don't know how we got here, that's on you to figure out`);\n return;\n }\n this.saveDisabled = true;\n this.automataDevelopmentService\n .createEventTriggerDefinition(value)\n .pipe(take(1))\n .subscribe(\n () => {\n this.saveDisabled = false;\n this.alertService.openSuccessSnack('Event trigger definition successfully created');\n this.cdr.detectChanges();\n this.router.navigate(['/automations/task-definitions/list']);\n },\n (err) => {\n console.error(err);\n this.saveDisabled = false;\n this.alertService.openErrorSnack(err?.error?.message);\n this.cdr.detectChanges();\n },\n );\n }\n\n import(): void {\n this.eventTriggerDefinitionForm.import();\n }\n}\n","\n \n \n \n \n\n Create Event Trigger Definition\n \n \n \n \n \n \n \n\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes, UrlSegment } from '@angular/router';\nimport { TaskDefinitionsListPageComponent } from './task-definitions/task-definitions-list-page/task-definitions-list-page.component';\nimport { EventTriggerDefinitionsListPageComponent } from './event-trigger-definitions/event-trigger-definitions-list-page/event-trigger-definitions-list-page.component';\nimport { EditTaskDefinitionPageComponent } from './task-definitions/edit-task-definition-page/edit-task-definition-page.component';\nimport { CreateTaskDefinitionPageComponent } from './task-definitions/create-task-definition-page/create-task-definition-page.component';\nimport { EditEventTriggerDefinitionPageComponent } from './event-trigger-definitions/edit-event-trigger-definition-page/edit-event-trigger-definition-page.component';\nimport { CreateEventTriggerDefinitionPageComponent } from './event-trigger-definitions/create-event-trigger-definition-page/create-event-trigger-definition-page.component';\n\nconst routes: Routes = [\n { path: 'task-definitions/list', component: TaskDefinitionsListPageComponent, children: [] },\n {\n path: 'task-definitions/edit/:taskDefinitionId',\n component: EditTaskDefinitionPageComponent,\n children: [],\n },\n {\n path: 'task-definitions/create',\n component: CreateTaskDefinitionPageComponent,\n children: [],\n },\n { path: 'event-trigger-definitions/list', component: EventTriggerDefinitionsListPageComponent, children: [] },\n {\n path: 'event-trigger-definitions/edit',\n children: [\n {\n matcher: (segments) => {\n if (segments.length > 0) {\n let eventTriggerDefinitionId = segments.map((s) => s.path).join('/');\n if (!eventTriggerDefinitionId.startsWith('/')) {\n // Router linking to this page leaves the slash in the id, but it is lost when directly loading the page\n eventTriggerDefinitionId = '/' + eventTriggerDefinitionId;\n }\n return {\n consumed: segments,\n posParams: {\n eventTriggerDefinitionId: new UrlSegment(eventTriggerDefinitionId, {}),\n },\n };\n }\n return null;\n },\n component: EditEventTriggerDefinitionPageComponent,\n },\n ],\n },\n {\n path: 'event-trigger-definitions/create',\n component: CreateEventTriggerDefinitionPageComponent,\n children: [],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AutomationsRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { GalaxySnackbarModule } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { Filter2TableModule } from '@vendasta/va-filter2-table';\nimport { InViewportModule } from 'ng-in-viewport';\nimport { AutomationsRoutingModule } from './automations.routing.module';\nimport { BooleanCellComponent } from './common/boolean-cell.component';\nimport { DateCellComponent } from './common/date-cell.component';\nimport { ImportFromJsonDialogComponent } from './common/import-from-json-dialog/import-from-json-dialog.component';\nimport { JsonPathTesterDialogComponent } from './common/json-path-tester-dialog/json-path-tester-dialog.component';\nimport { CreateEventTriggerDefinitionPageComponent } from './event-trigger-definitions/create-event-trigger-definition-page/create-event-trigger-definition-page.component';\nimport { EditEventTriggerDefinitionPageComponent } from './event-trigger-definitions/edit-event-trigger-definition-page/edit-event-trigger-definition-page.component';\nimport { EventTriggerDefinitionFormComponent } from './event-trigger-definitions/event-trigger-definition-form/event-trigger-definition-form.component';\nimport { EventTriggerDefinitionsListPageComponent } from './event-trigger-definitions/event-trigger-definitions-list-page/event-trigger-definitions-list-page.component';\nimport { NameCellComponent as EventTriggerDefinitionNameCellComponent } from './event-trigger-definitions/event-trigger-definitions-list-page/event-trigger-defintions-table/cells/name-cell.component';\nimport { CreateTaskDefinitionPageComponent } from './task-definitions/create-task-definition-page/create-task-definition-page.component';\nimport { EventTriggerDefinitionSelectorDialogComponent } from './task-definitions/create-task-definition-page/event-trigger-definition-selector-dialog/event-trigger-definition-selector-dialog.component';\nimport { EditTaskDefinitionPageComponent } from './task-definitions/edit-task-definition-page/edit-task-definition-page.component';\nimport { AddInputParameterDialogComponent } from './task-definitions/task-definition-form/add-input-parameter-dialog/add-input-parameter-dialog.component';\nimport { TaskDefinitionFormComponent } from './task-definitions/task-definition-form/task-definition-form.component';\nimport { TaskDefinitionsListPageComponent } from './task-definitions/task-definitions-list-page/task-definitions-list-page.component';\nimport { InputParamsCellComponent } from './task-definitions/task-definitions-list-page/task-defintions-table/cells/input-params-cell.component';\nimport { NameCellComponent as TaskDefinitionNameCellComponent } from './task-definitions/task-definitions-list-page/task-defintions-table/cells/name-cell.component';\nimport { OutputParamsCellComponent } from './task-definitions/task-definitions-list-page/task-defintions-table/cells/output-params-cell.component';\nimport { PublishedStateCellComponent } from './task-definitions/task-definitions-list-page/task-defintions-table/cells/published-state-cell.component';\nimport { ResourceCellComponent } from './task-definitions/task-definitions-list-page/task-defintions-table/cells/resource-cell.component';\nimport { SupportedContextsCellComponent } from './task-definitions/task-definitions-list-page/task-defintions-table/cells/supported-contexts-cell.component';\nimport { TaskTypeCellComponent } from './task-definitions/task-definitions-list-page/task-defintions-table/cells/task-type-cell.component';\nimport { RuleInputComponent } from './task-definitions/rule-input/rule-input.component';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { AndOrInputComponent } from './task-definitions/and-or-input/and-or-input.component';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\n\n@NgModule({\n declarations: [\n TaskDefinitionsListPageComponent,\n DateCellComponent,\n BooleanCellComponent,\n PublishedStateCellComponent,\n ResourceCellComponent,\n TaskTypeCellComponent,\n OutputParamsCellComponent,\n InputParamsCellComponent,\n EventTriggerDefinitionsListPageComponent,\n EditTaskDefinitionPageComponent,\n TaskDefinitionNameCellComponent,\n SupportedContextsCellComponent,\n TaskDefinitionFormComponent,\n CreateTaskDefinitionPageComponent,\n AddInputParameterDialogComponent,\n EditEventTriggerDefinitionPageComponent,\n EventTriggerDefinitionNameCellComponent,\n EventTriggerDefinitionFormComponent,\n CreateEventTriggerDefinitionPageComponent,\n EventTriggerDefinitionSelectorDialogComponent,\n JsonPathTesterDialogComponent,\n ImportFromJsonDialogComponent,\n ],\n imports: [\n CommonModule,\n MatProgressSpinnerModule,\n MatListModule,\n MatToolbarModule,\n MatButtonModule,\n MatTableModule,\n MatPaginatorModule,\n AutomationsRoutingModule,\n MatTooltipModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatRadioModule,\n ReactiveFormsModule,\n MatSelectModule,\n MatTabsModule,\n GalaxySnackbarModule,\n MatCheckboxModule,\n GalaxyPageModule,\n LexiconModule.forChild(),\n Filter2TableModule,\n MatCardModule,\n GalaxyWrapModule,\n MatDividerModule,\n MatDialogModule,\n MatMenuModule,\n InViewportModule,\n GalaxyTooltipModule,\n GalaxyFormFieldModule,\n MatSlideToggleModule,\n RuleInputComponent,\n AndOrInputComponent,\n MatAutocompleteModule,\n GalaxyAlertModule,\n ],\n providers: [],\n})\nexport class AutomationsModule {}\n"],"mappings":"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","names":["require_jsonpath","__commonJSMin","exports","module","f","g","define","e","t","n","r","s","o","u","a","__require","i","l","require","root","factory","Token","TokenName","FnExprTokens","Syntax","PropertyKind","Messages","Regex","SyntaxTreeDelegate","source","strict","index","lineNumber","lineStart","length","delegate","lookahead","state","extra","assert","condition","message","isDecimalDigit","ch","isHexDigit","isOctalDigit","isWhiteSpace","isLineTerminator","isIdentifierStart","isIdentifierPart","isFutureReservedWord","id","isStrictModeReservedWord","isRestrictedWord","isKeyword","addComment","type","value","start","end","loc","comment","attacher","skipSingleLineComment","offset","skipMultiLineComment","throwError","skipComment","scanHexEscape","prefix","len","code","getEscapedIdentifier","getIdentifier","scanIdentifier","scanPunctuator","code2","ch1","ch2","ch3","ch4","scanHexLiteral","number","scanOctalLiteral","scanNumericLiteral","scanStringLiteral","str","quote","unescaped","restore","octal","startLineNumber","startLineStart","testRegExp","pattern","flags","scanRegExpBody","classMarker","terminated","body","scanRegExpFlags","throwErrorTolerant","scanRegExp","collectRegex","pos","regex","token","isIdentifierName","advanceSlash","prevToken","checkToken","advance","collectToken","range","lex","peek","line","Position","column","SourceLocation","startLine","startColumn","node","lastChild","trailingComments","startToken","elements","operator","left","right","label","callee","args","param","test","consequent","alternate","expression","init","update","params","defaults","name","accessor","object","property","properties","argument","kind","key","expressions","discriminant","cases","block","guardedHandlers","handlers","finalizer","declarations","peekLineTerminator","found","messageFormat","error","msg","whole","throwUnexpected","expect","expectKeyword","keyword","match","matchKeyword","matchAssign","op","consumeSemicolon","isLeftHandSide","expr","parseArrayInitialiser","parseAssignmentExpression","parsePropertyFunction","first","previousStrict","parseFunctionSourceElements","parseObjectPropertyKey","parseObjectProperty","parseVariableIdentifier","parseObjectInitialiser","map","toString","parseGroupExpression","parseExpression","parsePrimaryExpression","parseFunctionExpression","parseArguments","parseNonComputedProperty","parseNonComputedMember","parseComputedMember","parseNewExpression","parseLeftHandSideExpression","parseLeftHandSideExpressionAllowCall","previousAllowIn","parsePostfixExpression","parseUnaryExpression","binaryPrecedence","allowIn","prec","parseBinaryExpression","marker","markers","stack","parseConditionalExpression","parseStatementList","list","statement","parseSourceElement","parseBlock","parseVariableDeclaration","parseVariableDeclarationList","parseVariableStatement","parseConstLetDeclaration","parseEmptyStatement","parseExpressionStatement","parseIfStatement","parseStatement","parseDoWhileStatement","oldInIteration","parseWhileStatement","parseForVariableDeclaration","parseForStatement","parseContinueStatement","parseBreakStatement","parseReturnStatement","parseWithStatement","parseSwitchCase","parseSwitchStatement","clause","oldInSwitch","defaultFound","parseThrowStatement","parseCatchClause","parseTryStatement","parseDebuggerStatement","labeledBody","parseFunctionDeclaration","sourceElement","sourceElements","directive","firstRestricted","oldLabelSet","oldInFunctionBody","parseParams","stricted","paramSet","tmp","parseSourceElements","parseProgram","filterTokenLocation","entry","tokens","tokenize","options","lexError","parse","program","types","process","parser","yytext","yyleng","yylineno","yy","yystate","$$","_$","_ast","$0","hash","input","self","vstack","lstack","table","recovering","TERROR","EOF","yyloc","ranges","popStack","symbol","preErrorSymbol","action","yyval","p","newState","expected","errStr","props","k","obj","_nodes","lexer","lines","oldLines","past","next","pre","c","indexed_rule","backup","tempMatch","rules","yy_","$avoiding_name_collisions","YY_START","YYSTATE","Parser","dict","fs","grammar","aesprim","slice","_evaluate","_uniq","Handlers","traverser","component","method","handler","partial","_traverse","ref","_descend","is_array","_parse_nullable_int","values","v","results","_component","_results","unique","count","jp","nodes","src","ast","passable","evaluate","exp","eval_recurse","template","path","val","is_object","recurse","descend","element","d","sval","JSONPath","string","_is_string","fn","b","parent","setValue","partials","matches","_partials","templates","_path","instance","gparser","_parseError","arr","step","integer","result","util","pSlice","hasOwn","ok","getMessage","stackStartFunction","fail","err","out","fn_name","idx","next_line","replacer","truncate","actual","_deepEqual","objEquiv","isArguments","aIsArgs","bIsArgs","ka","objectKeys","kb","expectedException","_throws","shouldThrow","keys","ctor","superCtor","TempCtor","arg","global","formatRegExp","isString","objects","inspect","x","isNull","isObject","isUndefined","warned","deprecated","debugs","debugEnviron","set","pid","opts","ctx","stylizeNoColor","isBoolean","stylizeWithColor","formatValue","styleType","style","arrayToHash","array","recurseTimes","isFunction","ret","primitive","formatPrimitive","visibleKeys","isError","formatError","isRegExp","isDate","base","braces","isArray","output","formatArray","formatProperty","reduceToSingleString","simple","isNumber","hasOwnProperty","desc","numLinesEst","prev","cur","ar","isNullOrUndefined","isSymbol","re","objectToString","isPrimitive","pad","months","timestamp","time","origin","add","prop","normalizeArray","parts","allowAboveRoot","up","last","resolvedPath","resolvedAbsolute","filter","isAbsolute","trailingSlash","substr","paths","from","to","trim","fromParts","toParts","samePartsLength","outputParts","hasRoot","matchedSlash","basename","ext","startDot","startPart","preDotState","xs","res","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","Item","noop","dir","unparse","vars","FAIL","walk","scopeVars","bodies","oldVars","vals","tag","quasi","strings","InViewportConfigDirection","isPlatformBrowser","toBase64","InViewportConfig","_InViewportConfig","options","prop","input","stringifiedArr","i","acc","sortedKeys","k","v","value","margins","margin","parts","threshold","isValidThreshold","val","isValidValue","InViewportService","ngZone","Subject","entries","entry","element","root","configHash","target","config","foundedEntry","observer","targets","__ngFactoryType__","ɵɵinject","NgZone","ɵɵdefineInjectable","InViewportMetadata","InViewportDirective","platformId","elementRef","inViewport","EventEmitter","filter","takeUntil","force","visible","isIntersecting","intersectionRatio","partiallyVisible","completelyVisible","event","ɵɵdirectiveInject","PLATFORM_ID","ElementRef","ɵɵdefineDirective","InViewportModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","Choices","_Choices","proto","m","Rule$1","kwargs","toReturn","Rule","DataType","ValidationType","Context","FlattenedConfigDataType","PublishedState","TaskType","enumStringToValue$a","enumRef","value","InputParameter","_InputParameter","proto","m","Parameter","ValidationType","kwargs","toReturn","OutputParameter","_OutputParameter","_Parameter","DataType","SleepWaitConditions","_SleepWaitConditions","proto","m","kwargs","toReturn","WaitForTriggerFilter","_WaitForTriggerFilter","proto","m","kwargs","toReturn","WorkflowStep","_WorkflowStep","Choices","OutputParameter","SleepWaitConditions","enumStringToValue$5","enumRef","value","EventTriggerDefinition","_EventTriggerDefinition","proto","m","FlattenedConfig","kwargs","toReturn","_FlattenedConfig","FlattenedConfigDataType","enumStringToValue$4","AppKey","_AppKey","CallOptions","_CallOptions","RetryPolicy","Resource","_Resource","_RetryPolicy","TaskDefinition","_TaskDefinition","InputParameter","OutputParameter","TaskType","PublishedState","WorkflowStep","v","Context","Choices","FieldMask","_FieldMask","proto","m","kwargs","toReturn","enumStringToValue","enumRef","value","CreateEventTriggerDefinitionRequest","_CreateEventTriggerDefinitionRequest","proto","m","EventTriggerDefinition","kwargs","toReturn","CreateTaskDefinitionRequest","_CreateTaskDefinitionRequest","TaskDefinition","CreateTaskDefinitionResponse","_CreateTaskDefinitionResponse","DeleteEventTriggerDefinitionRequest","_DeleteEventTriggerDefinitionRequest","proto","m","kwargs","toReturn","DeleteTaskDefinitionRequest","_DeleteTaskDefinitionRequest","ListTaskDefinitionsRequestFilters","_ListTaskDefinitionsRequestFilters","proto","m","enumStringToValue","TaskType","PublishedState","DataType","v","Context","kwargs","toReturn","ListEventTriggerDefinitionRequestFilters","_ListEventTriggerDefinitionRequestFilters","proto","m","kwargs","toReturn","GetEventTriggerDefinitionRequest","_GetEventTriggerDefinitionRequest","proto","m","kwargs","toReturn","GetEventTriggerDefinitionResponse","_GetEventTriggerDefinitionResponse","EventTriggerDefinition","GetMultiTaskDefinitionRequest","_GetMultiTaskDefinitionRequest","proto","m","kwargs","toReturn","GetMultiTaskDefinitionResponse","_GetMultiTaskDefinitionResponse","TaskDefinition","GetTaskDefinitionRequest","_GetTaskDefinitionRequest","proto","m","kwargs","toReturn","GetTaskDefinitionResponse","_GetTaskDefinitionResponse","TaskDefinition","ListEventTriggerDefinitionRequest","_ListEventTriggerDefinitionRequest","proto","m","ListEventTriggerDefinitionRequestFilters","PagedRequestOptions","kwargs","toReturn","ListEventTriggerDefinitionResponse","_ListEventTriggerDefinitionResponse","EventTriggerDefinition","PagedResponseMetadata","ListTaskDefinition","_ListTaskDefinition","proto","m","TaskDefinition","kwargs","toReturn","ListTaskDefinitionsRequest","_ListTaskDefinitionsRequest","ListTaskDefinitionsRequestFilters","PagedRequestOptions","ListTaskDefinitionsRequestValidationData","ListTaskDefinitionsResponse","_ListTaskDefinitionsResponse","PagedResponseMetadata","PagedRequestOptions","_PagedRequestOptions","proto","m","kwargs","toReturn","PagedResponseMetadata","_PagedResponseMetadata","UpdateEventTriggerDefinitionRequest","_UpdateEventTriggerDefinitionRequest","proto","m","EventTriggerDefinition","FieldMask","kwargs","toReturn","UpdateTaskDefinitionRequest","_UpdateTaskDefinitionRequest","TaskDefinition","ListTaskDefinitionsRequestValidationData","_ListTaskDefinitionsRequestValidationData","environment","hostMap","HostService","__ngFactoryType__","ɵɵdefineInjectable","PagedResponse","results","nextCursor","hasMore","totalResults","AutomataDevelopmentApiService","inject","HostService","HttpClient","HttpHeaders","request","CreateEventTriggerDefinitionRequest","__spreadProps","__spreadValues","UpdateEventTriggerDefinitionRequest","GetEventTriggerDefinitionRequest","map","resp","GetEventTriggerDefinitionResponse","DeleteEventTriggerDefinitionRequest","ListEventTriggerDefinitionRequest","ListEventTriggerDefinitionResponse","CreateTaskDefinitionRequest","CreateTaskDefinitionResponse","UpdateTaskDefinitionRequest","GetTaskDefinitionRequest","GetTaskDefinitionResponse","GetMultiTaskDefinitionRequest","GetMultiTaskDefinitionResponse","DeleteTaskDefinitionRequest","ListTaskDefinitionsRequest","ListTaskDefinitionsResponse","__ngFactoryType__","ɵɵdefineInjectable","AutomataDevelopmentService","api","eventTriggerDefinition","eventTypeId","fieldMask","taskDefinition","id","ids","filters","validationData","cursor","pageSize","PagedResponse","ɵɵinject","Comparison","Rule","_Rule","ri","variablePath","comparison","rawValue","value","Comparison","ruleList","i","rule","next","ignoreValue","knownAValue","knownBValue","value1","value2","index","values","knownChildRules","knownValue","maxLength","prev","cur","knownRule","child","newValue","v","And","Rule","value","next","Comparison","Or","taskTypeToString","taskType","TaskType","TASK_TYPE_ACTION","TASK_TYPE_TRIGGER","TASK_TYPE_FILTER","TASK_TYPE_BUILDING_BLOCKS","stringToTaskType","TASK_TYPE_UNSPECIFIED","buildLoggingUrl","url","replace","ɵɵelement","ɵɵproperty","ɵɵelementStart","ɵɵlistener","eventTriggerDefinition_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","selectEventTriggerDefinition","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","name","$event","_r4","loadMore","ɵɵpureFunction0","_c1","ɵɵelementContainerStart","ɵɵtemplate","EventTriggerDefinitionSelectorDialogComponent_mat_list_6_ng_container_1_ng_container_2_div_2_Template","details_r5","loading","hasMore","EventTriggerDefinitionSelectorDialogComponent_mat_list_6_ng_container_1_mat_list_item_1_Template","EventTriggerDefinitionSelectorDialogComponent_mat_list_6_ng_container_1_ng_container_2_Template","eventTriggerDefinitions_r6","ɵɵpureFunction2","_c0","ɵɵpipeBind1","hasMore$","EventTriggerDefinitionSelectorDialogComponent_mat_list_6_ng_container_1_Template","length","EventTriggerDefinitionSelectorDialogComponent","constructor","dialogRef","automataDevelopmentService","cdr","nextCursorTrigger$$","BehaviorSubject","hasMore$$","asObservable","ngOnInit","eventTriggerDefinitions$","pipe","tap","detectChanges","switchMap","cursor","listEventTriggerDefinitions","resp","next","nextCursorStorage","nextCursor","map","results","scan","acc","curr","catchError","err","console","error","throwError","inViewportEvent","visible","e","close","ɵɵdirectiveInject","MatDialogRef","AutomataDevelopmentService","ChangeDetectorRef","selectors","decls","vars","consts","template","rf","ctx","EventTriggerDefinitionSelectorDialogComponent_mat_spinner_2_Template","EventTriggerDefinitionSelectorDialogComponent_mat_list_6_Template","_EventTriggerDefinitionSelectorDialogComponent","TaskDefinitionsTableCustomComponent","inputs","columnDefinition","element","eventEmitter","_TaskDefinitionsTableCustomComponent","AUTOMATION_TABLE_LABELS","noResults","cancel","none","update","sortBy","thenSortBy","addAnotherSortColumn","chooseColumnToSortBy","columnSorting","date","ascending","descending","number","string","default","columnSelector","buttonText","export","buttonTooltipBeforeCount","buttonTooltipAfterCount","taskTypeLabels","TaskType","TASK_TYPE_ACTION","TASK_TYPE_TRIGGER","TASK_TYPE_BUILDING_BLOCKS","TASK_TYPE_FILTER","taskTypes","publishedStateLabels","PublishedState","PUBLISHED_STATE_PUBLISHED","PUBLISHED_STATE_DRAFT","publishedStates","validationTypeLabels","ValidationType","VALIDATION_TYPE_STREAM","VALIDATION_TYPE_SYSTEM","VALIDATION_TYPE_USER_PROVIDED","validationTypes","name","description","supportedContexts","Context","AUTOMATION_CONTEXT_PARTNER","AUTOMATION_CONTEXT_SMB","supportedContextsLabels","dataTypeLabelsMap","Map","DataType","DATA_TYPE_UNKNOWN","DATA_TYPE_STRING","DATA_TYPE_BOOLEAN","DATA_TYPE_ORDER_ACTION_TYPE","DATA_TYPE_ORDER_DECLINED_REASON_IDS","DATA_TYPE_ACCOUNT_GROUP_ID","DATA_TYPE_ORDER_ID","DATA_TYPE_SMB_USER_ID","DATA_TYPE_FULFILLMENT_PROJECT_ID","DATA_TYPE_EMAIL_ID","DATA_TYPE_EMAIL_EVENT","DATA_TYPE_OPPORTUNITY_ID","DATA_TYPE_COMPANY_ID","DATA_TYPE_CONTACT_ID","DATA_TYPE_JSON","DATA_TYPE_PRODUCT","DATA_TYPE_TASK","DATA_TYPE_CRM_NOTE","DATA_TYPE_CRM_EMAIL","DATA_TYPE_CRM_CALL","DATA_TYPE_CRM_MEETING","DATA_TYPE_CRM_SMS","DATA_TYPE_CRM_INBOX","DATA_TYPE_CRM_LINKEDIN","DATA_TYPE_INTEGRATION_CONNECTION","DATA_TYPE_NUMBER","DATA_TYPE_CURRENCY","DATA_TYPE_DATETIME","DATA_TYPE_CRM_OPPORTUNITY_ID","dataTypeLabels","Object","fromEntries","entries","dataTypes","keys","TaskTypeCellComponent","TaskDefinitionsTableCustomComponent","constructor","ngOnInit","display","taskTypeLabels","element","taskDefinition","taskType","selectors","features","ɵɵInheritDefinitionFeature","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","_TaskTypeCellComponent","PublishedStateCellComponent","TaskDefinitionsTableCustomComponent","constructor","ngOnInit","display","publishedStateLabels","element","taskDefinition","publishedState","selectors","features","ɵɵInheritDefinitionFeature","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","_PublishedStateCellComponent","InputParamsCellComponent","TaskDefinitionsTableCustomComponent","constructor","ngOnInit","ids","element","taskDefinition","inputParameters","map","ip","settings","id","display","join","selectors","features","ɵɵInheritDefinitionFeature","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","_InputParamsCellComponent","OutputParamsCellComponent","TaskDefinitionsTableCustomComponent","constructor","ngOnInit","ids","element","taskDefinition","outputParameters","map","ip","settings","id","display","join","selectors","features","ɵɵInheritDefinitionFeature","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","_OutputParamsCellComponent","BooleanCellComponent","constructor","cellValueService","yesno","ngOnInit","getCellValue","columnDefinition","id","field","element","ɵɵdirectiveInject","CellValueService","selectors","inputs","decls","vars","template","rf","ctx","ɵɵtext","ɵɵtextInterpolate1","_BooleanCellComponent","NameCellComponent","TaskDefinitionsTableCustomComponent","constructor","ngOnInit","name","element","taskDefinition","id","selectors","features","ɵɵInheritDefinitionFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵpureFunction1","_c0","ɵɵadvance","ɵɵtextInterpolate","_NameCellComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ctx_r0","url","ɵɵsanitizeUrl","ɵɵadvance","ɵɵtextInterpolate1","display","ResourceCellComponent","TaskDefinitionsTableCustomComponent","constructor","ngOnInit","element","taskDefinition","resource","buildLoggingUrl","selectors","features","ɵɵInheritDefinitionFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","ResourceCellComponent_a_0_Template","_ResourceCellComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","context_r1","SupportedContextsCellComponent","TaskDefinitionsTableCustomComponent","constructor","ngOnInit","contexts","element","taskDefinition","supportedContexts","map","context","supportedContextsLabels","selectors","features","ɵɵInheritDefinitionFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SupportedContextsCellComponent_span_0_Template","ɵɵproperty","_SupportedContextsCellComponent","tableDefinitionFactory","filterService","tableDefintion","TASK_DEFINITIONS_TABLE","filters","id","labels","AUTOMATION_TABLE_LABELS","options","selectableRows","csvExportEnabled","tableTitle","columns","displayName","pinned","Pinned","PINNED_LEFT","type","ColumnType","COLUMN_TYPE_STRING","field","cellComponent","NameCellComponent","ResourceCellComponent","TaskTypeCellComponent","PublishedStateCellComponent","InputParamsCellComponent","OutputParamsCellComponent","BooleanCellComponent","DateCellComponent","SupportedContextsCellComponent","convertFilters","filters","f","internal","onlyAvailableInDefaultAutomations","onlyDefault","taskType","publishedState","searchTerm","name","supportedContexts","TaskDefinitionsTableService","constructor","automataDevelopmentService","totalResults$$","BehaviorSubject","totalResults$","asObservable","cursors","initialize","load","request","pageIndex","nextCursor","listTaskDefinitions","pageSize","listResponse$","pipe","take","shareReplay","subscribe","resp","next","totalResults","current","map","listResponse","results","t","taskDefinition","rowNumber","ɵɵinject","AutomataDevelopmentService","factory","ɵfac","_TaskDefinitionsTableService","TaskDefintionsFiltersService","constructor","filterService","snackbarService","filters","FilterGroup","taskTypes","Map","set","TaskType","TASK_TYPE_ACTION","TASK_TYPE_TRIGGER","TASK_TYPE_BUILDING_BLOCKS","TASK_TYPE_FILTER","publishedStates","PublishedState","PUBLISHED_STATE_PUBLISHED","PUBLISHED_STATE_DRAFT","supportedContextsFilter","supportedContexts","map","context","supportedContextsLabels","addToolbarSection","SearchFilterControl","addSection","SelectFilterControl","of","appliedValueMapper","name","value","label","taskTypeLabels","publishedStateLabels","MultiSelectFilterControl","CheckboxFilterControl","ɵɵinject","FilterService","SnackbarService","factory","ɵfac","_TaskDefintionsFiltersService","TaskDefinitionsListPageComponent","constructor","dataService","dialog","router","TaskType","createTaskDefinition","taskType","TASK_TYPE_TRIGGER","open","EventTriggerDefinitionSelectorDialogComponent","afterClosed","pipe","take","subscribe","result","eventTypeId","navigate","queryParams","taskTypeToString","eventTriggerDefinitionId","ɵɵdirectiveInject","TaskDefinitionsTableService","MatDialog","Router","selectors","features","ɵɵProvidersFeature","TaskDefintionsFiltersService","provide","TABLE_DEFINITION","useFactory","tableDefinitionFactory","deps","VaFilteredMatTableService","VaTableSortService","MAT_FORM_FIELD_DEFAULT_OPTIONS","useValue","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","TASK_TYPE_ACTION","TASK_TYPE_FILTER","ɵɵadvance","ɵɵproperty","ɵɵpureFunction0","_c0","_c1","globalActionsMenu_r2","_TaskDefinitionsListPageComponent","EventTriggerDefinitionsFiltersService","constructor","filterService","snackbarService","filters","FilterGroup","addToolbarSection","SearchFilterControl","ɵɵinject","FilterService","SnackbarService","factory","ɵfac","_EventTriggerDefinitionsFiltersService","convertFilters","filters","f","searchTerm","name","EventTriggerDefinitionsTableService","constructor","automataDevelopmentService","totalResults$$","BehaviorSubject","totalResults$","asObservable","cursors","initialize","load","request","pageIndex","nextCursor","listEventTriggerDefinitions","pageSize","listResponse$","pipe","take","shareReplay","subscribe","resp","next","totalResults","current","map","listResponse","results","t","eventTriggerDefinition","rowNumber","ɵɵinject","AutomataDevelopmentService","factory","ɵfac","_EventTriggerDefinitionsTableService","EventTriggerDefinitionTableCustomComponent","inputs","columnDefinition","element","eventEmitter","_EventTriggerDefinitionTableCustomComponent","NameCellComponent","EventTriggerDefinitionTableCustomComponent","constructor","ngOnInit","name","element","eventTriggerDefinition","id","eventTypeId","selectors","features","ɵɵInheritDefinitionFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵpureFunction1","_c0","ɵɵadvance","ɵɵtextInterpolate","_NameCellComponent","tableDefinitionFactory","filterService","tableDefintion","TASK_DEFINITIONS_TABLE","filters","id","labels","AUTOMATION_TABLE_LABELS","options","selectableRows","csvExportEnabled","tableTitle","columns","displayName","pinned","Pinned","PINNED_LEFT","type","ColumnType","COLUMN_TYPE_STRING","field","cellComponent","NameCellComponent","DateCellComponent","EventTriggerDefinitionsListPageComponent","constructor","dataService","ɵɵdirectiveInject","EventTriggerDefinitionsTableService","selectors","features","ɵɵProvidersFeature","EventTriggerDefinitionsFiltersService","provide","TABLE_DEFINITION","useFactory","tableDefinitionFactory","deps","VaFilteredMatTableService","VaTableSortService","MAT_FORM_FIELD_DEFAULT_OPTIONS","useValue","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpureFunction0","_c0","_EventTriggerDefinitionsListPageComponent","updateControlValidity","input","UntypedFormControl","markAsTouched","updateValueAndValidity","Object","keys","controls","forEach","key","abstractControl","validateJson","control","validationTypeLabels","value","JSON","parse","json","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ImportFromJsonDialogComponent","constructor","dialogRef","dataControl","UntypedFormControl","Validators","required","validateJson","import","close","JSON","parse","value","ɵɵdirectiveInject","MatDialogRef","selectors","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","ImportFromJsonDialogComponent_mat_error_9_Template","ImportFromJsonDialogComponent_mat_error_10_Template","ɵɵlistener","ɵɵadvance","ɵɵproperty","hasError","valid","_ImportFromJsonDialogComponent","import_jsonpath","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","exampleData","partner_id","market_id","account_group_id","JsonPathTesterDialogComponent","constructor","data","alertService","inputDataControl","UntypedFormControl","JSON","stringify","Validators","required","validateJson","outputDataControl","value","disabled","toTest","test","outputData","Object","entries","map","ent","key","path","endsWith","strippedKey","replace","executeJsonPath","setValue","startsWith","errorSnack","pathStartWithDollar","substr","length","JSONPath","parse","ɵɵdirectiveInject","MAT_DIALOG_DATA","SnackbarService","selectors","inputs","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","JsonPathTesterDialogComponent_mat_error_12_Template","JsonPathTesterDialogComponent_mat_error_13_Template","ɵɵlistener","ɵɵadvance","ɵɵproperty","hasError","_JsonPathTesterDialogComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","param_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","selectParam","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","name","commonInputParameters","id","pathKey","pathValue","required","validationType","ValidationType","VALIDATION_TYPE_SYSTEM","dataType","DataType","DATA_TYPE_UNKNOWN","DATA_TYPE_STRING","VALIDATION_TYPE_STREAM","DATA_TYPE_ACCOUNT_GROUP_ID","DATA_TYPE_SMB_USER_ID","DATA_TYPE_ORDER_ID","AddInputParameterDialogComponent","constructor","dialogRef","p","close","ɵɵdirectiveInject","MatDialogRef","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","AddInputParameterDialogComponent_ng_container_3_Template","ɵɵproperty","_AddInputParameterDialogComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","comparisonOption_r1","ɵɵadvance","ɵɵtextInterpolate1","RuleInputComponent","constructor","destroyRef","remove","EventEmitter","comparisonOptions","fg","FormGroup","selectedComparison","FormControl","Validators","required","variablePath","value","registerOnChange","fn","valueChanges","pipe","takeUntilDestroyed","map","next","comparison","subscribe","registerOnTouched","writeValue","rule","controls","setValue","validate","control","invalid","setDisabledState","isDisabled","disable","enable","removeClicked","emit","ɵɵdirectiveInject","DestroyRef","selectors","outputs","standalone","features","ɵɵProvidersFeature","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","NG_VALIDATORS","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","RuleInputComponent_mat_option_5_Template","ɵɵelement","ɵɵlistener","CommonModule","NgForOf","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","LabelHintDirective","FormsModule","DefaultValueAccessor","NgControlStatus","MatInputModule","MatInput","ReactiveFormsModule","FormControlDirective","MatOptionModule","MatOption","MatSelectModule","MatSelect","MatCheckboxModule","MatIconModule","MatIcon","MatButtonModule","MatIconButton","styles","_RuleInputComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","rule_r2","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r6","ctx_r4","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","operator","ɵɵresetView","ɵɵtext","ɵɵtwoWayProperty","fg","controls","andOrInput","ComparisonAnd","ComparisonOr","ɵɵlistener","_r3","i_r4","index","removeRule","ɵɵtemplate","AndOrInputComponent_div_0_ng_container_2_ng_container_2_div_2_Template","last_r8","AndOrInputComponent_div_0_ng_container_2_ng_container_1_Template","AndOrInputComponent_div_0_ng_container_2_ng_container_2_Template","value","comparison","AndOrInputComponent_div_0_ng_container_2_Template","_r1","addRule","addAnd","rulesInput","_r9","AndOrInputComponent","constructor","destroyRef","Comparison","And","Or","FormGroup","FormControl","FormArray","ngOnInit","valueChanges","pipe","takeUntilDestroyed","subscribe","registerOnChange","fn","map","length","filter","c","Rule","fromRuleInterface","toRuleInterface","registerOnTouched","writeValue","rule","r","ri","push","setValue","alert","validate","control","invalid","setDisabledState","isDisabled","disable","enable","Validators","required","removeAt","ɵɵdirectiveInject","DestroyRef","selectors","standalone","features","ɵɵProvidersFeature","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","NG_VALIDATORS","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","AndOrInputComponent_div_0_Template","AndOrInputComponent_button_1_Template","CommonModule","NgForOf","NgIf","GalaxyFormFieldModule","FormsModule","NgControlStatus","MatInputModule","ReactiveFormsModule","FormControlDirective","MatOptionModule","MatSelectModule","MatCheckboxModule","RuleInputComponent","MatButtonModule","MatButton","MatIconModule","MatButtonToggleModule","MatButtonToggleGroup","MatButtonToggle","styles","_AndOrInputComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","taskType_r2","ɵɵadvance","ɵɵtextInterpolate1","ctx_r2","taskTypeLabels","ɵɵelementContainerStart","ɵɵelement","ɵɵtemplate","TaskDefinitionFormComponent_ng_container_33_glxy_error_6_Template","form","controls","eventTypeId","hasError","publishedState_r4","publishedStateLabels","supportedContext_r5","supportedContextLabels","ɵɵlistener","i_r7","ɵɵrestoreView","_r6","index","ɵɵnextContext","ɵɵresetView","removeRetryOption","TaskDefinitionFormComponent_ng_container_87_glxy_error_9_Template","TaskDefinitionFormComponent_ng_container_87_glxy_error_14_Template","TaskDefinitionFormComponent_ng_container_87_glxy_error_15_Template","group_r8","statusCode","maximumAttempts","j_r12","_r11","i_r10","removePreProcessorKeyValue","data_r13","group_r15","choices","value","default","TaskDefinitionFormComponent_ng_container_94_div_21_div_1_Template","j_r16","_r14","removePreProcessorRule","choices_r17","_r9","removePreProcessor","TaskDefinitionFormComponent_ng_container_94_div_17_Template","addPreProcessorKeyValue","TaskDefinitionFormComponent_ng_container_94_div_21_Template","addPreProcessorRule","preProcessorDataFormArray","preProcessorChoicesFormArray","i_r19","_r18","removeRequiredApp","group_r20","appId","editionId","i_r22","_r21","removeRequiredSubscriptionFeatures","TaskDefinitionFormComponent_ng_container_120_glxy_error_9_Template","group_r23","requiredSubscriptionFeaturesFormArray","scopeOption_r24","TaskDefinitionFormComponent_ng_container_131_mat_option_5_Template","scopeOptions_r25","dataType_r28","dataTypeLabels","validationType_r29","name","description","validationTypeLabels","i_r27","_r26","removeInputParameter","TaskDefinitionFormComponent_ng_container_146_glxy_error_10_Template","TaskDefinitionFormComponent_ng_container_146_glxy_error_15_Template","TaskDefinitionFormComponent_ng_container_146_mat_option_21_Template","TaskDefinitionFormComponent_ng_container_146_glxy_error_22_Template","TaskDefinitionFormComponent_ng_container_146_glxy_error_37_Template","TaskDefinitionFormComponent_ng_container_146_glxy_error_44_Template","TaskDefinitionFormComponent_ng_container_146_mat_option_51_Template","TaskDefinitionFormComponent_ng_container_146_glxy_error_52_Template","group_r30","settings","id","dataTypes","dataType","pathKey","ɵɵtextInterpolate2","pathValue","validationTypes","validationType","dataType_r33","i_r32","_r31","removeOutputParameter","TaskDefinitionFormComponent_ng_container_157_glxy_error_10_Template","TaskDefinitionFormComponent_ng_container_157_glxy_error_15_Template","TaskDefinitionFormComponent_ng_container_157_mat_option_21_Template","TaskDefinitionFormComponent_ng_container_157_glxy_error_22_Template","TaskDefinitionFormComponent_ng_container_157_glxy_error_37_Template","TaskDefinitionFormComponent_ng_container_157_glxy_error_44_Template","TaskDefinitionFormComponent_ng_container_157_div_45_Template","group_r34","taskType","TRIGGER","TaskDefinitionFormComponent","getRetryOptionsFormGroup","FormGroup","FormControl","Validators","required","nonNegativeIntegerValidator","getParameterFormGroup","dataTypeValidator","repeated","getPreProcessorKeyValueFormGroup","i","getPreProcessorChoices","rules","FormArray","getPreProcessorChoicesRules","variablePath","comparison","next","getInputParameterFormGroup","destroyed$","pfg","fg","validationTypeValidator","valueChanges","pipe","startWith","undefined","pairwise","takeUntil","subscribe","prevId","curId","prevKey","prevValue","setValue","markAsDirty","getOutputParameterFormGroup","optional","isEntity","getPreProcessorDataFormGroup","taskDefinitionId","data","getRequiredAppFormGroup","constructor","alertService","dialog","route","scopes","taskDefinition","cancelClicked","EventEmitter","saveClicked","taskTypeValidator","eventSubTypeId","internal","availableInDefault","supportedContexts","resourceUrl","resourceMethod","methodValidator","resourceIsGetter","resourceRetryOptions","preProcessors","requiredApps","inputParameters","outputParameters","requiredScopes","requiredSubscriptionFeatures","staticValidationChoices","taskTypes","TaskType","TASK_TYPE_TRIGGER","publishedStates","supportedContextsLabels","DRAFT","PublishedState","PUBLISHED_STATE_DRAFT","destroyed$$","Subject","asObservable","scopeOptions$","listScopes","pageSize","take","map","resp","s","shareReplay","resourceRetryOptionsArray","inputParametersFormArray","preProcessorsFormArray","requiredAppsFormArray","outputParametersFormArray","ngOnInit","disable","populateFormFromTaskDefinition","queryParamMap","paramMap","get","import","tap","setValidators","forEach","op","ngOnDestroy","sourceEventTriggerDefinition","availableInDefaultAutomations","resource","url","method","isGetter","clear","callOptions","retryPolicyOptions","opt","push","pp","obj","JSON","parse","entries","Object","defaultNextStep","rule","r","appKey","ip","path","length","errorSnack","console","log","rsf","parametersPaths","variable","getVarNameFromEventTriggerDefinitionParamPathKey","ValidationType","VALIDATION_TYPE_STREAM","staticValidationRules","addRetryOptions","removeAt","addInputParameter","addPreProcessor","addRequiredApp","j","addOutputParameter","addRequiredSubscriptionFeatures","cancel","emit","save","valid","updateControlValidity","trim","control","group","c","other_obj","ctrl","defaultValue","jsonParam","stringify","settingsGroup","newTaskDefinition","publishedState","openAddInputParameterDialog","open","AddInputParameterDialogComponent","width","afterClosed","result","testInputParameters","toTest","reduce","prev","curr","JsonPathTesterDialogComponent","ImportFromJsonDialogComponent","res","ɵɵdirectiveInject","SnackbarService","MatDialog","ActivatedRoute","ConsentAdminApiService","selectors","inputs","saveDisabled","editMode","requiredAppsRemoved","resourcesRemoved","outputs","decls","vars","consts","template","rf","ctx","TaskDefinitionFormComponent_glxy_error_20_Template","TaskDefinitionFormComponent_mat_option_28_Template","TaskDefinitionFormComponent_glxy_error_29_Template","TaskDefinitionFormComponent_glxy_error_30_Template","TaskDefinitionFormComponent_ng_container_33_Template","TaskDefinitionFormComponent_mat_option_39_Template","TaskDefinitionFormComponent_mat_option_57_Template","TaskDefinitionFormComponent_glxy_error_58_Template","TaskDefinitionFormComponent_glxy_alert_64_Template","TaskDefinitionFormComponent_glxy_error_79_Template","TaskDefinitionFormComponent_ng_container_87_Template","i0","_r1","TaskDefinitionFormComponent_ng_container_94_Template","TaskDefinitionFormComponent_div_97_Template","TaskDefinitionFormComponent_glxy_alert_111_Template","TaskDefinitionFormComponent_div_113_Template","TaskDefinitionFormComponent_ng_container_120_Template","TaskDefinitionFormComponent_ng_container_131_Template","TaskDefinitionFormComponent_ng_template_133_Template","ɵɵtemplateRefExtractor","TaskDefinitionFormComponent_ng_container_146_Template","TaskDefinitionFormComponent_ng_container_157_Template","ɵɵpipeBind1","loadingScopes_r35","_TaskDefinitionFormComponent","invalid","RegExp","test","pattern","key","endsWith","replace","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r2","buildLoggingUrl","taskDefinition_r2","resource","url","ɵɵsanitizeUrl","ɵɵtemplate","EditTaskDefinitionPageComponent_ng_container_7_ng_container_1_Template","ɵɵlistener","ɵɵrestoreView","_r4","ɵɵnextContext","ɵɵresetView","publish","publishedDisabled","EditTaskDefinitionPageComponent_ng_container_13_button_1_Template","taskDefinition_r5","publishedState","PUBLISHED","$event","_r6","cancelClicked","saveClicked","taskDefinition_r7","saveDisabled","ɵɵpipeBind1","requiredAppsRemoved$$","resourcesRemoved$$","ɵɵelement","EditTaskDefinitionPageComponent","constructor","route","automataDevelopmentService","router","alertService","cdr","dialog","PublishedState","PUBLISHED_STATE_PUBLISHED","BehaviorSubject","ngOnInit","taskDefinitionId$","params","pipe","take","map","taskDefinitionId","taskDefinition$","switchMap","id","getTaskDefinition","shareReplay","value","navigate","openErrorSnack","updateTaskDefinition","paths","subscribe","openSuccessSnack","detectChanges","err","console","error","message","copyToClipboard","td","selBox","document","createElement","style","position","left","top","opacity","JSON","stringify","body","appendChild","focus","select","execCommand","removeChild","import","open","ImportFromJsonDialogComponent","afterClosed","res","next","requiredApps","taskDefinitionForm","populateFormFromTaskDefinition","form","controls","resourceUrl","setValue","resourceMethod","resourceIsGetter","requiredAppsFormArray","forEach","index","removeRequiredApp","ɵɵdirectiveInject","ActivatedRoute","AutomataDevelopmentService","Router","SnackbarService","ChangeDetectorRef","MatDialog","selectors","viewQuery","rf","ctx","EditTaskDefinitionPageComponent_ng_container_7_Template","i0","_r1","EditTaskDefinitionPageComponent_ng_container_13_Template","EditTaskDefinitionPageComponent_ng_container_16_Template","EditTaskDefinitionPageComponent_ng_template_18_Template","ɵɵtemplateRefExtractor","loading_r8","_EditTaskDefinitionPageComponent","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","cancelClicked","saveClicked","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","taskType$","saveDisabled","sourceEventTriggerDefinition_r3","CreateTaskDefinitionPageComponent","constructor","route","automataDevelopmentService","router","alertService","cdr","ngOnInit","eventTriggerDefinitionId$","queryParamMap","pipe","take","map","params","get","sourceEventTriggerDefinition$","switchMap","id","getEventTriggerDefinition","of","stringToTaskType","value","navigate","openErrorSnack","createTaskDefinition","subscribe","openSuccessSnack","detectChanges","err","console","error","message","import","taskDefinitionForm","ɵɵdirectiveInject","ActivatedRoute","AutomataDevelopmentService","Router","SnackbarService","ChangeDetectorRef","selectors","viewQuery","rf","ctx","ɵɵelement","ɵɵtext","ɵɵtemplate","CreateTaskDefinitionPageComponent_app_task_definition_form_10_Template","ɵɵadvance","_CreateTaskDefinitionPageComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","eventType_r2","id","ɵɵadvance","ɵɵtextInterpolate1","name","ɵɵelementContainerStart","ɵɵtemplate","EventTriggerDefinitionFormComponent_ng_container_15_mat_option_1_Template","eventTypes_r3","ɵɵelement","EventTriggerDefinitionFormComponent_div_33_mat_form_field_11_Template","ctx_r3","flattenedConfigDataType","FLATTENED_CONFIG_DATA_TYPE_STRUCT","FLATTENED_CONFIG_DATA_TYPE_STRING","form","controls","flattenFieldDataType","value","ɵɵtextInterpolate2","ɵɵlistener","i_r6","ɵɵrestoreView","_r5","index","ɵɵnextContext","ɵɵresetView","removeParametersPath","EventTriggerDefinitionFormComponent_ng_container_39_mat_error_11_Template","EventTriggerDefinitionFormComponent_ng_container_39_mat_error_18_Template","group_r7","inStream","hasError","fromEvent","EventTriggerDefinitionFormComponent","getParametersPathFormGroup","UntypedFormGroup","UntypedFormControl","Validators","required","isFilterKey","constructor","alertService","dialog","eventBrokerService","eventTriggerDefinition","cancelClicked","EventEmitter","saveClicked","FlattenedConfigDataType","eventTypesNextCursorTrigger$$","BehaviorSubject","eventTypeId","parametersPaths","UntypedFormArray","triggerContextIdFormat","flattenFieldToggle","FormControl","flattenFieldSourcePath","flattenFieldDestinationPath","destroyRef","inject","DestroyRef","parametersPathsFormArray","ngOnInit","disable","populateFormFromEventTriggerDefinition","eventTypes$","pipe","switchMap","cursor","listEventTypes","tap","resp","nextCursor","next","map","eventTypes","scan","acc","curr","catchError","err","console","error","throwError","filteredEventTypes$","combineLatest","valueChanges","startWith","filter","eventType","toLocaleLowerCase","includes","toLowerCase","sort","a","b","localeCompare","takeUntilDestroyed","subscribe","setValidators","updateValueAndValidity","FLATTENED_CONFIG_DATA_TYPE_UNSET","setValue","clear","JSON","parse","Object","entries","pp","errorSnack","fg","inParameterFilterKeys","parameterFilterKeys","push","flattenedConfig","dataType","flattenedConfigPath","sourcePath","keys","parameterPath","strippedPath","replace","indexOf","addParametersPath","removeAt","cancel","emit","save","valid","updateControlValidity","parametersPathsObj","group","parametersPath","stringify","flattenedFieldConfig","flattenedFieldPath","newEventTriggerDefinition","testParametersPaths","toTest","reduce","prev","open","JsonPathTesterDialogComponent","data","eventTypeSelected","selectedValue","option","getEventTypes","take","res","length","populateParametersPathsFromEventType","successSnack","schema","properties","property","import","ImportFromJsonDialogComponent","afterClosed","ɵɵdirectiveInject","SnackbarService","MatDialog","EventBrokerService","selectors","inputs","saveDisabled","outputs","decls","vars","consts","template","rf","ctx","$event","i0","_r1","EventTriggerDefinitionFormComponent_ng_container_15_Template","EventTriggerDefinitionFormComponent_mat_error_23_Template","EventTriggerDefinitionFormComponent_mat_error_28_Template","EventTriggerDefinitionFormComponent_div_33_Template","EventTriggerDefinitionFormComponent_ng_container_39_Template","auto_r8","ɵɵpipeBind1","_EventTriggerDefinitionFormComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","cancelClicked","saveClicked","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","eventTriggerDefinition_r4","saveDisabled","ɵɵelement","EditEventTriggerDefinitionPageComponent","constructor","route","automataDevelopmentService","router","alertService","cdr","ngOnInit","eventTriggerDefinitionId$","params","pipe","take","map","eventTriggerDefinitionId","eventTriggerDefinition$","switchMap","id","getEventTriggerDefinition","shareReplay","value","navigate","openErrorSnack","updateEventTrigger","paths","subscribe","openSuccessSnack","detectChanges","err","console","error","message","copyToClipboard","etd","selBox","document","createElement","style","position","left","top","opacity","JSON","stringify","body","appendChild","focus","select","execCommand","removeChild","ɵɵdirectiveInject","ActivatedRoute","AutomataDevelopmentService","Router","SnackbarService","ChangeDetectorRef","selectors","viewQuery","rf","ctx","ɵɵtext","i0","_r1","ɵɵtemplate","EditEventTriggerDefinitionPageComponent_ng_container_10_Template","EditEventTriggerDefinitionPageComponent_ng_template_12_Template","ɵɵtemplateRefExtractor","ɵɵpipeBind1","loading_r5","_EditEventTriggerDefinitionPageComponent","CreateEventTriggerDefinitionPageComponent","constructor","route","automataDevelopmentService","router","alertService","cdr","saveDisabled","cancelClicked","value","navigate","saveClicked","openErrorSnack","createEventTriggerDefinition","pipe","take","subscribe","openSuccessSnack","detectChanges","err","console","error","message","import","eventTriggerDefinitionForm","ɵɵdirectiveInject","ActivatedRoute","AutomataDevelopmentService","Router","SnackbarService","ChangeDetectorRef","selectors","viewQuery","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","$event","ɵɵadvance","ɵɵproperty","_CreateEventTriggerDefinitionPageComponent","routes","path","component","TaskDefinitionsListPageComponent","children","EditTaskDefinitionPageComponent","CreateTaskDefinitionPageComponent","EventTriggerDefinitionsListPageComponent","matcher","segments","length","eventTriggerDefinitionId","map","s","join","startsWith","consumed","posParams","UrlSegment","EditEventTriggerDefinitionPageComponent","CreateEventTriggerDefinitionPageComponent","AutomationsRoutingModule","RouterModule","forChild","_AutomationsRoutingModule","AutomationsModule","CommonModule","MatProgressSpinnerModule","MatListModule","MatToolbarModule","MatButtonModule","MatTableModule","MatPaginatorModule","AutomationsRoutingModule","MatTooltipModule","MatExpansionModule","MatFormFieldModule","MatInputModule","MatIconModule","MatRadioModule","ReactiveFormsModule","MatSelectModule","MatTabsModule","GalaxySnackbarModule","MatCheckboxModule","GalaxyPageModule","LexiconModule","forChild","Filter2TableModule","MatCardModule","GalaxyWrapModule","MatDividerModule","MatDialogModule","MatMenuModule","InViewportModule","GalaxyTooltipModule","GalaxyFormFieldModule","MatSlideToggleModule","RuleInputComponent","AndOrInputComponent","MatAutocompleteModule","GalaxyAlertModule","_AutomationsModule"],"x_google_ignoreList":[0,1,2]}