diff --git a/js/.babelrc b/js/.babelrc deleted file mode 100644 index d707934a..00000000 --- a/js/.babelrc +++ /dev/null @@ -1,27 +0,0 @@ -{ - "env": { - "production": { - "presets": ["react", "react-optimize"] - }, - "development": { - "presets": ["react"] - }, - "test": { - "presets": ["react"] - } - }, - "only": [ - "test/js/**" - ], - "plugins": [ - "transform-es2015-destructuring", - "transform-es2015-parameters", - "transform-es2015-modules-commonjs", - "transform-async-to-generator", - "transform-object-rest-spread", - "transform-class-properties", - "transform-runtime" - ], - "sourceMaps": "inline", - "retainLines": true -} diff --git a/js/addon/.babelrc b/js/addon/.babelrc deleted file mode 100644 index a0dc53f5..00000000 --- a/js/addon/.babelrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "presets": ["es2015"], - "plugins": [ - "transform-async-to-generator" - ] -} diff --git a/js/addon/CREDITS b/js/addon/CREDITS deleted file mode 100644 index 359a4f89..00000000 --- a/js/addon/CREDITS +++ /dev/null @@ -1,3 +0,0 @@ -Icon file is "Line Graph" by Cris Dobbins, from The Noun Project. - -https://thenounproject.com/term/line-graph/145324/ diff --git a/js/addon/build.sh b/js/addon/build.sh deleted file mode 100755 index 925bc6c3..00000000 --- a/js/addon/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -cp ../target/release-browser/datomish.js release/ -node_modules/.bin/webpack -p -cat src/wrapper.prefix built/index.js > release/index.js diff --git a/js/addon/package.json b/js/addon/package.json deleted file mode 100644 index c2e4d9f0..00000000 --- a/js/addon/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "datomish-example", - "version": "1.0.0", - "description": "A test add-on for Datomish and Firefox.", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "MPL-2.0", - "devDependencies": { - "babel": "^6.5.2", - "babel-cli": "^6.14.0", - "babel-core": "^6.14.0", - "babel-loader": "^6.2.5", - "babel-plugin-transform-async-to-generator": "^6.8.0", - "babel-preset-es2015": "^6.14.0", - "webpack": "^1.13.2" - }, - "dependencies": { - "babel-polyfill": "^6.13.0" - } -} diff --git a/js/addon/release/README.md b/js/addon/release/README.md deleted file mode 100644 index 85643d4f..00000000 --- a/js/addon/release/README.md +++ /dev/null @@ -1,2 +0,0 @@ -#Datomish Test -An example add-on that loads Datomish on top of Sqlite.jsm. \ No newline at end of file diff --git a/js/addon/release/data/datomish-48.png b/js/addon/release/data/datomish-48.png deleted file mode 100644 index 42b9cb67..00000000 Binary files a/js/addon/release/data/datomish-48.png and /dev/null differ diff --git a/js/addon/release/package.json b/js/addon/release/package.json deleted file mode 100644 index 6a190546..00000000 --- a/js/addon/release/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "title": "Datomish Test", - "name": "datomish-test", - "version": "0.0.1", - "description": "An example add-on that loads Datomish on top of Sqlite.jsm.", - "main": "index.js", - "author": "Richard Newman ", - "engines": { - "firefox": ">=48.0a1" - }, - "license": "MPL-2.0", - "keywords": [ - "jetpack" - ] -} diff --git a/js/addon/release/run.sh b/js/addon/release/run.sh deleted file mode 100755 index 40114394..00000000 --- a/js/addon/release/run.sh +++ /dev/null @@ -1 +0,0 @@ -jpm run -b /Applications/FirefoxNightly.app/ diff --git a/js/addon/src/index.js b/js/addon/src/index.js deleted file mode 100644 index d0cb6142..00000000 --- a/js/addon/src/index.js +++ /dev/null @@ -1,92 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -var self = require("sdk/self"); -var buttons = require('sdk/ui/button/action'); -var tabs = require('sdk/tabs'); - -var datomish = require("datomish.js"); - -var schema = { - "name": "pages", - "attributes": [ - {"name": "page/url", - "type": "string", - "cardinality": "one", - "unique": "identity", - "doc": "A page's URL."}, - {"name": "page/title", - "type": "string", - "cardinality": "one", - "fulltext": true, - "doc": "A page's title."}, - {"name": "page/content", - "type": "string", - "cardinality": "one", // Simple for now. - "fulltext": true, - "doc": "A snapshot of the page's content. Should be plain text."}, - ] -}; - -async function initDB(path) { - let db = await datomish.open(path); - await db.ensureSchema(schema); - return db; -} - -async function findURLs(db) { - let query = `[:find ?page ?url ?title :in $ :where [?page :page/url ?url][(get-else $ ?page :page/title "") ?title]]`; - let options = new Object(); - options["limit"] = 10; - return datomish.q(db.db(), query, options); -} - -async function findPagesMatching(db, string) { - let query = - `[:find ?url ?title - :in $ ?str - :where - [(fulltext $ :any ?str) [[?page]]] - [?page :page/url ?url] - [(get-else $ ?page :page/title "") ?title]]`; - return datomish.q(db.db(), query, {"limit": 10, "inputs": {"str": string}}); -} - -async function savePage(db, url, title, content) { - let datom = {"db/id": 55, "page/url": url}; - if (title) { - datom["page/title"] = title; - } - if (content) { - datom["page/content"] = content; - } - let txResult = await db.transact([datom]); - return txResult; -} - -async function handleClick(state) { - let db = await datomish.open("/tmp/testing.db"); - await db.ensureSchema(schema); - - let txResult = await savePage(db, tabs.activeTab.url, tabs.activeTab.title, "Content goes here"); - - console.log("Transaction returned " + JSON.stringify(txResult)); - console.log("Transaction instant: " + txResult.txInstant); - - let results = await findURLs(db); - results = results.map(r => r[1]); - - console.log("Query results: " + JSON.stringify(results)); - - let pages = await findPagesMatching(db, "goes"); - - console.log("Pages: " + JSON.stringify(pages)); - await db.close(); -} - -var button = buttons.ActionButton({ - id: "datomish-save", - label: "Save Page", - icon: "./datomish-48.png", - onClick: handleClick -}); diff --git a/js/addon/src/wrapper.prefix b/js/addon/src/wrapper.prefix deleted file mode 100644 index f69c8236..00000000 --- a/js/addon/src/wrapper.prefix +++ /dev/null @@ -1,4 +0,0 @@ -// Monkeypatch. -var { setTimeout } = require("sdk/timers"); -this.setTimeout = setTimeout; - diff --git a/js/addon/webpack.config.js b/js/addon/webpack.config.js deleted file mode 100644 index f82bede4..00000000 --- a/js/addon/webpack.config.js +++ /dev/null @@ -1,21 +0,0 @@ - -module.exports = { - entry: ['babel-polyfill', './src/index.js'], - output: { - filename: 'built/index.js' - }, - target: 'webworker', - externals: { - 'datomish.js': 'commonjs datomish.js', - 'sdk/self': 'commonjs sdk/self', - 'sdk/ui/button/action': 'commonjs sdk/ui/button/action', - 'sdk/tabs': 'commonjs sdk/tabs' - }, - module: { - loaders: [{ - test: /\.js?$/, - exclude: /(node_modules)|(wrapper.prefix)/, - loader: 'babel' - }] - } -} diff --git a/js/test/js/tests.js b/js/test/js/tests.js deleted file mode 100644 index 6cd92536..00000000 --- a/js/test/js/tests.js +++ /dev/null @@ -1,126 +0,0 @@ -/* Copyright 2016 Mozilla - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use - * this file except in compliance with the License. You may obtain a copy of the - * License at http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software distributed - * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - * CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -var datomish = require("../../target/release-node/datomish.js"); - -var schema = { - "name": "pages", - "attributes": [ - {"name": "page/url", - "type": "string", - "cardinality": "one", - "unique": "identity", - "doc": "A page's URL."}, - {"name": "page/title", - "type": "string", - "cardinality": "one", - "doc": "A page's title."} - ] -}; - -async function testOpen() { - // Open a database. - let path = "/tmp/testing" + Date.now() + ".db"; - console.log("Opening " + path); - let db = await datomish.open(path); - - // Make sure we have our current schema. - await db.ensureSchema(schema); - - // Add some data. Note that we use a temporary ID (the real ID - // will be assigned by Datomish). - let txResult = await db.transact([ - {"db/id": datomish.tempid(), - "page/url": "https://mozilla.org/", - "page/title": "Mozilla"} - ]); - - console.log("Transaction returned " + JSON.stringify(txResult)); - console.log("Transaction instant: " + txResult.txInstant); - - // A simple query. - let results = await db.q("[:find [?url ...] :in $ :where [?e :page/url ?url]]"); - console.log("Known URLs: " + JSON.stringify(results)); - - // Let's extend our schema. In the real world this would typically happen - // across releases. - schema.attributes.push({"name": "page/visitedAt", - "type": "instant", - "cardinality": "many", - "doc": "A visit to the page."}); - await db.ensureSchema(schema); - - // Now we can make assertions with the new vocabulary about existing - // entities. - // Note that we simply let Datomish find which page we're talking about by - // URL -- the URL is a unique property -- so we just use a tempid again. - await db.transact([ - {"db/id": datomish.tempid(), - "page/url": "https://mozilla.org/", - "page/visitedAt": new Date()} - ]); - - // When did we most recently visit this page? - let date = (await db.q( - `[:find (max ?date) . - :in $ ?url - :where - [?page :page/url ?url] - [?page :page/visitedAt ?date]]`, - {"inputs": {"url": "https://mozilla.org/"}})); - console.log("Most recent visit: " + date); - - // Add some more data about a couple of pages. - let start = Date.now(); - let lr = datomish.tempid(); - let reddit = datomish.tempid(); - let res = await db.transact([ - {"db/id": reddit, - "page/url": "http://reddit.com/", - "page/title": "Reddit", - "page/visitedAt": new Date(start)}, - {"db/id": lr, - "page/url": "https://longreads.com/", - "page/title": "Longreads: The best longform stories on the web", - "page/visitedAt": (new Date(start + 100))}, - - // Two visits each. - {"db/id": lr, - "page/visitedAt": (new Date(start + 200))}, - {"db/id": reddit, - "page/visitedAt": (new Date(start + 300))} - ]); - - // These are our new persistent IDs. We can use these directly in later - // queries or transactions - lr = res.tempid(lr); - reddit = res.tempid(reddit); - console.log("Persistent IDs are " + lr + ", " + reddit + "."); - - // A query with a limit and order-by. Because we limit to 2, and order - // by most recent visit date first, we won't get mozilla.org in our results. - let recent = await db.q( - `[:find ?url (max ?date) - :in $ - :where - [?page :page/url ?url] - [?page :page/visitedAt ?date]]`, - {"limit": 2, "order-by": [["_max_date", "desc"]]}); - - console.log("Recently visited: " + JSON.stringify(recent)); - - // Close: we're done! - await db.close(); -} - -testOpen() -.then((r) => console.log("Done.")) -.catch((e) => console.log("Failure: " + e.stack)); diff --git a/js/test/v1.db b/js/test/v1.db deleted file mode 100644 index e76cdbfd..00000000 Binary files a/js/test/v1.db and /dev/null differ