@ddd-qc/cell-proxy 0.27.4 → 0.28.0
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/AppProxy.d.ts +9 -45
- package/dist/AppProxy.d.ts.map +1 -0
- package/dist/AppProxy.js +26 -94
- package/dist/AppProxy.js.map +1 -1
- package/dist/CellProxy.d.ts +1 -37
- package/dist/CellProxy.d.ts.map +1 -0
- package/dist/CellProxy.js +9 -78
- package/dist/CellProxy.js.map +1 -1
- package/dist/ConductorAppProxy.d.ts +2 -19
- package/dist/ConductorAppProxy.d.ts.map +1 -0
- package/dist/ConductorAppProxy.js +16 -42
- package/dist/ConductorAppProxy.js.map +1 -1
- package/dist/ExternalAppProxy.d.ts +1 -5
- package/dist/ExternalAppProxy.d.ts.map +1 -0
- package/dist/ExternalAppProxy.js +1 -8
- package/dist/ExternalAppProxy.js.map +1 -1
- package/dist/ZomeProxy.d.ts +4 -15
- package/dist/ZomeProxy.d.ts.map +1 -0
- package/dist/ZomeProxy.js +0 -17
- package/dist/ZomeProxy.js.map +1 -1
- package/dist/cell.d.ts +1 -11
- package/dist/cell.d.ts.map +1 -0
- package/dist/cell.js +0 -14
- package/dist/cell.js.map +1 -1
- package/dist/datum-map.d.ts +2 -6
- package/dist/datum-map.d.ts.map +1 -0
- package/dist/datum-map.js +0 -12
- package/dist/datum-map.js.map +1 -1
- package/dist/hash.d.ts +2 -21
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +19 -51
- package/dist/hash.js.map +1 -1
- package/dist/hcl.d.ts +2 -15
- package/dist/hcl.d.ts.map +1 -0
- package/dist/hcl.js +1 -14
- package/dist/hcl.js.map +1 -1
- package/dist/holochain-id-map.d.ts +2 -1
- package/dist/holochain-id-map.d.ts.map +1 -0
- package/dist/holochain-id-map.js +0 -17
- package/dist/holochain-id-map.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/mixins.d.ts +2 -13
- package/dist/mixins.d.ts.map +1 -0
- package/dist/mixins.js +1 -13
- package/dist/mixins.js.map +1 -1
- package/dist/pretty.d.ts +1 -4
- package/dist/pretty.d.ts.map +1 -0
- package/dist/pretty.js +0 -4
- package/dist/pretty.js.map +1 -1
- package/dist/types.d.ts +1 -11
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -11
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +3 -10
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +11 -11
- package/dist/utils.js.map +1 -1
- package/dist/zomeSignals.integrity.d.ts +1 -0
- package/dist/zomeSignals.integrity.d.ts.map +1 -0
- package/dist/zomeSignals.integrity.js +1 -1
- package/dist/zomeSignals.integrity.js.map +1 -1
- package/dist/zomeSignals.types.d.ts +1 -5
- package/dist/zomeSignals.types.d.ts.map +1 -0
- package/dist/zomeSignals.types.js +0 -4
- package/dist/zomeSignals.types.js.map +1 -1
- package/package.json +4 -4
package/dist/hash.js
CHANGED
|
@@ -3,16 +3,11 @@ import blake2b from "@bitgo/blake2b";
|
|
|
3
3
|
import { Base64 } from "js-base64";
|
|
4
4
|
import { HASH_TYPE_PREFIX, randomByteArray, } from "@holochain/client";
|
|
5
5
|
import { getIndexByVariant } from "./utils";
|
|
6
|
-
/**
|
|
7
|
-
* Checks if obj is a Hash or list of hashes and tries to convert it a B64 or list of B64
|
|
8
|
-
*/
|
|
9
6
|
export function anyToB64(obj) {
|
|
10
|
-
/** Check if it's a hash */
|
|
11
7
|
if (obj instanceof Uint8Array) {
|
|
12
8
|
return enc64(obj);
|
|
13
9
|
}
|
|
14
10
|
else {
|
|
15
|
-
/** Check if it's an array of hashes */
|
|
16
11
|
if (Array.isArray(obj)) {
|
|
17
12
|
const isUint8Array = obj.length > 0 &&
|
|
18
13
|
obj.every((value) => {
|
|
@@ -29,7 +24,6 @@ export function anyToB64(obj) {
|
|
|
29
24
|
}
|
|
30
25
|
return obj;
|
|
31
26
|
}
|
|
32
|
-
/** ------------------------------------------------------------------------------------------------------------------*/
|
|
33
27
|
function decodeHashFromBase64(hash) {
|
|
34
28
|
return Base64.toUint8Array(hash.slice(1));
|
|
35
29
|
}
|
|
@@ -37,6 +31,9 @@ function encodeHashToBase64(hash) {
|
|
|
37
31
|
return `u${Base64.fromUint8Array(hash, true)}`;
|
|
38
32
|
}
|
|
39
33
|
export function dhtLocationFrom32(hashCore) {
|
|
34
|
+
if (hashCore.length != 32) {
|
|
35
|
+
throw Error("Uint8Array length must be exactly 32");
|
|
36
|
+
}
|
|
40
37
|
const hash = new Uint8Array(16);
|
|
41
38
|
blake2b(hash.length).update(hashCore).digest(hash);
|
|
42
39
|
const out = hash.slice(0, 4);
|
|
@@ -48,28 +45,23 @@ export function dhtLocationFrom32(hashCore) {
|
|
|
48
45
|
});
|
|
49
46
|
return out;
|
|
50
47
|
}
|
|
51
|
-
/** ------------------------------------------------------------------------------------------------------------------*/
|
|
52
48
|
export var HoloHashType;
|
|
53
49
|
(function (HoloHashType) {
|
|
54
50
|
HoloHashType["Action"] = "Action";
|
|
55
51
|
HoloHashType["Agent"] = "Agent";
|
|
56
|
-
//DhtOp = "DhtOp",
|
|
57
52
|
HoloHashType["Dna"] = "Dna";
|
|
58
53
|
HoloHashType["Entry"] = "Entry";
|
|
59
54
|
HoloHashType["External"] = "External";
|
|
60
55
|
HoloHashType["Network"] = "Network";
|
|
61
|
-
//Warrent = "Warrent",
|
|
62
56
|
HoloHashType["Wasm"] = "Wasm";
|
|
63
57
|
})(HoloHashType || (HoloHashType = {}));
|
|
64
58
|
export const HASH_TYPE_PREFIX_B64 = {
|
|
65
59
|
Action: "uhCkk",
|
|
66
60
|
Agent: "uhCAk",
|
|
67
61
|
Dna: "uhC0k",
|
|
68
|
-
//DhtOp: "hCQk",
|
|
69
62
|
Entry: "uhCEk",
|
|
70
63
|
External: "uhC8k",
|
|
71
64
|
Network: "uhCIk",
|
|
72
|
-
//Warrent: "Warrent",
|
|
73
65
|
Wasm: "uhCok",
|
|
74
66
|
};
|
|
75
67
|
export function getHashType(hash) {
|
|
@@ -82,7 +74,6 @@ export function getHashType(hash) {
|
|
|
82
74
|
}
|
|
83
75
|
throw Error("Unknown hash type");
|
|
84
76
|
}
|
|
85
|
-
/** */
|
|
86
77
|
export function isHashTypeB64(hash, hashType) {
|
|
87
78
|
const slice = hash.slice(0, 5);
|
|
88
79
|
const prefix = HASH_TYPE_PREFIX_B64[hashType];
|
|
@@ -96,7 +87,6 @@ export function isHashTypeB64(hash, hashType) {
|
|
|
96
87
|
export function hasHoloHashType(hash) {
|
|
97
88
|
return !!Object.values(HASH_TYPE_PREFIX_B64).find((prefix) => hash.startsWith(`${prefix}`));
|
|
98
89
|
}
|
|
99
|
-
/** */
|
|
100
90
|
export function validateHashB64(hash, hashType) {
|
|
101
91
|
if (!hash || typeof (hash) != 'string') {
|
|
102
92
|
throw new Error("The hash must be a valid string");
|
|
@@ -120,12 +110,10 @@ export function enc64(hash) {
|
|
|
120
110
|
function isUint8Array(value) {
|
|
121
111
|
return value instanceof Uint8Array;
|
|
122
112
|
}
|
|
123
|
-
/** A HoloHash starts with 'u' has a type and is 53 chars long */
|
|
124
113
|
export class HolochainId {
|
|
125
114
|
get hashType() {
|
|
126
115
|
return this.constructor.HASH_TYPE;
|
|
127
116
|
}
|
|
128
|
-
/** ctor: validate */
|
|
129
117
|
constructor(input) {
|
|
130
118
|
if (typeof (input) != 'string') {
|
|
131
119
|
input = encodeHashToBase64(input);
|
|
@@ -133,9 +121,7 @@ export class HolochainId {
|
|
|
133
121
|
validateHashB64(input, this.hashType);
|
|
134
122
|
this.b64 = input;
|
|
135
123
|
}
|
|
136
|
-
/** */
|
|
137
124
|
equals(other) {
|
|
138
|
-
//console.log("equals", other, isUint8Array(other));
|
|
139
125
|
if (!other) {
|
|
140
126
|
return false;
|
|
141
127
|
}
|
|
@@ -153,19 +139,14 @@ export class HolochainId {
|
|
|
153
139
|
}
|
|
154
140
|
return b64 == this.b64;
|
|
155
141
|
}
|
|
156
|
-
/** */
|
|
157
142
|
static empty(byte) {
|
|
158
143
|
const empty = new Uint8Array(32);
|
|
159
144
|
byte = byte ? byte : 0;
|
|
160
145
|
empty.fill(byte);
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
...empty,
|
|
164
|
-
...dhtLocationFrom32(empty),
|
|
165
|
-
]);
|
|
146
|
+
const hashType = this.HASH_TYPE;
|
|
147
|
+
const newHash = retypeHoloHashArray(empty, hashType);
|
|
166
148
|
return new this(newHash);
|
|
167
149
|
}
|
|
168
|
-
/** */
|
|
169
150
|
static from(start) {
|
|
170
151
|
let hash;
|
|
171
152
|
if (typeof start == 'string') {
|
|
@@ -176,31 +157,30 @@ export class HolochainId {
|
|
|
176
157
|
}
|
|
177
158
|
const core = Uint8Array.from(hash.slice(3, 35));
|
|
178
159
|
const hashType = this.HASH_TYPE;
|
|
179
|
-
const newHash =
|
|
180
|
-
...HASH_TYPE_PREFIX[hashType],
|
|
181
|
-
...core,
|
|
182
|
-
...dhtLocationFrom32(core),
|
|
183
|
-
]);
|
|
160
|
+
const newHash = retypeHoloHashArray(core, hashType);
|
|
184
161
|
return new this(newHash);
|
|
185
162
|
}
|
|
186
|
-
/** */
|
|
187
163
|
static async random() {
|
|
188
164
|
const core = await randomByteArray(32);
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
...core,
|
|
192
|
-
...dhtLocationFrom32(core),
|
|
193
|
-
]);
|
|
165
|
+
const hashType = this.HASH_TYPE;
|
|
166
|
+
const newHash = retypeHoloHashArray(core, hashType);
|
|
194
167
|
return new this(newHash);
|
|
195
168
|
}
|
|
196
|
-
// Don't autoconvert to string as this can lead to confusions. Have convert to string be explicit
|
|
197
169
|
toString() { throw Error("Implicit conversion of HolochainId to string"); }
|
|
198
|
-
//toString(): string {return this.b64;}
|
|
199
170
|
get hash() { return dec64(this.b64); }
|
|
200
|
-
/** First 8 chars of the Core */
|
|
201
171
|
get short() { return this.b64.slice(5, 13); }
|
|
202
172
|
print() { return `${this.short} (${this.hashType})`; }
|
|
203
173
|
}
|
|
174
|
+
function retypeHoloHashArray(core, hashType) {
|
|
175
|
+
if (hashType == HoloHashType.Network || hashType == HoloHashType.Wasm) {
|
|
176
|
+
throw Error("HoloHashType not handled");
|
|
177
|
+
}
|
|
178
|
+
return Uint8Array.from([
|
|
179
|
+
...HASH_TYPE_PREFIX[hashType],
|
|
180
|
+
...core,
|
|
181
|
+
...dhtLocationFrom32(core),
|
|
182
|
+
]);
|
|
183
|
+
}
|
|
204
184
|
export class ActionId extends HolochainId {
|
|
205
185
|
action() { }
|
|
206
186
|
}
|
|
@@ -221,7 +201,6 @@ export class ExternalId extends HolochainId {
|
|
|
221
201
|
external() { }
|
|
222
202
|
}
|
|
223
203
|
ExternalId.HASH_TYPE = HoloHashType.External;
|
|
224
|
-
/** */
|
|
225
204
|
export function intoDhtId(input) {
|
|
226
205
|
try {
|
|
227
206
|
const actionId = new ActionId(input);
|
|
@@ -232,7 +211,6 @@ export function intoDhtId(input) {
|
|
|
232
211
|
return entryId;
|
|
233
212
|
}
|
|
234
213
|
}
|
|
235
|
-
/** */
|
|
236
214
|
export function intoLinkableId(input) {
|
|
237
215
|
try {
|
|
238
216
|
const dhtId = intoDhtId(input);
|
|
@@ -243,7 +221,6 @@ export function intoLinkableId(input) {
|
|
|
243
221
|
return externalId;
|
|
244
222
|
}
|
|
245
223
|
}
|
|
246
|
-
/** */
|
|
247
224
|
export function intoAnyId(input) {
|
|
248
225
|
try {
|
|
249
226
|
const dhtId = intoLinkableId(input);
|
|
@@ -260,12 +237,8 @@ export function intoAnyId(input) {
|
|
|
260
237
|
}
|
|
261
238
|
}
|
|
262
239
|
}
|
|
263
|
-
|
|
264
|
-
export function holoIdReviver(key, value) {
|
|
240
|
+
export function holoIdReviver(_key, value) {
|
|
265
241
|
if (typeof value === 'object' && value !== null) {
|
|
266
|
-
// if (value.dataType === 'HolochainId') {
|
|
267
|
-
// return intoAnyId(value.value);
|
|
268
|
-
// }
|
|
269
242
|
const keys = Object.keys(value);
|
|
270
243
|
if (keys.length == 1 && keys[0] == "b64") {
|
|
271
244
|
return intoAnyId(value.b64);
|
|
@@ -273,7 +246,6 @@ export function holoIdReviver(key, value) {
|
|
|
273
246
|
}
|
|
274
247
|
return value;
|
|
275
248
|
}
|
|
276
|
-
/** -- MsgPack ExtensionCodec for HolochainId -- */
|
|
277
249
|
export const HOLOCHAIN_ID_EXT_CODEC = new ExtensionCodec();
|
|
278
250
|
HOLOCHAIN_ID_EXT_CODEC.register({
|
|
279
251
|
type: getIndexByVariant(HoloHashType, HoloHashType.Agent),
|
|
@@ -335,8 +307,6 @@ HOLOCHAIN_ID_EXT_CODEC.register({
|
|
|
335
307
|
return new DnaId(b64);
|
|
336
308
|
},
|
|
337
309
|
});
|
|
338
|
-
/** -- TESTING -- */
|
|
339
|
-
/** */
|
|
340
310
|
export async function testHoloId() {
|
|
341
311
|
console.log("testHoloId()");
|
|
342
312
|
const emptyAction = ActionId.empty();
|
|
@@ -346,7 +316,6 @@ export async function testHoloId() {
|
|
|
346
316
|
const randomEh = await EntryId.random();
|
|
347
317
|
const randomEh2 = EntryId.from(randomEh.b64);
|
|
348
318
|
console.log("testHoloId()", emptyAction);
|
|
349
|
-
/** */
|
|
350
319
|
function printEh(eh) {
|
|
351
320
|
console.log("printEh", eh);
|
|
352
321
|
}
|
|
@@ -357,6 +326,5 @@ export async function testHoloId() {
|
|
|
357
326
|
console.log("testHoloId.emptyEntry2", emptyEntry.equals(emptyEntry2), emptyEntry.equals(emptyEntry2.b64), emptyEntry.equals(emptyEntry2.hash));
|
|
358
327
|
console.log("testHoloId.randomEh", emptyEntry.equals(randomEh), emptyEntry.equals(emptyAgent), emptyEntry.equals(emptyAgent.hash), emptyEntry.equals(emptyAgent.b64));
|
|
359
328
|
console.log("testHoloId.randomEh2", randomEh.equals(randomEh2));
|
|
360
|
-
//printEh(emptyAction); // Should error at compile time
|
|
361
329
|
}
|
|
362
330
|
//# sourceMappingURL=hash.js.map
|
package/dist/hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"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","sourcesContent":["import {decode, encode, ExtensionCodec} from \"@msgpack/msgpack\";\nimport blake2b from \"@bitgo/blake2b\";\nimport { Base64 } from \"js-base64\";\nimport {\n ActionHashB64,\n AgentPubKeyB64,\n EntryHashB64, HASH_TYPE_PREFIX,\n HoloHashB64, randomByteArray,\n} from \"@holochain/client\";\nimport {getIndexByVariant} from \"./utils\";\n\n\n/**\n * Checks if obj is a Hash or list of hashes and tries to convert it a B64 or list of B64\n */\nexport function anyToB64(obj: unknown): unknown {\n /** Check if it's a hash */\n if (obj instanceof Uint8Array) {\n return enc64(obj);\n } else {\n /** Check if it's an array of hashes */\n if (Array.isArray(obj)) {\n const isUint8Array =\n obj.length > 0 &&\n obj.every((value) => {\n return value instanceof Uint8Array;\n });\n if (isUint8Array) {\n let result = [];\n for (const cur of obj) {\n result.push(enc64(cur));\n }\n return result;\n }\n }\n }\n return obj;\n}\n\n\n/** ------------------------------------------------------------------------------------------------------------------*/\n\nfunction decodeHashFromBase64(hash: HoloHashB64): Uint8Array {\n return Base64.toUint8Array(hash.slice(1));\n}\n\n\nfunction encodeHashToBase64(hash: Uint8Array): HoloHashB64 {\n return `u${Base64.fromUint8Array(hash, true)}`;\n}\n\n\nexport function dhtLocationFrom32(hashCore: Uint8Array): Uint8Array {\n const hash = new Uint8Array(16);\n blake2b(hash.length).update(hashCore).digest(hash);\n\n const out = hash.slice(0, 4);\n [4, 8, 12].forEach((i) => {\n out[0] ^= hash[i];\n out[1] ^= hash[i + 1];\n out[2] ^= hash[i + 2];\n out[3] ^= hash[i + 3];\n });\n\n return out;\n}\n\n/** ------------------------------------------------------------------------------------------------------------------*/\n\nexport enum HoloHashType {\n Action = \"Action\",\n Agent = \"Agent\",\n //DhtOp = \"DhtOp\",\n Dna = \"Dna\",\n Entry = \"Entry\",\n External = \"External\",\n Network = \"Network\",\n //Warrent = \"Warrent\",\n Wasm = \"Wasm\",\n}\n\nexport const HASH_TYPE_PREFIX_B64 = {\n Action: \"uhCkk\",\n Agent: \"uhCAk\",\n Dna: \"uhC0k\",\n //DhtOp: \"hCQk\",\n Entry: \"uhCEk\",\n External: \"uhC8k\",\n Network: \"uhCIk\",\n //Warrent: \"Warrent\",\n Wasm: \"uhCok\",\n};\n\nexport function getHashType(hash: HoloHashB64): HoloHashType {\n const hashExt = hash.slice(0, 5);\n const hashPrefixes = Object.values(HASH_TYPE_PREFIX_B64)\n for (let i = 0; i < hashPrefixes.length; i+= 1) {\n if (hashPrefixes[i] == hashExt) {\n return Object.keys(HASH_TYPE_PREFIX_B64)[i] as HoloHashType;\n }\n }\n throw Error(\"Unknown hash type\");\n}\n\n\n/** */\nexport function isHashTypeB64(hash: HoloHashB64, hashType: HoloHashType) {\n const slice = hash.slice(0, 5);\n const prefix = HASH_TYPE_PREFIX_B64[hashType];\n for (let i = 0; i < prefix.length; i++) {\n if (slice[i] !== prefix[i]) {\n return false;\n }\n }\n return true;\n}\n\n\nexport function hasHoloHashType(hash: HoloHashB64): boolean {\n return !!Object.values(HASH_TYPE_PREFIX_B64).find((prefix) => hash.startsWith(`${prefix}`));\n}\n\n\n/** */\nexport function validateHashB64(hash: HoloHashB64, hashType?: HoloHashType) {\n if (!hash || typeof(hash) != 'string') {\n throw new Error(\"The hash must be a valid string\");\n }\n if (hash.length !== 53) {\n throw new Error(\"The hash must be exactly 53 characters long. Got: \" + hash.length);\n }\n if((hashType && !isHashTypeB64(hash, hashType)) || !hasHoloHashType(hash)) {\n throw new Error(\"The hash must have a valid HoloHashB64 type.\");\n }\n}\n\n\nexport function dec64(hash: HoloHashB64): Uint8Array {\n validateHashB64(hash);\n return decodeHashFromBase64(hash);\n}\n\nexport function enc64(hash: Uint8Array): HoloHashB64 {\n let b64 = encodeHashToBase64(hash);\n validateHashB64(b64);\n return b64;\n}\n\nfunction isUint8Array(value: any): boolean {\n return value instanceof Uint8Array;\n}\n\n/** A HoloHash starts with 'u' has a type and is 53 chars long */\nexport abstract class HolochainId {\n public readonly b64: HoloHashB64;\n\n static readonly HASH_TYPE: HoloHashType;\n\n get hashType(): HoloHashType {\n return (this.constructor as typeof HolochainId).HASH_TYPE;\n }\n\n /** ctor: validate */\n constructor(input: HoloHashB64 | Uint8Array) {\n if (typeof(input) != 'string') {\n input = encodeHashToBase64(input);\n }\n validateHashB64(input, this.hashType);\n this.b64 = input;\n }\n\n /** */\n equals<T extends HolochainId>(other: T | Uint8Array | string): boolean {\n //console.log(\"equals\", other, isUint8Array(other));\n if (!other) {\n return false;\n }\n let b64;\n if (typeof(other) == 'string') {\n b64 = other;\n } else {\n if (isUint8Array(other)) {\n b64 = enc64(other as Uint8Array);\n } else {\n b64 = (other as T).b64;\n }\n }\n return b64 == this.b64;\n }\n\n\n /** */\n static empty<T extends HolochainId>(this: new (input: HoloHashB64 | Uint8Array) => T, byte?: number): T {\n const empty = new Uint8Array(32);\n byte = byte? byte : 0;\n empty.fill(byte);\n const newHash = Uint8Array.from([\n ...HASH_TYPE_PREFIX[(this as unknown as typeof HolochainId).HASH_TYPE],\n ...empty,\n ...dhtLocationFrom32(empty),\n ]);\n return new this(newHash);\n }\n\n /** */\n static from<T extends HolochainId, Z extends HolochainId>(this: new (input: HoloHashB64 | Uint8Array) => Z, start: T | string): Z {\n let hash;\n if (typeof start == 'string') {\n hash = dec64(start);\n } else {\n hash = start.hash;\n }\n const core = Uint8Array.from(hash.slice(3, 35));\n const hashType = (this as unknown as typeof HolochainId).HASH_TYPE;\n const newHash = Uint8Array.from([\n ...HASH_TYPE_PREFIX[hashType],\n ...core,\n ...dhtLocationFrom32(core),\n ]);\n return new this(newHash);\n }\n\n\n /** */\n static async random<T extends HolochainId>(this: new (input: HoloHashB64 | Uint8Array) => T): Promise<T> {\n const core = await randomByteArray(32);\n const newHash = Uint8Array.from([\n ...HASH_TYPE_PREFIX[(this as unknown as typeof HolochainId).HASH_TYPE],\n ...core,\n ...dhtLocationFrom32(core),\n ]);\n return new this(newHash);\n }\n\n\n // Don't autoconvert to string as this can lead to confusions. Have convert to string be explicit\n toString(): string {throw Error(\"Implicit conversion of HolochainId to string\")}\n\n //toString(): string {return this.b64;}\n\n get hash(): Uint8Array { return dec64(this.b64) }\n /** First 8 chars of the Core */\n get short(): string { return this.b64.slice(5, 13); }\n\n print(): string { return `${this.short} (${this.hashType})`}\n}\n\n\nexport class ActionId extends HolochainId { static readonly HASH_TYPE = HoloHashType.Action; action() {} }\nexport class AgentId extends HolochainId { static readonly HASH_TYPE = HoloHashType.Agent; agent() {} }\nexport class EntryId extends HolochainId { static readonly HASH_TYPE = HoloHashType.Entry; entry() {} }\nexport class DnaId extends HolochainId { static readonly HASH_TYPE = HoloHashType.Dna; dna() {} }\nexport class ExternalId extends HolochainId { static readonly HASH_TYPE = HoloHashType.External; external() {} }\n\n//export class AnyId extends HolochainId { static readonly HASH_TYPE = HoloHashType.Any; any() {} }\n\nexport type DhtId = ActionId | EntryId;\nexport type LinkableId = DhtId | ExternalId;\nexport type AnyId = LinkableId | AgentId | DnaId;\n\n\n\n\n/** */\nexport function intoDhtId(input: HoloHashB64 | Uint8Array): DhtId {\n try {\n const actionId = new ActionId(input);\n return actionId;\n } catch(e) {\n const entryId = new EntryId(input);\n return entryId;\n }\n}\n\n\n/** */\nexport function intoLinkableId(input: HoloHashB64 | Uint8Array): LinkableId {\n try {\n const dhtId = intoDhtId(input);\n return dhtId;\n } catch(e) {\n const externalId = new ExternalId(input);\n return externalId;\n }\n}\n\n\n/** */\nexport function intoAnyId(input: HoloHashB64 | Uint8Array): AnyId {\n try {\n const dhtId = intoLinkableId(input);\n return dhtId;\n } catch(e) {\n try {\n const dnaId = new AgentId(input);\n return dnaId;\n } catch(e) {\n const id = new DnaId(input);\n return id;\n }\n }\n}\n\n\n/** -- JSON -- */\n\nexport function holoIdReviver(key:any, value:any) {\n if(typeof value === 'object' && value !== null) {\n // if (value.dataType === 'HolochainId') {\n // return intoAnyId(value.value);\n // }\n const keys = Object.keys(value);\n if (keys.length == 1 && keys[0] == \"b64\") {\n return intoAnyId(value.b64);\n }\n }\n return value;\n}\n\n\n/** -- MsgPack ExtensionCodec for HolochainId -- */\n\nexport const HOLOCHAIN_ID_EXT_CODEC = new ExtensionCodec();\n\nHOLOCHAIN_ID_EXT_CODEC.register({\n type: getIndexByVariant(HoloHashType, HoloHashType.Agent),\n encode: (object: unknown): Uint8Array | null => {\n if (object instanceof AgentId) {\n return encode(object.b64);\n } else {\n return null;\n }\n },\n decode: (data: Uint8Array) => {\n const b64 = decode(data) as AgentPubKeyB64;\n return new AgentId(b64);\n },\n});\n\nHOLOCHAIN_ID_EXT_CODEC.register({\n type: getIndexByVariant(HoloHashType, HoloHashType.Entry),\n encode: (object: unknown): Uint8Array | null => {\n if (object instanceof EntryId) {\n return encode(object.b64);\n } else {\n return null;\n }\n },\n decode: (data: Uint8Array) => {\n const b64 = decode(data) as EntryHashB64;\n return new EntryId(b64);\n },\n});\n\n\nHOLOCHAIN_ID_EXT_CODEC.register({\n type: getIndexByVariant(HoloHashType, HoloHashType.Action),\n encode: (object: unknown): Uint8Array | null => {\n if (object instanceof ActionId) {\n return encode(object.b64);\n } else {\n return null;\n }\n },\n decode: (data: Uint8Array) => {\n const b64 = decode(data) as ActionHashB64;\n return new ActionId(b64);\n },\n});\n\nHOLOCHAIN_ID_EXT_CODEC.register({\n type: getIndexByVariant(HoloHashType, HoloHashType.Dna),\n encode: (object: unknown): Uint8Array | null => {\n if (object instanceof DnaId) {\n return encode(object.b64);\n } else {\n return null;\n }\n },\n decode: (data: Uint8Array) => {\n const b64 = decode(data) as ActionHashB64;\n return new DnaId(b64);\n },\n});\n\n\n/** -- TESTING -- */\n\n/** */\nexport async function testHoloId() {\n console.log(\"testHoloId()\");\n const emptyAction = ActionId.empty();\n const emptyEntry = EntryId.empty();\n const emptyAgent = AgentId.from(emptyEntry);\n const emptyEntry2 = EntryId.from(emptyAgent);\n const randomEh = await EntryId.random();\n const randomEh2 = EntryId.from(randomEh.b64);\n\n console.log(\"testHoloId()\", emptyAction);\n /** */\n function printEh(eh: EntryId) {\n console.log(\"printEh\", eh);\n }\n\n printEh(emptyEntry);\n printEh(emptyEntry2);\n printEh(randomEh);\n console.log(\"testHoloId.emptyEntry\", emptyEntry.equals(emptyEntry), emptyEntry.equals(emptyEntry.b64), emptyEntry.equals(emptyEntry.hash));\n console.log(\"testHoloId.emptyEntry2\", emptyEntry.equals(emptyEntry2), emptyEntry.equals(emptyEntry2.b64), emptyEntry.equals(emptyEntry2.hash));\n console.log(\"testHoloId.randomEh\", emptyEntry.equals(randomEh), emptyEntry.equals(emptyAgent), emptyEntry.equals(emptyAgent.hash), emptyEntry.equals(emptyAgent.b64));\n console.log(\"testHoloId.randomEh2\", randomEh.equals(randomEh2));\n\n //printEh(emptyAction); // Should error at compile time\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"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","sourcesContent":["import {decode, encode, ExtensionCodec} from \"@msgpack/msgpack\";\n// @ts-ignore\nimport blake2b from \"@bitgo/blake2b\";\nimport { Base64 } from \"js-base64\";\nimport {\n ActionHashB64,\n AgentPubKeyB64,\n EntryHashB64, HASH_TYPE_PREFIX,\n HoloHashB64, randomByteArray,\n} from \"@holochain/client\";\nimport {getIndexByVariant} from \"./utils\";\n\n\n/**\n * Checks if obj is a Hash or list of hashes and tries to convert it a B64 or list of B64\n */\nexport function anyToB64(obj: unknown): unknown {\n /** Check if it's a hash */\n if (obj instanceof Uint8Array) {\n return enc64(obj);\n } else {\n /** Check if it's an array of hashes */\n if (Array.isArray(obj)) {\n const isUint8Array =\n obj.length > 0 &&\n obj.every((value) => {\n return value instanceof Uint8Array;\n });\n if (isUint8Array) {\n let result: any[] = [];\n for (const cur of obj) {\n result.push(enc64(cur));\n }\n return result;\n }\n }\n }\n return obj;\n}\n\n\n/** ------------------------------------------------------------------------------------------------------------------*/\n\nfunction decodeHashFromBase64(hash: HoloHashB64): Uint8Array {\n return Base64.toUint8Array(hash.slice(1));\n}\n\n\nfunction encodeHashToBase64(hash: Uint8Array): HoloHashB64 {\n return `u${Base64.fromUint8Array(hash, true)}`;\n}\n\n\nexport function dhtLocationFrom32(hashCore: Uint8Array): Uint8Array {\n if (hashCore.length != 32) {\n throw Error(\"Uint8Array length must be exactly 32\");\n }\n const hash = new Uint8Array(16);\n blake2b(hash.length).update(hashCore).digest(hash);\n\n const out = hash.slice(0, 4)!;\n [4, 8, 12].forEach((i) => {\n out[0]! ^= hash[i]!;\n out[1]! ^= hash[i + 1]!;\n out[2]! ^= hash[i + 2]!;\n out[3]! ^= hash[i + 3]!;\n });\n\n return out;\n}\n\n/** ------------------------------------------------------------------------------------------------------------------*/\n\nexport enum HoloHashType {\n Action = \"Action\",\n Agent = \"Agent\",\n //DhtOp = \"DhtOp\",\n Dna = \"Dna\",\n Entry = \"Entry\",\n External = \"External\",\n Network = \"Network\",\n //Warrent = \"Warrent\",\n Wasm = \"Wasm\",\n}\n\nexport const HASH_TYPE_PREFIX_B64 = {\n Action: \"uhCkk\",\n Agent: \"uhCAk\",\n Dna: \"uhC0k\",\n //DhtOp: \"hCQk\",\n Entry: \"uhCEk\",\n External: \"uhC8k\",\n Network: \"uhCIk\",\n //Warrent: \"Warrent\",\n Wasm: \"uhCok\",\n};\n\nexport function getHashType(hash: HoloHashB64): HoloHashType {\n const hashExt = hash.slice(0, 5);\n const hashPrefixes = Object.values(HASH_TYPE_PREFIX_B64)\n for (let i = 0; i < hashPrefixes.length; i+= 1) {\n if (hashPrefixes[i] == hashExt) {\n return Object.keys(HASH_TYPE_PREFIX_B64)[i] as HoloHashType;\n }\n }\n throw Error(\"Unknown hash type\");\n}\n\n\n/** */\nexport function isHashTypeB64(hash: HoloHashB64, hashType: HoloHashType) {\n const slice = hash.slice(0, 5);\n const prefix = HASH_TYPE_PREFIX_B64[hashType];\n for (let i = 0; i < prefix.length; i++) {\n if (slice[i] !== prefix[i]) {\n return false;\n }\n }\n return true;\n}\n\n\nexport function hasHoloHashType(hash: HoloHashB64): boolean {\n return !!Object.values(HASH_TYPE_PREFIX_B64).find((prefix) => hash.startsWith(`${prefix}`));\n}\n\n\n/** */\nexport function validateHashB64(hash: HoloHashB64, hashType?: HoloHashType) {\n if (!hash || typeof(hash) != 'string') {\n throw new Error(\"The hash must be a valid string\");\n }\n if (hash.length !== 53) {\n throw new Error(\"The hash must be exactly 53 characters long. Got: \" + hash.length);\n }\n if((hashType && !isHashTypeB64(hash, hashType)) || !hasHoloHashType(hash)) {\n throw new Error(\"The hash must have a valid HoloHashB64 type.\");\n }\n}\n\n\nexport function dec64(hash: HoloHashB64): Uint8Array {\n validateHashB64(hash);\n return decodeHashFromBase64(hash);\n}\n\nexport function enc64(hash: Uint8Array): HoloHashB64 {\n let b64 = encodeHashToBase64(hash);\n validateHashB64(b64);\n return b64;\n}\n\nfunction isUint8Array(value: any): boolean {\n return value instanceof Uint8Array;\n}\n\n/** A HoloHash starts with 'u' has a type and is 53 chars long */\nexport abstract class HolochainId {\n public readonly b64: HoloHashB64;\n\n static readonly HASH_TYPE: HoloHashType;\n\n get hashType(): HoloHashType {\n return (this.constructor as typeof HolochainId).HASH_TYPE;\n }\n\n /** ctor: validate */\n constructor(input: HoloHashB64 | Uint8Array) {\n if (typeof(input) != 'string') {\n input = encodeHashToBase64(input);\n }\n validateHashB64(input, this.hashType);\n this.b64 = input;\n }\n\n /** */\n equals<T extends HolochainId>(other: T | Uint8Array | string): boolean {\n //console.log(\"equals\", other, isUint8Array(other));\n if (!other) {\n return false;\n }\n let b64;\n if (typeof(other) == 'string') {\n b64 = other;\n } else {\n if (isUint8Array(other)) {\n b64 = enc64(other as Uint8Array);\n } else {\n b64 = (other as T).b64;\n }\n }\n return b64 == this.b64;\n }\n\n\n /** */\n static empty<T extends HolochainId>(this: new (input: HoloHashB64 | Uint8Array) => T, byte?: number): T {\n const empty = new Uint8Array(32);\n byte = byte? byte : 0;\n empty.fill(byte);\n const hashType = (this as unknown as typeof HolochainId).HASH_TYPE;\n const newHash = retypeHoloHashArray(empty, hashType);\n return new this(newHash);\n }\n\n\n /** */\n static from<T extends HolochainId, Z extends HolochainId>(this: new (input: HoloHashB64 | Uint8Array) => Z, start: T | string): Z {\n let hash;\n if (typeof start == 'string') {\n hash = dec64(start);\n } else {\n hash = start.hash;\n }\n const core = Uint8Array.from(hash.slice(3, 35));\n const hashType = (this as unknown as typeof HolochainId).HASH_TYPE;\n const newHash = retypeHoloHashArray(core, hashType);\n return new this(newHash);\n }\n\n\n /** */\n static async random<T extends HolochainId>(this: new (input: HoloHashB64 | Uint8Array) => T): Promise<T> {\n const core = await randomByteArray(32);\n const hashType = (this as unknown as typeof HolochainId).HASH_TYPE;\n const newHash = retypeHoloHashArray(core, hashType);\n return new this(newHash);\n }\n\n\n // Don't autoconvert to string as this can lead to confusions. Have convert to string be explicit\n toString(): string {throw Error(\"Implicit conversion of HolochainId to string\")}\n\n //toString(): string {return this.b64;}\n\n get hash(): Uint8Array { return dec64(this.b64) }\n /** First 8 chars of the Core */\n get short(): string { return this.b64.slice(5, 13); }\n\n print(): string { return `${this.short} (${this.hashType})`}\n}\n\n\n/** */\nfunction retypeHoloHashArray(core: Uint8Array, hashType: HoloHashType): Uint8Array {\n if (hashType == HoloHashType.Network || hashType == HoloHashType.Wasm) {\n throw Error(\"HoloHashType not handled\");\n }\n return Uint8Array.from([\n ...HASH_TYPE_PREFIX[hashType],\n ...core,\n ...dhtLocationFrom32(core),\n ]);\n}\n\n\n\nexport class ActionId extends HolochainId { static override readonly HASH_TYPE = HoloHashType.Action; action() {} }\nexport class AgentId extends HolochainId { static override readonly HASH_TYPE = HoloHashType.Agent; agent() {} }\nexport class EntryId extends HolochainId { static override readonly HASH_TYPE = HoloHashType.Entry; entry() {} }\nexport class DnaId extends HolochainId { static override readonly HASH_TYPE = HoloHashType.Dna; dna() {} }\nexport class ExternalId extends HolochainId { static override readonly HASH_TYPE = HoloHashType.External; external() {} }\n\n//export class AnyId extends HolochainId { static readonly HASH_TYPE = HoloHashType.Any; any() {} }\n\nexport type DhtId = ActionId | EntryId;\nexport type LinkableId = DhtId | ExternalId;\nexport type AnyId = LinkableId | AgentId | DnaId;\n\n\n\n\n/** */\nexport function intoDhtId(input: HoloHashB64 | Uint8Array): DhtId {\n try {\n const actionId = new ActionId(input);\n return actionId;\n } catch(e) {\n const entryId = new EntryId(input);\n return entryId;\n }\n}\n\n\n/** */\nexport function intoLinkableId(input: HoloHashB64 | Uint8Array): LinkableId {\n try {\n const dhtId = intoDhtId(input);\n return dhtId;\n } catch(e) {\n const externalId = new ExternalId(input);\n return externalId;\n }\n}\n\n\n/** */\nexport function intoAnyId(input: HoloHashB64 | Uint8Array): AnyId {\n try {\n const dhtId = intoLinkableId(input);\n return dhtId;\n } catch(e) {\n try {\n const dnaId = new AgentId(input);\n return dnaId;\n } catch(e) {\n const id = new DnaId(input);\n return id;\n }\n }\n}\n\n\n/** -- JSON -- */\n\nexport function holoIdReviver(_key: any, value: any) {\n if(typeof value === 'object' && value !== null) {\n // if (value.dataType === 'HolochainId') {\n // return intoAnyId(value.value);\n // }\n const keys = Object.keys(value);\n if (keys.length == 1 && keys[0] == \"b64\") {\n return intoAnyId(value.b64);\n }\n }\n return value;\n}\n\n\n/** -- MsgPack ExtensionCodec for HolochainId -- */\n\nexport const HOLOCHAIN_ID_EXT_CODEC = new ExtensionCodec();\n\nHOLOCHAIN_ID_EXT_CODEC.register({\n type: getIndexByVariant(HoloHashType, HoloHashType.Agent),\n encode: (object: unknown): Uint8Array | null => {\n if (object instanceof AgentId) {\n return encode(object.b64);\n } else {\n return null;\n }\n },\n decode: (data: Uint8Array) => {\n const b64 = decode(data) as AgentPubKeyB64;\n return new AgentId(b64);\n },\n});\n\nHOLOCHAIN_ID_EXT_CODEC.register({\n type: getIndexByVariant(HoloHashType, HoloHashType.Entry),\n encode: (object: unknown): Uint8Array | null => {\n if (object instanceof EntryId) {\n return encode(object.b64);\n } else {\n return null;\n }\n },\n decode: (data: Uint8Array) => {\n const b64 = decode(data) as EntryHashB64;\n return new EntryId(b64);\n },\n});\n\n\nHOLOCHAIN_ID_EXT_CODEC.register({\n type: getIndexByVariant(HoloHashType, HoloHashType.Action),\n encode: (object: unknown): Uint8Array | null => {\n if (object instanceof ActionId) {\n return encode(object.b64);\n } else {\n return null;\n }\n },\n decode: (data: Uint8Array) => {\n const b64 = decode(data) as ActionHashB64;\n return new ActionId(b64);\n },\n});\n\nHOLOCHAIN_ID_EXT_CODEC.register({\n type: getIndexByVariant(HoloHashType, HoloHashType.Dna),\n encode: (object: unknown): Uint8Array | null => {\n if (object instanceof DnaId) {\n return encode(object.b64);\n } else {\n return null;\n }\n },\n decode: (data: Uint8Array) => {\n const b64 = decode(data) as ActionHashB64;\n return new DnaId(b64);\n },\n});\n\n\n/** -- TESTING -- */\n\n/** */\nexport async function testHoloId() {\n console.log(\"testHoloId()\");\n const emptyAction = ActionId.empty();\n const emptyEntry = EntryId.empty();\n const emptyAgent = AgentId.from(emptyEntry);\n const emptyEntry2 = EntryId.from(emptyAgent);\n const randomEh = await EntryId.random();\n const randomEh2 = EntryId.from(randomEh.b64);\n\n console.log(\"testHoloId()\", emptyAction);\n /** */\n function printEh(eh: EntryId) {\n console.log(\"printEh\", eh);\n }\n\n printEh(emptyEntry);\n printEh(emptyEntry2);\n printEh(randomEh);\n console.log(\"testHoloId.emptyEntry\", emptyEntry.equals(emptyEntry), emptyEntry.equals(emptyEntry.b64), emptyEntry.equals(emptyEntry.hash));\n console.log(\"testHoloId.emptyEntry2\", emptyEntry.equals(emptyEntry2), emptyEntry.equals(emptyEntry2.b64), emptyEntry.equals(emptyEntry2.hash));\n console.log(\"testHoloId.randomEh\", emptyEntry.equals(randomEh), emptyEntry.equals(emptyAgent), emptyEntry.equals(emptyAgent.hash), emptyEntry.equals(emptyAgent.b64));\n console.log(\"testHoloId.randomEh2\", randomEh.equals(randomEh2));\n\n //printEh(emptyAction); // Should error at compile time\n}\n\n"]}
|
package/dist/hcl.d.ts
CHANGED
|
@@ -1,28 +1,15 @@
|
|
|
1
1
|
import { InstalledAppId } from "@holochain/client";
|
|
2
2
|
import { BaseRoleName, CloneId } from "./types";
|
|
3
|
-
/** -- HCL: Holochain Cell Locator -- */
|
|
4
3
|
export type HCLString = string;
|
|
5
|
-
/**
|
|
6
|
-
* `cell:/<appId>/<BaseRoleName>/<cloneId>`
|
|
7
|
-
* Examples
|
|
8
|
-
* `cell:/where/profiles`
|
|
9
|
-
* `cell:/chatApp/channel/channel.2`
|
|
10
|
-
*/
|
|
11
4
|
export declare class HCL {
|
|
12
5
|
readonly appId: InstalledAppId;
|
|
13
6
|
readonly baseRoleName: BaseRoleName;
|
|
14
|
-
|
|
15
|
-
readonly cloneId?: CloneId;
|
|
16
|
-
/** Ctor */
|
|
7
|
+
readonly cloneId: CloneId | undefined;
|
|
17
8
|
constructor(appId: InstalledAppId, role: BaseRoleName, cloneId?: CloneId);
|
|
18
|
-
/** */
|
|
19
9
|
get roleName(): string;
|
|
20
|
-
/** */
|
|
21
10
|
static parse(sHcl: HCLString): HCL;
|
|
22
|
-
/** */
|
|
23
11
|
toString(): HCLString;
|
|
24
|
-
/** */
|
|
25
12
|
isClone(): boolean;
|
|
26
|
-
/** */
|
|
27
13
|
match(hcl: HCL): boolean;
|
|
28
14
|
}
|
|
15
|
+
//# sourceMappingURL=hcl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hcl.d.ts","sourceRoot":"","sources":["../src/hcl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAE,OAAO,EAAC,MAAM,SAAS,CAAC;AAK9C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAQ/B,qBAAa,GAAG;IAEd,SAAgB,KAAK,EAAE,cAAc,CAAC;IACtC,SAAgB,YAAY,EAAE,YAAY,CAAC;IAE3C,SAAgB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAa;gBAG7C,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,OAAO;IAOxE,IAAI,QAAQ,IAAI,MAAM,CAA6D;IAInF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,GAAG;IAclC,QAAQ,IAAI,SAAS;IAWrB,OAAO,IAAI,OAAO;IAIlB,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;CAUzB"}
|
package/dist/hcl.js
CHANGED
|
@@ -1,23 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `cell:/<appId>/<BaseRoleName>/<cloneId>`
|
|
3
|
-
* Examples
|
|
4
|
-
* `cell:/where/profiles`
|
|
5
|
-
* `cell:/chatApp/channel/channel.2`
|
|
6
|
-
*/
|
|
7
1
|
export class HCL {
|
|
8
|
-
/** Ctor */
|
|
9
2
|
constructor(appId, role, cloneId) {
|
|
3
|
+
this.cloneId = undefined;
|
|
10
4
|
this.appId = appId;
|
|
11
5
|
this.baseRoleName = role;
|
|
12
6
|
this.cloneId = cloneId;
|
|
13
7
|
}
|
|
14
|
-
/** */
|
|
15
8
|
get roleName() { return this.isClone() ? this.cloneId : this.baseRoleName; }
|
|
16
9
|
;
|
|
17
|
-
/** */
|
|
18
10
|
static parse(sHcl) {
|
|
19
11
|
const subs = sHcl.split('/');
|
|
20
|
-
//console.log({subs});
|
|
21
12
|
if (subs[0] !== "cell:")
|
|
22
13
|
throw Error("HCL.parse() Bad string format: " + sHcl);
|
|
23
14
|
if (subs.length < 2)
|
|
@@ -29,18 +20,14 @@ export class HCL {
|
|
|
29
20
|
}
|
|
30
21
|
return new HCL(subs[1], subs[2]);
|
|
31
22
|
}
|
|
32
|
-
/** */
|
|
33
23
|
toString() {
|
|
34
24
|
let hcl = "cell:/" + this.appId + "/" + this.baseRoleName;
|
|
35
|
-
//const maybeCloneName = this.cloneId;
|
|
36
25
|
if (this.isClone()) {
|
|
37
26
|
hcl += "/" + this.cloneId;
|
|
38
27
|
}
|
|
39
28
|
return hcl;
|
|
40
29
|
}
|
|
41
|
-
/** */
|
|
42
30
|
isClone() { return this.cloneId !== undefined; }
|
|
43
|
-
/** */
|
|
44
31
|
match(hcl) {
|
|
45
32
|
if (this.appId != hcl.appId)
|
|
46
33
|
return false;
|
package/dist/hcl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hcl.js","sourceRoot":"","sources":["../src/hcl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hcl.js","sourceRoot":"","sources":["../src/hcl.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,GAAG;IAQd,YAAY,KAAqB,EAAE,IAAkB,EAAE,OAAiB;QAHxD,YAAO,GAAwB,SAAS,CAAC;QAIvD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAGD,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;IAAA,CAAC;IAIpF,MAAM,CAAC,KAAK,CAAC,IAAe;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO;YAAE,MAAM,KAAK,CAAC,iCAAiC,GAAG,IAAI,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,KAAK,CAAC,qDAAqD,GAAG,IAAI,CAAC,CAAC;QAC/F,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,KAAK,CAAC,sDAAsD,GAAG,IAAI,CAAC,CAAC;QAChG,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IACrC,CAAC;IAID,QAAQ;QACN,IAAI,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAA;QAEzD,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACnB,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAID,OAAO,KAAa,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAA,CAAC;IAIvD,KAAK,CAAC,GAAQ;QACZ,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAAE,OAAO,KAAK,CAAC;YAClC,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CAEF","sourcesContent":["import {InstalledAppId} from \"@holochain/client\";\nimport {BaseRoleName, CloneId} from \"./types\";\n\n\n/** -- HCL: Holochain Cell Locator -- */\n\nexport type HCLString = string;\n\n/**\n * `cell:/<appId>/<BaseRoleName>/<cloneId>`\n * Examples\n * `cell:/where/profiles`\n * `cell:/chatApp/channel/channel.2`\n */\nexport class HCL {\n\n public readonly appId: InstalledAppId;\n public readonly baseRoleName: BaseRoleName;\n /** A Cell can have a cloneId if it's a cloneCell */\n public readonly cloneId: CloneId | undefined = undefined;\n\n /** Ctor */\n constructor(appId: InstalledAppId, role: BaseRoleName, cloneId?: CloneId) {\n this.appId = appId;\n this.baseRoleName = role;\n this.cloneId = cloneId;\n }\n\n /** */\n get roleName(): string { return this.isClone()? this.cloneId! : this.baseRoleName };\n\n\n /** */\n static parse(sHcl: HCLString): HCL {\n const subs = sHcl.split('/');\n //console.log({subs});\n if (subs[0] !== \"cell:\") throw Error(\"HCL.parse() Bad string format: \" + sHcl);\n if (subs.length < 2) throw Error(\"HCL.parse() Bad string format. Too few components: \" + sHcl);\n if (subs.length > 4) throw Error(\"HCL.parse() Bad string format. Too many components: \" + sHcl);\n if (subs.length == 4) {\n return new HCL(subs[1]!, subs[2]!, subs[3]);\n }\n return new HCL(subs[1]!, subs[2]!);\n }\n\n\n /** */\n toString(): HCLString {\n let hcl = \"cell:/\" + this.appId + \"/\" + this.baseRoleName\n //const maybeCloneName = this.cloneId;\n if (this.isClone()) {\n hcl += \"/\" + this.cloneId\n }\n return hcl;\n }\n\n\n /** */\n isClone(): boolean {return this.cloneId !== undefined;}\n\n\n /** */\n match(hcl: HCL): boolean {\n if (this.appId != hcl.appId) return false;\n if (this.baseRoleName != hcl.baseRoleName) return false;\n if (hcl.isClone()) {\n if (!this.isClone()) return false;\n if (hcl.cloneId != this.cloneId) return false;\n }\n return true;\n }\n\n}\n"]}
|
|
@@ -6,7 +6,7 @@ export declare class HolochainIdMap<K extends HolochainId, V> implements Map<K,
|
|
|
6
6
|
_map: Map<HoloHashB64, V>;
|
|
7
7
|
constructor(_ctor: GConstructor<K>, initialEntries?: Array<[K, V]>);
|
|
8
8
|
has(key: K): boolean;
|
|
9
|
-
get(key: K): V;
|
|
9
|
+
get(key: K): V | undefined;
|
|
10
10
|
set(key: K, value: V): this;
|
|
11
11
|
delete(key: K): boolean;
|
|
12
12
|
values(): IterableIterator<V>;
|
|
@@ -32,3 +32,4 @@ export declare class EntryIdMap<T> extends HolochainIdMap<EntryId, T> {
|
|
|
32
32
|
}
|
|
33
33
|
export declare class AnyIdMap<T> extends Map<HoloHashB64, T> {
|
|
34
34
|
}
|
|
35
|
+
//# sourceMappingURL=holochain-id-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"holochain-id-map.d.ts","sourceRoot":"","sources":["../src/holochain-id-map.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAC,MAAM,QAAQ,CAAC;AACtE,OAAO,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AAGtC,qBAAa,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,CAAE,YAAW,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAG5D,OAAO,CAAC,KAAK;IAFzB,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAEN,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAS1E,GAAG,CAAC,GAAG,EAAE,CAAC;IAIV,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAI1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAK3B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIvB,MAAM;IAIN,IAAI;IAMJ,OAAO;IAMP,KAAK;IAIL,OAAO,CACL,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EACtD,OAAO,CAAC,EAAE,GAAG,GACZ,IAAI;IAMP,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAI7C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;CACF;AAID,qBAAa,WAAW,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACjD,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;CAGlD;AAED,qBAAa,UAAU,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/C,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CAGjD;AAED,qBAAa,QAAQ,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3C,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CAG/C;AAED,qBAAa,UAAU,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/C,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CAGjD;AAsBD,qBAAa,QAAQ,CAAC,CAAC,CAAE,SAAQ,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;CAAG"}
|
package/dist/holochain-id-map.js
CHANGED
|
@@ -71,23 +71,6 @@ export class EntryIdMap extends HolochainIdMap {
|
|
|
71
71
|
super(EntryId, initialEntries);
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
//
|
|
75
|
-
// export class DhtIdMap<T> extends HolochainIdMap<DhtId, T> {
|
|
76
|
-
// constructor(initialEntries?: Array<[DhtId, T]>) {
|
|
77
|
-
// super(HoloHashB64, initialEntries)
|
|
78
|
-
// }
|
|
79
|
-
// }
|
|
80
|
-
//
|
|
81
|
-
// export class LinkableIdMap<T> extends HolochainIdMap<LinkableId, T> {
|
|
82
|
-
// constructor(initialEntries?: Array<[LinkableId, T]>) {
|
|
83
|
-
// super(LinkableId, initialEntries)
|
|
84
|
-
// }
|
|
85
|
-
// }
|
|
86
|
-
// export class AnyIdMap<T> extends HolochainIdMap<AnyId, T> {
|
|
87
|
-
// constructor(initialEntries?: Array<[AnyId, T]>) {
|
|
88
|
-
// super(AnyId, initialEntries)
|
|
89
|
-
// }
|
|
90
|
-
// }
|
|
91
74
|
export class AnyIdMap extends Map {
|
|
92
75
|
}
|
|
93
76
|
//# sourceMappingURL=holochain-id-map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"holochain-id-map.js","sourceRoot":"","sources":["../src/holochain-id-map.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAc,MAAM,QAAQ,CAAC;AAItE,MAAM,OAAO,cAAc;IAGzB,YAAoB,KAAsB,EAAE,cAA8B;QAAtD,UAAK,GAAL,KAAK,CAAiB;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,cAAc,EAAE;
|
|
1
|
+
{"version":3,"file":"holochain-id-map.js","sourceRoot":"","sources":["../src/holochain-id-map.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n HoloHashB64,\n} from \"@holochain/client\";\nimport {ActionId, AgentId, DnaId, EntryId, HolochainId} from \"./hash\";\nimport {GConstructor} from \"./mixins\";\n\n\nexport class HolochainIdMap<K extends HolochainId, V> implements Map<K, V> {\n _map: Map<HoloHashB64, V>;\n\n constructor(private _ctor: GConstructor<K>, initialEntries?: Array<[K, V]>) {\n this._map = new Map();\n if (initialEntries) {\n for (const [key, value] of initialEntries) {\n this.set(key, value);\n }\n }\n }\n\n has(key: K) {\n return this._map.has(key.b64);\n }\n\n get(key: K): V | undefined {\n return this._map.get(key.b64);\n }\n\n set(key: K, value: V): this {\n this._map.set(key.b64, value);\n return this;\n }\n\n delete(key: K): boolean {\n return this._map.delete(key.b64);\n }\n\n values() {\n return this._map.values();\n }\n\n keys() {\n return Array.from(this._map.keys())\n .map((h) => new this._ctor(h))\n [Symbol.iterator]();\n }\n\n entries() {\n return Array.from(this._map.entries())\n .map(([h, v]) => [new this._ctor(h), v] as [K, V])\n [Symbol.iterator]();\n }\n\n clear() {\n return this._map.clear();\n }\n\n forEach(\n callbackfn: (value: V, key: K, map: Map<K, V>) => void,\n thisArg?: any\n ): void {\n return this._map.forEach((value, key) => {\n callbackfn(value, new this._ctor(key), this);\n }, thisArg);\n }\n\n get size(): number {\n return this._map.size;\n }\n\n [Symbol.iterator](): IterableIterator<[K, V]> {\n return this.entries();\n }\n\n get [Symbol.toStringTag](): string {\n return this._map[Symbol.toStringTag];\n }\n}\n\n\n\nexport class ActionIdMap<T> extends HolochainIdMap<ActionId, T> {\n constructor(initialEntries?: Array<[ActionId, T]>) {\n super(ActionId, initialEntries)\n }\n}\n\nexport class AgentIdMap<T> extends HolochainIdMap<AgentId, T> {\n constructor(initialEntries?: Array<[AgentId, T]>) {\n super(AgentId, initialEntries)\n }\n}\n\nexport class DnaIdMap<T> extends HolochainIdMap<DnaId, T> {\n constructor(initialEntries?: Array<[DnaId, T]>) {\n super(DnaId, initialEntries)\n }\n}\n\nexport class EntryIdMap<T> extends HolochainIdMap<EntryId, T> {\n constructor(initialEntries?: Array<[EntryId, T]>) {\n super(EntryId, initialEntries)\n }\n}\n\n//\n// export class DhtIdMap<T> extends HolochainIdMap<DhtId, T> {\n// constructor(initialEntries?: Array<[DhtId, T]>) {\n// super(HoloHashB64, initialEntries)\n// }\n// }\n//\n// export class LinkableIdMap<T> extends HolochainIdMap<LinkableId, T> {\n// constructor(initialEntries?: Array<[LinkableId, T]>) {\n// super(LinkableId, initialEntries)\n// }\n// }\n\n\n// export class AnyIdMap<T> extends HolochainIdMap<AnyId, T> {\n// constructor(initialEntries?: Array<[AnyId, T]>) {\n// super(AnyId, initialEntries)\n// }\n// }\n\nexport class AnyIdMap<T> extends Map<HoloHashB64, T> {}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
|
package/dist/mixins.d.ts
CHANGED
|
@@ -6,28 +6,17 @@ export type Constructor<T> = {
|
|
|
6
6
|
export type GConstructor<T = {}> = new (...args: any[]) => T;
|
|
7
7
|
export type AbstractConstructor<T = {}> = abstract new (...args: any[]) => T;
|
|
8
8
|
export declare class Empty {
|
|
9
|
-
constructor(...
|
|
9
|
+
constructor(..._args: any[]);
|
|
10
10
|
}
|
|
11
|
-
/** ------------------------------------------------------------------------------------------- **/
|
|
12
|
-
/**
|
|
13
|
-
* Mixin for Cell bound classes.
|
|
14
|
-
* A Cell bound class must have a "Provisioned" or "Cloned" cell from @holochain/client
|
|
15
|
-
*/
|
|
16
11
|
export declare function CellMixin<TBase extends AbstractConstructor>(Base: TBase): (abstract new (...args: any[]) => {
|
|
17
12
|
_cell?: Cell;
|
|
18
13
|
readonly cell: Cell;
|
|
19
14
|
}) & TBase;
|
|
20
|
-
/** ------------------------------------------------------------------------------------------- **/
|
|
21
|
-
/**
|
|
22
|
-
* Mixin for Zome bound classes.
|
|
23
|
-
* A Zome bound class must have a zome name and a list of zome functions
|
|
24
|
-
*/
|
|
25
15
|
export declare function ZomeMixin<TBase extends AbstractConstructor>(Base: TBase): ((abstract new (...args: any[]) => {
|
|
26
16
|
zomeName: ZomeName;
|
|
27
17
|
readonly defaultZomeName: string;
|
|
28
18
|
readonly entryTypes: string[];
|
|
29
19
|
readonly linkTypes: string[];
|
|
30
|
-
/** Tuple array with zome name */
|
|
31
20
|
readonly fnNames: [string, string][];
|
|
32
21
|
}) & {
|
|
33
22
|
readonly DEFAULT_ZOME_NAME: ZomeName;
|
|
@@ -40,7 +29,6 @@ export declare const ZomeSpecific: ((abstract new (...args: any[]) => {
|
|
|
40
29
|
readonly defaultZomeName: string;
|
|
41
30
|
readonly entryTypes: string[];
|
|
42
31
|
readonly linkTypes: string[];
|
|
43
|
-
/** Tuple array with zome name */
|
|
44
32
|
readonly fnNames: [string, string][];
|
|
45
33
|
}) & {
|
|
46
34
|
readonly DEFAULT_ZOME_NAME: ZomeName;
|
|
@@ -48,3 +36,4 @@ export declare const ZomeSpecific: ((abstract new (...args: any[]) => {
|
|
|
48
36
|
readonly LINK_TYPES: string[];
|
|
49
37
|
readonly FN_NAMES: FunctionName[];
|
|
50
38
|
}) & typeof Empty;
|
|
39
|
+
//# sourceMappingURL=mixins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixins.d.ts","sourceRoot":"","sources":["../src/mixins.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAAC,QAAQ,CAAC,CAAA;CAAC,CAAC;AACzC,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAC7D,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAG5E,qBAAa,KAAK;gBACJ,GAAG,KAAK,EAAE,GAAG,EAAE;CAC5B;AASD,wBAAgB,SAAS,CAAC,KAAK,SAAS,mBAAmB,EAAE,IAAI,EAAE,KAAK,2BAdP,GAAG,EAAE;YAmB1D,IAAI;;WAOf;AAYD,wBAAgB,SAAS,CAAC,KAAK,SAAS,mBAAmB,EAAE,IAAI,EAAE,KAAK,4BAS/C,GAAG,EAAE;cANhB,QAAQ;;;;;;gCACiB,QAAQ;0BACd,MAAM,EAAE;yBACT,MAAM,EAAE;uBACV,YAAY,EAAE;WAgC3C;AAED,eAAO,MAAM,YAAY,2BAhCA,GAAG,EAAE;cANhB,QAAQ;;;;;;gCACiB,QAAQ;0BACd,MAAM,EAAE;yBACT,MAAM,EAAE;uBACV,YAAY,EAAE;iBAkCA,CAAC"}
|
package/dist/mixins.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
export class Empty {
|
|
2
|
-
constructor(...
|
|
2
|
+
constructor(..._args) { }
|
|
3
3
|
}
|
|
4
|
-
/** ------------------------------------------------------------------------------------------- **/
|
|
5
|
-
/**
|
|
6
|
-
* Mixin for Cell bound classes.
|
|
7
|
-
* A Cell bound class must have a "Provisioned" or "Cloned" cell from @holochain/client
|
|
8
|
-
*/
|
|
9
4
|
export function CellMixin(Base) {
|
|
10
5
|
class ACell extends Base {
|
|
11
6
|
get cell() { if (!this._cell)
|
|
@@ -13,12 +8,6 @@ export function CellMixin(Base) {
|
|
|
13
8
|
}
|
|
14
9
|
return ACell;
|
|
15
10
|
}
|
|
16
|
-
//export const CellSpecific = CellMixin(Empty);
|
|
17
|
-
/** ------------------------------------------------------------------------------------------- **/
|
|
18
|
-
/**
|
|
19
|
-
* Mixin for Zome bound classes.
|
|
20
|
-
* A Zome bound class must have a zome name and a list of zome functions
|
|
21
|
-
*/
|
|
22
11
|
export function ZomeMixin(Base) {
|
|
23
12
|
class AZomeSpecific extends Base {
|
|
24
13
|
constructor(...args) {
|
|
@@ -34,7 +23,6 @@ export function ZomeMixin(Base) {
|
|
|
34
23
|
get linkTypes() {
|
|
35
24
|
return this.constructor.LINK_TYPES;
|
|
36
25
|
}
|
|
37
|
-
/** Tuple array with zome name */
|
|
38
26
|
get fnNames() {
|
|
39
27
|
const fnNames = this.constructor.FN_NAMES;
|
|
40
28
|
if (!fnNames) {
|
package/dist/mixins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixins.js","sourceRoot":"","sources":["../src/mixins.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,KAAK;IAChB,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"mixins.js","sourceRoot":"","sources":["../src/mixins.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,KAAK;IAChB,YAAY,GAAG,KAAY,IAAG,CAAC;CAChC;AASD,MAAM,UAAU,SAAS,CAAoC,IAAW;IACtE,MAAe,KAAM,SAAQ,IAAI;QAM/B,IAAI,IAAI,KAAW,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAE,CAAC,OAAO,IAAI,CAAC,KAAM,CAAA,CAAC,CAAC;KAExG;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAYD,MAAM,UAAU,SAAS,CAAoC,IAAW;IACtE,MAAe,aAAc,SAAQ,IAAI;QAQvC,YAAY,GAAG,IAAW;YACxB,KAAK,CAAC,IAAI,CAAC,CAAC;YACZ,IAAI,CAAC,QAAQ,GAAI,IAAI,CAAC,WAAoC,CAAC,iBAAiB,CAAA;QAC9E,CAAC;QAED,IAAI,eAAe;YACjB,OAAQ,IAAI,CAAC,WAAoC,CAAC,iBAAiB,CAAC;QACtE,CAAC;QAED,IAAI,UAAU;YACZ,OAAQ,IAAI,CAAC,WAAoC,CAAC,WAAW,CAAC;QAChE,CAAC;QACD,IAAI,SAAS;YACX,OAAQ,IAAI,CAAC,WAAoC,CAAC,UAAU,CAAC;QAC/D,CAAC;QAID,IAAI,OAAO;YACT,MAAM,OAAO,GAAI,IAAI,CAAC,WAAoC,CAAC,QAAQ,CAAC;YACpE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,KAAK,CAAC,6CAA6C,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACrF,CAAC;YACD,OAAQ,OAA0B,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAChC,CAAC,CAAC,CAAA;QACJ,CAAC;KACF;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC","sourcesContent":["import {\n FunctionName,\n ZomeName\n} from \"@holochain/client\";\nimport {Cell} from \"./cell\";\n\nexport type Constructor<T> = {new (): T};\nexport type GConstructor<T = {}> = new (...args: any[]) => T;\nexport type AbstractConstructor<T = {}> = abstract new (...args: any[]) => T\n\n\nexport class Empty {\n constructor(..._args: any[]) {}\n}\n\n\n/** ------------------------------------------------------------------------------------------- **/\n\n/**\n * Mixin for Cell bound classes.\n * A Cell bound class must have a \"Provisioned\" or \"Cloned\" cell from @holochain/client\n */\nexport function CellMixin<TBase extends AbstractConstructor>(Base: TBase) {\n abstract class ACell extends Base {\n // constructor(...args: any[]){\n // super(args);\n // }\n _cell?: Cell;\n\n get cell(): Cell { if (!this._cell) throw Error(\"Cell field not set for object\") ; return this._cell! }\n\n }\n\n return ACell;\n}\n\n//export const CellSpecific = CellMixin(Empty);\n\n\n\n/** ------------------------------------------------------------------------------------------- **/\n\n/**\n * Mixin for Zome bound classes.\n * A Zome bound class must have a zome name and a list of zome functions\n */\nexport function ZomeMixin<TBase extends AbstractConstructor>(Base: TBase) {\n abstract class AZomeSpecific extends Base {\n\n zomeName: ZomeName;\n static readonly DEFAULT_ZOME_NAME: ZomeName;\n static readonly ENTRY_TYPES: string[];\n static readonly LINK_TYPES: string[];\n static readonly FN_NAMES: FunctionName[];\n\n constructor(...args: any[]){\n super(args);\n this.zomeName = (this.constructor as typeof AZomeSpecific).DEFAULT_ZOME_NAME\n }\n\n get defaultZomeName(): ZomeName {\n return (this.constructor as typeof AZomeSpecific).DEFAULT_ZOME_NAME;\n }\n\n get entryTypes(): string[] {\n return (this.constructor as typeof AZomeSpecific).ENTRY_TYPES;\n }\n get linkTypes(): string[] {\n return (this.constructor as typeof AZomeSpecific).LINK_TYPES;\n }\n\n\n /** Tuple array with zome name */\n get fnNames(): [ZomeName, FunctionName][] {\n const fnNames = (this.constructor as typeof AZomeSpecific).FN_NAMES;\n if (!fnNames) {\n throw Error(\"FN_NAMES not defined in ZomeProxy subclass \" + this.constructor.name);\n }\n return (fnNames as FunctionName[]).map((fnName) => {\n return [this.zomeName, fnName]\n })\n }\n }\n\n return AZomeSpecific;\n}\n\nexport const ZomeSpecific = ZomeMixin(Empty);\n"]}
|