@passlock/client 2.0.0 → 2.0.2
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/README.md +14 -16
- package/README.template.md +14 -16
- package/dist/errors.d.ts +4 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +14 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +245 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +253 -3
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +4 -0
- package/dist/internal/index.d.ts.map +1 -0
- package/dist/internal/index.js +4 -0
- package/dist/internal/index.js.map +1 -0
- package/dist/{shared → internal}/network.d.ts +19 -16
- package/dist/internal/network.d.ts.map +1 -0
- package/dist/{shared → internal}/network.js +40 -25
- package/dist/internal/network.js.map +1 -0
- package/dist/{shared → internal}/promise.d.ts +2 -2
- package/dist/internal/promise.d.ts.map +1 -0
- package/dist/{shared → internal}/promise.js +2 -2
- package/dist/internal/promise.js.map +1 -0
- package/dist/internal/tenancy.d.ts.map +1 -0
- package/dist/internal/tenancy.js.map +1 -0
- package/dist/{logger/index.d.ts → logger.d.ts} +19 -4
- package/dist/logger.d.ts.map +1 -0
- package/dist/{logger/index.js → logger.js} +19 -4
- package/dist/logger.js.map +1 -0
- package/dist/{shared/options.d.ts → options.d.ts} +4 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/{shared/options.js.map → options.js.map} +1 -1
- package/dist/passkey/authentication/authentication.d.ts +82 -66
- package/dist/passkey/authentication/authentication.d.ts.map +1 -1
- package/dist/passkey/authentication/authentication.js +67 -49
- package/dist/passkey/authentication/authentication.js.map +1 -1
- package/dist/passkey/errors.d.ts +158 -16
- package/dist/passkey/errors.d.ts.map +1 -1
- package/dist/passkey/errors.js +214 -6
- package/dist/passkey/errors.js.map +1 -1
- package/dist/passkey/registration/registration.d.ts +81 -72
- package/dist/passkey/registration/registration.d.ts.map +1 -1
- package/dist/passkey/registration/registration.js +42 -35
- package/dist/passkey/registration/registration.js.map +1 -1
- package/dist/passkey/{types.d.ts → shared.d.ts} +9 -3
- package/dist/passkey/shared.d.ts.map +1 -0
- package/dist/passkey/shared.js +2 -0
- package/dist/passkey/shared.js.map +1 -0
- package/dist/passkey/signals/signals.d.ts +93 -35
- package/dist/passkey/signals/signals.d.ts.map +1 -1
- package/dist/passkey/signals/signals.js +197 -90
- package/dist/passkey/signals/signals.js.map +1 -1
- package/dist/passkey/support.d.ts +15 -0
- package/dist/passkey/support.d.ts.map +1 -1
- package/dist/passkey/support.js +16 -1
- package/dist/passkey/support.js.map +1 -1
- package/dist/principal.d.ts +16 -0
- package/dist/principal.d.ts.map +1 -0
- package/dist/principal.js +2 -0
- package/dist/principal.js.map +1 -0
- package/dist/safe.d.ts +247 -0
- package/dist/safe.d.ts.map +1 -0
- package/dist/safe.js +254 -0
- package/dist/safe.js.map +1 -0
- package/package.json +26 -21
- package/dist/logger/index.d.ts.map +0 -1
- package/dist/logger/index.js.map +0 -1
- package/dist/passkey/authentication/authentication.test.d.ts +0 -2
- package/dist/passkey/authentication/authentication.test.d.ts.map +0 -1
- package/dist/passkey/authentication/authentication.test.js +0 -157
- package/dist/passkey/authentication/authentication.test.js.map +0 -1
- package/dist/passkey/authentication/index.d.ts +0 -21
- package/dist/passkey/authentication/index.d.ts.map +0 -1
- package/dist/passkey/authentication/index.js +0 -22
- package/dist/passkey/authentication/index.js.map +0 -1
- package/dist/passkey/index.d.ts +0 -6
- package/dist/passkey/index.d.ts.map +0 -1
- package/dist/passkey/index.js +0 -6
- package/dist/passkey/index.js.map +0 -1
- package/dist/passkey/registration/index.d.ts +0 -19
- package/dist/passkey/registration/index.d.ts.map +0 -1
- package/dist/passkey/registration/index.js +0 -20
- package/dist/passkey/registration/index.js.map +0 -1
- package/dist/passkey/registration/registration.test.d.ts +0 -2
- package/dist/passkey/registration/registration.test.d.ts.map +0 -1
- package/dist/passkey/registration/registration.test.js +0 -161
- package/dist/passkey/registration/registration.test.js.map +0 -1
- package/dist/passkey/signals/index.d.ts +0 -9
- package/dist/passkey/signals/index.d.ts.map +0 -1
- package/dist/passkey/signals/index.js +0 -19
- package/dist/passkey/signals/index.js.map +0 -1
- package/dist/passkey/types.d.ts.map +0 -1
- package/dist/passkey/types.js +0 -2
- package/dist/passkey/types.js.map +0 -1
- package/dist/shared/network.d.ts.map +0 -1
- package/dist/shared/network.js.map +0 -1
- package/dist/shared/options.d.ts.map +0 -1
- package/dist/shared/promise.d.ts.map +0 -1
- package/dist/shared/promise.js.map +0 -1
- package/dist/shared/tenancy.d.ts.map +0 -1
- package/dist/shared/tenancy.js.map +0 -1
- /package/dist/{shared → internal}/tenancy.d.ts +0 -0
- /package/dist/{shared → internal}/tenancy.js +0 -0
- /package/dist/{shared/options.js → options.js} +0 -0
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import fetchMock from "@fetch-mock/vitest";
|
|
2
|
-
import { Context, Micro, pipe } from "effect";
|
|
3
|
-
import { afterAll, describe, expect, it, vi } from "vitest";
|
|
4
|
-
import { Logger } from "../../logger";
|
|
5
|
-
import { Endpoint } from "../../shared/network";
|
|
6
|
-
import { TenancyId } from "../../shared/tenancy";
|
|
7
|
-
import { PasskeysUnsupportedError } from "../errors";
|
|
8
|
-
import { AuthenticationHelper, authenticatePasskey, fetchOptions, startAuthentication, verifyCredential, } from "./authentication";
|
|
9
|
-
const loggerTest = {
|
|
10
|
-
logDebug: () => Micro.void,
|
|
11
|
-
logError: () => Micro.void,
|
|
12
|
-
logInfo: () => Micro.void,
|
|
13
|
-
logWarn: () => Micro.void,
|
|
14
|
-
};
|
|
15
|
-
describe(fetchOptions.name, () => {
|
|
16
|
-
const endpoint = "https://api.passlock.dev";
|
|
17
|
-
const tenancyId = "dummyTenancyId";
|
|
18
|
-
const ctx = pipe(Context.make(Endpoint, { endpoint }), Context.add(Logger, loggerTest), Context.add(TenancyId, { tenancyId }));
|
|
19
|
-
const expectedRoute = `${endpoint}/${tenancyId}/passkey/authentication/options`;
|
|
20
|
-
const mockResponse = {
|
|
21
|
-
optionsJSON: {},
|
|
22
|
-
sessionToken: "dummySessionToken",
|
|
23
|
-
};
|
|
24
|
-
describe("given an empty set of options", () => {
|
|
25
|
-
it("should fetch some PublicKeyCredentialCreationOptions", async () => {
|
|
26
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
27
|
-
const result = await pipe(fetchOptions({}), Micro.provideContext(ctx), Micro.runPromise);
|
|
28
|
-
expect(result.sessionToken).toBeTruthy();
|
|
29
|
-
expect(result.optionsJSON).toBeTruthy();
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
describe("given a userId", () => {
|
|
33
|
-
const userId = "dummyUserId";
|
|
34
|
-
it("should send it to the backend", async () => {
|
|
35
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
36
|
-
await pipe(fetchOptions({ userId }), Micro.provideContext(ctx), Micro.runPromise);
|
|
37
|
-
expect(fetchMock).toHavePosted(expectedRoute, { body: { userId } });
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe("given a list of allowCredentials", () => {
|
|
41
|
-
const allowCredentials = ["dummyCredential"];
|
|
42
|
-
it("should send them to the backend", async () => {
|
|
43
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
44
|
-
await pipe(fetchOptions({ allowCredentials }), Micro.provideContext(ctx), Micro.runPromise);
|
|
45
|
-
expect(fetchMock).toHavePosted(expectedRoute, {
|
|
46
|
-
body: { allowCredentials },
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
describe("given a userVerification", () => {
|
|
51
|
-
const userVerification = "required";
|
|
52
|
-
it("should send it to the backend", async () => {
|
|
53
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
54
|
-
await pipe(fetchOptions({ userVerification }), Micro.provideContext(ctx), Micro.runPromise);
|
|
55
|
-
expect(fetchMock).toHavePosted(expectedRoute, {
|
|
56
|
-
body: { userVerification },
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
it("should invoke the onEvent handler", async () => {
|
|
61
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
62
|
-
const onEvent = vi.fn();
|
|
63
|
-
await pipe(fetchOptions({ onEvent }), Micro.provideContext(ctx), Micro.runPromise);
|
|
64
|
-
expect(onEvent).toHaveBeenCalledWith("optionsRequest");
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
describe(startAuthentication.name, () => {
|
|
68
|
-
describe("given valid options", () => {
|
|
69
|
-
const authenticationHelperTest = {
|
|
70
|
-
browserSupportsWebAuthn: () => true,
|
|
71
|
-
startAuthentication: () => Promise.resolve({}),
|
|
72
|
-
};
|
|
73
|
-
it("should invoke the underlying startAuthentication function", async () => {
|
|
74
|
-
await pipe(startAuthentication({}, {
|
|
75
|
-
useBrowserAutofill: false,
|
|
76
|
-
}), Micro.provideService(Logger, loggerTest), Micro.provideService(AuthenticationHelper, authenticationHelperTest), Micro.runPromise);
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
describe("if the device does not support passkeys", () => {
|
|
80
|
-
const authenticationHelperTest = {
|
|
81
|
-
browserSupportsWebAuthn: () => false,
|
|
82
|
-
startAuthentication: () => Promise.resolve({}),
|
|
83
|
-
};
|
|
84
|
-
it("should return an error", async () => {
|
|
85
|
-
const result = await pipe(startAuthentication({}, {
|
|
86
|
-
useBrowserAutofill: false,
|
|
87
|
-
}), Micro.flip, Micro.provideService(Logger, loggerTest), Micro.provideService(AuthenticationHelper, authenticationHelperTest), Micro.runPromise);
|
|
88
|
-
expect(result).toBeInstanceOf(PasskeysUnsupportedError);
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
describe(verifyCredential.name, () => {
|
|
93
|
-
const endpoint = "https://api.passlock.dev";
|
|
94
|
-
const tenancyId = "dummyTenancyId";
|
|
95
|
-
const ctx = pipe(Context.make(Endpoint, { endpoint }), Context.add(Logger, loggerTest), Context.add(TenancyId, { tenancyId }));
|
|
96
|
-
const expectedRoute = `${endpoint}/${tenancyId}/passkey/authentication/verification`;
|
|
97
|
-
describe("when the passkey exists", () => {
|
|
98
|
-
const mockResponse = {
|
|
99
|
-
_tag: "AuthenticationSuccess",
|
|
100
|
-
code: "dummyCode",
|
|
101
|
-
id_token: "dummyIdToken",
|
|
102
|
-
principal: {
|
|
103
|
-
authenticatorId: "dummyPasskeyId",
|
|
104
|
-
},
|
|
105
|
-
};
|
|
106
|
-
it("should return a successful response", async () => {
|
|
107
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
108
|
-
const result = await pipe(verifyCredential("dummySessionToken", {}, {}), Micro.provideContext(ctx), Micro.runPromise);
|
|
109
|
-
expect(result).toStrictEqual(mockResponse);
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
describe("when the backend says the passkey does not exist", () => {
|
|
113
|
-
it("should return an error", async () => {
|
|
114
|
-
const mockResponse = {
|
|
115
|
-
_tag: "@error/PasskeyNotFound",
|
|
116
|
-
credentialId: "dummyWebAuthnId",
|
|
117
|
-
message: "oops",
|
|
118
|
-
rpId: "localhost",
|
|
119
|
-
};
|
|
120
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, { body: mockResponse, status: 400 });
|
|
121
|
-
const error = await pipe(verifyCredential("dummySessionToken", {}, {}), Micro.flip, Micro.provideContext(ctx), Micro.runPromise);
|
|
122
|
-
expect(error).toStrictEqual(mockResponse);
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
describe(authenticatePasskey.name, () => {
|
|
127
|
-
const endpoint = "https://api.passlock.dev";
|
|
128
|
-
const tenancyId = "dummyTenancyId";
|
|
129
|
-
const authenticationHelperTest = {
|
|
130
|
-
browserSupportsWebAuthn: () => true,
|
|
131
|
-
startAuthentication: () => Promise.resolve({}),
|
|
132
|
-
};
|
|
133
|
-
const ctx = pipe(Context.make(Endpoint, { endpoint }), Context.add(Logger, loggerTest), Context.add(TenancyId, { tenancyId }), Context.add(AuthenticationHelper, authenticationHelperTest));
|
|
134
|
-
const optionsRoute = `${endpoint}/${tenancyId}/passkey/authentication/options`;
|
|
135
|
-
const optionsResponse = {
|
|
136
|
-
optionsJSON: {},
|
|
137
|
-
sessionToken: "dummySessionToken",
|
|
138
|
-
};
|
|
139
|
-
const verificationRoute = `${endpoint}/${tenancyId}/passkey/authentication/verification`;
|
|
140
|
-
const verificationResponse = {
|
|
141
|
-
_tag: "AuthenticationSuccess",
|
|
142
|
-
code: "dummyCode",
|
|
143
|
-
id_token: "dummyIdToken",
|
|
144
|
-
principal: {
|
|
145
|
-
authenticatorId: "dummyPasskeyId",
|
|
146
|
-
},
|
|
147
|
-
};
|
|
148
|
-
it("should fetch the options and kick off the authentication", async () => {
|
|
149
|
-
fetchMock.mockGlobal().postOnce(optionsRoute, optionsResponse);
|
|
150
|
-
fetchMock.mockGlobal().postOnce(verificationRoute, verificationResponse);
|
|
151
|
-
pipe(authenticatePasskey({ tenancyId }), Micro.provideContext(ctx), Micro.runPromise);
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
afterAll(() => {
|
|
155
|
-
fetchMock.unmockGlobal();
|
|
156
|
-
});
|
|
157
|
-
//# sourceMappingURL=authentication.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.test.js","sourceRoot":"","sources":["../../../src/passkey/authentication/authentication.test.ts"],"names":[],"mappings":"AAIA,OAAO,SAAS,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,UAAU,GAAG;IACjB,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI;IAC1B,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI;IAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI;IACzB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI;CACM,CAAA;AAEjC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE;IAC/B,MAAM,QAAQ,GAAG,0BAA0B,CAAA;IAC3C,MAAM,SAAS,GAAG,gBAAgB,CAAA;IAElC,MAAM,GAAG,GAAG,IAAI,CACd,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EACpC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CACtC,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,QAAQ,IAAI,SAAS,iCAAiC,CAAA;IAE/E,MAAM,YAAY,GAAG;QACnB,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,mBAAmB;KAClC,CAAA;IAED,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;YAE5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;YAExF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAA;YACxC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAA;QACzC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,MAAM,MAAM,GAAG,aAAa,CAAA;QAE5B,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;YAE5D,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;YAEjF,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,MAAM,gBAAgB,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAE5C,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;YAE5D,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;YAE3F,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE;gBAC5C,IAAI,EAAE,EAAE,gBAAgB,EAAE;aAC3B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,MAAM,gBAAgB,GAAG,UAAmB,CAAA;QAE5C,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;YAE5D,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;YAE3F,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE;gBAC5C,IAAI,EAAE,EAAE,gBAAgB,EAAE;aAC3B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;QAE5D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QAEvB,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;QAElF,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,MAAM,wBAAwB,GAAG;YAC/B,uBAAuB,EAAE,GAAG,EAAE,CAAC,IAAI;YACnC,mBAAmB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAgC,CAAC;SAC/B,CAAA;QAE/C,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,IAAI,CACR,mBAAmB,CAAC,EAA2C,EAAE;gBAC/D,kBAAkB,EAAE,KAAK;aAC1B,CAAC,EACF,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,EACxC,KAAK,CAAC,cAAc,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,EACpE,KAAK,CAAC,UAAU,CACjB,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACvD,MAAM,wBAAwB,GAAG;YAC/B,uBAAuB,EAAE,GAAG,EAAE,CAAC,KAAK;YACpC,mBAAmB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAgC,CAAC;SAC/B,CAAA;QAE/C,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CACvB,mBAAmB,CAAC,EAA2C,EAAE;gBAC/D,kBAAkB,EAAE,KAAK;aAC1B,CAAC,EACF,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,EACxC,KAAK,CAAC,cAAc,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,EACpE,KAAK,CAAC,UAAU,CACjB,CAAA;YAED,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE;IACnC,MAAM,QAAQ,GAAG,0BAA0B,CAAA;IAC3C,MAAM,SAAS,GAAG,gBAAgB,CAAA;IAElC,MAAM,GAAG,GAAG,IAAI,CACd,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EACpC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CACtC,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,QAAQ,IAAI,SAAS,sCAAsC,CAAA;IAEpF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE;gBACT,eAAe,EAAE,gBAAgB;aAClC;SACF,CAAA;QAED,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;YAE5D,MAAM,MAAM,GAAG,MAAM,IAAI,CACvB,gBAAgB,CAAC,mBAAmB,EAAE,EAAgC,EAAE,EAAE,CAAC,EAC3E,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EACzB,KAAK,CAAC,UAAU,CACjB,CAAA;YAED,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAChE,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,YAAY,GAAG;gBACnB,IAAI,EAAE,wBAAwB;gBAC9B,YAAY,EAAE,iBAAiB;gBAC/B,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,WAAW;aAClB,CAAA;YAED,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAEnF,MAAM,KAAK,GAAG,MAAM,IAAI,CACtB,gBAAgB,CAAC,mBAAmB,EAAE,EAAgC,EAAE,EAAE,CAAC,EAC3E,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EACzB,KAAK,CAAC,UAAU,CACjB,CAAA;YAED,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE;IACtC,MAAM,QAAQ,GAAG,0BAA0B,CAAA;IAC3C,MAAM,SAAS,GAAG,gBAAgB,CAAA;IAElC,MAAM,wBAAwB,GAAG;QAC/B,uBAAuB,EAAE,GAAG,EAAE,CAAC,IAAI;QACnC,mBAAmB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAgC,CAAC;KAC/B,CAAA;IAE/C,MAAM,GAAG,GAAG,IAAI,CACd,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EACpC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EACrC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAC5D,CAAA;IAED,MAAM,YAAY,GAAG,GAAG,QAAQ,IAAI,SAAS,iCAAiC,CAAA;IAE9E,MAAM,eAAe,GAAG;QACtB,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,mBAAmB;KAClC,CAAA;IAED,MAAM,iBAAiB,GAAG,GAAG,QAAQ,IAAI,SAAS,sCAAsC,CAAA;IAExF,MAAM,oBAAoB,GAAG;QAC3B,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE;YACT,eAAe,EAAE,gBAAgB;SAClC;KACF,CAAA;IAED,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;QAC9D,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAA;QAExE,IAAI,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IACvF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,GAAG,EAAE;IACZ,SAAS,CAAC,YAAY,EAAE,CAAA;AAC1B,CAAC,CAAC,CAAA"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Logger } from "../../logger";
|
|
2
|
-
import { type AuthenticationError, type AuthenticationOptions, type AuthenticationSuccess } from "./authentication";
|
|
3
|
-
/**
|
|
4
|
-
* Trigger local passkey authentication then verify the passkey in the Passlock vault.
|
|
5
|
-
* Returns a code and id_token that can be exchanged/decoded in your backend.
|
|
6
|
-
*
|
|
7
|
-
* @param options
|
|
8
|
-
* @returns
|
|
9
|
-
*/
|
|
10
|
-
export declare const authenticatePasskeyUnsafe: (options: AuthenticationOptions, logger?: typeof Logger.Service) => Promise<AuthenticationSuccess>;
|
|
11
|
-
/**
|
|
12
|
-
* Trigger local passkey authentication then verify the passkey in the Passlock vault.
|
|
13
|
-
* Returns a code and id_token that can be exchanged/decoded in your backend.
|
|
14
|
-
*
|
|
15
|
-
* @param options
|
|
16
|
-
* @returns
|
|
17
|
-
*/
|
|
18
|
-
export declare const authenticatePasskey: (options: AuthenticationOptions, logger?: typeof Logger.Service) => Promise<AuthenticationSuccess | AuthenticationError>;
|
|
19
|
-
export type { AuthenticationError, AuthenticationOptions, AuthenticationSuccess, } from "./authentication";
|
|
20
|
-
export { isAuthenticationSuccess } from "./authentication";
|
|
21
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/passkey/authentication/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,MAAM,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EACL,KAAK,mBAAmB,EAExB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAE3B,MAAM,kBAAkB,CAAA;AAEzB;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GACpC,SAAS,qBAAqB,EAC9B,SAAQ,OAAO,MAAM,CAAC,OAAqB,KAC1C,OAAO,CAAC,qBAAqB,CAM7B,CAAA;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,qBAAqB,EAC9B,SAAQ,OAAO,MAAM,CAAC,OAAqB,KAC1C,OAAO,CAAC,qBAAqB,GAAG,mBAAmB,CAMnD,CAAA;AAEH,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Micro, pipe } from "effect";
|
|
2
|
-
import { EventLogger, Logger } from "../../logger";
|
|
3
|
-
import { runToPromise, runToPromiseUnsafe } from "../../shared/promise";
|
|
4
|
-
import { AuthenticationHelper, authenticatePasskey as authenticatePasskeyM, } from "./authentication";
|
|
5
|
-
/**
|
|
6
|
-
* Trigger local passkey authentication then verify the passkey in the Passlock vault.
|
|
7
|
-
* Returns a code and id_token that can be exchanged/decoded in your backend.
|
|
8
|
-
*
|
|
9
|
-
* @param options
|
|
10
|
-
* @returns
|
|
11
|
-
*/
|
|
12
|
-
export const authenticatePasskeyUnsafe = (options, logger = EventLogger) => pipe(authenticatePasskeyM(options), Micro.provideService(Logger, logger), Micro.provideService(AuthenticationHelper, AuthenticationHelper.Default), runToPromiseUnsafe);
|
|
13
|
-
/**
|
|
14
|
-
* Trigger local passkey authentication then verify the passkey in the Passlock vault.
|
|
15
|
-
* Returns a code and id_token that can be exchanged/decoded in your backend.
|
|
16
|
-
*
|
|
17
|
-
* @param options
|
|
18
|
-
* @returns
|
|
19
|
-
*/
|
|
20
|
-
export const authenticatePasskey = (options, logger = EventLogger) => pipe(authenticatePasskeyM(options), Micro.provideService(Logger, logger), Micro.provideService(AuthenticationHelper, AuthenticationHelper.Default), runToPromise);
|
|
21
|
-
export { isAuthenticationSuccess } from "./authentication";
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/passkey/authentication/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACvE,OAAO,EAEL,oBAAoB,EAGpB,mBAAmB,IAAI,oBAAoB,GAC5C,MAAM,kBAAkB,CAAA;AAEzB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,OAA8B,EAC9B,SAAgC,WAAW,EACX,EAAE,CAClC,IAAI,CACF,oBAAoB,CAAC,OAAO,CAAC,EAC7B,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,KAAK,CAAC,cAAc,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,OAAO,CAAC,EACxE,kBAAkB,CACnB,CAAA;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAA8B,EAC9B,SAAgC,WAAW,EACW,EAAE,CACxD,IAAI,CACF,oBAAoB,CAAC,OAAO,CAAC,EAC7B,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,KAAK,CAAC,cAAc,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,OAAO,CAAC,EACxE,YAAY,CACb,CAAA;AAOH,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/passkey/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/passkey/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
|
package/dist/passkey/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/passkey/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Logger } from "../../logger";
|
|
2
|
-
import { type RegistrationError, type RegistrationOptions, type RegistrationSuccess } from "./registration";
|
|
3
|
-
/**
|
|
4
|
-
* Register a passkey on the local device and store the
|
|
5
|
-
* associated public key in your Passlock vault.
|
|
6
|
-
* @param options
|
|
7
|
-
* @returns
|
|
8
|
-
*/
|
|
9
|
-
export declare const registerPasskeyUnsafe: (options: RegistrationOptions, logger?: typeof Logger.Service) => Promise<RegistrationSuccess>;
|
|
10
|
-
/**
|
|
11
|
-
* Register a passkey on the local device and store the
|
|
12
|
-
* associated public key in your Passlock vault.
|
|
13
|
-
* @param options
|
|
14
|
-
* @returns
|
|
15
|
-
*/
|
|
16
|
-
export declare const registerPasskey: (options: RegistrationOptions, logger?: typeof Logger.Service) => Promise<RegistrationSuccess | RegistrationError>;
|
|
17
|
-
export type { RegistrationError, RegistrationOptions, RegistrationSuccess } from "./registration";
|
|
18
|
-
export { isRegistrationSuccess } from "./registration";
|
|
19
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/passkey/registration/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,MAAM,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAEzB,MAAM,gBAAgB,CAAA;AAEvB;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,mBAAmB,EAC5B,SAAQ,OAAO,MAAM,CAAC,OAAqB,KAC1C,OAAO,CAAC,mBAAmB,CAM3B,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,mBAAmB,EAC5B,SAAQ,OAAO,MAAM,CAAC,OAAqB,KAC1C,OAAO,CAAC,mBAAmB,GAAG,iBAAiB,CAM/C,CAAA;AAEH,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Micro, pipe } from "effect";
|
|
2
|
-
import { EventLogger, Logger } from "../../logger";
|
|
3
|
-
import { runToPromise, runToPromiseUnsafe } from "../../shared/promise";
|
|
4
|
-
import { RegistrationHelper, registerPasskey as registerPasskeyM, } from "./registration";
|
|
5
|
-
/**
|
|
6
|
-
* Register a passkey on the local device and store the
|
|
7
|
-
* associated public key in your Passlock vault.
|
|
8
|
-
* @param options
|
|
9
|
-
* @returns
|
|
10
|
-
*/
|
|
11
|
-
export const registerPasskeyUnsafe = async (options, logger = EventLogger) => pipe(registerPasskeyM(options), Micro.provideService(Logger, logger), Micro.provideService(RegistrationHelper, RegistrationHelper.Default), runToPromiseUnsafe);
|
|
12
|
-
/**
|
|
13
|
-
* Register a passkey on the local device and store the
|
|
14
|
-
* associated public key in your Passlock vault.
|
|
15
|
-
* @param options
|
|
16
|
-
* @returns
|
|
17
|
-
*/
|
|
18
|
-
export const registerPasskey = async (options, logger = EventLogger) => pipe(registerPasskeyM(options), Micro.provideService(Logger, logger), Micro.provideService(RegistrationHelper, RegistrationHelper.Default), runToPromise);
|
|
19
|
-
export { isRegistrationSuccess } from "./registration";
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/passkey/registration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACvE,OAAO,EAEL,kBAAkB,EAGlB,eAAe,IAAI,gBAAgB,GACpC,MAAM,gBAAgB,CAAA;AAEvB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,OAA4B,EAC5B,SAAgC,WAAW,EACb,EAAE,CAChC,IAAI,CACF,gBAAgB,CAAC,OAAO,CAAC,EACzB,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,KAAK,CAAC,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,OAAO,CAAC,EACpE,kBAAkB,CACnB,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,OAA4B,EAC5B,SAAgC,WAAW,EACO,EAAE,CACpD,IAAI,CACF,gBAAgB,CAAC,OAAO,CAAC,EACzB,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,KAAK,CAAC,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,OAAO,CAAC,EACpE,YAAY,CACb,CAAA;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registration.test.d.ts","sourceRoot":"","sources":["../../../src/passkey/registration/registration.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import fetchMock from "@fetch-mock/vitest";
|
|
2
|
-
import { Context, Micro, pipe } from "effect";
|
|
3
|
-
import { afterAll, describe, expect, it, vi } from "vitest";
|
|
4
|
-
import { Logger } from "../../logger";
|
|
5
|
-
import { Endpoint } from "../../shared/network";
|
|
6
|
-
import { TenancyId } from "../../shared/tenancy";
|
|
7
|
-
import { PasskeysUnsupportedError } from "../errors";
|
|
8
|
-
import { fetchOptions, RegistrationHelper, registerPasskey, startRegistration, verifyCredential, } from "./registration";
|
|
9
|
-
const loggerTest = {
|
|
10
|
-
logDebug: () => Micro.void,
|
|
11
|
-
logError: () => Micro.void,
|
|
12
|
-
logInfo: () => Micro.void,
|
|
13
|
-
logWarn: () => Micro.void,
|
|
14
|
-
};
|
|
15
|
-
describe(fetchOptions.name, () => {
|
|
16
|
-
const endpoint = "https://api.passlock.dev";
|
|
17
|
-
const tenancyId = "dummyTenancyId";
|
|
18
|
-
const username = "dummyUsername";
|
|
19
|
-
const userDisplayName = "dummyDisplayName";
|
|
20
|
-
const userId = "dummyUserId";
|
|
21
|
-
const ctx = pipe(Context.make(Endpoint, { endpoint }), Context.add(Logger, loggerTest), Context.add(TenancyId, { tenancyId }));
|
|
22
|
-
const expectedRoute = `${endpoint}/${tenancyId}/passkey/registration/options`;
|
|
23
|
-
const mockResponse = {
|
|
24
|
-
optionsJSON: {},
|
|
25
|
-
sessionToken: "dummySessionToken",
|
|
26
|
-
};
|
|
27
|
-
describe("given an empty set of options", () => {
|
|
28
|
-
it("should fetch some PublicKeyCredentialCreationOptions", async () => {
|
|
29
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
30
|
-
const result = await pipe(fetchOptions({ username }), Micro.provideContext(ctx), Micro.runPromise);
|
|
31
|
-
expect(result.sessionToken).toBeTruthy();
|
|
32
|
-
expect(result.optionsJSON).toBeTruthy();
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
describe("given a username", () => {
|
|
36
|
-
it("should send it to the backend", async () => {
|
|
37
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
38
|
-
await pipe(fetchOptions({ username }), Micro.provideContext(ctx), Micro.runPromise);
|
|
39
|
-
expect(fetchMock).toHavePosted(expectedRoute, { body: { username } });
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
describe("given a userDisplayName", () => {
|
|
43
|
-
it("should send it to the backend", async () => {
|
|
44
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
45
|
-
await pipe(fetchOptions({ userDisplayName, username }), Micro.provideContext(ctx), Micro.runPromise);
|
|
46
|
-
expect(fetchMock).toHavePosted(expectedRoute, {
|
|
47
|
-
body: { userDisplayName, username },
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
describe("given a userId", () => {
|
|
52
|
-
it("should send it to the backend", async () => {
|
|
53
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
54
|
-
await pipe(fetchOptions({ userId, username }), Micro.provideContext(ctx), Micro.runPromise);
|
|
55
|
-
expect(fetchMock).toHavePosted(expectedRoute, {
|
|
56
|
-
body: { userId, username },
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
describe("given a list of excludeCredentials", () => {
|
|
61
|
-
const excludeCredentials = ["dummyCredential"];
|
|
62
|
-
it("should send them to the backend", async () => {
|
|
63
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
64
|
-
await pipe(fetchOptions({ excludeCredentials, username }), Micro.provideContext(ctx), Micro.runPromise);
|
|
65
|
-
expect(fetchMock).toHavePosted(expectedRoute, {
|
|
66
|
-
body: { excludeCredentials, username },
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
describe("given a userVerification", () => {
|
|
71
|
-
const userVerification = "required";
|
|
72
|
-
it("should send it to the backend", async () => {
|
|
73
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
74
|
-
await pipe(fetchOptions({ username, userVerification }), Micro.provideContext(ctx), Micro.runPromise);
|
|
75
|
-
expect(fetchMock).toHavePosted(expectedRoute, {
|
|
76
|
-
body: { username, userVerification },
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
it("should invoke the onEvent handler", async () => {
|
|
81
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
82
|
-
const onEvent = vi.fn();
|
|
83
|
-
await pipe(fetchOptions({ onEvent, username }), Micro.provideContext(ctx), Micro.runPromise);
|
|
84
|
-
expect(onEvent).toHaveBeenCalledWith("optionsRequest");
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
describe(startRegistration.name, () => {
|
|
88
|
-
describe("given valid options", () => {
|
|
89
|
-
const registrationHelperTest = {
|
|
90
|
-
browserSupportsWebAuthn: () => true,
|
|
91
|
-
startRegistration: () => Promise.resolve({}),
|
|
92
|
-
};
|
|
93
|
-
it("should invoke the underlying startRegistration function", async () => {
|
|
94
|
-
await pipe(startRegistration({}, {}), Micro.provideService(Logger, loggerTest), Micro.provideService(RegistrationHelper, registrationHelperTest), Micro.runPromise);
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
describe("if the device does not support passkeys", () => {
|
|
98
|
-
const registrationHelperTest = {
|
|
99
|
-
browserSupportsWebAuthn: () => false,
|
|
100
|
-
startRegistration: () => Promise.resolve({}),
|
|
101
|
-
};
|
|
102
|
-
it("should return an error", async () => {
|
|
103
|
-
const result = await pipe(startRegistration({}, {}), Micro.flip, Micro.provideService(Logger, loggerTest), Micro.provideService(RegistrationHelper, registrationHelperTest), Micro.runPromise);
|
|
104
|
-
expect(result).toBeInstanceOf(PasskeysUnsupportedError);
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
describe(verifyCredential.name, () => {
|
|
109
|
-
const endpoint = "https://api.passlock.dev";
|
|
110
|
-
const tenancyId = "dummyTenancyId";
|
|
111
|
-
const ctx = pipe(Context.make(Endpoint, { endpoint }), Context.add(Logger, loggerTest), Context.add(TenancyId, { tenancyId }));
|
|
112
|
-
const expectedRoute = `${endpoint}/${tenancyId}/passkey/registration/verification`;
|
|
113
|
-
describe("when the passkey exists", () => {
|
|
114
|
-
const mockResponse = {
|
|
115
|
-
_tag: "RegistrationSuccess",
|
|
116
|
-
code: "dummyCode",
|
|
117
|
-
id_token: "dummyIdToken",
|
|
118
|
-
principal: {
|
|
119
|
-
authenticatorId: "dummyPasskeyId",
|
|
120
|
-
},
|
|
121
|
-
};
|
|
122
|
-
it("should return a successful response", async () => {
|
|
123
|
-
fetchMock.mockGlobal().postOnce(expectedRoute, mockResponse);
|
|
124
|
-
const result = await pipe(verifyCredential("dummySessionToken", {}, {}), Micro.provideContext(ctx), Micro.runPromise);
|
|
125
|
-
expect(result).toStrictEqual(mockResponse);
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
describe(registerPasskey.name, () => {
|
|
130
|
-
const endpoint = "https://api.passlock.dev";
|
|
131
|
-
const tenancyId = "dummyTenancyId";
|
|
132
|
-
const username = "dummyUsername";
|
|
133
|
-
const registrationHelperTest = {
|
|
134
|
-
browserSupportsWebAuthn: () => true,
|
|
135
|
-
startRegistration: () => Promise.resolve({}),
|
|
136
|
-
};
|
|
137
|
-
const ctx = pipe(Context.make(Endpoint, { endpoint }), Context.add(Logger, loggerTest), Context.add(TenancyId, { tenancyId }), Context.add(RegistrationHelper, registrationHelperTest));
|
|
138
|
-
const optionsRoute = `${endpoint}/${tenancyId}/passkey/registration/options`;
|
|
139
|
-
const optionsResponse = {
|
|
140
|
-
optionsJSON: {},
|
|
141
|
-
sessionToken: "dummySessionToken",
|
|
142
|
-
};
|
|
143
|
-
const verificationRoute = `${endpoint}/${tenancyId}/passkey/registration/verification`;
|
|
144
|
-
const verificationResponse = {
|
|
145
|
-
_tag: "RegistrationSuccess",
|
|
146
|
-
code: "dummyCode",
|
|
147
|
-
id_token: "dummyIdToken",
|
|
148
|
-
principal: {
|
|
149
|
-
authenticatorId: "dummyPasskeyId",
|
|
150
|
-
},
|
|
151
|
-
};
|
|
152
|
-
it("should fetch the options and kick off the registration", async () => {
|
|
153
|
-
fetchMock.mockGlobal().postOnce(optionsRoute, optionsResponse);
|
|
154
|
-
fetchMock.mockGlobal().postOnce(verificationRoute, verificationResponse);
|
|
155
|
-
pipe(registerPasskey({ tenancyId, username }), Micro.provideContext(ctx), Micro.runPromise);
|
|
156
|
-
});
|
|
157
|
-
});
|
|
158
|
-
afterAll(() => {
|
|
159
|
-
fetchMock.unmockGlobal();
|
|
160
|
-
});
|
|
161
|
-
//# sourceMappingURL=registration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registration.test.js","sourceRoot":"","sources":["../../../src/passkey/registration/registration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { PasslockOptions } from "../../shared/options";
|
|
2
|
-
import { Logger } from "../../logger";
|
|
3
|
-
import { type CredentialMapping, type DeletionError, isDeletionError } from "./signals";
|
|
4
|
-
export declare const isPasskeyDeletionSupport: () => boolean;
|
|
5
|
-
export declare const deletePasskey: (identifiers: string | CredentialMapping, options: PasslockOptions, logger?: typeof Logger.Service) => Promise<boolean | DeletionError>;
|
|
6
|
-
export declare const deletePasskeyUnsafe: (passkeyId: string, options: PasslockOptions, logger?: typeof Logger.Service) => Promise<boolean>;
|
|
7
|
-
export { isDeletionError };
|
|
8
|
-
export type { DeletionError, CredentialMapping };
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/passkey/signals/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D,OAAO,EAAe,MAAM,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAElB,eAAe,EAGhB,MAAM,WAAW,CAAA;AAElB,eAAO,MAAM,wBAAwB,eAAuD,CAAA;AAE5F,eAAO,MAAM,aAAa,GACxB,aAAa,MAAM,GAAG,iBAAiB,EACvC,SAAS,eAAe,EACxB,SAAQ,OAAO,MAAM,CAAC,OAAqB,KAC1C,OAAO,CAAC,OAAO,GAAG,aAAa,CAOjC,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC9B,WAAW,MAAM,EACjB,SAAS,eAAe,EACxB,SAAQ,OAAO,MAAM,CAAC,OAAqB,KAC1C,OAAO,CAAC,OAAO,CAOjB,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA;AAC1B,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Micro, pipe } from "effect";
|
|
2
|
-
import { EventLogger, Logger } from "../../logger";
|
|
3
|
-
import { runToPromise, runToPromiseUnsafe } from "../../shared/promise";
|
|
4
|
-
import { deletePasskey as deletePasskeyM, isDeletionError, isPasskeyDeletionSupport as isPasskeyDeletionSupportM, signalCredentialRemoval, } from "./signals";
|
|
5
|
-
export const isPasskeyDeletionSupport = () => pipe(isPasskeyDeletionSupportM, Micro.runSync);
|
|
6
|
-
export const deletePasskey = (identifiers, options, logger = EventLogger) => {
|
|
7
|
-
const micro = typeof identifiers === "string"
|
|
8
|
-
? deletePasskeyM(identifiers, options)
|
|
9
|
-
: signalCredentialRemoval(identifiers);
|
|
10
|
-
return pipe(micro, Micro.provideService(Logger, logger), runToPromise);
|
|
11
|
-
};
|
|
12
|
-
export const deletePasskeyUnsafe = (passkeyId, options, logger = EventLogger) => {
|
|
13
|
-
const micro = typeof passkeyId === "string"
|
|
14
|
-
? deletePasskeyM(passkeyId, options)
|
|
15
|
-
: signalCredentialRemoval(passkeyId);
|
|
16
|
-
return pipe(micro, Micro.provideService(Logger, logger), runToPromiseUnsafe);
|
|
17
|
-
};
|
|
18
|
-
export { isDeletionError };
|
|
19
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/passkey/signals/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACvE,OAAO,EAGL,aAAa,IAAI,cAAc,EAC/B,eAAe,EACf,wBAAwB,IAAI,yBAAyB,EACrD,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAElB,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;AAE5F,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,WAAuC,EACvC,OAAwB,EACxB,SAAgC,WAAW,EACT,EAAE;IACpC,MAAM,KAAK,GACT,OAAO,WAAW,KAAK,QAAQ;QAC7B,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC;QACtC,CAAC,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAA;IAE1C,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAA;AACxE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,SAAiB,EACjB,OAAwB,EACxB,SAAgC,WAAW,EACzB,EAAE;IACpB,MAAM,KAAK,GACT,OAAO,SAAS,KAAK,QAAQ;QAC3B,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC;QACpC,CAAC,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAA;IAExC,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAA;AAC9E,CAAC,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/passkey/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAA;AAEvE;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,cAAc,GAAG,eAAe,CAAA;AAEjF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,QAAQ,GACR,mBAAmB,GACnB,aAAa,GACb,KAAK,GACL,OAAO,GACP,MAAM,CAAA;AAEV;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD,EAAE,EAAE,2BAA2B,CAAA;IAC/B,IAAI,EAAE,iCAAiC,CAAA;IACvC,SAAS,EAAE,eAAe,CAAA;IAC1B,gBAAgB,EAAE,KAAK,CAAC,6BAA6B,CAAC,CAAA;IACtD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kBAAkB,CAAC,EAAE,KAAK,CAAC,iCAAiC,CAAC,CAAA;IAC7D,sBAAsB,CAAC,EAAE,8BAA8B,CAAA;IACvD,KAAK,CAAC,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAA;IACtC,WAAW,CAAC,EAAE,+BAA+B,CAAA;IAC7C,kBAAkB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAC7C,UAAU,CAAC,EAAE,oCAAoC,CAAA;CAClD"}
|
package/dist/passkey/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/passkey/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/shared/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAevC,eAAO,MAAM,iBAAiB,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,eACxB,CAAA;;;;AAEhC,qBAAa,eAAgB,SAAQ,qBAA4C;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAAC;IACA,MAAM,CAAC,iBAAiB,QAPa,OAAO,KAAG,GAAG,IAAI,eAAe,CAOzB;CAC7C;;uBAKoF,MAAM;;AAH3F;;GAEG;AACH,qBAAa,QAAS,SAAQ,aAAkE;CAAG;AAEnG,eAAO,MAAM,aAAa,GAAI,eAE3B;IACD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,KAAG,QAAQ,CAAC,MAAM,CAA8B,CAAA;AAoBjD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,6DAMtD;IACD,GAAG,EAAE,GAAG,CAAA;IACR,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,0BAA0B;IAC1B,iBAAiB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,CAAC,CAAA;IAC7C,gCAAgC;IAChC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAA;IAC3D,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAmElC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/shared/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEvC;;;;;GAKG;AAEH;;GAEG;AAEH,MAAM,eAAe,GAAG,0BAA0B,CAAA;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAA0B,EAAE,CACxE,GAAG,YAAY,eAAe,CAAA;AAEhC,MAAM,OAAO,eAAgB,SAAQ,KAAK,CAAC,WAAW,CAAC,wBAAwB,CAG7E;IACA,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;;AAG9C;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAA2C;CAAG;AAEnG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,QAAQ,GAAG,eAAe,GAG3B,EAAoB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;AAOjD,MAAM,eAAe,GAAG,CAAC,OAAgB,EAA4B,EAAE;IACrE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC7C,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAElC,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAErD,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAElD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAA8B,EACvD,GAAG,EACH,OAAO,EACP,iBAAiB,EACjB,cAAc,GAAG,CAAC,GAAG,EAAY,EAAE,CAAC,KAAK,EACzC,KAAK,GAWN,EAAuC,EAAE,CACxC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IACjB,MAAM,WAAW,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAA;IAEnF,mEAAmE;IACnE,6CAA6C;IAC7C,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,kBAAkB;QAC1B,cAAc,EAAE,kBAAkB;QAClC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAA;IAEV,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAEpC,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC;QACvC,OAAO,EAAE,cAAc;QACvB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;KACjB,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC;QACrC,OAAO,EAAE,+BAA+B;QACxC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;KACjB,CAAC,CAAA;IAEF,MAAM,sBAAsB,GAAG,IAAI,eAAe,CAAC;QACjD,OAAO,EAAE,WAAW,KAAK,WAAW;QACpC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;KACjB,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QAC5C,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACxD,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY;KAC1B,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC7D,MAAM,cAAc,GAAG,WAAW,KAAK,kBAAkB,CAAA;IAEzD,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,cAAc,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;YACvC,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU;YACvB,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAsB;SACpD,CAAC,CAAA;QAEF,IAAI,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpC,CAAC;aAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC;gBAChC,GAAG,QAAQ;gBACX,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;aACjB,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC,CAAC,UAAU,CAAA;QAC1B,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;QAChE,OAAO,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC;YAChC,OAAO;YACP,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;SACjB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QACnC,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU;QACvB,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAsB;KACpD,CAAC,CAAA;IAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAA;AACvE,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/shared/options.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/shared/promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,EAAQ,MAAM,QAAQ,CAAA;AAGtD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAU,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAOhF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAU,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAqBlF,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../src/shared/promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAQ,KAAwB,EAAkB,EAAE;IACnF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAEhE,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;QAC1B,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,QAAQ;KAClB,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAQ,KAAwB,EAAc,EAAE;IACrF,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAE9C,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAA;IAEhD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,KAAK,CAAA;QAClB,CAAC;;YAAM,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAClD,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,YAAY,KAAK,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;QACzB,CAAC;;YAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAEpE,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;;QAC7D,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;AAC1C,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tenancy.d.ts","sourceRoot":"","sources":["../../src/shared/tenancy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;;wBAIR,MAAM;;AAF9B,qBAAa,SAAU,SAAQ,cAG5B;CAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tenancy.js","sourceRoot":"","sources":["../../src/shared/tenancy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,MAAM,OAAO,SAAU,SAAQ,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAGpD;CAAG"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|