@pelican-identity/auth-core 1.2.2 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,0BAA0B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const BASEURL = "http://localhost:8080";
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine/engine.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EAGpB,MAAM,gBAAgB,CAAC;AAYxB,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;AAMxC,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IAEnD,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,UAAU,CAAuB;IAEzC,OAAO,CAAC,iBAAiB,CAAC,CAAa;IAEvC,OAAO,CAAC,SAAS,CAEV;IAEP,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;gBAEzC,MAAM,EAAE,iBAAiB;IAsBrC,EAAE,CAAC,CAAC,SAAS,MAAM,mBAAmB,EACpC,KAAK,EAAE,CAAC,EACR,EAAE,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAWhC,KAAK;IAqCX,IAAI;YAOU,aAAa;YAiBb,cAAc;IAkC5B,OAAO,CAAC,aAAa;IAiCrB,OAAO,CAAC,iBAAiB;YAwCX,cAAc;IA4B5B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,YAAY;IAMpB,OAAO;IAMP,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,IAAI;CAIb"}
@@ -0,0 +1,237 @@
1
+ import CryptoService from "../utilities/crypto";
2
+ import QRCode from "qrcode";
3
+ import { storeAuthSession, getAuthSession, clearAuthSession, } from "../utilities/storage";
4
+ import { StateMachine } from "../utilities/stateMachine";
5
+ import { Transport } from "../utilities/transport";
6
+ import { BASEURL } from "../constants";
7
+ export class PelicanAuthentication {
8
+ constructor(config) {
9
+ this.crypto = new CryptoService();
10
+ this.stateMachine = new StateMachine();
11
+ this.sessionId = "";
12
+ this.sessionKey = null;
13
+ this.listeners = {};
14
+ if (!config.publicKey)
15
+ throw new Error("Missing publicKey");
16
+ if (!config.projectId)
17
+ throw new Error("Missing projectId");
18
+ if (!config.authType)
19
+ throw new Error("Missing authType");
20
+ this.config = {
21
+ continuousMode: false,
22
+ forceQRCode: false,
23
+ ...config,
24
+ };
25
+ this.stateMachine.subscribe((s) => this.emit("state", s));
26
+ this.attachVisibilityRecovery();
27
+ }
28
+ on(event, cb) {
29
+ var _a;
30
+ (_a = this.listeners)[event] ?? (_a[event] = new Set());
31
+ this.listeners[event].add(cb);
32
+ return () => this.listeners[event].delete(cb);
33
+ }
34
+ async start() {
35
+ if (this.stateMachine.current !== "idle")
36
+ return;
37
+ this.resetSession();
38
+ this.stateMachine.transition("initializing");
39
+ try {
40
+ const relay = await this.fetchRelayUrl();
41
+ this.sessionKey = this.crypto.generateSymmetricKey();
42
+ this.sessionId = crypto.randomUUID() + crypto.randomUUID();
43
+ this.transport = new Transport({
44
+ onOpen: () => {
45
+ this.transport.send({
46
+ type: "register",
47
+ sessionID: this.sessionId,
48
+ ...this.config,
49
+ });
50
+ this.stateMachine.transition("awaiting-pair");
51
+ },
52
+ onMessage: (msg) => this.handleMessage(msg),
53
+ onError: () => this.fail(new Error("WebSocket connection failed")),
54
+ });
55
+ this.transport.connect(relay);
56
+ await this.emitEntryPoint();
57
+ }
58
+ catch (err) {
59
+ this.fail(err instanceof Error ? err : new Error("Start failed"));
60
+ }
61
+ }
62
+ stop() {
63
+ this.terminate(false);
64
+ }
65
+ async fetchRelayUrl() {
66
+ const { publicKey, projectId, authType } = this.config;
67
+ const res = await fetch(`${BASEURL}/relay?public_key=${publicKey}&auth_type=${authType}&project_id=${projectId}`);
68
+ if (!res.ok) {
69
+ throw new Error("Failed to fetch relay URL");
70
+ }
71
+ const json = await res.json();
72
+ return json.relay_url;
73
+ }
74
+ async emitEntryPoint() {
75
+ const payload = {
76
+ sessionID: this.sessionId,
77
+ sessionKey: this.sessionKey,
78
+ publicKey: this.config.publicKey,
79
+ authType: this.config.authType,
80
+ projectId: this.config.projectId,
81
+ url: window.location.href,
82
+ };
83
+ const shouldUseQR = this.config.forceQRCode ||
84
+ !/Android|iPhone|iPad/i.test(navigator.userAgent);
85
+ if (!shouldUseQR && this.sessionKey) {
86
+ storeAuthSession(this.sessionId, this.sessionKey, 5 * 60000);
87
+ this.emit("deeplink", `pelicanvault://auth/deep-link?data=${encodeURIComponent(JSON.stringify(payload))}`);
88
+ }
89
+ else {
90
+ const qr = await QRCode.toDataURL(JSON.stringify(payload), {
91
+ type: "image/png",
92
+ scale: 3,
93
+ color: { light: "#FFFFF5", dark: "#121212" },
94
+ });
95
+ this.emit("qr", qr);
96
+ }
97
+ }
98
+ handleMessage(msg) {
99
+ switch (msg.type) {
100
+ case "paired":
101
+ this.stateMachine.transition("paired");
102
+ this.transport.send({
103
+ type: "authenticate",
104
+ sessionID: this.sessionId,
105
+ ...this.config,
106
+ url: window.location.href,
107
+ });
108
+ return;
109
+ case "phone-auth-success":
110
+ this.handleAuthSuccess(msg);
111
+ return;
112
+ case "phone-terminated":
113
+ this.fail(new Error("Authenticating device terminated the connection"));
114
+ this.restartIfContinuous();
115
+ return;
116
+ case "confirmed":
117
+ this.terminate(true);
118
+ this.restartIfContinuous();
119
+ return;
120
+ }
121
+ }
122
+ handleAuthSuccess(msg) {
123
+ if (!this.sessionKey || !msg.cipher || !msg.nonce) {
124
+ this.fail(new Error("Invalid authentication payload"));
125
+ this.restartIfContinuous();
126
+ return;
127
+ }
128
+ try {
129
+ const decrypted = this.crypto.decryptSymmetric({
130
+ encrypted: { cipher: msg.cipher, nonce: msg.nonce },
131
+ keyString: this.sessionKey,
132
+ });
133
+ if (!decrypted) {
134
+ this.fail(new Error("Invalid authentication data"));
135
+ this.restartIfContinuous();
136
+ return;
137
+ }
138
+ const result = JSON.parse(decrypted);
139
+ this.emit("success", result);
140
+ this.stateMachine.transition("authenticated");
141
+ this.transport?.send({
142
+ type: "confirm",
143
+ sessionID: this.sessionId,
144
+ });
145
+ }
146
+ catch {
147
+ this.fail(new Error("Failed to decrypt authentication data"));
148
+ this.restartIfContinuous();
149
+ }
150
+ }
151
+ async getCachedEntry(cached) {
152
+ try {
153
+ const res = await fetch(`${BASEURL}/session?session_id=${cached.sessionId}`);
154
+ if (!res.ok)
155
+ throw new Error("Invalid session");
156
+ const data = await res.json();
157
+ const decrypted = this.crypto.decryptSymmetric({
158
+ encrypted: { cipher: data.cipher, nonce: data.nonce },
159
+ keyString: cached.sessionKey,
160
+ });
161
+ if (!decrypted) {
162
+ this.fail(new Error("Invalid session data"));
163
+ this.restartIfContinuous();
164
+ return;
165
+ }
166
+ const result = JSON.parse(decrypted);
167
+ this.emit("success", result);
168
+ clearAuthSession();
169
+ }
170
+ catch {
171
+ this.fail(new Error("Session recovery failed"));
172
+ this.restartIfContinuous();
173
+ }
174
+ }
175
+ attachVisibilityRecovery() {
176
+ this.visibilityHandler = async () => {
177
+ if (document.visibilityState !== "visible")
178
+ return;
179
+ const cached = getAuthSession();
180
+ if (!cached)
181
+ return;
182
+ await this.getCachedEntry(cached);
183
+ };
184
+ document.addEventListener("visibilitychange", this.visibilityHandler);
185
+ }
186
+ detachVisibilityRecovery() {
187
+ if (this.visibilityHandler) {
188
+ document.removeEventListener("visibilitychange", this.visibilityHandler);
189
+ this.visibilityHandler = undefined;
190
+ }
191
+ }
192
+ terminate(success) {
193
+ if (!this.transport)
194
+ return;
195
+ if (!success) {
196
+ this.transport?.send({
197
+ type: "client-terminated",
198
+ sessionID: this.sessionId,
199
+ projectId: this.config.projectId,
200
+ publicKey: this.config.publicKey,
201
+ authType: this.config.authType,
202
+ });
203
+ }
204
+ this.transport?.close();
205
+ clearAuthSession();
206
+ this.resetSession();
207
+ if (!this.config.continuousMode) {
208
+ this.detachVisibilityRecovery();
209
+ }
210
+ this.stateMachine.transition(success ? "confirmed" : "idle");
211
+ }
212
+ restartIfContinuous() {
213
+ this.stateMachine.transition("idle");
214
+ if (!this.config.continuousMode)
215
+ return;
216
+ setTimeout(() => {
217
+ this.start();
218
+ }, 150);
219
+ }
220
+ resetSession() {
221
+ this.sessionId = "";
222
+ this.sessionKey = null;
223
+ }
224
+ destroy() {
225
+ this.detachVisibilityRecovery();
226
+ this.transport?.close();
227
+ this.listeners = {};
228
+ }
229
+ emit(event, payload) {
230
+ this.listeners[event]?.forEach((cb) => cb(payload));
231
+ }
232
+ fail(err) {
233
+ this.emit("error", err);
234
+ this.stateMachine.transition("error");
235
+ }
236
+ }
237
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine/engine.ts"],"names":[],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -155,8 +155,13 @@ type TransportHandlers = {
155
155
  declare class Transport {
156
156
  private socket?;
157
157
  private handlers;
158
+ private reconnectAttempts;
159
+ private maxReconnectAttempts;
160
+ private isExplicitlyClosed;
161
+ private url?;
158
162
  constructor(handlers: TransportHandlers);
159
163
  connect(url: string): void;
164
+ private attemptReconnect;
160
165
  send(payload: ISocketMessage): void;
161
166
  close(): void;
162
167
  }
package/dist/index.d.ts CHANGED
@@ -155,8 +155,13 @@ type TransportHandlers = {
155
155
  declare class Transport {
156
156
  private socket?;
157
157
  private handlers;
158
+ private reconnectAttempts;
159
+ private maxReconnectAttempts;
160
+ private isExplicitlyClosed;
161
+ private url?;
158
162
  constructor(handlers: TransportHandlers);
159
163
  connect(url: string): void;
164
+ private attemptReconnect;
160
165
  send(payload: ISocketMessage): void;
161
166
  close(): void;
162
167
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC"}