Compare commits
No commits in common. "v0.2.0-develop.26" and "v0.2.0-develop.25" have entirely different histories.
v0.2.0-dev
...
v0.2.0-dev
|
@ -1,10 +1,3 @@
|
||||||
# [0.2.0-develop.26](https://git.lumeweb.com/LumeWeb/libweb/compare/v0.2.0-develop.25...v0.2.0-develop.26) (2023-07-18)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* add support for loading and saving portal lists ([4fe84e8](https://git.lumeweb.com/LumeWeb/libweb/commit/4fe84e8ab47d7fadeca685e51182e67f91d4c10f))
|
|
||||||
|
|
||||||
# [0.2.0-develop.25](https://git.lumeweb.com/LumeWeb/libweb/compare/v0.2.0-develop.24...v0.2.0-develop.25) (2023-07-18)
|
# [0.2.0-develop.25](https://git.lumeweb.com/LumeWeb/libweb/compare/v0.2.0-develop.24...v0.2.0-develop.25) (2023-07-18)
|
||||||
|
|
||||||
# [0.2.0-develop.24](https://git.lumeweb.com/LumeWeb/libweb/compare/v0.2.0-develop.23...v0.2.0-develop.24) (2023-07-18)
|
# [0.2.0-develop.24](https://git.lumeweb.com/LumeWeb/libweb/compare/v0.2.0-develop.23...v0.2.0-develop.24) (2023-07-18)
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
{
|
{
|
||||||
"name": "@lumeweb/libweb",
|
"name": "@lumeweb/libweb",
|
||||||
"version": "0.2.0-develop.26",
|
"version": "0.2.0-develop.25",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@lumeweb/libweb",
|
"name": "@lumeweb/libweb",
|
||||||
"version": "0.2.0-develop.26",
|
"version": "0.2.0-develop.25",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@lumeweb/community-portals": "^0.1.0-develop.6",
|
"@lumeweb/community-portals": "^0.1.0-develop.6",
|
||||||
"@lumeweb/libportal": "^0.2.0-develop.16",
|
"@lumeweb/libportal": "^0.2.0-develop.15",
|
||||||
"@lumeweb/node-library-preset": "0.2.7",
|
"@lumeweb/node-library-preset": "0.2.7",
|
||||||
"@noble/curves": "^1.1.0",
|
"@noble/curves": "^1.1.0",
|
||||||
"@noble/hashes": "^1.3.1"
|
"@noble/hashes": "^1.3.1"
|
||||||
|
@ -1676,9 +1676,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@lumeweb/libportal": {
|
"node_modules/@lumeweb/libportal": {
|
||||||
"version": "0.2.0-develop.16",
|
"version": "0.2.0-develop.15",
|
||||||
"resolved": "https://registry.npmjs.org/@lumeweb/libportal/-/libportal-0.2.0-develop.16.tgz",
|
"resolved": "https://registry.npmjs.org/@lumeweb/libportal/-/libportal-0.2.0-develop.15.tgz",
|
||||||
"integrity": "sha512-wyzza/ttvU6I1gIs4tnYSkcT6s7MIBnUdJSNAbe6k6NsQ1w4bhBVJhEKbBru/lAEASO/PAhHGBwaOCv20rZZfA==",
|
"integrity": "sha512-2N/U2+eO28eLmRGSzY4YOipl1NK8oNtqJ36Udy1eBnorejqMtq9t86srIKpZAsGkTGZiNDp3LXiR92a4c3ImYw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@lumeweb/node-library-preset": "git+https://git.lumeweb.com/LumeWeb/node-library-preset.git",
|
"@lumeweb/node-library-preset": "git+https://git.lumeweb.com/LumeWeb/node-library-preset.git",
|
||||||
"@noble/curves": "^1.1.0",
|
"@noble/curves": "^1.1.0",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@lumeweb/libweb",
|
"name": "@lumeweb/libweb",
|
||||||
"version": "0.2.0-develop.26",
|
"version": "0.2.0-develop.25",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@lumeweb/community-portals": "^0.1.0-develop.6",
|
"@lumeweb/community-portals": "^0.1.0-develop.6",
|
||||||
"@lumeweb/libportal": "^0.2.0-develop.16",
|
"@lumeweb/libportal": "^0.2.0-develop.15",
|
||||||
"@lumeweb/node-library-preset": "0.2.7",
|
"@lumeweb/node-library-preset": "0.2.7",
|
||||||
"@noble/curves": "^1.1.0",
|
"@noble/curves": "^1.1.0",
|
||||||
"@noble/hashes": "^1.3.1"
|
"@noble/hashes": "^1.3.1"
|
||||||
|
|
|
@ -13,23 +13,12 @@ let ACTIVE_PORTALS = new Set<Client>();
|
||||||
|
|
||||||
type PortalSessionsStore = { [id: string]: string };
|
type PortalSessionsStore = { [id: string]: string };
|
||||||
|
|
||||||
const PORTAL_ID = Symbol.for("PORTAL_ID");
|
|
||||||
const PORTAL_NAME = Symbol.for("PORTAL_NAME");
|
|
||||||
|
|
||||||
export function maybeInitDefaultPortals(): ErrTuple {
|
export function maybeInitDefaultPortals(): ErrTuple {
|
||||||
if (!activePortalMasterKey) {
|
if (!activePortalMasterKey) {
|
||||||
return [null, "activePortalMasterKey not set"];
|
return [null, "activePortalMasterKey not set"];
|
||||||
}
|
}
|
||||||
|
|
||||||
let portalsToLoad = DEFAULT_PORTAL_LIST;
|
for (const portal of DEFAULT_PORTAL_LIST) {
|
||||||
|
|
||||||
const savedPortals = loadSavedPortals();
|
|
||||||
|
|
||||||
if (savedPortals) {
|
|
||||||
portalsToLoad = savedPortals;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const portal of portalsToLoad) {
|
|
||||||
addActivePortal(initPortal(portal));
|
addActivePortal(initPortal(portal));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,17 +66,12 @@ export function initPortal(portal: Portal): Client {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const client = new Client({
|
return new Client({
|
||||||
email: generatePortalEmail(portal),
|
email: generatePortalEmail(portal),
|
||||||
portalUrl: portal.url,
|
portalUrl: portal.url,
|
||||||
privateKey: generatePortalKeyPair(portal).privateKey,
|
privateKey: generatePortalKeyPair(portal).privateKey,
|
||||||
jwt: jwt as string,
|
jwt: jwt as string,
|
||||||
});
|
});
|
||||||
|
|
||||||
client[PORTAL_ID] = portal.id;
|
|
||||||
client[PORTAL_NAME] = portal.name;
|
|
||||||
|
|
||||||
return client;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getPortalSessions() {
|
export function getPortalSessions() {
|
||||||
|
@ -95,7 +79,7 @@ export function getPortalSessions() {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
let portalSessionsData = globalThis.localStorage.getItem("portal_sessions");
|
let portalSessionsData = globalThis.localStorage.getItem("portals");
|
||||||
let portalSessions: PortalSessionsStore = {};
|
let portalSessions: PortalSessionsStore = {};
|
||||||
if (portalSessions) {
|
if (portalSessions) {
|
||||||
portalSessions = JSON.parse(
|
portalSessions = JSON.parse(
|
||||||
|
@ -111,24 +95,3 @@ export function getPortalSessions() {
|
||||||
export function setActivePortals(portals: Client[]) {
|
export function setActivePortals(portals: Client[]) {
|
||||||
ACTIVE_PORTALS = new Set<Client>(portals);
|
ACTIVE_PORTALS = new Set<Client>(portals);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function savePortals() {
|
|
||||||
const portals = [...ACTIVE_PORTALS.values()].map((item) => {
|
|
||||||
return {
|
|
||||||
id: item[PORTAL_ID],
|
|
||||||
name: item[PORTAL_NAME],
|
|
||||||
url: item.portalUrl,
|
|
||||||
} as Portal;
|
|
||||||
});
|
|
||||||
window.localStorage.setItem("portals", JSON.stringify(portals));
|
|
||||||
}
|
|
||||||
|
|
||||||
export function loadSavedPortals(): Portal[] | null {
|
|
||||||
let portals = window.localStorage.getItem("portals");
|
|
||||||
|
|
||||||
if (!portals) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return JSON.parse(portals);
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue