From c3fd59a568ba737de925745e045f8a4f6b6957fd Mon Sep 17 00:00:00 2001 From: Dmitri Zagidulin Date: Tue, 1 Nov 2016 14:28:02 -0400 Subject: [PATCH 1/8] Export solid-permission constants --- index.js | 20 +++++++++++--------- test/unit/solid-client-test.js | 13 +++++++++++++ 2 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 test/unit/solid-client-test.js diff --git a/index.js b/index.js index 908a7a2..86097ba 100755 --- a/index.js +++ b/index.js @@ -33,20 +33,22 @@ https://github.com/solid/solid * @main solid-client */ -var rdf = require('./lib/util/rdf-parser') -var acl = require('solid-permissions') -var webClient = require('solid-web-client')(rdf) -var ClientAuthTLS = require('solid-auth-tls') -var auth = new ClientAuthTLS(webClient) -var identity = require('./lib/identity') -var ns = require('solid-namespace')(rdf) +const rdf = require('./lib/util/rdf-parser') +const webClient = require('solid-web-client')(rdf) +const ClientAuthTLS = require('solid-auth-tls') +const auth = new ClientAuthTLS(webClient) +const identity = require('./lib/identity') +const ns = require('solid-namespace')(rdf) +const acl = require('solid-permissions') +Object.assign(acl, acl.Authorization.acl) +acl.ALL_MODES = acl.Authorization.ALL_MODES /** * @class Solid * @static */ -var Solid = { - acl: acl.acl, +const Solid = { + acl: acl, AppRegistration: require('./lib/solid/app-registration'), appRegistry: require('./lib/app-registry'), auth: auth, diff --git a/test/unit/solid-client-test.js b/test/unit/solid-client-test.js new file mode 100644 index 0000000..d96a121 --- /dev/null +++ b/test/unit/solid-client-test.js @@ -0,0 +1,13 @@ +'use strict' +const test = require('tape') +const solid = require('../../index') + +test.only('solid-permissions api export test', t => { + t.ok(solid.acl, 'solid-permissions lib not exposed as solid.acl') + t.ok(solid.acl.Authorization) + t.ok(solid.acl.PermissionSet) + t.ok(solid.acl.READ && solid.acl.WRITE && solid.acl.APPEND && + solid.acl.CONTROL) + t.ok(solid.acl.ALL_MODES) + t.end() +}) From 8df47f91c7e1a4cbecfb32b62427cbfee8515f49 Mon Sep 17 00:00:00 2001 From: Dmitri Zagidulin Date: Tue, 1 Nov 2016 14:30:33 -0400 Subject: [PATCH 2/8] Move lib/ to src/ --- {lib => src}/app-registry.js | 0 {lib => src}/identity.js | 0 index.js => src/index.js | 0 {lib => src}/meta.js | 0 {lib => src}/registry.js | 0 {lib => src}/solid/app-registration.js | 0 {lib => src}/solid/index-registration.js | 0 {lib => src}/solid/profile.js | 0 {lib => src}/status.js | 0 {lib => src}/type-registry.js | 0 {lib => src}/util/graph-util.js | 0 {lib => src}/util/rdf-parser.js | 0 {lib => src}/util/web-util.js | 0 13 files changed, 0 insertions(+), 0 deletions(-) rename {lib => src}/app-registry.js (100%) rename {lib => src}/identity.js (100%) rename index.js => src/index.js (100%) rename {lib => src}/meta.js (100%) rename {lib => src}/registry.js (100%) rename {lib => src}/solid/app-registration.js (100%) rename {lib => src}/solid/index-registration.js (100%) rename {lib => src}/solid/profile.js (100%) rename {lib => src}/status.js (100%) rename {lib => src}/type-registry.js (100%) rename {lib => src}/util/graph-util.js (100%) rename {lib => src}/util/rdf-parser.js (100%) rename {lib => src}/util/web-util.js (100%) diff --git a/lib/app-registry.js b/src/app-registry.js similarity index 100% rename from lib/app-registry.js rename to src/app-registry.js diff --git a/lib/identity.js b/src/identity.js similarity index 100% rename from lib/identity.js rename to src/identity.js diff --git a/index.js b/src/index.js similarity index 100% rename from index.js rename to src/index.js diff --git a/lib/meta.js b/src/meta.js similarity index 100% rename from lib/meta.js rename to src/meta.js diff --git a/lib/registry.js b/src/registry.js similarity index 100% rename from lib/registry.js rename to src/registry.js diff --git a/lib/solid/app-registration.js b/src/solid/app-registration.js similarity index 100% rename from lib/solid/app-registration.js rename to src/solid/app-registration.js diff --git a/lib/solid/index-registration.js b/src/solid/index-registration.js similarity index 100% rename from lib/solid/index-registration.js rename to src/solid/index-registration.js diff --git a/lib/solid/profile.js b/src/solid/profile.js similarity index 100% rename from lib/solid/profile.js rename to src/solid/profile.js diff --git a/lib/status.js b/src/status.js similarity index 100% rename from lib/status.js rename to src/status.js diff --git a/lib/type-registry.js b/src/type-registry.js similarity index 100% rename from lib/type-registry.js rename to src/type-registry.js diff --git a/lib/util/graph-util.js b/src/util/graph-util.js similarity index 100% rename from lib/util/graph-util.js rename to src/util/graph-util.js diff --git a/lib/util/rdf-parser.js b/src/util/rdf-parser.js similarity index 100% rename from lib/util/rdf-parser.js rename to src/util/rdf-parser.js diff --git a/lib/util/web-util.js b/src/util/web-util.js similarity index 100% rename from lib/util/web-util.js rename to src/util/web-util.js From 73b37f876172a37445ca9d3f9ccf737d2b43d1a5 Mon Sep 17 00:00:00 2001 From: Dmitri Zagidulin Date: Tue, 1 Nov 2016 14:43:41 -0400 Subject: [PATCH 3/8] Add babel-cli, update configs to use new lib/ dir --- .gitignore | 1 + package.json | 26 ++++++++++++-------------- src/index.js | 18 +++++++++--------- test/unit/solid-client-test.js | 4 ++-- test/unit/vocab-test.js | 2 +- webpack.config.js | 10 +--------- 6 files changed, 26 insertions(+), 35 deletions(-) diff --git a/.gitignore b/.gitignore index 9bce56a..646213b 100755 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules/ tests/ vendor/ dist/ +lib/ diff --git a/package.json b/package.json index bd692af..19fc96e 100644 --- a/package.json +++ b/package.json @@ -2,27 +2,28 @@ "name": "solid-client", "version": "0.22.4", "description": "Common library for writing Solid read-write-web applications", - "main": "./index.js", + "main": "./lib/index.js", "files": [ - "index.js", "config.js", "lib", - "dist" + "dist", + "src" ], "scripts": { + "babel": "babel src -d lib", "build-full": "webpack --progress --config webpack.config.js --output-filename solid-client-full.js", "build-with-rdflib": "webpack --progress --colors --optimize-minimize --optimize-occurrence-order --optimize-dedupe --config webpack.config.js", "build-without-rdflib": "webpack --progress --colors --optimize-minimize --optimize-occurrence-order --optimize-dedupe --config webpack-no-rdflib.config.js", "build-qunit-resources": "npm run clean && mkdir -p dist/resources && npm run build-full && browserify -r ./test/resources/profile-minimal.js:test-minimal-profile -o dist/resources/test-minimal-profile.js && browserify -r ./test/resources/profile-private.js:test-minimal-prefs -o dist/resources/test-minimal-prefs.js", - "build": "npm run clean && mkdir dist && npm run build-with-rdflib && npm run build-without-rdflib", + "build": "npm run clean && mkdir dist && npm run babel && npm run build-with-rdflib && npm run build-without-rdflib", "clean": "rm -rf dist/", - "standard": "standard lib/*", + "standard": "standard src/*", "tape": "tape test/unit/*.js", - "test": "npm run standard && npm run tape", + "test": "npm run standard && npm run babel && npm run tape", "qunit": "npm run build-qunit-resources && open test/integration/index.html", "preversion": "npm test", - "postversion": "git push --follow-tags", - "prepublish": "npm run build" + "postpublish": "git push --follow-tags", + "prepublish": "npm run build && npm run test" }, "babel": { "presets": [ @@ -55,19 +56,16 @@ }, "homepage": "https://github.com/solid/solid-client", "dependencies": { + "babel-cli": "^6.18.0", + "babel-preset-es2015": "^6.18.0", "rdflib": "^0.12.1", "shorthash": "0.0.2", "solid-auth-tls": "0.0.4", "solid-namespace": "^0.1.0", - "solid-permissions": "^0.4.1", + "solid-permissions": "^0.4.2", "solid-web-client": "0.0.9" }, "devDependencies": { - "babel-cli": "^6.11.4", - "babel-core": "^6.11.4", - "babel-loader": "^6.2.4", - "babel-preset-es2015": "^6.9.0", - "blue-tape": "^0.2.0", "json-loader": "^0.5.4", "qunit": "^0.9.0", "standard": "^5.4.1", diff --git a/src/index.js b/src/index.js index 86097ba..34052fc 100755 --- a/src/index.js +++ b/src/index.js @@ -33,11 +33,11 @@ https://github.com/solid/solid * @main solid-client */ -const rdf = require('./lib/util/rdf-parser') +const rdf = require('./util/rdf-parser') const webClient = require('solid-web-client')(rdf) const ClientAuthTLS = require('solid-auth-tls') const auth = new ClientAuthTLS(webClient) -const identity = require('./lib/identity') +const identity = require('./identity') const ns = require('solid-namespace')(rdf) const acl = require('solid-permissions') Object.assign(acl, acl.Authorization.acl) @@ -49,18 +49,18 @@ acl.ALL_MODES = acl.Authorization.ALL_MODES */ const Solid = { acl: acl, - AppRegistration: require('./lib/solid/app-registration'), - appRegistry: require('./lib/app-registry'), + AppRegistration: require('./solid/app-registration'), + appRegistry: require('./app-registry'), auth: auth, - config: require('./config'), + config: require('../config'), currentUser: auth.currentUser.bind(auth), - identity: require('./lib/identity'), + identity: require('./identity'), login: auth.login.bind(auth), - meta: require('./lib/meta'), + meta: require('./meta'), rdflib: rdf, signup: auth.signup.bind(auth), - status: require('./lib/status'), - typeRegistry: require('./lib/type-registry'), + status: require('./status'), + typeRegistry: require('./type-registry'), vocab: ns, web: webClient } diff --git a/test/unit/solid-client-test.js b/test/unit/solid-client-test.js index d96a121..ffc26ce 100644 --- a/test/unit/solid-client-test.js +++ b/test/unit/solid-client-test.js @@ -1,8 +1,8 @@ 'use strict' const test = require('tape') -const solid = require('../../index') +const solid = require('../../lib/index') -test.only('solid-permissions api export test', t => { +test('solid-permissions api export test', t => { t.ok(solid.acl, 'solid-permissions lib not exposed as solid.acl') t.ok(solid.acl.Authorization) t.ok(solid.acl.PermissionSet) diff --git a/test/unit/vocab-test.js b/test/unit/vocab-test.js index c561e2e..9583cc0 100644 --- a/test/unit/vocab-test.js +++ b/test/unit/vocab-test.js @@ -1,7 +1,7 @@ 'use strict' var test = require('tape') -var solid = require('../../index') +var solid = require('../../lib/index') test('solid.vocab test', function (t) { t.plan(1) diff --git a/webpack.config.js b/webpack.config.js index 83a1354..9dca54d 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -2,7 +2,7 @@ var path = require('path') module.exports = { entry: [ - './index.js' + './lib/index.js' ], output: { path: path.join(__dirname, '/dist/'), @@ -17,14 +17,6 @@ module.exports = { resolveLoader: { fallback: path.join(__dirname, 'node_modules') }, module: { loaders: [ - { - test: /\.js$/, - // exclude: /(node_modules)/, - loader: 'babel', - query: { - presets: ['es2015'] - } - }, { test: /\.json$/, loader: 'json' From 6929684f62cdb97d30e9f210faf2094c0ee63ce1 Mon Sep 17 00:00:00 2001 From: Dmitri Zagidulin Date: Tue, 1 Nov 2016 14:44:23 -0400 Subject: [PATCH 4/8] Remove unused acl test resource --- test/resources/acl-container-ttl.js | 31 ----------------------------- 1 file changed, 31 deletions(-) delete mode 100644 test/resources/acl-container-ttl.js diff --git a/test/resources/acl-container-ttl.js b/test/resources/acl-container-ttl.js deleted file mode 100644 index 25fcf7c..0000000 --- a/test/resources/acl-container-ttl.js +++ /dev/null @@ -1,31 +0,0 @@ -module.exports = `@prefix acl: . -@prefix foaf: . - -<#authorization1> - a acl:Authorization; - - # These statements specify access rules for the /docs/ container itself: - acl:agent - , - , - , - ; - acl:accessTo ; - acl:mode - acl:Read, acl:Write, acl:Control; - - acl:origin - ; - - # defaultForNew says: this authorization (the statements above) will also - # be inherited by any resource within that container that doesn't have its - # own ACL. - acl:defaultForNew . - # soon to be: - # acl:default . - -<#authorization2> - a acl:Authorization; - acl:agentClass foaf:Agent; # everyone - acl:mode acl:Read; # has Read-only access - acl:accessTo . # to the public profile` From 9b867f84eb7653bd28dca7d0b47389a9365f0551 Mon Sep 17 00:00:00 2001 From: Dmitri Zagidulin Date: Tue, 22 Nov 2016 16:25:05 -0500 Subject: [PATCH 5/8] Refactor package, webpack config to reflect PR feedback --- package.json | 9 ++++----- src/index.js | 6 ++---- test/unit/app-registry-test.js | 10 +++++----- test/unit/solid-client-test.js | 2 +- test/unit/solid-profile-test.js | 6 +++--- test/unit/type-registry-test.js | 10 +++++----- test/unit/vocab-test.js | 2 +- webpack.config.js | 8 ++++++++ 8 files changed, 29 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 19fc96e..1f94dbf 100644 --- a/package.json +++ b/package.json @@ -6,20 +6,19 @@ "files": [ "config.js", "lib", - "dist", - "src" + "dist" ], "scripts": { - "babel": "babel src -d lib", + "build-lib": "babel src -d lib", "build-full": "webpack --progress --config webpack.config.js --output-filename solid-client-full.js", "build-with-rdflib": "webpack --progress --colors --optimize-minimize --optimize-occurrence-order --optimize-dedupe --config webpack.config.js", "build-without-rdflib": "webpack --progress --colors --optimize-minimize --optimize-occurrence-order --optimize-dedupe --config webpack-no-rdflib.config.js", "build-qunit-resources": "npm run clean && mkdir -p dist/resources && npm run build-full && browserify -r ./test/resources/profile-minimal.js:test-minimal-profile -o dist/resources/test-minimal-profile.js && browserify -r ./test/resources/profile-private.js:test-minimal-prefs -o dist/resources/test-minimal-prefs.js", - "build": "npm run clean && mkdir dist && npm run babel && npm run build-with-rdflib && npm run build-without-rdflib", + "build": "npm run clean && mkdir dist && npm run build-lib && npm run build-with-rdflib && npm run build-without-rdflib", "clean": "rm -rf dist/", "standard": "standard src/*", "tape": "tape test/unit/*.js", - "test": "npm run standard && npm run babel && npm run tape", + "test": "npm run standard && npm run tape", "qunit": "npm run build-qunit-resources && open test/integration/index.html", "preversion": "npm test", "postpublish": "git push --follow-tags", diff --git a/src/index.js b/src/index.js index 34052fc..11a6dd2 100755 --- a/src/index.js +++ b/src/index.js @@ -40,18 +40,16 @@ const auth = new ClientAuthTLS(webClient) const identity = require('./identity') const ns = require('solid-namespace')(rdf) const acl = require('solid-permissions') -Object.assign(acl, acl.Authorization.acl) -acl.ALL_MODES = acl.Authorization.ALL_MODES /** * @class Solid * @static */ const Solid = { - acl: acl, + acl, AppRegistration: require('./solid/app-registration'), appRegistry: require('./app-registry'), - auth: auth, + auth, config: require('../config'), currentUser: auth.currentUser.bind(auth), identity: require('./identity'), diff --git a/test/unit/app-registry-test.js b/test/unit/app-registry-test.js index 413b028..7a55a49 100644 --- a/test/unit/app-registry-test.js +++ b/test/unit/app-registry-test.js @@ -1,12 +1,12 @@ 'use strict' -var appRegistry = require('../../lib/app-registry') -var parseGraph = require('../../lib/util/graph-util').parseGraph -var registry = require('../../lib/registry') +var appRegistry = require('../../src/app-registry') +var parseGraph = require('../../src/util/graph-util').parseGraph +var registry = require('../../src/registry') var test = require('tape') -var AppRegistration = require('../../lib/solid/app-registration') +var AppRegistration = require('../../src/solid/app-registration') -var rdf = require('../../lib/util/rdf-parser') +var rdf = require('../../src/util/rdf-parser') var vocab = require('solid-namespace')(rdf) test('blankPublicAppRegistry() test', function (t) { diff --git a/test/unit/solid-client-test.js b/test/unit/solid-client-test.js index ffc26ce..92091c1 100644 --- a/test/unit/solid-client-test.js +++ b/test/unit/solid-client-test.js @@ -1,6 +1,6 @@ 'use strict' const test = require('tape') -const solid = require('../../lib/index') +const solid = require('../../src/index') test('solid-permissions api export test', t => { t.ok(solid.acl, 'solid-permissions lib not exposed as solid.acl') diff --git a/test/unit/solid-profile-test.js b/test/unit/solid-profile-test.js index 0db91ab..f305211 100644 --- a/test/unit/solid-profile-test.js +++ b/test/unit/solid-profile-test.js @@ -1,10 +1,10 @@ 'use strict' var test = require('tape') -var SolidProfile = require('../../lib/solid/profile') -var parseGraph = require('../../lib/util/graph-util').parseGraph +var SolidProfile = require('../../src/solid/profile') +var parseGraph = require('../../src/util/graph-util').parseGraph -var rdf = require('../../lib/util/rdf-parser') +var rdf = require('../../src/util/rdf-parser') var vocab = require('solid-namespace')(rdf) var rawProfileSource = require('../resources/profile-extended') diff --git a/test/unit/type-registry-test.js b/test/unit/type-registry-test.js index 3ef19b6..50a409f 100644 --- a/test/unit/type-registry-test.js +++ b/test/unit/type-registry-test.js @@ -1,11 +1,11 @@ 'use strict' -var registry = require('../../lib/registry') +var registry = require('../../src/registry') var test = require('tape') -var typeRegistry = require('../../lib/type-registry') -var parseGraph = require('../../lib/util/graph-util').parseGraph -var SolidProfile = require('../../lib/solid/profile') -var rdf = require('../../lib/util/rdf-parser') +var typeRegistry = require('../../src/type-registry') +var parseGraph = require('../../src/util/graph-util').parseGraph +var SolidProfile = require('../../src/solid/profile') +var rdf = require('../../src/util/rdf-parser') var vocab = require('solid-namespace')(rdf) var rawProfileSource = require('../resources/profile-extended') diff --git a/test/unit/vocab-test.js b/test/unit/vocab-test.js index 9583cc0..22ce3de 100644 --- a/test/unit/vocab-test.js +++ b/test/unit/vocab-test.js @@ -1,7 +1,7 @@ 'use strict' var test = require('tape') -var solid = require('../../lib/index') +var solid = require('../../src/index') test('solid.vocab test', function (t) { t.plan(1) diff --git a/webpack.config.js b/webpack.config.js index 9dca54d..a1a9e3b 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -17,6 +17,14 @@ module.exports = { resolveLoader: { fallback: path.join(__dirname, 'node_modules') }, module: { loaders: [ + { + test: /\.js$/, + exclude: /(node_modules)/, + loader: 'babel', + query: { + presets: ['es2015'] + } + }, { test: /\.json$/, loader: 'json' From 35f2c5fbd0b5a3e80600cfe50d84296b534bebf8 Mon Sep 17 00:00:00 2001 From: Dmitri Zagidulin Date: Mon, 19 Dec 2016 11:09:50 -0500 Subject: [PATCH 6/8] Bump solid-permissions lib dep --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1f94dbf..b65d3dc 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "shorthash": "0.0.2", "solid-auth-tls": "0.0.4", "solid-namespace": "^0.1.0", - "solid-permissions": "^0.4.2", + "solid-permissions": "^0.5.0", "solid-web-client": "0.0.9" }, "devDependencies": { From eccbcaa77e641ef4cce49871287282af0d5ac445 Mon Sep 17 00:00:00 2001 From: Dmitri Zagidulin Date: Mon, 19 Dec 2016 11:39:41 -0500 Subject: [PATCH 7/8] Push tags on postversion --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b65d3dc..56a0d67 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "test": "npm run standard && npm run tape", "qunit": "npm run build-qunit-resources && open test/integration/index.html", "preversion": "npm test", - "postpublish": "git push --follow-tags", + "postversion": "git push --follow-tags", "prepublish": "npm run build && npm run test" }, "babel": { From 5f6027b6b9625f4451fc1c0d77c84bfedb7c92e2 Mon Sep 17 00:00:00 2001 From: Dmitri Zagidulin Date: Mon, 19 Dec 2016 12:00:14 -0500 Subject: [PATCH 8/8] Run npm test before building --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 56a0d67..83e102c 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "qunit": "npm run build-qunit-resources && open test/integration/index.html", "preversion": "npm test", "postversion": "git push --follow-tags", - "prepublish": "npm run build && npm run test" + "prepublish": "npm run test && npm run build" }, "babel": { "presets": [