Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
'use strict';
const Logger = require('@accordproject/concerto-core').Logger;
const ParseException = require('@accordproject/concerto-core').ParseException;
const crypto = require('crypto');
const ErrorUtil = require('./errorutil');
const Util = require('@accordproject/ergo-compiler').Util;
const moment = require('moment-mini');
// Make sure Moment serialization preserves utcOffset. See https://momentjs.com/docs/#/displaying/as-json/
moment.fn.toJSON = Util.momentToJson;
const TemplateLoader = require('./templateloader');
const ErgoEngine = require('@accordproject/ergo-engine/index.browser.js').EvalEngine;
/**
* A TemplateInstance is an instance of a Clause or Contract template. It is executable business logic, linked to
* a natural language (legally enforceable) template.
* A TemplateInstance must be constructed with a template and then prior to execution the data for the clause must be set.
* Set the data for the TemplateInstance by either calling the setData method or by
* calling the parse method and passing in natural language text that conforms to the template grammar.
* @public
* @abstract
* @class
*/
class TemplateInstance {
/**