@ddd-qc/profiles-dvm 0.27.3 → 0.27.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/profilesAlt.dvm.d.ts +5 -0
- package/dist/profilesAlt.dvm.js +16 -1
- package/dist/profilesAlt.dvm.js.map +1 -1
- package/dist/profilesAlt.perspective.d.ts +3 -3
- package/dist/profilesAlt.perspective.js +3 -5
- package/dist/profilesAlt.perspective.js.map +1 -1
- package/dist/profilesAlt.zvm.d.ts +1 -1
- package/dist/profilesAlt.zvm.js +19 -10
- package/dist/profilesAlt.zvm.js.map +1 -1
- package/package.json +1 -1
|
@@ -17,4 +17,9 @@ export declare class ProfilesAltDvm extends DnaViewModel {
|
|
|
17
17
|
/** -- Signaling -- */
|
|
18
18
|
/** */
|
|
19
19
|
handleSignal(signal: AppSignal): void;
|
|
20
|
+
/** -- Import / Export -- */
|
|
21
|
+
/** Dump perspective as JSON */
|
|
22
|
+
exportPerspective(): string;
|
|
23
|
+
/** */
|
|
24
|
+
importPerspective(json: string, canPublish: boolean): Promise<void>;
|
|
20
25
|
}
|
package/dist/profilesAlt.dvm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DnaViewModel } from "@ddd-qc/lit-happ";
|
|
1
|
+
import { DnaViewModel, holoIdReviver } from "@ddd-qc/lit-happ";
|
|
2
2
|
import { ProfilesZvm } from "./profiles.zvm";
|
|
3
3
|
import { ProfilesAltZvm } from "./profilesAlt.zvm";
|
|
4
4
|
/** */
|
|
@@ -32,6 +32,21 @@ export class ProfilesAltDvm extends DnaViewModel {
|
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
+
/** -- Import / Export -- */
|
|
36
|
+
/** Dump perspective as JSON */
|
|
37
|
+
exportPerspective() {
|
|
38
|
+
const dvmExport = {};
|
|
39
|
+
const tJson = this.profilesZvm.export();
|
|
40
|
+
dvmExport[ProfilesZvm.DEFAULT_ZOME_NAME] = JSON.parse(tJson);
|
|
41
|
+
return JSON.stringify(dvmExport, null, 2);
|
|
42
|
+
}
|
|
43
|
+
/** */
|
|
44
|
+
async importPerspective(json, canPublish) {
|
|
45
|
+
const external = JSON.parse(json, holoIdReviver);
|
|
46
|
+
const profiles = external[ProfilesZvm.DEFAULT_ZOME_NAME];
|
|
47
|
+
this.profilesZvm.import(JSON.stringify(profiles), canPublish);
|
|
48
|
+
this.notifySubscribers();
|
|
49
|
+
}
|
|
35
50
|
}
|
|
36
51
|
ProfilesAltDvm.DEFAULT_BASE_ROLE_NAME = "profiles";
|
|
37
52
|
ProfilesAltDvm.ZVM_DEFS = [ProfilesAltZvm];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profilesAlt.dvm.js","sourceRoot":"","sources":["../src/profilesAlt.dvm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,YAAY,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"profilesAlt.dvm.js","sourceRoot":"","sources":["../src/profilesAlt.dvm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,YAAY,EAAE,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAIpE,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAEjD,MAAM;AACN,4CAA4C;AAC5C,4CAA4C;AAC5C,IAAI;AAGJ;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IAAhD;;QAIW,kBAAa,GAAiB,IAAI,CAAC,YAAY,CAAC;IAkD3D,CAAC;IA/CC,kBAAkB;IAClB,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,iBAAiB,CAAmB,CAAA;IAClF,CAAC;IAED,wBAAwB;IAEd,UAAU;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,WAAW;QACb,OAAO,EAAE,CAAA;IACX,CAAC;IAGD,sBAAsB;IAEtB,MAAM;IACN,YAAY,CAAC,MAAiB;QAC5B,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,SAAS,KAAK,WAAW,CAAC,iBAAiB,EAAE;YACtD,OAAO;SACR;IACH,CAAC;IAGD,4BAA4B;IAE5B,+BAA+B;IAC/B,iBAAiB;QACf,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxC,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAGD,MAAM;IACN,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,UAAmB;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAQ,CAAC;QACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;QAC9D,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;;AAjDe,qCAAsB,GAAG,UAAU,AAAb,CAAc;AACpC,uBAAQ,GAAG,CAAC,cAAc,CAAC,AAAnB,CAAmB","sourcesContent":["import {delay, DnaViewModel, holoIdReviver} from \"@ddd-qc/lit-happ\";\nimport {\n AppSignal, AppSignalCb,\n} from \"@holochain/client\";\nimport {ProfilesZvm} from \"./profiles.zvm\";\nimport {ProfilesAltZvm} from \"./profilesAlt.zvm\";\n\n/** */\n// export interface ProfilesDnaPerspective {\n// agentPresences: Record<string, number>,\n// }\n\n\n/**\n * ViewModel fo a DNA holding a Profiles zome\n */\nexport class ProfilesAltDvm extends DnaViewModel {\n\n static readonly DEFAULT_BASE_ROLE_NAME = \"profiles\";\n static readonly ZVM_DEFS = [ProfilesAltZvm]\n readonly signalHandler?: AppSignalCb = this.handleSignal;\n\n\n /** QoL Helpers */\n get profilesZvm(): ProfilesAltZvm {\n return this.getZomeViewModel(ProfilesAltZvm.DEFAULT_ZOME_NAME) as ProfilesAltZvm\n }\n\n /** -- Perspective -- */\n\n protected hasChanged(): boolean {\n return true\n }\n\n get perspective(): unknown {\n return {}\n }\n\n\n /** -- Signaling -- */\n\n /** */\n handleSignal(signal: AppSignal) {\n console.log(\"Received Signal\", signal);\n if (signal.zome_name !== ProfilesZvm.DEFAULT_ZOME_NAME) {\n return;\n }\n }\n\n\n /** -- Import / Export -- */\n\n /** Dump perspective as JSON */\n exportPerspective(): string {\n const dvmExport = {};\n const tJson = this.profilesZvm.export();\n dvmExport[ProfilesZvm.DEFAULT_ZOME_NAME] = JSON.parse(tJson);\n return JSON.stringify(dvmExport, null, 2);\n }\n\n\n /** */\n async importPerspective(json: string, canPublish: boolean) {\n const external = JSON.parse(json, holoIdReviver) as any;\n const profiles = external[ProfilesZvm.DEFAULT_ZOME_NAME];\n this.profilesZvm.import(JSON.stringify(profiles), canPublish);\n this.notifySubscribers();\n }\n\n\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ActionId, ActionIdMap, AgentId, AgentIdMap } from "@ddd-qc/cell-proxy";
|
|
2
2
|
import { Profile } from "./bindings/profiles.types";
|
|
3
|
-
import {
|
|
3
|
+
import { Timestamp } from "@holochain/client";
|
|
4
4
|
/** */
|
|
5
5
|
export interface ProfilesAltSnapshot {
|
|
6
|
-
all: [
|
|
6
|
+
all: [AgentId, ActionId, Profile, Timestamp][];
|
|
7
7
|
}
|
|
8
8
|
/** */
|
|
9
9
|
export declare class ProfilesAltPerspective {
|
|
@@ -18,7 +18,7 @@ export declare class ProfilesAltPerspective {
|
|
|
18
18
|
get names(): string[];
|
|
19
19
|
/** */
|
|
20
20
|
getProfileAgent(profileId: ActionId): AgentId | undefined;
|
|
21
|
-
/** */
|
|
21
|
+
/** AgentId or Name */
|
|
22
22
|
getProfile(agent: AgentId | string): Profile | undefined;
|
|
23
23
|
/** */
|
|
24
24
|
getProfileTs(agent: AgentId | string): Timestamp | undefined;
|
|
@@ -27,7 +27,7 @@ export class ProfilesAltPerspective {
|
|
|
27
27
|
}
|
|
28
28
|
return undefined;
|
|
29
29
|
}
|
|
30
|
-
/** */
|
|
30
|
+
/** AgentId or Name */
|
|
31
31
|
getProfile(agent) {
|
|
32
32
|
if (typeof agent == "string") {
|
|
33
33
|
agent = this.agentByName[agent];
|
|
@@ -76,7 +76,7 @@ export class ProfilesAltPerspective {
|
|
|
76
76
|
for (const [agentId, profileAh] of this.profileByAgent.entries()) {
|
|
77
77
|
const pair = this.profiles.get(profileAh);
|
|
78
78
|
if (pair) {
|
|
79
|
-
all.push([agentId
|
|
79
|
+
all.push([agentId, profileAh, pair[0], pair[1]]);
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
/** */
|
|
@@ -127,9 +127,7 @@ export class ProfilesAltPerspectiveMutable extends ProfilesAltPerspective {
|
|
|
127
127
|
this.profileByAgent.clear();
|
|
128
128
|
this.agentByName = {};
|
|
129
129
|
/** Store */
|
|
130
|
-
for (const [
|
|
131
|
-
const agentId = new AgentId(agentB64);
|
|
132
|
-
const profileAh = new ActionId(profileB64);
|
|
130
|
+
for (const [agentId, profileAh, profile, ts] of snapshot.all) {
|
|
133
131
|
this.storeAgentProfile(agentId, profileAh);
|
|
134
132
|
this.storeProfile(profileAh, profile, ts);
|
|
135
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profilesAlt.perspective.js","sourceRoot":"","sources":["../src/profilesAlt.perspective.ts"],"names":[],"mappings":"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","sourcesContent":["import {ActionId, ActionIdMap, AgentId, AgentIdMap, assertAllDefined} from \"@ddd-qc/cell-proxy\";\r\nimport {Profile} from \"./bindings/profiles.types\";\r\nimport {ActionHashB64, AgentPubKeyB64, Timestamp} from \"@holochain/client\";\r\n\r\n\r\n/** */\r\nexport interface ProfilesAltSnapshot {\r\n all: [AgentPubKeyB64, ActionHashB64, Profile, Timestamp][];\r\n}\r\n\r\n\r\n/** */\r\nexport class ProfilesAltPerspective {\r\n /* ActionId -> Profile */\r\n profiles: ActionIdMap<[Profile, Timestamp]> = new ActionIdMap();\r\n /* AgentId -> ActionId */\r\n profileByAgent: AgentIdMap<ActionId> = new AgentIdMap();\r\n\r\n /** -- Extra -- */\r\n /* Name -> AgentId */\r\n agentByName: Record<string, AgentId> = {};\r\n\r\n\r\n /** -- Methods -- */\r\n\r\n equals(_other: ProfilesAltPerspective) {\r\n // TODO\r\n return false;\r\n }\r\n\r\n /** -- Getters -- */\r\n\r\n get agents(): AgentId[] { return Array.from(this.profileByAgent.keys())}\r\n get names(): string[] { return Object.keys(this.agentByName)}\r\n\r\n /** */\r\n getProfileAgent(profileId: ActionId): AgentId | undefined {\r\n for (const [agentId, profId] of this.profileByAgent.entries()) {\r\n if (profileId.b64 == profId.b64) {\r\n return agentId;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n\r\n /** */\r\n getProfile(agent: AgentId | string): Profile | undefined {\r\n if (typeof agent == \"string\") {\r\n agent = this.agentByName[agent];\r\n if (!agent) {\r\n return;\r\n }\r\n }\r\n const profileAh = this.profileByAgent.get(agent);\r\n //console.log(\"ProfilesAltZvm.getProfile()\", agent, profileAh);\r\n if (!profileAh) {\r\n return undefined;\r\n }\r\n const pair = this.profiles.get(profileAh);\r\n //console.log(\"ProfilesAltZvm.getProfile() pair\", pair);\r\n if (!pair) {\r\n return undefined;\r\n }\r\n return pair[0];\r\n }\r\n\r\n\r\n /** */\r\n getProfileTs(agent: AgentId | string): Timestamp | undefined {\r\n if (typeof agent == \"string\") {\r\n agent = this.agentByName[agent];\r\n if (!agent) {\r\n return;\r\n }\r\n }\r\n const profileAh = this.profileByAgent.get(agent);\r\n if (!profileAh) {\r\n return undefined;\r\n }\r\n const pair = this.profiles.get(profileAh);\r\n if (!pair) {\r\n return undefined;\r\n }\r\n return pair[1];\r\n }\r\n\r\n /** */\r\n getAgent(nickname: string): AgentId | undefined {\r\n return this.agentByName[nickname];\r\n }\r\n\r\n\r\n /** -- Memento -- */\r\n\r\n /** TODO: deep copy */\r\n makeSnapshot(): ProfilesAltSnapshot {\r\n let all: [AgentPubKeyB64, ActionHashB64, Profile, Timestamp][] = [];\r\n for (const [agentId, profileAh] of this.profileByAgent.entries()) {\r\n const pair = this.profiles.get(profileAh);\r\n if (pair) {\r\n all.push([agentId.b64, profileAh.b64, pair[0], pair[1]])\r\n }\r\n }\r\n /** */\r\n return {all};\r\n }\r\n}\r\n\r\n\r\n/** */\r\nexport class ProfilesAltPerspectiveMutable extends ProfilesAltPerspective {\r\n\r\n get readonly(): ProfilesAltPerspective {\r\n return this;\r\n }\r\n\r\n /** -- Store -- */\r\n\r\n /** */\r\n storeProfile(profileAh: ActionId, profile: Profile, ts: Timestamp) {\r\n console.debug(\"ProfilesAltZvm.storeProfile()\", profileAh.short, profile.nickname);\r\n assertAllDefined(profileAh, profile, ts);\r\n this.profiles.set(profileAh, [profile, ts]);\r\n const agentId = this.getProfileAgent(profileAh);\r\n if (agentId) {\r\n this.agentByName[profile.nickname] = agentId;\r\n }\r\n }\r\n\r\n /** */\r\n storeAgentProfile(agentId: AgentId, profileAh: ActionId) {\r\n console.debug(\"ProfilesAltZvm.storeAgentProfile()\", agentId.short, profileAh.short);\r\n assertAllDefined(agentId, profileAh);\r\n this.profileByAgent.set(agentId, profileAh);\r\n const pair = this.profiles.get(profileAh);\r\n if (pair) {\r\n this.agentByName[pair[0].nickname] = agentId;\r\n }\r\n }\r\n\r\n /** */\r\n unstoreAgentProfile(agentId: AgentId, profileAh: ActionId) {\r\n console.debug(\"ProfilesAltZvm.unstoreAgentProfile()\", agentId.short, profileAh.short);\r\n assertAllDefined(agentId, profileAh);\r\n this.profileByAgent.delete(agentId);\r\n const pair = this.profiles.get(profileAh);\r\n if (pair) {\r\n delete this.agentByName[pair[0].nickname];\r\n }\r\n }\r\n\r\n\r\n /** -- Memento -- */\r\n\r\n /** */\r\n restore(snapshot: ProfilesAltSnapshot) {\r\n /** Clear */\r\n this.profiles.clear();\r\n this.profileByAgent.clear();\r\n this.agentByName = {};\r\n /** Store */\r\n for (const [agentB64, profileB64, profile, ts] of snapshot.all) {\r\n const agentId = new AgentId(agentB64);\r\n const profileAh = new ActionId(profileB64);\r\n this.storeAgentProfile(agentId, profileAh);\r\n this.storeProfile(profileAh, profile, ts);\r\n }\r\n }\r\n\r\n\r\n /** -- Generate -- */\r\n\r\n /** */\r\n async generateRandomProfile(nickname: string, ts?: Timestamp, fields?: Record<string, string>) {\r\n const agentId = await AgentId.random();\r\n const profileAh = await ActionId.random();\r\n const profile: Profile = {nickname, fields};\r\n this.storeAgentProfile(agentId, profileAh);\r\n this.storeProfile(profileAh, profile, ts? ts : 0);\r\n }\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"profilesAlt.perspective.js","sourceRoot":"","sources":["../src/profilesAlt.perspective.ts"],"names":[],"mappings":"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","sourcesContent":["import {ActionId, ActionIdMap, AgentId, AgentIdMap, assertAllDefined} from \"@ddd-qc/cell-proxy\";\r\nimport {Profile} from \"./bindings/profiles.types\";\r\nimport {Timestamp} from \"@holochain/client\";\r\n\r\n\r\n/** */\r\nexport interface ProfilesAltSnapshot {\r\n all: [AgentId, ActionId, Profile, Timestamp][];\r\n}\r\n\r\n\r\n/** */\r\nexport class ProfilesAltPerspective {\r\n /* ActionId -> Profile */\r\n profiles: ActionIdMap<[Profile, Timestamp]> = new ActionIdMap();\r\n /* AgentId -> ActionId */\r\n profileByAgent: AgentIdMap<ActionId> = new AgentIdMap();\r\n\r\n /** -- Extra -- */\r\n /* Name -> AgentId */\r\n agentByName: Record<string, AgentId> = {};\r\n\r\n\r\n /** -- Methods -- */\r\n\r\n equals(_other: ProfilesAltPerspective) {\r\n // TODO\r\n return false;\r\n }\r\n\r\n /** -- Getters -- */\r\n\r\n get agents(): AgentId[] { return Array.from(this.profileByAgent.keys())}\r\n get names(): string[] { return Object.keys(this.agentByName)}\r\n\r\n /** */\r\n getProfileAgent(profileId: ActionId): AgentId | undefined {\r\n for (const [agentId, profId] of this.profileByAgent.entries()) {\r\n if (profileId.b64 == profId.b64) {\r\n return agentId;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n\r\n /** AgentId or Name */\r\n getProfile(agent: AgentId | string): Profile | undefined {\r\n if (typeof agent == \"string\") {\r\n agent = this.agentByName[agent];\r\n if (!agent) {\r\n return;\r\n }\r\n }\r\n const profileAh = this.profileByAgent.get(agent);\r\n //console.log(\"ProfilesAltZvm.getProfile()\", agent, profileAh);\r\n if (!profileAh) {\r\n return undefined;\r\n }\r\n const pair = this.profiles.get(profileAh);\r\n //console.log(\"ProfilesAltZvm.getProfile() pair\", pair);\r\n if (!pair) {\r\n return undefined;\r\n }\r\n return pair[0];\r\n }\r\n\r\n\r\n /** */\r\n getProfileTs(agent: AgentId | string): Timestamp | undefined {\r\n if (typeof agent == \"string\") {\r\n agent = this.agentByName[agent];\r\n if (!agent) {\r\n return;\r\n }\r\n }\r\n const profileAh = this.profileByAgent.get(agent);\r\n if (!profileAh) {\r\n return undefined;\r\n }\r\n const pair = this.profiles.get(profileAh);\r\n if (!pair) {\r\n return undefined;\r\n }\r\n return pair[1];\r\n }\r\n\r\n /** */\r\n getAgent(nickname: string): AgentId | undefined {\r\n return this.agentByName[nickname];\r\n }\r\n\r\n\r\n /** -- Memento -- */\r\n\r\n /** TODO: deep copy */\r\n makeSnapshot(): ProfilesAltSnapshot {\r\n let all: [AgentId, ActionId, Profile, Timestamp][] = [];\r\n for (const [agentId, profileAh] of this.profileByAgent.entries()) {\r\n const pair = this.profiles.get(profileAh);\r\n if (pair) {\r\n all.push([agentId, profileAh, pair[0], pair[1]])\r\n }\r\n }\r\n /** */\r\n return {all};\r\n }\r\n}\r\n\r\n\r\n/** */\r\nexport class ProfilesAltPerspectiveMutable extends ProfilesAltPerspective {\r\n\r\n get readonly(): ProfilesAltPerspective {\r\n return this;\r\n }\r\n\r\n /** -- Store -- */\r\n\r\n /** */\r\n storeProfile(profileAh: ActionId, profile: Profile, ts: Timestamp) {\r\n console.debug(\"ProfilesAltZvm.storeProfile()\", profileAh.short, profile.nickname);\r\n assertAllDefined(profileAh, profile, ts);\r\n this.profiles.set(profileAh, [profile, ts]);\r\n const agentId = this.getProfileAgent(profileAh);\r\n if (agentId) {\r\n this.agentByName[profile.nickname] = agentId;\r\n }\r\n }\r\n\r\n /** */\r\n storeAgentProfile(agentId: AgentId, profileAh: ActionId) {\r\n console.debug(\"ProfilesAltZvm.storeAgentProfile()\", agentId.short, profileAh.short);\r\n assertAllDefined(agentId, profileAh);\r\n this.profileByAgent.set(agentId, profileAh);\r\n const pair = this.profiles.get(profileAh);\r\n if (pair) {\r\n this.agentByName[pair[0].nickname] = agentId;\r\n }\r\n }\r\n\r\n /** */\r\n unstoreAgentProfile(agentId: AgentId, profileAh: ActionId) {\r\n console.debug(\"ProfilesAltZvm.unstoreAgentProfile()\", agentId.short, profileAh.short);\r\n assertAllDefined(agentId, profileAh);\r\n this.profileByAgent.delete(agentId);\r\n const pair = this.profiles.get(profileAh);\r\n if (pair) {\r\n delete this.agentByName[pair[0].nickname];\r\n }\r\n }\r\n\r\n\r\n /** -- Memento -- */\r\n\r\n /** */\r\n restore(snapshot: ProfilesAltSnapshot) {\r\n /** Clear */\r\n this.profiles.clear();\r\n this.profileByAgent.clear();\r\n this.agentByName = {};\r\n /** Store */\r\n for (const [agentId, profileAh, profile, ts] of snapshot.all) {\r\n this.storeAgentProfile(agentId, profileAh);\r\n this.storeProfile(profileAh, profile, ts);\r\n }\r\n }\r\n\r\n\r\n /** -- Generate -- */\r\n\r\n /** */\r\n async generateRandomProfile(nickname: string, ts?: Timestamp, fields?: Record<string, string>) {\r\n const agentId = await AgentId.random();\r\n const profileAh = await ActionId.random();\r\n const profile: Profile = {nickname, fields};\r\n this.storeAgentProfile(agentId, profileAh);\r\n this.storeProfile(profileAh, profile, ts? ts : 0);\r\n }\r\n\r\n}\r\n"]}
|
package/dist/profilesAlt.zvm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActionId, AgentId, EntryId, StateChangeType, ZomeViewModelWithSignals } from "@ddd-qc/lit-happ";
|
|
1
|
+
import { ActionId, AgentId, EntryId, holoIdReviver, StateChangeType, ZomeViewModelWithSignals } from "@ddd-qc/lit-happ";
|
|
2
2
|
import { decode } from "@msgpack/msgpack";
|
|
3
3
|
import { ProfilesAltProxy } from "./bindings/profilesAlt.proxy";
|
|
4
4
|
import { ProfilesLinkType } from "./bindings/profiles.integrity";
|
|
@@ -108,21 +108,30 @@ export class ProfilesAltZvm extends ZomeViewModelWithSignals {
|
|
|
108
108
|
/** -- Import / Export -- */
|
|
109
109
|
/** Dump perspective as JSON */
|
|
110
110
|
export() {
|
|
111
|
-
//console.log("exportPerspective()", perspMat);
|
|
112
111
|
const snapshot = this._perspective.makeSnapshot();
|
|
113
112
|
return JSON.stringify(snapshot, null, 2);
|
|
114
113
|
}
|
|
115
114
|
/** */
|
|
116
|
-
import(json,
|
|
117
|
-
const snapshot = JSON.parse(json);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
115
|
+
import(json, canPublish) {
|
|
116
|
+
const snapshot = JSON.parse(json, holoIdReviver);
|
|
117
|
+
if (canPublish) {
|
|
118
|
+
for (const [agentId, _profileAh, profile, _ts] of snapshot.all) {
|
|
119
|
+
console.log("ProfilesAltZvm.import() publish profile", agentId.short, profile.nickname);
|
|
120
|
+
const maybe = this._perspective.getProfile(agentId);
|
|
121
|
+
if (!maybe) {
|
|
122
|
+
/*await*/ this.createProfile(profile, agentId);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
if (maybe != profile) {
|
|
126
|
+
this.updateProfile(profile, agentId);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
124
132
|
/** */
|
|
125
133
|
this._perspective.restore(snapshot);
|
|
134
|
+
this.notifySubscribers();
|
|
126
135
|
}
|
|
127
136
|
}
|
|
128
137
|
ProfilesAltZvm.ZOME_PROXY = ProfilesAltProxy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profilesAlt.zvm.js","sourceRoot":"","sources":["../src/profilesAlt.zvm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,OAAO,EACP,OAAO,
|
|
1
|
+
{"version":3,"file":"profilesAlt.zvm.js","sourceRoot":"","sources":["../src/profilesAlt.zvm.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ActionId,\n AgentId,\n EntryId, holoIdReviver,\n LinkPulseMat,\n StateChangeType,\n ZomeViewModelWithSignals\n} from \"@ddd-qc/lit-happ\";\nimport {Profile} from \"./bindings/profiles.types\";\nimport {decode} from \"@msgpack/msgpack\";\nimport {ProfilesAltProxy} from \"./bindings/profilesAlt.proxy\";\nimport {EntryPulseMat} from \"@ddd-qc/lit-happ/dist/ZomeViewModelWithSignals\";\nimport {ProfilesLinkType} from \"./bindings/profiles.integrity\";\nimport {ProfilesAltUnitEnum} from \"./bindings/profilesAlt.integrity\";\nimport {\n ProfilesAltPerspective,\n ProfilesAltPerspectiveMutable,\n ProfilesAltSnapshot\n} from \"./profilesAlt.perspective\";\n\n\n/**\n *\n */\nexport class ProfilesAltZvm extends ZomeViewModelWithSignals {\n\n /** -- Concret -- */\n\n static readonly ZOME_PROXY = ProfilesAltProxy;\n get zomeProxy(): ProfilesAltProxy {return this._zomeProxy as ProfilesAltProxy;}\n\n\n /* */\n protected hasChanged(): boolean {\n return !this.perspective.equals(this._previousPerspective as ProfilesAltPerspective);\n }\n\n\n /** */\n async initializePerspectiveOnline(): Promise<void> {\n await this.probeAllProfiles();\n }\n\n\n /** */\n probeAllInner() {\n this.probeAllProfiles();\n }\n\n\n /* */\n get perspective(): ProfilesAltPerspective {\n return this._perspective.readonly;\n }\n\n\n /** -- */\n\n private _perspective: ProfilesAltPerspectiveMutable = new ProfilesAltPerspectiveMutable();\n\n\n /** -- Getters -- */\n\n getMyProfile(): Profile | undefined {\n return this._perspective.getProfile(this.cell.address.agentId);\n }\n\n\n\n /** -- Signals -- */\n\n /** */\n async handleLinkPulse(pulse: LinkPulseMat, _from: AgentId): Promise<void> {\n switch (pulse.link_type) {\n case ProfilesLinkType.PrefixPath:\n case ProfilesLinkType.PathToAgent: {\n const agentEh = new EntryId(pulse.target.b64);\n const agentId = AgentId.from(agentEh);\n if (pulse.state != StateChangeType.Delete) {\n await this.findProfile(agentId);\n }\n }\n break;\n case ProfilesLinkType.AgentToProfile: {\n const agentEh = new EntryId(pulse.base.b64); // Make sure its an EntryHash\n const agentId = AgentId.from(agentEh);\n const profileAh = ActionId.from(pulse.target);\n if (pulse.state == StateChangeType.Delete) {\n this._perspective.unstoreAgentProfile(agentId, profileAh)\n } else {\n this._perspective.storeAgentProfile(agentId, profileAh)\n }\n }\n break;\n }\n }\n\n\n /** */\n async handleEntryPulse(pulse: EntryPulseMat, _from: AgentId) {\n switch (pulse.entryType) {\n case ProfilesAltUnitEnum.Profile:\n const profile = decode(pulse.bytes) as Profile;\n if (pulse.state != StateChangeType.Delete) {\n this._perspective.storeProfile(pulse.ah, profile, pulse.ts);\n }\n break;\n }\n }\n\n\n /** -- Methods -- */\n\n /** */\n async probeAllProfiles()/*: Promise<Record<AgentPubKeyB64, ProfileMat>>*/ {\n await this.zomeProxy.probeProfiles();\n }\n\n\n /** */\n async findProfile(agentId: AgentId): Promise<Profile | undefined> {\n const maybeProfilePair = await this.zomeProxy.findProfile(agentId.hash);\n console.log(\"findProfile()\", agentId, maybeProfilePair);\n if (!maybeProfilePair) {\n return;\n }\n return maybeProfilePair[1];\n }\n\n\n /** */\n async createMyProfile(profile: Profile): Promise<void> {\n const _ah = await this.zomeProxy.createProfile([profile, this.cell.address.agentId.hash]);\n }\n\n\n /** */\n async updateMyProfile(profile: Profile): Promise<void> {\n const _ah = await this.zomeProxy.updateProfile([profile, this.cell.address.agentId.hash]);\n }\n\n\n /** */\n async createProfile(profile: Profile, agentId: AgentId): Promise<void> {\n const _ah = await this.zomeProxy.createProfile([profile, agentId.hash]);\n }\n\n\n /** */\n async updateProfile(profile: Profile, agentId: AgentId): Promise<void> {\n const _ah = await this.zomeProxy.updateProfile([profile, agentId.hash]);\n }\n\n\n /** -- Import / Export -- */\n\n /** Dump perspective as JSON */\n export(): string {\n const snapshot = this._perspective.makeSnapshot();\n return JSON.stringify(snapshot, null, 2);\n }\n\n\n /** */\n import(json: string, canPublish: boolean) {\n const snapshot = JSON.parse(json, holoIdReviver) as ProfilesAltSnapshot;\n if (canPublish) {\n for (const [agentId, _profileAh, profile, _ts] of snapshot.all) {\n console.log(\"ProfilesAltZvm.import() publish profile\", agentId.short, profile.nickname);\n const maybe = this._perspective.getProfile(agentId);\n if (!maybe) {\n /*await*/ this.createProfile(profile, agentId);\n } else {\n if (maybe != profile) {\n this.updateProfile(profile, agentId);\n }\n }\n }\n return;\n }\n /** */\n this._perspective.restore(snapshot);\n this.notifySubscribers();\n }\n}\n"]}
|