The package rpms/nodejs-tv4.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/nodejs-tv4.git/commit/?id=b16a6e2....
Change:
+ExclusiveArch: %{nodejs_arches} noarch
Thanks.
Full change:
============
commit b16a6e2ac1b22c3b28ab244f078725bfcd71b57d
Author: Jared Smith <jsmith(a)fedoraproject.org>
Date: Mon Apr 30 11:02:54 2018 -0400
Initial packaging
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b94287a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/tests-1.3.0.tar.bz2
+/tv4-1.3.0.tgz
diff --git a/README.md b/README.md
deleted file mode 100644
index 0c23d38..0000000
--- a/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# nodejs-tv4
-
-'A public domain JSON Schema validator for JavaScript'
\ No newline at end of file
diff --git a/bower.json b/bower.json
new file mode 100644
index 0000000..2630891
--- /dev/null
+++ b/bower.json
@@ -0,0 +1,42 @@
+{
+ "name": "tv4",
+ "version": "1.2.7",
+ "description": "A public domain JSON Schema validator for
JavaScript",
+ "keywords": [
+ "json-schema",
+ "schema",
+ "validator",
+ "tv4"
+ ],
+ "homepage":
"https://github.com/geraintluff/tv4#tiny-validator-for-v4-json-schema",
+ "license": [
+ {
+ "type": "Public Domain",
+ "url": "http://geraintluff.github.io/tv4/LICENSE.txt"
+ },
+ {
+ "type": "MIT",
+ "url": "http://jsonary.com/LICENSE.txt"
+ }
+ ],
+ "main": "tv4.js",
+ "ignore": [
+ "*.html",
+ "*.txt",
+ "*.min.js",
+ "*.js.map",
+ "*.md",
+ "Gruntfile.js",
+ "package.json",
+ "component.json",
+ "bower.json",
+ "node_modules",
+ "test",
+ "try",
+ "build",
+ "dist",
+ "doc",
+ "source",
+ ".*"
+ ]
+}
diff --git a/component.json b/component.json
new file mode 100644
index 0000000..888ef44
--- /dev/null
+++ b/component.json
@@ -0,0 +1,28 @@
+{
+ "name": "tv4",
+ "repo": "geraintluff/tv4",
+ "version": "1.2.7",
+ "description": "A public domain JSON Schema v4 validator for
JavaScript",
+ "keywords": [
+ "json-schema",
+ "schema",
+ "validator",
+ "tv4"
+ ],
+ "dependencies": {},
+ "development": {},
+ "license": "MIT",
+ "main": "tv4.js",
+ "scripts": [
+ "tv4.js",
+ "lang/de.js",
+ "lang/fr.js",
+ "lang/nb.js",
+ "lang/pl-PL.js",
+ "lang/pt-PT.js",
+ "lang/sv-SE.js",
+ "lang/zh-CN.js"
+ ],
+ "styles": [],
+ "files": []
+}
\ No newline at end of file
diff --git a/dl-tests.sh b/dl-tests.sh
new file mode 100644
index 0000000..8461795
--- /dev/null
+++ b/dl-tests.sh
@@ -0,0 +1,131 @@
+#!/bin/bash
+
+tag=$(sed -n 's/^Version:\s\(.*\)$/\1/p' ./*.spec | sed -e
's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
+url=$(sed -n 's/^URL:\s\(.*\)$/\1/p' ./*.spec | sed -e
's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
+pkgdir=$(basename $url | sed -s 's/\.git$//')
+
+echo "tag: $tag"
+echo "URL: $url"
+echo "pkgdir: $pkgdir"
+
+set -e
+
+tmp=$(mktemp -d)
+
+trap cleanup EXIT
+cleanup() {
+ echo Cleaning up...
+ set +e
+ [ -z "$tmp" -o ! -d "$tmp" ] || rm -rf "$tmp"
+}
+
+unset CDPATH
+pwd=$(pwd)
+
+pushd "$tmp"
+git clone $url
+cd $pkgdir
+echo Finding git tag
+gittag=$(git show-ref --tags | cut -d' ' -f2 | grep "${tag}$" || git
show-ref --tags | cut -d' ' -f2 | sort -Vr | head -n1)
+if [ -z $gittag ]; then
+ gittag=tags/$tag
+fi
+echo "Git Tag: $gittag"
+if [ -d "test" ]; then
+ git archive --prefix='test/' --format=tar ${gittag}:test/ \
+ | bzip2 > "$pwd"/tests-${tag}.tar.bz2
+elif [ -d "tests" ]; then
+ git archive --prefix='tests/' --format=tar ${gittag}:tests/ \
+ | bzip2 > "$pwd"/tests-${tag}.tar.bz2
+elif [ -d "spec" ]; then
+ git archive --prefix='spec/' --format=tar ${gittag}:spec/ \
+ | bzip2 > "$pwd"/tests-${tag}.tar.bz2
+else
+ echo "No test directory found for tag ${gittag}"
+fi
+if [ -d "support" ]; then
+ git archive --prefix='support/' --format=tar ${gittag}:support/ \
+ | bzip2 > "$pwd"/support-${tag}.tar.bz2
+fi
+if [ -d "fixture" ]; then
+ git archive --prefix='fixture/' --format=tar ${gittag}:fixture/ \
+ | bzip2 > "$pwd"/fixture-${tag}.tar.bz2
+fi
+if [ -d "examples" ]; then
+ git archive --prefix='examples/' --format=tar ${gittag}:examples/ \
+ | bzip2 > "$pwd"/examples-${tag}.tar.bz2
+elif [ -d "example" ]; then
+ git archive --prefix='example/' --format=tar ${gittag}:example/ \
+ | bzip2 > "$pwd"/examples-${tag}.tar.bz2
+fi
+if [ -d "tasks" ]; then
+ git archive --prefix='tasks/' --format=tar ${gittag}:tasks/ \
+ | bzip2 > "$pwd"/tasks-${tag}.tar.bz2
+fi
+if [ -d "docs" ]; then
+ git archive --prefix='docs/' --format=tar ${gittag}:docs/ \
+ | bzip2 > "$pwd"/docs-${tag}.tar.bz2
+elif [ -d "doc" ]; then
+ git archive --prefix='doc/' --format=tar ${gittag}:doc/ \
+ | bzip2 > "$pwd"/docs-${tag}.tar.bz2
+fi
+if [ -d "src" ]; then
+ git archive --prefix='src/' --format=tar ${gittag}:src/ \
+ | bzip2 > "$pwd"/src-${tag}.tar.bz2
+elif [ -d "source" ]; then
+ git archive --prefix='source/' --format=tar ${gittag}:source/ \
+ | bzip2 > "$pwd"/source-${tag}.tar.bz2
+fi
+if [ -d "tools" ]; then
+ git archive --prefix='tools/' --format=tar ${gittag}:tools/ \
+ | bzip2 > "$pwd"/tools-${tag}.tar.bz2
+fi
+if [ -d "scripts" ]; then
+ git archive --prefix='scripts/' --format=tar ${gittag}:scripts/ \
+ | bzip2 > "$pwd"/scripts-${tag}.tar.bz2
+fi
+if [ -d "modules" ]; then
+ git archive --prefix='modules/' --format=tar ${gittag}:modules/ \
+ | bzip2 > "$pwd"/modules-${tag}.tar.bz2
+fi
+if [ -d "ts" ]; then
+ git archive --prefix='ts/' --format=tar ${gittag}:ts/ \
+ | bzip2 > "$pwd"/ts-${tag}.tar.bz2
+fi
+if [ -d "build" ]; then
+ git archive --prefix='build/' --format=tar ${gittag}:build/ \
+ | bzip2 > "$pwd"/build-${tag}.tar.bz2
+fi
+if [ -d "fixtures" ]; then
+ git archive --prefix='fixtures/' --format=tar ${gittag}:fixtures/ \
+ | bzip2 > "$pwd"/fixtures-${tag}.tar.bz2
+fi
+if [ -d "mocks" ]; then
+ git archive --prefix='mocks/' --format=tar ${gittag}:mocks/ \
+ | bzip2 > "$pwd"/mocks-${tag}.tar.bz2
+fi
+if [ -d "typings" ]; then
+ git archive --prefix='typings/' --format=tar ${gittag}:typings/ \
+ | bzip2 > "$pwd"/typings-${tag}.tar.bz2
+fi
+if [ -d "templates" ]; then
+ git archive --prefix='templates/' --format=tar ${gittag}:templates/ \
+ | bzip2 > "$pwd"/templates-${tag}.tar.bz2
+fi
+if [ -d "benchmark" ]; then
+ git archive --prefix='benchmark/' --format=tar ${gittag}:benchmark/ \
+ | bzip2 > "$pwd"/benchmark-${tag}.tar.bz2
+fi
+if [ -d "vendor" ]; then
+ git archive --prefix='vendor/' --format=tar ${gittag}:vendor/ \
+ | bzip2 > "$pwd"/vendor-${tag}.tar.bz2
+fi
+if [ -d "packages" ]; then
+ git archive --prefix='packages/' --format=tar ${gittag}:packages/ \
+ | bzip2 > "$pwd"/packages-${tag}.tar.bz2
+fi
+if [ -d "rollup" ]; then
+ git archive --prefix='rollup/' --format=tar ${gittag}:rollup/ \
+ | bzip2 > "$pwd"/rollup-${tag}.tar.bz2
+fi
+popd
diff --git a/nodejs-tv4.spec b/nodejs-tv4.spec
new file mode 100644
index 0000000..7ff6460
--- /dev/null
+++ b/nodejs-tv4.spec
@@ -0,0 +1,79 @@
+%{?nodejs_find_provides_and_requires}
+
+%global packagename tv4
+%global enable_tests 1
+
+Name: nodejs-tv4
+Version: 1.3.0
+Release: 1%{?dist}
+Summary: A public domain JSON Schema validator for JavaScript
+
+License: MIT AND Public Domain
+URL:
https://github.com/geraintluff/tv4.git
+Source0:
https://registry.npmjs.org/%{packagename}/-/%{packagename}-%{version}.tgz
+# The test files are not included in the npm tarball.
+# Source{1-9} are generated by running Source10, which pulls from the upstream
+# version control repository.
+Source1: tests-%{version}.tar.bz2
+Source10: dl-tests.sh
+
+# component.json and bower.json files needed for tests, v1.3.0 isn't tagged, so
+# we'll pull from master
+Source11:
https://raw.githubusercontent.com/geraintluff/tv4/master/component.json
+Source12:
https://raw.githubusercontent.com/geraintluff/tv4/master/bower.json
+
+# Patch the tests to use a newer npm(proclaim) assertion library
+Patch0: nodejs-tv4_use-newer-proclaim.patch
+
+BuildArch: noarch
+ExclusiveArch: %{nodejs_arches} noarch
+
+BuildRequires: nodejs-packaging
+BuildRequires: npm(proclaim)
+
+%if 0%{?enable_tests}
+BuildRequires: mocha
+BuildRequires: npm(source-map-support)
+%endif
+
+%description
+A public domain JSON Schema validator for JavaScript
+
+
+%prep
+%setup -q -n package
+# setup the tests
+%setup -q -T -D -a 1 -n package
+cp -p %{SOURCE11} .
+cp -p %{SOURCE12} .
+
+%patch0 -p1
+
+
+%build
+# nothing to do
+
+%install
+mkdir -p %{buildroot}%{nodejs_sitelib}/%{packagename}
+cp -pr package.json *.js lang/ \
+ %{buildroot}%{nodejs_sitelib}/%{packagename}
+
+%nodejs_symlink_deps
+
+%check
+%nodejs_symlink_deps --check
+%{__nodejs} -e 'require("./")'
+%if 0%{?enable_tests}
+NODE_ENV=test %{_bindir}/mocha -R spec
+%else
+%{_bindir}/echo -e "\e[101m -=#=- Tests disabled -=#=- \e[0m"
+%endif
+
+%files
+%doc *.md
+%license LICENSE.txt
+%{nodejs_sitelib}/%{packagename}
+
+%changelog
+* Mon Apr 23 2018 Jared K. Smith <jsmith(a)fedoraproject.org> - 1.3.0-1
+- Initial packaging
diff --git a/nodejs-tv4_use-newer-proclaim.patch b/nodejs-tv4_use-newer-proclaim.patch
new file mode 100644
index 0000000..32e38d2
--- /dev/null
+++ b/nodejs-tv4_use-newer-proclaim.patch
@@ -0,0 +1,317 @@
+diff --git a/test/all_concat.js b/test/all_concat.js
+index d79c5be..9eed5c4 100644
+--- a/test/all_concat.js
++++ b/test/all_concat.js
+@@ -216,18 +216,18 @@ describe("Core 03", function () {
+
+ assert.notOk(tv4.error, "starts with no error");
+ assert.isTrue(tv4.valid, "starts valid");
+- assert.length(tv4.missing, 0, "starts with 0 missing");
++ assert.lengthEquals(tv4.missing, 0, "starts with 0 missing");
+
+ var valid = tv4.validate(data, schema);
+ assert.isFalse(valid);
+ assert.ok(tv4.error, "has error");
+ assert.isFalse(tv4.valid, "is invalid");
+- assert.length(tv4.missing, 1, "missing 1");
++ assert.lengthEquals(tv4.missing, 1, "missing 1");
+
+ tv4.reset();
+ assert.notOk(tv4.error, "reset to no error");
+ assert.isTrue(tv4.valid, "reset to valid");
+- assert.length(tv4.missing, 0, "reset to 0 missing");
++ assert.lengthEquals(tv4.missing, 0, "reset to 0 missing");
+ });
+ });
+ });
+@@ -1244,7 +1244,7 @@ describe("$ref 02", function () {
+ };
+ tv4.validate([], schema);
+ assert.notProperty(tv4.missing, "http://example.com/schema");
+- assert.length(tv4.missing, 0);
++ assert.lengthEquals(tv4.missing, 0);
+ //return !tv4.missing["http://example.com/schema"]
+ // && tv4.missing.length == 0;
+ });
+@@ -1263,7 +1263,7 @@ describe("$ref 02", function () {
+ "items": {"$ref": "http://example.com/schema#"}
+ };
+ tv4.validate([1, 2, 3], schema);
+- assert.length(tv4.missing, 1);
++ assert.lengthEquals(tv4.missing, 1);
+ assert.strictEqual(tv4.missing[0], "http://example.com/schema");
+ //return tv4.missing[0] == "http://example.com/schema";
+ });
+@@ -1324,7 +1324,7 @@ describe("$ref 03", function () {
+ //test missing
+ valid = tv4.validate(data, schema);
+ assert.isTrue(valid);
+- assert.length(tv4.missing, 1);
++ assert.lengthEquals(tv4.missing, 1);
+
assert.isUndefined(tv4.getSchema('http://example.com/schema/sub'));
+
+ var item = {
+@@ -1347,7 +1347,7 @@ describe("$ref 03", function () {
+
+ //now use it
+ valid = tv4.validate(data, schema);
+- assert.length(tv4.missing, 0);
++ assert.lengthEquals(tv4.missing, 0);
+ assert.isFalse(valid);
+
+ var error = {
+@@ -1374,7 +1374,7 @@ describe("$ref 04", function () {
+ var valid = tv4.validate([0,1,2,3], otherSchema);
+
+ assert.isTrue(valid, "should be valid");
+- assert.length(tv4.missing, 0, "should have no missing schemas");
++ assert.lengthEquals(tv4.missing, 0, "should have no missing schemas");
+
+ //this.assert(valid, "should be valid");
+ //this.assert(tv4.missing.length == 0, "should have no missing schemas");
+@@ -1390,7 +1390,7 @@ describe("$ref 04", function () {
+ assert.isTrue(!tv4.validate([0,1,2,3], schema), "List of ints should not");
+ assert.isTrue(!tv4.validate([[true], []], schema), "List of list with boolean
should not");
+
+- assert.length(tv4.missing, 0, "should have no missing schemas");
++ assert.lengthEquals(tv4.missing, 0, "should have no missing schemas");
+
+ //this.assert(tv4.validate([[],[[]]], schema), "List of lists should be
valid");
+ //this.assert(!tv4.validate([0,1,2,3], schema), "List of ints should not");
+@@ -1441,7 +1441,7 @@ describe("$ref 05", function () {
+ var data = [0, false];
+ var valid = tv4.validate(data, examplePath);
+
+- assert.length(tv4.missing, 1, "should have missing schema");
++ assert.lengthEquals(tv4.missing, 1, "should have missing schema");
+ assert.strictEqual(tv4.missing[0], examplePathBase + "/other-schema",
"incorrect schema missing: " + tv4.missing[0]);
+ assert.isTrue(valid, "should pass, as remote schema not found");
+
+@@ -1465,7 +1465,7 @@ describe("$refs to $refs", function () {
+ assert.isTrue(tv4.validate(42, {"$ref":
"http://example.com/schema#/data"}), "42 valid");
+ //assert.isFalse(tv4.validate(42, {"$ref":
"http://example.com/schema#/data"}), "\"42\" invalid");
+
+- assert.length(tv4.missing, 0, "should have no missing schemas");
++ assert.lengthEquals(tv4.missing, 0, "should have no missing schemas");
+ });
+
+ it("Don't hang on circle", function () {
+@@ -1517,14 +1517,14 @@ describe("API 03", function () {
+ it("getSchemaUris() on clean tv4 returns an empty array", function () {
+ var list = tv4.getSchemaUris();
+ assert.isArray(list);
+- assert.length(list, 0);
++ assert.lengthEquals(list, 0);
+ });
+
+ it("getSchemaUris() returns newly added schema urls", function () {
+
tv4.addSchema("http://example.com/schema", {type: "object"});
+ var list = tv4.getSchemaUris();
+ assert.isArray(list);
+- assert.length(list, 1);
++ assert.lengthEquals(list, 1);
+ assert.strictEqual(list[0], "http://example.com/schema");
+ });
+
+@@ -1542,19 +1542,19 @@ describe("API 03", function () {
+ var list;
+ list = tv4.getSchemaUris();
+ assert.isArray(list);
+- assert.length(list, 1);
+- assert.includes(list, "http://example.com/schema/main", 'map has main
uri');
++ assert.lengthEquals(list, 1);
++ assert.include(list, "http://example.com/schema/main", 'map has main
uri');
+
+ list = tv4.getMissingUris();
+ assert.isArray(list);
+- assert.length(list, 1);
+- assert.includes(list, "http://example.com/schema/item", 'map has item
uri');
++ assert.lengthEquals(list, 1);
++ assert.include(list, "http://example.com/schema/item", 'map has item
uri');
+
+ tv4.addSchema(item);
+
+ list = tv4.getMissingUris();
+ assert.isArray(list);
+- assert.length(list, 0);
++ assert.lengthEquals(list, 0);
+ });
+
+ it("getSchemaUris() optionally return filtered items", function () {
+@@ -1566,13 +1566,13 @@ describe("API 03", function () {
+ var list;
+ list = tv4.getSchemaUris(/schema\/main/);
+ assert.isArray(list);
+- assert.length(list, 1, 'list 1 main');
+- assert.includes(list, "http://example.com/schema/main");
++ assert.lengthEquals(list, 1, 'list 1 main');
++ assert.include(list, "http://example.com/schema/main");
+
+ list = tv4.getMissingUris(/^https?/);
+ assert.isArray(list);
+- assert.length(list, 1, 'list 1 item');
+- assert.includes(list, "http://example.com/schema/item");
++ assert.lengthEquals(list, 1, 'list 1 item');
++ assert.include(list, "http://example.com/schema/item");
+ });
+
+ it("getSchemaUris() returns unique uris without fragment", function () {
+@@ -1598,14 +1598,14 @@ describe("API 03", function () {
+ var list;
+ list = tv4.getSchemaUris();
+ assert.isArray(list);
+- assert.length(list, 2);
+- assert.includes(list, "http://example.com/schema/main");
+- assert.includes(list, "http://example.com/schema/item");
++ assert.lengthEquals(list, 2);
++ assert.include(list, "http://example.com/schema/main");
++ assert.include(list, "http://example.com/schema/item");
+
+ list = tv4.getMissingUris();
+ assert.isArray(list);
+- assert.length(list, 1);
+- assert.includes(list, "http://example.com/schema/lib");
++ assert.lengthEquals(list, 1);
++ assert.include(list, "http://example.com/schema/lib");
+ });
+
+
+@@ -1614,7 +1614,7 @@ describe("API 03", function () {
+ assert.isObject(map);
+ assert.isNotArray(map);
+ var list = Object.keys(map);
+- assert.length(list, 0);
++ assert.lengthEquals(list, 0);
+ });
+
+ it("getSchemaMap() returns an object mapping uris to schemas", function () {
+@@ -1639,7 +1639,7 @@ describe("API 03", function () {
+
+ var map;
+ map = tv4.getSchemaMap();
+- assert.length(Object.keys(map), 2);
++ assert.lengthEquals(Object.keys(map), 2);
+ assert.ownPropertyVal(map, "http://example.com/schema/main", schema);
+ assert.ownPropertyVal(map, "http://example.com/schema/item", sub);
+ });
+@@ -1670,7 +1670,7 @@ describe("Multiple errors 01", function () {
+ var schema = {"additionalProperties": {"type":
"string"}};
+ var result = tv4.validateMultiple(data, schema);
+
+- assert.length(result.errors, 2, "should return two errors");
++ assert.lengthEquals(result.errors, 2, "should return two errors");
+ //this.assert(result.errors.length == 2, "should return two errors");
+ });
+
+@@ -1685,7 +1685,7 @@ describe("Multiple errors 01", function () {
+ var result = tv4.validateMultiple(data, schema);
+
+ assert.isFalse(result.valid, "should not validate");
+- assert.length(result.errors, 1, "should list one error");
++ assert.lengthEquals(result.errors, 1, "should list one error");
+
+ //this.assert(result.valid == false, "should not validate");
+ //this.assert(result.errors.length == 1, "should list one error");
+@@ -1699,7 +1699,7 @@ describe("Multiple errors 01", function () {
+ var result = tv4.validateMultiple(data, schema);
+
+ assert.isFalse(result.valid, "should not validate");
+- assert.length(result.errors, 1, "should list one error");
++ assert.lengthEquals(result.errors, 1, "should list one error");
+
+ //this.assert(result.valid == false, "should not validate");
+ //this.assert(result.errors.length == 1, "should list one error");
+@@ -1713,7 +1713,7 @@ describe("Multiple errors 01", function () {
+ var result = tv4.validateMultiple(data, schema);
+
+ assert.isTrue(result.valid, "should validate");
+- assert.length(result.errors, 0, "no errors");
++ assert.lengthEquals(result.errors, 0, "no errors");
+
+ //this.assert(result.valid == true, "should validate");
+ //this.assert(result.errors.length == 0, "no errors");
+@@ -1730,7 +1730,7 @@ describe("Multiple errors 01", function () {
+ var result = tv4.validateMultiple(data, schema);
+
+ assert.isFalse(result.valid, "should not validate");
+- assert.length(result.errors, 1, "only one error");
++ assert.lengthEquals(result.errors, 1, "only one error");
+
+ //this.assert(result.valid == false, "should not validate");
+ //this.assert(result.errors.length == 1, "only one error");
+@@ -1744,7 +1744,7 @@ describe("Multiple errors 01", function () {
+ var result = tv4.validateMultiple(data, schema);
+
+ assert.isFalse(result.valid, "should not validate");
+- assert.length(result.errors, 2, "two errors");
++ assert.lengthEquals(result.errors, 2, "two errors");
+
+ //this.assert(result.valid == false, "should not validate");
+ //this.assert(result.errors.length == 2, "exactly two errors, not " +
result.errors.length);
+@@ -1809,7 +1809,7 @@ describe("Multiple errors 02", function () {
+ var result = tv4.validateMultiple(data, schema);
+
+ assert.isTrue(result.valid, "data should be valid");
+- assert.length(result.errors, 0, "should have no errors");
++ assert.lengthEquals(result.errors, 0, "should have no errors");
+
+ //this.assert(result.valid == true, "data should be valid");
+ //this.assert(result.errors.length == 0, "should have no errors");
+@@ -1866,7 +1866,7 @@ describe("Registering custom validator", function () {
+
+ assert.isTrue(tv4.validate(data1, schema));
+ assert.isFalse(tv4.validate(data2, schema));
+- assert.includes(tv4.error.message, 'string does not match');
++ assert.include(tv4.error.message, 'string does not match');
+ });
+
+ it("Custom validator object error format", function () {
+@@ -1886,7 +1886,7 @@ describe("Registering custom validator", function () {
+
+ assert.isTrue(tv4.validate(data1, schema));
+ assert.isFalse(tv4.validate(data2, schema));
+- assert.includes(tv4.error.message, 'Error message');
++ assert.include(tv4.error.message, 'Error message');
+ assert.equal(tv4.error.schemaPath, '/flah');
+ });
+
+@@ -1899,12 +1899,12 @@ describe("Registering custom validator", function () {
+ var schema1 = {format: 'test1'};
+ var result1 = tv4.validateResult("test string", schema1);
+ assert.isFalse(result1.valid);
+- assert.includes(result1.error.message, 'break 1');
++ assert.include(result1.error.message, 'break 1');
+
+ var schema2 = {format: 'test2'};
+ var result2 = tv4.validateResult("test string", schema2);
+ assert.isFalse(result2.valid);
+- assert.includes(result2.error.message, 'break 2');
++ assert.include(result2.error.message, 'break 2');
+ });
+ });
+
+@@ -2359,7 +2359,7 @@ describe("Load language file", function () {
+
+ var res = freshTv4.validateResult({type: 'monkey'},
"/polymorphic");
+ assert.isTrue(res.valid);
+- assert.includes(res.missing, "/schemas/monkey.json");
++ assert.include(res.missing, "/schemas/monkey.json");
+
+ freshTv4.addSchema('/schemas/tiger.json', {
+ properties: {
+@@ -2480,7 +2480,7 @@ describe("Issue 32", function () {
+ // Usage 3
+ var expectedMultipleErrorResult = tv4.validateMultiple(addlPropInSubSchema,
mySchema);
+ assert.isFalse(expectedMultipleErrorResult.valid, 'validateMultiple should
fail');
+- assert.length(expectedMultipleErrorResult.errors, 1, 'validateMultiple should have
exactly one error');
++ assert.lengthEquals(expectedMultipleErrorResult.errors, 1, 'validateMultiple
should have exactly one error');
+ //this.assert(!expectedMultipleErrorResult.valid, 'validateMultiple should
fail');
+ //this.assert(expectedMultipleErrorResult.errors.length == 1, 'validateMultiple
should have exactly one error');
+ });
+@@ -2633,4 +2633,4 @@ describe("Enum object/null failure", function () {
+ assert.isFalse(result.valid, 'validateMultiple() should return invalid');
+ });
+ });
+-//@ sourceMappingURL=all_concat.js.map
+\ No newline at end of file
++//@ sourceMappingURL=all_concat.js.map
diff --git a/sources b/sources
new file mode 100644
index 0000000..597390b
--- /dev/null
+++ b/sources
@@ -0,0 +1,2 @@
+SHA512 (tests-1.3.0.tar.bz2) =
d1b63d0d2421c89680fb6e58e200dd53a62dd382a3e1764d018bd7331cc6e33e9acddd237d234c032700f5d4b593b02849300936426336b76b6a2569f216b459
+SHA512 (tv4-1.3.0.tgz) =
69f8b3cdfa4982f3ebf9e0e44442b833127ffabf271041dc9a2b708273d4aa968ff85a7043269d9f136848009b81cfdbd4bb1962d3831a83e217142b809823bf