mirror of
https://github.com/fluencelabs/registry.git
synced 2025-04-25 10:12:13 +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
|
mv aqua-dht builtin-package
|
||||||
|
|
||||||
- name: Build Changelog
|
- name: Build Changelog
|
||||||
id: github_release
|
id: changelog
|
||||||
uses: mikepenz/release-changelog-builder-action@v1
|
uses: mikepenz/release-changelog-builder-action@v1
|
||||||
with:
|
with:
|
||||||
configuration: ".github/workflows/changelog_config.json"
|
configuration: ".github/workflows/changelog_config.json"
|
||||||
@ -105,7 +105,7 @@ jobs:
|
|||||||
tag_name: ${{ env.RELEASE_VERSION }}
|
tag_name: ${{ env.RELEASE_VERSION }}
|
||||||
files: |
|
files: |
|
||||||
aqua-dht.tar.gz
|
aqua-dht.tar.gz
|
||||||
body: ${{steps.github_release.outputs.changelog}}
|
body: ${{steps.changelog.outputs.changelog}}
|
||||||
draft: false
|
draft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
env:
|
env:
|
||||||
@ -129,7 +129,7 @@ jobs:
|
|||||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
working-directory: ./aqua/target/typescript
|
working-directory: ./aqua/target/typescript
|
||||||
|
|
||||||
## Update Builtin Services repo
|
## Update node-distro repo
|
||||||
- name: Get tar.gz URL
|
- name: Get tar.gz URL
|
||||||
id: package-url
|
id: package-url
|
||||||
uses: actions/github-script@v4
|
uses: actions/github-script@v4
|
||||||
@ -159,11 +159,11 @@ jobs:
|
|||||||
echo $(sha256sum aqua-dht.tar.gz)
|
echo $(sha256sum aqua-dht.tar.gz)
|
||||||
echo "SHA256=$(sha256sum aqua-dht.tar.gz | awk '{ print $1 }')" >> $GITHUB_ENV
|
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
|
uses: benc-uk/workflow-dispatch@v1
|
||||||
with:
|
with:
|
||||||
workflow: update_service
|
workflow: update_service
|
||||||
repo: fluencelabs/builtin-services
|
repo: fluencelabs/node-distro
|
||||||
ref: 'main'
|
ref: 'main'
|
||||||
token: ${{ secrets.PERSONAL_TOKEN }}
|
token: ${{ secrets.PERSONAL_TOKEN }}
|
||||||
inputs: '{
|
inputs: '{
|
||||||
@ -179,4 +179,4 @@ jobs:
|
|||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
script: |
|
script: |
|
||||||
console.dir(core);
|
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,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fluencelabs/aqua": {
|
"@fluencelabs/aqua": {
|
||||||
"version": "0.1.14-207",
|
"version": "0.2.0-208",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.1.14-207.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.2.0-208.tgz",
|
||||||
"integrity": "sha512-Qz5082Pf8nYIitNN5RIGxn6ALsAQSXums5xWpB4eRI+FRtuVP+wvElTwn6PnpYvR61SUCkOcpBYPsABcfDaTCA==",
|
"integrity": "sha512-jopKhD3oeMQ4tenzfGs/v+GOZw/2frxGHh4E1dYlXyQO8o/yu0UZlLuI14xSC1Vo3c7KXmRTXRtF0mzcqF2kew==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@fluencelabs/aqua-lib": {
|
"@fluencelabs/aqua-lib": {
|
||||||
"version": "0.1.10",
|
"version": "0.1.14",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.10.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.14.tgz",
|
||||||
"integrity": "sha512-DB4fE4kqN6T3TcQLzgYuNnHZd2rT0MGQ6Yky/KXfy0HlH/xL2cYQHs0xctDwIRMytA7U3laYvyz7FWPc3wEiNg=="
|
"integrity": "sha512-H2Q4gIvociUxc4J2mwmH0D+mrU2N2Z+enKCHgBCanMVEE2wZDsZ80GTbDKsQjEq+gpqbnJIk8lJBYW6lyvLJTg=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
"*.aqua"
|
"*.aqua"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fluencelabs/aqua-lib": "^0.1.10"
|
"@fluencelabs/aqua-lib": "^0.1.14"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"compile-aqua": "aqua -i ./ -o ./target/typescript/src",
|
"compile-aqua": "aqua -i ./ -o ./target/typescript/src",
|
||||||
@ -29,6 +29,6 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/fluencelabs/aqua-dht",
|
"homepage": "https://github.com/fluencelabs/aqua-dht",
|
||||||
"devDependencies": {
|
"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/*"
|
"dist/*"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fluencelabs/fluence": "0.9.53"
|
"@fluencelabs/fluence": "^0.10.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc"
|
"build": "tsc"
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
import "@fluencelabs/aqua-dht/pubsub.aqua"
|
import "@fluencelabs/aqua-dht/pubsub.aqua"
|
||||||
import "@fluencelabs/aqua-dht/dht.aqua"
|
import "@fluencelabs/aqua-dht/dht.aqua"
|
||||||
|
|
||||||
|
alias PeerId: string
|
||||||
|
|
||||||
-- Application event
|
-- Application event
|
||||||
data Event:
|
data Event:
|
||||||
value: string
|
value: string
|
||||||
@ -17,7 +19,7 @@ func call_subscriber(sub: Record, event: Event):
|
|||||||
-- topological move to subscriber via relay
|
-- topological move to subscriber via relay
|
||||||
on sub.peer_id via sub.relay_id:
|
on sub.peer_id via sub.relay_id:
|
||||||
-- resolve service on a subscriber
|
-- resolve service on a subscriber
|
||||||
SubscriberAPI sub.service_id
|
SubscriberAPI sub.service_id!
|
||||||
-- call function
|
-- call function
|
||||||
SubscriberAPI.receive_event(event)
|
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",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fluencelabs/aqua-dht-ts": "../../aqua/target/typescript",
|
"@fluencelabs/aqua-dht-ts": "../../aqua/target/typescript",
|
||||||
"@fluencelabs/fluence": "0.9.53",
|
"@fluencelabs/fluence": "^0.10.0",
|
||||||
"@fluencelabs/fluence-network-environment": "1.0.10"
|
"@fluencelabs/fluence-network-environment": "^1.0.10"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user