@authticon/client 0.0.0-beta3 → 0.0.0-beta31
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/Acccount.d.ts +9 -0
- package/dist/Acccount.d.ts.map +1 -0
- package/dist/Acccount.js +22 -0
- package/dist/Acccount.js.map +1 -0
- package/dist/Auth.d.ts +16 -6
- package/dist/Auth.d.ts.map +1 -1
- package/dist/Auth.js +28 -5
- package/dist/Auth.js.map +1 -1
- package/dist/Authticon.d.ts +195 -13
- package/dist/Authticon.d.ts.map +1 -1
- package/dist/Authticon.js +93 -5
- package/dist/Authticon.js.map +1 -1
- package/dist/Challange.d.ts +8 -0
- package/dist/Challange.d.ts.map +1 -0
- package/dist/Challange.js +24 -0
- package/dist/Challange.js.map +1 -0
- package/dist/CookieStorageAdapter.d.ts +15 -0
- package/dist/CookieStorageAdapter.d.ts.map +1 -0
- package/dist/CookieStorageAdapter.js +54 -0
- package/dist/CookieStorageAdapter.js.map +1 -0
- package/dist/CookieStorageAdapter.test.d.ts +2 -0
- package/dist/CookieStorageAdapter.test.d.ts.map +1 -0
- package/dist/CookieStorageAdapter.test.js +137 -0
- package/dist/CookieStorageAdapter.test.js.map +1 -0
- package/dist/InMemoryCacheAdapter.d.ts +3 -0
- package/dist/InMemoryCacheAdapter.d.ts.map +1 -0
- package/dist/InMemoryCacheAdapter.js +13 -0
- package/dist/InMemoryCacheAdapter.js.map +1 -0
- package/dist/InMemoryCacheAdapter.test.d.ts +2 -0
- package/dist/InMemoryCacheAdapter.test.d.ts.map +1 -0
- package/dist/InMemoryCacheAdapter.test.js +38 -0
- package/dist/InMemoryCacheAdapter.test.js.map +1 -0
- package/dist/Session.d.ts +10 -0
- package/dist/Session.d.ts.map +1 -0
- package/dist/Session.js +16 -0
- package/dist/Session.js.map +1 -0
- package/dist/TokenManager.d.ts +18 -8
- package/dist/TokenManager.d.ts.map +1 -1
- package/dist/TokenManager.js +25 -21
- package/dist/TokenManager.js.map +1 -1
- package/dist/TokenManager.test.js +27 -25
- package/dist/TokenManager.test.js.map +1 -1
- package/dist/TokenStorage.d.ts +18 -2
- package/dist/TokenStorage.d.ts.map +1 -1
- package/dist/TokenStorage.js +96 -11
- package/dist/TokenStorage.js.map +1 -1
- package/dist/TokenStorage.test.js +143 -4
- package/dist/TokenStorage.test.js.map +1 -1
- package/dist/TokenVerifier.d.ts +7 -5
- package/dist/TokenVerifier.d.ts.map +1 -1
- package/dist/TokenVerifier.js +36 -15
- package/dist/TokenVerifier.js.map +1 -1
- package/dist/TokenVerifier.test.js +22 -0
- package/dist/TokenVerifier.test.js.map +1 -1
- package/dist/TwoFa.d.ts +12 -5
- package/dist/TwoFa.d.ts.map +1 -1
- package/dist/TwoFa.js +38 -19
- package/dist/TwoFa.js.map +1 -1
- package/dist/User.d.ts +16 -9
- package/dist/User.d.ts.map +1 -1
- package/dist/User.js +15 -3
- package/dist/User.js.map +1 -1
- package/dist/Users.d.ts +13 -4
- package/dist/Users.d.ts.map +1 -1
- package/dist/Users.js +29 -19
- package/dist/Users.js.map +1 -1
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +40 -0
- package/dist/errors.js.map +1 -0
- package/dist/errors.test.d.ts +2 -0
- package/dist/errors.test.d.ts.map +1 -0
- package/dist/errors.test.js +99 -0
- package/dist/errors.test.js.map +1 -0
- package/dist/generated/index.d.ts +2 -2
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/generated/index.js +1 -1
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/sdk.gen.d.ts +15 -24
- package/dist/generated/sdk.gen.d.ts.map +1 -1
- package/dist/generated/sdk.gen.js +56 -121
- package/dist/generated/sdk.gen.js.map +1 -1
- package/dist/generated/types.gen.d.ts +292 -601
- package/dist/generated/types.gen.d.ts.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +19 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/user.d.ts +117 -0
- package/dist/user.d.ts.map +1 -0
- package/dist/user.js +83 -0
- package/dist/user.js.map +1 -0
- package/package.json +4 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieStorageAdapter.test.d.ts","sourceRoot":"","sources":["../src/CookieStorageAdapter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it } from "vitest";
|
|
2
|
+
import { CookieStorageAdapter, createCookieStorageAdapter, } from "./CookieStorageAdapter.js";
|
|
3
|
+
const defaultSetOptions = {
|
|
4
|
+
path: "/",
|
|
5
|
+
secure: true,
|
|
6
|
+
sameSite: "Lax",
|
|
7
|
+
maxAge: 900,
|
|
8
|
+
};
|
|
9
|
+
const makeRequest = (cookieHeader) => new Request("http://localhost", {
|
|
10
|
+
headers: cookieHeader ? { Cookie: cookieHeader } : {},
|
|
11
|
+
});
|
|
12
|
+
describe("CookieStorageAdapter", () => {
|
|
13
|
+
let adapter;
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
adapter = new CookieStorageAdapter(makeRequest("foo=bar; token=abc123"));
|
|
16
|
+
});
|
|
17
|
+
describe("get", () => {
|
|
18
|
+
it("should return the value of an existing cookie", () => {
|
|
19
|
+
expect(adapter.get("foo")).toBe("bar");
|
|
20
|
+
expect(adapter.get("token")).toBe("abc123");
|
|
21
|
+
});
|
|
22
|
+
it("should return null for a missing cookie", () => {
|
|
23
|
+
expect(adapter.get("nonexistent")).toBeNull();
|
|
24
|
+
});
|
|
25
|
+
it("should handle empty cookie string", () => {
|
|
26
|
+
const empty = new CookieStorageAdapter(makeRequest(""));
|
|
27
|
+
expect(empty.get("anything")).toBeNull();
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe("set", () => {
|
|
31
|
+
it("should make new cookie visible via get", () => {
|
|
32
|
+
adapter.set("new_cookie", "val", defaultSetOptions);
|
|
33
|
+
expect(adapter.get("new_cookie")).toBe("val");
|
|
34
|
+
});
|
|
35
|
+
it("should overwrite request cookies in get", () => {
|
|
36
|
+
adapter.set("foo", "bar", defaultSetOptions);
|
|
37
|
+
expect(adapter.get("foo")).toBe("bar");
|
|
38
|
+
});
|
|
39
|
+
it("should include the cookie in stringifySetCookies output", () => {
|
|
40
|
+
adapter.set("sid", "s1", defaultSetOptions);
|
|
41
|
+
const result = adapter.stringifySetCookies();
|
|
42
|
+
expect(result).toHaveLength(1);
|
|
43
|
+
const cookie = result[0];
|
|
44
|
+
expect(cookie).toContain("sid=s1");
|
|
45
|
+
expect(cookie).toContain("Path=/");
|
|
46
|
+
expect(cookie).toContain("Secure");
|
|
47
|
+
expect(cookie).toContain("SameSite=Lax");
|
|
48
|
+
expect(cookie).toContain("Max-Age=900");
|
|
49
|
+
});
|
|
50
|
+
it("should pass sameSite through to the underlying cookie lib", () => {
|
|
51
|
+
adapter.set("x", "1", { ...defaultSetOptions, sameSite: "Strict" });
|
|
52
|
+
const result = adapter.stringifySetCookies();
|
|
53
|
+
expect(result.some((c) => c.includes("SameSite=Strict"))).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe("remove", () => {
|
|
57
|
+
it("should make get return null for the removed cookie", () => {
|
|
58
|
+
adapter.remove("foo");
|
|
59
|
+
expect(adapter.get("foo")).toBeNull();
|
|
60
|
+
});
|
|
61
|
+
it("should exclude removed cookie from stringifyCookies", () => {
|
|
62
|
+
adapter.remove("foo");
|
|
63
|
+
const result = adapter.stringifyCookies();
|
|
64
|
+
expect(result).not.toContain("foo=");
|
|
65
|
+
expect(result).toContain("token=abc123");
|
|
66
|
+
});
|
|
67
|
+
it("should exclude removed cookie from stringifySetCookies", () => {
|
|
68
|
+
adapter.set("foo", "new", defaultSetOptions);
|
|
69
|
+
adapter.remove("foo");
|
|
70
|
+
const result = adapter.stringifySetCookies();
|
|
71
|
+
expect(result.every((c) => !c.includes("foo="))).toBe(true);
|
|
72
|
+
});
|
|
73
|
+
it("should be a no-op for a nonexistent cookie", () => {
|
|
74
|
+
adapter.remove("ghost");
|
|
75
|
+
expect(adapter.get("foo")).toBe("bar");
|
|
76
|
+
expect(adapter.get("token")).toBe("abc123");
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
describe("stringifySetCookies", () => {
|
|
80
|
+
it("should return empty array when no cookies were set", () => {
|
|
81
|
+
expect(adapter.stringifySetCookies()).toEqual([]);
|
|
82
|
+
});
|
|
83
|
+
it("should return one entry per set cookie", () => {
|
|
84
|
+
adapter.set("a", "1", defaultSetOptions);
|
|
85
|
+
adapter.set("b", "2", defaultSetOptions);
|
|
86
|
+
const result = adapter.stringifySetCookies();
|
|
87
|
+
expect(result).toHaveLength(2);
|
|
88
|
+
expect(result[0]).toContain("a=1");
|
|
89
|
+
expect(result[1]).toContain("b=2");
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
describe("stringifyCookies", () => {
|
|
93
|
+
it("should serialize initial cookies", () => {
|
|
94
|
+
const result = adapter.stringifyCookies();
|
|
95
|
+
expect(result).toContain("foo=bar");
|
|
96
|
+
expect(result).toContain("token=abc123");
|
|
97
|
+
});
|
|
98
|
+
it("should not include cookies added via set", () => {
|
|
99
|
+
adapter.set("extra", "yes", defaultSetOptions);
|
|
100
|
+
expect(adapter.stringifyCookies()).not.toContain("extra=yes");
|
|
101
|
+
});
|
|
102
|
+
it("should return empty string for empty adapter", () => {
|
|
103
|
+
const empty = new CookieStorageAdapter(makeRequest(""));
|
|
104
|
+
expect(empty.stringifyCookies()).toBe("");
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
describe("applyToResponse", () => {
|
|
108
|
+
it("should set Cookie header on response", () => {
|
|
109
|
+
const response = new Response();
|
|
110
|
+
adapter.applyToResponse(response);
|
|
111
|
+
const cookieHeader = response.headers.get("Cookie");
|
|
112
|
+
expect(cookieHeader).toContain("foo=bar");
|
|
113
|
+
expect(cookieHeader).toContain("token=abc123");
|
|
114
|
+
});
|
|
115
|
+
it("should set Set-Cookie header when cookies were set", () => {
|
|
116
|
+
adapter.set("sid", "session1", defaultSetOptions);
|
|
117
|
+
const response = new Response();
|
|
118
|
+
adapter.applyToResponse(response);
|
|
119
|
+
const setCookieHeader = response.headers.get("Set-Cookie");
|
|
120
|
+
expect(setCookieHeader).toContain("sid=session1");
|
|
121
|
+
});
|
|
122
|
+
it("should not set Set-Cookie header when no cookies were set", () => {
|
|
123
|
+
const response = new Response();
|
|
124
|
+
adapter.applyToResponse(response);
|
|
125
|
+
expect(response.headers.has("Set-Cookie")).toBe(false);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
describe("createCookieStorageAdapter", () => {
|
|
130
|
+
it("should return a CookieStorageAdapter instance", () => {
|
|
131
|
+
const request = makeRequest("key=value");
|
|
132
|
+
const adapter = createCookieStorageAdapter(request);
|
|
133
|
+
expect(adapter).toBeInstanceOf(CookieStorageAdapter);
|
|
134
|
+
expect(adapter.get("key")).toBe("value");
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=CookieStorageAdapter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieStorageAdapter.test.js","sourceRoot":"","sources":["../src/CookieStorageAdapter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryCacheAdapter.d.ts","sourceRoot":"","sources":["../src/InMemoryCacheAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,0BAA0B,QAAO,YAY7C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const createInMemoryCacheAdapter = () => {
|
|
2
|
+
const store = new Map();
|
|
3
|
+
return {
|
|
4
|
+
get: (key) => store.get(key),
|
|
5
|
+
set: (key, value) => {
|
|
6
|
+
store.set(key, value);
|
|
7
|
+
},
|
|
8
|
+
delete: (key) => {
|
|
9
|
+
store.delete(key);
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=InMemoryCacheAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryCacheAdapter.js","sourceRoot":"","sources":["../src/InMemoryCacheAdapter.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAiB,EAAE;IAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEzC,OAAO;QACL,GAAG,EAAE,CAAI,GAAW,EAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAkB;QACvE,GAAG,EAAE,CAAI,GAAW,EAAE,KAAQ,EAAQ,EAAE;YACtC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,EAAE,CAAC,GAAW,EAAQ,EAAE;YAC5B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryCacheAdapter.test.d.ts","sourceRoot":"","sources":["../src/InMemoryCacheAdapter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { createInMemoryCacheAdapter } from "./InMemoryCacheAdapter.js";
|
|
3
|
+
describe("InMemoryCacheAdapter", () => {
|
|
4
|
+
it("should return undefined for missing key", () => {
|
|
5
|
+
const cache = createInMemoryCacheAdapter();
|
|
6
|
+
expect(cache.get("missing")).toBeUndefined();
|
|
7
|
+
});
|
|
8
|
+
it("should store and retrieve a value", () => {
|
|
9
|
+
const cache = createInMemoryCacheAdapter();
|
|
10
|
+
cache.set("key", { data: 42 });
|
|
11
|
+
expect(cache.get("key")).toEqual({ data: 42 });
|
|
12
|
+
});
|
|
13
|
+
it("should overwrite existing value", () => {
|
|
14
|
+
const cache = createInMemoryCacheAdapter();
|
|
15
|
+
cache.set("key", "first");
|
|
16
|
+
cache.set("key", "second");
|
|
17
|
+
expect(cache.get("key")).toBe("second");
|
|
18
|
+
});
|
|
19
|
+
it("should delete a value", () => {
|
|
20
|
+
const cache = createInMemoryCacheAdapter();
|
|
21
|
+
cache.set("key", "value");
|
|
22
|
+
cache.delete("key");
|
|
23
|
+
expect(cache.get("key")).toBeUndefined();
|
|
24
|
+
});
|
|
25
|
+
it("should not throw when deleting a non-existent key", () => {
|
|
26
|
+
const cache = createInMemoryCacheAdapter();
|
|
27
|
+
expect(() => cache.delete("missing")).not.toThrow();
|
|
28
|
+
});
|
|
29
|
+
it("should isolate keys from each other", () => {
|
|
30
|
+
const cache = createInMemoryCacheAdapter();
|
|
31
|
+
cache.set("a", 1);
|
|
32
|
+
cache.set("b", 2);
|
|
33
|
+
cache.delete("a");
|
|
34
|
+
expect(cache.get("a")).toBeUndefined();
|
|
35
|
+
expect(cache.get("b")).toBe(2);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=InMemoryCacheAdapter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryCacheAdapter.test.js","sourceRoot":"","sources":["../src/InMemoryCacheAdapter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,KAAK,GAAG,0BAA0B,EAAE,CAAC;QAE3C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,KAAK,GAAG,0BAA0B,EAAE,CAAC;QAC3C,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAE/B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAmB,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,KAAK,GAAG,0BAA0B,EAAE,CAAC;QAC3C,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,KAAK,GAAG,0BAA0B,EAAE,CAAC;QAC3C,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,KAAK,GAAG,0BAA0B,EAAE,CAAC;QAE3C,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAG,0BAA0B,EAAE,CAAC;QAC3C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAElB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Client } from "./generated/client/index.js";
|
|
2
|
+
export declare class Session {
|
|
3
|
+
private readonly client;
|
|
4
|
+
constructor(client: Client);
|
|
5
|
+
completeTwoFaChallange(sessionId: string, code: string): Promise<{
|
|
6
|
+
accessToken: string;
|
|
7
|
+
rememberToken: string;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=Session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../src/Session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAG1D,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;CAQ7D"}
|
package/dist/Session.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { postApiV1SessionsBySessionIdChallangesTwoFa } from "./generated/index.js";
|
|
2
|
+
export class Session {
|
|
3
|
+
client;
|
|
4
|
+
constructor(client) {
|
|
5
|
+
this.client = client;
|
|
6
|
+
}
|
|
7
|
+
async completeTwoFaChallange(sessionId, code) {
|
|
8
|
+
const { data } = await postApiV1SessionsBySessionIdChallangesTwoFa({
|
|
9
|
+
client: this.client,
|
|
10
|
+
path: { sessionId },
|
|
11
|
+
body: { code },
|
|
12
|
+
});
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=Session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Session.js","sourceRoot":"","sources":["../src/Session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2CAA2C,EAAE,MAAM,sBAAsB,CAAC;AAEnF,MAAM,OAAO,OAAO;IACW;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,KAAK,CAAC,sBAAsB,CAAC,SAAiB,EAAE,IAAY;QAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,2CAA2C,CAAC;YACjE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,EAAE,SAAS,EAAE;YACnB,IAAI,EAAE,EAAE,IAAI,EAAE;SACf,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
package/dist/TokenManager.d.ts
CHANGED
|
@@ -1,22 +1,32 @@
|
|
|
1
|
+
import type { Logger } from "pino";
|
|
1
2
|
import type { Client } from "./generated/client/index.js";
|
|
2
|
-
import type { AccessTokenPayload,
|
|
3
|
-
export declare class TokenManager {
|
|
3
|
+
import type { AccessTokenPayload, TokenManagerOptions, TokenPair } from "./types.js";
|
|
4
|
+
export declare class TokenManager<Payload extends Record<string, any> = Record<string, any>> {
|
|
4
5
|
private readonly client;
|
|
5
6
|
private readonly verifier;
|
|
6
7
|
private readonly storage;
|
|
7
|
-
constructor(client: Client, options: TokenManagerOptions);
|
|
8
|
+
constructor(client: Client, options: TokenManagerOptions, logger?: Logger);
|
|
8
9
|
private requireStorage;
|
|
9
|
-
readonly verifyToken: (token?: string) => Promise<AccessTokenPayload
|
|
10
|
+
readonly verifyToken: (token?: string) => Promise<AccessTokenPayload<Payload>>;
|
|
10
11
|
readonly clearKeyCache: () => void;
|
|
11
12
|
readonly save: (tokens: TokenPair) => void;
|
|
13
|
+
readonly setAccessToken: (accessToken: string) => void;
|
|
14
|
+
readonly setRefreshToken: (refreshToken: string) => void;
|
|
15
|
+
readonly setRememberToken: (rememberToken: string) => void;
|
|
16
|
+
readonly setAdminRefreshToken: (adminRefreshToken: string) => void;
|
|
12
17
|
readonly getAccessToken: () => string | null;
|
|
13
18
|
readonly getRefreshToken: () => string | null;
|
|
19
|
+
readonly getRememberToken: () => string | null;
|
|
20
|
+
readonly getAdminRefreshToken: () => string | null;
|
|
21
|
+
readonly getDeviceId: () => string | null;
|
|
22
|
+
readonly setDeviceId: (deviceId: string) => void;
|
|
14
23
|
readonly getAll: () => TokenPair | null;
|
|
15
24
|
readonly clear: () => void;
|
|
25
|
+
readonly clearAccessToken: () => void;
|
|
26
|
+
readonly clearRefreshToken: () => void;
|
|
27
|
+
readonly clearDeviceId: () => void;
|
|
28
|
+
readonly clearRememberToken: () => void;
|
|
29
|
+
readonly clearAdminRefreshToken: () => void;
|
|
16
30
|
readonly hasStorage: () => boolean;
|
|
17
|
-
readonly verifyStoredAccessToken: () => Promise<JWTPayload | null>;
|
|
18
|
-
refreshAccessToken(refreshToken?: string): Promise<{
|
|
19
|
-
accessToken: string;
|
|
20
|
-
}>;
|
|
21
31
|
}
|
|
22
32
|
//# sourceMappingURL=TokenManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../src/TokenManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../src/TokenManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,qBAAa,YAAY,CACvB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAMvD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAG3B,MAAM,EAAE,MAAM,EAC/B,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,MAAM;IAiBjB,OAAO,CAAC,cAAc;IAStB,QAAQ,CAAC,WAAW,GAClB,QAAQ,MAAM,KACb,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAMrC;IAEF,QAAQ,CAAC,aAAa,QAAO,IAAI,CAAkC;IAEnE,QAAQ,CAAC,IAAI,GAAI,QAAQ,SAAS,KAAG,IAAI,CACJ;IAErC,QAAQ,CAAC,cAAc,GAAI,aAAa,MAAM,KAAG,IAAI,CACD;IAEpD,QAAQ,CAAC,eAAe,GAAI,cAAc,MAAM,KAAG,IAAI,CACD;IAEtD,QAAQ,CAAC,gBAAgB,GAAI,eAAe,MAAM,KAAG,IAAI,CACD;IAExD,QAAQ,CAAC,oBAAoB,GAAI,mBAAmB,MAAM,KAAG,IAAI,CACD;IAEhE,QAAQ,CAAC,cAAc,sBAAgD;IAEvE,QAAQ,CAAC,eAAe,sBAAiD;IAEzE,QAAQ,CAAC,gBAAgB,sBAAkD;IAE3E,QAAQ,CAAC,oBAAoB,sBACkB;IAE/C,QAAQ,CAAC,WAAW,sBAA6C;IAEjE,QAAQ,CAAC,WAAW,GAAI,UAAU,MAAM,KAAG,IAAI,CACD;IAE9C,QAAQ,CAAC,MAAM,QAAO,SAAS,GAAG,IAAI,CAAmC;IAEzE,QAAQ,CAAC,KAAK,QAAO,IAAI,CAAkC;IAE3D,QAAQ,CAAC,gBAAgB,QAAO,IAAI,CACO;IAE3C,QAAQ,CAAC,iBAAiB,QAAO,IAAI,CACO;IAE5C,QAAQ,CAAC,aAAa,QAAO,IAAI,CAA0C;IAE3E,QAAQ,CAAC,kBAAkB,QAAO,IAAI,CACO;IAE7C,QAAQ,CAAC,sBAAsB,QAAO,IAAI,CACO;IAEjD,QAAQ,CAAC,UAAU,QAAO,OAAO,CAA0B;CAC5D"}
|
package/dist/TokenManager.js
CHANGED
|
@@ -1,45 +1,49 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AuthticonError } from "./errors.js";
|
|
2
2
|
import { TokenStorage } from "./TokenStorage.js";
|
|
3
3
|
import { TokenVerifier } from "./TokenVerifier.js";
|
|
4
4
|
export class TokenManager {
|
|
5
5
|
client;
|
|
6
6
|
verifier;
|
|
7
7
|
storage;
|
|
8
|
-
constructor(client, options) {
|
|
8
|
+
constructor(client, options, logger) {
|
|
9
9
|
this.client = client;
|
|
10
|
-
this.verifier = new TokenVerifier(options.jwksUrl, options.jwksCacheTtlMs);
|
|
10
|
+
this.verifier = new TokenVerifier(options.jwksUrl, options.jwksCacheTtlMs, logger?.child({ authticon: "token-verifier" }), options.cache);
|
|
11
11
|
this.storage = options.cookies
|
|
12
|
-
? new TokenStorage(options.cookies, options.storage)
|
|
12
|
+
? new TokenStorage(options.cookies, options.storage, logger?.child({ authticon: "token-storage" }))
|
|
13
13
|
: null;
|
|
14
14
|
}
|
|
15
15
|
requireStorage() {
|
|
16
16
|
if (!this.storage) {
|
|
17
|
-
throw new
|
|
17
|
+
throw new AuthticonError("TokenStorage is not configured. Provide a CookieAdapter to enable token storage.");
|
|
18
18
|
}
|
|
19
19
|
return this.storage;
|
|
20
20
|
}
|
|
21
|
-
verifyToken = async (token) =>
|
|
21
|
+
verifyToken = async (token) => {
|
|
22
|
+
const accessToken = token ?? this.getAccessToken();
|
|
23
|
+
if (!accessToken) {
|
|
24
|
+
throw new AuthticonError("No access token found");
|
|
25
|
+
}
|
|
26
|
+
return this.verifier.verifyToken(accessToken);
|
|
27
|
+
};
|
|
22
28
|
clearKeyCache = () => this.verifier.clearKeyCache();
|
|
23
29
|
save = (tokens) => this.requireStorage().save(tokens);
|
|
30
|
+
setAccessToken = (accessToken) => this.requireStorage().setAccessToken(accessToken);
|
|
31
|
+
setRefreshToken = (refreshToken) => this.requireStorage().setRefreshToken(refreshToken);
|
|
32
|
+
setRememberToken = (rememberToken) => this.requireStorage().setRememberToken(rememberToken);
|
|
33
|
+
setAdminRefreshToken = (adminRefreshToken) => this.requireStorage().setAdminRefreshToken(adminRefreshToken);
|
|
24
34
|
getAccessToken = () => this.requireStorage().getAccessToken();
|
|
25
35
|
getRefreshToken = () => this.requireStorage().getRefreshToken();
|
|
36
|
+
getRememberToken = () => this.requireStorage().getRememberToken();
|
|
37
|
+
getAdminRefreshToken = () => this.requireStorage().getAdminRefreshToken();
|
|
38
|
+
getDeviceId = () => this.requireStorage().getDeviceId();
|
|
39
|
+
setDeviceId = (deviceId) => this.requireStorage().setDeviceId(deviceId);
|
|
26
40
|
getAll = () => this.requireStorage().getAll();
|
|
27
41
|
clear = () => this.requireStorage().clear();
|
|
42
|
+
clearAccessToken = () => this.requireStorage().clearAccessToken();
|
|
43
|
+
clearRefreshToken = () => this.requireStorage().clearRefreshToken();
|
|
44
|
+
clearDeviceId = () => this.requireStorage().clearDeviceId();
|
|
45
|
+
clearRememberToken = () => this.requireStorage().clearRememberToken();
|
|
46
|
+
clearAdminRefreshToken = () => this.requireStorage().clearAdminRefreshToken();
|
|
28
47
|
hasStorage = () => this.storage !== null;
|
|
29
|
-
verifyStoredAccessToken = async () => {
|
|
30
|
-
const token = this.requireStorage().getAccessToken();
|
|
31
|
-
if (!token)
|
|
32
|
-
return null;
|
|
33
|
-
return this.verifier.verifyToken(token);
|
|
34
|
-
};
|
|
35
|
-
async refreshAccessToken(refreshToken) {
|
|
36
|
-
const { data } = await postApiV1AuthTokenRefresh({
|
|
37
|
-
client: this.client,
|
|
38
|
-
body: {
|
|
39
|
-
refreshToken: refreshToken ?? this.getRefreshToken() ?? "",
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
return data;
|
|
43
|
-
}
|
|
44
48
|
}
|
|
45
49
|
//# sourceMappingURL=TokenManager.js.map
|
package/dist/TokenManager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenManager.js","sourceRoot":"","sources":["../src/TokenManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TokenManager.js","sourceRoot":"","sources":["../src/TokenManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
2
|
import { TokenManager } from "./TokenManager.js";
|
|
3
3
|
vi.mock("./TokenVerifier.js", () => ({
|
|
4
4
|
TokenVerifier: class {
|
|
@@ -34,28 +34,19 @@ describe("TokenManager", () => {
|
|
|
34
34
|
expect(manager.hasStorage()).toBe(false);
|
|
35
35
|
});
|
|
36
36
|
it("should throw on save without adapter", () => {
|
|
37
|
-
expect(() => manager.save({ accessToken: "a", refreshToken: "r", deviceId: "d" }))
|
|
38
|
-
.toThrow("TokenStorage is not configured");
|
|
37
|
+
expect(() => manager.save({ accessToken: "a", refreshToken: "r", deviceId: "d" })).toThrow("TokenStorage is not configured");
|
|
39
38
|
});
|
|
40
39
|
it("should throw on getAccessToken without adapter", () => {
|
|
41
|
-
expect(() => manager.getAccessToken())
|
|
42
|
-
.toThrow("TokenStorage is not configured");
|
|
40
|
+
expect(() => manager.getAccessToken()).toThrow("TokenStorage is not configured");
|
|
43
41
|
});
|
|
44
42
|
it("should throw on getRefreshToken without adapter", () => {
|
|
45
|
-
expect(() => manager.getRefreshToken())
|
|
46
|
-
.toThrow("TokenStorage is not configured");
|
|
43
|
+
expect(() => manager.getRefreshToken()).toThrow("TokenStorage is not configured");
|
|
47
44
|
});
|
|
48
45
|
it("should throw on getAll without adapter", () => {
|
|
49
|
-
expect(() => manager.getAll())
|
|
50
|
-
.toThrow("TokenStorage is not configured");
|
|
46
|
+
expect(() => manager.getAll()).toThrow("TokenStorage is not configured");
|
|
51
47
|
});
|
|
52
48
|
it("should throw on clear without adapter", () => {
|
|
53
|
-
expect(() => manager.clear())
|
|
54
|
-
.toThrow("TokenStorage is not configured");
|
|
55
|
-
});
|
|
56
|
-
it("should throw on verifyStoredAccessToken without adapter", async () => {
|
|
57
|
-
await expect(manager.verifyStoredAccessToken())
|
|
58
|
-
.rejects.toThrow("TokenStorage is not configured");
|
|
49
|
+
expect(() => manager.clear()).toThrow("TokenStorage is not configured");
|
|
59
50
|
});
|
|
60
51
|
});
|
|
61
52
|
describe("with storage (CookieAdapter provided)", () => {
|
|
@@ -72,7 +63,11 @@ describe("TokenManager", () => {
|
|
|
72
63
|
expect(manager.hasStorage()).toBe(true);
|
|
73
64
|
});
|
|
74
65
|
it("should save tokens via adapter", () => {
|
|
75
|
-
manager.save({
|
|
66
|
+
manager.save({
|
|
67
|
+
accessToken: "abc",
|
|
68
|
+
refreshToken: "xyz",
|
|
69
|
+
deviceId: "dev-1",
|
|
70
|
+
});
|
|
76
71
|
expect(adapter.set).toHaveBeenCalledTimes(3);
|
|
77
72
|
expect(adapter.set).toHaveBeenCalledWith("access_token", "abc", expect.any(Object));
|
|
78
73
|
expect(adapter.set).toHaveBeenCalledWith("refresh_token", "xyz", expect.any(Object));
|
|
@@ -90,11 +85,15 @@ describe("TokenManager", () => {
|
|
|
90
85
|
vi.mocked(adapter.get)
|
|
91
86
|
.mockReturnValueOnce("access-val")
|
|
92
87
|
.mockReturnValueOnce("refresh-val")
|
|
93
|
-
.mockReturnValueOnce("device-val")
|
|
88
|
+
.mockReturnValueOnce("device-val")
|
|
89
|
+
.mockReturnValueOnce("remember-val")
|
|
90
|
+
.mockReturnValueOnce("admin-refresh-val");
|
|
94
91
|
expect(manager.getAll()).toEqual({
|
|
95
92
|
accessToken: "access-val",
|
|
96
93
|
refreshToken: "refresh-val",
|
|
97
94
|
deviceId: "device-val",
|
|
95
|
+
rememberToken: "remember-val",
|
|
96
|
+
adminRefreshToken: "admin-refresh-val",
|
|
98
97
|
});
|
|
99
98
|
});
|
|
100
99
|
it("should return null from getAll when tokens are missing", () => {
|
|
@@ -102,16 +101,19 @@ describe("TokenManager", () => {
|
|
|
102
101
|
});
|
|
103
102
|
it("should clear tokens via adapter", () => {
|
|
104
103
|
manager.clear();
|
|
105
|
-
expect(adapter.remove).toHaveBeenCalledTimes(
|
|
104
|
+
expect(adapter.remove).toHaveBeenCalledTimes(5);
|
|
106
105
|
});
|
|
107
|
-
it("should
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
106
|
+
it("should set and get admin refresh token", () => {
|
|
107
|
+
manager.setAdminRefreshToken("admin-rt-123");
|
|
108
|
+
expect(adapter.set).toHaveBeenCalledWith("admin_refresh_token", "admin-rt-123", expect.any(Object));
|
|
109
|
+
});
|
|
110
|
+
it("should get admin refresh token via adapter", () => {
|
|
111
|
+
vi.mocked(adapter.get).mockReturnValue("admin-stored");
|
|
112
|
+
expect(manager.getAdminRefreshToken()).toBe("admin-stored");
|
|
111
113
|
});
|
|
112
|
-
it("should
|
|
113
|
-
|
|
114
|
-
expect(
|
|
114
|
+
it("should clear admin refresh token via adapter", () => {
|
|
115
|
+
manager.clearAdminRefreshToken();
|
|
116
|
+
expect(adapter.remove).toHaveBeenCalledWith("admin_refresh_token", expect.any(Object));
|
|
115
117
|
});
|
|
116
118
|
});
|
|
117
119
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenManager.test.js","sourceRoot":"","sources":["../src/TokenManager.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TokenManager.test.js","sourceRoot":"","sources":["../src/TokenManager.test.ts"],"names":[],"mappings":"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"}
|
package/dist/TokenStorage.d.ts
CHANGED
|
@@ -1,17 +1,33 @@
|
|
|
1
|
+
import type { Logger } from "pino";
|
|
1
2
|
import type { CookieAdapter, TokenPair, TokenStorageOptions } from "./types.js";
|
|
2
3
|
export declare class TokenStorage {
|
|
3
4
|
private readonly cookies;
|
|
5
|
+
private readonly logger?;
|
|
4
6
|
private readonly accessName;
|
|
5
7
|
private readonly refreshName;
|
|
6
8
|
private readonly deviceIdName;
|
|
9
|
+
private readonly rememberName;
|
|
10
|
+
private readonly adminRefreshName;
|
|
7
11
|
private readonly setOptions;
|
|
8
12
|
private readonly removeOptions;
|
|
9
|
-
constructor(cookies: CookieAdapter, options?: TokenStorageOptions);
|
|
13
|
+
constructor(cookies: CookieAdapter, options?: TokenStorageOptions, logger?: Logger | undefined);
|
|
10
14
|
readonly save: (tokens: TokenPair) => void;
|
|
15
|
+
readonly clear: () => void;
|
|
11
16
|
readonly getAccessToken: () => string | null;
|
|
12
17
|
readonly getRefreshToken: () => string | null;
|
|
13
18
|
readonly getDeviceId: () => string | null;
|
|
19
|
+
readonly getRememberToken: () => string | null;
|
|
20
|
+
readonly getAdminRefreshToken: () => string | null;
|
|
21
|
+
readonly setAccessToken: (accessToken: string) => void;
|
|
22
|
+
readonly setRememberToken: (rememberToken: string) => void;
|
|
23
|
+
readonly setRefreshToken: (refreshToken: string) => void;
|
|
24
|
+
readonly setAdminRefreshToken: (adminRefreshToken: string) => void;
|
|
25
|
+
readonly setDeviceId: (deviceId: string) => void;
|
|
26
|
+
readonly clearAdminRefreshToken: () => void;
|
|
27
|
+
readonly clearDeviceId: () => void;
|
|
28
|
+
readonly clearRememberToken: () => void;
|
|
29
|
+
readonly clearRefreshToken: () => void;
|
|
30
|
+
readonly clearAccessToken: () => void;
|
|
14
31
|
readonly getAll: () => TokenPair | null;
|
|
15
|
-
readonly clear: () => void;
|
|
16
32
|
}
|
|
17
33
|
//# sourceMappingURL=TokenStorage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenStorage.d.ts","sourceRoot":"","sources":["../src/TokenStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAGb,SAAS,EACT,mBAAmB,EACpB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenStorage.d.ts","sourceRoot":"","sources":["../src/TokenStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EACV,aAAa,EAGb,SAAS,EACT,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAYpB,qBAAa,YAAY;IAgBrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAjB1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAMzB;IACF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAGjC,OAAO,EAAE,aAAa,EACvC,OAAO,GAAE,mBAAwB,EAChB,MAAM,CAAC,EAAE,MAAM,YAAA;IA0DlC,QAAQ,CAAC,IAAI,GAAI,QAAQ,SAAS,KAAG,IAAI,CAYvC;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAMvB;IAEF,QAAQ,CAAC,cAAc,sBAA2C;IAElE,QAAQ,CAAC,eAAe,sBAA4C;IAEpE,QAAQ,CAAC,WAAW,sBAA6C;IAEjE,QAAQ,CAAC,gBAAgB,sBAA6C;IAEtE,QAAQ,CAAC,oBAAoB,sBACa;IAE1C,QAAQ,CAAC,cAAc,GAAI,aAAa,MAAM,KAAG,IAAI,CAMnD;IAEF,QAAQ,CAAC,gBAAgB,GAAI,eAAe,MAAM,KAAG,IAAI,CAUvD;IAEF,QAAQ,CAAC,eAAe,GAAI,cAAc,MAAM,KAAG,IAAI,CAMrD;IAEF,QAAQ,CAAC,oBAAoB,GAAI,mBAAmB,MAAM,KAAG,IAAI,CAU/D;IAEF,QAAQ,CAAC,WAAW,GAAI,UAAU,MAAM,KAAG,IAAI,CAG7C;IAEF,QAAQ,CAAC,sBAAsB,QAAO,IAAI,CAGxC;IAEF,QAAQ,CAAC,aAAa,QAAO,IAAI,CAG/B;IAEF,QAAQ,CAAC,kBAAkB,QAAO,IAAI,CAGpC;IAEF,QAAQ,CAAC,iBAAiB,QAAO,IAAI,CAGnC;IAEF,QAAQ,CAAC,gBAAgB,QAAO,IAAI,CAGlC;IAEF,QAAQ,CAAC,MAAM,QAAO,SAAS,GAAG,IAAI,CAWpC;CACH"}
|