New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@cross-check/core

Package Overview
Dependencies
Maintainers
5
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cross-check/core - npm Package Compare versions

Comparing version 0.11.3 to 0.11.4

2

dist/commonjs/src/descriptor.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiJmaWxlOi8vL1VzZXJzL3NvaGFyYS9jb2RlL2Nyb3NzLWNoZWNrL3BhY2thZ2VzL2NvcmUvIiwic291cmNlcyI6WyJkZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXNrIH0gZnJvbSBcIm5vLXNob3dcIjtcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gXCJ0cy1zdGRcIjtcblxuZXhwb3J0IHR5cGUgRXJyb3JQYXRoID0gUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xuXG4vKipcbiAqIEBhcGkgcHVibGljXG4gKlxuICogQSByZXByZXNlbmF0aW9uIG9mIGEgZmFpbGVkIHZhbGlkYXRpb24sIG5vdCBpbmNsdWRpbmcgaXRzIGxvY2F0aW9uLiBUaGlzIG9iamVjdFxuICogY2FuIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBhIGZvcm1hdHRlciB0byBwcm9kdWNlIGh1bWFuLXJlYWRhYmxlIGVycm9ycy4gVGhlXG4gKiBpbmZvcm1hdGlvbiBwcm92aWRlZCBpbiBhbiBgRXJyb3JNZXNzYWdlYCBzaG91bGQgYmUgZW5vdWdoIHRvIHByb3Blcmx5XG4gKiBpbnRlcm5hdGlvbmFsaXplIHRoZSBlcnJvciBtZXNzYWdlIG9yIHVzZSBpdCBpbiBvdGhlciBsb2NhbGl6YXRpb24gY29udGV4dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JNZXNzYWdlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXRhaWxzOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEBhcGkgcHVibGljXG4gKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhIGZhaWxlZCB2YWxpZGF0aW9uLCBpbmNsdWRpbmcgdGhlIGxvY2F0aW9uIGluIHRoZSB2YWxpZGF0ZWRcbiAqIG9iamVjdCB3aGVyZSB0aGUgdmFsaWRhdGlvbiBmYWlsZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvbkVycm9yIHtcbiAgcGF0aDogRXJyb3JQYXRoO1xuICBtZXNzYWdlOiBFcnJvck1lc3NhZ2U7XG59XG5cbi8qKlxuICogQGFwaSBob3N0XG4gKlxuICogQW4gb2JqZWN0IHRoYXQgcHJvdmlkZXMgaG9zdC1zcGVjaWZpYyBiZWhhdmlvciBmb3IgdmFsaWRhdG9ycy4gSXQgaXMgcGFzc2VkIGluIHRvXG4gKiBhbGwgYFZhbGlkYXRvckZhY3Rvcnlgcywgc28gaG9zdHMgY2FuIGFsc28gZXh0ZW5kIEVudmlyb25tZW50IHRvIGNvbW11bmljYXRlIHdpdGhcbiAqIHZhbGlkYXRvcnMgd3JpdHRlbiB0byBiZSB1c2VkIGluIHRoYXQgZW52aXJvbm1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQge1xuICBnZXQob2JqZWN0OiB1bmtub3duLCBrZXk6IHN0cmluZyB8IG51bWJlcik6IHVua25vd247XG59XG5cbi8qKlxuICogQGFwaSBwcmltaXRpdmVcbiAqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYW4gZW52aXJvbm1lbnQgYW5kIHZhbGlkYXRvciBvcHRpb25zIGFuZCBwcm9kdWNlcyBhIG5ld1xuICogVmFsaWRhdG9yIGZ1bmN0aW9uLiBJbiBvdGhlciB3b3JkcywgaXQgY3VycmllcyB0aGUgZW52aXJvbm1lbnQgYW5kIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRvckZhY3Rvcnk8VCwgT3B0aW9ucz4gPSAoXG4gIG9wdGlvbnM6IE9wdGlvbnMsXG4gIGVudjogRW52aXJvbm1lbnRcbikgPT4gVmFsaWRhdG9yPFQ+O1xuXG4vKipcbiAqIEBhcGkgcHJpbWl0aXZlXG4gKlxuICogQSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgdmFsdWUgYW5kIGEgdmFsaWRhdGlvbiBjb250ZXh0IGFuZCAoYXN5bmNocm9ub3VzbHkpXG4gKiBwcm9kdWNlcyBhIGxpc3Qgb2YgdmFsaWRhdGlvbiBlcnJvcnMuXG4gKlxuICogQSBzdWNjZXNzZnVsIHZhbGlkYXRpb24gcHJvZHVjZXMgYW4gZW1wdHkgbGlzdCBvZiB2YWxpZGF0aW9uIGVycm9ycy5cbiAqXG4gKiBQcmltaXRpdmUgdmFsaWRhdGlvbnMgbXVzdCB1c2Ugbm8tc2hvdyBUYXNrcyAod2hpY2ggY2FuIGJlIGNhbmNlbGxlZCkgdG8gbWFuYWdlIGFzeW5jaHJvbnkuXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRvcjxUID0gdW5rbm93bj4gPSAoXG4gIHZhbHVlOiBULFxuICBjb250ZXh0OiBPcHRpb248c3RyaW5nPlxuKSA9PiBUYXNrPFZhbGlkYXRpb25FcnJvcltdPjtcblxuLyoqXG4gKiBAYXBpIHByaW1pdGl2ZVxuICpcbiAqIEEgbG93LWxldmVsIHJlcHJlc2VudGF0aW9uIG9mIGEgdmFsaWRhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkRlc2NyaXB0b3I8VCA9IHVua25vd24sIE9wdGlvbnMgPSB1bmtub3duPiA9IFJlYWRvbmx5PHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWxpZGF0b3I6IFZhbGlkYXRvckZhY3Rvcnk8VCwgT3B0aW9ucz47XG4gIG9wdGlvbnM6IE9wdGlvbnM7XG4gIGNvbnRleHRzPzogUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xufT47XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiJmaWxlOi8vL1VzZXJzL3NvaGFyYS9jb2RlL2Nyb3NzLWNoZWNrL3BhY2thZ2VzL2NvcmUvIiwic291cmNlcyI6WyJkZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXNrIH0gZnJvbSBcIm5vLXNob3dcIjtcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gXCJ0cy1zdGRcIjtcblxuZXhwb3J0IHR5cGUgRXJyb3JQYXRoID0gUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xuXG4vKipcbiAqIEBhcGkgcHVibGljXG4gKlxuICogQSByZXByZXNlbmF0aW9uIG9mIGEgZmFpbGVkIHZhbGlkYXRpb24sIG5vdCBpbmNsdWRpbmcgaXRzIGxvY2F0aW9uLiBUaGlzIG9iamVjdFxuICogY2FuIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBhIGZvcm1hdHRlciB0byBwcm9kdWNlIGh1bWFuLXJlYWRhYmxlIGVycm9ycy4gVGhlXG4gKiBpbmZvcm1hdGlvbiBwcm92aWRlZCBpbiBhbiBgRXJyb3JNZXNzYWdlYCBzaG91bGQgYmUgZW5vdWdoIHRvIHByb3Blcmx5XG4gKiBpbnRlcm5hdGlvbmFsaXplIHRoZSBlcnJvciBtZXNzYWdlIG9yIHVzZSBpdCBpbiBvdGhlciBsb2NhbGl6YXRpb24gY29udGV4dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JNZXNzYWdlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXRhaWxzOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEBhcGkgcHVibGljXG4gKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhIGZhaWxlZCB2YWxpZGF0aW9uLCBpbmNsdWRpbmcgdGhlIGxvY2F0aW9uIGluIHRoZSB2YWxpZGF0ZWRcbiAqIG9iamVjdCB3aGVyZSB0aGUgdmFsaWRhdGlvbiBmYWlsZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvbkVycm9yIHtcbiAgcGF0aDogRXJyb3JQYXRoO1xuICBtZXNzYWdlOiBFcnJvck1lc3NhZ2U7XG59XG5cbi8qKlxuICogQGFwaSBob3N0XG4gKlxuICogQW4gb2JqZWN0IHRoYXQgcHJvdmlkZXMgaG9zdC1zcGVjaWZpYyBiZWhhdmlvciBmb3IgdmFsaWRhdG9ycy4gSXQgaXMgcGFzc2VkIGluIHRvXG4gKiBhbGwgYFZhbGlkYXRvckZhY3Rvcnlgcywgc28gaG9zdHMgY2FuIGFsc28gZXh0ZW5kIE9iamVjdE1vZGVsIHRvIGNvbW11bmljYXRlIHdpdGhcbiAqIHZhbGlkYXRvcnMgd3JpdHRlbiB0byBiZSB1c2VkIGluIHRoYXQgb2JqZWN0IG1vZGVsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdE1vZGVsIHtcbiAgZ2V0KG9iamVjdDogdW5rbm93biwga2V5OiBzdHJpbmcgfCBudW1iZXIpOiB1bmtub3duO1xuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHRha2VzIGFueSBvYmplY3QsIGFuZCByZXR1cm5zIGBudWxsYCBpZiB0aGUgb2JqZWN0XG4gICAqIHNob3VsZCBub3QgYmUgdHJlYXRlZCBhcyBhbiBhcnJheSBieSB0aGUgYnVpbHQtaW4gdmFsaWRhdG9ycywgYW5kXG4gICAqIGFuIGl0ZXJhYmxlIGlmIHRoZSBvYmplY3Qgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gYXJyYXkuXG4gICAqXG4gICAqIElmIHRoZSB1bmRlcmx5aW5nIG9iamVjdCBpcyBhIHNpbXBsZSBhcnJheSwgaXQncyBmaW5lIHRvIHJldHVybiBpdC5cbiAgICpcbiAgICogWW91IGNhbiBhbHNvIHJldHVybiBhbiBpdGVyYWJsZSwgd2hpY2ggd2lsbCBvbmx5IGJlIGNhbGxlZCBpZiB0aGVcbiAgICogaW50ZXJuYWxzIG5lZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSB2YWx1ZXMuIFRoaXMgY2FuIHNhdmUgd29yayBpZlxuICAgKiB0aGUgcHJvY2VzcyBvZiB0dXJuaW5nIHlvdXIgdmFsdWUgaW50byBhbiBBcnJheSBpcyBleHBlbnNpdmUuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSBhbiBJbW11dGFibGUuanMgbGlzdCB0aGF0IHlvdSB3YW50IHRoZVxuICAgKiBidWlsdC1pbiB2YWxpZGF0b3JzIHRvIHRyZWF0IGFzIGEgbGlzdCwgeW91IGNvdWxkIHdyaXRlOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBFTlYgPSB7XG4gICAqICAgYXNMaXN0KG9iamVjdCkge1xuICAgKiAgICAgaWYgKExpc3QuaXNMaXN0KG9iamVjdCkgfHwgQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAqICAgICAgIHJldHVybiBvYmplY3RbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgKiAgICAgfSBlbHNlIHtcbiAgICogICAgICAgcmV0dXJuIG51bGw7XG4gICAqICAgICB9XG4gICAqICAgfVxuICAgKiB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogSWYgeW91IGFyZSB3b3JraW5nIHdpdGggYSBjb2xsZWN0aW9uIHRoYXQgZG9lc24ndCBhbHJlYWR5IHN1cHBvcnRcbiAgICogYFN5bWJvbC5pdGVyYXRvcmAsIHlvdSBjYW4gZWFzaWx5IGFkYXB0IGl0LiBGb3IgZXhhbXBsZSwgc2F5IHlvdSdyZVxuICAgKiB3b3JraW5nIHdpdGggYW4gYXJyYXktbGlrZSBzdHJ1Y3R1cmUgdGhhdCBoYXMgYSBgdG9BcnJheWAgbWV0aG9kIG9uXG4gICAqIGl0LlxuICAgKlxuICAgKiBDcm9zcyBDaGVjayBtaWdodCBpbnZva2UgYXNMaXN0IG11bHRpcGxlIHRpbWVzLCBidXQgd2lsbCBvbmx5IGludm9rZVxuICAgKiB0aGUgZ2VuZXJhdG9yIGlmIGl0IHdhbnRzIHRvIHZhbGlkYXRlIHRoZSBjb250ZW50cyBvZiB0aGUgbGlzdC5cbiAgICpcbiAgICogYGBgdHNcbiAgICogaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gXCJAZW1iZXIvYXJyYXlcIjtcbiAgICpcbiAgICogY29uc3QgRU5WID0ge1xuICAgKiAgIGFzTGlzdChvYmplY3QpIHtcbiAgICogICAgIC8vIHN1cHBvcnQgYnVpbHQtaW4gQXJyYXlzXG4gICAqICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAqICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAqICAgICB9IGVsc2UgaWYgKGlzQXJyYXkob2JqZWN0KSkge1xuICAgKiAgICAgICByZXR1cm4gaXRlcmFibGUob2JqZWN0KTtcbiAgICogICAgIH0gZWxzZSB7XG4gICAqICAgICAgIHJldHVybiBudWxsO1xuICAgKiAgICAgfVxuICAgKiAgIH1cbiAgICogfTtcbiAgICpcbiAgICogZnVuY3Rpb24qIGl0ZXJhYmxlKG9iamVjdCkge1xuICAgKiAgIC8vIFRoaXMgd2lsbCBvbmx5IHJ1biBpZiBjcm9zcy1jaGVjayBhdHRlbXB0cyB0byBpdGVyYXRlLFxuICAgKiAgIC8vIHNvIHdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgdGhlIGNvc3Qgb2YgY29lcmNpbmcgaW50b1xuICAgKiAgIC8vIGFuIGFycmF5LlxuICAgKiAgIGxldCBhcnJheSA9IG9iamVjdC50b0FycmF5KCk7XG4gICAqXG4gICAqICAgZm9yIChsZXQgaXRlbSBvZiBhcnJheSkge1xuICAgKiAgICAgeWllbGQgaXRlbTtcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBvYmplY3RcbiAgICovXG4gIGFzTGlzdChvYmplY3Q6IHVua25vd24pOiBPcHRpb248SXRlcmFibGU8dW5rbm93bj4gfCBBcnJheTx1bmtub3duPj47XG59XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnQgPSBPYmplY3RNb2RlbDtcblxuLyoqXG4gKiBAYXBpIHByaW1pdGl2ZVxuICpcbiAqIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBvYmplY3QgbW9kZWwgYW5kIHZhbGlkYXRvciBvcHRpb25zIGFuZCBwcm9kdWNlcyBhIG5ld1xuICogVmFsaWRhdG9yIGZ1bmN0aW9uLiBJbiBvdGhlciB3b3JkcywgaXQgY3VycmllcyB0aGUgb2JqZWN0IG1vZGVsIGFuZCBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0b3JGYWN0b3J5PFQsIE9wdGlvbnM+ID0gKFxuICBvcHRpb25zOiBPcHRpb25zLFxuICBvYmplY3RNb2RlbDogT2JqZWN0TW9kZWxcbikgPT4gVmFsaWRhdG9yPFQ+O1xuXG4vKipcbiAqIEBhcGkgcHJpbWl0aXZlXG4gKlxuICogQSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgdmFsdWUgYW5kIGEgdmFsaWRhdGlvbiBjb250ZXh0IGFuZCAoYXN5bmNocm9ub3VzbHkpXG4gKiBwcm9kdWNlcyBhIGxpc3Qgb2YgdmFsaWRhdGlvbiBlcnJvcnMuXG4gKlxuICogQSBzdWNjZXNzZnVsIHZhbGlkYXRpb24gcHJvZHVjZXMgYW4gZW1wdHkgbGlzdCBvZiB2YWxpZGF0aW9uIGVycm9ycy5cbiAqXG4gKiBQcmltaXRpdmUgdmFsaWRhdGlvbnMgbXVzdCB1c2Ugbm8tc2hvdyBUYXNrcyAod2hpY2ggY2FuIGJlIGNhbmNlbGxlZCkgdG8gbWFuYWdlIGFzeW5jaHJvbnkuXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRvcjxUID0gdW5rbm93bj4gPSAoXG4gIHZhbHVlOiBULFxuICBjb250ZXh0OiBPcHRpb248c3RyaW5nPlxuKSA9PiBUYXNrPFZhbGlkYXRpb25FcnJvcltdPjtcblxuLyoqXG4gKiBAYXBpIHByaW1pdGl2ZVxuICpcbiAqIEEgbG93LWxldmVsIHJlcHJlc2VudGF0aW9uIG9mIGEgdmFsaWRhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkRlc2NyaXB0b3I8VCA9IHVua25vd24sIE9wdGlvbnMgPSB1bmtub3duPiA9IFJlYWRvbmx5PHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWxpZGF0b3I6IFZhbGlkYXRvckZhY3Rvcnk8VCwgT3B0aW9ucz47XG4gIG9wdGlvbnM6IE9wdGlvbnM7XG4gIGNvbnRleHRzPzogUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xufT47XG4iXX0=

@@ -10,2 +10,2 @@ "use strict";

exports.validator = validator_1.validator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiZmlsZTovLy9Vc2Vycy9zb2hhcmEvY29kZS9jcm9zcy1jaGVjay9wYWNrYWdlcy9jb3JlLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFTQSxnQ0FBMkI7QUFDM0IsOEJBQXlCO0FBQ3pCLHlDQUlxQjtBQURuQixnQ0FBQSxTQUFTLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBFcnJvclBhdGgsXG4gIEVycm9yTWVzc2FnZSxcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBFbnZpcm9ubWVudCxcbiAgVmFsaWRhdG9yRmFjdG9yeSxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0aW9uRGVzY3JpcHRvclxufSBmcm9tIFwiLi9kZXNjcmlwdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92YWxpZGF0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybWF0XCI7XG5leHBvcnQge1xuICBCYXNpY1ZhbGlkYXRvcixcbiAgSGlnaGVyT3JkZXJCYXNpY1ZhbGlkYXRvcixcbiAgdmFsaWRhdG9yXG59IGZyb20gXCIuL3ZhbGlkYXRvclwiO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiZmlsZTovLy9Vc2Vycy9zb2hhcmEvY29kZS9jcm9zcy1jaGVjay9wYWNrYWdlcy9jb3JlLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFVQSxnQ0FBMkI7QUFDM0IsOEJBQXlCO0FBQ3pCLHlDQUlxQjtBQURuQixnQ0FBQSxTQUFTLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBFcnJvclBhdGgsXG4gIEVycm9yTWVzc2FnZSxcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBPYmplY3RNb2RlbCxcbiAgRW52aXJvbm1lbnQsXG4gIFZhbGlkYXRvckZhY3RvcnksXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdGlvbkRlc2NyaXB0b3Jcbn0gZnJvbSBcIi4vZGVzY3JpcHRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmFsaWRhdGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm1hdFwiO1xuZXhwb3J0IHtcbiAgQmFzaWNWYWxpZGF0b3IsXG4gIEhpZ2hlck9yZGVyQmFzaWNWYWxpZGF0b3IsXG4gIHZhbGlkYXRvclxufSBmcm9tIFwiLi92YWxpZGF0b3JcIjtcbiJdfQ==
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const no_show_1 = require("no-show");
const DEFAULT_ENVIRONMENT = {
const DEFAULT_OBJECT_MODEL = {
get(object, key) {

@@ -12,2 +12,10 @@ if (object !== null && object !== undefined) {

}
},
asList(object) {
if (Array.isArray(object)) {
return object;
}
else {
return null;
}
}

@@ -18,3 +26,3 @@ };

*
* A function that takes an environment, value, descriptor and context, and (asynchronously)
* A function that takes an object model, value, descriptor and context, and (asynchronously)
* produces an array of validation errors. If this function produces an empty array, the

@@ -28,3 +36,3 @@ * validation succeeded.

*
* @param env The host environment
* @param objectModel The host object model
* @param value The value to validate; it need not be an object

@@ -35,3 +43,3 @@ * @param descriptor A validation descriptor to use to validate the value; a single validation

*/
function validate(value, descriptor, context = null, env = DEFAULT_ENVIRONMENT) {
function validate(value, descriptor, context = null, objectModel = DEFAULT_OBJECT_MODEL) {
return new no_show_1.Task(async (run) => {

@@ -43,3 +51,3 @@ let { validator, options, contexts } = descriptor;

}
let validateFunction = validator(options, env);
let validateFunction = validator(options, objectModel);
return await run(validateFunction(value, context));

@@ -49,2 +57,2 @@ });

exports.validate = validate;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiZmlsZTovLy9Vc2Vycy9zb2hhcmEvY29kZS9jcm9zcy1jaGVjay9wYWNrYWdlcy9jb3JlLyIsInNvdXJjZXMiOlsidmFsaWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBK0I7QUFRL0IsTUFBTSxtQkFBbUIsR0FBZ0I7SUFDdkMsR0FBRyxDQUFDLE1BQWUsRUFBRSxHQUFvQjtRQUN2QyxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUMzQyxPQUFRLE1BQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbkM7YUFBTTtZQUNMLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILFNBQWdCLFFBQVEsQ0FDdEIsS0FBUSxFQUNSLFVBQTRDLEVBQzVDLFVBQTBCLElBQUksRUFDOUIsTUFBbUIsbUJBQW1CO0lBRXRDLE9BQU8sSUFBSSxjQUFJLENBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxFQUFFO1FBQzFCLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUVsRCxJQUFJLE9BQU8sS0FBSyxJQUFJLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDbkQsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFBRSxPQUFPLEVBQUUsQ0FBQztTQUNqRDtRQUVELElBQUksZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUUvQyxPQUFPLE1BQU0sR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQWpCRCw0QkFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXNrIH0gZnJvbSBcIm5vLXNob3dcIjtcbmltcG9ydCB7IEluZGV4YWJsZSwgT3B0aW9uIH0gZnJvbSBcInRzLXN0ZFwiO1xuaW1wb3J0IHtcbiAgRW52aXJvbm1lbnQsXG4gIFZhbGlkYXRpb25EZXNjcmlwdG9yLFxuICBWYWxpZGF0aW9uRXJyb3Jcbn0gZnJvbSBcIi4vZGVzY3JpcHRvclwiO1xuXG5jb25zdCBERUZBVUxUX0VOVklST05NRU5UOiBFbnZpcm9ubWVudCA9IHtcbiAgZ2V0KG9iamVjdDogdW5rbm93biwga2V5OiBzdHJpbmcgfCBudW1iZXIpOiB1bmtub3duIHtcbiAgICBpZiAob2JqZWN0ICE9PSBudWxsICYmIG9iamVjdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gKG9iamVjdCBhcyBJbmRleGFibGUpW2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIEBhcGkgcHVibGljXG4gKlxuICogQSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIGVudmlyb25tZW50LCB2YWx1ZSwgZGVzY3JpcHRvciBhbmQgY29udGV4dCwgYW5kIChhc3luY2hyb25vdXNseSlcbiAqIHByb2R1Y2VzIGFuIGFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3JzLiBJZiB0aGlzIGZ1bmN0aW9uIHByb2R1Y2VzIGFuIGVtcHR5IGFycmF5LCB0aGVcbiAqIHZhbGlkYXRpb24gc3VjY2VlZGVkLlxuICpcbiAqIFRoZSBcImNvbnRleHRcIiBpcyBhbiBhcHAtc3BlY2lmaWMgY29uY2VwdC4gRm9yIGV4YW1wbGUsIGFuIGFwcCBtaWdodCB3YW50IHRvIHNlcGFyYXRlXG4gKiBiZXR3ZWVuIHZhbGlkYXRpb25zIHRoYXQgbXVzdCBwYXNzIHdoZW4gZHJhZnRpbmcgYW4gYXJ0aWNsZSB2cy4gdmFsaWRhdGlvbnMgdGhhdFxuICogbXVzdCBwYXNzIHdoZW4gcHVibGlzaGluZyBhbiBhcnRpY2xlLiBJZiBhIHZhbGlkYXRpb24gZGVzY3JpcHRvciBkb2VzIG5vdCBzcGVjaWZ5XG4gKiB0aGUgY29udGV4dCBwYXNzZWQgaW4gdG8gYHZhbGlkYXRlYCwgdGhlIHZhbGlkYXRpb24gcGFzc2VzLlxuICpcbiAqIEBwYXJhbSBlbnYgVGhlIGhvc3QgZW52aXJvbm1lbnRcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gdmFsaWRhdGU7IGl0IG5lZWQgbm90IGJlIGFuIG9iamVjdFxuICogQHBhcmFtIGRlc2NyaXB0b3IgQSB2YWxpZGF0aW9uIGRlc2NyaXB0b3IgdG8gdXNlIHRvIHZhbGlkYXRlIHRoZSB2YWx1ZTsgYSBzaW5nbGUgdmFsaWRhdGlvblxuICogIGRlc2NyaXB0b3IgY2FuIHJlcHJlc2VudCBtdWx0aXBsZSBjb21wb3NlZCB2YWxpZGF0aW9uc1xuICogQHBhcmFtIGNvbnRleHQgT3B0aW9uYWxseSwgYSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoZSBzYXZpbmcgY29udGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGU8VCwgT3B0aW9ucz4oXG4gIHZhbHVlOiBULFxuICBkZXNjcmlwdG9yOiBWYWxpZGF0aW9uRGVzY3JpcHRvcjxULCBPcHRpb25zPixcbiAgY29udGV4dDogT3B0aW9uPHN0cmluZz4gPSBudWxsLFxuICBlbnY6IEVudmlyb25tZW50ID0gREVGQVVMVF9FTlZJUk9OTUVOVFxuKTogVGFzazxWYWxpZGF0aW9uRXJyb3JbXT4ge1xuICByZXR1cm4gbmV3IFRhc2soYXN5bmMgcnVuID0+IHtcbiAgICBsZXQgeyB2YWxpZGF0b3IsIG9wdGlvbnMsIGNvbnRleHRzIH0gPSBkZXNjcmlwdG9yO1xuXG4gICAgaWYgKGNvbnRleHQgIT09IG51bGwgJiYgY29udGV4dHMgJiYgY29udGV4dHMubGVuZ3RoKSB7XG4gICAgICBpZiAoY29udGV4dHMuaW5kZXhPZihjb250ZXh0KSA9PT0gLTEpIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBsZXQgdmFsaWRhdGVGdW5jdGlvbiA9IHZhbGlkYXRvcihvcHRpb25zLCBlbnYpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHJ1bih2YWxpZGF0ZUZ1bmN0aW9uKHZhbHVlLCBjb250ZXh0KSk7XG4gIH0pO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiZmlsZTovLy9Vc2Vycy9zb2hhcmEvY29kZS9jcm9zcy1jaGVjay9wYWNrYWdlcy9jb3JlLyIsInNvdXJjZXMiOlsidmFsaWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBK0I7QUFRL0IsTUFBTSxvQkFBb0IsR0FBZ0I7SUFDeEMsR0FBRyxDQUFDLE1BQWUsRUFBRSxHQUFvQjtRQUN2QyxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUMzQyxPQUFRLE1BQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbkM7YUFBTTtZQUNMLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWU7UUFDcEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILFNBQWdCLFFBQVEsQ0FDdEIsS0FBUSxFQUNSLFVBQTRDLEVBQzVDLFVBQTBCLElBQUksRUFDOUIsY0FBMkIsb0JBQW9CO0lBRS9DLE9BQU8sSUFBSSxjQUFJLENBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxFQUFFO1FBQzFCLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUVsRCxJQUFJLE9BQU8sS0FBSyxJQUFJLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDbkQsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFBRSxPQUFPLEVBQUUsQ0FBQztTQUNqRDtRQUVELElBQUksZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV2RCxPQUFPLE1BQU0sR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQWpCRCw0QkFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXNrIH0gZnJvbSBcIm5vLXNob3dcIjtcbmltcG9ydCB7IEluZGV4YWJsZSwgT3B0aW9uIH0gZnJvbSBcInRzLXN0ZFwiO1xuaW1wb3J0IHtcbiAgT2JqZWN0TW9kZWwsXG4gIFZhbGlkYXRpb25EZXNjcmlwdG9yLFxuICBWYWxpZGF0aW9uRXJyb3Jcbn0gZnJvbSBcIi4vZGVzY3JpcHRvclwiO1xuXG5jb25zdCBERUZBVUxUX09CSkVDVF9NT0RFTDogT2JqZWN0TW9kZWwgPSB7XG4gIGdldChvYmplY3Q6IHVua25vd24sIGtleTogc3RyaW5nIHwgbnVtYmVyKTogdW5rbm93biB7XG4gICAgaWYgKG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIChvYmplY3QgYXMgSW5kZXhhYmxlKVtrZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cbiAgfSxcblxuICBhc0xpc3Qob2JqZWN0OiB1bmtub3duKTogT3B0aW9uPEFycmF5PHVua25vd24+PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0KSkge1xuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIEBhcGkgcHVibGljXG4gKlxuICogQSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIG9iamVjdCBtb2RlbCwgdmFsdWUsIGRlc2NyaXB0b3IgYW5kIGNvbnRleHQsIGFuZCAoYXN5bmNocm9ub3VzbHkpXG4gKiBwcm9kdWNlcyBhbiBhcnJheSBvZiB2YWxpZGF0aW9uIGVycm9ycy4gSWYgdGhpcyBmdW5jdGlvbiBwcm9kdWNlcyBhbiBlbXB0eSBhcnJheSwgdGhlXG4gKiB2YWxpZGF0aW9uIHN1Y2NlZWRlZC5cbiAqXG4gKiBUaGUgXCJjb250ZXh0XCIgaXMgYW4gYXBwLXNwZWNpZmljIGNvbmNlcHQuIEZvciBleGFtcGxlLCBhbiBhcHAgbWlnaHQgd2FudCB0byBzZXBhcmF0ZVxuICogYmV0d2VlbiB2YWxpZGF0aW9ucyB0aGF0IG11c3QgcGFzcyB3aGVuIGRyYWZ0aW5nIGFuIGFydGljbGUgdnMuIHZhbGlkYXRpb25zIHRoYXRcbiAqIG11c3QgcGFzcyB3aGVuIHB1Ymxpc2hpbmcgYW4gYXJ0aWNsZS4gSWYgYSB2YWxpZGF0aW9uIGRlc2NyaXB0b3IgZG9lcyBub3Qgc3BlY2lmeVxuICogdGhlIGNvbnRleHQgcGFzc2VkIGluIHRvIGB2YWxpZGF0ZWAsIHRoZSB2YWxpZGF0aW9uIHBhc3Nlcy5cbiAqXG4gKiBAcGFyYW0gb2JqZWN0TW9kZWwgVGhlIGhvc3Qgb2JqZWN0IG1vZGVsXG4gKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHZhbGlkYXRlOyBpdCBuZWVkIG5vdCBiZSBhbiBvYmplY3RcbiAqIEBwYXJhbSBkZXNjcmlwdG9yIEEgdmFsaWRhdGlvbiBkZXNjcmlwdG9yIHRvIHVzZSB0byB2YWxpZGF0ZSB0aGUgdmFsdWU7IGEgc2luZ2xlIHZhbGlkYXRpb25cbiAqICBkZXNjcmlwdG9yIGNhbiByZXByZXNlbnQgbXVsdGlwbGUgY29tcG9zZWQgdmFsaWRhdGlvbnNcbiAqIEBwYXJhbSBjb250ZXh0IE9wdGlvbmFsbHksIGEgc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUgc2F2aW5nIGNvbnRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlPFQsIE9wdGlvbnM+KFxuICB2YWx1ZTogVCxcbiAgZGVzY3JpcHRvcjogVmFsaWRhdGlvbkRlc2NyaXB0b3I8VCwgT3B0aW9ucz4sXG4gIGNvbnRleHQ6IE9wdGlvbjxzdHJpbmc+ID0gbnVsbCxcbiAgb2JqZWN0TW9kZWw6IE9iamVjdE1vZGVsID0gREVGQVVMVF9PQkpFQ1RfTU9ERUxcbik6IFRhc2s8VmFsaWRhdGlvbkVycm9yW10+IHtcbiAgcmV0dXJuIG5ldyBUYXNrKGFzeW5jIHJ1biA9PiB7XG4gICAgbGV0IHsgdmFsaWRhdG9yLCBvcHRpb25zLCBjb250ZXh0cyB9ID0gZGVzY3JpcHRvcjtcblxuICAgIGlmIChjb250ZXh0ICE9PSBudWxsICYmIGNvbnRleHRzICYmIGNvbnRleHRzLmxlbmd0aCkge1xuICAgICAgaWYgKGNvbnRleHRzLmluZGV4T2YoY29udGV4dCkgPT09IC0xKSByZXR1cm4gW107XG4gICAgfVxuXG4gICAgbGV0IHZhbGlkYXRlRnVuY3Rpb24gPSB2YWxpZGF0b3Iob3B0aW9ucywgb2JqZWN0TW9kZWwpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHJ1bih2YWxpZGF0ZUZ1bmN0aW9uKHZhbHVlLCBjb250ZXh0KSk7XG4gIH0pO1xufVxuIl19

@@ -1,1 +0,1 @@

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiJmaWxlOi8vL1VzZXJzL3NvaGFyYS9jb2RlL2Nyb3NzLWNoZWNrL3BhY2thZ2VzL2NvcmUvIiwic291cmNlcyI6WyJkZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXNrIH0gZnJvbSBcIm5vLXNob3dcIjtcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gXCJ0cy1zdGRcIjtcblxuZXhwb3J0IHR5cGUgRXJyb3JQYXRoID0gUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xuXG4vKipcbiAqIEBhcGkgcHVibGljXG4gKlxuICogQSByZXByZXNlbmF0aW9uIG9mIGEgZmFpbGVkIHZhbGlkYXRpb24sIG5vdCBpbmNsdWRpbmcgaXRzIGxvY2F0aW9uLiBUaGlzIG9iamVjdFxuICogY2FuIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBhIGZvcm1hdHRlciB0byBwcm9kdWNlIGh1bWFuLXJlYWRhYmxlIGVycm9ycy4gVGhlXG4gKiBpbmZvcm1hdGlvbiBwcm92aWRlZCBpbiBhbiBgRXJyb3JNZXNzYWdlYCBzaG91bGQgYmUgZW5vdWdoIHRvIHByb3Blcmx5XG4gKiBpbnRlcm5hdGlvbmFsaXplIHRoZSBlcnJvciBtZXNzYWdlIG9yIHVzZSBpdCBpbiBvdGhlciBsb2NhbGl6YXRpb24gY29udGV4dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JNZXNzYWdlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXRhaWxzOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEBhcGkgcHVibGljXG4gKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhIGZhaWxlZCB2YWxpZGF0aW9uLCBpbmNsdWRpbmcgdGhlIGxvY2F0aW9uIGluIHRoZSB2YWxpZGF0ZWRcbiAqIG9iamVjdCB3aGVyZSB0aGUgdmFsaWRhdGlvbiBmYWlsZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvbkVycm9yIHtcbiAgcGF0aDogRXJyb3JQYXRoO1xuICBtZXNzYWdlOiBFcnJvck1lc3NhZ2U7XG59XG5cbi8qKlxuICogQGFwaSBob3N0XG4gKlxuICogQW4gb2JqZWN0IHRoYXQgcHJvdmlkZXMgaG9zdC1zcGVjaWZpYyBiZWhhdmlvciBmb3IgdmFsaWRhdG9ycy4gSXQgaXMgcGFzc2VkIGluIHRvXG4gKiBhbGwgYFZhbGlkYXRvckZhY3Rvcnlgcywgc28gaG9zdHMgY2FuIGFsc28gZXh0ZW5kIEVudmlyb25tZW50IHRvIGNvbW11bmljYXRlIHdpdGhcbiAqIHZhbGlkYXRvcnMgd3JpdHRlbiB0byBiZSB1c2VkIGluIHRoYXQgZW52aXJvbm1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQge1xuICBnZXQob2JqZWN0OiB1bmtub3duLCBrZXk6IHN0cmluZyB8IG51bWJlcik6IHVua25vd247XG59XG5cbi8qKlxuICogQGFwaSBwcmltaXRpdmVcbiAqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYW4gZW52aXJvbm1lbnQgYW5kIHZhbGlkYXRvciBvcHRpb25zIGFuZCBwcm9kdWNlcyBhIG5ld1xuICogVmFsaWRhdG9yIGZ1bmN0aW9uLiBJbiBvdGhlciB3b3JkcywgaXQgY3VycmllcyB0aGUgZW52aXJvbm1lbnQgYW5kIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRvckZhY3Rvcnk8VCwgT3B0aW9ucz4gPSAoXG4gIG9wdGlvbnM6IE9wdGlvbnMsXG4gIGVudjogRW52aXJvbm1lbnRcbikgPT4gVmFsaWRhdG9yPFQ+O1xuXG4vKipcbiAqIEBhcGkgcHJpbWl0aXZlXG4gKlxuICogQSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgdmFsdWUgYW5kIGEgdmFsaWRhdGlvbiBjb250ZXh0IGFuZCAoYXN5bmNocm9ub3VzbHkpXG4gKiBwcm9kdWNlcyBhIGxpc3Qgb2YgdmFsaWRhdGlvbiBlcnJvcnMuXG4gKlxuICogQSBzdWNjZXNzZnVsIHZhbGlkYXRpb24gcHJvZHVjZXMgYW4gZW1wdHkgbGlzdCBvZiB2YWxpZGF0aW9uIGVycm9ycy5cbiAqXG4gKiBQcmltaXRpdmUgdmFsaWRhdGlvbnMgbXVzdCB1c2Ugbm8tc2hvdyBUYXNrcyAod2hpY2ggY2FuIGJlIGNhbmNlbGxlZCkgdG8gbWFuYWdlIGFzeW5jaHJvbnkuXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRvcjxUID0gdW5rbm93bj4gPSAoXG4gIHZhbHVlOiBULFxuICBjb250ZXh0OiBPcHRpb248c3RyaW5nPlxuKSA9PiBUYXNrPFZhbGlkYXRpb25FcnJvcltdPjtcblxuLyoqXG4gKiBAYXBpIHByaW1pdGl2ZVxuICpcbiAqIEEgbG93LWxldmVsIHJlcHJlc2VudGF0aW9uIG9mIGEgdmFsaWRhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkRlc2NyaXB0b3I8VCA9IHVua25vd24sIE9wdGlvbnMgPSB1bmtub3duPiA9IFJlYWRvbmx5PHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWxpZGF0b3I6IFZhbGlkYXRvckZhY3Rvcnk8VCwgT3B0aW9ucz47XG4gIG9wdGlvbnM6IE9wdGlvbnM7XG4gIGNvbnRleHRzPzogUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xufT47XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiJmaWxlOi8vL1VzZXJzL3NvaGFyYS9jb2RlL2Nyb3NzLWNoZWNrL3BhY2thZ2VzL2NvcmUvIiwic291cmNlcyI6WyJkZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXNrIH0gZnJvbSBcIm5vLXNob3dcIjtcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gXCJ0cy1zdGRcIjtcblxuZXhwb3J0IHR5cGUgRXJyb3JQYXRoID0gUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xuXG4vKipcbiAqIEBhcGkgcHVibGljXG4gKlxuICogQSByZXByZXNlbmF0aW9uIG9mIGEgZmFpbGVkIHZhbGlkYXRpb24sIG5vdCBpbmNsdWRpbmcgaXRzIGxvY2F0aW9uLiBUaGlzIG9iamVjdFxuICogY2FuIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBhIGZvcm1hdHRlciB0byBwcm9kdWNlIGh1bWFuLXJlYWRhYmxlIGVycm9ycy4gVGhlXG4gKiBpbmZvcm1hdGlvbiBwcm92aWRlZCBpbiBhbiBgRXJyb3JNZXNzYWdlYCBzaG91bGQgYmUgZW5vdWdoIHRvIHByb3Blcmx5XG4gKiBpbnRlcm5hdGlvbmFsaXplIHRoZSBlcnJvciBtZXNzYWdlIG9yIHVzZSBpdCBpbiBvdGhlciBsb2NhbGl6YXRpb24gY29udGV4dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JNZXNzYWdlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXRhaWxzOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEBhcGkgcHVibGljXG4gKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhIGZhaWxlZCB2YWxpZGF0aW9uLCBpbmNsdWRpbmcgdGhlIGxvY2F0aW9uIGluIHRoZSB2YWxpZGF0ZWRcbiAqIG9iamVjdCB3aGVyZSB0aGUgdmFsaWRhdGlvbiBmYWlsZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvbkVycm9yIHtcbiAgcGF0aDogRXJyb3JQYXRoO1xuICBtZXNzYWdlOiBFcnJvck1lc3NhZ2U7XG59XG5cbi8qKlxuICogQGFwaSBob3N0XG4gKlxuICogQW4gb2JqZWN0IHRoYXQgcHJvdmlkZXMgaG9zdC1zcGVjaWZpYyBiZWhhdmlvciBmb3IgdmFsaWRhdG9ycy4gSXQgaXMgcGFzc2VkIGluIHRvXG4gKiBhbGwgYFZhbGlkYXRvckZhY3Rvcnlgcywgc28gaG9zdHMgY2FuIGFsc28gZXh0ZW5kIE9iamVjdE1vZGVsIHRvIGNvbW11bmljYXRlIHdpdGhcbiAqIHZhbGlkYXRvcnMgd3JpdHRlbiB0byBiZSB1c2VkIGluIHRoYXQgb2JqZWN0IG1vZGVsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdE1vZGVsIHtcbiAgZ2V0KG9iamVjdDogdW5rbm93biwga2V5OiBzdHJpbmcgfCBudW1iZXIpOiB1bmtub3duO1xuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHRha2VzIGFueSBvYmplY3QsIGFuZCByZXR1cm5zIGBudWxsYCBpZiB0aGUgb2JqZWN0XG4gICAqIHNob3VsZCBub3QgYmUgdHJlYXRlZCBhcyBhbiBhcnJheSBieSB0aGUgYnVpbHQtaW4gdmFsaWRhdG9ycywgYW5kXG4gICAqIGFuIGl0ZXJhYmxlIGlmIHRoZSBvYmplY3Qgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gYXJyYXkuXG4gICAqXG4gICAqIElmIHRoZSB1bmRlcmx5aW5nIG9iamVjdCBpcyBhIHNpbXBsZSBhcnJheSwgaXQncyBmaW5lIHRvIHJldHVybiBpdC5cbiAgICpcbiAgICogWW91IGNhbiBhbHNvIHJldHVybiBhbiBpdGVyYWJsZSwgd2hpY2ggd2lsbCBvbmx5IGJlIGNhbGxlZCBpZiB0aGVcbiAgICogaW50ZXJuYWxzIG5lZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSB2YWx1ZXMuIFRoaXMgY2FuIHNhdmUgd29yayBpZlxuICAgKiB0aGUgcHJvY2VzcyBvZiB0dXJuaW5nIHlvdXIgdmFsdWUgaW50byBhbiBBcnJheSBpcyBleHBlbnNpdmUuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSBhbiBJbW11dGFibGUuanMgbGlzdCB0aGF0IHlvdSB3YW50IHRoZVxuICAgKiBidWlsdC1pbiB2YWxpZGF0b3JzIHRvIHRyZWF0IGFzIGEgbGlzdCwgeW91IGNvdWxkIHdyaXRlOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBFTlYgPSB7XG4gICAqICAgYXNMaXN0KG9iamVjdCkge1xuICAgKiAgICAgaWYgKExpc3QuaXNMaXN0KG9iamVjdCkgfHwgQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAqICAgICAgIHJldHVybiBvYmplY3RbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgKiAgICAgfSBlbHNlIHtcbiAgICogICAgICAgcmV0dXJuIG51bGw7XG4gICAqICAgICB9XG4gICAqICAgfVxuICAgKiB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogSWYgeW91IGFyZSB3b3JraW5nIHdpdGggYSBjb2xsZWN0aW9uIHRoYXQgZG9lc24ndCBhbHJlYWR5IHN1cHBvcnRcbiAgICogYFN5bWJvbC5pdGVyYXRvcmAsIHlvdSBjYW4gZWFzaWx5IGFkYXB0IGl0LiBGb3IgZXhhbXBsZSwgc2F5IHlvdSdyZVxuICAgKiB3b3JraW5nIHdpdGggYW4gYXJyYXktbGlrZSBzdHJ1Y3R1cmUgdGhhdCBoYXMgYSBgdG9BcnJheWAgbWV0aG9kIG9uXG4gICAqIGl0LlxuICAgKlxuICAgKiBDcm9zcyBDaGVjayBtaWdodCBpbnZva2UgYXNMaXN0IG11bHRpcGxlIHRpbWVzLCBidXQgd2lsbCBvbmx5IGludm9rZVxuICAgKiB0aGUgZ2VuZXJhdG9yIGlmIGl0IHdhbnRzIHRvIHZhbGlkYXRlIHRoZSBjb250ZW50cyBvZiB0aGUgbGlzdC5cbiAgICpcbiAgICogYGBgdHNcbiAgICogaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gXCJAZW1iZXIvYXJyYXlcIjtcbiAgICpcbiAgICogY29uc3QgRU5WID0ge1xuICAgKiAgIGFzTGlzdChvYmplY3QpIHtcbiAgICogICAgIC8vIHN1cHBvcnQgYnVpbHQtaW4gQXJyYXlzXG4gICAqICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAqICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAqICAgICB9IGVsc2UgaWYgKGlzQXJyYXkob2JqZWN0KSkge1xuICAgKiAgICAgICByZXR1cm4gaXRlcmFibGUob2JqZWN0KTtcbiAgICogICAgIH0gZWxzZSB7XG4gICAqICAgICAgIHJldHVybiBudWxsO1xuICAgKiAgICAgfVxuICAgKiAgIH1cbiAgICogfTtcbiAgICpcbiAgICogZnVuY3Rpb24qIGl0ZXJhYmxlKG9iamVjdCkge1xuICAgKiAgIC8vIFRoaXMgd2lsbCBvbmx5IHJ1biBpZiBjcm9zcy1jaGVjayBhdHRlbXB0cyB0byBpdGVyYXRlLFxuICAgKiAgIC8vIHNvIHdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgdGhlIGNvc3Qgb2YgY29lcmNpbmcgaW50b1xuICAgKiAgIC8vIGFuIGFycmF5LlxuICAgKiAgIGxldCBhcnJheSA9IG9iamVjdC50b0FycmF5KCk7XG4gICAqXG4gICAqICAgZm9yIChsZXQgaXRlbSBvZiBhcnJheSkge1xuICAgKiAgICAgeWllbGQgaXRlbTtcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBvYmplY3RcbiAgICovXG4gIGFzTGlzdChvYmplY3Q6IHVua25vd24pOiBPcHRpb248SXRlcmFibGU8dW5rbm93bj4gfCBBcnJheTx1bmtub3duPj47XG59XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnQgPSBPYmplY3RNb2RlbDtcblxuLyoqXG4gKiBAYXBpIHByaW1pdGl2ZVxuICpcbiAqIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBvYmplY3QgbW9kZWwgYW5kIHZhbGlkYXRvciBvcHRpb25zIGFuZCBwcm9kdWNlcyBhIG5ld1xuICogVmFsaWRhdG9yIGZ1bmN0aW9uLiBJbiBvdGhlciB3b3JkcywgaXQgY3VycmllcyB0aGUgb2JqZWN0IG1vZGVsIGFuZCBvcHRpb25zLlxuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0b3JGYWN0b3J5PFQsIE9wdGlvbnM+ID0gKFxuICBvcHRpb25zOiBPcHRpb25zLFxuICBvYmplY3RNb2RlbDogT2JqZWN0TW9kZWxcbikgPT4gVmFsaWRhdG9yPFQ+O1xuXG4vKipcbiAqIEBhcGkgcHJpbWl0aXZlXG4gKlxuICogQSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgdmFsdWUgYW5kIGEgdmFsaWRhdGlvbiBjb250ZXh0IGFuZCAoYXN5bmNocm9ub3VzbHkpXG4gKiBwcm9kdWNlcyBhIGxpc3Qgb2YgdmFsaWRhdGlvbiBlcnJvcnMuXG4gKlxuICogQSBzdWNjZXNzZnVsIHZhbGlkYXRpb24gcHJvZHVjZXMgYW4gZW1wdHkgbGlzdCBvZiB2YWxpZGF0aW9uIGVycm9ycy5cbiAqXG4gKiBQcmltaXRpdmUgdmFsaWRhdGlvbnMgbXVzdCB1c2Ugbm8tc2hvdyBUYXNrcyAod2hpY2ggY2FuIGJlIGNhbmNlbGxlZCkgdG8gbWFuYWdlIGFzeW5jaHJvbnkuXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRvcjxUID0gdW5rbm93bj4gPSAoXG4gIHZhbHVlOiBULFxuICBjb250ZXh0OiBPcHRpb248c3RyaW5nPlxuKSA9PiBUYXNrPFZhbGlkYXRpb25FcnJvcltdPjtcblxuLyoqXG4gKiBAYXBpIHByaW1pdGl2ZVxuICpcbiAqIEEgbG93LWxldmVsIHJlcHJlc2VudGF0aW9uIG9mIGEgdmFsaWRhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkRlc2NyaXB0b3I8VCA9IHVua25vd24sIE9wdGlvbnMgPSB1bmtub3duPiA9IFJlYWRvbmx5PHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWxpZGF0b3I6IFZhbGlkYXRvckZhY3Rvcnk8VCwgT3B0aW9ucz47XG4gIG9wdGlvbnM6IE9wdGlvbnM7XG4gIGNvbnRleHRzPzogUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xufT47XG4iXX0=
export * from "./validate";
export * from "./format";
export { validator } from "./validator";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiZmlsZTovLy9Vc2Vycy9zb2hhcmEvY29kZS9jcm9zcy1jaGVjay9wYWNrYWdlcy9jb3JlLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsT0FBTyxFQUdMLFNBQVMsRUFDVixNQUFNLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIEVycm9yUGF0aCxcbiAgRXJyb3JNZXNzYWdlLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIEVudmlyb25tZW50LFxuICBWYWxpZGF0b3JGYWN0b3J5LFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRpb25EZXNjcmlwdG9yXG59IGZyb20gXCIuL2Rlc2NyaXB0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZhbGlkYXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3JtYXRcIjtcbmV4cG9ydCB7XG4gIEJhc2ljVmFsaWRhdG9yLFxuICBIaWdoZXJPcmRlckJhc2ljVmFsaWRhdG9yLFxuICB2YWxpZGF0b3Jcbn0gZnJvbSBcIi4vdmFsaWRhdG9yXCI7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiZmlsZTovLy9Vc2Vycy9zb2hhcmEvY29kZS9jcm9zcy1jaGVjay9wYWNrYWdlcy9jb3JlLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsT0FBTyxFQUdMLFNBQVMsRUFDVixNQUFNLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIEVycm9yUGF0aCxcbiAgRXJyb3JNZXNzYWdlLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIE9iamVjdE1vZGVsLFxuICBFbnZpcm9ubWVudCxcbiAgVmFsaWRhdG9yRmFjdG9yeSxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0aW9uRGVzY3JpcHRvclxufSBmcm9tIFwiLi9kZXNjcmlwdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92YWxpZGF0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybWF0XCI7XG5leHBvcnQge1xuICBCYXNpY1ZhbGlkYXRvcixcbiAgSGlnaGVyT3JkZXJCYXNpY1ZhbGlkYXRvcixcbiAgdmFsaWRhdG9yXG59IGZyb20gXCIuL3ZhbGlkYXRvclwiO1xuIl19
import { Task } from "no-show";
const DEFAULT_ENVIRONMENT = {
const DEFAULT_OBJECT_MODEL = {
get(object, key) {

@@ -10,2 +10,10 @@ if (object !== null && object !== undefined) {

}
},
asList(object) {
if (Array.isArray(object)) {
return object;
}
else {
return null;
}
}

@@ -16,3 +24,3 @@ };

*
* A function that takes an environment, value, descriptor and context, and (asynchronously)
* A function that takes an object model, value, descriptor and context, and (asynchronously)
* produces an array of validation errors. If this function produces an empty array, the

@@ -26,3 +34,3 @@ * validation succeeded.

*
* @param env The host environment
* @param objectModel The host object model
* @param value The value to validate; it need not be an object

@@ -33,3 +41,3 @@ * @param descriptor A validation descriptor to use to validate the value; a single validation

*/
export function validate(value, descriptor, context = null, env = DEFAULT_ENVIRONMENT) {
export function validate(value, descriptor, context = null, objectModel = DEFAULT_OBJECT_MODEL) {
return new Task(async (run) => {

@@ -41,6 +49,6 @@ let { validator, options, contexts } = descriptor;

}
let validateFunction = validator(options, env);
let validateFunction = validator(options, objectModel);
return await run(validateFunction(value, context));
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiZmlsZTovLy9Vc2Vycy9zb2hhcmEvY29kZS9jcm9zcy1jaGVjay9wYWNrYWdlcy9jb3JlLyIsInNvdXJjZXMiOlsidmFsaWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQVEvQixNQUFNLG1CQUFtQixHQUFnQjtJQUN2QyxHQUFHLENBQUMsTUFBZSxFQUFFLEdBQW9CO1FBQ3ZDLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQzNDLE9BQVEsTUFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNuQzthQUFNO1lBQ0wsT0FBTyxNQUFNLENBQUM7U0FDZjtJQUNILENBQUM7Q0FDRixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsS0FBUSxFQUNSLFVBQTRDLEVBQzVDLFVBQTBCLElBQUksRUFDOUIsTUFBbUIsbUJBQW1CO0lBRXRDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxFQUFFO1FBQzFCLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUVsRCxJQUFJLE9BQU8sS0FBSyxJQUFJLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDbkQsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFBRSxPQUFPLEVBQUUsQ0FBQztTQUNqRDtRQUVELElBQUksZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUUvQyxPQUFPLE1BQU0sR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhc2sgfSBmcm9tIFwibm8tc2hvd1wiO1xuaW1wb3J0IHsgSW5kZXhhYmxlLCBPcHRpb24gfSBmcm9tIFwidHMtc3RkXCI7XG5pbXBvcnQge1xuICBFbnZpcm9ubWVudCxcbiAgVmFsaWRhdGlvbkRlc2NyaXB0b3IsXG4gIFZhbGlkYXRpb25FcnJvclxufSBmcm9tIFwiLi9kZXNjcmlwdG9yXCI7XG5cbmNvbnN0IERFRkFVTFRfRU5WSVJPTk1FTlQ6IEVudmlyb25tZW50ID0ge1xuICBnZXQob2JqZWN0OiB1bmtub3duLCBrZXk6IHN0cmluZyB8IG51bWJlcik6IHVua25vd24ge1xuICAgIGlmIChvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAob2JqZWN0IGFzIEluZGV4YWJsZSlba2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogQGFwaSBwdWJsaWNcbiAqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYW4gZW52aXJvbm1lbnQsIHZhbHVlLCBkZXNjcmlwdG9yIGFuZCBjb250ZXh0LCBhbmQgKGFzeW5jaHJvbm91c2x5KVxuICogcHJvZHVjZXMgYW4gYXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvcnMuIElmIHRoaXMgZnVuY3Rpb24gcHJvZHVjZXMgYW4gZW1wdHkgYXJyYXksIHRoZVxuICogdmFsaWRhdGlvbiBzdWNjZWVkZWQuXG4gKlxuICogVGhlIFwiY29udGV4dFwiIGlzIGFuIGFwcC1zcGVjaWZpYyBjb25jZXB0LiBGb3IgZXhhbXBsZSwgYW4gYXBwIG1pZ2h0IHdhbnQgdG8gc2VwYXJhdGVcbiAqIGJldHdlZW4gdmFsaWRhdGlvbnMgdGhhdCBtdXN0IHBhc3Mgd2hlbiBkcmFmdGluZyBhbiBhcnRpY2xlIHZzLiB2YWxpZGF0aW9ucyB0aGF0XG4gKiBtdXN0IHBhc3Mgd2hlbiBwdWJsaXNoaW5nIGFuIGFydGljbGUuIElmIGEgdmFsaWRhdGlvbiBkZXNjcmlwdG9yIGRvZXMgbm90IHNwZWNpZnlcbiAqIHRoZSBjb250ZXh0IHBhc3NlZCBpbiB0byBgdmFsaWRhdGVgLCB0aGUgdmFsaWRhdGlvbiBwYXNzZXMuXG4gKlxuICogQHBhcmFtIGVudiBUaGUgaG9zdCBlbnZpcm9ubWVudFxuICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byB2YWxpZGF0ZTsgaXQgbmVlZCBub3QgYmUgYW4gb2JqZWN0XG4gKiBAcGFyYW0gZGVzY3JpcHRvciBBIHZhbGlkYXRpb24gZGVzY3JpcHRvciB0byB1c2UgdG8gdmFsaWRhdGUgdGhlIHZhbHVlOyBhIHNpbmdsZSB2YWxpZGF0aW9uXG4gKiAgZGVzY3JpcHRvciBjYW4gcmVwcmVzZW50IG11bHRpcGxlIGNvbXBvc2VkIHZhbGlkYXRpb25zXG4gKiBAcGFyYW0gY29udGV4dCBPcHRpb25hbGx5LCBhIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIHNhdmluZyBjb250ZXh0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZTxULCBPcHRpb25zPihcbiAgdmFsdWU6IFQsXG4gIGRlc2NyaXB0b3I6IFZhbGlkYXRpb25EZXNjcmlwdG9yPFQsIE9wdGlvbnM+LFxuICBjb250ZXh0OiBPcHRpb248c3RyaW5nPiA9IG51bGwsXG4gIGVudjogRW52aXJvbm1lbnQgPSBERUZBVUxUX0VOVklST05NRU5UXG4pOiBUYXNrPFZhbGlkYXRpb25FcnJvcltdPiB7XG4gIHJldHVybiBuZXcgVGFzayhhc3luYyBydW4gPT4ge1xuICAgIGxldCB7IHZhbGlkYXRvciwgb3B0aW9ucywgY29udGV4dHMgfSA9IGRlc2NyaXB0b3I7XG5cbiAgICBpZiAoY29udGV4dCAhPT0gbnVsbCAmJiBjb250ZXh0cyAmJiBjb250ZXh0cy5sZW5ndGgpIHtcbiAgICAgIGlmIChjb250ZXh0cy5pbmRleE9mKGNvbnRleHQpID09PSAtMSkgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCB2YWxpZGF0ZUZ1bmN0aW9uID0gdmFsaWRhdG9yKG9wdGlvbnMsIGVudik7XG5cbiAgICByZXR1cm4gYXdhaXQgcnVuKHZhbGlkYXRlRnVuY3Rpb24odmFsdWUsIGNvbnRleHQpKTtcbiAgfSk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiZmlsZTovLy9Vc2Vycy9zb2hhcmEvY29kZS9jcm9zcy1jaGVjay9wYWNrYWdlcy9jb3JlLyIsInNvdXJjZXMiOlsidmFsaWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQVEvQixNQUFNLG9CQUFvQixHQUFnQjtJQUN4QyxHQUFHLENBQUMsTUFBZSxFQUFFLEdBQW9CO1FBQ3ZDLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQzNDLE9BQVEsTUFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNuQzthQUFNO1lBQ0wsT0FBTyxNQUFNLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsTUFBZTtRQUNwQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekIsT0FBTyxNQUFNLENBQUM7U0FDZjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7Q0FDRixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsS0FBUSxFQUNSLFVBQTRDLEVBQzVDLFVBQTBCLElBQUksRUFDOUIsY0FBMkIsb0JBQW9CO0lBRS9DLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxFQUFFO1FBQzFCLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUVsRCxJQUFJLE9BQU8sS0FBSyxJQUFJLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDbkQsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFBRSxPQUFPLEVBQUUsQ0FBQztTQUNqRDtRQUVELElBQUksZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV2RCxPQUFPLE1BQU0sR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhc2sgfSBmcm9tIFwibm8tc2hvd1wiO1xuaW1wb3J0IHsgSW5kZXhhYmxlLCBPcHRpb24gfSBmcm9tIFwidHMtc3RkXCI7XG5pbXBvcnQge1xuICBPYmplY3RNb2RlbCxcbiAgVmFsaWRhdGlvbkRlc2NyaXB0b3IsXG4gIFZhbGlkYXRpb25FcnJvclxufSBmcm9tIFwiLi9kZXNjcmlwdG9yXCI7XG5cbmNvbnN0IERFRkFVTFRfT0JKRUNUX01PREVMOiBPYmplY3RNb2RlbCA9IHtcbiAgZ2V0KG9iamVjdDogdW5rbm93biwga2V5OiBzdHJpbmcgfCBudW1iZXIpOiB1bmtub3duIHtcbiAgICBpZiAob2JqZWN0ICE9PSBudWxsICYmIG9iamVjdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gKG9iamVjdCBhcyBJbmRleGFibGUpW2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuICB9LFxuXG4gIGFzTGlzdChvYmplY3Q6IHVua25vd24pOiBPcHRpb248QXJyYXk8dW5rbm93bj4+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogQGFwaSBwdWJsaWNcbiAqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYW4gb2JqZWN0IG1vZGVsLCB2YWx1ZSwgZGVzY3JpcHRvciBhbmQgY29udGV4dCwgYW5kIChhc3luY2hyb25vdXNseSlcbiAqIHByb2R1Y2VzIGFuIGFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3JzLiBJZiB0aGlzIGZ1bmN0aW9uIHByb2R1Y2VzIGFuIGVtcHR5IGFycmF5LCB0aGVcbiAqIHZhbGlkYXRpb24gc3VjY2VlZGVkLlxuICpcbiAqIFRoZSBcImNvbnRleHRcIiBpcyBhbiBhcHAtc3BlY2lmaWMgY29uY2VwdC4gRm9yIGV4YW1wbGUsIGFuIGFwcCBtaWdodCB3YW50IHRvIHNlcGFyYXRlXG4gKiBiZXR3ZWVuIHZhbGlkYXRpb25zIHRoYXQgbXVzdCBwYXNzIHdoZW4gZHJhZnRpbmcgYW4gYXJ0aWNsZSB2cy4gdmFsaWRhdGlvbnMgdGhhdFxuICogbXVzdCBwYXNzIHdoZW4gcHVibGlzaGluZyBhbiBhcnRpY2xlLiBJZiBhIHZhbGlkYXRpb24gZGVzY3JpcHRvciBkb2VzIG5vdCBzcGVjaWZ5XG4gKiB0aGUgY29udGV4dCBwYXNzZWQgaW4gdG8gYHZhbGlkYXRlYCwgdGhlIHZhbGlkYXRpb24gcGFzc2VzLlxuICpcbiAqIEBwYXJhbSBvYmplY3RNb2RlbCBUaGUgaG9zdCBvYmplY3QgbW9kZWxcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gdmFsaWRhdGU7IGl0IG5lZWQgbm90IGJlIGFuIG9iamVjdFxuICogQHBhcmFtIGRlc2NyaXB0b3IgQSB2YWxpZGF0aW9uIGRlc2NyaXB0b3IgdG8gdXNlIHRvIHZhbGlkYXRlIHRoZSB2YWx1ZTsgYSBzaW5nbGUgdmFsaWRhdGlvblxuICogIGRlc2NyaXB0b3IgY2FuIHJlcHJlc2VudCBtdWx0aXBsZSBjb21wb3NlZCB2YWxpZGF0aW9uc1xuICogQHBhcmFtIGNvbnRleHQgT3B0aW9uYWxseSwgYSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoZSBzYXZpbmcgY29udGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGU8VCwgT3B0aW9ucz4oXG4gIHZhbHVlOiBULFxuICBkZXNjcmlwdG9yOiBWYWxpZGF0aW9uRGVzY3JpcHRvcjxULCBPcHRpb25zPixcbiAgY29udGV4dDogT3B0aW9uPHN0cmluZz4gPSBudWxsLFxuICBvYmplY3RNb2RlbDogT2JqZWN0TW9kZWwgPSBERUZBVUxUX09CSkVDVF9NT0RFTFxuKTogVGFzazxWYWxpZGF0aW9uRXJyb3JbXT4ge1xuICByZXR1cm4gbmV3IFRhc2soYXN5bmMgcnVuID0+IHtcbiAgICBsZXQgeyB2YWxpZGF0b3IsIG9wdGlvbnMsIGNvbnRleHRzIH0gPSBkZXNjcmlwdG9yO1xuXG4gICAgaWYgKGNvbnRleHQgIT09IG51bGwgJiYgY29udGV4dHMgJiYgY29udGV4dHMubGVuZ3RoKSB7XG4gICAgICBpZiAoY29udGV4dHMuaW5kZXhPZihjb250ZXh0KSA9PT0gLTEpIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBsZXQgdmFsaWRhdGVGdW5jdGlvbiA9IHZhbGlkYXRvcihvcHRpb25zLCBvYmplY3RNb2RlbCk7XG5cbiAgICByZXR1cm4gYXdhaXQgcnVuKHZhbGlkYXRlRnVuY3Rpb24odmFsdWUsIGNvbnRleHQpKTtcbiAgfSk7XG59XG4iXX0=

@@ -30,15 +30,82 @@ import { Task } from "no-show";

* An object that provides host-specific behavior for validators. It is passed in to
* all `ValidatorFactory`s, so hosts can also extend Environment to communicate with
* validators written to be used in that environment.
* all `ValidatorFactory`s, so hosts can also extend ObjectModel to communicate with
* validators written to be used in that object model.
*/
export interface Environment {
export interface ObjectModel {
get(object: unknown, key: string | number): unknown;
/**
* This function takes any object, and returns `null` if the object
* should not be treated as an array by the built-in validators, and
* an iterable if the object should be treated as an array.
*
* If the underlying object is a simple array, it's fine to return it.
*
* You can also return an iterable, which will only be called if the
* internals need to iterate over the values. This can save work if
* the process of turning your value into an Array is expensive.
*
* For example, if you have an Immutable.js list that you want the
* built-in validators to treat as a list, you could write:
*
* ```ts
* const ENV = {
* asList(object) {
* if (List.isList(object) || Array.isArray(object)) {
* return object[Symbol.iterator]();
* } else {
* return null;
* }
* }
* };
* ```
*
* If you are working with a collection that doesn't already support
* `Symbol.iterator`, you can easily adapt it. For example, say you're
* working with an array-like structure that has a `toArray` method on
* it.
*
* Cross Check might invoke asList multiple times, but will only invoke
* the generator if it wants to validate the contents of the list.
*
* ```ts
* import { isArray } from "@ember/array";
*
* const ENV = {
* asList(object) {
* // support built-in Arrays
* if (Array.isArray(object)) {
* return object;
* } else if (isArray(object)) {
* return iterable(object);
* } else {
* return null;
* }
* }
* };
*
* function* iterable(object) {
* // This will only run if cross-check attempts to iterate,
* // so we don't need to worry about the cost of coercing into
* // an array.
* let array = object.toArray();
*
* for (let item of array) {
* yield item;
* }
* }
* ```
*
* @param object
*/
asList(object: unknown): Option<Iterable<unknown> | Array<unknown>>;
}
/** @deprecated */
export declare type Environment = ObjectModel;
/**
* @api primitive
*
* A function that takes an environment and validator options and produces a new
* Validator function. In other words, it curries the environment and options.
* A function that takes an object model and validator options and produces a new
* Validator function. In other words, it curries the object model and options.
*/
export declare type ValidatorFactory<T, Options> = (options: Options, env: Environment) => Validator<T>;
export declare type ValidatorFactory<T, Options> = (options: Options, objectModel: ObjectModel) => Validator<T>;
/**

@@ -45,0 +112,0 @@ * @api primitive

@@ -1,4 +0,4 @@

export { ErrorPath, ErrorMessage, ValidationError, Environment, ValidatorFactory, Validator, ValidationDescriptor } from "./descriptor";
export { ErrorPath, ErrorMessage, ValidationError, ObjectModel, Environment, ValidatorFactory, Validator, ValidationDescriptor } from "./descriptor";
export * from "./validate";
export * from "./format";
export { BasicValidator, HigherOrderBasicValidator, validator } from "./validator";
import { Task } from "no-show";
import { Option } from "ts-std";
import { Environment, ValidationDescriptor, ValidationError } from "./descriptor";
import { ObjectModel, ValidationDescriptor, ValidationError } from "./descriptor";
/**
* @api public
*
* A function that takes an environment, value, descriptor and context, and (asynchronously)
* A function that takes an object model, value, descriptor and context, and (asynchronously)
* produces an array of validation errors. If this function produces an empty array, the

@@ -16,3 +16,3 @@ * validation succeeded.

*
* @param env The host environment
* @param objectModel The host object model
* @param value The value to validate; it need not be an object

@@ -23,2 +23,2 @@ * @param descriptor A validation descriptor to use to validate the value; a single validation

*/
export declare function validate<T, Options>(value: T, descriptor: ValidationDescriptor<T, Options>, context?: Option<string>, env?: Environment): Task<ValidationError[]>;
export declare function validate<T, Options>(value: T, descriptor: ValidationDescriptor<T, Options>, context?: Option<string>, objectModel?: ObjectModel): Task<ValidationError[]>;
{
"name": "@cross-check/core",
"version": "0.11.3",
"version": "0.11.4",
"description": "The primitives for building validations.",

@@ -5,0 +5,0 @@ "contributors": [

@@ -47,5 +47,5 @@ # @cross-check/core

In the case of both of these issues (services and getters), the philosophy of cross-check is to expose hooks on an "Environment" (see below) that framework integrators can use to abstract these distinctions. Validators receive this environment as a parameter, and if validator definitions work through the Environment (e.g. looking up properties by using `environment.get` rather than direct indexing), they will be reusable in more environments and with more kinds of data structures.
In the case of both of these issues (services and getters), the philosophy of cross-check is to expose hooks on an "ObjectModel" (see below) that framework integrators can use to abstract these distinctions. Validators receive this object model as a parameter, and if validator definitions work through the `ObjectModel` (e.g. looking up properties by using `objectModel.get` rather than direct indexing), they will be reusable in more environments and with more kinds of data structures.
Because it can be difficult to remember to work through the environment all the time, the `@cross-check/dsl` library provides a number of abstractions that do the work for you. For example, the `object()` validator provided by `@cross-check/dsl` automatically looks up sub-properties by using `environment.get`.
Because it can be difficult to remember to work through the object model all the time, the `@cross-check/dsl` library provides a number of abstractions that do the work for you. For example, the `object()` validator provided by `@cross-check/dsl` automatically looks up sub-properties by using `objectModel.get`.

@@ -105,16 +105,21 @@ ### Values, Not Models

## The Environment
## The Object Model
Once you have constructed a validation descriptor, you validate a value by calling `validate(environment, value, descriptor, context)`.
Once you have constructed a validation descriptor, you validate a value by calling `validate(objectModel, value, descriptor, context)`.
The first parameter, `environment`, is an object that gets passed into each validation function.
The first parameter, `objectModel`, is an object that gets passed into each validation function.
The `ObjectModel` has two mandatory methods:
- `get`
- `asList`
### The `get` Function
The `Environment`'s only mandatory method is `get`. It takes an object and key and returns another value.
The `get` function takes an object and key and returns another value.
The simplest environment is therefore:
A simple implementation of the get function is:
```ts
const SimpleEnvironment = {
const SimpleObjectModel = {
get(obj, key) {

@@ -130,2 +135,18 @@ return obj && obj[key];

### The `asList` Function
The simplest implementation of an object model is:
```ts
const SimpleObjectModel = {
get(obj, key) {
return obj && obj[key];
},
asList(obj) {
return Array.isArray(obj) ? obj : null;
}
}
```
### Service Functions

@@ -135,10 +156,14 @@

You can implement a specialized `Environment`:
You can implement a specialized `ObjectModel`:
```ts
const AppEnvironment {
const AppObjectModel {
get(obj, key) {
return obj && obj[key];
}
},
asList(obj) {
return Array.isArray(obj) ? obj : null;
},
config = {

@@ -150,6 +175,6 @@ strict: true

Then, a validator that wants to use that service simply depends on the specialized environment. If you're using TypeScript, the type signature tells the whole story:
Then, a validator that wants to use that service simply depends on the specialized object model. If you're using TypeScript, the type signature tells the whole story:
```ts
function format(env: AppEnvironment, options: RegExp) {
function format(env: AppObjectModel, options: RegExp) {
return value => {

@@ -166,9 +191,9 @@ return new Task(async run => {

### Specialized Environments, Philosophy
### Specialized Object Models, Philosophy
By looking at the definition of this validator factory, you can tell that it can only be used with an implementation of `AppEnvironment`.
By looking at the definition of this validator factory, you can tell that it can only be used with an implementation of `AppObjectModel`.
General-purpose validators should avoid relying on specialized environments, but applications should use them to be explicit about validator dependencies.
General-purpose validators should avoid relying on specialized object models, but applications should use them to be explicit about validator dependencies.
If an application wants to reuse some validator definitions in another implementation (such as a native app), the specialized environment definition will fully describe what the other implementation needs to do in order to use validator definitions built for the application.
If an application wants to reuse some validator definitions in another implementation (such as a native app), the specialized object model definition will fully describe what the other implementation needs to do in order to use validator definitions built for the application.

@@ -175,0 +200,0 @@ ## Basic Usage

@@ -34,18 +34,87 @@ import { Task } from "no-show";

* An object that provides host-specific behavior for validators. It is passed in to
* all `ValidatorFactory`s, so hosts can also extend Environment to communicate with
* validators written to be used in that environment.
* all `ValidatorFactory`s, so hosts can also extend ObjectModel to communicate with
* validators written to be used in that object model.
*/
export interface Environment {
export interface ObjectModel {
get(object: unknown, key: string | number): unknown;
/**
* This function takes any object, and returns `null` if the object
* should not be treated as an array by the built-in validators, and
* an iterable if the object should be treated as an array.
*
* If the underlying object is a simple array, it's fine to return it.
*
* You can also return an iterable, which will only be called if the
* internals need to iterate over the values. This can save work if
* the process of turning your value into an Array is expensive.
*
* For example, if you have an Immutable.js list that you want the
* built-in validators to treat as a list, you could write:
*
* ```ts
* const ENV = {
* asList(object) {
* if (List.isList(object) || Array.isArray(object)) {
* return object[Symbol.iterator]();
* } else {
* return null;
* }
* }
* };
* ```
*
* If you are working with a collection that doesn't already support
* `Symbol.iterator`, you can easily adapt it. For example, say you're
* working with an array-like structure that has a `toArray` method on
* it.
*
* Cross Check might invoke asList multiple times, but will only invoke
* the generator if it wants to validate the contents of the list.
*
* ```ts
* import { isArray } from "@ember/array";
*
* const ENV = {
* asList(object) {
* // support built-in Arrays
* if (Array.isArray(object)) {
* return object;
* } else if (isArray(object)) {
* return iterable(object);
* } else {
* return null;
* }
* }
* };
*
* function* iterable(object) {
* // This will only run if cross-check attempts to iterate,
* // so we don't need to worry about the cost of coercing into
* // an array.
* let array = object.toArray();
*
* for (let item of array) {
* yield item;
* }
* }
* ```
*
* @param object
*/
asList(object: unknown): Option<Iterable<unknown> | Array<unknown>>;
}
/** @deprecated */
export type Environment = ObjectModel;
/**
* @api primitive
*
* A function that takes an environment and validator options and produces a new
* Validator function. In other words, it curries the environment and options.
* A function that takes an object model and validator options and produces a new
* Validator function. In other words, it curries the object model and options.
*/
export type ValidatorFactory<T, Options> = (
options: Options,
env: Environment
objectModel: ObjectModel
) => Validator<T>;

@@ -52,0 +121,0 @@

@@ -5,2 +5,3 @@ export {

ValidationError,
ObjectModel,
Environment,

@@ -7,0 +8,0 @@ ValidatorFactory,

import { Task } from "no-show";
import { Indexable, Option } from "ts-std";
import {
Environment,
ObjectModel,
ValidationDescriptor,

@@ -9,3 +9,3 @@ ValidationError

const DEFAULT_ENVIRONMENT: Environment = {
const DEFAULT_OBJECT_MODEL: ObjectModel = {
get(object: unknown, key: string | number): unknown {

@@ -17,2 +17,10 @@ if (object !== null && object !== undefined) {

}
},
asList(object: unknown): Option<Array<unknown>> {
if (Array.isArray(object)) {
return object;
} else {
return null;
}
}

@@ -24,3 +32,3 @@ };

*
* A function that takes an environment, value, descriptor and context, and (asynchronously)
* A function that takes an object model, value, descriptor and context, and (asynchronously)
* produces an array of validation errors. If this function produces an empty array, the

@@ -34,3 +42,3 @@ * validation succeeded.

*
* @param env The host environment
* @param objectModel The host object model
* @param value The value to validate; it need not be an object

@@ -45,3 +53,3 @@ * @param descriptor A validation descriptor to use to validate the value; a single validation

context: Option<string> = null,
env: Environment = DEFAULT_ENVIRONMENT
objectModel: ObjectModel = DEFAULT_OBJECT_MODEL
): Task<ValidationError[]> {

@@ -55,3 +63,3 @@ return new Task(async run => {

let validateFunction = validator(options, env);
let validateFunction = validator(options, objectModel);

@@ -58,0 +66,0 @@ return await run(validateFunction(value, context));

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc