@vibes.diy/identity 2.6.19 → 2.7.1

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.
@@ -0,0 +1,12 @@
1
+ import type { URI } from "@adviser/cement";
2
+ import type { SuperThis } from "@fireproof/core-types-base";
3
+ export declare class KeyBagProviderFile {
4
+ #private;
5
+ readonly url: URI;
6
+ readonly logger: SuperThis["logger"];
7
+ readonly sthis: SuperThis;
8
+ constructor(url: URI, sthis: SuperThis);
9
+ del(id: string): Promise<void>;
10
+ get(id: string): Promise<unknown>;
11
+ set(id: string, item: unknown): Promise<void>;
12
+ }
@@ -0,0 +1,64 @@
1
+ import { Result } from "@adviser/cement";
2
+ import { sysFileSystemFactory } from "./sys-file-system/factory.js";
3
+ function isNotFoundError(e) {
4
+ let err = e;
5
+ if (Result.Is(err)) {
6
+ if (err.isOk())
7
+ return false;
8
+ err = err.Err();
9
+ }
10
+ return err?.code === "ENOENT";
11
+ }
12
+ export class KeyBagProviderFile {
13
+ url;
14
+ logger;
15
+ sthis;
16
+ constructor(url, sthis) {
17
+ this.url = url;
18
+ this.sthis = sthis;
19
+ this.logger = sthis.logger;
20
+ }
21
+ async #prepare(id) {
22
+ await this.sthis.start();
23
+ const sysFS = await sysFileSystemFactory(this.url);
24
+ const dirName = this.url.pathname;
25
+ await sysFS.mkdir(dirName, { recursive: true });
26
+ return {
27
+ dirName,
28
+ sysFS,
29
+ fName: this.sthis.pathOps.join(dirName, `${id.replace(/[^a-zA-Z0-9]/g, "_")}.json`),
30
+ };
31
+ }
32
+ async del(id) {
33
+ const ctx = await this.#prepare(id);
34
+ try {
35
+ await ctx.sysFS.unlink(ctx.fName);
36
+ }
37
+ catch (e) {
38
+ if (isNotFoundError(e)) {
39
+ return;
40
+ }
41
+ throw this.logger.Error().Err(e).Any("file", ctx).Msg("delete bag failed").AsError();
42
+ }
43
+ }
44
+ async get(id) {
45
+ const ctx = await this.#prepare(id);
46
+ try {
47
+ const p = await ctx.sysFS.readfile(ctx.fName);
48
+ const ki = JSON.parse(this.sthis.txt.decode(p));
49
+ return ki;
50
+ }
51
+ catch (e) {
52
+ if (isNotFoundError(e)) {
53
+ return undefined;
54
+ }
55
+ throw this.logger.Error().Err(e).Any("file", ctx).Msg("read bag failed").AsError();
56
+ }
57
+ }
58
+ async set(id, item) {
59
+ const ctx = await this.#prepare(id);
60
+ const p = this.sthis.txt.encode(JSON.stringify(item, null, 2));
61
+ await ctx.sysFS.writefile(ctx.fName, p);
62
+ }
63
+ }
64
+ //# sourceMappingURL=key-bag-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-bag-file.js","sourceRoot":"","sources":["../../jsr/keybag/key-bag-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { URI } from "@adviser/cement";
2
+ import type { SuperThis } from "@fireproof/core-types-base";
3
+ export declare class KeyBagProviderMemory {
4
+ #private;
5
+ readonly url: URI;
6
+ readonly sthis: SuperThis;
7
+ constructor(url: URI, sthis: SuperThis);
8
+ del(id: string): Promise<void>;
9
+ get(id: string): Promise<unknown>;
10
+ set(id: string, item: unknown): Promise<void>;
11
+ }
@@ -0,0 +1,36 @@
1
+ const memoryKeyBag = new Map();
2
+ export class KeyBagProviderMemory {
3
+ url;
4
+ sthis;
5
+ constructor(url, sthis) {
6
+ this.url = url;
7
+ this.sthis = sthis;
8
+ }
9
+ #key(id) {
10
+ return `${this.url.pathname}/${id}`;
11
+ }
12
+ del(id) {
13
+ const key = this.#key(id);
14
+ if (memoryKeyBag.has(key)) {
15
+ memoryKeyBag.delete(key);
16
+ }
17
+ return Promise.resolve();
18
+ }
19
+ async get(id) {
20
+ const binKeyItem = memoryKeyBag.get(this.#key(id));
21
+ if (binKeyItem) {
22
+ try {
23
+ const ki = JSON.parse(this.sthis.txt.decode(binKeyItem));
24
+ return ki;
25
+ }
26
+ catch {
27
+ }
28
+ }
29
+ return undefined;
30
+ }
31
+ async set(id, item) {
32
+ const p = this.sthis.txt.encode(JSON.stringify(item, null, 2));
33
+ memoryKeyBag.set(this.#key(id), p);
34
+ }
35
+ }
36
+ //# sourceMappingURL=key-bag-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-bag-memory.js","sourceRoot":"","sources":["../../jsr/keybag/key-bag-memory.ts"],"names":[],"mappings":"AAOA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAsB,CAAC;AAEnD,MAAM,OAAO,oBAAoB;IACtB,GAAG,CAAM;IACT,KAAK,CAAY;IAC1B,YAAY,GAAQ,EAAE,KAAgB;QACpC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,EAAU;QACb,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;IACtC,CAAC;IACD,GAAG,CAAC,EAAU;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;gBACzD,OAAO,EAAE,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,IAAa;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import type { URI } from "@adviser/cement";
2
+ import type { SuperThis, DeviceIdResult, JWKPrivate, DeviceIdKeyBagItem } from "@fireproof/core-types-base";
3
+ export interface KeyBagProvider {
4
+ get(id: string): Promise<unknown>;
5
+ set(id: string, item: unknown): Promise<void>;
6
+ del(id: string): Promise<void>;
7
+ }
8
+ export interface KeyBagRuntime {
9
+ readonly url: URI;
10
+ readonly sthis: SuperThis;
11
+ getBagProvider(): Promise<KeyBagProvider>;
12
+ id(): string;
13
+ }
14
+ export declare class KeyBag {
15
+ #private;
16
+ readonly rt: KeyBagRuntime;
17
+ static create(rt: KeyBagRuntime): Promise<KeyBag>;
18
+ private constructor();
19
+ provider: () => Promise<KeyBagProvider>;
20
+ getDeviceId(): Promise<DeviceIdResult>;
21
+ setDeviceId(_deviceId: JWKPrivate, _cert?: DeviceIdKeyBagItem["cert"]): Promise<DeviceIdResult>;
22
+ }
@@ -0,0 +1,79 @@
1
+ import { KeyedResolvOnce, Lazy, Option } from "@adviser/cement";
2
+ import { hashStringAsync, hashStringSync } from "@fireproof/core-runtime";
3
+ import { z } from "zod";
4
+ import { JWKPrivateSchema } from "../types/wire.js";
5
+ import { CertificatePayloadSchema } from "../types/cert-payload.js";
6
+ const KeyedDeviceIdKeyBagItemSchema = z
7
+ .object({
8
+ id: z.string(),
9
+ clazz: z.literal("DeviceIdKeyBagItem"),
10
+ item: z
11
+ .object({
12
+ deviceId: JWKPrivateSchema,
13
+ cert: z
14
+ .object({
15
+ certificateJWT: z.string(),
16
+ certificatePayload: CertificatePayloadSchema,
17
+ })
18
+ .readonly()
19
+ .optional(),
20
+ })
21
+ .readonly(),
22
+ })
23
+ .readonly();
24
+ const deviceIdKey = hashStringSync("FIREProof:deviceId");
25
+ const namedKeyItemsPerUrl = new Map();
26
+ export class KeyBag {
27
+ rt;
28
+ #namedKeyItems;
29
+ static async create(rt) {
30
+ const urlHash = await hashStringAsync(rt.url.toJSON());
31
+ const namedKeyItems = namedKeyItemsPerUrl.get(urlHash) ?? new KeyedResolvOnce();
32
+ return new KeyBag(rt, namedKeyItems);
33
+ }
34
+ constructor(rt, namedKeyItems) {
35
+ this.rt = rt;
36
+ this.#namedKeyItems = namedKeyItems;
37
+ }
38
+ provider = Lazy(() => this.rt.getBagProvider());
39
+ async getDeviceId() {
40
+ const id = deviceIdKey;
41
+ return this.#namedKeyItems.get(id).once(async () => {
42
+ const raw = await this.provider().then((p) => p.get(id));
43
+ const r = KeyedDeviceIdKeyBagItemSchema.safeParse(raw);
44
+ let error = undefined;
45
+ if (!r.success) {
46
+ error = r.error;
47
+ return {
48
+ deviceId: Option.None(),
49
+ cert: Option.None(),
50
+ error,
51
+ };
52
+ }
53
+ return {
54
+ deviceId: Option.Some(r.data.item.deviceId),
55
+ cert: Option.From(r.data.item.cert),
56
+ error,
57
+ };
58
+ });
59
+ }
60
+ async setDeviceId(_deviceId, _cert) {
61
+ const id = deviceIdKey;
62
+ this.#namedKeyItems.unget(id);
63
+ return this.#namedKeyItems.get(id).once(async () => {
64
+ await this.provider().then((p) => p.set(id, {
65
+ id,
66
+ clazz: "DeviceIdKeyBagItem",
67
+ item: {
68
+ deviceId: _deviceId,
69
+ cert: _cert,
70
+ },
71
+ }));
72
+ return {
73
+ deviceId: Option.Some(_deviceId),
74
+ cert: Option.From(_cert),
75
+ };
76
+ });
77
+ }
78
+ }
79
+ //# sourceMappingURL=key-bag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-bag.js","sourceRoot":"","sources":["../../jsr/keybag/key-bag.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { URI } from "@adviser/cement";
2
+ import type { SuperThis } from "@fireproof/core-types-base";
3
+ import { KeyBag } from "./key-bag.js";
4
+ export declare function defaultKeyBagUrl(sthis: SuperThis): URI;
5
+ export declare function getKeyBag(sthis: SuperThis, kbo?: {
6
+ readonly url?: URI | string;
7
+ }): Promise<KeyBag>;
@@ -0,0 +1,55 @@
1
+ import { URI, runtimeFn, KeyedResolvOnce } from "@adviser/cement";
2
+ import { KeyBag } from "./key-bag.js";
3
+ import { KeyBagProviderFile } from "./key-bag-file.js";
4
+ import { KeyBagProviderMemory } from "./key-bag-memory.js";
5
+ const keyBagProviderFactories = new Map([
6
+ {
7
+ protocol: "file:",
8
+ factory: async (url, sthis) => new KeyBagProviderFile(url, sthis),
9
+ },
10
+ {
11
+ protocol: "memory:",
12
+ factory: async (url, sthis) => new KeyBagProviderMemory(url, sthis),
13
+ },
14
+ ].map((i) => [i.protocol, i]));
15
+ export function defaultKeyBagUrl(sthis) {
16
+ let bagFnameOrUrl = sthis.env.get("FP_KEYBAG_URL");
17
+ let url;
18
+ if (runtimeFn().isBrowser) {
19
+ url = URI.from(bagFnameOrUrl || "indexeddb://fp-keybag");
20
+ }
21
+ else {
22
+ if (!bagFnameOrUrl) {
23
+ const home = sthis.env.get("HOME");
24
+ bagFnameOrUrl = `${home}/.fireproof/keybag`;
25
+ url = URI.from(`file://${bagFnameOrUrl}`);
26
+ }
27
+ else {
28
+ url = URI.from(bagFnameOrUrl);
29
+ }
30
+ }
31
+ return url;
32
+ }
33
+ function defaultKeyBagOpts(sthis, kbo) {
34
+ const url = kbo.url ? URI.from(kbo.url) : defaultKeyBagUrl(sthis);
35
+ const kitem = keyBagProviderFactories.get(url.protocol);
36
+ if (!kitem) {
37
+ throw new Error(`unsupported protocol: ${url.toString()}`);
38
+ }
39
+ if (url.hasParam("masterkey")) {
40
+ throw new Error(`masterkey is not supported: ${url.toString()}`);
41
+ }
42
+ return {
43
+ url,
44
+ sthis,
45
+ getBagProvider: () => kitem.factory(url, sthis),
46
+ id: () => url.toString(),
47
+ };
48
+ }
49
+ const _keyBags = new KeyedResolvOnce();
50
+ export async function getKeyBag(sthis, kbo = {}) {
51
+ await sthis.start();
52
+ const rt = defaultKeyBagOpts(sthis, kbo);
53
+ return _keyBags.get(rt.id()).once(() => KeyBag.create(rt));
54
+ }
55
+ //# sourceMappingURL=keybag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keybag.js","sourceRoot":"","sources":["../../jsr/keybag/keybag.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAE,MAAM,EAA2C,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAO3D,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAEnC;IACE;QACE,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,KAAK,EAAE,GAAQ,EAAE,KAAgB,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC;KAClF;IACD;QACE,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,KAAK,EAAE,GAAQ,EAAE,KAAgB,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC;KACpF;CAEJ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC9B,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAC/C,IAAI,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnD,IAAI,GAAQ,CAAC;IACb,IAAI,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC;QAC1B,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,uBAAuB,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnC,aAAa,GAAG,GAAG,IAAI,oBAAoB,CAAC;YAC5C,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,aAAa,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAgB,EAAE,GAAoC;IAC/E,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO;QACL,GAAG;QACH,KAAK;QACL,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;QAC/C,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAU,CAAC;AAC/C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAgB,EAAE,GAAG,GAAoC,EAAE;IACzF,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,MAAM,EAAE,GAAG,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { SysFileSystem } from "@fireproof/core-types-base";
2
+ export declare class DenoFileSystem implements SysFileSystem {
3
+ fs: () => typeof Deno;
4
+ start(): Promise<SysFileSystem>;
5
+ mkdir(path: string, options?: {
6
+ recursive: boolean;
7
+ }): Promise<string | undefined>;
8
+ readdir(path: string): Promise<string[]>;
9
+ rm(path: string, options?: {
10
+ recursive: boolean;
11
+ }): Promise<void>;
12
+ copyFile(source: string, destination: string): Promise<void>;
13
+ readfile(path: string): Promise<Uint8Array>;
14
+ stat(path: string): Promise<import("fs").Stats>;
15
+ unlink(path: string): Promise<void>;
16
+ writefile(path: string, data: Uint8Array | string): Promise<void>;
17
+ }
@@ -0,0 +1,58 @@
1
+ import { Lazy, to_uint8 } from "@adviser/cement";
2
+ export class DenoFileSystem {
3
+ fs = Lazy(() => {
4
+ return Deno;
5
+ });
6
+ async start() {
7
+ return this;
8
+ }
9
+ async mkdir(path, options) {
10
+ return this.fs()
11
+ .mkdir(path, options)
12
+ .then(() => path);
13
+ }
14
+ async readdir(path) {
15
+ const ret = [];
16
+ for await (const dirEntry of this.fs().readDir(path)) {
17
+ ret.push(dirEntry.name);
18
+ }
19
+ return ret;
20
+ }
21
+ async rm(path, options) {
22
+ return this.fs().remove(path, options);
23
+ }
24
+ async copyFile(source, destination) {
25
+ return this.fs().copyFile(source, destination);
26
+ }
27
+ async readfile(path) {
28
+ const ret = await this.fs().readFile(path);
29
+ return ret;
30
+ }
31
+ async stat(path) {
32
+ const x = await this.fs().stat(path);
33
+ return {
34
+ isFile: () => x.isFile,
35
+ isDirectory: () => x.isDirectory,
36
+ isBlockDevice: () => !!x.isBlockDevice,
37
+ isCharacterDevice: () => !!x.isCharDevice,
38
+ isSymbolicLink: () => x.isSymlink,
39
+ isFIFO: () => !!x.isFifo,
40
+ isSocket: () => !!x.isSocket,
41
+ uid: x.uid,
42
+ gid: x.gid,
43
+ size: x.size,
44
+ atime: x.atime,
45
+ mtime: x.mtime,
46
+ ctime: x.birthtime,
47
+ birthtime: x.birthtime,
48
+ };
49
+ }
50
+ async unlink(path) {
51
+ return this.fs().remove(path);
52
+ }
53
+ async writefile(path, data) {
54
+ const toUint8 = to_uint8(data);
55
+ return this.fs().writeFile(path, toUint8);
56
+ }
57
+ }
58
+ //# sourceMappingURL=deno-filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deno-filesystem.js","sourceRoot":"","sources":["../../../jsr/keybag/sys-file-system/deno-filesystem.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGjD,MAAM,OAAO,cAAc;IACzB,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;QACb,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAgC;QACxD,OAAO,IAAI,CAAC,EAAE,EAAE;aACb,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;aACpB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,KAAK,CAAC,EAAE,CAAC,IAAY,EAAE,OAAgC;QACrD,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,WAAmB;QAChD,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,GAAG,CAAC;IACb,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO;YACL,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM;YACtB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW;YAChC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;YACtC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;YACzC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;YACjC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;YACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;YAC5B,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,SAAS;YAClB,SAAS,EAAE,CAAC,CAAC,SAAS;SAEhB,CAAC;IACX,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,IAAyB;QACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import type { URI } from "@adviser/cement";
2
+ import type { SysFileSystem } from "@fireproof/core-types-base";
3
+ export declare function sysFileSystemFactory(_uri: URI): Promise<SysFileSystem>;
@@ -0,0 +1,21 @@
1
+ import { runtimeFn, ResolveOnce } from "@adviser/cement";
2
+ const nodeFs = new ResolveOnce();
3
+ const denoFs = new ResolveOnce();
4
+ export function sysFileSystemFactory(_uri) {
5
+ const rt = runtimeFn();
6
+ switch (true) {
7
+ case rt.isNodeIsh:
8
+ return nodeFs.once(async () => {
9
+ const { NodeFileSystem } = await import("./node-filesystem.js");
10
+ return new NodeFileSystem().start();
11
+ });
12
+ case rt.isDeno:
13
+ return denoFs.once(async () => {
14
+ const { DenoFileSystem } = await import("./deno-filesystem.js");
15
+ return new DenoFileSystem().start();
16
+ });
17
+ default:
18
+ throw new Error(`unsupported runtime:${JSON.stringify(rt)}`);
19
+ }
20
+ }
21
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../jsr/keybag/sys-file-system/factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAIzD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAiB,CAAC;AAChD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAiB,CAAC;AAEhD,MAAM,UAAU,oBAAoB,CAAC,IAAS;IAC5C,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IACvB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,EAAE,CAAC,SAAS;YACf,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBAC5B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBAChE,OAAO,IAAI,cAAc,EAAE,CAAC,KAAK,EAAE,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,KAAK,EAAE,CAAC,MAAM;YACZ,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBAC5B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBAChE,OAAO,IAAI,cAAc,EAAE,CAAC,KAAK,EAAE,CAAC;YACtC,CAAC,CAAC,CAAC;QACL;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { SysFileSystem } from "@fireproof/core-types-base";
2
+ type FsPromises = typeof import("node:fs/promises");
3
+ export declare class NodeFileSystem implements SysFileSystem {
4
+ fs?: FsPromises;
5
+ start(): Promise<SysFileSystem>;
6
+ mkdir(path: string, options?: {
7
+ recursive: boolean;
8
+ }): Promise<string | undefined>;
9
+ readdir(path: string, options?: unknown): Promise<string[]>;
10
+ rm(path: string, options?: {
11
+ recursive: boolean;
12
+ }): Promise<void>;
13
+ copyFile(source: string, destination: string): Promise<void>;
14
+ readfile(path: string, options?: {
15
+ encoding: BufferEncoding;
16
+ flag?: string;
17
+ }): Promise<Uint8Array>;
18
+ stat(path: string): Promise<import("fs").Stats>;
19
+ unlink(path: string): Promise<void>;
20
+ writefile(path: string, data: Uint8Array | string): Promise<void>;
21
+ }
22
+ export {};
@@ -0,0 +1,35 @@
1
+ import { toArrayBuffer } from "./to-array-buffer.js";
2
+ export class NodeFileSystem {
3
+ fs;
4
+ async start() {
5
+ const fs = "fs/promises";
6
+ this.fs = (await import(fs));
7
+ return this;
8
+ }
9
+ async mkdir(path, options) {
10
+ return this.fs?.mkdir(path, options);
11
+ }
12
+ async readdir(path, options) {
13
+ return this.fs?.readdir(path, options);
14
+ }
15
+ async rm(path, options) {
16
+ return this.fs?.rm(path, options);
17
+ }
18
+ async copyFile(source, destination) {
19
+ return this.fs?.copyFile(source, destination);
20
+ }
21
+ async readfile(path, options) {
22
+ const ret = (await this.fs?.readFile(path, options));
23
+ return toArrayBuffer(ret);
24
+ }
25
+ stat(path) {
26
+ return this.fs.stat(path);
27
+ }
28
+ async unlink(path) {
29
+ return this.fs?.unlink(path);
30
+ }
31
+ async writefile(path, data) {
32
+ return this.fs?.writeFile(path, data);
33
+ }
34
+ }
35
+ //# sourceMappingURL=node-filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-filesystem.js","sourceRoot":"","sources":["../../../jsr/keybag/sys-file-system/node-filesystem.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,MAAM,OAAO,cAAc;IACzB,EAAE,CAAc;IAChB,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,GAAG,aAAa,CAAC;QACzB,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,CAAe,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAgC;QACxD,OAAO,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAiB;QAE3C,OAAO,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAc,CAAsB,CAAC;IACrE,CAAC;IACD,KAAK,CAAC,EAAE,CAAC,IAAY,EAAE,OAAgC;QACrD,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,WAAmB;QAChD,OAAO,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAqD;QAEhF,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAc,CAAC,CAAW,CAAC;QACtE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC,IAAY;QAEf,OAAO,IAAI,CAAC,EAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,IAAyB;QACrD,OAAO,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ import { Buffer } from "node:buffer";
2
+ export declare function toArrayBuffer(buffer: Buffer | string): Uint8Array;
@@ -0,0 +1,13 @@
1
+ import { Buffer } from "node:buffer";
2
+ export function toArrayBuffer(buffer) {
3
+ if (typeof buffer === "string") {
4
+ buffer = Buffer.from(buffer);
5
+ }
6
+ const ab = new ArrayBuffer(buffer.length);
7
+ const view = new Uint8Array(ab);
8
+ for (let i = 0; i < buffer.length; ++i) {
9
+ view[i] = buffer[i];
10
+ }
11
+ return view;
12
+ }
13
+ //# sourceMappingURL=to-array-buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-array-buffer.js","sourceRoot":"","sources":["../../../jsr/keybag/sys-file-system/to-array-buffer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,UAAU,aAAa,CAAC,MAAuB;IACnD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/node.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Result } from "@adviser/cement";
2
2
  import type { SuperThis } from "@fireproof/core-types-base";
3
3
  import type { DashAuthType } from "@fireproof/core-types-protocols-dashboard";
4
- export { getKeyBag } from "@fireproof/core-keybag";
4
+ export { getKeyBag } from "./keybag/keybag.js";
5
5
  export { DeviceIdKey } from "./device-id/key.js";
6
6
  export { DeviceIdSignMsg } from "./device-id/sign.js";
7
7
  export { DeviceIdCSR } from "./device-id/csr.js";
package/node.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Lazy, Result } from "@adviser/cement";
2
- import { getKeyBag } from "@fireproof/core-keybag";
2
+ import { getKeyBag } from "./keybag/keybag.js";
3
3
  import { DeviceIdKey } from "./device-id/key.js";
4
4
  import { DeviceIdSignMsg } from "./device-id/sign.js";
5
- export { getKeyBag } from "@fireproof/core-keybag";
5
+ export { getKeyBag } from "./keybag/keybag.js";
6
6
  export { DeviceIdKey } from "./device-id/key.js";
7
7
  export { DeviceIdSignMsg } from "./device-id/sign.js";
8
8
  export { DeviceIdCSR } from "./device-id/csr.js";
package/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../jsr/node.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMtD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAKnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI/C,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAiBpF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAgB,EAChB,IAAoE;IAEpE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,uDAAuD,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACpB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC,kBAAkB,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5E,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,IAAI,CACT,KAAK,IAAmC,EAAE;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAC7B;YACE,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE;YAC1C,GAAG,EAAE,EAAE,GAAG;YACV,GAAG,EAAE,GAAG,GAAG,GAAG;YACd,GAAG,EAAE,GAAG,GAAG,CAAC;YACZ,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG;SACI,EAC7B,OAAO,CACR,CAAC;QACF,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC,EACD,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../jsr/node.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQtD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAK/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI/C,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAiBpF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAgB,EAChB,IAAoE;IAEpE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,uDAAuD,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACpB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC,kBAAkB,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5E,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,IAAI,CACT,KAAK,IAAmC,EAAE;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAC7B;YACE,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE;YAC1C,GAAG,EAAE,EAAE,GAAG;YACV,GAAG,EAAE,GAAG,GAAG,GAAG;YACd,GAAG,EAAE,GAAG,GAAG,CAAC;YACZ,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG;SACI,EAC7B,OAAO,CACR,CAAC;QACF,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC,EACD,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CACpC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/identity",
3
- "version": "2.6.19",
3
+ "version": "2.7.1",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "exports": {
@@ -16,7 +16,6 @@
16
16
  "@adviser/cement": "~0.5.34",
17
17
  "@clerk/shared": "~4.6.0",
18
18
  "@fireproof/core-cli": "~0.24.19",
19
- "@fireproof/core-keybag": "~0.24.19",
20
19
  "@fireproof/core-runtime": "~0.24.19",
21
20
  "@fireproof/core-types-base": "~0.24.19",
22
21
  "@fireproof/core-types-device-id": "~0.24.19",