author | Phil Ringnalda <philringnalda@gmail.com> |
Wed, 03 Aug 2016 18:50:40 -0700 | |
changeset 307991 | 1576e7bc1bec7232e9e4ba78cce62526b1a6380b |
parent 307988 | de6fd5bb93d26985b6b7eb8b1e2ec896b8e7611a |
child 307992 | 3a0a2331334c5f5734f1fd4769c9fcc0b0b3709d |
child 308020 | 03e541a38d87381782c7fccea38aaa32cdd491df |
child 308151 | ac2e016915e47560b5fea1fcffe15927af697ac4 |
push id | 31057 |
push user | philringnalda@gmail.com |
push date | Thu, 04 Aug 2016 01:56:39 +0000 |
treeherder | autoland@3a0a2331334c [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | backout |
bugs | 1291312 |
milestone | 51.0a1 |
backs out | 0267734ec297ab7a539437afbe87e49d7d745ba7 8232b0211660f6b5b60ab1db9acdcab022a995e0 |
first release with | nightly linux32
1576e7bc1bec
/
51.0a1
/
20160804030441
/
files
nightly linux64
1576e7bc1bec
/
51.0a1
/
20160804030441
/
files
nightly mac
1576e7bc1bec
/
51.0a1
/
20160804030441
/
files
nightly win32
1576e7bc1bec
/
51.0a1
/
20160804030441
/
files
nightly win64
1576e7bc1bec
/
51.0a1
/
20160804030441
/
files
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
releases | nightly linux32
51.0a1
/
20160804030441
/
pushlog to previous
nightly linux64
51.0a1
/
20160804030441
/
pushlog to previous
nightly mac
51.0a1
/
20160804030441
/
pushlog to previous
nightly win32
51.0a1
/
20160804030441
/
pushlog to previous
nightly win64
51.0a1
/
20160804030441
/
pushlog to previous
|
--- a/testing/web-platform/meta/FileAPI/idlharness.html.ini +++ b/testing/web-platform/meta/FileAPI/idlharness.html.ini @@ -19,16 +19,19 @@ expected: FAIL [Blob interface: new File(["myFileBits"\], "myFileName") must inherit property "isClosed" with the proper type (2)] expected: FAIL [Blob interface: new File(["myFileBits"\], "myFileName") must inherit property "close" with the proper type (4)] expected: FAIL + [FileReaderSync interface: existence and properties of interface object] + expected: FAIL + [FileReaderSync interface object length] expected: FAIL [FileReaderSync interface: existence and properties of interface prototype object] expected: FAIL [FileReaderSync interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL
--- a/testing/web-platform/meta/FileAPI/idlharness.worker.js.ini +++ b/testing/web-platform/meta/FileAPI/idlharness.worker.js.ini @@ -19,16 +19,19 @@ expected: FAIL [Blob interface: new File(["myFileBits"\], "myFileName") must inherit property "isClosed" with the proper type (2)] expected: FAIL [Blob interface: new File(["myFileBits"\], "myFileName") must inherit property "close" with the proper type (4)] expected: FAIL + [FileList interface: existence and properties of interface object] + expected: FAIL + [FileList interface object length] expected: FAIL [FileList interface: existence and properties of interface prototype object] expected: FAIL [FileList interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL @@ -37,29 +40,8 @@ expected: FAIL [FileList interface: attribute length] expected: FAIL [FileList interface object name] expected: FAIL - [ArrayBuffer interface: existence and properties of interface object] - expected: FAIL - - [URL interface: existence and properties of interface object] - expected: FAIL - - [EventTarget interface: existence and properties of interface object] - expected: FAIL - - [Event interface: existence and properties of interface object] - expected: FAIL - - [Blob interface: existence and properties of interface object] - expected: FAIL - - [File interface: existence and properties of interface object] - expected: FAIL - - [FileReader interface: existence and properties of interface object] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/IndexedDB/interfaces.worker.js.ini +++ /dev/null @@ -1,44 +0,0 @@ -[interfaces.worker] - type: testharness - [WorkerGlobalScope interface: existence and properties of interface object] - expected: FAIL - - [Event interface: existence and properties of interface object] - expected: FAIL - - [EventTarget interface: existence and properties of interface object] - expected: FAIL - - [IDBKeyRange interface: existence and properties of interface object] - expected: FAIL - - [IDBRequest interface: existence and properties of interface object] - expected: FAIL - - [IDBOpenDBRequest interface: existence and properties of interface object] - expected: FAIL - - [IDBVersionChangeEvent interface: existence and properties of interface object] - expected: FAIL - - [IDBFactory interface: existence and properties of interface object] - expected: FAIL - - [IDBDatabase interface: existence and properties of interface object] - expected: FAIL - - [IDBObjectStore interface: existence and properties of interface object] - expected: FAIL - - [IDBIndex interface: existence and properties of interface object] - expected: FAIL - - [IDBCursor interface: existence and properties of interface object] - expected: FAIL - - [IDBCursorWithValue interface: existence and properties of interface object] - expected: FAIL - - [IDBTransaction interface: existence and properties of interface object] - expected: FAIL -
--- a/testing/web-platform/meta/IndexedDB/transaction-lifetime-empty.html.ini +++ b/testing/web-platform/meta/IndexedDB/transaction-lifetime-empty.html.ini @@ -1,3 +1,4 @@ [transaction-lifetime-empty.html] type: testharness disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1290853 +
--- a/testing/web-platform/meta/MANIFEST.json +++ b/testing/web-platform/meta/MANIFEST.json @@ -93,24 +93,16 @@ "path": "XMLHttpRequest/send-authentication-prompt-2-manual.htm", "url": "/XMLHttpRequest/send-authentication-prompt-2-manual.htm" }, { "path": "XMLHttpRequest/send-authentication-prompt-manual.htm", "url": "/XMLHttpRequest/send-authentication-prompt-manual.htm" }, { - "path": "annotation-model/examples/example1-manual.html", - "url": "/annotation-model/examples/example1-manual.html" - }, - { - "path": "annotation-model/examples/example2-manual.html", - "url": "/annotation-model/examples/example2-manual.html" - }, - { "path": "battery-status/battery-charging-manual.html", "url": "/battery-status/battery-charging-manual.html" }, { "path": "battery-status/battery-discharging-manual.html", "url": "/battery-status/battery-discharging-manual.html" }, { @@ -933,18 +925,18 @@ "path": "page-visibility/test_minimize-manual.html", "url": "/page-visibility/test_minimize-manual.html" }, { "path": "page-visibility/test_tab_state_change-manual.html", "url": "/page-visibility/test_tab_state_change-manual.html" }, { - "path": "pointerevents/pointerevent_attributes_mouse-manual.html", - "url": "/pointerevents/pointerevent_attributes_mouse-manual.html" + "path": "pointerevents/pointerevent_button_attribute_mouse-manual.html", + "url": "/pointerevents/pointerevent_button_attribute_mouse-manual.html" }, { "path": "pointerevents/pointerevent_capture_mouse-manual.html", "url": "/pointerevents/pointerevent_capture_mouse-manual.html" }, { "path": "pointerevents/pointerevent_capture_suppressing_mouse-manual.html", "url": "/pointerevents/pointerevent_capture_suppressing_mouse-manual.html" @@ -961,24 +953,16 @@ "path": "pointerevents/pointerevent_lostpointercapture_for_disconnected_node-manual.html", "url": "/pointerevents/pointerevent_lostpointercapture_for_disconnected_node-manual.html" }, { "path": "pointerevents/pointerevent_lostpointercapture_is_first-manual.html", "url": "/pointerevents/pointerevent_lostpointercapture_is_first-manual.html" }, { - "path": "pointerevents/pointerevent_multiple_primary_pointers_boundary_events-manual.html", - "url": "/pointerevents/pointerevent_multiple_primary_pointers_boundary_events-manual.html" - }, - { - "path": "pointerevents/pointerevent_pointerId_scope-manual.html", - "url": "/pointerevents/pointerevent_pointerId_scope-manual.html" - }, - { "path": "pointerevents/pointerevent_pointercancel_touch-manual.html", "url": "/pointerevents/pointerevent_pointercancel_touch-manual.html" }, { "path": "pointerevents/pointerevent_pointerdown-manual.html", "url": "/pointerevents/pointerevent_pointerdown-manual.html" }, { @@ -1081,16 +1065,20 @@ "path": "pointerevents/pointerevent_pointerup_isprimary_same_as_pointerdown-manual.html", "url": "/pointerevents/pointerevent_pointerup_isprimary_same_as_pointerdown-manual.html" }, { "path": "pointerevents/pointerevent_pointerup_pointertype-manual.html", "url": "/pointerevents/pointerevent_pointerup_pointertype-manual.html" }, { + "path": "pointerevents/pointerevent_properties_mouse-manual.html", + "url": "/pointerevents/pointerevent_properties_mouse-manual.html" + }, + { "path": "pointerevents/pointerevent_releasepointercapture_events_to_original_target-manual.html", "url": "/pointerevents/pointerevent_releasepointercapture_events_to_original_target-manual.html" }, { "path": "pointerevents/pointerevent_releasepointercapture_invalid_pointerid-manual.html", "url": "/pointerevents/pointerevent_releasepointercapture_invalid_pointerid-manual.html" }, { @@ -9061,20 +9049,16 @@ "path": "2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html", "url": "/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html" }, { "path": "2dcontext/drawing-text-to-the-canvas/2d.text.draw.baseline.alphabetic.html", "url": "/2dcontext/drawing-text-to-the-canvas/2d.text.draw.baseline.alphabetic.html" }, { - "path": "2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.NaN.html", - "url": "/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.NaN.html" - }, - { "path": "2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html", "url": "/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html" }, { "path": "2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.fontface.html", "url": "/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.fontface.html" }, { @@ -12541,22 +12525,22 @@ "path": "WebIDL/ecmascript-binding/interface-object.html", "url": "/WebIDL/ecmascript-binding/interface-object.html" }, { "path": "XMLHttpRequest/FormData-append.html", "url": "/XMLHttpRequest/FormData-append.html" }, { - "path": "XMLHttpRequest/XMLHttpRequest-withCredentials.any.js", - "url": "/XMLHttpRequest/XMLHttpRequest-withCredentials.any.html" - }, - { - "path": "XMLHttpRequest/XMLHttpRequest-withCredentials.any.js", - "url": "/XMLHttpRequest/XMLHttpRequest-withCredentials.any.worker" + "path": "XMLHttpRequest/XMLHttpRequest-withCredentials.html", + "url": "/XMLHttpRequest/XMLHttpRequest-withCredentials.html" + }, + { + "path": "XMLHttpRequest/XMLHttpRequest-withCredentials.worker.js", + "url": "/XMLHttpRequest/XMLHttpRequest-withCredentials.worker" }, { "path": "XMLHttpRequest/abort-after-receive.htm", "url": "/XMLHttpRequest/abort-after-receive.htm" }, { "path": "XMLHttpRequest/abort-after-send.htm", "url": "/XMLHttpRequest/abort-after-send.htm" @@ -12721,20 +12705,16 @@ "path": "XMLHttpRequest/getresponseheader-special-characters.htm", "url": "/XMLHttpRequest/getresponseheader-special-characters.htm" }, { "path": "XMLHttpRequest/getresponseheader-unsent-opened-state.htm", "url": "/XMLHttpRequest/getresponseheader-unsent-opened-state.htm" }, { - "path": "XMLHttpRequest/headers-normalize-response.htm", - "url": "/XMLHttpRequest/headers-normalize-response.htm" - }, - { "path": "XMLHttpRequest/interfaces.html", "url": "/XMLHttpRequest/interfaces.html" }, { "path": "XMLHttpRequest/open-after-abort.htm", "url": "/XMLHttpRequest/open-after-abort.htm" }, { @@ -13013,20 +12993,16 @@ "path": "XMLHttpRequest/send-authentication-cors-basic-setrequestheader.htm", "url": "/XMLHttpRequest/send-authentication-cors-basic-setrequestheader.htm" }, { "path": "XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm", "url": "/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm" }, { - "path": "XMLHttpRequest/send-blob-with-no-mime-type.html", - "url": "/XMLHttpRequest/send-blob-with-no-mime-type.html" - }, - { "path": "XMLHttpRequest/send-conditional.htm", "url": "/XMLHttpRequest/send-conditional.htm" }, { "path": "XMLHttpRequest/send-content-type-charset.htm", "url": "/XMLHttpRequest/send-content-type-charset.htm" }, { @@ -14341,20 +14317,16 @@ "path": "dom/collections/domstringmap-supported-property-names.html", "url": "/dom/collections/domstringmap-supported-property-names.html" }, { "path": "dom/collections/namednodemap-supported-property-names.html", "url": "/dom/collections/namednodemap-supported-property-names.html" }, { - "path": "dom/events/AddEventListenerOptions-once.html", - "url": "/dom/events/AddEventListenerOptions-once.html" - }, - { "path": "dom/events/AddEventListenerOptions-passive.html", "url": "/dom/events/AddEventListenerOptions-passive.html" }, { "path": "dom/events/CustomEvent.html", "url": "/dom/events/CustomEvent.html" }, { @@ -14497,20 +14469,16 @@ "path": "dom/interfaces.html", "url": "/dom/interfaces.html" }, { "path": "dom/lists/DOMTokenList-coverage-for-attributes.html", "url": "/dom/lists/DOMTokenList-coverage-for-attributes.html" }, { - "path": "dom/lists/DOMTokenList-iteration.html", - "url": "/dom/lists/DOMTokenList-iteration.html" - }, - { "path": "dom/lists/DOMTokenList-stringifier.html", "url": "/dom/lists/DOMTokenList-stringifier.html" }, { "path": "dom/lists/DOMTokenList-value.html", "url": "/dom/lists/DOMTokenList-value.html" }, { @@ -15577,172 +15545,16 @@ "path": "encoding/textencoder-constructor-non-utf.html", "url": "/encoding/textencoder-constructor-non-utf.html" }, { "path": "encoding/textencoder-utf16-surrogates.html", "url": "/encoding/textencoder-utf16-surrogates.html" }, { - "path": "encrypted-media/Google/encrypted-media-async-creation-with-gc.html", - "url": "/encrypted-media/Google/encrypted-media-async-creation-with-gc.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-async-setcert-with-gc.html", - "url": "/encrypted-media/Google/encrypted-media-async-setcert-with-gc.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-check-init-data-type.html", - "url": "/encrypted-media/Google/encrypted-media-check-init-data-type.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-clear-key-invalid-license.html", - "url": "/encrypted-media/Google/encrypted-media-clear-key-invalid-license.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-clearkey-update-non-ascii-input.html", - "url": "/encrypted-media/Google/encrypted-media-clearkey-update-non-ascii-input.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-events.html", - "url": "/encrypted-media/Google/encrypted-media-events.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-generate-request-disallowed-input.html", - "url": "/encrypted-media/Google/encrypted-media-generate-request-disallowed-input.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-keystatuses-multiple-sessions.html", - "url": "/encrypted-media/Google/encrypted-media-keystatuses-multiple-sessions.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-keystatuses-multiple-updates.html", - "url": "/encrypted-media/Google/encrypted-media-keystatuses-multiple-updates.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-keystatuses.html", - "url": "/encrypted-media/Google/encrypted-media-keystatuses.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-lifetime-mediakeys-with-session.html", - "url": "/encrypted-media/Google/encrypted-media-lifetime-mediakeys-with-session.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-lifetime-mediakeys.html", - "url": "/encrypted-media/Google/encrypted-media-lifetime-mediakeys.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-lifetime-mediakeysession-reference.html", - "url": "/encrypted-media/Google/encrypted-media-lifetime-mediakeysession-reference.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-lifetime-mediakeysession-release-noreference.html", - "url": "/encrypted-media/Google/encrypted-media-lifetime-mediakeysession-release-noreference.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-lifetime-mediakeysession-release.html", - "url": "/encrypted-media/Google/encrypted-media-lifetime-mediakeysession-release.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-lifetime-multiple-mediakeys.html", - "url": "/encrypted-media/Google/encrypted-media-lifetime-multiple-mediakeys.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-lifetime-reload.html", - "url": "/encrypted-media/Google/encrypted-media-lifetime-reload.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-not-callable-after-createsession.html", - "url": "/encrypted-media/Google/encrypted-media-not-callable-after-createsession.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-onencrypted.html", - "url": "/encrypted-media/Google/encrypted-media-onencrypted.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-playback-encrypted-and-clear-sources.html", - "url": "/encrypted-media/Google/encrypted-media-playback-encrypted-and-clear-sources.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-playback-multiple-sessions.html", - "url": "/encrypted-media/Google/encrypted-media-playback-multiple-sessions.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-playback-setmediakeys-after-src.html", - "url": "/encrypted-media/Google/encrypted-media-playback-setmediakeys-after-src.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-playback-setmediakeys-before-src.html", - "url": "/encrypted-media/Google/encrypted-media-playback-setmediakeys-before-src.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-playback-two-videos.html", - "url": "/encrypted-media/Google/encrypted-media-playback-two-videos.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-requestmediakeysystemaccess.html", - "url": "/encrypted-media/Google/encrypted-media-requestmediakeysystemaccess.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-reset-src-after-setmediakeys.html", - "url": "/encrypted-media/Google/encrypted-media-reset-src-after-setmediakeys.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-session-closed-event.html", - "url": "/encrypted-media/Google/encrypted-media-session-closed-event.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys-again-after-playback.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys-again-after-playback.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys-again-after-resetting-src.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys-again-after-resetting-src.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys-at-same-time.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys-at-same-time.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-different-mediakeys.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-different-mediakeys.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-the-same-mediakeys.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-the-same-mediakeys.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys-to-multiple-video-elements.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys-to-multiple-video-elements.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-syntax.html", - "url": "/encrypted-media/Google/encrypted-media-syntax.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-unique-origin.html", - "url": "/encrypted-media/Google/encrypted-media-unique-origin.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-update-disallowed-input.html", - "url": "/encrypted-media/Google/encrypted-media-update-disallowed-input.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-waiting-for-a-key.html", - "url": "/encrypted-media/Google/encrypted-media-waiting-for-a-key.html" - }, - { - "path": "encrypted-media/idlharness.html", - "url": "/encrypted-media/idlharness.html" - }, - { "path": "eventsource/dedicated-worker/eventsource-close.htm", "url": "/eventsource/dedicated-worker/eventsource-close.htm" }, { "path": "eventsource/dedicated-worker/eventsource-constructor-url-bogus.htm", "url": "/eventsource/dedicated-worker/eventsource-constructor-url-bogus.htm" }, { @@ -15997,44 +15809,24 @@ "path": "fetch/api/basic/request-forbidden-headers-worker.html", "url": "/fetch/api/basic/request-forbidden-headers-worker.html" }, { "path": "fetch/api/basic/request-forbidden-headers.html", "url": "/fetch/api/basic/request-forbidden-headers.html" }, { - "path": "fetch/api/basic/request-head-worker.html", - "url": "/fetch/api/basic/request-head-worker.html" - }, - { - "path": "fetch/api/basic/request-head.html", - "url": "/fetch/api/basic/request-head.html" - }, - { "path": "fetch/api/basic/request-headers-worker.html", "url": "/fetch/api/basic/request-headers-worker.html" }, { "path": "fetch/api/basic/request-headers.html", "url": "/fetch/api/basic/request-headers.html" }, { - "path": "fetch/api/basic/request-referrer.html", - "url": "/fetch/api/basic/request-referrer.html" - }, - { - "path": "fetch/api/basic/response-url-worker.html", - "url": "/fetch/api/basic/response-url-worker.html" - }, - { - "path": "fetch/api/basic/response-url.html", - "url": "/fetch/api/basic/response-url.html" - }, - { "path": "fetch/api/basic/scheme-about-worker.html", "url": "/fetch/api/basic/scheme-about-worker.html" }, { "path": "fetch/api/basic/scheme-about.html", "url": "/fetch/api/basic/scheme-about.html" }, { @@ -16221,24 +16013,16 @@ "path": "fetch/api/policies/referrer-no-referrer-worker.html", "url": "/fetch/api/policies/referrer-no-referrer-worker.html" }, { "path": "fetch/api/policies/referrer-no-referrer.html", "url": "/fetch/api/policies/referrer-no-referrer.html" }, { - "path": "fetch/api/policies/referrer-origin-when-cross-origin-worker.html", - "url": "/fetch/api/policies/referrer-origin-when-cross-origin-worker.html" - }, - { - "path": "fetch/api/policies/referrer-origin-when-cross-origin.html", - "url": "/fetch/api/policies/referrer-origin-when-cross-origin.html" - }, - { "path": "fetch/api/policies/referrer-origin-worker.html", "url": "/fetch/api/policies/referrer-origin-worker.html" }, { "path": "fetch/api/policies/referrer-origin.html", "url": "/fetch/api/policies/referrer-origin.html" }, { @@ -16625,20 +16409,16 @@ "path": "html/browsers/browsing-the-web/navigating-across-documents/child_navigates_parent_location.html", "url": "/html/browsers/browsing-the-web/navigating-across-documents/child_navigates_parent_location.html" }, { "path": "html/browsers/browsing-the-web/navigating-across-documents/child_navigates_parent_submit.html", "url": "/html/browsers/browsing-the-web/navigating-across-documents/child_navigates_parent_submit.html" }, { - "path": "html/browsers/browsing-the-web/navigating-across-documents/empty_fragment.html", - "url": "/html/browsers/browsing-the-web/navigating-across-documents/empty_fragment.html" - }, - { "path": "html/browsers/browsing-the-web/navigating-across-documents/javascript-url-query-fragment-components.html", "url": "/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-query-fragment-components.html" }, { "path": "html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling.html", "url": "/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling.html" }, { @@ -18141,20 +17921,16 @@ "path": "html/semantics/document-metadata/the-base-element/base_multiple.html", "url": "/html/semantics/document-metadata/the-base-element/base_multiple.html" }, { "path": "html/semantics/document-metadata/the-base-element/base_srcdoc.html", "url": "/html/semantics/document-metadata/the-base-element/base_srcdoc.html" }, { - "path": "html/semantics/document-metadata/the-link-element/document-without-browsing-context.html", - "url": "/html/semantics/document-metadata/the-link-element/document-without-browsing-context.html" - }, - { "path": "html/semantics/document-metadata/the-link-element/link-load-event.html", "url": "/html/semantics/document-metadata/the-link-element/link-load-event.html" }, { "path": "html/semantics/document-metadata/the-link-element/link-rellist.html", "url": "/html/semantics/document-metadata/the-link-element/link-rellist.html" }, { @@ -19485,20 +19261,16 @@ "path": "html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html", "url": "/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html" }, { "path": "html/semantics/embedded-content/the-img-element/img.complete.html", "url": "/html/semantics/embedded-content/the-img-element/img.complete.html" }, { - "path": "html/semantics/embedded-content/the-img-element/invalid-src.html", - "url": "/html/semantics/embedded-content/the-img-element/invalid-src.html" - }, - { "path": "html/semantics/embedded-content/the-img-element/relevant-mutations.html", "url": "/html/semantics/embedded-content/the-img-element/relevant-mutations.html" }, { "path": "html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute.html", "url": "/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute.html" }, { @@ -20001,20 +19773,16 @@ "path": "html/semantics/interactive-elements/the-details-element/toggleEvent.html", "url": "/html/semantics/interactive-elements/the-details-element/toggleEvent.html" }, { "path": "html/semantics/interactive-elements/the-dialog-element/dialog-close.html", "url": "/html/semantics/interactive-elements/the-dialog-element/dialog-close.html" }, { - "path": "html/semantics/interactive-elements/the-dialog-element/dialog-open.html", - "url": "/html/semantics/interactive-elements/the-dialog-element/dialog-open.html" - }, - { "path": "html/semantics/interactive-elements/the-dialog-element/dialog-showModal.html", "url": "/html/semantics/interactive-elements/the-dialog-element/dialog-showModal.html" }, { "path": "html/semantics/interfaces.html", "url": "/html/semantics/interfaces.html" }, { @@ -20093,20 +19861,16 @@ "path": "html/semantics/scripting-1/the-script-element/script-charset-01.html", "url": "/html/semantics/scripting-1/the-script-element/script-charset-01.html" }, { "path": "html/semantics/scripting-1/the-script-element/script-charset-02.html", "url": "/html/semantics/scripting-1/the-script-element/script-charset-02.html" }, { - "path": "html/semantics/scripting-1/the-script-element/script-charset-03.html", - "url": "/html/semantics/scripting-1/the-script-element/script-charset-03.html" - }, - { "path": "html/semantics/scripting-1/the-script-element/script-for-event-xhtml.xhtml", "url": "/html/semantics/scripting-1/the-script-element/script-for-event-xhtml.xhtml" }, { "path": "html/semantics/scripting-1/the-script-element/script-for-event.html", "url": "/html/semantics/scripting-1/the-script-element/script-for-event.html" }, { @@ -20121,20 +19885,16 @@ "path": "html/semantics/scripting-1/the-script-element/script-languages-02.html", "url": "/html/semantics/scripting-1/the-script-element/script-languages-02.html" }, { "path": "html/semantics/scripting-1/the-script-element/script-noembed-noframes-iframe.xhtml", "url": "/html/semantics/scripting-1/the-script-element/script-noembed-noframes-iframe.xhtml" }, { - "path": "html/semantics/scripting-1/the-script-element/script-not-executed-after-shutdown.html", - "url": "/html/semantics/scripting-1/the-script-element/script-not-executed-after-shutdown.html" - }, - { "path": "html/semantics/scripting-1/the-script-element/script-not-found-not-executed.html", "url": "/html/semantics/scripting-1/the-script-element/script-not-found-not-executed.html" }, { "path": "html/semantics/scripting-1/the-script-element/script-onload-string.html", "url": "/html/semantics/scripting-1/the-script-element/script-onload-string.html" }, { @@ -20313,20 +20073,16 @@ "path": "html/semantics/tabular-data/the-table-element/insertRow-method-02.html", "url": "/html/semantics/tabular-data/the-table-element/insertRow-method-02.html" }, { "path": "html/semantics/tabular-data/the-table-element/insertRow-method-03.html", "url": "/html/semantics/tabular-data/the-table-element/insertRow-method-03.html" }, { - "path": "html/semantics/tabular-data/the-table-element/remove-row.html", - "url": "/html/semantics/tabular-data/the-table-element/remove-row.html" - }, - { "path": "html/semantics/tabular-data/the-table-element/tBodies.html", "url": "/html/semantics/tabular-data/the-table-element/tBodies.html" }, { "path": "html/semantics/tabular-data/the-table-element/tFoot.html", "url": "/html/semantics/tabular-data/the-table-element/tFoot.html" }, { @@ -23285,24 +23041,16 @@ "path": "pointerevents/pointerevent_constructor.html", "url": "/pointerevents/pointerevent_constructor.html" }, { "path": "pointerevents/pointerevent_pointermove-on-chorded-mouse-button.html", "url": "/pointerevents/pointerevent_pointermove-on-chorded-mouse-button.html" }, { - "path": "pointerevents/pointerevent_suppress_compat_events_on_click.html", - "url": "/pointerevents/pointerevent_suppress_compat_events_on_click.html" - }, - { - "path": "pointerevents/pointerevent_suppress_compat_events_on_drag_mouse.html", - "url": "/pointerevents/pointerevent_suppress_compat_events_on_drag_mouse.html" - }, - { "path": "pointerevents/pointerevent_touch-action-illegal.html", "url": "/pointerevents/pointerevent_touch-action-illegal.html" }, { "path": "pointerevents/pointerevent_touch-action-verification.html", "url": "/pointerevents/pointerevent_touch-action-verification.html" }, { @@ -29397,40 +29145,32 @@ "path": "service-workers/service-worker/activate-event-after-install-state-change.https.html", "url": "/service-workers/service-worker/activate-event-after-install-state-change.https.html" }, { "path": "service-workers/service-worker/activation-after-registration.https.html", "url": "/service-workers/service-worker/activation-after-registration.https.html" }, { - "path": "service-workers/service-worker/activation.https.html", - "url": "/service-workers/service-worker/activation.https.html" - }, - { "path": "service-workers/service-worker/active.https.html", "url": "/service-workers/service-worker/active.https.html" }, { "path": "service-workers/service-worker/appcache-ordering-main.https.html", "url": "/service-workers/service-worker/appcache-ordering-main.https.html" }, { "path": "service-workers/service-worker/claim-not-using-registration.https.html", "url": "/service-workers/service-worker/claim-not-using-registration.https.html" }, { "path": "service-workers/service-worker/claim-using-registration.https.html", "url": "/service-workers/service-worker/claim-using-registration.https.html" }, { - "path": "service-workers/service-worker/client-navigate.https.html", - "url": "/service-workers/service-worker/client-navigate.https.html" - }, - { "path": "service-workers/service-worker/clients-get-cross-origin.https.html", "url": "/service-workers/service-worker/clients-get-cross-origin.https.html" }, { "path": "service-workers/service-worker/clients-get.https.html", "url": "/service-workers/service-worker/clients-get.https.html" }, { @@ -29441,20 +29181,16 @@ "path": "service-workers/service-worker/clients-matchall-include-uncontrolled.https.html", "url": "/service-workers/service-worker/clients-matchall-include-uncontrolled.https.html" }, { "path": "service-workers/service-worker/clients-matchall.https.html", "url": "/service-workers/service-worker/clients-matchall.https.html" }, { - "path": "service-workers/service-worker/controller-on-disconnect.https.html", - "url": "/service-workers/service-worker/controller-on-disconnect.https.html" - }, - { "path": "service-workers/service-worker/controller-on-load.https.html", "url": "/service-workers/service-worker/controller-on-load.https.html" }, { "path": "service-workers/service-worker/controller-on-reload.https.html", "url": "/service-workers/service-worker/controller-on-reload.https.html" }, { @@ -30013,16 +29749,32 @@ "path": "shadow-dom/untriaged/user-interaction/active-element/test-002.html", "url": "/shadow-dom/untriaged/user-interaction/active-element/test-002.html" }, { "path": "shadow-dom/untriaged/user-interaction/editing/inheritance-of-content-editable-001.html", "url": "/shadow-dom/untriaged/user-interaction/editing/inheritance-of-content-editable-001.html" }, { + "path": "shadow-dom/untriaged/user-interaction/focus-navigation/test-001.html", + "url": "/shadow-dom/untriaged/user-interaction/focus-navigation/test-001.html" + }, + { + "path": "shadow-dom/untriaged/user-interaction/focus-navigation/test-002.html", + "url": "/shadow-dom/untriaged/user-interaction/focus-navigation/test-002.html" + }, + { + "path": "shadow-dom/untriaged/user-interaction/focus-navigation/test-003.html", + "url": "/shadow-dom/untriaged/user-interaction/focus-navigation/test-003.html" + }, + { + "path": "shadow-dom/untriaged/user-interaction/focus-navigation/test-004.html", + "url": "/shadow-dom/untriaged/user-interaction/focus-navigation/test-004.html" + }, + { "path": "shadow-dom/untriaged/user-interaction/ranges-and-selections/test-001.html", "url": "/shadow-dom/untriaged/user-interaction/ranges-and-selections/test-001.html" }, { "path": "shadow-dom/untriaged/user-interaction/ranges-and-selections/test-002.html", "url": "/shadow-dom/untriaged/user-interaction/ranges-and-selections/test-002.html" }, { @@ -30509,20 +30261,16 @@ "path": "webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html", "url": "/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html" }, { "path": "webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size.html", "url": "/webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size.html" }, { - "path": "webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation.html", - "url": "/webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation.html" - }, - { "path": "webdriver/interface.html", "url": "/webdriver/interface.html" }, { "path": "webgl/bufferSubData.html", "url": "/webgl/bufferSubData.html" }, { @@ -35245,34 +34993,34 @@ "path": "workers/constructors/Worker/AbstractWorker.onerror.html", "url": "/workers/constructors/Worker/AbstractWorker.onerror.html" }, { "path": "workers/constructors/Worker/Blob-url.html", "url": "/workers/constructors/Worker/Blob-url.html" }, { - "path": "workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker.js", - "url": "/workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker" + "path": "workers/constructors/Worker/DedicatedWorkerGlobalScope-members.html", + "url": "/workers/constructors/Worker/DedicatedWorkerGlobalScope-members.html" }, { "path": "workers/constructors/Worker/ctor-1.html", "url": "/workers/constructors/Worker/ctor-1.html" }, { "path": "workers/constructors/Worker/ctor-null.html", "url": "/workers/constructors/Worker/ctor-null.html" }, { "path": "workers/constructors/Worker/ctor-undefined.html", "url": "/workers/constructors/Worker/ctor-undefined.html" }, { - "path": "workers/constructors/Worker/expected-self-properties.worker.js", - "url": "/workers/constructors/Worker/expected-self-properties.worker" + "path": "workers/constructors/Worker/expected-self-properties.html", + "url": "/workers/constructors/Worker/expected-self-properties.html" }, { "path": "workers/constructors/Worker/no-arguments-ctor.html", "url": "/workers/constructors/Worker/no-arguments-ctor.html" }, { "path": "workers/constructors/Worker/resolve-empty-string.html", "url": "/workers/constructors/Worker/resolve-empty-string.html" @@ -35281,18 +35029,18 @@ "path": "workers/constructors/Worker/same-origin.html", "url": "/workers/constructors/Worker/same-origin.html" }, { "path": "workers/constructors/Worker/terminate.html", "url": "/workers/constructors/Worker/terminate.html" }, { - "path": "workers/constructors/Worker/unexpected-self-properties.worker.js", - "url": "/workers/constructors/Worker/unexpected-self-properties.worker" + "path": "workers/constructors/Worker/unexpected-self-properties.html", + "url": "/workers/constructors/Worker/unexpected-self-properties.html" }, { "path": "workers/constructors/Worker/unresolvable-url.html", "url": "/workers/constructors/Worker/unresolvable-url.html" }, { "path": "workers/constructors/Worker/use-base-url.html", "url": "/workers/constructors/Worker/use-base-url.html" @@ -36104,141 +35852,16 @@ "url": "/encoding/api-invalid-label.html" }, { "path": "encoding/single-byte-decoder.html", "timeout": "long", "url": "/encoding/single-byte-decoder.html" }, { - "path": "encrypted-media/clearkey-check-initdata-type.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-check-initdata-type.html" - }, - { - "path": "encrypted-media/clearkey-events.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-events.html" - }, - { - "path": "encrypted-media/clearkey-generate-request-disallowed-input.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-generate-request-disallowed-input.html" - }, - { - "path": "encrypted-media/clearkey-keystatuses-multiple-sessions.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-keystatuses-multiple-sessions.html" - }, - { - "path": "encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html" - }, - { - "path": "encrypted-media/clearkey-mp4-playback-persistent-usage-record.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-mp4-playback-persistent-usage-record.html" - }, - { - "path": "encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html" - }, - { - "path": "encrypted-media/clearkey-mp4-playback-temporary-events.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-mp4-playback-temporary-events.html" - }, - { - "path": "encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html" - }, - { - "path": "encrypted-media/clearkey-mp4-playback-temporary-multikey.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-mp4-playback-temporary-multikey.html" - }, - { - "path": "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-first.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-first.html" - }, - { - "path": "encrypted-media/clearkey-mp4-playback-temporary-two-videos.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-mp4-playback-temporary-two-videos.html" - }, - { - "path": "encrypted-media/clearkey-mp4-playback-temporary.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-mp4-playback-temporary.html" - }, - { - "path": "encrypted-media/clearkey-not-callable-after-createsession.html", - "timeout": "long", - "url": "/encrypted-media/clearkey-not-callable-after-createsession.html" - }, - { - "path": "encrypted-media/drm-check-initdata-type.html", - "timeout": "long", - "url": "/encrypted-media/drm-check-initdata-type.html" - }, - { - "path": "encrypted-media/drm-events.html", - "timeout": "long", - "url": "/encrypted-media/drm-events.html" - }, - { - "path": "encrypted-media/drm-generate-request-disallowed-input.html", - "timeout": "long", - "url": "/encrypted-media/drm-generate-request-disallowed-input.html" - }, - { - "path": "encrypted-media/drm-keystatuses-multiple-sessions.html", - "timeout": "long", - "url": "/encrypted-media/drm-keystatuses-multiple-sessions.html" - }, - { - "path": "encrypted-media/drm-mp4-playback-temporary-events.html", - "timeout": "long", - "url": "/encrypted-media/drm-mp4-playback-temporary-events.html" - }, - { - "path": "encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html", - "timeout": "long", - "url": "/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html" - }, - { - "path": "encrypted-media/drm-mp4-playback-temporary-multikey.html", - "timeout": "long", - "url": "/encrypted-media/drm-mp4-playback-temporary-multikey.html" - }, - { - "path": "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-first.html", - "timeout": "long", - "url": "/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-first.html" - }, - { - "path": "encrypted-media/drm-mp4-playback-temporary-two-videos.html", - "timeout": "long", - "url": "/encrypted-media/drm-mp4-playback-temporary-two-videos.html" - }, - { - "path": "encrypted-media/drm-mp4-playback-temporary.html", - "timeout": "long", - "url": "/encrypted-media/drm-mp4-playback-temporary.html" - }, - { - "path": "encrypted-media/drm-not-callable-after-createsession.html", - "timeout": "long", - "url": "/encrypted-media/drm-not-callable-after-createsession.html" - }, - { "path": "eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm", "timeout": "long", "url": "/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm" }, { "path": "eventsource/eventsource-constructor-non-same-origin.htm", "timeout": "long", "url": "/eventsource/eventsource-constructor-non-same-origin.htm" @@ -37541,17 +37164,20 @@ }, { "path": "webdriver/navigation.py", "url": "/webdriver/navigation.py" } ] }, "local_changes": { - "deleted": [], + "deleted": [ + "web-animations/interfaces/AnimationTimeline/idlharness.html", + "web-animations/interfaces/AnimationTimeline/document-timeline.html" + ], "deleted_reftests": {}, "items": { "reftest": { "html/semantics/grouping-content/the-ol-element/reversed-1a.html": [ { "path": "html/semantics/grouping-content/the-ol-element/reversed-1a.html", "references": [ [ @@ -37601,16 +37227,96 @@ }, "testharness": { "html/semantics/forms/the-form-element/form-submission-sandbox.html": [ { "path": "html/semantics/forms/the-form-element/form-submission-sandbox.html", "url": "/html/semantics/forms/the-form-element/form-submission-sandbox.html" } ] + }, + "testharness": { + "2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.NaN.html": [ + { + "path": "2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.NaN.html", + "url": "/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.NaN.html" + } + ], + "XMLHttpRequest/headers-normalize-response.htm": [ + { + "path": "XMLHttpRequest/headers-normalize-response.htm", + "url": "/XMLHttpRequest/headers-normalize-response.htm" + } + ], + "dom/events/AddEventListenerOptions-once.html": [ + { + "path": "dom/events/AddEventListenerOptions-once.html", + "url": "/dom/events/AddEventListenerOptions-once.html" + } + ], + "dom/lists/DOMTokenList-iteration.html": [ + { + "path": "dom/lists/DOMTokenList-iteration.html", + "url": "/dom/lists/DOMTokenList-iteration.html" + } + ], + "fetch/api/basic/request-referrer.html": [ + { + "path": "fetch/api/basic/request-referrer.html", + "url": "/fetch/api/basic/request-referrer.html" + } + ], + "fetch/api/policies/referrer-origin-when-cross-origin-worker.html": [ + { + "path": "fetch/api/policies/referrer-origin-when-cross-origin-worker.html", + "url": "/fetch/api/policies/referrer-origin-when-cross-origin-worker.html" + } + ], + "fetch/api/policies/referrer-origin-when-cross-origin.html": [ + { + "path": "fetch/api/policies/referrer-origin-when-cross-origin.html", + "url": "/fetch/api/policies/referrer-origin-when-cross-origin.html" + } + ], + "service-workers/service-worker/activation.https.html": [ + { + "path": "service-workers/service-worker/activation.https.html", + "url": "/service-workers/service-worker/activation.https.html" + } + ], + "service-workers/service-worker/client-navigate.https.html": [ + { + "path": "service-workers/service-worker/client-navigate.https.html", + "url": "/service-workers/service-worker/client-navigate.https.html" + } + ], + "service-workers/service-worker/controller-on-disconnect.https.html": [ + { + "path": "service-workers/service-worker/controller-on-disconnect.https.html", + "url": "/service-workers/service-worker/controller-on-disconnect.https.html" + } + ], + "web-animations/interfaces/DocumentTimeline/idlharness.html": [ + { + "path": "web-animations/interfaces/DocumentTimeline/idlharness.html", + "url": "/web-animations/interfaces/DocumentTimeline/idlharness.html" + } + ], + "web-animations/timing-model/timelines/default-document-timeline.html": [ + { + "path": "web-animations/timing-model/timelines/default-document-timeline.html", + "url": "/web-animations/timing-model/timelines/default-document-timeline.html" + } + ], + "webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation.html": [ + { + "path": "webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation.html", + "url": "/webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation.html" + } + ] } }, "reftest_nodes": { "html/semantics/grouping-content/the-ol-element/reversed-1a.html": [ { "path": "html/semantics/grouping-content/the-ol-element/reversed-1a.html", "references": [ [ @@ -43992,12 +43698,12 @@ "/webvtt/rendering/cues-with-video/processing-model/too_many_cues_wrapped-ref.html", "==" ] ], "url": "/webvtt/rendering/cues-with-video/processing-model/too_many_cues_wrapped.html" } ] }, - "rev": "7a6a5c9f436730f86123e6f48a44bf1b7ba5654f", + "rev": "6744ac43d76207bdd1ececa4b91c9bfeef3ad522", "url_base": "/", "version": 3 }
new file mode 100644 --- /dev/null +++ b/testing/web-platform/meta/WebCryptoAPI/digest/digest.worker.js.ini @@ -0,0 +1,50 @@ +[digest.worker] + type: testharness + [AES-GCM with empty] + expected: FAIL + + [RSA-OAEP with empty] + expected: FAIL + + [PBKDF2 with empty] + expected: FAIL + + [AES-KW with empty] + expected: FAIL + + [AES-GCM with short] + expected: FAIL + + [RSA-OAEP with short] + expected: FAIL + + [PBKDF2 with short] + expected: FAIL + + [AES-KW with short] + expected: FAIL + + [AES-GCM with medium] + expected: FAIL + + [RSA-OAEP with medium] + expected: FAIL + + [PBKDF2 with medium] + expected: FAIL + + [AES-KW with medium] + expected: FAIL + + [AES-GCM with long] + expected: FAIL + + [RSA-OAEP with long] + expected: FAIL + + [PBKDF2 with long] + expected: FAIL + + [AES-KW with long] + expected: FAIL +
new file mode 100644 --- /dev/null +++ b/testing/web-platform/meta/WebCryptoAPI/digest/test_digest.html.ini @@ -0,0 +1,50 @@ +[test_digest.html] + type: testharness + [AES-GCM with empty] + expected: FAIL + + [RSA-OAEP with empty] + expected: FAIL + + [PBKDF2 with empty] + expected: FAIL + + [AES-KW with empty] + expected: FAIL + + [AES-GCM with short] + expected: FAIL + + [RSA-OAEP with short] + expected: FAIL + + [PBKDF2 with short] + expected: FAIL + + [AES-KW with short] + expected: FAIL + + [AES-GCM with medium] + expected: FAIL + + [RSA-OAEP with medium] + expected: FAIL + + [PBKDF2 with medium] + expected: FAIL + + [AES-KW with medium] + expected: FAIL + + [AES-GCM with long] + expected: FAIL + + [RSA-OAEP with long] + expected: FAIL + + [PBKDF2 with long] + expected: FAIL + + [AES-KW with long] + expected: FAIL +
--- a/testing/web-platform/meta/WebCryptoAPI/idlharness.worker.js.ini +++ b/testing/web-platform/meta/WebCryptoAPI/idlharness.worker.js.ini @@ -22,11 +22,8 @@ expected: FAIL [CryptoKey interface: attribute algorithm] expected: FAIL [CryptoKey interface: attribute usages] expected: FAIL - [ArrayBuffer interface: existence and properties of interface object] - expected: FAIL -
--- a/testing/web-platform/meta/XMLHttpRequest/send-redirect-post-upload.htm.ini +++ b/testing/web-platform/meta/XMLHttpRequest/send-redirect-post-upload.htm.ini @@ -1,4 +1,8 @@ [send-redirect-post-upload.htm] type: testharness disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1290916 + [XMLHttpRequest: The send() method: POSTing to URL that redirects (307)] + expected: + if not debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86") and (bits == 32): FAIL + if not debug and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
--- a/testing/web-platform/meta/custom-elements/custom-elements-registry/define.html.ini +++ b/testing/web-platform/meta/custom-elements/custom-elements-registry/define.html.ini @@ -214,29 +214,8 @@ expected: FAIL [If constructor.prototype.attributeChangedCallback is object, should throw a TypeError] expected: FAIL [If constructor.prototype.attributeChangedCallback is integer, should throw a TypeError] expected: FAIL - [If constructor is HTMLElement, should throw a TypeError] - expected: FAIL - - [If constructor is HTMLButtonElement, should throw a TypeError] - expected: FAIL - - [If constructor is HTMLImageElement, should throw a TypeError] - expected: FAIL - - [If constructor is HTMLMediaElement, should throw a TypeError] - expected: FAIL - - [If constructor is Image, should throw a TypeError] - expected: FAIL - - [If constructor is Audio, should throw a TypeError] - expected: FAIL - - [If constructor is Option, should throw a TypeError] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-async-creation-with-gc.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[encrypted-media-async-creation-with-gc.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-async-setcert-with-gc.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encrypted-media-async-setcert-with-gc.html] - type: testharness - expected: ERROR - [Test asynchronous setServerCertificate while running garbage collection.] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-keystatuses-multiple-sessions.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[encrypted-media-keystatuses-multiple-sessions.html] - type: testharness - [Verify MediaKeySession.keyStatuses with multiple sessions.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-keystatuses-multiple-updates.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[encrypted-media-keystatuses-multiple-updates.html] - type: testharness - [Verify MediaKeySession.keyStatuses with multiple updates.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-keystatuses.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[encrypted-media-keystatuses.html] - type: testharness - [Verify MediaKeySession.keyStatuses.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-lifetime-mediakeys-with-session.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[encrypted-media-lifetime-mediakeys-with-session.html] - type: testharness - [MediaKeys lifetime with session] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-lifetime-mediakeys.html.ini +++ /dev/null @@ -1,8 +0,0 @@ -[encrypted-media-lifetime-mediakeys.html] - type: testharness - [Creating and destroying MediaKeys does not crash] - expected: TIMEOUT - - [MediaKeys is not collected as long as we have a reference] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-lifetime-mediakeysession-reference.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[encrypted-media-lifetime-mediakeysession-reference.html] - type: testharness - [MediaKeySession lifetime without release()] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-lifetime-mediakeysession-release-noreference.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[encrypted-media-lifetime-mediakeysession-release-noreference.html] - type: testharness - [MediaKeySession lifetime after release() without references] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-lifetime-mediakeysession-release.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[encrypted-media-lifetime-mediakeysession-release.html] - type: testharness - [MediaKeySession lifetime after release()] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-lifetime-multiple-mediakeys.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[encrypted-media-lifetime-multiple-mediakeys.html] - type: testharness - [Multiple MediaKeys lifetime] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-lifetime-reload.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encrypted-media-lifetime-reload.html] - type: testharness - expected: TIMEOUT - [Reloading during encrypted media playback.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-onencrypted.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encrypted-media-onencrypted.html] - type: testharness - expected: TIMEOUT - [encrypted fired on encrypted media file.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-playback-encrypted-and-clear-sources.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encrypted-media-playback-encrypted-and-clear-sources.html] - type: testharness - expected: TIMEOUT - [Multiple playbacks alternating between encrypted and clear sources.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-playback-multiple-sessions.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encrypted-media-playback-multiple-sessions.html] - type: testharness - expected: TIMEOUT - [Playback using Clear Key key system with multiple sessions.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-playback-setmediakeys-after-src.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encrypted-media-playback-setmediakeys-after-src.html] - type: testharness - expected: TIMEOUT - [Playback using Clear Key key system, calling setMediaKeys() after setting src attribute.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-playback-setmediakeys-before-src.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encrypted-media-playback-setmediakeys-before-src.html] - type: testharness - expected: TIMEOUT - [Playback using Clear Key key system, calling setMediaKeys() before setting src attribute.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-playback-two-videos.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encrypted-media-playback-two-videos.html] - type: testharness - expected: TIMEOUT - [Play two videos at the same time.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-reset-src-after-setmediakeys.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encrypted-media-reset-src-after-setmediakeys.html] - type: testharness - expected: TIMEOUT - [Reset src after setMediaKeys().] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-setmediakeys-again-after-playback.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encrypted-media-setmediakeys-again-after-playback.html] - type: testharness - expected: TIMEOUT - [setMediaKeys() again after playback] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-setmediakeys-again-after-resetting-src.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encrypted-media-setmediakeys-again-after-resetting-src.html] - type: testharness - expected: TIMEOUT - [setMediaKeys() again after resetting src] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-setmediakeys-at-same-time.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[encrypted-media-setmediakeys-at-same-time.html] - type: testharness - expected: TIMEOUT - [Set MediaKeys multiple times in parallel.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-different-mediakeys.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[encrypted-media-setmediakeys-multiple-times-with-different-mediakeys.html] - type: testharness - [setMediaKeys() multiple times with different MediaKeys.] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-syntax.html.ini +++ /dev/null @@ -1,29 +0,0 @@ -[encrypted-media-syntax.html] - type: testharness - [Test Navigator.requestMediaKeySystemAccess() exceptions.] - expected: TIMEOUT - - [Test MediaKeys createSession() exceptions.] - expected: TIMEOUT - - [Test MediaKeys generateRequest() exceptions.] - expected: TIMEOUT - - [Test MediaKeys load() exceptions.] - expected: TIMEOUT - - [Test MediaKeySession update() exceptions.] - expected: TIMEOUT - - [Test MediaKeySession update().] - expected: TIMEOUT - - [Test MediaKeySession close().] - expected: TIMEOUT - - [Test MediaKeys setServerCertificate() exceptions.] - expected: TIMEOUT - - [Test MediaKeys setServerCertificate().] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-update-disallowed-input.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[encrypted-media-update-disallowed-input.html] - type: testharness - [update() with response longer than 64Kb characters.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/Google/encrypted-media-waiting-for-a-key.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[encrypted-media-waiting-for-a-key.html] - type: testharness - [Waiting for a key.] - expected: TIMEOUT -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-check-initdata-type.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[clearkey-check-initdata-type.html] - type: testharness - expected: ERROR - [org.w3.clearkey support for "webm".] - expected: FAIL - - [org.w3.clearkey support for "cenc".] - expected: FAIL - - [org.w3.clearkey support for "keyids".] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-events.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[clearkey-events.html] - type: testharness - expected: ERROR - [org.w3.clearkey, events] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-generate-request-disallowed-input.html.ini +++ /dev/null @@ -1,24 +0,0 @@ -[clearkey-generate-request-disallowed-input.html] - type: testharness - expected: ERROR - [org.w3.clearkey: generateRequest() with webm initData longer than 64Kb characters.] - expected: FAIL - - [org.w3.clearkey: generateRequest() with cenc initData longer than 64Kb characters.] - expected: FAIL - - [org.w3.clearkey: generateRequest() with keyids initData longer than 64Kb characters.] - expected: FAIL - - [org.w3.clearkey: generateRequest() with invalid pssh data.] - expected: FAIL - - [org.w3.clearkey: generateRequest() with non pssh data.] - expected: FAIL - - [org.w3.clearkey: generateRequest() with too short key ID.] - expected: FAIL - - [org.w3.clearkey: generateRequest() with too long key ID.] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-keystatuses-multiple-sessions.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[clearkey-keystatuses-multiple-sessions.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[clearkey-mp4-playback-persistent-usage-record-events.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[clearkey-mp4-playback-persistent-usage-record.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[clearkey-mp4-playback-retrieve-persistent-usage-record.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-events.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[clearkey-mp4-playback-temporary-events.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[clearkey-mp4-playback-temporary-multikey-sequential.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[clearkey-mp4-playback-temporary-multikey.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-first.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[clearkey-mp4-playback-temporary-setMediaKeys-first.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-two-videos.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[clearkey-mp4-playback-temporary-two-videos.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[clearkey-mp4-playback-temporary.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/clearkey-not-callable-after-createsession.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[clearkey-not-callable-after-createsession.html] - type: testharness - expected: ERROR - [org.w3.clearkey: Update() immediately after CreateSession().] - expected: FAIL - - [org.w3.clearkey: Close() immediately after CreateSession().] - expected: FAIL - - [org.w3.clearkey: Remove() immediately after CreateSession().] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/drm-check-initdata-type.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[drm-check-initdata-type.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/drm-events.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[drm-events.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/drm-generate-request-disallowed-input.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[drm-generate-request-disallowed-input.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/drm-keystatuses-multiple-sessions.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[drm-keystatuses-multiple-sessions.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-events.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[drm-mp4-playback-temporary-events.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[drm-mp4-playback-temporary-multikey-sequential.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[drm-mp4-playback-temporary-multikey.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-first.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[drm-mp4-playback-temporary-setMediaKeys-first.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-two-videos.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[drm-mp4-playback-temporary-two-videos.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[drm-mp4-playback-temporary.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/drm-not-callable-after-createsession.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[drm-not-callable-after-createsession.html] - type: testharness - expected: ERROR
deleted file mode 100644 --- a/testing/web-platform/meta/encrypted-media/idlharness.html.ini +++ /dev/null @@ -1,29 +0,0 @@ -[idlharness.html] - type: testharness - [HTMLMediaElement interface: attribute onwaitingforkey] - expected: FAIL - - [MediaKeySession interface: existence and properties of interface object] - expected: FAIL - - [MediaKeySession interface: existence and properties of interface prototype object] - expected: FAIL - - [MediaKeySession interface: attribute onkeystatuseschange] - expected: FAIL - - [MediaKeySession interface: attribute onmessage] - expected: FAIL - - [MediaKeyMessageEvent interface: existence and properties of interface object] - expected: FAIL - - [MediaKeyMessageEvent interface: existence and properties of interface prototype object] - expected: FAIL - - [MediaEncryptedEvent interface: existence and properties of interface object] - expected: FAIL - - [MediaEncryptedEvent interface: existence and properties of interface prototype object] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/fetch/api/cors/cors-cookies-worker.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[cors-cookies-worker.html] - type: testharness - [Include mode: remote cookies are not sent with other remote request] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/fetch/api/cors/cors-cookies.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[cors-cookies.html] - type: testharness - [Include mode: remote cookies are not sent with other remote request] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/fetch/api/cors/cors-preflight-referrer-worker.html.ini +++ /dev/null @@ -1,17 +0,0 @@ -[cors-preflight-referrer-worker.html] - type: testharness - [Referrer policy: no-referrer] - expected: FAIL - - [Referrer policy: ""] - expected: FAIL - - [Referrer policy: origin] - expected: FAIL - - [Referrer policy: origin-when-cross-origin] - expected: FAIL - - [Referrer policy: unsafe-url] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/fetch/api/cors/cors-preflight-referrer.html.ini +++ /dev/null @@ -1,17 +0,0 @@ -[cors-preflight-referrer.html] - type: testharness - [Referrer policy: no-referrer] - expected: FAIL - - [Referrer policy: ""] - expected: FAIL - - [Referrer policy: origin] - expected: FAIL - - [Referrer policy: origin-when-cross-origin] - expected: FAIL - - [Referrer policy: unsafe-url] - expected: FAIL -
new file mode 100644 --- /dev/null +++ b/testing/web-platform/meta/fetch/api/cors/cors-preflight-worker.html.ini @@ -0,0 +1,3 @@ +[cors-preflight-worker.html] + type: testharness + expected: TIMEOUT
--- a/testing/web-platform/meta/html/dom/interfaces.html.ini +++ b/testing/web-platform/meta/html/dom/interfaces.html.ini @@ -1901,16 +1901,19 @@ expected: FAIL [Navigator interface: calling unregisterContentHandler(DOMString,DOMString) on window.navigator with too few arguments must throw TypeError] expected: FAIL [Navigator interface: window.navigator must inherit property "yieldForStorageUpdates" with the proper type (17)] expected: FAIL + [Navigator interface: window.navigator must inherit property "javaEnabled" with the proper type (20)] + expected: FAIL + [PortCollection interface: existence and properties of interface object] expected: FAIL [PortCollection interface object length] expected: FAIL [PortCollection interface: existence and properties of interface prototype object] expected: FAIL @@ -1925,16 +1928,19 @@ expected: FAIL [PortCollection interface: operation clear()] expected: FAIL [PortCollection interface: operation iterate(PortCollectionCallback)] expected: FAIL + [WorkerGlobalScope interface: existence and properties of interface object] + expected: FAIL + [WorkerGlobalScope interface object length] expected: FAIL [WorkerGlobalScope interface: existence and properties of interface prototype object] expected: FAIL [WorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL @@ -1988,31 +1994,37 @@ expected: FAIL [WorkerGlobalScope interface: operation btoa(DOMString)] expected: FAIL [WorkerGlobalScope interface: operation atob(DOMString)] expected: FAIL + [DedicatedWorkerGlobalScope interface: existence and properties of interface object] + expected: FAIL + [DedicatedWorkerGlobalScope interface object length] expected: FAIL [DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object] expected: FAIL [DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL [DedicatedWorkerGlobalScope interface: operation postMessage(any,[object Object\])] expected: FAIL [DedicatedWorkerGlobalScope interface: attribute onmessage] expected: FAIL + [SharedWorkerGlobalScope interface: existence and properties of interface object] + expected: FAIL + [SharedWorkerGlobalScope interface object length] expected: FAIL [SharedWorkerGlobalScope interface: existence and properties of interface prototype object] expected: FAIL [SharedWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL @@ -2021,16 +2033,19 @@ expected: FAIL [SharedWorkerGlobalScope interface: attribute applicationCache] expected: FAIL [SharedWorkerGlobalScope interface: attribute onconnect] expected: FAIL + [WorkerNavigator interface: existence and properties of interface object] + expected: FAIL + [WorkerNavigator interface object length] expected: FAIL [WorkerNavigator interface: existence and properties of interface prototype object] expected: FAIL [WorkerNavigator interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL @@ -2060,16 +2075,19 @@ expected: FAIL [WorkerNavigator interface: attribute languages] expected: FAIL [WorkerNavigator interface: attribute onLine] expected: FAIL + [WorkerLocation interface: existence and properties of interface object] + expected: FAIL + [WorkerLocation interface object length] expected: FAIL [WorkerLocation interface: existence and properties of interface prototype object] expected: FAIL [WorkerLocation interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL @@ -3023,11 +3041,8 @@ expected: FAIL [HTMLInputElement interface: createInput("button") must inherit property "valueHigh" with the proper type (38)] expected: FAIL [HTMLInputElement interface: createInput("button") must inherit property "labels" with the proper type (48)] expected: FAIL - [TrackEvent interface: new TrackEvent("addtrack", {track:document.createElement("track").track}) must inherit property "track" with the proper type (0)] - expected: FAIL -
--- a/testing/web-platform/meta/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini +++ b/testing/web-platform/meta/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini @@ -1,12 +1,8 @@ [viewport-change.html] type: testharness [picture: same URL in source (max-width:500px) and img, resize to wide] - expected: - if debug and e10s and (os == "win") and (version == "6.2.9200") and (processor == "x86_64") and (bits == 64): PASS - FAIL + expected: FAIL [picture: same URL in source (max-width:500px) and img, resize to narrow] - expected: - if debug and e10s and (os == "win") and (version == "6.2.9200") and (processor == "x86_64") and (bits == 64): PASS - FAIL + expected: FAIL
deleted file mode 100644 --- a/testing/web-platform/meta/html/semantics/embedded-content/the-img-element/invalid-src.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[invalid-src.html] - type: testharness - expected: TIMEOUT - [Loading a non-parsing URL as an image should silently fail; triggering appropriate events] - expected: TIMEOUT -
--- a/testing/web-platform/meta/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html.ini +++ b/testing/web-platform/meta/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html.ini @@ -19,14 +19,8 @@ expected: FAIL [textarea direction of setSelectionRange(0,1,"BACKWARD")] expected: FAIL [textarea direction of setSelectionRange(0,1)] expected: FAIL - [input setSelectionRange(1,-1)] - expected: FAIL - - [input setSelectionRange(-1,1)] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/html/semantics/interactive-elements/the-dialog-element/dialog-open.html.ini +++ /dev/null @@ -1,8 +0,0 @@ -[dialog-open.html] - type: testharness - [On getting, the IDL open attribute must return true if the content open attribute is set, and false if it is absent.] - expected: FAIL - - [On setting, the content open attribute must be removed if the IDL open attribute is set to false, and must be present if the IDL open attribute is set to true.] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/script-charset-03.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[script-charset-03.html] - type: testharness - [Script changing @charset] - expected: FAIL -
--- a/testing/web-platform/meta/mozilla-sync +++ b/testing/web-platform/meta/mozilla-sync @@ -1,1 +1,1 @@ -41a1810c95089690ccfc3c1ea48b2ee82cd725b0 \ No newline at end of file +c16304ae0ddedde913c21f64f7a037311a702c6a \ No newline at end of file
deleted file mode 100644 --- a/testing/web-platform/meta/pointerevents/pointerevent_suppress_compat_events_on_click.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[pointerevent_suppress_compat_events_on_click.html] - type: testharness - expected: TIMEOUT - [Suppress compat mouse events on click] - expected: NOTRUN -
deleted file mode 100644 --- a/testing/web-platform/meta/pointerevents/pointerevent_suppress_compat_events_on_drag_mouse.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[pointerevent_suppress_compat_events_on_drag_mouse.html] - type: testharness - expected: TIMEOUT - [Suppress compat mouse events on drag] - expected: NOTRUN -
new file mode 100644 --- /dev/null +++ b/testing/web-platform/meta/shadow-dom/untriaged/user-interaction/focus-navigation/test-001.html.ini @@ -0,0 +1,5 @@ +[test-001.html] + type: testharness + [A_07_02_01_T01] + expected: FAIL +
new file mode 100644 --- /dev/null +++ b/testing/web-platform/meta/shadow-dom/untriaged/user-interaction/focus-navigation/test-002.html.ini @@ -0,0 +1,8 @@ +[test-002.html] + type: testharness + [A_07_02_02_T01] + expected: FAIL + + [A_07_02_02_T02] + expected: FAIL +
new file mode 100644 --- /dev/null +++ b/testing/web-platform/meta/shadow-dom/untriaged/user-interaction/focus-navigation/test-003.html.ini @@ -0,0 +1,8 @@ +[test-003.html] + type: testharness + [A_07_02_03_T01] + expected: FAIL + + [A_07_02_03_T02] + expected: FAIL +
new file mode 100644 --- /dev/null +++ b/testing/web-platform/meta/shadow-dom/untriaged/user-interaction/focus-navigation/test-004.html.ini @@ -0,0 +1,14 @@ +[test-004.html] + type: testharness + [A_07_02_04_T01] + expected: FAIL + + [A_07_02_04_T02] + expected: FAIL + + [A_07_02_04_T03] + expected: FAIL + + [A_07_02_04_T04] + expected: FAIL +
--- a/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini +++ b/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini @@ -438,9 +438,8 @@ [Parsing: <http:> against <https://example.org/foo/bar>] expected: FAIL [Parsing: <http://example.com/foo/%2e%2> against <about:blank>] expected: FAIL [Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>] expected: FAIL -
--- a/testing/web-platform/meta/url/a-element.html.ini +++ b/testing/web-platform/meta/url/a-element.html.ini @@ -447,9 +447,8 @@ [Parsing: <http:> against <https://example.org/foo/bar>] expected: FAIL [Parsing: <http://example.com/foo/%2e%2> against <about:blank>] expected: FAIL [Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>] expected: FAIL -
--- a/testing/web-platform/meta/url/url-constructor.html.ini +++ b/testing/web-platform/meta/url/url-constructor.html.ini @@ -282,9 +282,8 @@ [Parsing: <http://www/foo%2Ehtml> against <about:blank>] expected: FAIL [Parsing: <http://example.com/foo/%2e%2> against <about:blank>] expected: FAIL [Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>] expected: FAIL -
--- a/testing/web-platform/meta/web-animations/interfaces/Animatable/animate.html.ini +++ b/testing/web-platform/meta/web-animations/interfaces/Animatable/animate.html.ini @@ -31,11 +31,8 @@ [Element.animate() accepts a two property keyframe sequence where one property is missing from the first keyframe] expected: FAIL bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1216844 [Element.animate() accepts a two property keyframe sequence where one property is missing from the last keyframe] expected: FAIL bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1216844 - [Element.animate() accepts a single keyframe sequence with string offset] - expected: FAIL -
--- a/testing/web-platform/meta/web-animations/interfaces/KeyframeEffect/constructor.html.ini +++ b/testing/web-platform/meta/web-animations/interfaces/KeyframeEffect/constructor.html.ini @@ -75,14 +75,8 @@ [a KeyframeEffectReadOnly can be constructed with a two property keyframe sequence where one property is missing from the last keyframe] expected: FAIL bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1216844 [a KeyframeEffectReadOnly constructed with a two property keyframe sequence where one property is missing from the last keyframe roundtrips] expected: FAIL bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1216844 - [a KeyframeEffectReadOnly can be constructed with a single keyframe sequence with string offset] - expected: FAIL - - [a KeyframeEffectReadOnly constructed with a single keyframe sequence with string offset roundtrips] - expected: FAIL -
deleted file mode 100644 --- a/testing/web-platform/meta/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument.html.ini +++ /dev/null @@ -1,8 +0,0 @@ -[processing-a-keyframes-argument.html] - type: testharness - [Equivalent property indexed and sequenced keyframes: two properties with one value] - expected: FAIL - - [Equivalent property indexed and sequenced keyframes: same offset applied to all keyframes] - expected: FAIL -
--- a/testing/web-platform/meta/web-animations/interfaces/KeyframeEffect/setKeyframes.html.ini +++ b/testing/web-platform/meta/web-animations/interfaces/KeyframeEffect/setKeyframes.html.ini @@ -29,11 +29,8 @@ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1216844 [Keyframes can be replaced with a one property one keyframe sequence] expected: FAIL [Keyframes can be replaced with a single keyframe sequence with omitted offsets] expected: FAIL - [Keyframes can be replaced with a single keyframe sequence with string offset] - expected: FAIL -
new file mode 100644 --- /dev/null +++ b/testing/web-platform/meta/workers/constructors/Worker/expected-self-properties.html.ini @@ -0,0 +1,5 @@ +[expected-self-properties.html] + type: testharness + [expected interface objects/constructors] + expected: FAIL +
deleted file mode 100644 --- a/testing/web-platform/meta/workers/constructors/Worker/expected-self-properties.worker.js.ini +++ /dev/null @@ -1,8 +0,0 @@ -[expected-self-properties.worker] - type: testharness - [existence of EventSource] - expected: FAIL - - [existence of SharedWorker] - expected: FAIL -
--- a/testing/web-platform/tests/2dcontext/tools/gentest.py +++ b/testing/web-platform/tests/2dcontext/tools/gentest.py @@ -123,28 +123,28 @@ def expand_nonfinite(method, argstr, tai return '\n'.join('%s(%s)%s' % (method, ', '.join(c), tail) for c in calls) # Run with --test argument to run unit tests if len(sys.argv) > 1 and sys.argv[1] == '--test': import doctest doctest.testmod() sys.exit() -templates = yaml.load(open('templates.yaml', "r").read()) -name_mapping = yaml.load(open('name2dir.yaml', "r").read()) +templates = yaml.load(open('templates.yaml').read()) +name_mapping = yaml.load(open('name2dir.yaml').read()) spec_assertions = [] -for s in yaml.load(open('spec.yaml', "r").read())['assertions']: +for s in yaml.load(open('spec.yaml').read())['assertions']: if 'meta' in s: eval(compile(s['meta'], '<meta spec assertion>', 'exec'), {}, {'assertions':spec_assertions}) else: spec_assertions.append(s) tests = [] -for t in sum([ yaml.load(open(f, "r").read()) for f in ['tests.yaml', 'tests2d.yaml', 'tests2dtext.yaml']], []): +for t in sum([ yaml.load(open(f).read()) for f in ['tests.yaml', 'tests2d.yaml', 'tests2dtext.yaml']], []): if 'DISABLED' in t: continue if 'meta' in t: eval(compile(t['meta'], '<meta test>', 'exec'), {}, {'tests':tests}) else: tests.append(t) category_names = [] @@ -538,17 +538,17 @@ def write_results(): for item in category_contents_all['.']: results[item] = {} f = open('%s/results.html' % MISCOUTPUTDIR, 'w') f.write(templates['results']) if not os.path.exists('results.yaml'): print "Can't find results.yaml" else: - for resultset in yaml.load(open('results.yaml', "r").read()): + for resultset in yaml.load(open('results.yaml').read()): #title = "%s (%s)" % (resultset['ua'], resultset['time']) title = resultset['name'] #assert title not in uas # don't allow repetitions if title not in uas: uas.append(title) uastrings[title] = resultset['ua'] else: assert uastrings[title] == resultset['ua']
--- a/testing/web-platform/tests/2dcontext/tools/specextract.py +++ b/testing/web-platform/tests/2dcontext/tools/specextract.py @@ -4,17 +4,17 @@ import html5lib.treebuilders.dom # Expected use: # curl --compressed http://www.whatwg.org/specs/web-apps/current-work/ >current-work # python specextract.py # # Generates current-work-canvas.xhtml, for use by gentest.py to create the annotated spec document def extract(): parser = html5lib.html5parser.HTMLParser(tree=html5lib.treebuilders.dom.TreeBuilder) - doc = parser.parse(open('current-work', "r"), encoding='utf-8') + doc = parser.parse(open('current-work'), encoding='utf-8') head = doc.getElementsByTagName('head')[0] for n in head.childNodes: if n.tagName == 'script': head.removeChild(n) header = doc.getElementsByTagName('header')[0] #thecanvas = doc.getElementById('the-canvas') # doesn't work (?!)
--- a/testing/web-platform/tests/FileAPI/idlharness.idl +++ b/testing/web-platform/tests/FileAPI/idlharness.idl @@ -74,18 +74,8 @@ interface FileReader: EventTarget { partial interface URL { static DOMString createObjectURL(Blob blob); static DOMString createFor(Blob blob); static void revokeObjectURL(DOMString url); }; - -[Constructor, Exposed=Worker] -interface FileReaderSync { - - // Synchronously return strings - - ArrayBuffer readAsArrayBuffer(Blob blob); - DOMString readAsText(Blob blob, optional DOMString label); - DOMString readAsDataURL(Blob blob); -};
--- a/testing/web-platform/tests/FileAPI/idlharness.worker.js +++ b/testing/web-platform/tests/FileAPI/idlharness.worker.js @@ -13,17 +13,30 @@ request.onload = function() { idl_array.add_untested_idls("interface ArrayBuffer {};"); idl_array.add_untested_idls("interface ArrayBufferView {};"); idl_array.add_untested_idls("interface URL {};"); idl_array.add_untested_idls("interface EventTarget {};"); idl_array.add_untested_idls("interface Event {};"); idl_array.add_untested_idls("[TreatNonCallableAsNull] callback EventHandlerNonNull = any (Event event);"); idl_array.add_untested_idls("typedef EventHandlerNonNull? EventHandler;"); + + var worker_idls = + '[Constructor, Exposed=Worker]\n' + + 'interface FileReaderSync {\n' + + '\n' + + ' // Synchronously return strings\n' + + '\n' + + ' ArrayBuffer readAsArrayBuffer(Blob blob);\n' + + ' DOMString readAsText(Blob blob, optional DOMString label);\n' + + ' DOMString readAsDataURL(Blob blob);\n' + + '};'; + idl_array.add_idls(idls); + idl_array.add_idls(worker_idls); idl_array.add_objects({ Blob: ['new Blob(["TEST"])'], File: ['new File(["myFileBits"], "myFileName")'], FileReader: ['new FileReader()'], FileReaderSync: ['new FileReaderSync()'] });
--- a/testing/web-platform/tests/WebCryptoAPI/digest/digest.js +++ b/testing/web-platform/tests/WebCryptoAPI/digest/digest.js @@ -103,17 +103,17 @@ function run_test() { Object.keys(sourceData).forEach(function(size) { badNames.forEach(function(badName) { promise_test(function(test) { var promise = subtle.digest({name: badName}, sourceData[size]) .then(function(result) { assert_unreached("digest() should not have worked for " + alg + ":" + size); }, function(err) { - assert_equals(err.name, "NotSupportedError", "Bad algorithm name should cause NotSupportedError") + assert_equals(err.message, "OperationError", "Bad algorithm name should cause OperationError") }); return promise; }, badName + " with " + size); }); });
deleted file mode 100644 --- a/testing/web-platform/tests/XMLHttpRequest/XMLHttpRequest-withCredentials.any.js +++ /dev/null @@ -1,40 +0,0 @@ -test(function() { - var client = new XMLHttpRequest() - assert_false(client.withCredentials, "withCredentials defaults to false") - client.withCredentials = true - assert_true(client.withCredentials, "is true after setting") -}, "default value is false, set value is true") - -test(function() { - var client = new XMLHttpRequest() - client.open("GET", "resources/delay.py?ms=1000", true) - client.withCredentials = true - assert_true(client.withCredentials, "set in OPEN state") -}, "can also be set in OPEN state") - -test(function() { - var client = new XMLHttpRequest() - client.open("GET", "resources/delay.py?ms=1000", false) - client.withCredentials = true - assert_true(client.withCredentials, "set in OPEN state") -}, "setting on synchronous XHR") - -async_test(function() { - var client = new XMLHttpRequest() - client.open("GET", "resources/delay.py?ms=1000") - client.send() - assert_throws("InvalidStateError", function() { client.withCredentials = true }) - client.onreadystatechange = this.step_func(function() { - assert_throws("InvalidStateError", function() { client.withCredentials = true }) - if (client.readyState === 4) { - this.done() - } - }) -}, "setting withCredentials when not in UNSENT, OPENED state (asynchronous)") - -test(function() { - var client = new XMLHttpRequest() - client.open("GET", "resources/delay.py?ms=1000", false) - client.send(); - assert_throws("InvalidStateError", function() { client.withCredentials = true }) -}, "setting withCredentials when in DONE state (synchronous)")
new file mode 100644 --- /dev/null +++ b/testing/web-platform/tests/XMLHttpRequest/XMLHttpRequest-withCredentials.html @@ -0,0 +1,13 @@ +<!doctype html> +<meta charset=utf-8> +<title>XMLHttpRequest#withCredentials</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src=XMLHttpRequest-withCredentials.js></script> +<link rel="help" href="https://xhr.spec.whatwg.org/#the-withcredentials-attribute" + data-tested-assertations="following::ol/li[1] following::ol/li[2] + following::ol/li[3] following::ol/li[4]"> +<div id="log"></div> +<script> +test_withCredentials(false) +</script>
new file mode 100644 --- /dev/null +++ b/testing/web-platform/tests/XMLHttpRequest/XMLHttpRequest-withCredentials.js @@ -0,0 +1,42 @@ +function test_withCredentials(worker) { + test(function() { + var client = new XMLHttpRequest() + assert_false(client.withCredentials, "withCredentials defaults to false") + client.withCredentials = true + assert_true(client.withCredentials, "is true after setting") + }, "default value is false, set value is true") + + test(function() { + var client = new XMLHttpRequest() + client.open("GET", "resources/delay.py?ms=1000", true) + client.withCredentials = true + assert_true(client.withCredentials, "set in OPEN state") + }, "can also be set in OPEN state") + + test(function() { + var client = new XMLHttpRequest() + client.open("GET", "resources/delay.py?ms=1000", false) + client.withCredentials = true + assert_true(client.withCredentials, "set in OPEN state") + }, "setting on synchronous XHR") + + async_test(function() { + var client = new XMLHttpRequest() + client.open("GET", "resources/delay.py?ms=1000") + client.send() + assert_throws("InvalidStateError", function() { client.withCredentials = true }) + client.onreadystatechange = this.step_func(function() { + assert_throws("InvalidStateError", function() { client.withCredentials = true }) + if (client.readyState === 4) { + this.done() + } + }) + }, "setting withCredentials when not in UNSENT, OPENED state (asynchronous)") + + test(function() { + var client = new XMLHttpRequest() + client.open("GET", "resources/delay.py?ms=1000", false) + client.send(); + assert_throws("InvalidStateError", function() { client.withCredentials = true }) + }, "setting withCredentials when in DONE state (synchronous)") +}
new file mode 100644 --- /dev/null +++ b/testing/web-platform/tests/XMLHttpRequest/XMLHttpRequest-withCredentials.worker.js @@ -0,0 +1,4 @@ +importScripts("/resources/testharness.js") +importScripts("XMLHttpRequest-withCredentials.js") +test_withCredentials(true); +done()
--- a/testing/web-platform/tests/XMLHttpRequest/open-url-multi-window.htm +++ b/testing/web-platform/tests/XMLHttpRequest/open-url-multi-window.htm @@ -10,20 +10,19 @@ <div id="log"></div> <script> var test = async_test() function init() { test.step(function() { var client = new self[0].XMLHttpRequest() client.onreadystatechange = function() { test.step(function() { - if(client.readyState == 4) { + if(client.readyState == 4) assert_equals(client.responseText, "bottom\n") test.done() - } }) } client.open("GET", "folder.txt") client.send("") }) } </script> <iframe src="resources/init.htm"></iframe>
--- a/testing/web-platform/tests/XMLHttpRequest/resources/last-modified.py +++ b/testing/web-platform/tests/XMLHttpRequest/resources/last-modified.py @@ -1,7 +1,7 @@ def main(request, response): import datetime, os srcpath = os.path.join(os.path.dirname(__file__), "well-formed.xml") srcmoddt = datetime.datetime.fromtimestamp(os.path.getmtime(srcpath)) response.headers.set("Last-Modified", srcmoddt.strftime("%a, %d %b %Y %H:%M:%S GMT")) response.headers.set("Content-Type", "application/xml") - return open(srcpath, "r").read() + return open(srcpath).read()
--- a/testing/web-platform/tests/XMLHttpRequest/responsexml-basic.htm +++ b/testing/web-platform/tests/XMLHttpRequest/responsexml-basic.htm @@ -14,17 +14,17 @@ var client = new XMLHttpRequest() assert_equals(client.responseXML, null) client.open("GET", "resources/well-formed.xml", false) assert_equals(client.responseXML, null) client.send(null) assert_equals(client.responseXML.documentElement.localName, "html", 'localName is html') assert_equals(client.responseXML.documentElement.childNodes.length, 5, 'childNodes is 5') assert_equals(client.responseXML.getElementById("n1").localName, client.responseXML.documentElement.childNodes[1].localName) - assert_equals(client.responseXML.getElementById("n2"), client.responseXML.documentElement.childrenNodes[3], 'getElementById("n2")') + assert_equals(client.responseXML.getElementById("n2"), null, 'getElementById("n2")') assert_equals(client.responseXML.getElementsByTagName("p")[1].namespaceURI, "namespacesarejuststrings", 'namespaceURI') }) test(function() { var client = new XMLHttpRequest() client.open("GET", "resources/status.py?type=application/xml", false) client.send(null) assert_equals(client.responseXML, null) }, 'responseXML on empty response documents')
deleted file mode 100644 --- a/testing/web-platform/tests/XMLHttpRequest/send-blob-with-no-mime-type.html +++ /dev/null @@ -1,51 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::ol[1]/li[4] following::ol[1]/li[4]/dl[1]/dd[2]/p[3]"/> - <link rel="help" href="https://xhr.spec.whatwg.org/#the-status-attribute" data-tested-assertations="following::ol[1]/li[3]"/> - <link rel="help" href="https://xhr.spec.whatwg.org/#the-responsetype-attribute" data-tested-assertations="following::ol[1]/li[4]"/> - <link rel="help" href="https://xhr.spec.whatwg.org/#the-response-attribute" data-tested-assertations="following::a[contains(@href,'#blob-response-entity-body')]/.."/> - - <script src="/resources/testharness.js"></script> - <script src="/resources/testharnessreport.js"></script> - <title>XMLHttpRequest: The send() method: Blob data with no mime type</title> -</head> - -<body> - <div id="log"></div> - - <script type="text/javascript"> - var blobTests = [ - ["no mime type", new Blob(["data"])], - ["invalid mime type", new Blob(["data"], {type: "Invalid \r\n mime \r\n type"})] - ]; - - blobTests.forEach(function(item){ - test(function() { - var xhr = new XMLHttpRequest(); - xhr.open("POST", "./resources/content.py", false); - xhr.send(item[1]); - - assert_equals(xhr.getResponseHeader("X-Request-Content-Length"), "4"); - assert_equals(xhr.getResponseHeader("X-Request-Content-Type"), "NO"); - }, "Synchronous blob loading with " + item[0]); - - var atest = async_test("Asynchronous blob loading with " + item[0]); - atest.step(function() { - var xhr = new XMLHttpRequest(); - xhr.onreadystatechange = function() { - if (xhr.readyState == 4) { - atest.step(function() { - assert_equals(xhr.getResponseHeader("X-Request-Content-Length"), "4"); - assert_equals(xhr.getResponseHeader("X-Request-Content-Type"), "NO"); - }); - atest.done(); - } - } - xhr.open("POST", "./resources/content.py", true); - xhr.send(item[1]); - }); - }); - </script> -</body> -</html>
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/.editorconfig +++ /dev/null @@ -1,10 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/CONTRIBUTING.md +++ /dev/null @@ -1,370 +0,0 @@ -Annotation-model: Guidelines for Contributing Tests -=================================================== - -This document describes the method people should use for authoring tests and -integrating them into the repository. Anyone is welcome to submit new tests to -this collection. If you do, please create the tests following the guidelines -below. Then submit them as a pull request so they can be evaluated - -Structure ---------- - -Tests are organized by major section of the Annotation Model specification. The -folders associated with these are: - -* annotations -* bodiesTargets -* collections -* specificResources - * selectors - * states - -Within these folders, special files ending with the suffix ".test" provide the source -for the test as a set of declarative assertions about the required shape of the conforming -JSON object. These files are transformed using a test generation tool into ".html" files -that are then accessed by the Web Platform Test framework. - -There are a few other folders that provide supporting materials for the tests: - -* common - assertionObjects, conditionObjects, and other supporting materials -* definitions - JSON Schema definitions that can be referenced -* scripts - JavaScript that are included by tests -* tools - supporting scripts and files - -NOTE: The files in the definitions folder are expected to be JSON Schema -definitions - basically commonly used concepts that are referenced by other JSON -Schema files in the system. All of these 'definitions' are preloaded by the -system before any other parts of a test are processed. - -Test Cases ----------- - -Each test is expressed as a simple (or complex) requirement in a test file. -For each section of the document, the requirement is represented as a structure -that describes the nature of the test, and then includes or references minimal -JSON Schema that test the assertions implied by the requirement. - -The structure of a test case is defined using a [JSON-LD -Context](JSONtest-v1.jsonld). That context defines the following terms: - -|Keyword | Values | Meaning -|---------------|-----------------|--------- -|name | string | The name of this test for display purposes -|description | string | A long self-describing paragraph that explains the purpose of the test and the expected input -|ref | URI | An optional reference to the portion of the specification to which the test relates -|testType | `automated`, `manual`, `ref` | The type of test - this informs [WPT](https://github.com/w3c/web-platform-tests) how the test should be controlled and presented -|assertions | list of URI, List @@@ATRISK@@@, or AssertionObject | The ordered collection of tests the input should be run against. See [JSON Schema Usage](#jsonSchema) for the structure of the objects. URI is relative to the top level folder of the test collection if it has a slash; relative to the current directory if it does not. @@@@ATRISK@@@@ Lists can be nested to define groups of sub-tests. Assertions / groups can be conditionally skipped. See [Assertion Lists](#assertionLists) for more details. - -Each test case has a suffix of `.test` and a shape like: - -<pre> -{ - "@context": "https://www.w3.org/ns/JSONtest-v1.jsonld", - "name": "Verify annotation conforms to the model", - "description": "Supply an example annotation that conforms to the basic structure.", - "ref": "https://www.w3.org/TR/annotation-model/#model", - "testType": "manual", - "assertions": [ - "common/has_context.json", - "common/has_id.json", - { - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Verify annotation has target", - "type": "object", - "expectedResult": "valid", - "errorMessage": "The object was missing a required 'target' property", - "properties": { - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "anyOf": [ - { - "type": "string" - } - ] - } - ], - "not": {"type": "object"} - } - }, - "required": ["target"] - } - ] -} -</pre> - -External references are used when the "assertion" is a common one that needs to -be checked on many different test cases (e.g., that there is an @context in the -supplied annotation). - -### <a id="assertionLists">Assertion Lists</a> ### - -The `assertion` list is an ordered list of assertions that will be evaluated -against the submitted content. The list is *required*, and MUST have at least -one entry. Entries in the list have the following types: - -* AssertionObject - -An in-line Object as defined in the section [Assertion -Objects](#assertionObjects). -* URI - -A relative or absolute URI that references a AssertionObject in a .json file. -If the URI is relative but contains no slashes, then it is considered to be -in the current directory. If the URI is relative, contains slashes, but -**does not start with a slash** then it is considered relative to the top of -the tree of the current test collection (e.g., `annotation-model`). -* List @@@ATRISK@@@ - -A nested Assertion List. While nested Assertion Lists are optional, if one -is present it MUST have at least one entry. Entries are as in this list. -Assertion Lists can be nested to any depth (but don't do that - it would be -too hard to maintain). - - -<a id="assertionObjects">Assertion Objects</a> ------------------ - -In this collection of tests, Assertion Objects can be contained inline in the -`.test` files or contained in external files with the suffix `.json`. The -vocabularly and structure is as defined in [JSON Schema -v4](http://json-schema.org/documentation.html) augmented with some additional -properties defined in this section. - -In general each JSON Schema definition provided in this test suite should be as -minimal as possible. This promotes clarity and increases the likelihood that -it is correct. While it is ---possible--- to create JSON Schema files that -enforce many different requirements on a data model, it increases the -complexity and can also reduce the atomicity of tests / sub-tests (because a - test ends up testing more than one thing). Please try to avoid creating -complex JSON Schema. (A notable exception is the situation where multiple - properties of a structure are interdependent.) - -Tools such as [the JSON Schema Creator](http://jsonschema.net/) may be helpful -in creating schema snippets that can be integrated into JSONtest Assertion -Objects. Remember that the JSON Schema you create should be as permissive as -possible to address the various shapes that a give property might take (e.g., a - 'foo' might be a string or an object that contains sub-properties that express - the string, or an array of 1 or more objects with those sub-properties). - -In addition to the validation keys defined in JSON Schema v4, Schema files in -this collection are also permitted to use the following keywords: - -|Keyword | Values | Meaning | -|---------------|-----------------|---------| -|onUnexpectedResult | `failAndContinue`, `failAndSkip`, `failAndAbort`, `passAndContinue`, `passAndSkip`, `passAndAbort` | Action to take when the result is not as expected. Default is `failAndContinue` | -|assertionType | `must`, `may`, `should` | Informs the system about the severity of a failure. The default is `must` | -|assertionFile | URI | An external file that contains an assertion SCHEMA. When this value is supplied, and local properties will override the ones loaded from the external file. -|errorMessage | string | A human readable explanation of what it means if the test fails. | -|expectedResult | `valid`, `invalid` | Tells the framework whether validating against this schema is expected to succeed or fail. The default is `valid` | - - -### Example Assertion Object ### - -<pre> -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Verify annotation has @context", - "type": "object", - "expectedResult" : "valid", - "properties": { - "@context": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "anyOf": [ - { - "type": "string" - } - ] - } - ], - "not": {"type": "object"} - } - }, - "required": ["@context"] -} -</pre> - -Note that in the case where a feature is *optional* the JSON Schema MUST be -crafted such that if the attribute is permitted to be missing from the content -(so that the result is `true`), but when the attribute is present in the -content it conforms to any requirements. - - - -<a id="conditionObjects">Condition Objects</a> ------------------ - -A Condition Object is a sub-class of an Assertion Object. It allows the -specification of the evaluation strategy for the assertions referenced by the -object. An object is a Condition Object IFF it has a `assertions` property. In -this case, there MUST NOT be an `assertionFile` property. - - -|Keyword | Values | Meaning | -|---------------|-----------------|---------| -|compareWith | `and`, `or` | How should the result of any referenced assertions be compared. Defaults to `and`. Note that this implies there is also an assertions property with a nested list of assertions to compare. | -|assertions | a list of assertions as in a Test Case above. This is required if there is a compareWith property | - - -An example of a test that would pass if there were an `@context` OR there were an `@id`: - -<pre> -{ - "@context": "https://www.w3.org/ns/JSONtest-v1.jsonld", - "name": "A test that has an 'or' clause", - "description": "A complex test that uses or-ing among a list of assertions", - "ref": "https://www.w3.org/TR/annotation-model/#model", - "testType": "manual", - "assertions": [ - { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "must have context or id", - "description": "A more complex example that allows one of many options to pass", - "assertions": [ - { "title": "Condition Object", - "description": "A pseudo-test that will get a result from the aggregate of its children", - "assertionType": "must", - "expectedResult": "valid", - "errorMessage": "Error: None of the various options were present", - "compareWith": "or", - "assertions": [ - "common/has_context.json", - "common/has_id.json" - ] - } - ] - } - ] -} -</pre> - - -Command Line Tools ------------------- - -### Building the Test Files ### - -The actual .html test case files are generated using the script -tools/make_tests.py. This script will search the directory heriarchy looking for -files ending on `.test` and creating `.html` files from them using the template in -the tools folder. If you want to regenerate the examples too, supply the -`--examples` option to the script. - -Note that when submitting tests to the repository, the `.html` versions must be -included. - -### Testing the Tests ### - -### Driving Tests with Input Files ### - -Complex Examples ----------------- - -This section is a collection of more complex examples to illustrate the -expressive power of the [Assertion List](#assertionLists) structure. These can -be used as templates for creating actual `.test` files. - -### Including and Overriding an Assertion ### - -Assertions can be contained in external `.json` files. It is possible for an -object in an Assertion List to include the external file and override one or -more of its properties: - -<pre> -{ - "@context": "https://www.w3.org/ns/JSONtest-v1.jsonld", - "name": "Permit no target property", - "description": "Ensure there is no 'target' property when there is a 'randomName' property in the Annotation", - "assertions": [ - { - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Verify annotation has randomName", - "type": "object", - "properties": { - "randomName": { - "type": "string" - } - }, - "required": ["randomName"] - }, - { "assertionFile" : "common/target.json", - "title" : "Require target to be missing", - "expectedResult" : "invalid", - "errorMessage" : "The target MUST not be present when 'randomName' is also present", - } - ] -} -</pre> - -### Nested Assertion Collections with Skip ### - -Assertion Lists can be nested within Assertion Lists. This feature, combined -with the `onUnexpectedResult` property, makes it possible to skip a collection -of tests when an assertion in the list is not satisfied: - -<pre> -{ - "@context": "https://www.w3.org/ns/JSONtest-v1.jsonld", - "name": "If there is no 'target' property, skip some tests", - "description": "When 'target' is not present, other properties related to 'target' are not required", - "assertions": [ - "common/context.json", - [ - { "assertionFile" : "common/target.json", - "errorMessage" : "Target was not present so skip the rest of this section", - "onUnexpectedResult" : "failAndSkip" - }, - "sometest.json", - "sometest2.json", - "sometest3.json" - ] - ] -} ; -</pre> - -### Assertion that finds a specific @context Value ### - -Sometimes you want a property to be flexible, but to have one and only one of a -specific value. This is especially true with, for example, @context in JSON-LD. -One way you might do this is: - -<pre> -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Verify a specific @context", - "type": "object", - "expectedResult" : "valid", - "properties": { - "@context": { - "anyOf": [ - { - "type": "string" - "enum": [ "http://www.w3.org/ns/anno.jsonld" ] - }, - { - "type": "array", - "minitems": "1", - "uniqueItems": true, - "additionalItems": true, - "items" : [ - { "type": "string", - "enum": [ "http://www.w3.org/ns/anno.jsonld" ] - } - ] - } - ], - "not": {"type": "object"} - } - }, - "required": ["@context"] -} - -</pre>
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -@halindrome -@bigbluehat
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/README.md +++ /dev/null @@ -1,81 +0,0 @@ -Annotation-model: Tests for the Web Annotation Data Model -========================================================= - -The [Web Annotation Data Model](https://www.w3.org/TR/annotation-model) -specification presents a JSON-oriented collection of terms and structure that -permit the sharing of annotations about other content. - -The purpose of these tests is to help validate that each of the structural -requirements expressed in the Data Model specification are properly supported -by implementations. - -The general approach for this testing is to enable both manual and automated -testing. However, since the specification has no actual user interface -requirements, there is no general automation mechanism that can be presented -for clients. Instead, the automation mechanism is one where client -implementors could take advantage of the plumbing we provide here to push their -data into the tests and collect the results of the testing. This assumes -knowledge of the requirements of each test / collection of tests so that the -input data is relevant. Each test or test collection contains information -sufficient for the task. - -Running Tests -------------- - -In the case of this test collection, we will be initially creating manual -tests. These will automatically determine pass or fail and generate output for -the main WPT window. The plan is to minimize the number of such tests to -ease the burden on the testers while still exercising all the features. - -The workflow for running these tests is something like: - -1. Start up the test driver window and select the annotation-model tests - - click "Start" -2. A window pops up that shows a test - the description of which tells the - tester what input is expected. The window contains a textarea into which - the input can be typed / pasted, along with a button to click to start - testing that input. -3. The tester (presumably in another window) brings up their annotation client - and uses it to generate an annotation that supplies the requested structure. - They then copy / paste that into the aforementioned textarea and select the - button. -4. The test runs. Success or failure is determined and reported to the test - driver window, which then cycles to the next test in the sequence. -5. Repeat steps 2-4 until done. -6. Download the JSON format report of test results, which can then be visually - inspected, reported on using various tools, or passed on to W3C for - evaluation and collection in the Implementation Report via github. - -**Remember that while these tests are written to help exercise implementations, -their other (important) purpose is to increase confidence that there are -interoperable implementations.** So, implementers are our audience, but these -tests are not meant to be a comprehensive collection of tests for a client that -might implement the Recommendation. The bulk of the tests are manual because -there are no UI requirements in the Recommendation that would make it possible -to effectively stimulate every client portably. - -Having said that, because the structure of these "manual" tests is very rigid, -it is possible for an implementer who understands test automation to use an -open source tool such as [Selenium](http://www.seleniumhq.org/) to run these -"manual" tests against their implementation - exercising their implementation -against content they provide to create annotations and feed the data into our -test input field and run the test. - -Capturing and Reporting Results -------------------------------- - -As tests are run against implementations, if the results of testing are -submitted to [test-results](https://github.com/w3c/test-results/) then they will -be automatically included in documents generated by -[wptreport](https://www.github.com/w3c/wptreport). The same tool can be used -locally to view reports about recorded results. - - -Automating Test Execution -------------------------- - -Writing Tests -------------- - -If you are interested in writing tests for this environment, see the -associated [CONTRIBUTING](CONTRIBUTING.md) document.
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/TODO +++ /dev/null @@ -1,18 +0,0 @@ -Things still to be developed: - -Script to run .jsonld files in tools/tests against .test files - -Script to batch run submitted .jsonld files from an implementation against .test -files - -Websocket communication to runner tests with a corresponding listener that an -implementation could use to auto-submit jsonld into the "manual" tests - -Change JSONtest logic so that it loads all of the required external files during -initialization so that it can populate the list of assertions for the HTML in a -manual test. Use Promises and Promise.all() to achieve this. - -Add a Skip option to tools/runner - -Add a tuple mode for evaluating RDF declaratively as well. -
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/definitions/choiceSet.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "id" : "choiceSet.json", - "type": "object", - "properties": - { - "type": - { - "type": "string", - "enum": ["Choice", "Composite", "List", "Independents"] - }, - "items" : - { - "type" : "array" - } - }, - "required": [ "type", "items" ] -}
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/definitions/externalWebResource.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "id" : "externalWebResource.json", - "type": "object", - "properties": - { - "id": - { - "$ref": "stringUri.json#" - } - }, - "required": [ "id" ] -}
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/definitions/specificResource.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "id" : "specificResource.json", - "type": "object", - "properties": - { - "source": - { - "type": ["string", "object" ], - "oneOf": [ - { "$ref": "stringUri.json#" }, - { "$ref": "externalWebResource.json#"} - ] - } - }, - "required": ["source"] -}
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/definitions/stringUri.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "id" : "stringUri.json", - "type": "string", - "format": "uri" -}
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/definitions/textualBody.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "id" : "textualBody.json", - "type": "object", - "properties": - { - "value": - { - "type": "string" - } - }, - "required": [ "value" ] -}
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/examples/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Example Tests -============= - -The tests in this folder are examples to show how the framework -should be used. They are NOT intended for conformance testing use, and -tools/make_tests.py will not generate the tests in this folder without the -`--examples` option. - -
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/examples/example1-manual.html +++ /dev/null @@ -1,46 +0,0 @@ -<!doctype html> -<html> -<head> -<title>Verify annotation conforms to the model</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/annotation-model/scripts/ajv.min.js"></script> -<script src="/annotation-model/scripts/JSONtest.js"></script> -<script> -setup({explicit_timeout: true, explicit_done: true }); - -var theDefinitions=[ - "definitions/specificResource.json", - "definitions/stringUri.json", - "definitions/choiceSet.json", - "definitions/externalWebResource.json", - "definitions/textualBody.json" -]; - -var theTestFile="example1.test"; - -var runningTest = new JSONtest( { - "testInput" : "annotation-input", - "runTest" : "annotation-run", - "closeWindow" : "annotation-close", - "schemaDefs" : theDefinitions, - "testFile" : theTestFile -} ) ; - -</script> -</head> -<body> -<p>Fill the textarea below with JSON output from your annotation client -implementation that supports the following criteria:</p> -<div id="testDescription"></div> -<p>Specifically, the following assertions will be evaluated:</p> -<div id="assertion"></div> -<form name="annotation" id="annotation"> - <textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" > - </textarea> - <p><input type="button" id="annotation-run" name="Loading..." value="Loading..."> - <input style="display: none" type="button" id="annotation-close" - name="Close" value="Close"></p> -</form> -</body> -</html>
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/examples/example1.test +++ /dev/null @@ -1,10 +0,0 @@ -{ - "@context": "https://www.w3.org/ns/JSONtest-v1.jsonld", - "name": "Verify annotation conforms to the model", - "description": "Supply an example annotation that conforms to the basic structure.", - "ref": "https://www.w3.org/TR/annotation-model/#model", - "assertions": [ - "exampleContext.json", - "exampleTarget.json" - ] -}
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/examples/example2-manual.html +++ /dev/null @@ -1,46 +0,0 @@ -<!doctype html> -<html> -<head> -<title>A test that has an 'or' clause</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/annotation-model/scripts/ajv.min.js"></script> -<script src="/annotation-model/scripts/JSONtest.js"></script> -<script> -setup({explicit_timeout: true, explicit_done: true }); - -var theDefinitions=[ - "definitions/specificResource.json", - "definitions/stringUri.json", - "definitions/choiceSet.json", - "definitions/externalWebResource.json", - "definitions/textualBody.json" -]; - -var theTestFile="example2.test"; - -var runningTest = new JSONtest( { - "testInput" : "annotation-input", - "runTest" : "annotation-run", - "closeWindow" : "annotation-close", - "schemaDefs" : theDefinitions, - "testFile" : theTestFile -} ) ; - -</script> -</head> -<body> -<p>Fill the textarea below with JSON output from your annotation client -implementation that supports the following criteria:</p> -<div id="testDescription"></div> -<p>Specifically, the following assertions will be evaluated:</p> -<div id="assertion"></div> -<form name="annotation" id="annotation"> - <textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" > - </textarea> - <p><input type="button" id="annotation-run" name="Loading..." value="Loading..."> - <input style="display: none" type="button" id="annotation-close" - name="Close" value="Close"></p> -</form> -</body> -</html>
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/examples/example2.test +++ /dev/null @@ -1,42 +0,0 @@ -{ - "@context": "https://www.w3.org/ns/JSONtest-v1.jsonld", - "name": "A test that has an 'or' clause", - "description": "This is a complex test that uses or-ing among a list of assertions.", - "ref": "https://www.w3.org/TR/annotation-model/#model", - "testType": "manual", - "assertions": - { "title": "Condition Object", - "description": "A pseudo-test that will get a result from the aggregate of its children", - "assertionType": "must", - "expectedResult": "valid", - "errorMessage": "Error: None of the various options were present", - "compareWith": "or", - "assertions": [ - { - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "'The Annotation must have 1 or more @context values' (Section 3.1)", - "assertionType": "must", - "expectedResult": "valid", - "errorMessage": "Error: Annotation does not have an @context property.", - "type": "object", - "properties": { - "@context": {} - }, - "required": ["@context"] - }, - { - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "'An Annotation should have exactly 1 id' (Section 3.1)", - "assertionType": "should", - "expectedResult": "valid", - "errorMessage": "Warning: The Annotation is not identified using the id key (Section 3.1).", - "type": "object", - "properties": { - "id": {} - }, - "required": ["id"] - } - ] - } - -}
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/examples/exampleContext.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Check @context value", - "description": "'http://www.w3.org/ns/anno.jsonld must be' an @context value (Section 3.1)", - "assertionType": "must", - "expectedResult": "valid", - "errorMessage": "Error: 'http://www.w3.org/ns/anno.jsonld' is not an @context value.", - "type": "object", - "properties": { - "@context": { - "oneOf": [ - { "type": "string", - "$ref": "#/definitions/contextValue" }, - { "type": "array", - "$ref": "#/definitions/contextArray" } - ] - } - }, - "definitions": { - "contextValue": - { "enum": [ "http://www.w3.org/ns/anno.jsonld" ] }, - "contextArray": - { "not": - { "items": - { "not": - { "type": "string", - "$ref": "#/definitions/contextValue" } } - } - } - } -}
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/examples/exampleTarget.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Check if target feature implemented", - "description": "'There must be 1 or more target relationships associated with an Annotation.' (Section 3.1)", - "assertionType": "must", - "expectedResult": "valid", - "errorMessage": "Error: Annotation has no target relationships - at least 1 is required. (Section 3.1)", - "type": "object", - "properties": { - "target": { "type": ["string", "array", "object"] } - }, - "required": ["target"] -}
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/scripts/JSONtest.js +++ /dev/null @@ -1,702 +0,0 @@ -/* globals add_completion_callback, Promise, done, assert_true, Ajv, on_event */ - -/** - * Creates a JSONtest object. If the parameters are supplied - * it also loads a referenced testFile, processes that file, loads any - * referenced external assertions, and sets up event listeners to process the - * user's test data. The loading is done asynchronously via Promises. The test - * button's text is changed to Loading while it is processing, and to "Check - * JSON" once the data is loaded. - * - * @constructor - * @param {object} params - * @param {string} [params.test] - object containing JSON test definition - * @param {string} [params.testFile] - URI of a file with JSON test definition - * @param {string} params.runTest - IDREF of an element that when clicked will run the test - * @param {string} params.testInput - IDREF of an element that contains the JSON(-LD) to evaluate against the assertions in the test / testFile - * @event DOMContentLoaded Calls init once DOM is fully loaded - * @returns {object} Reference to the new object - */ - -function JSONtest(params) { - 'use strict'; - - this.Assertions = []; // object that will contain the assertions to process - this.AssertionText = ""; // string that holds the titles of all the assertions in use - this.DescriptionText = ""; - this.Base = null; // URI "base" for the test suite being run - this.TestDir = null; // URI "base" for the test case being run - this.Params = null; // paramaters passed in - this.Properties = null; // testharness_properties from the opening window - this.Test = null; // test being run - this.AssertionCounter = 0;// keeps track of which assertion is being processed - - this._assertionText = []; // Array of text or nested arrays of assertions - this._assertionCache = [];// Array to put loaded assertions into - this._loading = true; - - var pending = [] ; - - // set up in case DOM finishes loading early - pending.push(new Promise(function(resolve) { - on_event(document, "DOMContentLoaded", function() { - resolve(true); - }.bind(this)); - }.bind(this))); - - // create an ajv object that will stay around so that caching - // of schema that are compiled just works - this.ajv = new Ajv({allErrors: true, validateSchema: false}) ; - - // determine the base URI for the test collection. This is - // the top level folder in the test "document.location" - - var l = document.location; - var p = l.pathname; - this.TestDir = p.substr(0, 1+p.lastIndexOf('/')); - this.Base = p.substr(0, 1+p.indexOf('/', 1)); - - // if we are under runner, then there are props in the parent window - // - // if "output" is set in that, then pause at the end of running so the output - // can be analyzed. @@@TODO@@@ - if (window && window.opener && window.opener.testharness_properties) { - this.Properties = window.opener.testharness_properties; - } - - this.Params = params; - - // if there is a list of definitions in the params, - // include them - if (this.Params.schemaDefs) { - var defPromise = new Promise(function(resolve, reject) { - var promisedSchema = this.Params.schemaDefs.map(function(item) { - return this.loadDefinition(item); - }.bind(this)); - - // Once all the loadAssertion promises resolve... - Promise.all(promisedSchema) - .then(function (schemaContents) { - this.ajv.addSchema(schemaContents); - resolve(true); - }.bind(this)) - .catch(function(err) { - reject(err); - }.bind(this)); - }.bind(this)); - // these schema need to load up too - pending.push(defPromise) ; - } - - // start by loading the test (it might be inline, but - // loadTest deals with that - pending.push(this.loadTest(params) - .then(function(test) { - // if the test is NOT an object, turn it into one - if (typeof test === 'string') { - test = JSON.parse(test) ; - } - - this.Test = test; - - // Test should have information that we can put in the template - - if (test.description) { - this.DescriptionText = test.description; - } - - return new Promise(function(resolve, reject) { - if (test.assertions && - typeof test.assertions === "object") { - // we have at least one assertion - // get the inline contents and the references to external files - var assertFiles = this._assertionRefs(test.assertions); - - var promisedAsserts = assertFiles.map(function(item) { - return this.loadAssertion(item); - }.bind(this)); - - // Once all the loadAssertion promises resolve... - Promise.all(promisedAsserts) - .then(function (assertContents) { - // assertContents has assertions in document order - - var assertIdx = 0; - - // populate the display of assertions that are being exercised - // returns the list of top level assertions to walk through - - var buildList = function(assertions, level) { - if (level === undefined) { - level = 1; - } - - // accumulate the assertions - but only when level is 0 - var list = [] ; - - if (assertions) { - if (typeof assertions === "object" && assertions.hasOwnProperty('assertions')) { - // this is a conditionObject - if (level === 0) { - list.push(assertContents[assertIdx]); - } - - this.AssertionText += "<li>" + assertContents[assertIdx++].title; - this.AssertionText += "<ol>"; - buildList(assertions.assertions, level+1) ; - this.AssertionText += "</ol></li>\n"; - } else { - // it is NOT a conditionObject - must be an array - assertions.forEach( function(assert) { - if (typeof assert === "object" && Array.isArray(assert)) { - this.AssertionText += "<ol>"; - // it is a nested list - recurse - buildList(assert, level+1) ; - this.AssertionText += "</ol>\n"; - } else if (typeof assert === "object" && !Array.isArray(assert) && assert.hasOwnProperty('assertions')) { - if (level === 0) { - list.push(assertContents[assertIdx]); - } - // there is a condition object in the array - this.AssertionText += "<li>" + assertContents[assertIdx++].title; - this.AssertionText += "<ol>"; - buildList(assert, level+1) ; // capture the children too - this.AssertionText += "</ol></li>\n"; - } else { - if (level === 0) { - list.push(assertContents[assertIdx]); - } - this.AssertionText += "<li>" + assertContents[assertIdx++].title + "</li>\n"; - } - }.bind(this)); - } - } - return list; - }.bind(this); - - // Assertions will ONLY contain the top level assertions - this.Assertions = buildList(test.assertions, 0); - resolve(true); - }.bind(this)) - .catch(function(err) { - reject(err); - }.bind(this)); - } else { - if (!test.assertions) { - reject("Test has no assertion property"); - } else { - reject("Test assertion property is not an Array"); - } - } - }.bind(this)); - }.bind(this))); - - // once the DOM and the test / assertions are loaded... set us up - Promise.all(pending) - .then(function() { - this.loading = false; - this.init(); - }.bind(this)) - .catch(function(err) { - // loading the components failed somehow - report the errors and mark the test failed - test( function() { - assert_true(false, "Loading of test components failed: " +JSON.stringify(err)) ; - }, "Loading test components"); - done() ; - return ; - }.bind(this)); - - return this; -} - -JSONtest.prototype = { - - /** - * @listens click - */ - init: function() { - 'use strict'; - // set up a handler - var runButton = document.getElementById(this.Params.runTest) ; - var closeButton = document.getElementById(this.Params.closeWindow) ; - var testInput = document.getElementById(this.Params.testInput) ; - var assertion = document.getElementById("assertion") ; - var desc = document.getElementById("testDescription") ; - - if (!this.loading) { - runButton.disabled = false; - runButton.value = "Check JSON"; - if (desc) { - desc.innerHTML = this.DescriptionText; - } - if (assertion) { - assertion.innerHTML = "<ol>" + this.AssertionText + "</ol>\n"; - } - } else { - window.alert("Loading did not finish before init handler was called!"); - } - - // @@@TODO@@@ implement the output showing handler - if (0 && this.Properties && this.Properties.output && closeButton) { - // set up a callback - add_completion_callback( function() { - var p = new Promise(function(resolve) { - closeButton.style.display = "inline"; - closeButton.disabled = false; - on_event(closeButton, "click", function() { - resolve(true); - }); - }.bind(this)); - p.then(); - }.bind(this)); - } - - on_event(runButton, "click", function() { - // user clicked - var content = testInput.value; - runButton.disabled = true; - - // make sure content is an object - if (typeof content === "string") { - try { - content = JSON.parse(content) ; - } catch(err) { - // if the parsing failed, create a special test and mark it failed - test( function() { - assert_true(false, "Parse of JSON failed: " + err) ; - }, "Parsing submitted input"); - // and just give up - done(); - return ; - } - } - - // iterate over all of the tests for this instance - this.runTests(this.Assertions, content); - - // explicitly tell the test framework we are done - done(); - }.bind(this)); - }, - - // runTests - process tests - /** - * @param {object} assertions - List of assertions to process - * @param {string} content - JSON(-LD) to be evaluated - * @param {string} [testAction='continue'] - state of test processing (in parent when recursing) - * @param {integer} [level=0] - depth of recursion since assertion lists can nest - * @param {string} [compareWith='and'] - the way the results of the referenced assertions should be compared - * @returns {string} - the testAction resulting from evaluating all of the assertions - */ - runTests: function(assertions, content, testAction, level, compareWith) { - 'use strict'; - - // level - if (level === undefined) { - level = 1; - } - - // testAction - if (testAction === undefined) { - testAction = 'continue'; - } - - // compareWith - if (compareWith === undefined) { - compareWith = 'and'; - } - - // for each assertion (in order) load the external json schema if - // one is referenced, or use the inline schema if supplied - // validate content against the referenced schema - - var theResults = [] ; - - if (assertions) { - - assertions.forEach( function(assert, num) { - - var expected = assert.hasOwnProperty('expectedResult') ? assert.expectedResult : 'valid' ; - var message = assert.hasOwnProperty('message') ? assert.message : "Result was not " + expected; - - // first - what is the type of the assert - if (typeof assert === "object" && !Array.isArray(assert)) { - if (assert.hasOwnProperty("compareWith") && assert.hasOwnProperty("assertions") && Array.isArray(assert.assertions) ) { - // this is a comparisonObject - var r = this.runTests(assert.assertions, content, testAction, level+1, assert.compareWith); - // r is an object that contains, among other things, an array of results from the child assertions - testAction = r.action; - - // evaluate the results against the compareWith setting - var result = true; - var data = r.results ; - var i; - - if (assert.compareWith === "or") { - result = false; - for(i = 0; i < data.length; i++) { - if (data[i]) { - result = true; - } - } - } else { - for(i = 0; i < data.length; i++) { - if (!data[i]) { - result = false; - } - } - } - - // create a test and push the result - test(function() { - var newAction = this.determineAction(assert, result) ; - // next time around we will use this action - testAction = newAction; - - var err = ";"; - - if (testAction === 'abort') { - err += "; Aborting execution of remaining assertions;"; - } else if (testAction === 'skip') { - err += "; Skipping execution of remaining assertions at level " + level + ";"; - } - - if (result === false) { - // test result was unexpected; use message - assert_true(result, message + err); - } else { - assert_true(result, err) ; - } - }.bind(this), "" + level + ":" + (num+1) + " " + assert.title); - // we are going to return out of this - return; - } - } else if (typeof assert === "object" && Array.isArray(assert)) { - // it is a nested list - recurse - var o = this.runTests(assert, content, testAction, level+1); - if (o.result && o.result === 'abort') { - // we are bailing out - testAction = 'abort'; - } - } - - if (testAction === 'abort') { - return {action: 'abort' }; - } - - var schemaName = "inline " + level + ":" + (num+1); - - if (typeof assert === "string") { - // the assertion passed in is a file name; find it in the cache - if (this._assertionCache[assert]) { - assert = this._assertionCache[assert]; - } else { - test( function() { - assert_true(false, "Reference to assertion " + assert + " at level " + level + ":" + (num+1) + " unresolved") ; - }, "Processing " + assert); - return ; - } - } - - if (assert.assertionFile) { - schemaName = "external file " + assert.assertionFile + " " + level + ":" + (num+1); - } - - var validate = null; - - try { - validate = this.ajv.compile(assert); - } - catch(err) { - test( function() { - assert_true(false, "Compilation of schema " + level + ":" + (num+1) + " failed: " + err) ; - }, "Compiling " + schemaName); - return ; - } - - if (testAction !== 'continue') { - // a previous test told us to not run this test; skip it - test(function() { }, "SKIPPED: " + assert.title); - } else { - // start an actual sub-test - test(function() { - var valid = validate(content) ; - - var result = this.determineResult(assert, valid) ; - - // remember the result - theResults.push(result); - - var newAction = this.determineAction(assert, result) ; - // next time around we will use this action - testAction = newAction; - - var err = ";"; - if (validate.errors !== null) { - err = "; Errors: " + this.ajv.errorsText(validate.errors) + ";" ; - } - if (testAction === 'abort') { - err += "; Aborting execution of remaining assertions;"; - } else if (testAction === 'skip') { - err += "; Skipping execution of remaining assertions at level " + level + ";"; - } - if (result === false) { - // test result was unexpected; use message - assert_true(result, message + err); - } else { - assert_true(result, err) ; - } - }.bind(this), "" + level + ":" + (num+1) + " " + assert.title); - } - }.bind(this)); - } - - return { action: testAction, results: theResults} ; - }, - - determineResult: function(schema, valid) { - 'use strict'; - var r = 'valid' ; - if (schema.hasOwnProperty('expectedResult')) { - r = schema.expectedResult; - } - - if (r === 'valid' && valid || r === 'invalid' && !valid) { - return true; - } else { - return false; - } - }, - - determineAction: function(schema, result) { - 'use strict'; - // mapping from results to actions - var mapping = { - 'failAndContinue' : 'continue', - 'failAndSkip' : 'skip', - 'failAndAbort' : 'abort', - 'passAndContinue': 'continue', - 'passAndSkip' : 'skip', - 'passAndAbort' : 'abort' - }; - - // if the result was as expected, then just keep going - if (result) { - return 'continue'; - } - - var a = 'failAndContinue'; - - if (schema.hasOwnProperty('onUnexpectedResult')) { - a = schema.onUnexpectedResult; - } - - if (mapping[a]) { - return mapping[a]; - } else { - return 'continue'; - } - }, - - // loadAssertion - load an Assertion from an external JSON file - // - // returns a promise that resolves with the contents of the assertion file - - loadAssertion: function(afile) { - 'use strict'; - if (typeof(afile) === 'string') { - var theFile = this._parseURI(afile); - // it is a file reference - load it - return new Promise(function(resolve, reject) { - this._loadFile("GET", theFile, true) - .then(function(data) { - data.assertionFile = afile; - this._assertionCache[afile] = data; - resolve(data); - }.bind(this)) - .catch(function(err) { - if (typeof err === "object") { - err.theFile = theFile; - } - reject(err); - }); - }.bind(this)); - } - else if (afile.hasOwnProperty("assertionFile")) { - // this object is referecing an external assertion - return new Promise(function(resolve, reject) { - var theFile = this._parseURI(afile.assertionFile); - this._loadFile("GET", theFile, true) - .then(function(external) { - // okay - we have an external object - Object.keys(afile).forEach(function(key) { - if (key !== 'assertionFile') { - external[key] = afile[key]; - } - }); - resolve(external); - }.bind(this)) - .catch(function(err) { - if (typeof err === "object") { - err.theFile = theFile; - } - reject(err); - }); - }.bind(this)); - } else { - // it is already a loaded assertion - just use it - return new Promise(function(resolve) { - resolve(afile); - }); - } - }, - - // loadDefinition - load a JSON Schema definition from an external JSON file - // - // returns a promise that resolves with the contents of the definition file - - loadDefinition: function(dfile) { - 'use strict'; - return new Promise(function(resolve, reject) { - this._loadFile("GET", this._parseURI(dfile), true) - .then(function(data) { - resolve(data); - }.bind(this)) - .catch(function(err) { - reject(err); - }); - }.bind(this)); - }, - - - // loadTest - load a test from an external JSON file - // - // returns a promise that resolves with the contents of the - // test - - loadTest: function(params) { - 'use strict'; - - if (params.hasOwnProperty('testFile')) { - // the test is referred to by a file name - return this._loadFile("GET", params.testFile); - } // else - return new Promise(function(resolve, reject) { - if (params.hasOwnProperty('test')) { - resolve(params.test); - } else { - reject("Must supply a 'test' or 'testFile' parameter"); - } - }); - }, - - _parseURI: function(theURI) { - 'use strict'; - // determine what the top level URI should be - if (theURI.indexOf('/') === -1) { - // no slash - it's relative to where we are - // so just use it - return this.TestDir + theURI; - } else if (theURI.indexOf('/') === 0 || theURI.indexOf('http:') === 0 || theURI.indexOf('https:') === 0) { - // it is an absolute URI so just use it - return theURI; - } else { - // it is relative and contains a slash. - // make it relative to the current test root - return this.Base + theURI; - } - }, - - /** - * return a list of all inline assertions or references - * - * @param {array} assertions list of assertions to examine - */ - - _assertionRefs: function(assertions) { - 'use strict'; - var ret = [] ; - - // when the reference is to an object that has an array of assertions in it (a conditionObject) - // then remember that one and loop over its embedded assertions - if (typeof(assertions) === "object" && !Array.isArray(assertions) && assertions.hasOwnProperty('assertions')) { - ret.push(assertions) ; - assertions = assertions.assertions; - } - if (typeof(assertions) === "object" && Array.isArray(assertions)) { - assertions.forEach( function(assert) { - // first - what is the type of the assert - if (typeof assert === "object" && Array.isArray(assert)) { - // it is a nested list - recurse - this._assertionRefs(assert).forEach( function(item) { - ret.push(item); - }.bind(this)); - } else if (typeof assert === "object") { - ret.push(assert) ; - if (assert.hasOwnProperty("assertions")) { - // there are embedded assertions; get those too - ret.concat(this._assertionRefs(assert.assertions)); - } - } else { - // it is a file name - ret.push(assert) ; - } - }.bind(this)); - } - return ret; - }, - - // _loadFile - return a promise loading a file - // - _loadFile: function(method, url, parse) { - 'use strict'; - if (parse === undefined) { - parse = true; - } - - return new Promise(function (resolve, reject) { - if (document.location.search) { - var s = document.location.search; - s = s.replace(/^\?/, ''); - if (url.indexOf('?') !== -1) { - url += "&" + s; - } else { - url += "?" + s; - } - } - var xhr = new XMLHttpRequest(); - xhr.open(method, url); - xhr.onload = function () { - if (this.status >= 200 && this.status < 300) { - var d = xhr.response; - if (parse) { - try { - d = JSON.parse(d); - resolve(d); - } - catch(err) { - reject({ status: this.status, - statusText: "Parsing of " + url + " failed: " + err } - ); - } - } else { - resolve(d); - } - } else { - reject({ - status: this.status, - statusText: xhr.statusText - }); - } - }; - xhr.onerror = function () { - reject({ - status: this.status, - statusText: xhr.statusText - }); - }; - xhr.send(); - }); - }, - -};
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/scripts/ajv.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/* ajv 4.0.4: Another JSON Schema Validator */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r;r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,r.Ajv=e()}}(function(){var define,module,exports;return function e(r,t,a){function s(i,n){if(!t[i]){if(!r[i]){var l="function"==typeof require&&require;if(!n&&l)return l(i,!0);if(o)return o(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var h=t[i]={exports:{}};r[i][0].call(h.exports,function(e){var t=r[i][1][e];return s(t?t:e)},h,h.exports,e,r,t,a)}return t[i].exports}for(var o="function"==typeof require&&require,i=0;a.length>i;i++)s(a[i]);return s}({1:[function(require,module,exports){"use strict";function setupAsync(e,r){r!==!1&&(r=!0);var t,a=e.async,s=e.transpile;switch(typeof s){case"string":var o=TRANSPILE[s];if(!o)throw new Error("bad transpiler: "+s);return e._transpileFunc=o(e,r);case"undefined":case"boolean":if("string"==typeof a){if(t=ASYNC[a],!t)throw new Error("bad async mode: "+a);return e.transpile=t(e,r)}for(var i=0;MODES.length>i;i++){var n=MODES[i];if(setupAsync(n,!1))return util.copy(n,e),e.transpile}throw new Error("generators, nodent and regenerator are not available");case"function":return e._transpileFunc=e.transpile;default:throw new Error("bad transpiler: "+s)}}function checkGenerators(opts,required){try{return eval("(function*(){})()"),!0}catch(e){if(required)throw new Error("generators not supported")}}function checkAsyncFunction(opts,required){try{return eval("(async function(){})()"),!0}catch(e){if(required)throw new Error("es7 async functions not supported")}}function getRegenerator(e,r){try{return regenerator||(regenerator=require("regenerator"),regenerator.runtime()),e.async&&e.async!==!0||(e.async="es7"),regeneratorTranspile}catch(t){if(r)throw new Error("regenerator not available")}}function regeneratorTranspile(e){return regenerator.compile(e).code}function getNodent(e,r){try{return nodent||(nodent=require("nodent")({log:!1,dontInstallRequireHook:!0})),"es7"!=e.async&&(e.async&&e.async!==!0&&console.warn("nodent transpiles only es7 async functions"),e.async="es7"),nodentTranspile}catch(t){if(r)throw new Error("nodent not available")}}function nodentTranspile(e){return nodent.compile(e,"",{promises:!0,sourcemap:!1}).code}function compileAsync(e,r){function t(e,r,a){function o(a){function o(a,o){if(a)return r(a);if(!s._refs[i]&&!s._schemas[i])try{s.addSchema(o,i)}catch(n){return void r(n)}t(e,r)}var i=a.missingSchema;if(s._refs[i]||s._schemas[i])return r(new Error("Schema "+i+" is loaded but"+a.missingRef+"cannot be resolved"));var n=s._loadingSchemas[i];n?"function"==typeof n?s._loadingSchemas[i]=[n,o]:n[n.length]=o:(s._loadingSchemas[i]=o,s._opts.loadSchema(i,function(e,r){var t=s._loadingSchemas[i];if(delete s._loadingSchemas[i],"function"==typeof t)t(e,r);else for(var a=0;t.length>a;a++)t[a](e,r)}))}function i(e,t){return a?void setTimeout(function(){r(e,t)}):r(e,t)}var n;try{n=s.compile(e)}catch(l){return void(l.missingSchema?o(l):i(l))}i(null,n)}var a,s=this;try{a=this._addSchema(e)}catch(o){return void setTimeout(function(){r(o)})}if(a.validate)setTimeout(function(){r(null,a.validate)});else{if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");t(e,r,!0)}}module.exports={setup:setupAsync,compile:compileAsync};var util=require("./compile/util"),ASYNC={"*":checkGenerators,"co*":checkGenerators,es7:checkAsyncFunction},TRANSPILE={nodent:getNodent,regenerator:getRegenerator},MODES=[{async:"co*"},{async:"es7",transpile:"nodent"},{async:"co*",transpile:"regenerator"}],regenerator,nodent},{"./compile/util":10}],2:[function(e,r,t){"use strict";var a=r.exports=function(){this._cache={}};a.prototype.put=function(e,r){this._cache[e]=r},a.prototype.get=function(e){return this._cache[e]},a.prototype.del=function(e){delete this._cache[e]},a.prototype.clear=function(){this._cache={}}},{}],3:[function(e,r,t){"use strict";r.exports={$ref:e("../dotjs/ref"),allOf:e("../dotjs/allOf"),anyOf:e("../dotjs/anyOf"),dependencies:e("../dotjs/dependencies"),"enum":e("../dotjs/enum"),format:e("../dotjs/format"),items:e("../dotjs/items"),maximum:e("../dotjs/_limit"),minimum:e("../dotjs/_limit"),maxItems:e("../dotjs/_limitItems"),minItems:e("../dotjs/_limitItems"),maxLength:e("../dotjs/_limitLength"),minLength:e("../dotjs/_limitLength"),maxProperties:e("../dotjs/_limitProperties"),minProperties:e("../dotjs/_limitProperties"),multipleOf:e("../dotjs/multipleOf"),not:e("../dotjs/not"),oneOf:e("../dotjs/oneOf"),pattern:e("../dotjs/pattern"),properties:e("../dotjs/properties"),required:e("../dotjs/required"),uniqueItems:e("../dotjs/uniqueItems"),validate:e("../dotjs/validate")}},{"../dotjs/_limit":13,"../dotjs/_limitItems":14,"../dotjs/_limitLength":15,"../dotjs/_limitProperties":16,"../dotjs/allOf":17,"../dotjs/anyOf":18,"../dotjs/dependencies":20,"../dotjs/enum":21,"../dotjs/format":22,"../dotjs/items":23,"../dotjs/multipleOf":24,"../dotjs/not":25,"../dotjs/oneOf":26,"../dotjs/pattern":27,"../dotjs/properties":29,"../dotjs/ref":30,"../dotjs/required":31,"../dotjs/uniqueItems":33,"../dotjs/validate":34}],4:[function(e,r,t){"use strict";r.exports=function a(e,r){if(e===r)return!0;var t,s=Array.isArray(e),o=Array.isArray(r);if(s&&o){if(e.length!=r.length)return!1;for(t=0;e.length>t;t++)if(!a(e[t],r[t]))return!1;return!0}if(s!=o)return!1;if(e&&r&&"object"==typeof e&&"object"==typeof r){var i=Object.keys(e);if(i.length!==Object.keys(r).length)return!1;for(t=0;i.length>t;t++)if(void 0===r[i[t]])return!1;for(t=0;i.length>t;t++)if(!a(e[i[t]],r[i[t]]))return!1;return!0}return!1}},{}],5:[function(e,r,t){"use strict";function a(e){e="full"==e?"full":"fast";var r=d.copy(a[e]);for(var t in a.compare)r[t]={validate:r[t],compare:a.compare[t]};return r}function s(e){var r=e.match(p);if(!r)return!1;var t=+r[1],a=+r[2];return t>=1&&12>=t&&a>=1&&m[t]>=a}function o(e,r){var t=e.match(v);if(!t)return!1;var a=t[1],s=t[2],o=t[3],i=t[5];return 23>=a&&59>=s&&59>=o&&(!r||i)}function i(e){var r=e.split(w);return s(r[0])&&o(r[1],!0)}function n(e){return 255>=e.length&&y.test(e)}function l(e){return j.test(e)&&g.test(e)}function c(e){try{return new RegExp(e),!0}catch(r){return!1}}function h(e,r){return e&&r?e>r?1:r>e?-1:e===r?0:void 0:void 0}function u(e,r){return e&&r&&(e=e.match(v),r=r.match(v),e&&r)?(e=e[1]+e[2]+e[3]+(e[4]||""),r=r[1]+r[2]+r[3]+(r[4]||""),e>r?1:r>e?-1:e===r?0:void 0):void 0}function f(e,r){if(e&&r){e=e.split(w),r=r.split(w);var t=h(e[0],r[0]);if(void 0!==t)return t||u(e[1],r[1])}}var d=e("./util"),p=/^\d\d\d\d-(\d\d)-(\d\d)$/,m=[0,31,29,31,30,31,30,31,31,30,31,30,31],v=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,y=/^[a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\.[a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?)*$/i,g=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,P=/^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,E=/^(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)+)*(?:\/)?$/i,b=/^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?)$/;r.exports=a,a.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)?(?:\:|\/)\/?[^\s]*$/i,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:y,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:P,"json-pointer":E,"relative-json-pointer":b},a.full={date:s,time:o,"date-time":i,uri:l,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:P,"json-pointer":E,"relative-json-pointer":b},a.compare={date:h,time:u,"date-time":f};var w=/t|\s/i,j=/\/|\:/},{"./util":10}],6:[function(require,module,exports){"use strict";function compile(schema,root,localRefs,baseId){function localCompile(_schema,_root,localRefs,baseId){var isRoot=!_root||_root&&_root.schema==_schema;if(_root.schema!=root.schema)return compile.call(self,_schema,_root,localRefs,baseId);var $async=_schema.$async===!0;$async&&!opts.transpile&&async.setup(opts);var sourceCode=validateGenerator({isTop:!0,schema:_schema,isRoot:isRoot,baseId:baseId,root:_root,schemaPath:"",errSchemaPath:"#",errorPath:'""',RULES:RULES,validate:validateGenerator,util:util,resolve:resolve,resolveRef:resolveRef,usePattern:usePattern,useDefault:useDefault,useCustomRule:useCustomRule,opts:opts,formats:formats,self:self});sourceCode=vars(refVal,refValCode)+vars(patterns,patternCode)+vars(defaults,defaultCode)+vars(customRules,customRuleCode)+sourceCode,opts.beautify&&(beautify?sourceCode=beautify(sourceCode,opts.beautify):console.error('"npm install js-beautify" to use beautify option'));var validate,validateCode,transpile=opts._transpileFunc;try{validateCode=$async&&transpile?transpile(sourceCode):sourceCode,eval(validateCode),refVal[0]=validate}catch(e){throw console.error("Error compiling schema, function code:",validateCode),e}return validate.schema=_schema,validate.errors=null,validate.refs=refs,validate.refVal=refVal,validate.root=isRoot?validate:_root,$async&&(validate.$async=!0),validate.sourceCode=sourceCode,validate}function resolveRef(e,r,t){r=resolve.url(e,r);var a,s,o=refs[r];if(void 0!==o)return a=refVal[o],s="refVal["+o+"]",resolvedRef(a,s);if(!t){var i=root.refs[r];if(void 0!==i)return a=root.refVal[i],s=addLocalRef(r,a),resolvedRef(a,s)}s=addLocalRef(r);var n=resolve.call(self,localCompile,root,r);if(!n){var l=localRefs&&localRefs[r];l&&(n=resolve.inlineRef(l,opts.inlineRefs)?l:compile.call(self,l,root,localRefs,e))}return n?(replaceLocalRef(r,n),resolvedRef(n,s)):void 0}function addLocalRef(e,r){var t=refVal.length;return refVal[t]=r,refs[e]=t,"refVal"+t}function replaceLocalRef(e,r){var t=refs[e];refVal[t]=r}function resolvedRef(e,r){return"object"==typeof e?{code:r,schema:e,inline:!0}:{code:r,$async:e&&e.$async}}function usePattern(e){var r=patternsHash[e];return void 0===r&&(r=patternsHash[e]=patterns.length,patterns[r]=e),"pattern"+r}function useDefault(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return util.toQuotedString(e);case"object":if(null===e)return"null";var r=stableStringify(e),t=defaultsHash[r];return void 0===t&&(t=defaultsHash[r]=defaults.length,defaults[t]=e),"default"+t}}function useCustomRule(e,r,t,a){var s,o=e.definition.compile,i=e.definition.inline,n=e.definition.macro;o?s=o.call(self,r,t):n?(s=n.call(self,r,t),opts.validateSchema!==!1&&self.validateSchema(s,!0)):s=i?i.call(self,a,e.keyword,r,t):e.definition.validate;var l=customRules.length;return customRules[l]=s,{code:"customRule"+l,validate:s}}var self=this,opts=this._opts,refVal=[void 0],refs={},patterns=[],patternsHash={},defaults=[],defaultsHash={},customRules=[];root=root||{schema:schema,refVal:refVal,refs:refs};var formats=this._formats,RULES=this.RULES;return localCompile(schema,root,localRefs,baseId)}function patternCode(e,r){return"var pattern"+e+" = new RegExp("+util.toQuotedString(r[e])+");"}function defaultCode(e){return"var default"+e+" = defaults["+e+"];"}function refValCode(e,r){return r[e]?"var refVal"+e+" = refVal["+e+"];":""}function customRuleCode(e){return"var customRule"+e+" = customRules["+e+"];"}function vars(e,r){if(!e.length)return"";for(var t="",a=0;e.length>a;a++)t+=r(a,e);return t}var resolve=require("./resolve"),util=require("./util"),stableStringify=require("json-stable-stringify"),async=require("../async"),beautify=function(){try{return require("js-beautify").js_beautify}catch(e){}}(),validateGenerator=require("../dotjs/validate");module.exports=compile;var co=require("co"),ucs2length=util.ucs2length,equal=require("./equal"),ValidationError=require("./validation_error")},{"../async":1,"../dotjs/validate":34,"./equal":4,"./resolve":7,"./util":10,"./validation_error":11,co:39,"json-stable-stringify":40}],7:[function(e,r,t){"use strict";function a(e,r,t){var o=this._refs[t];if("string"==typeof o){if(!this._refs[o])return a.call(this,e,r,o);o=this._refs[o]}if(o=o||this._schemas[t],o instanceof g)return n(o.schema,this._opts.inlineRefs)?o.schema:o.validate||this._compile(o);var i,l,c,h=s.call(this,r,t);return h&&(i=h.schema,r=h.root,c=h.baseId),i instanceof g?l=i.validate||e.call(this,i.schema,r,void 0,c):i&&(l=n(i,this._opts.inlineRefs)?i:e.call(this,i,r,void 0,c)),l}function s(e,r){var t=m.parse(r,!1,!0),a=u(t),s=h(e.schema.id);if(a!==s){var n=f(a),l=this._refs[n];if("string"==typeof l)return o.call(this,e,l,t);if(l instanceof g)l.validate||this._compile(l),e=l;else if(l=this._schemas[n],l instanceof g){if(l.validate||this._compile(l),n==f(r))return{schema:l,root:e,baseId:s};e=l}if(!e.schema)return;s=h(e.schema.id)}return i.call(this,t,s,e.schema,e)}function o(e,r,t){var a=s.call(this,e,r);if(a){var o=a.schema,n=a.baseId;return e=a.root,o.id&&(n=d(n,o.id)),i.call(this,t,n,o,e)}}function i(e,r,t,a){if(e.hash=e.hash||"","#/"==e.hash.slice(0,2)){for(var o=e.hash.split("/"),i=1;o.length>i;i++){var n=o[i];if(n){if(n=y.unescapeFragment(n),t=t[n],!t)break;if(t.id&&!P[n]&&(r=d(r,t.id)),t.$ref){var l=d(r,t.$ref),c=s.call(this,a,l);c&&(t=c.schema,a=c.root,r=c.baseId)}}}return t&&t!=a.schema?{schema:t,root:a,baseId:r}:void 0}}function n(e,r){return r===!1?!1:void 0===r||r===!0?l(e):r?c(e)<=r:void 0}function l(e){var r;if(Array.isArray(e)){for(var t=0;e.length>t;t++)if(r=e[t],"object"==typeof r&&!l(r))return!1}else for(var a in e){if("$ref"==a)return!1;if(r=e[a],"object"==typeof r&&!l(r))return!1}return!0}function c(e){var r,t=0;if(Array.isArray(e)){for(var a=0;e.length>a;a++)if(r=e[a],"object"==typeof r&&(t+=c(r)),t==1/0)return 1/0}else for(var s in e){if("$ref"==s)return 1/0;if(E[s])t++;else if(r=e[s],"object"==typeof r&&(t+=c(r)+1),t==1/0)return 1/0}return t}function h(e,r){r!==!1&&(e=f(e));var t=m.parse(e,!1,!0);return u(t)}function u(e){return(e.protocol||"")+(e.protocol?"//":"")+(e.host||"")+(e.path||"")+"#"}function f(e){return e?e.replace(b,""):""}function d(e,r){return r=f(r),m.resolve(e,r)}function p(e){function r(e,t,s){if(Array.isArray(e))for(var o=0;e.length>o;o++)r.call(this,e[o],t+"/"+o,s);else if(e&&"object"==typeof e){if("string"==typeof e.id){var i=s=s?m.resolve(s,e.id):e.id;i=f(i);var n=this._refs[i];if("string"==typeof n&&(n=this._refs[n]),n&&n.schema){if(!v(e,n.schema))throw new Error('id "'+i+'" resolves to more than one schema')}else if(i!=f(t))if("#"==i[0]){if(a[i]&&!v(e,a[i]))throw new Error('id "'+i+'" resolves to more than one schema');a[i]=e}else this._refs[i]=t}for(var l in e)r.call(this,e[l],t+"/"+y.escapeFragment(l),s)}}var t=f(e.id),a={};return r.call(this,e,h(t,!1),t),a}var m=e("url"),v=e("./equal"),y=e("./util"),g=e("./schema_obj");r.exports=a,a.normalizeId=f,a.fullPath=h,a.url=d,a.ids=p,a.inlineRef=n;var P=y.toHash(["properties","patternProperties","enum","dependencies","definitions"]),E=y.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]),b=/#\/?$/},{"./equal":4,"./schema_obj":9,"./util":10,url:48}],8:[function(e,r,t){"use strict";var a=e("./_rules"),s=e("./util");r.exports=function(){var e=[{type:"number",rules:["maximum","minimum","multipleOf"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","properties"]},{rules:["$ref","enum","not","anyOf","oneOf","allOf"]}];return e.all=["type","additionalProperties","patternProperties"],e.keywords=["additionalItems","$schema","id","title","description","default"],e.types=["number","integer","string","array","object","boolean","null"],e.forEach(function(r){r.rules=r.rules.map(function(r){return e.all.push(r),{keyword:r,code:a[r]}})}),e.keywords=s.toHash(e.all.concat(e.keywords)),e.all=s.toHash(e.all),e.types=s.toHash(e.types),e}},{"./_rules":3,"./util":10}],9:[function(e,r,t){"use strict";function a(e){s.copy(e,this)}var s=e("./util");r.exports=a},{"./util":10}],10:[function(e,r,t){"use strict";function a(e,r){r=r||{};for(var t in e)r[t]=e[t];return r}function s(e,r,t){var a=t?" !== ":" === ",s=t?" || ":" && ",o=t?"!":"",i=t?"":"!";switch(e){case"null":return r+a+"null";case"array":return o+"Array.isArray("+r+")";case"object":return"("+o+r+s+"typeof "+r+a+'"object"'+s+i+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+a+'"number"'+s+i+"("+r+" % 1))";default:return"typeof "+r+a+'"'+e+'"'}}function o(e,r){switch(e.length){case 1:return s(e[0],r,!0);default:var t="",a=n(e);a.array&&a.object&&(t=a["null"]?"(":"(!"+r+" || ",t+="typeof "+r+' !== "object")',delete a["null"],delete a.array,delete a.object),a.number&&delete a.integer;for(var o in a)t+=(t?" && ":"")+s(o,r,!0);return t}}function i(e){if(Array.isArray(e)){for(var r=[],t=0;e.length>t;t++){var a=e[t];x[a]&&(r[r.length]=a)}if(r.length)return r}else if(x[e])return[e]}function n(e){for(var r={},t=0;e.length>t;t++)r[e[t]]=!0;return r}function l(e){return"number"==typeof e?"["+e+"]":S.test(e)?"."+e:"['"+e.replace(_,"\\$&")+"']"}function c(e){return e.replace(_,"\\$&")}function h(e){for(var r,t=0,a=e.length,s=0;a>s;)t++,r=e.charCodeAt(s++),r>=55296&&56319>=r&&a>s&&(r=e.charCodeAt(s),56320==(64512&r)&&s++);return t}function u(e,r){r+="[^0-9]";var t=e.match(new RegExp(r,"g"));return t?t.length:0}function f(e,r,t){return r+="([^0-9])",t=t.replace(/\$/g,"$$$$"),e.replace(new RegExp(r,"g"),t+"$1")}function d(e){return e.replace(R,"").replace(O,"").replace(I,"if (!($1))")}function p(e,r){var t=e.match(k);return t&&2===t.length?r?e.replace(q,"").replace(D,V):e.replace(A,"").replace(L,C):e}function m(e,r){for(var t in e)if(r[t])return!0}function v(e){return"'"+c(e)+"'"}function y(e,r,t,a){var s=t?"'/' + "+r+(a?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):a?"'[' + "+r+" + ']'":"'[\\'' + "+r+" + '\\']'";return E(e,s)}function g(e,r,t){var a=v(t?"/"+j(r):l(r));return E(e,a)}function P(e,r,t){var a=e.match(U);if(!a)throw new Error("Invalid relative JSON-pointer: "+e);var s=+a[1],o=a[2];if("#"==o){if(s>=r)throw new Error("Cannot access property/index "+s+" levels up, current level is "+r);return t[r-s]}if(s>r)throw new Error("Cannot access data "+s+" levels up, current level is "+r);var i="data"+(r-s||"");if(!o)return i;for(var n=i,c=o.split("/"),h=0;c.length>h;h++){var u=c[h];u&&(i+=l($(u)),n+=" && "+i)}return n}function E(e,r){return'""'==e?r:(e+" + "+r).replace(/' \+ '/g,"")}function b(e){return $(decodeURIComponent(e))}function w(e){return encodeURIComponent(j(e))}function j(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function $(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}r.exports={copy:a,checkDataType:s,checkDataTypes:o,coerceToTypes:i,toHash:n,getProperty:l,escapeQuotes:c,ucs2length:h,varOccurences:u,varReplace:f,cleanUpCode:d,cleanUpVarErrors:p,schemaHasRules:m,stableStringify:e("json-stable-stringify"),toQuotedString:v,getPathExpr:y,getPath:g,getData:P,unescapeFragment:b,escapeFragment:w,escapeJsonPointer:j};var x=n(["string","number","integer","boolean","null"]),S=/^[a-z$_][a-z$_0-9]*$/i,_=/'|\\/g,R=/else\s*{\s*}/g,O=/if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g,I=/if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g,k=/[^v\.]errors/g,A=/var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g,q=/var errors = 0;|var vErrors = null;/g,L="return errors === 0;",C="validate.errors = null; return true;",D=/if \(errors === 0\) return true;\s*else throw new ValidationError\(vErrors\);/,V="return true;",U=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/},{"json-stable-stringify":40}],11:[function(e,r,t){"use strict";function a(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0}r.exports=a,a.prototype=Object.create(Error.prototype),a.prototype.constructor=a},{}],12:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s;if(a+="var "+u+" = undefined;",e.opts.format===!1)return a+=" "+u+" = true; ";var f=e.schema.format,d=e.opts.v5&&f.$data,p="";if(d){var m=e.util.getData(f.$data,o,e.dataPathArr),v="format"+s,y="compare"+s;a+=" var "+v+" = formats["+m+"] , "+y+" = "+v+" && "+v+".compare;"}else{var v=e.formats[f];if(!v||!v.compare)return a+=" "+u+" = true; ";var y="formats"+e.util.getProperty(f)+".compare"}var g="formatMaximum"==r,P="formatExclusive"+(g?"Maximum":"Minimum"),E=e.schema[P],b=e.opts.v5&&E&&E.$data,w=g?"<":">",j="result"+s,$=e.opts.v5&&i.$data,x=$?e.util.getData(i.$data,o,e.dataPathArr):i;if($&&(a+=" var schema"+s+" = "+x+"; ",x="schema"+s),b){var S=e.util.getData(E.$data,o,e.dataPathArr),_="exclusive"+s,R="op"+s,O="' + "+R+" + '";a+=" var schemaExcl"+s+" = "+S+"; ",S="schemaExcl"+s,a+=" if (typeof "+S+" != 'boolean' && "+S+" !== undefined) { "+u+" = false; ";var t=P,I=I||[];I.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_formatExclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: '"+P+" should be boolean' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var k=a;a=I.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+k+"]); ":" validate.errors = ["+k+"]; return false; ":" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(p+="}",a+=" else { "),$&&(a+=" if ("+x+" === undefined) "+u+" = true; else if (typeof "+x+" != 'string') "+u+" = false; else { ",p+="}"),d&&(a+=" if (!"+y+") "+u+" = true; else { ",p+="}"),a+=" var "+j+" = "+y+"("+h+", ",a+=$?""+x:""+e.util.toQuotedString(i),a+=" ); if ("+j+" === undefined) "+u+" = false; var "+_+" = "+S+" === true; if ("+u+" === undefined) { "+u+" = "+_+" ? "+j+" "+w+" 0 : "+j+" "+w+"= 0; } if (!"+u+") var op"+s+" = "+_+" ? '"+w+"' : '"+w+"=';"}else{var _=E===!0,O=w;_||(O+="=");var R="'"+O+"'";$&&(a+=" if ("+x+" === undefined) "+u+" = true; else if (typeof "+x+" != 'string') "+u+" = false; else { ",p+="}"),d&&(a+=" if (!"+y+") "+u+" = true; else { ",p+="}"),a+=" var "+j+" = "+y+"("+h+", ",a+=$?""+x:""+e.util.toQuotedString(i),a+=" ); if ("+j+" === undefined) "+u+" = false; if ("+u+" === undefined) "+u+" = "+j+" "+w,_||(a+="="),a+=" 0;"}a+=""+p+"if (!"+u+") { ";var t=r,I=I||[];I.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_formatLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { comparison: '+R+", limit: ",a+=$?""+x:""+e.util.toQuotedString(i),a+=" , exclusive: "+_+" } ",e.opts.messages!==!1&&(a+=" , message: 'should be "+O+' "',a+=$?"' + "+x+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=$?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var k=a;return a=I.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+k+"]); ":" validate.errors = ["+k+"]; return false; ":" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="}"}},{}],13:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s);var d="maximum"==r,p=d?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[p],v=e.opts.v5&&m&&m.$data,y=d?"<":">",g=d?">":"<";if(v){var P=e.util.getData(m.$data,o,e.dataPathArr),E="exclusive"+s,b="op"+s,w="' + "+b+" + '";a+=" var schemaExcl"+s+" = "+P+"; ",P="schemaExcl"+s,a+=" var exclusive"+s+"; if (typeof "+P+" != 'boolean' && typeof "+P+" != 'undefined') { ";var t=p,j=j||[];j.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: '"+p+" should be boolean' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var $=a;a=j.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else if( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),a+=" ((exclusive"+s+" = "+P+" === true) ? "+h+" "+g+"= "+f+" : "+h+" "+g+" "+f+")) { var op"+s+" = exclusive"+s+" ? '"+y+"' : '"+y+"=';"}else{var E=m===!0,w=y;E||(w+="=");var b="'"+w+"'";a+=" if ( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),a+=" "+h+" "+g,E&&(a+="="),a+=" "+f+") {"}var t=r,j=j||[];j.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { comparison: '+b+", limit: "+f+", exclusive: "+E+" } ",e.opts.messages!==!1&&(a+=" , message: 'should be "+w+" ",a+=u?"' + "+f:""+i+"'"),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var $=a;return a=j.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s);var d="maxItems"==r?">":"<";a+="if ( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),a+=" "+h+".length "+d+" "+f+") { ";var t=r,p=p||[];p.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { limit: '+f+" } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have ",a+="maxItems"==r?"more":"less",a+=" than ",a+=u?"' + "+f+" + '":""+i,a+=" items' "),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var m=a;return a=p.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s);var d="maxLength"==r?">":"<";a+="if ( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),a+=e.opts.unicode===!1?" "+h+".length ":" ucs2length("+h+") ",a+=" "+d+" "+f+") { ";var t=r,p=p||[];p.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { limit: '+f+" } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT be ",a+="maxLength"==r?"longer":"shorter",a+=" than ",a+=u?"' + "+f+" + '":""+i,a+=" characters' "),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var m=a;return a=p.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i; -u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s);var d="maxProperties"==r?">":"<";a+="if ( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),a+=" Object.keys("+h+").length "+d+" "+f+") { ";var t=r,p=p||[];p.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { limit: '+f+" } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have ",a+="maxProperties"==r?"more":"less",a+=" than ",a+=u?"' + "+f+" + '":""+i,a+=" properties' "),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var m=a;return a=p.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],17:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.schema[r],s=e.schemaPath+"."+r,o=e.errSchemaPath+"/"+r,i=!e.opts.allErrors,n=e.util.copy(e),l="";n.level++;var c=n.baseId,h=a;if(h)for(var u,f=-1,d=h.length-1;d>f;)u=h[f+=1],e.util.schemaHasRules(u,e.RULES.all)&&(n.schema=u,n.schemaPath=s+"["+f+"]",n.errSchemaPath=o+"/"+f,t+=" "+e.validate(n)+" ",n.baseId=c,i&&(t+=" if (valid"+n.level+") { ",l+="}"));return i&&(t+=" "+l.slice(0,-1)),t=e.util.cleanUpCode(t)}},{}],18:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m=i.every(function(r){return e.util.schemaHasRules(r,e.RULES.all)});if(m){var v=d.baseId;a+=" var "+f+" = errors; var "+u+" = false; ";var y=e.compositeRule;e.compositeRule=d.compositeRule=!0;var g=i;if(g)for(var P,E=-1,b=g.length-1;b>E;)P=g[E+=1],d.schema=P,d.schemaPath=n+"["+E+"]",d.errSchemaPath=l+"/"+E,a+=" "+e.validate(d)+" ",d.baseId=v,a+=" "+u+" = "+u+" || valid"+d.level+"; if (!"+u+") { ",p+="}";e.compositeRule=d.compositeRule=y,a+=" "+p+" if (!"+u+") { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"anyOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: 'should match some schema in anyOf' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } "),a=e.util.cleanUpCode(a)}else c&&(a+=" if (true) { ");return a}},{}],19:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f=e.opts.v5&&i.$data,d=f?e.util.getData(i.$data,o,e.dataPathArr):i;f&&(a+=" var schema"+s+" = "+d+"; ",d="schema"+s),f||(a+=" var schema"+s+" = validate.schema"+n+";"),a+="var "+u+" = equal("+h+", schema"+s+"); if (!"+u+") { ";var p=p||[];p.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"constant")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: 'should be equal to constant' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var m=a;return a=p.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }"}},{}],20:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+s,f=e.util.copy(e),d="";f.level++;var p={},m={};for(P in i){var v=i[P],y=Array.isArray(v)?m:p;y[P]=v}a+="var "+u+" = errors;";var g=e.errorPath;a+="var missing"+s+";";for(var P in m){if(y=m[P],a+=" if ("+h+e.util.getProperty(P)+" !== undefined ",c){a+=" && ( ";var E=y;if(E)for(var b,w=-1,j=E.length-1;j>w;){b=E[w+=1],w&&(a+=" || ");var $=e.util.getProperty(b);a+=" ( "+h+$+" === undefined && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?b:$)+") ) "}a+=")) { ";var x="missing"+s,S="' + "+x+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(g,x,!0):g+" + "+x);var _=_||[];_.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"dependencies")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { property: '"+e.util.escapeQuotes(P)+"', missingProperty: '"+S+"', depsCount: "+y.length+", deps: '"+e.util.escapeQuotes(1==y.length?y[0]:y.join(", "))+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have ",a+=1==y.length?"property "+e.util.escapeQuotes(y[0]):"properties "+e.util.escapeQuotes(y.join(", ")),a+=" when property "+e.util.escapeQuotes(P)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var R=a;a=_.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+R+"]); ":" validate.errors = ["+R+"]; return false; ":" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{a+=" ) { ";var O=y;if(O)for(var I,k=-1,A=O.length-1;A>k;){I=O[k+=1];var $=e.util.getProperty(I),S=e.util.escapeQuotes(I);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(g,I,e.opts.jsonPointers)),a+=" if ("+h+$+" === undefined) { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"dependencies")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { property: '"+e.util.escapeQuotes(P)+"', missingProperty: '"+S+"', depsCount: "+y.length+", deps: '"+e.util.escapeQuotes(1==y.length?y[0]:y.join(", "))+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have ",a+=1==y.length?"property "+e.util.escapeQuotes(y[0]):"properties "+e.util.escapeQuotes(y.join(", ")),a+=" when property "+e.util.escapeQuotes(P)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}a+=" } ",c&&(d+="}",a+=" else { ")}e.errorPath=g;var q=f.baseId;for(var P in p){var v=p[P];e.util.schemaHasRules(v,e.RULES.all)&&(a+=" valid"+f.level+" = true; if ("+h+"['"+P+"'] !== undefined) { ",f.schema=v,f.schemaPath=n+e.util.getProperty(P),f.errSchemaPath=l+"/"+e.util.escapeFragment(P),a+=" "+e.validate(f)+" ",f.baseId=q,a+=" } ",c&&(a+=" if (valid"+f.level+") { ",d+="}"))}return c&&(a+=" "+d+" if ("+u+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],21:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f=e.opts.v5&&i.$data,d=f?e.util.getData(i.$data,o,e.dataPathArr):i;f&&(a+=" var schema"+s+" = "+d+"; ",d="schema"+s);var p="i"+s;f||(a+=" var schema"+s+" = validate.schema"+n+";"),a+="var "+u+";",f&&(a+=" if (schema"+s+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+s+")) "+u+" = false; else {"),a+=""+u+" = false;for (var "+p+"=0; "+p+"<schema"+s+".length; "+p+"++) if (equal("+h+", schema"+s+"["+p+"])) { "+u+" = true; break; }",f&&(a+=" } "),a+=" if (!"+u+") { ";var m=m||[];m.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"enum")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var v=a;return a=m.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",c&&(a+=" else { "),a}},{}],22:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||"");if(e.opts.format===!1)return c&&(a+=" if (true) { "),a;var u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;if(u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s),u){var d="format"+s;a+=" var "+d+" = formats["+f+"]; var isObject"+s+" = typeof "+d+" == 'object' && !("+d+" instanceof RegExp) && "+d+".validate; if (isObject"+s+") { var async"+s+" = "+d+".async; "+d+" = "+d+".validate; } if ( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'string') || "),a+=" ("+d+" && !(typeof "+d+" == 'function' ? ",a+=e.async?" (async"+s+" ? "+e.yieldAwait+" "+d+"("+h+") : "+d+"("+h+")) ":" "+d+"("+h+") ",a+=" : "+d+".test("+h+")))) {"}else{var d=e.formats[i];if(!d)return c&&(a+=" if (true) { "),a;var p="object"==typeof d&&!(d instanceof RegExp)&&d.validate;if(p){var m=d.async===!0;d=d.validate}if(m){if(!e.async)throw new Error("async format in sync schema");var v="formats"+e.util.getProperty(i)+".validate";a+=" if (!("+e.yieldAwait+" "+v+"("+h+"))) { "}else{a+=" if (! ";var v="formats"+e.util.getProperty(i);p&&(v+=".validate"),a+="function"==typeof d?" "+v+"("+h+") ":" "+v+".test("+h+") ",a+=") { "}}var y=y||[];y.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"format")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { format: ',a+=u?""+f:""+e.util.toQuotedString(i),a+=" } ",e.opts.messages!==!1&&(a+=" , message: 'should match format \"",a+=u?"' + "+f+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var g=a;return a=y.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+g+"]); ":" validate.errors = ["+g+"]; return false; ":" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},{}],23:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m=d.dataLevel=e.dataLevel+1,v="data"+m,y=e.baseId;if(a+="var "+f+" = errors;var "+u+";",Array.isArray(i)){var g=e.schema.additionalItems;if(g===!1){a+=" "+u+" = "+h+".length <= "+i.length+"; ";var P=l;l=e.errSchemaPath+"/additionalItems",a+=" if (!"+u+") { ";var E=E||[];E.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"additionalItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { limit: '+i.length+" } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have more than "+i.length+" items' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var b=a;a=E.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+b+"]); ":" validate.errors = ["+b+"]; return false; ":" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",l=P,c&&(p+="}",a+=" else { ")}var w=i;if(w)for(var j,$=-1,x=w.length-1;x>$;)if(j=w[$+=1],e.util.schemaHasRules(j,e.RULES.all)){a+=" valid"+d.level+" = true; if ("+h+".length > "+$+") { ";var S=h+"["+$+"]";d.schema=j,d.schemaPath=n+"["+$+"]",d.errSchemaPath=l+"/"+$,d.errorPath=e.util.getPathExpr(e.errorPath,$,e.opts.jsonPointers,!0),d.dataPathArr[m]=$;var _=e.validate(d);d.baseId=y,a+=e.util.varOccurences(_,v)<2?" "+e.util.varReplace(_,v,S)+" ":" var "+v+" = "+S+"; "+_+" ",a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}if("object"==typeof g&&e.util.schemaHasRules(g,e.RULES.all)){d.schema=g,d.schemaPath=e.schemaPath+".additionalItems",d.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" valid"+d.level+" = true; if ("+h+".length > "+i.length+") { for (var i"+s+" = "+i.length+"; i"+s+" < "+h+".length; i"+s+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,"i"+s,e.opts.jsonPointers,!0);var S=h+"[i"+s+"]";d.dataPathArr[m]="i"+s;var _=e.validate(d);d.baseId=y,a+=e.util.varOccurences(_,v)<2?" "+e.util.varReplace(_,v,S)+" ":" var "+v+" = "+S+"; "+_+" ",c&&(a+=" if (!valid"+d.level+") break; "),a+=" } } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}}else if(e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" for (var i"+s+" = 0; i"+s+" < "+h+".length; i"+s+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,"i"+s,e.opts.jsonPointers,!0);var S=h+"[i"+s+"]";d.dataPathArr[m]="i"+s;var _=e.validate(d);d.baseId=y,a+=e.util.varOccurences(_,v)<2?" "+e.util.varReplace(_,v,S)+" ":" var "+v+" = "+S+"; "+_+" ",c&&(a+=" if (!valid"+d.level+") break; "),a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}return c&&(a+=" "+p+" if ("+f+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],24:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s),a+="var division"+s+";if (",u&&(a+=" "+f+" !== undefined && ( typeof "+f+" != 'number' || "),a+=" (division"+s+" = "+h+" / "+f+", ",a+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+s+") - division"+s+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+s+" !== parseInt(division"+s+") ",a+=" ) ",u&&(a+=" ) "),a+=" ) { ";var d=d||[];d.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"multipleOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { multipleOf: '+f+" } ",e.opts.messages!==!1&&(a+=" , message: 'should be multiple of ",a+=u?"' + "+f:""+i+"'"),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var p=a;return a=d.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],25:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+s,f=e.util.copy(e);if(f.level++,e.util.schemaHasRules(i,e.RULES.all)){f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" var "+u+" = errors; ";var d=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.createErrors=!1;var p;f.opts.allErrors&&(p=f.opts.allErrors,f.opts.allErrors=!1),a+=" "+e.validate(f)+" ",f.createErrors=!0,p&&(f.opts.allErrors=p),e.compositeRule=f.compositeRule=d,a+=" if (valid"+f.level+") { ";var m=m||[];m.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"not")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var v=a;a=m.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } ")}else a+=" var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"not")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(a+=" if (false) { ");return a}},{}],26:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++,a+="var "+f+" = errors;var prevValid"+s+" = false;var "+u+" = false;";var m=d.baseId,v=e.compositeRule;e.compositeRule=d.compositeRule=!0;var y=i;if(y)for(var g,P=-1,E=y.length-1;E>P;)g=y[P+=1],e.util.schemaHasRules(g,e.RULES.all)?(d.schema=g,d.schemaPath=n+"["+P+"]",d.errSchemaPath=l+"/"+P,a+=" "+e.validate(d)+" ",d.baseId=m):a+=" var valid"+d.level+" = true; ",P&&(a+=" if (valid"+d.level+" && prevValid"+s+") "+u+" = false; else { ",p+="}"),a+=" if (valid"+d.level+") "+u+" = prevValid"+s+" = true;";e.compositeRule=d.compositeRule=v,a+=""+p+"if (!"+u+") { ";var b=b||[];b.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"oneOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: {} ',e.opts.messages!==!1&&(a+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var w=a;return a=b.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; }",e.opts.allErrors&&(a+=" } "),a}},{}],27:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u=e.opts.v5&&i.$data,f=u?e.util.getData(i.$data,o,e.dataPathArr):i;u&&(a+=" var schema"+s+" = "+f+"; ",f="schema"+s);var d=u?"(new RegExp("+f+"))":e.usePattern(i);a+="if ( ",u&&(a+=" ("+f+" !== undefined && typeof "+f+" != 'string') || "),a+=" !"+d+".test("+h+") ) { ";var p=p||[];p.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"pattern")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { pattern: ',a+=u?""+f:""+e.util.toQuotedString(i),a+=" } ",e.opts.messages!==!1&&(a+=" , message: 'should match pattern \"",a+=u?"' + "+f+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=u?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var m=a;return a=p.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],28:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="key"+s,d="patternMatched"+s,p="";a+="var "+u+" = true;";var m=i;if(m)for(var v,y=-1,g=m.length-1;g>y;){v=m[y+=1],a+=" var "+d+" = false; for (var "+f+" in "+h+") { "+d+" = "+e.usePattern(v)+".test("+f+"); if ("+d+") break; } ";var P=e.util.escapeQuotes(v);a+=" if (!"+d+") { "+u+" = false; var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternRequired")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingPattern: '"+P+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have property matching pattern \\'"+P+"\\'' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ",c&&(p+="}",a+=" else { ")}return a+=""+p}},{}],29:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m=d.dataLevel=e.dataLevel+1,v="data"+m,y=Object.keys(i||{}),g=e.schema.patternProperties||{},P=Object.keys(g),E=e.schema.additionalProperties,b=y.length||P.length,w=E===!1,j="object"==typeof E&&Object.keys(E).length,$=e.opts.removeAdditional,x=w||j||$,S=e.baseId,_=e.schema.required;if(_&&(!e.opts.v5||!_.$data)&&e.opts.loopRequired>_.length)var R=e.util.toHash(_);if(e.opts.v5)var O=e.schema.patternGroups||{},I=Object.keys(O);if(a+="var "+f+" = errors;var valid"+d.level+" = true;",x){if(a+=" for (var key"+s+" in "+h+") { ",b){if(a+=" var isAdditional"+s+" = !(false ",y.length)if(y.length>5)a+=" || validate.schema"+n+"[key"+s+"] ";else{var k=y;if(k)for(var A,q=-1,L=k.length-1;L>q;)A=k[q+=1],a+=" || key"+s+" == "+e.util.toQuotedString(A)+" "}if(P.length){var C=P;if(C)for(var D,V=-1,U=C.length-1;U>V;)D=C[V+=1],a+=" || "+e.usePattern(D)+".test(key"+s+") "}if(e.opts.v5&&I&&I.length){var z=I;if(z)for(var T,V=-1,M=z.length-1;M>V;)T=z[V+=1],a+=" || "+e.usePattern(T)+".test(key"+s+") "}a+=" ); if (isAdditional"+s+") { "}if("all"==$)a+=" delete "+h+"[key"+s+"]; ";else{var Q=e.errorPath,N="' + key"+s+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers)),w)if($)a+=" delete "+h+"[key"+s+"]; ";else{a+=" valid"+d.level+" = false; ";var H=l;l=e.errSchemaPath+"/additionalProperties";var F=F||[];F.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"additionalProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { additionalProperty: '"+N+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have additional properties' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var G=a;a=F.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+G+"]); ":" validate.errors = ["+G+"]; return false; ":" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=H,c&&(a+=" break; ")}else if(j)if("failing"==$){a+=" var "+f+" = errors; ";var J=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.schema=E,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers);var K=h+"[key"+s+"]";d.dataPathArr[m]="key"+s;var B=e.validate(d);d.baseId=S,a+=e.util.varOccurences(B,v)<2?" "+e.util.varReplace(B,v,K)+" ":" var "+v+" = "+K+"; "+B+" ",a+=" if (!valid"+d.level+") { errors = "+f+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+h+"[key"+s+"]; } ",e.compositeRule=d.compositeRule=J}else{d.schema=E,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers);var K=h+"[key"+s+"]";d.dataPathArr[m]="key"+s;var B=e.validate(d);d.baseId=S,a+=e.util.varOccurences(B,v)<2?" "+e.util.varReplace(B,v,K)+" ":" var "+v+" = "+K+"; "+B+" ",c&&(a+=" if (!valid"+d.level+") break; ")}e.errorPath=Q}b&&(a+=" } "),a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}var Y=e.opts.useDefaults&&!e.compositeRule;if(y.length){var Z=y;if(Z)for(var A,W=-1,X=Z.length-1;X>W;){A=Z[W+=1];var ee=i[A];if(e.util.schemaHasRules(ee,e.RULES.all)){var re=e.util.getProperty(A),K=h+re,te=Y&&void 0!==ee["default"];d.schema=ee,d.schemaPath=n+re,d.errSchemaPath=l+"/"+e.util.escapeFragment(A),d.errorPath=e.util.getPath(e.errorPath,A,e.opts.jsonPointers),d.dataPathArr[m]=e.util.toQuotedString(A);var B=e.validate(d);if(d.baseId=S,e.util.varOccurences(B,v)<2){B=e.util.varReplace(B,v,K);var ae=K}else{var ae=v;a+=" var "+v+" = "+K+"; "}if(te)a+=" "+B+" ";else{if(R&&R[A]){a+=" if ("+ae+" === undefined) { valid"+d.level+" = false; ";var Q=e.errorPath,H=l,se=e.util.escapeQuotes(A);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(Q,A,e.opts.jsonPointers)),l=e.errSchemaPath+"/required";var F=F||[];F.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingProperty: '"+se+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+se+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var G=a;a=F.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+G+"]); ":" validate.errors = ["+G+"]; return false; ":" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=H,e.errorPath=Q,a+=" } else { "}else a+=c?" if ("+ae+" === undefined) { valid"+d.level+" = true; } else { ":" if ("+ae+" !== undefined) { ";a+=" "+B+" } "}}c&&(a+=" if (valid"+d.level+") { ",p+="}")}}var oe=P;if(oe)for(var D,ie=-1,ne=oe.length-1;ne>ie;){D=oe[ie+=1];var ee=g[D];if(e.util.schemaHasRules(ee,e.RULES.all)){d.schema=ee,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(D),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(D),a+=" for (var key"+s+" in "+h+") { if ("+e.usePattern(D)+".test(key"+s+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers);var K=h+"[key"+s+"]";d.dataPathArr[m]="key"+s;var B=e.validate(d);d.baseId=S,a+=e.util.varOccurences(B,v)<2?" "+e.util.varReplace(B,v,K)+" ":" var "+v+" = "+K+"; "+B+" ",c&&(a+=" if (!valid"+d.level+") break; "),a+=" } ",c&&(a+=" else valid"+d.level+" = true; "),a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}}if(e.opts.v5){var le=I;if(le)for(var T,ce=-1,he=le.length-1;he>ce;){T=le[ce+=1];var ue=O[T],ee=ue.schema;if(e.util.schemaHasRules(ee,e.RULES.all)){d.schema=ee,d.schemaPath=e.schemaPath+".patternGroups"+e.util.getProperty(T)+".schema",d.errSchemaPath=e.errSchemaPath+"/patternGroups/"+e.util.escapeFragment(T)+"/schema",a+=" var pgPropCount"+s+" = 0; for (var key"+s+" in "+h+") { if ("+e.usePattern(T)+".test(key"+s+")) { pgPropCount"+s+"++; ",d.errorPath=e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers);var K=h+"[key"+s+"]";d.dataPathArr[m]="key"+s;var B=e.validate(d);d.baseId=S,a+=e.util.varOccurences(B,v)<2?" "+e.util.varReplace(B,v,K)+" ":" var "+v+" = "+K+"; "+B+" ",c&&(a+=" if (!valid"+d.level+") break; "),a+=" } ",c&&(a+=" else valid"+d.level+" = true; "),a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}");var fe=ue.minimum,de=ue.maximum;if(void 0!==fe||void 0!==de){a+=" var "+u+" = true; ";var H=l;if(void 0!==fe){var pe=fe,me="minimum",ve="less";a+=" "+u+" = pgPropCount"+s+" >= "+fe+"; ",l=e.errSchemaPath+"/patternGroups/minimum",a+=" if (!"+u+") { ";var F=F||[];F.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternGroups")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { reason: '"+me+"', limit: "+pe+", pattern: '"+e.util.escapeQuotes(T)+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have "+ve+" than "+pe+' properties matching pattern "'+e.util.escapeQuotes(T)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var G=a;a=F.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+G+"]); ":" validate.errors = ["+G+"]; return false; ":" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",void 0!==de&&(a+=" else ")}if(void 0!==de){var pe=de,me="maximum",ve="more";a+=" "+u+" = pgPropCount"+s+" <= "+de+"; ",l=e.errSchemaPath+"/patternGroups/maximum",a+=" if (!"+u+") { ";var F=F||[];F.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternGroups")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { reason: '"+me+"', limit: "+pe+", pattern: '"+e.util.escapeQuotes(T)+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have "+ve+" than "+pe+' properties matching pattern "'+e.util.escapeQuotes(T)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var G=a;a=F.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+G+"]); ":" validate.errors = ["+G+"]; return false; ":" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } "}l=H,c&&(a+=" if ("+u+") { ",p+="}")}}}}return c&&(a+=" "+p+" if ("+f+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],30:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(n||""),f="valid"+i;if("#"==l||"#/"==l)e.isRoot?(a=e.async,s="validate"):(a=e.root.schema.$async===!0,s="root.refVal[0]");else{var d=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===d){var p="can't resolve reference "+l+" from id "+e.baseId;if("fail"==e.opts.missingRefs){console.log(p);var m=m||[];m.push(o),o="",e.createErrors!==!1?(o+=" { keyword: '"+(t||"$ref")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+c+"\" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",e.opts.messages!==!1&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var v=o;o=m.pop(),o+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs){var y=new Error(p);throw y.missingRef=e.resolve.url(e.baseId,l),y.missingSchema=e.resolve.normalizeId(e.resolve.fullPath(y.missingRef)),y}console.log(p),h&&(o+=" if (true) { ")}}else if(d.inline){var g=e.util.copy(e);g.level++,g.schema=d.schema,g.schemaPath="",g.errSchemaPath=l;var P=e.validate(g).replace(/validate\.schema/g,d.code);o+=" "+P+" ",h&&(o+=" if (valid"+g.level+") { ")}else a=d.$async===!0,s=d.code}if(s){var m=m||[];m.push(o),o="",o+=e.opts.passContext?" "+s+".call(this, ":" "+s+"( ",o+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath),o+=n?" , data"+(n-1||"")+" , "+e.dataPathArr[n]+" ":" , parentData , parentDataProperty ",o+=") ";var E=o;if(o=m.pop(),a){if(!e.async)throw new Error("async schema referenced by sync schema");o+=" try { ",h&&(o+="var "+f+" ="),o+=" "+e.yieldAwait+" "+E+"; } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; } ",h&&(o+=" if ("+f+") { ")}else o+=" if (!"+E+") { if (vErrors === null) vErrors = "+s+".errors; else vErrors = vErrors.concat("+s+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},{}],31:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f=e.opts.v5&&i.$data,d=f?e.util.getData(i.$data,o,e.dataPathArr):i; -if(f&&(a+=" var schema"+s+" = "+d+"; ",d="schema"+s),!f)if(e.opts.loopRequired>i.length&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],m=i;if(m)for(var v,y=-1,g=m.length-1;g>y;){v=m[y+=1];var P=e.schema.properties[v];P&&e.util.schemaHasRules(P,e.RULES.all)||(p[p.length]=v)}}else var p=i;if(f||p.length){var E=e.errorPath,b=f||p.length>=e.opts.loopRequired;if(c)if(a+=" var missing"+s+"; ",b){f||(a+=" var schema"+s+" = validate.schema"+n+"; ");var w="i"+s,j="schema"+s+"["+w+"]",$="' + "+j+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,j,e.opts.jsonPointers)),a+=" var "+u+" = true; ",f&&(a+=" if (schema"+s+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+s+")) "+u+" = false; else {"),a+=" for (var "+w+" = 0; "+w+" < schema"+s+".length; "+w+"++) { "+u+" = "+h+"[schema"+s+"["+w+"]] !== undefined; if (!"+u+") break; } ",f&&(a+=" } "),a+=" if (!"+u+") { ";var x=x||[];x.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var S=a;a=x.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else{a+=" if ( ";var _=p;if(_)for(var R,w=-1,O=_.length-1;O>w;){R=_[w+=1],w&&(a+=" || ");var I=e.util.getProperty(R);a+=" ( "+h+I+" === undefined && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?R:I)+") ) "}a+=") { ";var j="missing"+s,$="' + "+j+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,j,!0):E+" + "+j);var x=x||[];x.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var S=a;a=x.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else if(b){f||(a+=" var schema"+s+" = validate.schema"+n+"; ");var w="i"+s,j="schema"+s+"["+w+"]",$="' + "+j+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,j,e.opts.jsonPointers)),f&&(a+=" if (schema"+s+" && !Array.isArray(schema"+s+")) { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (schema"+s+" !== undefined) { "),a+=" for (var "+w+" = 0; "+w+" < schema"+s+".length; "+w+"++) { if ("+h+"[schema"+s+"["+w+"]] === undefined) { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",f&&(a+=" } ")}else{var k=p;if(k)for(var A,q=-1,L=k.length-1;L>q;){A=k[q+=1];var I=e.util.getProperty(A),$=e.util.escapeQuotes(A);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(E,A,e.opts.jsonPointers)),a+=" if ("+h+I+" === undefined) { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+"\" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=E}else c&&(a+=" if (true) {");return a}},{}],32:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m,v="ifPassed"+e.level,y=d.baseId;a+="var "+v+";";var g=i;if(g)for(var P,E=-1,b=g.length-1;b>E;){if(P=g[E+=1],E&&!m&&(a+=" if (!"+v+") { ",p+="}"),P["if"]&&e.util.schemaHasRules(P["if"],e.RULES.all)){a+=" var "+f+" = errors; ";var w=e.compositeRule;if(e.compositeRule=d.compositeRule=!0,d.createErrors=!1,d.schema=P["if"],d.schemaPath=n+"["+E+"].if",d.errSchemaPath=l+"/"+E+"/if",a+=" "+e.validate(d)+" ",d.baseId=y,d.createErrors=!0,e.compositeRule=d.compositeRule=w,a+=" "+v+" = valid"+d.level+"; if ("+v+") { ","boolean"==typeof P.then){if(P.then===!1){var j=j||[];j.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"switch")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { caseIndex: '+E+" } ",e.opts.messages!==!1&&(a+=" , message: 'should pass \"switch\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var $=a;a=j.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" var valid"+d.level+" = "+P.then+"; "}else d.schema=P.then,d.schemaPath=n+"["+E+"].then",d.errSchemaPath=l+"/"+E+"/then",a+=" "+e.validate(d)+" ",d.baseId=y;a+=" } else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } } "}else if(a+=" "+v+" = true; ","boolean"==typeof P.then){if(P.then===!1){var j=j||[];j.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"switch")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { caseIndex: '+E+" } ",e.opts.messages!==!1&&(a+=" , message: 'should pass \"switch\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var $=a;a=j.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" var valid"+d.level+" = "+P.then+"; "}else d.schema=P.then,d.schemaPath=n+"["+E+"].then",d.errSchemaPath=l+"/"+E+"/then",a+=" "+e.validate(d)+" ",d.baseId=y;m=P["continue"]}return a+=""+p+"var "+u+" = valid"+d.level+"; ",a=e.util.cleanUpCode(a)}},{}],33:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f=e.opts.v5&&i.$data,d=f?e.util.getData(i.$data,o,e.dataPathArr):i;if(f&&(a+=" var schema"+s+" = "+d+"; ",d="schema"+s),(i||f)&&e.opts.uniqueItems!==!1){f&&(a+=" var "+u+"; if ("+d+" === false || "+d+" === undefined) "+u+" = true; else if (typeof "+d+" != 'boolean') "+u+" = false; else { "),a+=" var "+u+" = true; if ("+h+".length > 1) { var i = "+h+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+h+"[i], "+h+"[j])) { "+u+" = false; break outer; } } } } ",f&&(a+=" } "),a+=" if (!"+u+") { ";var p=p||[];p.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"uniqueItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+l+'" , params: { i: i, j: j } ',e.opts.messages!==!1&&(a+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(a+=" , schema: ",a+=f?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var m=a;a=p.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { ")}else c&&(a+=" if (true) { ");return a}},{}],34:[function(e,r,t){"use strict";r.exports=function(e,r){function t(e){for(var r=0;e.rules.length>r;r++)if(a(e.rules[r]))return!0}function a(r){return void 0!==e.schema[r.keyword]||"properties"==r.keyword&&(e.schema.additionalProperties===!1||"object"==typeof e.schema.additionalProperties||e.schema.patternProperties&&Object.keys(e.schema.patternProperties).length||e.opts.v5&&e.schema.patternGroups&&Object.keys(e.schema.patternGroups).length)}var s="",o=e.schema.$async===!0;if(e.isTop){var i=e.isTop,n=e.level=0,l=e.dataLevel=0,c="data";if(e.rootId=e.resolve.fullPath(e.root.schema.id),e.baseId=e.baseId||e.rootId,o){e.async=!0;var h="es7"==e.opts.async;e.yieldAwait=h?"await":"yield"}delete e.isTop,e.dataPathArr=[void 0],s+=" validate = ",o?h?s+=" (async function ":("co*"==e.opts.async&&(s+="co.wrap"),s+="(function* "):s+=" (function ",s+=" (data, dataPath, parentData, parentDataProperty) { 'use strict'; var vErrors = null; ",s+=" var errors = 0; "}else{var n=e.level,l=e.dataLevel,c="data"+(l||"");if(e.schema.id&&(e.baseId=e.resolve.url(e.baseId,e.schema.id)),o&&!e.async)throw new Error("async schema in sync schema");s+=" var errs_"+n+" = errors;"}var u,f="valid"+n,d=!e.opts.allErrors,p="",m="",v=e.schema.type,y=Array.isArray(v);if(v&&e.opts.coerceTypes){var g=e.util.coerceToTypes(v);if(g){var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",b=y?"checkDataTypes":"checkDataType";s+=" if ("+e.util[b](v,c,!0)+") { ";var w="dataType"+n,j="coerced"+n;s+=" var "+w+" = typeof "+c+"; var "+j+" = undefined; ";var $="",x=g;if(x)for(var S,_=-1,R=x.length-1;R>_;)S=x[_+=1],_&&(s+=" if ("+j+" === undefined) { ",$+="}"),"string"==S?s+=" if ("+w+" == 'number' || "+w+" == 'boolean') "+j+" = '' + "+c+"; else if ("+c+" === null) "+j+" = ''; ":"number"==S||"integer"==S?(s+=" if ("+w+" == 'boolean' || "+c+" === null || ("+w+" == 'string' && "+c+" && "+c+" == +"+c+" ","integer"==S&&(s+=" && !("+c+" % 1)"),s+=")) "+j+" = +"+c+"; "):"boolean"==S?s+=" if ("+c+" === 'false' || "+c+" === 0 || "+c+" === null) "+j+" = false; else if ("+c+" === 'true' || "+c+" === 1) "+j+" = true; ":"null"==S&&(s+=" if ("+c+" === '' || "+c+" === 0 || "+c+" === false) "+j+" = null; ");s+=" "+$+" if ("+j+" === undefined) { ";var O=O||[];O.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+E+"\" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;if(s=O.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { ",l){var k="data"+(l-1||""),A=e.dataPathArr[l];s+=" "+c+" = "+k+"["+A+"] = "+j+"; "}else s+=" data = "+j+"; if (parentData !== undefined) parentData[parentDataProperty] = "+j+"; ";s+=" } } "}}var q=e.RULES;if(q)for(var L,C=-1,D=q.length-1;D>C;)if(L=q[C+=1],t(L)){if(L.type&&(s+=" if ("+e.util.checkDataType(L.type,c)+") { "),e.opts.useDefaults&&!e.compositeRule)if("object"==L.type&&e.schema.properties){var V=e.schema.properties,U=Object.keys(V),z=U;if(z)for(var T,M=-1,Q=z.length-1;Q>M;){T=z[M+=1];var N=V[T];if(void 0!==N["default"]){var H=c+e.util.getProperty(T);s+=" if ("+H+" === undefined) "+H+" = ",s+="shared"==e.opts.useDefaults?" "+e.useDefault(N["default"])+" ":" "+JSON.stringify(N["default"])+" ",s+="; "}}}else if("array"==L.type&&Array.isArray(e.schema.items)){var F=e.schema.items;if(F)for(var N,_=-1,G=F.length-1;G>_;)if(N=F[_+=1],void 0!==N["default"]){var H=c+"["+_+"]";s+=" if ("+H+" === undefined) "+H+" = ",s+="shared"==e.opts.useDefaults?" "+e.useDefault(N["default"])+" ":" "+JSON.stringify(N["default"])+" ",s+="; "}}var J=L.rules;if(J)for(var K,B=-1,Y=J.length-1;Y>B;)if(K=J[B+=1],a(K)){if(K.custom){var V=e.schema[K.keyword],Z=e.useCustomRule(K,V,e.schema,e),W=Z.code+".errors",P=e.schemaPath+"."+K.keyword,E=e.errSchemaPath+"/"+K.keyword,X="errs"+n,_="i"+n,ee="ruleErr"+n,re=K.definition,te=re.async,ae=re.inline,se=re.macro;if(te&&!e.async)throw new Error("async keyword in sync schema");if(ae||se||(s+=""+W+" = null;"),s+="var "+X+" = errors;var valid"+n+";",ae&&re.statements)s+=" "+Z.validate;else if(se){var oe=e.util.copy(e);oe.level++,oe.schema=Z.validate,oe.schemaPath="";var ie=e.compositeRule;e.compositeRule=oe.compositeRule=!0;var ne=e.validate(oe).replace(/validate\.schema/g,Z.code);e.compositeRule=oe.compositeRule=ie,s+=" "+ne}else if(re.compile||re.validate){var O=O||[];O.push(s),s="",s+=" "+Z.code+".call( ",s+=e.opts.passContext?"this":"self",s+=re.compile||re.schema===!1?" , "+c+" ":" , validate.schema"+P+" , "+c+" , validate.schema"+e.schemaPath+" ",s+=" , (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath),s+=l?" , data"+(l-1||"")+" , "+e.dataPathArr[l]+" ":" , parentData , parentDataProperty ",s+=" ) ";var le=s;s=O.pop(),re.errors!==!1&&(te?(W="customErrors"+n,s+=" var "+W+" = null; try { valid"+n+" = "+e.yieldAwait+le+"; } catch (e) { valid"+n+" = false; if (e instanceof ValidationError) "+W+" = e.errors; else throw e; } "):s+=" "+Z.code+".errors = null; ")}s+="if (! ",s+=ae?re.statements?" valid"+n+" ":" ("+Z.validate+") ":se?" valid"+oe.level+" ":te?re.errors===!1?" ("+e.yieldAwait+le+") ":" valid"+n+" ":" "+le+" ",s+=") { ",u=K.keyword;var O=O||[];O.push(s),s="";var O=O||[];O.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+E+"\" , params: { keyword: '"+K.keyword+"' } ",e.opts.messages!==!1&&(s+=" , message: 'should pass \""+K.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=O.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var ce=s;s=O.pop(),ae?re.errors?"full"!=re.errors&&(s+=" for (var "+_+"="+X+"; "+_+"<errors; "+_+"++) { var "+ee+" = vErrors["+_+"]; if ("+ee+".dataPath === undefined) { "+ee+".dataPath = (dataPath || '') + "+e.errorPath+"; } if ("+ee+".schemaPath === undefined) { "+ee+'.schemaPath = "'+E+'"; } ',e.opts.verbose&&(s+=" "+ee+".schema = validate.schema"+P+"; "+ee+".data = "+c+"; "),s+=" } "):re.errors===!1?s+=" "+ce+" ":(s+=" if ("+X+" == errors) { "+ce+" } else { for (var "+_+"="+X+"; "+_+"<errors; "+_+"++) { var "+ee+" = vErrors["+_+"]; if ("+ee+".dataPath === undefined) { "+ee+".dataPath = (dataPath || '') + "+e.errorPath+"; } if ("+ee+".schemaPath === undefined) { "+ee+'.schemaPath = "'+E+'"; } ',e.opts.verbose&&(s+=" "+ee+".schema = validate.schema"+P+"; "+ee+".data = "+c+"; "),s+=" } } "):se?(s+=" var err = ",e.createErrors!==!1?(s+=" { keyword: '"+(u||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+E+"\" , params: { keyword: '"+K.keyword+"' } ",e.opts.messages!==!1&&(s+=" , message: 'should pass \""+K.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&d&&(s+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false ")):re.errors===!1?s+=" "+ce+" ":(s+=" if (Array.isArray("+W+")) { if (vErrors === null) vErrors = "+W+"; else vErrors.concat("+W+"); errors = vErrors.length; for (var "+_+"="+X+"; "+_+"<errors; "+_+"++) { var "+ee+" = vErrors["+_+"]; "+ee+".dataPath = (dataPath || '') + "+e.errorPath+"; "+ee+'.schemaPath = "'+E+'"; ',e.opts.verbose&&(s+=" "+ee+".schema = validate.schema"+P+"; "+ee+".data = "+c+"; "),s+=" } } else { "+ce+" } "),u=void 0,s+=" } ",d&&(s+=" else { ")}else s+=" "+K.code(e,K.keyword)+" ";d&&(p+="}")}if(d&&(s+=" "+p+" ",p=""),L.type&&(s+=" } ",v&&v===L.type)){var he=!0;s+=" else { ";var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",O=O||[];O.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+E+"\" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=O.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } "}d&&(s+=" if (errors === ",s+=i?"0":"errs_"+n,s+=") { ",m+="}")}if(v&&!he&&(!e.opts.coerceTypes||!g)){var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",b=y?"checkDataTypes":"checkDataType";s+=" if ("+e.util[b](v,c,!0)+") { ";var O=O||[];O.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+' , schemaPath: "'+E+"\" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=O.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }"}return d&&(s+=" "+m+" "),i?(o?(s+=" if (errors === 0) return true; ",s+=" else throw new ValidationError(vErrors); "):(s+=" validate.errors = vErrors; ",s+=" return errors === 0; "),s+=" });"):s+=" var "+f+" = errors === errs_"+n+";",s=e.util.cleanUpCode(s),i&&d&&(s=e.util.cleanUpVarErrors(s,o)),s}},{}],35:[function(e,r,t){"use strict";var a=/^[a-z_$][a-z0-9_$]*$/i;r.exports=function(e,r){function t(e,r,t){for(var a,s=0;o.RULES.length>s;s++){var i=o.RULES[s];if(i.type==r){a=i;break}}a||(a={type:r,rules:[]},o.RULES.push(a));var n={keyword:e,definition:t,custom:!0};a.rules.push(n)}function s(e){if(!o.RULES.types[e])throw new Error("Unknown type "+e)}var o=this;if(this.RULES.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!a.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){var i=r.type;if(Array.isArray(i)){var n,l=i.length;for(n=0;l>n;n++)s(i[n]);for(n=0;l>n;n++)t(e,i[n],r)}else i&&s(i),t(e,i,r)}this.RULES.keywords[e]=!0,this.RULES.all[e]=!0}},{}],36:[function(e,r,t){r.exports={id:"http://json-schema.org/draft-04/schema#",$schema:"http://json-schema.org/draft-04/schema#",description:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},positiveInteger:{type:"integer",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:"#/definitions/positiveInteger"},{"default":0}]},simpleTypes:{"enum":["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},minItems:1,uniqueItems:!0}},type:"object",properties:{id:{type:"string",format:"uri"},$schema:{type:"string",format:"uri"},title:{type:"string"},description:{type:"string"},"default":{},multipleOf:{type:"number",minimum:0,exclusiveMinimum:!0},maximum:{type:"number"},exclusiveMaximum:{type:"boolean","default":!1},minimum:{type:"number"},exclusiveMinimum:{type:"boolean","default":!1},maxLength:{$ref:"#/definitions/positiveInteger"},minLength:{$ref:"#/definitions/positiveIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"}],"default":{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],"default":{}},maxItems:{$ref:"#/definitions/positiveInteger"},minItems:{$ref:"#/definitions/positiveIntegerDefault0"},uniqueItems:{type:"boolean","default":!1},maxProperties:{$ref:"#/definitions/positiveInteger"},minProperties:{$ref:"#/definitions/positiveIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"}],"default":{}},definitions:{type:"object",additionalProperties:{$ref:"#"},"default":{}},properties:{type:"object",additionalProperties:{$ref:"#"},"default":{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},"default":{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},"enum":{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},dependencies:{exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"]},"default":{}}},{}],37:[function(e,r,t){r.exports={id:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#",$schema:"http://json-schema.org/draft-04/schema#",description:"Core schema meta-schema (v5 proposals)",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},positiveInteger:{type:"integer",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:"#/definitions/positiveInteger"},{"default":0}]},simpleTypes:{"enum":["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},minItems:1,uniqueItems:!0},$data:{type:"object",required:["$data"],properties:{$data:{type:"string",format:"relative-json-pointer"}},additionalProperties:!1}},type:"object",properties:{id:{type:"string",format:"uri"},$schema:{type:"string",format:"uri"},title:{type:"string"},description:{type:"string"},"default":{},multipleOf:{anyOf:[{type:"number",minimum:0,exclusiveMinimum:!0},{$ref:"#/definitions/$data"}]},maximum:{anyOf:[{type:"number"},{$ref:"#/definitions/$data"}]},exclusiveMaximum:{anyOf:[{type:"boolean","default":!1},{$ref:"#/definitions/$data"}]},minimum:{anyOf:[{type:"number"},{$ref:"#/definitions/$data"}]},exclusiveMinimum:{anyOf:[{type:"boolean","default":!1},{$ref:"#/definitions/$data"}]},maxLength:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minLength:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},pattern:{anyOf:[{type:"string",format:"regex"},{$ref:"#/definitions/$data"}]},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"},{$ref:"#/definitions/$data"}],"default":{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],"default":{}},maxItems:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minItems:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},uniqueItems:{anyOf:[{type:"boolean","default":!1},{$ref:"#/definitions/$data"}]},maxProperties:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minProperties:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},required:{anyOf:[{$ref:"#/definitions/stringArray"},{$ref:"#/definitions/$data"}]},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"},{$ref:"#/definitions/$data"}],"default":{}},definitions:{type:"object",additionalProperties:{$ref:"#"},"default":{}},properties:{type:"object",additionalProperties:{$ref:"#"},"default":{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},"default":{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},"enum":{anyOf:[{type:"array",minItems:1,uniqueItems:!0},{$ref:"#/definitions/$data"}]},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"},format:{anyOf:[{type:"string"},{$ref:"#/definitions/$data"}]},formatMaximum:{anyOf:[{type:"string"},{$ref:"#/definitions/$data"}]},formatMinimum:{anyOf:[{type:"string"},{$ref:"#/definitions/$data"}]},formatExclusiveMaximum:{anyOf:[{type:"boolean","default":!1},{$ref:"#/definitions/$data"}]},formatExclusiveMinimum:{anyOf:[{type:"boolean","default":!1},{$ref:"#/definitions/$data"}]},constant:{anyOf:[{},{$ref:"#/definitions/$data"}]},contains:{$ref:"#"},patternGroups:{type:"object",additionalProperties:{type:"object",required:["schema"],properties:{maximum:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minimum:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},schema:{$ref:"#"}},additionalProperties:!1},"default":{}},"switch":{type:"array",items:{required:["then"],properties:{"if":{$ref:"#"},then:{anyOf:[{type:"boolean"},{$ref:"#"}]},"continue":{type:"boolean"}},additionalProperties:!1,dependencies:{"continue":["if"]}}}},dependencies:{exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"],formatMaximum:["format"],formatMinimum:["format"],formatExclusiveMaximum:["formatMaximum"],formatExclusiveMinimum:["formatMinimum"]},"default":{}}},{}],38:[function(e,r,t){"use strict";function a(r){function t(e,t,s){var o={inline:s||a[e],statements:!0,errors:"full"};t&&(o.type=t),r.addKeyword(e,o)}var a={"switch":e("./dotjs/switch"),constant:e("./dotjs/constant"),_formatLimit:e("./dotjs/_formatLimit"),patternRequired:e("./dotjs/patternRequired")};if(r._opts.meta!==!1){var i=e("./refs/json-schema-v5.json");r.addMetaSchema(i,o)}t("constant"),r.addKeyword("contains",{type:"array",macro:s}),t("formatMaximum","string",a._formatLimit),t("formatMinimum","string",a._formatLimit),r.addKeyword("formatExclusiveMaximum"),r.addKeyword("formatExclusiveMinimum"),r.addKeyword("patternGroups"),t("patternRequired","object"),t("switch")}function s(e){return{not:{items:{not:e}}}}var o="https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json";r.exports={enable:a,META_SCHEMA_ID:o}},{"./dotjs/_formatLimit":12,"./dotjs/constant":19,"./dotjs/patternRequired":28,"./dotjs/switch":32,"./refs/json-schema-v5.json":37}],39:[function(e,r,t){function a(e){var r=this,t=f.call(arguments,1);return new Promise(function(a,o){function i(r){var t;try{t=e.next(r)}catch(a){return o(a)}c(t)}function n(r){var t;try{t=e["throw"](r)}catch(a){return o(a)}c(t)}function c(e){if(e.done)return a(e.value);var t=s.call(r,e.value);return t&&l(t)?t.then(i,n):n(new TypeError('You may only yield a function, promise, generator, array, or object, but the following object was passed: "'+String(e.value)+'"'))}return"function"==typeof e&&(e=e.apply(r,t)),e&&"function"==typeof e.next?void i():a(e)})}function s(e){return e?l(e)?e:h(e)||c(e)?a.call(this,e):"function"==typeof e?o.call(this,e):Array.isArray(e)?i.call(this,e):u(e)?n.call(this,e):e:e}function o(e){var r=this;return new Promise(function(t,a){e.call(r,function(e,r){return e?a(e):(arguments.length>2&&(r=f.call(arguments,1)),void t(r))})})}function i(e){return Promise.all(e.map(s,this))}function n(e){function r(e,r){t[r]=void 0,o.push(e.then(function(e){t[r]=e}))}for(var t=new e.constructor,a=Object.keys(e),o=[],i=0;a.length>i;i++){var n=a[i],c=s.call(this,e[n]);c&&l(c)?r(c,n):t[n]=e[n]}return Promise.all(o).then(function(){return t})}function l(e){return"function"==typeof e.then}function c(e){return"function"==typeof e.next&&"function"==typeof e["throw"]}function h(e){var r=e.constructor;return r?"GeneratorFunction"===r.name||"GeneratorFunction"===r.displayName?!0:c(r.prototype):!1}function u(e){return Object==e.constructor}var f=Array.prototype.slice;r.exports=a["default"]=a.co=a,a.wrap=function(e){function r(){return a.call(this,e.apply(this,arguments))}return r.__generatorFunction__=e,r}},{}],40:[function(e,r,t){var a="undefined"!=typeof JSON?JSON:e("jsonify");r.exports=function(e,r){r||(r={}),"function"==typeof r&&(r={cmp:r});var t=r.space||"";"number"==typeof t&&(t=Array(t+1).join(" "));var i="boolean"==typeof r.cycles?r.cycles:!1,n=r.replacer||function(e,r){return r},l=r.cmp&&function(e){return function(r){return function(t,a){var s={key:t,value:r[t]},o={key:a,value:r[a]};return e(s,o)}}}(r.cmp),c=[];return function h(e,r,u,f){var d=t?"\n"+new Array(f+1).join(t):"",p=t?": ":":";if(u&&u.toJSON&&"function"==typeof u.toJSON&&(u=u.toJSON()),u=n.call(e,r,u),void 0!==u){if("object"!=typeof u||null===u)return a.stringify(u);if(s(u)){for(var m=[],v=0;u.length>v;v++){var y=h(u,v,u[v],f+1)||a.stringify(null);m.push(d+t+y)}return"["+m.join(",")+d+"]"}if(-1!==c.indexOf(u)){if(i)return a.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}c.push(u);for(var g=o(u).sort(l&&l(u)),m=[],v=0;g.length>v;v++){var r=g[v],P=h(u,r,u[r],f+1);if(P){var E=a.stringify(r)+p+P;m.push(d+t+E)}}return c.splice(c.indexOf(u),1),"{"+m.join(",")+d+"}"}}({"":e},"",e,0)};var s=Array.isArray||function(e){return"[object Array]"==={}.toString.call(e)},o=Object.keys||function(e){var r=Object.prototype.hasOwnProperty||function(){return!0},t=[];for(var a in e)r.call(e,a)&&t.push(a);return t}},{jsonify:41}],41:[function(e,r,t){t.parse=e("./lib/parse"),t.stringify=e("./lib/stringify")},{"./lib/parse":42,"./lib/stringify":43}],42:[function(e,r,t){var a,s,o,i,n={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:" "},l=function(e){throw{name:"SyntaxError",message:e,at:a,text:o}},c=function(e){return e&&e!==s&&l("Expected '"+e+"' instead of '"+s+"'"),s=o.charAt(a),a+=1,s},h=function(){var e,r="";for("-"===s&&(r="-",c("-"));s>="0"&&"9">=s;)r+=s,c();if("."===s)for(r+=".";c()&&s>="0"&&"9">=s;)r+=s;if("e"===s||"E"===s)for(r+=s,c(),"-"!==s&&"+"!==s||(r+=s,c());s>="0"&&"9">=s;)r+=s,c();return e=+r,isFinite(e)?e:void l("Bad number")},u=function(){var e,r,t,a="";if('"'===s)for(;c();){if('"'===s)return c(),a;if("\\"===s)if(c(),"u"===s){for(t=0,r=0;4>r&&(e=parseInt(c(),16),isFinite(e));r+=1)t=16*t+e;a+=String.fromCharCode(t)}else{if("string"!=typeof n[s])break;a+=n[s]}else a+=s}l("Bad string")},f=function(){for(;s&&" ">=s;)c()},d=function(){switch(s){case"t":return c("t"),c("r"),c("u"),c("e"),!0;case"f":return c("f"),c("a"),c("l"),c("s"),c("e"),!1;case"n":return c("n"),c("u"),c("l"),c("l"),null}l("Unexpected '"+s+"'")},p=function(){var e=[];if("["===s){if(c("["),f(),"]"===s)return c("]"),e;for(;s;){if(e.push(i()),f(),"]"===s)return c("]"),e;c(","),f()}}l("Bad array")},m=function(){var e,r={}; -if("{"===s){if(c("{"),f(),"}"===s)return c("}"),r;for(;s;){if(e=u(),f(),c(":"),Object.hasOwnProperty.call(r,e)&&l('Duplicate key "'+e+'"'),r[e]=i(),f(),"}"===s)return c("}"),r;c(","),f()}}l("Bad object")};i=function(){switch(f(),s){case"{":return m();case"[":return p();case'"':return u();case"-":return h();default:return s>="0"&&"9">=s?h():d()}},r.exports=function(e,r){var t;return o=e,a=0,s=" ",t=i(),f(),s&&l("Syntax error"),"function"==typeof r?function n(e,t){var a,s,o=e[t];if(o&&"object"==typeof o)for(a in o)Object.prototype.hasOwnProperty.call(o,a)&&(s=n(o,a),void 0!==s?o[a]=s:delete o[a]);return r.call(e,t,o)}({"":t},""):t}},{}],43:[function(e,r,t){function a(e){return l.lastIndex=0,l.test(e)?'"'+e.replace(l,function(e){var r=c[e];return"string"==typeof r?r:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function s(e,r){var t,l,c,h,u,f=o,d=r[e];switch(d&&"object"==typeof d&&"function"==typeof d.toJSON&&(d=d.toJSON(e)),"function"==typeof n&&(d=n.call(r,e,d)),typeof d){case"string":return a(d);case"number":return isFinite(d)?String(d):"null";case"boolean":case"null":return String(d);case"object":if(!d)return"null";if(o+=i,u=[],"[object Array]"===Object.prototype.toString.apply(d)){for(h=d.length,t=0;h>t;t+=1)u[t]=s(t,d)||"null";return c=0===u.length?"[]":o?"[\n"+o+u.join(",\n"+o)+"\n"+f+"]":"["+u.join(",")+"]",o=f,c}if(n&&"object"==typeof n)for(h=n.length,t=0;h>t;t+=1)l=n[t],"string"==typeof l&&(c=s(l,d),c&&u.push(a(l)+(o?": ":":")+c));else for(l in d)Object.prototype.hasOwnProperty.call(d,l)&&(c=s(l,d),c&&u.push(a(l)+(o?": ":":")+c));return c=0===u.length?"{}":o?"{\n"+o+u.join(",\n"+o)+"\n"+f+"}":"{"+u.join(",")+"}",o=f,c}}var o,i,n,l=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,c={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};r.exports=function(e,r,t){var a;if(o="",i="","number"==typeof t)for(a=0;t>a;a+=1)i+=" ";else"string"==typeof t&&(i=t);if(n=r,r&&"function"!=typeof r&&("object"!=typeof r||"number"!=typeof r.length))throw new Error("JSON.stringify");return s("",{"":e})}},{}],44:[function(e,r,t){(function(e){!function(a){function s(e){throw new RangeError(q[e])}function o(e,r){for(var t=e.length,a=[];t--;)a[t]=r(e[t]);return a}function i(e,r){var t=e.split("@"),a="";t.length>1&&(a=t[0]+"@",e=t[1]),e=e.replace(A,".");var s=e.split("."),i=o(s,r).join(".");return a+i}function n(e){for(var r,t,a=[],s=0,o=e.length;o>s;)r=e.charCodeAt(s++),r>=55296&&56319>=r&&o>s?(t=e.charCodeAt(s++),56320==(64512&t)?a.push(((1023&r)<<10)+(1023&t)+65536):(a.push(r),s--)):a.push(r);return a}function l(e){return o(e,function(e){var r="";return e>65535&&(e-=65536,r+=D(e>>>10&1023|55296),e=56320|1023&e),r+=D(e)}).join("")}function c(e){return 10>e-48?e-22:26>e-65?e-65:26>e-97?e-97:w}function h(e,r){return e+22+75*(26>e)-((0!=r)<<5)}function u(e,r,t){var a=0;for(e=t?C(e/S):e>>1,e+=C(e/r);e>L*$>>1;a+=w)e=C(e/L);return C(a+(L+1)*e/(e+x))}function f(e){var r,t,a,o,i,n,h,f,d,p,m=[],v=e.length,y=0,g=R,P=_;for(t=e.lastIndexOf(O),0>t&&(t=0),a=0;t>a;++a)e.charCodeAt(a)>=128&&s("not-basic"),m.push(e.charCodeAt(a));for(o=t>0?t+1:0;v>o;){for(i=y,n=1,h=w;o>=v&&s("invalid-input"),f=c(e.charCodeAt(o++)),(f>=w||f>C((b-y)/n))&&s("overflow"),y+=f*n,d=P>=h?j:h>=P+$?$:h-P,!(d>f);h+=w)p=w-d,n>C(b/p)&&s("overflow"),n*=p;r=m.length+1,P=u(y-i,r,0==i),C(y/r)>b-g&&s("overflow"),g+=C(y/r),y%=r,m.splice(y++,0,g)}return l(m)}function d(e){var r,t,a,o,i,l,c,f,d,p,m,v,y,g,P,E=[];for(e=n(e),v=e.length,r=R,t=0,i=_,l=0;v>l;++l)m=e[l],128>m&&E.push(D(m));for(a=o=E.length,o&&E.push(O);v>a;){for(c=b,l=0;v>l;++l)m=e[l],m>=r&&c>m&&(c=m);for(y=a+1,c-r>C((b-t)/y)&&s("overflow"),t+=(c-r)*y,r=c,l=0;v>l;++l)if(m=e[l],r>m&&++t>b&&s("overflow"),m==r){for(f=t,d=w;p=i>=d?j:d>=i+$?$:d-i,!(p>f);d+=w)P=f-p,g=w-p,E.push(D(h(p+P%g,0))),f=C(P/g);E.push(D(h(f,0))),i=u(t,y,a==o),t=0,++a}++t,++r}return E.join("")}function p(e){return i(e,function(e){return I.test(e)?f(e.slice(4).toLowerCase()):e})}function m(e){return i(e,function(e){return k.test(e)?"xn--"+d(e):e})}var v="object"==typeof t&&t&&!t.nodeType&&t,y="object"==typeof r&&r&&!r.nodeType&&r,g="object"==typeof e&&e;g.global!==g&&g.window!==g&&g.self!==g||(a=g);var P,E,b=2147483647,w=36,j=1,$=26,x=38,S=700,_=72,R=128,O="-",I=/^xn--/,k=/[^\x20-\x7E]/,A=/[\x2E\u3002\uFF0E\uFF61]/g,q={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},L=w-j,C=Math.floor,D=String.fromCharCode;if(P={version:"1.4.1",ucs2:{decode:n,encode:l},decode:f,encode:d,toASCII:m,toUnicode:p},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return P});else if(v&&y)if(r.exports==v)y.exports=P;else for(E in P)P.hasOwnProperty(E)&&(v[E]=P[E]);else a.punycode=P}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],45:[function(e,r,t){"use strict";function a(e,r){return Object.prototype.hasOwnProperty.call(e,r)}r.exports=function(e,r,t,o){r=r||"&",t=t||"=";var i={};if("string"!=typeof e||0===e.length)return i;var n=/\+/g;e=e.split(r);var l=1e3;o&&"number"==typeof o.maxKeys&&(l=o.maxKeys);var c=e.length;l>0&&c>l&&(c=l);for(var h=0;c>h;++h){var u,f,d,p,m=e[h].replace(n,"%20"),v=m.indexOf(t);v>=0?(u=m.substr(0,v),f=m.substr(v+1)):(u=m,f=""),d=decodeURIComponent(u),p=decodeURIComponent(f),a(i,d)?s(i[d])?i[d].push(p):i[d]=[i[d],p]:i[d]=p}return i};var s=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],46:[function(e,r,t){"use strict";function a(e,r){if(e.map)return e.map(r);for(var t=[],a=0;e.length>a;a++)t.push(r(e[a],a));return t}var s=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};r.exports=function(e,r,t,n){return r=r||"&",t=t||"=",null===e&&(e=void 0),"object"==typeof e?a(i(e),function(i){var n=encodeURIComponent(s(i))+t;return o(e[i])?a(e[i],function(e){return n+encodeURIComponent(s(e))}).join(r):n+encodeURIComponent(s(e[i]))}).join(r):n?encodeURIComponent(s(n))+t+encodeURIComponent(s(e)):""};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},i=Object.keys||function(e){var r=[];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push(t);return r}},{}],47:[function(e,r,t){"use strict";t.decode=t.parse=e("./decode"),t.encode=t.stringify=e("./encode")},{"./decode":45,"./encode":46}],48:[function(e,r,t){"use strict";function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function s(e,r,t){if(e&&c.isObject(e)&&e instanceof a)return e;var s=new a;return s.parse(e,r,t),s}function o(e){return c.isString(e)&&(e=s(e)),e instanceof a?e.format():a.prototype.format.call(e)}function i(e,r){return s(e,!1,!0).resolve(r)}function n(e,r){return e?s(e,!1,!0).resolveObject(r):r}var l=e("punycode"),c=e("./util");t.parse=s,t.resolve=i,t.resolveObject=n,t.format=o,t.Url=a;var h=/^([a-z0-9.+-]+:)/i,u=/:[0-9]*$/,f=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,d=["<",">",'"',"`"," ","\r","\n"," "],p=["{","}","|","\\","^","`"].concat(d),m=["'"].concat(p),v=["%","/","?",";","#"].concat(m),y=["/","?","#"],g=255,P=/^[+a-z0-9A-Z_-]{0,63}$/,E=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,b={javascript:!0,"javascript:":!0},w={javascript:!0,"javascript:":!0},j={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},$=e("querystring");a.prototype.parse=function(e,r,t){if(!c.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a<e.indexOf("#")?"?":"#",o=e.split(s),i=/\\/g;o[0]=o[0].replace(i,"/"),e=o.join(s);var n=e;if(n=n.trim(),!t&&1===e.split("#").length){var u=f.exec(n);if(u)return this.path=n,this.href=n,this.pathname=u[1],u[2]?(this.search=u[2],this.query=r?$.parse(this.search.substr(1)):this.search.substr(1)):r&&(this.search="",this.query={}),this}var d=h.exec(n);if(d){d=d[0];var p=d.toLowerCase();this.protocol=p,n=n.substr(d.length)}if(t||d||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var x="//"===n.substr(0,2);!x||d&&w[d]||(n=n.substr(2),this.slashes=!0)}if(!w[d]&&(x||d&&!j[d])){for(var S=-1,_=0;y.length>_;_++){var R=n.indexOf(y[_]);-1!==R&&(-1===S||S>R)&&(S=R)}var O,I;I=-1===S?n.lastIndexOf("@"):n.lastIndexOf("@",S),-1!==I&&(O=n.slice(0,I),n=n.slice(I+1),this.auth=decodeURIComponent(O)),S=-1;for(var _=0;v.length>_;_++){var R=n.indexOf(v[_]);-1!==R&&(-1===S||S>R)&&(S=R)}-1===S&&(S=n.length),this.host=n.slice(0,S),n=n.slice(S),this.parseHost(),this.hostname=this.hostname||"";var k="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!k)for(var A=this.hostname.split(/\./),_=0,q=A.length;q>_;_++){var L=A[_];if(L&&!L.match(P)){for(var C="",D=0,V=L.length;V>D;D++)C+=L.charCodeAt(D)>127?"x":L[D];if(!C.match(P)){var U=A.slice(0,_),z=A.slice(_+1),T=L.match(E);T&&(U.push(T[1]),z.unshift(T[2])),z.length&&(n="/"+z.join(".")+n),this.hostname=U.join(".");break}}}this.hostname=this.hostname.length>g?"":this.hostname.toLowerCase(),k||(this.hostname=l.toASCII(this.hostname));var M=this.port?":"+this.port:"",Q=this.hostname||"";this.host=Q+M,this.href+=this.host,k&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==n[0]&&(n="/"+n))}if(!b[p])for(var _=0,q=m.length;q>_;_++){var N=m[_];if(-1!==n.indexOf(N)){var H=encodeURIComponent(N);H===N&&(H=escape(N)),n=n.split(N).join(H)}}var F=n.indexOf("#");-1!==F&&(this.hash=n.substr(F),n=n.slice(0,F));var G=n.indexOf("?");if(-1!==G?(this.search=n.substr(G),this.query=n.substr(G+1),r&&(this.query=$.parse(this.query)),n=n.slice(0,G)):r&&(this.search="",this.query={}),n&&(this.pathname=n),j[p]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var M=this.pathname||"",J=this.search||"";this.path=M+J}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=encodeURIComponent(e),e=e.replace(/%3A/i,":"),e+="@");var r=this.protocol||"",t=this.pathname||"",a=this.hash||"",s=!1,o="";this.host?s=e+this.host:this.hostname&&(s=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(s+=":"+this.port)),this.query&&c.isObject(this.query)&&Object.keys(this.query).length&&(o=$.stringify(this.query));var i=this.search||o&&"?"+o||"";return r&&":"!==r.substr(-1)&&(r+=":"),this.slashes||(!r||j[r])&&s!==!1?(s="//"+(s||""),t&&"/"!==t.charAt(0)&&(t="/"+t)):s||(s=""),a&&"#"!==a.charAt(0)&&(a="#"+a),i&&"?"!==i.charAt(0)&&(i="?"+i),t=t.replace(/[?#]/g,function(e){return encodeURIComponent(e)}),i=i.replace("#","%23"),r+s+t+i+a},a.prototype.resolve=function(e){return this.resolveObject(s(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(c.isString(e)){var r=new a;r.parse(e,!1,!0),e=r}for(var t=new a,s=Object.keys(this),o=0;s.length>o;o++){var i=s[o];t[i]=this[i]}if(t.hash=e.hash,""===e.href)return t.href=t.format(),t;if(e.slashes&&!e.protocol){for(var n=Object.keys(e),l=0;n.length>l;l++){var h=n[l];"protocol"!==h&&(t[h]=e[h])}return j[t.protocol]&&t.hostname&&!t.pathname&&(t.path=t.pathname="/"),t.href=t.format(),t}if(e.protocol&&e.protocol!==t.protocol){if(!j[e.protocol]){for(var u=Object.keys(e),f=0;u.length>f;f++){var d=u[f];t[d]=e[d]}return t.href=t.format(),t}if(t.protocol=e.protocol,e.host||w[e.protocol])t.pathname=e.pathname;else{for(var p=(e.pathname||"").split("/");p.length&&!(e.host=p.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==p[0]&&p.unshift(""),2>p.length&&p.unshift(""),t.pathname=p.join("/")}if(t.search=e.search,t.query=e.query,t.host=e.host||"",t.auth=e.auth,t.hostname=e.hostname||e.host,t.port=e.port,t.pathname||t.search){var m=t.pathname||"",v=t.search||"";t.path=m+v}return t.slashes=t.slashes||e.slashes,t.href=t.format(),t}var y=t.pathname&&"/"===t.pathname.charAt(0),g=e.host||e.pathname&&"/"===e.pathname.charAt(0),P=g||y||t.host&&e.pathname,E=P,b=t.pathname&&t.pathname.split("/")||[],p=e.pathname&&e.pathname.split("/")||[],$=t.protocol&&!j[t.protocol];if($&&(t.hostname="",t.port=null,t.host&&(""===b[0]?b[0]=t.host:b.unshift(t.host)),t.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===p[0]?p[0]=e.host:p.unshift(e.host)),e.host=null),P=P&&(""===p[0]||""===b[0])),g)t.host=e.host||""===e.host?e.host:t.host,t.hostname=e.hostname||""===e.hostname?e.hostname:t.hostname,t.search=e.search,t.query=e.query,b=p;else if(p.length)b||(b=[]),b.pop(),b=b.concat(p),t.search=e.search,t.query=e.query;else if(!c.isNullOrUndefined(e.search)){if($){t.hostname=t.host=b.shift();var x=t.host&&t.host.indexOf("@")>0?t.host.split("@"):!1;x&&(t.auth=x.shift(),t.host=t.hostname=x.shift())}return t.search=e.search,t.query=e.query,c.isNull(t.pathname)&&c.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.href=t.format(),t}if(!b.length)return t.pathname=null,t.path=t.search?"/"+t.search:null,t.href=t.format(),t;for(var S=b.slice(-1)[0],_=(t.host||e.host||b.length>1)&&("."===S||".."===S)||""===S,R=0,O=b.length;O>=0;O--)S=b[O],"."===S?b.splice(O,1):".."===S?(b.splice(O,1),R++):R&&(b.splice(O,1),R--);if(!P&&!E)for(;R--;R)b.unshift("..");!P||""===b[0]||b[0]&&"/"===b[0].charAt(0)||b.unshift(""),_&&"/"!==b.join("/").substr(-1)&&b.push("");var I=""===b[0]||b[0]&&"/"===b[0].charAt(0);if($){t.hostname=t.host=I?"":b.length?b.shift():"";var x=t.host&&t.host.indexOf("@")>0?t.host.split("@"):!1;x&&(t.auth=x.shift(),t.host=t.hostname=x.shift())}return P=P||t.host&&b.length,P&&!I&&b.unshift(""),b.length?t.pathname=b.join("/"):(t.pathname=null,t.path=null),c.isNull(t.pathname)&&c.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.auth=e.auth||t.auth,t.slashes=t.slashes||e.slashes,t.href=t.format(),t},a.prototype.parseHost=function(){var e=this.host,r=u.exec(e);r&&(r=r[0],":"!==r&&(this.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(this.hostname=e)}},{"./util":49,punycode:44,querystring:47}],49:[function(e,r,t){"use strict";r.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},{}],ajv:[function(e,r,t){"use strict";function a(e){return v.test(e)}function Ajv(r){function t(e,r){var t;if("string"==typeof e){if(t=j(e),!t)throw new Error('no schema with key or ref "'+e+'"')}else{var a=_(e);t=a.validate||R(a)}var s=t(r);return t.$async===!0?"*"==C._opts.async?p(s):s:(C.errors=t.errors,s)}function g(e){var r=_(e);return r.validate||R(r)}function P(e,r,t,a){if(Array.isArray(e))for(var s=0;e.length>s;s++)P(e[s],void 0,t,a);else{r=o.normalizeId(r||e.id),q(r);var i=C._schemas[r]=_(e,t,!0);i.meta=a}}function E(e,r,t){P(e,r,t,!0)}function b(e,r){var s=e.$schema||C._opts.defaultMeta||w(),o=C._formats.uri;C._formats.uri="function"==typeof o?a:v;var i=t(s,e);if(C._formats.uri=o,!i&&r){var n="schema is invalid:"+O();if("log"!=C._opts.validateSchema)throw new Error(n);console.error(n)}return i}function w(){var e=C._opts.meta;return C._opts.defaultMeta="object"==typeof e?e.id||e:C._opts.v5?u.META_SCHEMA_ID:m}function j(e){var r=$(e);switch(typeof r){case"object":return r.validate||R(r);case"string":return j(r)}}function $(e){return e=o.normalizeId(e),C._schemas[e]||C._refs[e]}function x(e){if(e instanceof RegExp)return S(C._schemas,e),void S(C._refs,e);switch(typeof e){case"undefined":return S(C._schemas),S(C._refs),void C._cache.clear();case"string":var r=$(e);return r&&C._cache.del(r.jsonStr),delete C._schemas[e],void delete C._refs[e];case"object":var t=l(e);C._cache.del(t);var a=e.id;a&&(a=o.normalizeId(a),delete C._schemas[a],delete C._refs[a])}}function S(e,r){for(var t in e){var a=e[t];a.meta||r&&!r.test(t)||(C._cache.del(a.jsonStr),delete e[t])}}function _(e,r,t){if("object"!=typeof e)throw new Error("schema should be object");var a=l(e),s=C._cache.get(a);if(s)return s;t=t||C._opts.addUsedSchema!==!1;var i=o.normalizeId(e.id);i&&t&&q(i),C._opts.validateSchema===!1||r||b(e,!0);var c=o.ids.call(C,e),h=new n({id:i,schema:e,localRefs:c,jsonStr:a});return"#"!=i[0]&&t&&(C._refs[i]=h),C._cache.put(a,h),h}function R(e,r){function t(){var r=e.validate,a=r.apply(null,arguments);return t.errors=r.errors,a}if(e.compiling)return e.validate=t,t.schema=e.schema,t.errors=null,t.root=r?r:t,e.schema.$async===!0&&(t.$async=!0),t;e.compiling=!0;var a;e.meta&&(a=C._opts,C._opts=C._metaOpts);var o;try{o=s.call(C,e.schema,r,e.localRefs)}finally{e.compiling=!1,e.meta&&(C._opts=a)}return e.validate=o,e.refs=o.refs,e.refVal=o.refVal,e.root=o.root,o}function O(e,r){if(e=e||C.errors,!e)return"No errors";r=r||{};for(var t=void 0===r.separator?", ":r.separator,a=void 0===r.dataVar?"data":r.dataVar,s="",o=0;e.length>o;o++){var i=e[o];i&&(s+=a+i.dataPath+" "+i.message+t)}return s.slice(0,-t.length)}function I(e,r){"string"==typeof r&&(r=new RegExp(r)),C._formats[e]=r}function k(){if(C._opts.meta!==!1){var r=e("./refs/json-schema-draft-04.json");E(r,m,!0),C._refs["http://json-schema.org/schema"]=m}var t=C._opts.schemas;if(t)if(Array.isArray(t))P(t);else for(var a in t)P(t[a],a)}function A(){for(var e in C._opts.formats){var r=C._opts.formats[e];I(e,r)}}function q(e){if(C._schemas[e]||C._refs[e])throw new Error('schema with key or id "'+e+'" already exists')}function L(){for(var e=f.copy(C._opts),r=0;y.length>r;r++)delete e[y[r]];return e}if(!(this instanceof Ajv))return new Ajv(r);var C=this;r=this._opts=f.copy(r)||{},this._schemas={},this._refs={},this._formats=c(r.format),this._cache=r.cache||new i,this._loadingSchemas={},this.RULES=h(),this.validate=t,this.compile=g,this.addSchema=P,this.addMetaSchema=E,this.validateSchema=b,this.getSchema=j,this.removeSchema=x,this.addFormat=I,this.errorsText=O,this._addSchema=_,this._compile=R,r.loopRequired=r.loopRequired||1/0,(r.async||r.transpile)&&d.setup(r),r.beautify===!0&&(r.beautify={indent_size:2}),"property"==r.errorDataPath&&(r._errorDataPathProperty=!0),this._metaOpts=L(),k(),r.formats&&A(),r.v5&&u.enable(this),"object"==typeof r.meta&&E(r.meta)}var s=e("./compile"),o=e("./compile/resolve"),i=e("./cache"),n=e("./compile/schema_obj"),l=e("json-stable-stringify"),c=e("./compile/formats"),h=e("./compile/rules"),u=e("./v5"),f=e("./compile/util"),d=e("./async"),p=e("co");r.exports=Ajv,Ajv.prototype.compileAsync=d.compile,Ajv.prototype.addKeyword=e("./keyword"),Ajv.ValidationError=e("./compile/validation_error");var m="http://json-schema.org/draft-04/schema",v=/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,y=["removeAdditional","useDefaults","coerceTypes"]},{"./async":1,"./cache":2,"./compile":6,"./compile/formats":5,"./compile/resolve":7,"./compile/rules":8,"./compile/schema_obj":9,"./compile/util":10,"./compile/validation_error":11,"./keyword":35,"./refs/json-schema-draft-04.json":36,"./v5":38,co:39,"json-stable-stringify":40}]},{},[])("ajv")}); -//# sourceMappingURL=dist/ajv.min.js.map \ No newline at end of file
deleted file mode 100644 --- a/testing/web-platform/tests/annotation-model/scripts/ajv.min.js.map +++ /dev/null @@ -1,1 +0,0 @@ -{"version":3,"sources":["dist/ajv.bundle.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Ajv","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","setupAsync","opts","required","check","async","transpile","get","TRANSPILE","_transpileFunc","ASYNC","MODES","_opts","util","copy","checkGenerators","eval","checkAsyncFunction","getRegenerator","regenerator","runtime","regeneratorTranspile","compile","getNodent","nodent","log","dontInstallRequireHook","console","warn","nodentTranspile","promises","sourcemap","compileAsync","schema","callback","_compileAsync","firstCall","loadMissingSchema","schemaLoaded","err","sch","_refs","ref","_schemas","addSchema","missingSchema","missingRef","_callbacks","_loadingSchemas","loadSchema","deferCallback","validate","setTimeout","schemaObj","_addSchema","setup","*","co*","es7","./compile/util","2","Cache","_cache","prototype","put","key","value","del","clear","3","$ref","allOf","anyOf","dependencies","enum","format","items","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","not","oneOf","pattern","properties","uniqueItems","../dotjs/_limit","../dotjs/_limitItems","../dotjs/_limitLength","../dotjs/_limitProperties","../dotjs/allOf","../dotjs/anyOf","../dotjs/dependencies","../dotjs/enum","../dotjs/format","../dotjs/items","../dotjs/multipleOf","../dotjs/not","../dotjs/oneOf","../dotjs/pattern","../dotjs/properties","../dotjs/ref","../dotjs/required","../dotjs/uniqueItems","../dotjs/validate","4","equal","b","arrA","Array","isArray","arrB","keys","Object","undefined","5","formats","mode","formatDefs","fName","compare","date","str","matches","match","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","split","DATE_TIME_SEPARATOR","hostname","HOSTNAME","test","uri","NOT_URI_FRAGMENT","URI","regex","RegExp","compareDate","d1","d2","compareTime","t1","t2","compareDateTime","dt1","dt2","res","UUID","JSON_POINTER","RELATIVE_JSON_POINTER","fast","date-time","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","./util","6","root","localRefs","baseId","localCompile","_schema","_root","isRoot","$async","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","RULES","resolve","resolveRef","usePattern","useDefault","useCustomRule","vars","refVal","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","beautify","error","validateCode","errors","refs","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","v","localSchema","inlineRef","inlineRefs","replaceLocalRef","refId","inline","regexStr","index","patternsHash","toQuotedString","valueStr","stableStringify","defaultsHash","rule","parentSchema","it","definition","macro","validateSchema","keyword","_formats","arr","statement","js_beautify","co","ucs2length","ValidationError","../async","./equal","./resolve","./validation_error","json-stable-stringify","7","SchemaObject","_compile","_resolve","p","parse","refPath","_getFullPath","getFullPath","id","normalizeId","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","slice","parts","part","unescapeFragment","PREVENT_SCOPE_CHANGE","limit","checkNoRef","countKeys","item","count","Infinity","SIMPLE_INLINED","normalize","protocol","host","path","replace","TRAILING_SLASH_HASH","resolveIds","_resolveIds","fullPath","escapeFragment","ids","toHash","./schema_obj","8","ruleModules","type","rules","all","keywords","types","forEach","group","map","push","concat","./_rules","9","obj","10","to","checkDataType","dataType","data","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","array","object","number","integer","coerceToTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","SINGLE_QUOTE","escapeQuotes","len","pos","charCodeAt","varOccurences","dataVar","varReplace","expr","cleanUpCode","out","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","cleanUpVarErrors","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_TRUE_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","schemaHasRules","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","11","message","ajv","validation","create","constructor","12","$keyword","$errorKeyword","$lvl","level","$dataLvl","dataLevel","$schema","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$valid","$schemaFormat","$isDataFormat","v5","$closingBraces","$schemaValueFormat","dataPathArr","$format","$compare","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$result","$isData","$schemaValue","$schemaValueExcl","$exclusive","$opExpr","$opStr","$$outStack","createErrors","messages","verbose","__err","pop","compositeRule","13","$notOp","14","15","unicode","16","17","$it","$currentBaseId","arr1","$sch","$i","l1","18","$errs","$noEmptySchema","every","$wasComposite","19","20","$schemaDeps","$propertyDeps","$property","$deps","$currentErrorPath","_$property","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","join","arr2","$reqProperty","i2","l2","21","22","$isObject","$formatRef","23","$dataNxt","$nextData","$additionalItems","additionalItems","$currErrSchemaPath","$passData","$code","24","multipleOfPrecision","25","$allErrorsOption","26","27","$regexp","28","$key","$matched","$pProperty","i1","$missingPattern","29","$schemaKeys","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","$pgProperties","patternGroups","$pgPropertyKeys","$propertyKey","arr3","$pgProperty","l3","$additionalProperty","$useDefaults","useDefaults","arr4","i4","l4","$hasDefault","$useData","arr5","i5","l5","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","30","$refCode","$refVal","$message","missingRefs","$error","passContext","__callValidate","31","$propertySch","$loopRequired","i3","32","$shouldContinue","$ifPassed","$caseIndex","then","33","34","$shouldUseGroup","$rulesGroup","$shouldUseRule","$rule","$top","rootId","$es7","yieldAwait","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","$type","$parentData","$dataProperty","JSON","stringify","custom","$ruleValidate","$ruleErrs","$ruleErr","$rDef","$asyncKeyword","$inline","$macro","statements","def_callRuleValidate","def_customError","$typeChecked","35","_addRule","ruleGroup","rg","36","description","definitions","schemaArray","positiveInteger","positiveIntegerDefault0","default","simpleTypes","stringArray","title","exclusiveMinimum","exclusiveMaximum","37","formatMaximum","formatMinimum","formatExclusiveMaximum","formatExclusiveMinimum","constant","contains","switch","if","continue","38","enableV5","_addKeyword","inlineFunc","inlineFunctions","addKeyword","_formatLimit","patternRequired","meta","metaSchema","addMetaSchema","META_SCHEMA_ID","containsMacro","enable","./dotjs/_formatLimit","./dotjs/constant","./dotjs/patternRequired","./dotjs/switch","./refs/json-schema-v5.json","39","gen","ctx","args","arguments","Promise","reject","onFulfilled","ret","next","onRejected","done","toPromise","isPromise","TypeError","String","apply","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","isObject","objectToPromise","fn","defer","promise","results","name","displayName","val","wrap","createPromise","__generatorFunction__","40","json","cmp","space","cycles","replacer","node","aobj","bobj","seen","parent","indent","colonSeparator","toJSON","indexOf","objectKeys","sort","keyValue","splice","","x","toString","has","hasOwnProperty","jsonify","41","./lib/parse","./lib/stringify","42","at","ch","text","escapee","\"","\\","/","m","c","charAt","string","isFinite","hex","uffff","parseInt","fromCharCode","white","word","source","reviver","result","walk","holder","k","43","quote","escapable","lastIndex","partial","mind","gap","rep","\b","\t","\n","\f","\r","44","RangeError","mapDomain","regexSeparators","labels","encoded","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","basic","j","oldi","w","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","encode","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toLowerCase","toASCII","regexNonASCII","freeExports","nodeType","freeModule","freeGlobal","punycode","overflow","not-basic","invalid-input","Math","version","ucs2","45","qs","sep","eq","options","regexp","maxKeys","kstr","vstr","idx","substr","xs","46","stringifyPrimitive","ks","47","./decode","./encode","48","Url","slashes","auth","port","search","query","pathname","href","urlParse","parseQueryString","slashesDenoteHost","urlFormat","isString","urlResolve","relative","urlResolveObject","resolveObject","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","queryIndex","splitter","uSplit","slashRegex","rest","trim","simplePath","exec","proto","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","unshift","h","ae","esc","escape","qm","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","isAbsolute","49","arg","SCHEMA_URI_FORMAT_FUNC","SCHEMA_URI_FORMAT","schemaKeyRef","getSchema","valid","_skipValidation","_meta","checkUnique","skipValidation","throwOrLogError","defaultMeta","currentUriFormat","errorsText","keyRef","_getSchemaObj","removeSchema","_removeAllSchemas","jsonStr","schemas","shouldAddSchema","cached","addUsedSchema","callValidate","_validate","compiling","currentOpts","_metaOpts","compileSchema","separator","dataPath","addFormat","addInitialSchemas","optsSchemas","addInitialFormats","getMetaSchemaOptions","metaOpts","META_IGNORE_OPTIONS","cache","indent_size","errorDataPath","./async","./cache","./compile","./compile/formats","./compile/resolve","./compile/rules","./compile/schema_obj","./compile/validation_error","./keyword","./refs/json-schema-draft-04.json","./v5"],"mappings":"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