mirror of
https://github.com/fluencelabs/registry.git
synced 2025-04-24 17:52:14 +00:00
JS SDK 0.10 (#47)
This commit is contained in:
parent
1356e404e9
commit
04b00967f9
12
.github/workflows/release.yml
vendored
12
.github/workflows/release.yml
vendored
@ -89,7 +89,7 @@ jobs:
|
||||
mv aqua-dht builtin-package
|
||||
|
||||
- name: Build Changelog
|
||||
id: github_release
|
||||
id: changelog
|
||||
uses: mikepenz/release-changelog-builder-action@v1
|
||||
with:
|
||||
configuration: ".github/workflows/changelog_config.json"
|
||||
@ -105,7 +105,7 @@ jobs:
|
||||
tag_name: ${{ env.RELEASE_VERSION }}
|
||||
files: |
|
||||
aqua-dht.tar.gz
|
||||
body: ${{steps.github_release.outputs.changelog}}
|
||||
body: ${{steps.changelog.outputs.changelog}}
|
||||
draft: false
|
||||
prerelease: false
|
||||
env:
|
||||
@ -129,7 +129,7 @@ jobs:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
working-directory: ./aqua/target/typescript
|
||||
|
||||
## Update Builtin Services repo
|
||||
## Update node-distro repo
|
||||
- name: Get tar.gz URL
|
||||
id: package-url
|
||||
uses: actions/github-script@v4
|
||||
@ -159,11 +159,11 @@ jobs:
|
||||
echo $(sha256sum aqua-dht.tar.gz)
|
||||
echo "SHA256=$(sha256sum aqua-dht.tar.gz | awk '{ print $1 }')" >> $GITHUB_ENV
|
||||
|
||||
- name: Update version in builtins repo
|
||||
- name: Update version in node-distro repo
|
||||
uses: benc-uk/workflow-dispatch@v1
|
||||
with:
|
||||
workflow: update_service
|
||||
repo: fluencelabs/builtin-services
|
||||
repo: fluencelabs/node-distro
|
||||
ref: 'main'
|
||||
token: ${{ secrets.PERSONAL_TOKEN }}
|
||||
inputs: '{
|
||||
@ -179,4 +179,4 @@ jobs:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
console.dir(core);
|
||||
core.info("aqua-dht was updated to ${{ env.RELEASE_VERSION }} in Builtin Services Repo");
|
||||
core.info("aqua-dht was updated to ${{ env.RELEASE_VERSION }} in node-distro repo");
|
||||
|
12
aqua/package-lock.json
generated
12
aqua/package-lock.json
generated
@ -5,15 +5,15 @@
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@fluencelabs/aqua": {
|
||||
"version": "0.1.14-207",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.1.14-207.tgz",
|
||||
"integrity": "sha512-Qz5082Pf8nYIitNN5RIGxn6ALsAQSXums5xWpB4eRI+FRtuVP+wvElTwn6PnpYvR61SUCkOcpBYPsABcfDaTCA==",
|
||||
"version": "0.2.0-208",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.2.0-208.tgz",
|
||||
"integrity": "sha512-jopKhD3oeMQ4tenzfGs/v+GOZw/2frxGHh4E1dYlXyQO8o/yu0UZlLuI14xSC1Vo3c7KXmRTXRtF0mzcqF2kew==",
|
||||
"dev": true
|
||||
},
|
||||
"@fluencelabs/aqua-lib": {
|
||||
"version": "0.1.10",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.10.tgz",
|
||||
"integrity": "sha512-DB4fE4kqN6T3TcQLzgYuNnHZd2rT0MGQ6Yky/KXfy0HlH/xL2cYQHs0xctDwIRMytA7U3laYvyz7FWPc3wEiNg=="
|
||||
"version": "0.1.14",
|
||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.14.tgz",
|
||||
"integrity": "sha512-H2Q4gIvociUxc4J2mwmH0D+mrU2N2Z+enKCHgBCanMVEE2wZDsZ80GTbDKsQjEq+gpqbnJIk8lJBYW6lyvLJTg=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
"*.aqua"
|
||||
],
|
||||
"dependencies": {
|
||||
"@fluencelabs/aqua-lib": "^0.1.10"
|
||||
"@fluencelabs/aqua-lib": "^0.1.14"
|
||||
},
|
||||
"scripts": {
|
||||
"compile-aqua": "aqua -i ./ -o ./target/typescript/src",
|
||||
@ -29,6 +29,6 @@
|
||||
},
|
||||
"homepage": "https://github.com/fluencelabs/aqua-dht",
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua": "0.1.14-207"
|
||||
"@fluencelabs/aqua": "^0.2.0-208"
|
||||
}
|
||||
}
|
||||
|
1951
aqua/target/typescript/package-lock.json
generated
1951
aqua/target/typescript/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,7 @@
|
||||
"dist/*"
|
||||
],
|
||||
"dependencies": {
|
||||
"@fluencelabs/fluence": "0.9.53"
|
||||
"@fluencelabs/fluence": "^0.10.0"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc"
|
||||
|
@ -4,6 +4,8 @@
|
||||
import "@fluencelabs/aqua-dht/pubsub.aqua"
|
||||
import "@fluencelabs/aqua-dht/dht.aqua"
|
||||
|
||||
alias PeerId: string
|
||||
|
||||
-- Application event
|
||||
data Event:
|
||||
value: string
|
||||
@ -17,7 +19,7 @@ func call_subscriber(sub: Record, event: Event):
|
||||
-- topological move to subscriber via relay
|
||||
on sub.peer_id via sub.relay_id:
|
||||
-- resolve service on a subscriber
|
||||
SubscriberAPI sub.service_id
|
||||
SubscriberAPI sub.service_id!
|
||||
-- call function
|
||||
SubscriberAPI.receive_event(event)
|
||||
|
||||
|
3051
examples/aqua/package-lock.json
generated
3051
examples/aqua/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
22
examples/javascript/example.js
Normal file
22
examples/javascript/example.js
Normal file
@ -0,0 +1,22 @@
|
||||
import { initTopicAndSubscribe, findSubscribers } from "./export.js";
|
||||
import { createClient } from "@fluencelabs/fluence";
|
||||
import { krasnodar } from "@fluencelabs/fluence-network-environment";
|
||||
|
||||
async function main() {
|
||||
// connect to the Fluence network
|
||||
const client = await createClient(krasnodar[1]);
|
||||
let topic = "myTopic";
|
||||
let value = "myValue";
|
||||
// create topic (if not exists) and subscribe on it
|
||||
await initTopicAndSubscribe(client, client.relayPeerId, topic, value, client.relayPeerId, null);
|
||||
// find other peers subscribed to that topic
|
||||
let subscribers = await findSubscribers(client, client.relayPeerId, topic);
|
||||
console.log("found subscribers:", subscribers);
|
||||
}
|
||||
|
||||
main()
|
||||
.then(() => process.exit(0))
|
||||
.catch(error => {
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
});
|
5
examples/javascript/export.aqua
Normal file
5
examples/javascript/export.aqua
Normal file
@ -0,0 +1,5 @@
|
||||
import initTopicAndSubscribe, findSubscribers from "@fluencelabs/aqua-dht/pubsub.aqua"
|
||||
|
||||
export initTopicAndSubscribe, findSubscribers
|
||||
|
||||
alias A: string
|
221
examples/javascript/export.js
Normal file
221
examples/javascript/export.js
Normal file
@ -0,0 +1,221 @@
|
||||
/**
|
||||
*
|
||||
* This file is auto-generated. Do not edit manually: changes may be erased.
|
||||
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/.
|
||||
* If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
|
||||
* Aqua version: Unknown (JS)
|
||||
*
|
||||
*/
|
||||
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable.js';
|
||||
|
||||
|
||||
|
||||
export async function initTopicAndSubscribe(client, node_id, topic, value, relay_id, service_id, config) {
|
||||
let request;
|
||||
config = config || {};
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
var r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "node_id") [] node_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "topic") [] topic)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "value") [] value)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "relay_id") [] relay_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "service_id") [] service_id)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(seq
|
||||
(call node_id ("op" "string_to_b58") [topic] k)
|
||||
(call node_id ("kad" "neighborhood") [k [] []] nodes)
|
||||
)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(fold nodes n
|
||||
(par
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(call n ("peer" "timestamp_sec") [] t)
|
||||
(call n ("aqua-dht" "register_key") [topic t false 0])
|
||||
)
|
||||
(call n ("aqua-dht" "put_value") [topic value t relay_id service_id 0])
|
||||
)
|
||||
(null)
|
||||
)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(next n)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {return node_id;});
|
||||
h.on('getDataSrv', 'topic', () => {return topic;});
|
||||
h.on('getDataSrv', 'value', () => {return value;});
|
||||
h.on('getDataSrv', 'relay_id', () => {return relay_id === null ? [] : [relay_id];});
|
||||
h.on('getDataSrv', 'service_id', () => {return service_id === null ? [] : [service_id];});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
})
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for initTopicAndSubscribe');
|
||||
})
|
||||
if(config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request);
|
||||
return Promise.race([promise, Promise.resolve()]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
export async function findSubscribers(client, node_id, topic, config) {
|
||||
let request;
|
||||
config = config || {};
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
var r = new RequestFlowBuilder()
|
||||
.disableInjections()
|
||||
.withRawScript(
|
||||
`
|
||||
(xor
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(seq
|
||||
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
||||
(call %init_peer_id% ("getDataSrv" "node_id") [] node_id)
|
||||
)
|
||||
(call %init_peer_id% ("getDataSrv" "topic") [] topic)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(seq
|
||||
(call node_id ("op" "string_to_b58") [topic] k)
|
||||
(call node_id ("kad" "neighborhood") [k [] []] nodes)
|
||||
)
|
||||
(seq
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(fold nodes n
|
||||
(par
|
||||
(seq
|
||||
(xor
|
||||
(seq
|
||||
(call n ("peer" "timestamp_sec") [] t)
|
||||
(call n ("aqua-dht" "get_values") [topic t] $res)
|
||||
)
|
||||
(null)
|
||||
)
|
||||
(call node_id ("op" "noop") [])
|
||||
)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(next n)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(xor
|
||||
(call node_id ("aqua-dht" "merge_two") [$res.$.[0].result! $res.$.[1].result!] v)
|
||||
(seq
|
||||
(call -relay- ("op" "noop") [])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
||||
)
|
||||
)
|
||||
)
|
||||
(call -relay- ("op" "noop") [])
|
||||
)
|
||||
(xor
|
||||
(call %init_peer_id% ("callbackSrv" "response") [v.$.result!])
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
||||
)
|
||||
)
|
||||
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
|
||||
)
|
||||
|
||||
`,
|
||||
)
|
||||
.configHandler((h) => {
|
||||
h.on('getDataSrv', '-relay-', () => {
|
||||
return client.relayPeerId;
|
||||
});
|
||||
h.on('getDataSrv', 'node_id', () => {return node_id;});
|
||||
h.on('getDataSrv', 'topic', () => {return topic;});
|
||||
h.onEvent('callbackSrv', 'response', (args) => {
|
||||
const [res] = args;
|
||||
resolve(res);
|
||||
});
|
||||
|
||||
h.onEvent('errorHandlingSrv', 'error', (args) => {
|
||||
// assuming error is the single argument
|
||||
const [err] = args;
|
||||
reject(err);
|
||||
});
|
||||
})
|
||||
.handleScriptError(reject)
|
||||
.handleTimeout(() => {
|
||||
reject('Request timed out for findSubscribers');
|
||||
})
|
||||
if(config.ttl) {
|
||||
r.withTTL(config.ttl)
|
||||
}
|
||||
request = r.build();
|
||||
});
|
||||
await client.initiateFlow(request);
|
||||
return promise;
|
||||
}
|
||||
|
2122
examples/javascript/package-lock.json
generated
Normal file
2122
examples/javascript/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
26
examples/javascript/package.json
Normal file
26
examples/javascript/package.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "example",
|
||||
"version": "1.0.0",
|
||||
"description": "An example of how to use AquaDHT in TypeScript",
|
||||
"main": "example.js",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"compile-aqua": "aqua-js --js -i . -o .",
|
||||
"start": "node example.js"
|
||||
},
|
||||
"keywords": [
|
||||
"aqua",
|
||||
"dht",
|
||||
"p2p"
|
||||
],
|
||||
"author": "Fluence Labs",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@fluencelabs/fluence": "^0.10.0",
|
||||
"@fluencelabs/fluence-network-environment": "^1.0.10"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua-dht": "0.1.37",
|
||||
"@fluencelabs/aqua": "0.2.1-219"
|
||||
}
|
||||
}
|
4035
examples/typescript/package-lock.json
generated
4035
examples/typescript/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -17,7 +17,7 @@
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@fluencelabs/aqua-dht-ts": "../../aqua/target/typescript",
|
||||
"@fluencelabs/fluence": "0.9.53",
|
||||
"@fluencelabs/fluence-network-environment": "1.0.10"
|
||||
"@fluencelabs/fluence": "^0.10.0",
|
||||
"@fluencelabs/fluence-network-environment": "^1.0.10"
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user