diff --git a/README.md b/README.md index d48b4f5..1ae82af 100644 --- a/README.md +++ b/README.md @@ -13,15 +13,20 @@ const config = require('ssb-config') const caps = require('ssb-caps') const stack = SecretStack({ caps }) - .use(require('ssb-db')) // << required - .use(require('ssb-backlinks')) // << required index - .use(require('ssb-query')) // << required index - .use(require('ssb-tribes')) - .use(require('ssb-private1')) // if you want to support old decryption - // *order matters*, load tribes first + .use(require('ssb-db2/core')) + .use(require('ssb-classic')) + .use(require('ssb-db2/compat')) + .use(require('ssb-db2/compat/feedstate')) + .use(require('ssb-box2')) .use(...) -const ssb = stack(config) +const ssb = stack({ + ...config, + box2: { + ...config.box2, + legacyMode: true + } +}) ``` @@ -78,12 +83,16 @@ This plugin provides functions for creating groups and administering things abou ## Requirements A Secret-Stack server running the plugins: -- `ssb-db` >= 20.3.0 +- `ssb-db2/core` >= 7.1.1 +- `ssb-classic` - `ssb-tribes` -- `ssb-backlinks` >= 2.1.1 - used for adding group tangle meta data to messages -- `ssb-query` >= 2.4.5 - used for listing groups linked to your feedId, or subgroup linked to groups +- `ssb-db2/compat` +- `ssb-db2/compat/feedstate` +- `ssb-box2` >= TODO - `ssb-replicate` - (optional) used to auto-replicate people who you're in groups with +The secret stack option `config.box2.legacyMode` also needs to be `true`. + ## API ### `ssb.tribes.create(opts, cb)` diff --git a/index.js b/index.js index 5286a1c..c0cdc35 100644 --- a/index.js +++ b/index.js @@ -48,6 +48,9 @@ module.exports = { } function init (ssb, config) { + + if (!(config.box2 && config.box2.legacyMode)) throw Error("ssb-tribes error: config.box2.legacyMode needs to be `true`") + const state = { keys: ssb.keys, feedId: bfe.encode(ssb.id), diff --git a/package-lock.json b/package-lock.json index fcebb27..3d43762 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,6 @@ "pull-stream": "^3.7.0", "sodium-native": "^3.4.1", "ssb-bfe": "^3.7.0", - "ssb-box2": "ssbc/ssb-box2#pobox", "ssb-crut": "^5.1.0", "ssb-keys": "^8.5.0", "ssb-private-group-keys": "^0.4.1", @@ -42,6 +41,8 @@ "is-canonical-base64": "^1.1.1", "scuttle-testbot": "^2.1.0", "ssb-backlinks": "^2.1.1", + "ssb-box2": "ssbc/ssb-box2#pobox", + "ssb-db2": "^7.1.1", "ssb-query": "^2.4.5", "ssb-replicate": "^1.3.3", "standard": "^17.1.0", @@ -3387,7 +3388,8 @@ "node_modules/lodash.find": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", - "integrity": "sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==" + "integrity": "sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==", + "dev": true }, "node_modules/lodash.isequal": { "version": "4.5.0", @@ -4229,7 +4231,8 @@ "node_modules/pull-defer": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/pull-defer/-/pull-defer-0.2.3.tgz", - "integrity": "sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA==" + "integrity": "sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA==", + "dev": true }, "node_modules/pull-drain-gently": { "version": "1.1.0", @@ -5225,6 +5228,7 @@ "node_modules/ssb-box2": { "version": "7.1.0", "resolved": "git+ssh://git@github.com/ssbc/ssb-box2.git#d20620cb010b2cc43bc73835aa8fd796b09807e5", + "dev": true, "license": "LGPL-3.0-only", "dependencies": { "envelope-js": "^1.3.2", @@ -5242,6 +5246,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/private-group-spec/-/private-group-spec-2.1.1.tgz", "integrity": "sha512-j8mL15mfUWZVrEjlTzCgvJ75dDUNBzUt760d42CFE1yjxAmNBLxtTu7ef/8nLBMmTjLEsnsAsnPjeI+NSpdlug==", + "dev": true, "dependencies": { "is-my-ssb-valid": "^1.2.0" } @@ -5250,6 +5255,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/ssb-keyring/-/ssb-keyring-7.0.0.tgz", "integrity": "sha512-HBeAFCdjqSLCiors10s+AHfaFm78ac97oqeWgDg9Es4gK2LUs/ZQ1DjoYH+BS4EnTh5yE+Y9E8ska4WWc0p4Dw==", + "dev": true, "dependencies": { "charwise": "^3.0.1", "level": "^6.0.1", @@ -5267,6 +5273,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/private-group-spec/-/private-group-spec-8.0.0.tgz", "integrity": "sha512-wahEIhxe27fIJjFs52XyekLc4CQyHyu7FjYZJbiSCMxTYxb9cXluS1uRtkPfPwkwIPTDtxloO8Rf/3LvcppwNQ==", + "dev": true, "dependencies": { "is-my-ssb-valid": "^1.2.0" } @@ -5275,6 +5282,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/ssb-private-group-keys/-/ssb-private-group-keys-1.1.2.tgz", "integrity": "sha512-0UPPmxy61qmbDmP71J2vhX6UPfCtXa/CNehxYTgk2+AaLXsnA0perGZAiOWm9niGEU50TYYC5/jsIfjz4IiD9A==", + "dev": true, "dependencies": { "envelope-js": "^1.3.2", "futoin-hkdf": "^1.5.1", @@ -5287,6 +5295,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/private-group-spec/-/private-group-spec-1.2.0.tgz", "integrity": "sha512-O7SfG+vZIZgqDXy/wjsuTRI5LaozW4rxaZBpGmwlcDfjIvxvYWNboyNm1PoQUU6j4dQ02V1tOQVLDq9u2RzolA==", + "dev": true, "dependencies": { "is-my-ssb-valid": "^1.2.0" } diff --git a/package.json b/package.json index 77357e0..2d8c19c 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "pull-stream": "^3.7.0", "sodium-native": "^3.4.1", "ssb-bfe": "^3.7.0", - "ssb-box2": "ssbc/ssb-box2#pobox", "ssb-crut": "^5.1.0", "ssb-keys": "^8.5.0", "ssb-private-group-keys": "^0.4.1", @@ -50,6 +49,8 @@ "is-canonical-base64": "^1.1.1", "scuttle-testbot": "^2.1.0", "ssb-backlinks": "^2.1.1", + "ssb-box2": "ssbc/ssb-box2#pobox", + "ssb-db2": "^7.1.1", "ssb-query": "^2.4.5", "ssb-replicate": "^1.3.3", "standard": "^17.1.0",