rivet-design 0.21.1 → 0.21.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/dist/agent-variants/contracts.d.ts +410 -410
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -9
- package/dist/index.js.map +1 -1
- package/dist/library/BrowserSessions.d.ts +24 -8
- package/dist/library/BrowserSessions.d.ts.map +1 -1
- package/dist/library/BrowserSessions.js +67 -45
- package/dist/library/BrowserSessions.js.map +1 -1
- package/dist/library/HubServer.js +1 -1
- package/dist/library/HubServer.js.map +1 -1
- package/dist/routes/account.d.ts.map +1 -1
- package/dist/routes/account.js +7 -2
- package/dist/routes/account.js.map +1 -1
- package/dist/routes/installRef.d.ts +3 -0
- package/dist/routes/installRef.d.ts.map +1 -0
- package/dist/routes/installRef.js +18 -0
- package/dist/routes/installRef.js.map +1 -0
- package/dist/routes/library/app.d.ts.map +1 -1
- package/dist/routes/library/app.js +3 -8
- package/dist/routes/library/app.js.map +1 -1
- package/dist/routes/library/browserAccess.d.ts +0 -1
- package/dist/routes/library/browserAccess.d.ts.map +1 -1
- package/dist/routes/library/browserAccess.js +27 -20
- package/dist/routes/library/browserAccess.js.map +1 -1
- package/dist/routes/library/index.d.ts.map +1 -1
- package/dist/routes/library/index.js +2 -4
- package/dist/routes/library/index.js.map +1 -1
- package/dist/routes/library/middleware.d.ts +1 -1
- package/dist/routes/library/middleware.d.ts.map +1 -1
- package/dist/routes/library/middleware.js +15 -3
- package/dist/routes/library/middleware.js.map +1 -1
- package/dist/routes/variantRequestSchema.d.ts +7 -7
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/dist/services/AuthService.d.ts.map +1 -1
- package/dist/services/AuthService.js +41 -15
- package/dist/services/AuthService.js.map +1 -1
- package/dist/services/BrowserAgentClient.d.ts.map +1 -1
- package/dist/services/BrowserAgentClient.js +13 -3
- package/dist/services/BrowserAgentClient.js.map +1 -1
- package/dist/services/ConfigManager.d.ts +23 -3
- package/dist/services/ConfigManager.d.ts.map +1 -1
- package/dist/services/ConfigManager.js +117 -24
- package/dist/services/ConfigManager.js.map +1 -1
- package/dist/services/GatewayClient.d.ts.map +1 -1
- package/dist/services/GatewayClient.js +3 -2
- package/dist/services/GatewayClient.js.map +1 -1
- package/dist/services/IntegrationsClient.d.ts +3 -3
- package/dist/services/IntegrationsClient.d.ts.map +1 -1
- package/dist/services/IntegrationsClient.js +5 -11
- package/dist/services/IntegrationsClient.js.map +1 -1
- package/dist/services/ProjectRegistry.d.ts +2 -2
- package/dist/services/PrototypeDeployService.d.ts.map +1 -1
- package/dist/services/PrototypeDeployService.js +3 -2
- package/dist/services/PrototypeDeployService.js.map +1 -1
- package/dist/services/authUpdate.d.ts +8 -0
- package/dist/services/authUpdate.d.ts.map +1 -0
- package/dist/services/authUpdate.js +21 -0
- package/dist/services/authUpdate.js.map +1 -0
- package/dist/services/pendingLogin.d.ts +2 -0
- package/dist/services/pendingLogin.d.ts.map +1 -1
- package/dist/services/pendingLogin.js +4 -2
- package/dist/services/pendingLogin.js.map +1 -1
- package/dist/services/profiles/DesignProfiles.d.ts +6 -6
- package/dist/services/profiles/ProfilePlanning.d.ts +4 -4
- package/dist/services/profiles/ReferenceReader.d.ts +3 -3
- package/dist/services/profiles/profileContext.d.ts +1 -1
- package/dist/storage/library/BrowserAuthorizationRecords.d.ts +54 -0
- package/dist/storage/library/BrowserAuthorizationRecords.d.ts.map +1 -0
- package/dist/storage/library/BrowserAuthorizationRecords.js +175 -0
- package/dist/storage/library/BrowserAuthorizationRecords.js.map +1 -0
- package/dist/storage/library/database.d.ts +2 -1
- package/dist/storage/library/database.d.ts.map +1 -1
- package/dist/storage/library/database.js +5 -36
- package/dist/storage/library/database.js.map +1 -1
- package/dist/storage/library/migrations.d.ts +1 -0
- package/dist/storage/library/migrations.d.ts.map +1 -1
- package/dist/storage/library/migrations.js +14 -1
- package/dist/storage/library/migrations.js.map +1 -1
- package/dist/storage/library/schema/browserAuthorization.d.ts +191 -0
- package/dist/storage/library/schema/browserAuthorization.d.ts.map +1 -0
- package/dist/storage/library/schema/browserAuthorization.js +20 -0
- package/dist/storage/library/schema/browserAuthorization.js.map +1 -0
- package/dist/storage/profiles/ProfilePlans.d.ts +15 -15
- package/dist/storage/profiles/ProfileRecords.d.ts +3 -3
- package/dist/storage/profiles/planSchema.d.ts +4 -4
- package/dist/storage/profiles/schema.d.ts +2 -2
- package/dist/types/cosmos-profile.d.ts +6 -6
- package/dist/types/cosmos.d.ts +20 -20
- package/dist/types/design-library.d.ts +2 -2
- package/dist/types/design-profile.d.ts +14 -14
- package/dist/types/guidance.d.ts +4 -4
- package/dist/types/reference-connectors.d.ts +10 -10
- package/dist/types/reference-onboarding.d.ts +43 -43
- package/dist/types/reference-pages.d.ts +6 -6
- package/dist/types/variant-reference.d.ts +4 -4
- package/dist/utils/installRef.d.ts +8 -0
- package/dist/utils/installRef.d.ts.map +1 -0
- package/dist/utils/installRef.js +34 -0
- package/dist/utils/installRef.js.map +1 -0
- package/package.json +2 -2
- package/src/ui/dist/assets/LibraryEntry-B5kPF3Ey.js +36 -0
- package/src/ui/dist/assets/{main-CEV9QrPk.js → main-Er_TRZTd.js} +85 -85
- package/src/ui/dist/index.html +1 -1
- package/src/ui/dist/assets/LibraryEntry-D962AMoc.js +0 -36
|
@@ -8,11 +8,11 @@ export declare const recordProfileRequest: (request: ChangeRequest) => Promise<P
|
|
|
8
8
|
export declare const profileReferences: (comment: CommentChangeItem, dataUrl?: string) => {
|
|
9
9
|
id: string;
|
|
10
10
|
title: string;
|
|
11
|
+
url?: string | undefined;
|
|
11
12
|
image?: {
|
|
12
13
|
hash: string;
|
|
13
14
|
mimeType: "image/png" | "image/jpeg" | "image/webp" | "image/gif" | "image/avif";
|
|
14
15
|
} | undefined;
|
|
15
|
-
url?: string | undefined;
|
|
16
16
|
reason?: string | undefined;
|
|
17
17
|
}[] | undefined;
|
|
18
18
|
//# sourceMappingURL=profileContext.d.ts.map
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface AuthorizationSnapshot {
|
|
2
|
+
accountId: string | null;
|
|
3
|
+
generation: string;
|
|
4
|
+
}
|
|
5
|
+
interface AccountMutation {
|
|
6
|
+
read: () => string | null;
|
|
7
|
+
next: () => string | null;
|
|
8
|
+
write: () => void;
|
|
9
|
+
isLogout?: boolean;
|
|
10
|
+
expectedGeneration?: string;
|
|
11
|
+
isRecovery?: boolean;
|
|
12
|
+
isIdentityEnrichment?: () => boolean;
|
|
13
|
+
}
|
|
14
|
+
interface CredentialInput {
|
|
15
|
+
scope: string;
|
|
16
|
+
digest: string;
|
|
17
|
+
kind: 'session' | 'launch';
|
|
18
|
+
expiresAt: number;
|
|
19
|
+
now: number;
|
|
20
|
+
readIdentity: () => string | null;
|
|
21
|
+
expectedGeneration?: string;
|
|
22
|
+
}
|
|
23
|
+
interface CredentialLookup {
|
|
24
|
+
scope: string;
|
|
25
|
+
digest: string;
|
|
26
|
+
now: number;
|
|
27
|
+
readIdentity: () => string | null;
|
|
28
|
+
}
|
|
29
|
+
export declare class AuthorizationUnavailable extends Error {
|
|
30
|
+
constructor();
|
|
31
|
+
}
|
|
32
|
+
export declare class AuthorizationChanged extends Error {
|
|
33
|
+
constructor();
|
|
34
|
+
}
|
|
35
|
+
export declare class BrowserAuthorizationRecords {
|
|
36
|
+
private readonly db;
|
|
37
|
+
constructor(databasePath: string);
|
|
38
|
+
private authority;
|
|
39
|
+
private requireAccount;
|
|
40
|
+
snapshot(readIdentity: () => string | null): AuthorizationSnapshot;
|
|
41
|
+
signInGeneration(readIdentity: () => string | null): string;
|
|
42
|
+
mutateAccount(input: AccountMutation): AuthorizationSnapshot;
|
|
43
|
+
saveSettings(write: () => void): void;
|
|
44
|
+
create(input: CredentialInput): void;
|
|
45
|
+
isValid(input: CredentialLookup): boolean;
|
|
46
|
+
exchange(input: CredentialLookup & {
|
|
47
|
+
sessionDigest: string;
|
|
48
|
+
expiresAt: number;
|
|
49
|
+
}): boolean;
|
|
50
|
+
revoke(scope: string, digest: string): void;
|
|
51
|
+
close(): void;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=BrowserAuthorizationRecords.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrowserAuthorizationRecords.d.ts","sourceRoot":"","sources":["../../../src/storage/library/BrowserAuthorizationRecords.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC;CACtC;AAED,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CACnC;AAID,qBAAa,wBAAyB,SAAQ,KAAK;;CAMlD;AAED,qBAAa,oBAAqB,SAAQ,KAAK;;CAI9C;AAED,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAA6C;gBAEpD,YAAY,EAAE,MAAM;IAOhC,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,cAAc;IAOtB,QAAQ,CAAC,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,qBAAqB;IAIlE,gBAAgB,CAAC,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,MAAM;IAO3D,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,qBAAqB;IA2C5D,YAAY,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI;IAIrC,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAyBpC,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAuBzC,QAAQ,CACN,KAAK,EAAE,gBAAgB,GAAG;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GACrE,OAAO;IAuCV,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAY3C,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BrowserAuthorizationRecords = exports.AuthorizationChanged = exports.AuthorizationUnavailable = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const drizzle_orm_1 = require("drizzle-orm");
|
|
6
|
+
const database_1 = require("./database");
|
|
7
|
+
const migrations_1 = require("./migrations");
|
|
8
|
+
const browserAuthorization_1 = require("./schema/browserAuthorization");
|
|
9
|
+
const AUTHORITY_SINGLETON = 1;
|
|
10
|
+
class AuthorizationUnavailable extends Error {
|
|
11
|
+
constructor() {
|
|
12
|
+
super('Browser authorization is temporarily unavailable. Sign in again or retry.');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.AuthorizationUnavailable = AuthorizationUnavailable;
|
|
16
|
+
class AuthorizationChanged extends Error {
|
|
17
|
+
constructor() {
|
|
18
|
+
super('Rivet account changed during sign-in. Please try again.');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.AuthorizationChanged = AuthorizationChanged;
|
|
22
|
+
class BrowserAuthorizationRecords {
|
|
23
|
+
db;
|
|
24
|
+
constructor(databasePath) {
|
|
25
|
+
this.db = (0, database_1.openDurableDatabaseSync)({
|
|
26
|
+
databasePath,
|
|
27
|
+
schema: migrations_1.BROWSER_AUTHORIZATION_SCHEMA,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
authority(accountId) {
|
|
31
|
+
const record = this.db.select().from(browserAuthorization_1.browserAuthority).get();
|
|
32
|
+
if (record)
|
|
33
|
+
return record;
|
|
34
|
+
const initial = {
|
|
35
|
+
singleton: AUTHORITY_SINGLETON,
|
|
36
|
+
accountId,
|
|
37
|
+
generation: (0, crypto_1.randomUUID)(),
|
|
38
|
+
operationId: null,
|
|
39
|
+
phase: 'ready',
|
|
40
|
+
};
|
|
41
|
+
this.db.insert(browserAuthorization_1.browserAuthority).values(initial).run();
|
|
42
|
+
return initial;
|
|
43
|
+
}
|
|
44
|
+
requireAccount(accountId) {
|
|
45
|
+
const authority = this.authority(accountId);
|
|
46
|
+
if (authority.phase !== 'ready' || authority.accountId !== accountId)
|
|
47
|
+
throw new AuthorizationUnavailable();
|
|
48
|
+
return { accountId, generation: authority.generation };
|
|
49
|
+
}
|
|
50
|
+
snapshot(readIdentity) {
|
|
51
|
+
return (0, database_1.transaction)(this.db, () => this.requireAccount(readIdentity()));
|
|
52
|
+
}
|
|
53
|
+
signInGeneration(readIdentity) {
|
|
54
|
+
return (0, database_1.transaction)(this.db, () => this.authority(readIdentity()).generation);
|
|
55
|
+
}
|
|
56
|
+
mutateAccount(input) {
|
|
57
|
+
const reserved = (0, database_1.transaction)(this.db, () => {
|
|
58
|
+
const accountId = input.read();
|
|
59
|
+
const authority = this.authority(accountId);
|
|
60
|
+
if (input.expectedGeneration !== undefined &&
|
|
61
|
+
((!input.isRecovery &&
|
|
62
|
+
(authority.phase !== 'ready' || authority.accountId !== accountId)) ||
|
|
63
|
+
authority.generation !== input.expectedGeneration))
|
|
64
|
+
throw new AuthorizationChanged();
|
|
65
|
+
const nextAccountId = input.next();
|
|
66
|
+
const mustRevoke = input.isLogout ||
|
|
67
|
+
authority.accountId !== accountId ||
|
|
68
|
+
(accountId !== nextAccountId && !input.isIdentityEnrichment?.());
|
|
69
|
+
const reservation = {
|
|
70
|
+
accountId: nextAccountId,
|
|
71
|
+
generation: mustRevoke ? (0, crypto_1.randomUUID)() : authority.generation,
|
|
72
|
+
operationId: (0, crypto_1.randomUUID)(),
|
|
73
|
+
phase: 'changing',
|
|
74
|
+
};
|
|
75
|
+
this.db.update(browserAuthorization_1.browserAuthority).set(reservation).run();
|
|
76
|
+
return reservation;
|
|
77
|
+
});
|
|
78
|
+
return (0, database_1.transaction)(this.db, () => {
|
|
79
|
+
const authority = this.db.select().from(browserAuthorization_1.browserAuthority).get();
|
|
80
|
+
if (authority?.operationId !== reserved.operationId)
|
|
81
|
+
throw new AuthorizationChanged();
|
|
82
|
+
input.write();
|
|
83
|
+
this.db
|
|
84
|
+
.update(browserAuthorization_1.browserCredentials)
|
|
85
|
+
.set({ accountId: reserved.accountId })
|
|
86
|
+
.where((0, drizzle_orm_1.eq)(browserAuthorization_1.browserCredentials.generation, reserved.generation))
|
|
87
|
+
.run();
|
|
88
|
+
this.db
|
|
89
|
+
.update(browserAuthorization_1.browserAuthority)
|
|
90
|
+
.set({ phase: 'ready', operationId: null })
|
|
91
|
+
.run();
|
|
92
|
+
return { accountId: reserved.accountId, generation: reserved.generation };
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
saveSettings(write) {
|
|
96
|
+
(0, database_1.transaction)(this.db, write);
|
|
97
|
+
}
|
|
98
|
+
create(input) {
|
|
99
|
+
(0, database_1.transaction)(this.db, () => {
|
|
100
|
+
const snapshot = this.requireAccount(input.readIdentity());
|
|
101
|
+
if (input.expectedGeneration !== undefined &&
|
|
102
|
+
input.expectedGeneration !== snapshot.generation)
|
|
103
|
+
throw new AuthorizationChanged();
|
|
104
|
+
this.db
|
|
105
|
+
.delete(browserAuthorization_1.browserCredentials)
|
|
106
|
+
.where((0, drizzle_orm_1.lte)(browserAuthorization_1.browserCredentials.expiresAt, input.now))
|
|
107
|
+
.run();
|
|
108
|
+
this.db
|
|
109
|
+
.insert(browserAuthorization_1.browserCredentials)
|
|
110
|
+
.values({
|
|
111
|
+
...snapshot,
|
|
112
|
+
scope: input.scope,
|
|
113
|
+
digest: input.digest,
|
|
114
|
+
kind: input.kind,
|
|
115
|
+
expiresAt: input.expiresAt,
|
|
116
|
+
})
|
|
117
|
+
.run();
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
isValid(input) {
|
|
121
|
+
return (0, database_1.transaction)(this.db, () => {
|
|
122
|
+
const snapshot = this.requireAccount(input.readIdentity());
|
|
123
|
+
const credential = this.db
|
|
124
|
+
.select()
|
|
125
|
+
.from(browserAuthorization_1.browserCredentials)
|
|
126
|
+
.where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(browserAuthorization_1.browserCredentials.digest, input.digest), (0, drizzle_orm_1.eq)(browserAuthorization_1.browserCredentials.scope, input.scope), (0, drizzle_orm_1.eq)(browserAuthorization_1.browserCredentials.kind, 'session')))
|
|
127
|
+
.get();
|
|
128
|
+
return Boolean(credential &&
|
|
129
|
+
credential.expiresAt > input.now &&
|
|
130
|
+
credential.generation === snapshot.generation &&
|
|
131
|
+
credential.accountId === snapshot.accountId);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
exchange(input) {
|
|
135
|
+
return (0, database_1.transaction)(this.db, () => {
|
|
136
|
+
const snapshot = this.requireAccount(input.readIdentity());
|
|
137
|
+
const credential = this.db
|
|
138
|
+
.select()
|
|
139
|
+
.from(browserAuthorization_1.browserCredentials)
|
|
140
|
+
.where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(browserAuthorization_1.browserCredentials.digest, input.digest), (0, drizzle_orm_1.eq)(browserAuthorization_1.browserCredentials.scope, input.scope), (0, drizzle_orm_1.eq)(browserAuthorization_1.browserCredentials.kind, 'launch')))
|
|
141
|
+
.get();
|
|
142
|
+
if (!credential ||
|
|
143
|
+
credential.expiresAt <= input.now ||
|
|
144
|
+
credential.generation !== snapshot.generation ||
|
|
145
|
+
credential.accountId !== snapshot.accountId)
|
|
146
|
+
return false;
|
|
147
|
+
this.db
|
|
148
|
+
.delete(browserAuthorization_1.browserCredentials)
|
|
149
|
+
.where((0, drizzle_orm_1.eq)(browserAuthorization_1.browserCredentials.digest, input.digest))
|
|
150
|
+
.run();
|
|
151
|
+
this.db
|
|
152
|
+
.insert(browserAuthorization_1.browserCredentials)
|
|
153
|
+
.values({
|
|
154
|
+
...snapshot,
|
|
155
|
+
digest: input.sessionDigest,
|
|
156
|
+
scope: input.scope,
|
|
157
|
+
kind: 'session',
|
|
158
|
+
expiresAt: input.expiresAt,
|
|
159
|
+
})
|
|
160
|
+
.run();
|
|
161
|
+
return true;
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
revoke(scope, digest) {
|
|
165
|
+
this.db
|
|
166
|
+
.delete(browserAuthorization_1.browserCredentials)
|
|
167
|
+
.where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(browserAuthorization_1.browserCredentials.scope, scope), (0, drizzle_orm_1.eq)(browserAuthorization_1.browserCredentials.digest, digest)))
|
|
168
|
+
.run();
|
|
169
|
+
}
|
|
170
|
+
close() {
|
|
171
|
+
(0, database_1.closeDatabase)(this.db);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
exports.BrowserAuthorizationRecords = BrowserAuthorizationRecords;
|
|
175
|
+
//# sourceMappingURL=BrowserAuthorizationRecords.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrowserAuthorizationRecords.js","sourceRoot":"","sources":["../../../src/storage/library/BrowserAuthorizationRecords.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,8 @@ interface OpenDatabaseOptions {
|
|
|
5
5
|
migrations?: readonly string[];
|
|
6
6
|
}
|
|
7
7
|
export declare const closeDatabase: (db: ReturnType<typeof drizzle>) => void;
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const openDurableDatabaseSync: ({ databasePath, schema, migrations, }: OpenDatabaseOptions) => ReturnType<typeof drizzle>;
|
|
9
|
+
export declare const openDurableDatabase: (options: OpenDatabaseOptions) => Promise<ReturnType<typeof drizzle>>;
|
|
9
10
|
export declare const transaction: <T>(db: ReturnType<typeof drizzle>, operation: () => T) => T;
|
|
10
11
|
export {};
|
|
11
12
|
//# sourceMappingURL=database.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/storage/library/database.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD,UAAU,mBAAmB;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAKD,eAAO,MAAM,aAAa,GAAI,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC,KAAG,IAE9D,CAAC;AAEF,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/storage/library/database.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD,UAAU,mBAAmB;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAKD,eAAO,MAAM,aAAa,GAAI,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC,KAAG,IAE9D,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,uCAIrC,mBAAmB,KAAG,UAAU,CAAC,OAAO,OAAO,CA8CjD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,mBAAmB,KAC3B,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAqC,CAAC;AAE3E,eAAO,MAAM,WAAW,GAAI,CAAC,EAC3B,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC,EAC9B,WAAW,MAAM,CAAC,KACjB,CAYF,CAAC"}
|
|
@@ -1,42 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
4
|
};
|
|
38
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.transaction = exports.openDurableDatabase = exports.closeDatabase = void 0;
|
|
6
|
+
exports.transaction = exports.openDurableDatabase = exports.openDurableDatabaseSync = exports.closeDatabase = void 0;
|
|
40
7
|
const drizzle_orm_1 = require("drizzle-orm");
|
|
41
8
|
const fs_1 = __importDefault(require("fs"));
|
|
42
9
|
const node_sqlite_1 = require("drizzle-orm/node-sqlite");
|
|
@@ -47,9 +14,9 @@ const closeDatabase = (db) => {
|
|
|
47
14
|
db.$client.close();
|
|
48
15
|
};
|
|
49
16
|
exports.closeDatabase = closeDatabase;
|
|
50
|
-
const
|
|
17
|
+
const openDurableDatabaseSync = ({ databasePath, schema, migrations = [], }) => {
|
|
18
|
+
const { DatabaseSync } = process.getBuiltinModule('node:sqlite');
|
|
51
19
|
const supportedVersion = INITIAL_SCHEMA_VERSION + migrations.length;
|
|
52
|
-
const { DatabaseSync } = await Promise.resolve().then(() => __importStar(require('node:sqlite')));
|
|
53
20
|
fs_1.default.mkdirSync(path_1.default.dirname(databasePath), { recursive: true, mode: 0o700 });
|
|
54
21
|
const db = new DatabaseSync(databasePath);
|
|
55
22
|
try {
|
|
@@ -92,6 +59,8 @@ const openDurableDatabase = async ({ databasePath, schema, migrations = [], }) =
|
|
|
92
59
|
throw error;
|
|
93
60
|
}
|
|
94
61
|
};
|
|
62
|
+
exports.openDurableDatabaseSync = openDurableDatabaseSync;
|
|
63
|
+
const openDurableDatabase = async (options) => (0, exports.openDurableDatabaseSync)(options);
|
|
95
64
|
exports.openDurableDatabase = openDurableDatabase;
|
|
96
65
|
const transaction = (db, operation) => {
|
|
97
66
|
db.$client.exec('BEGIN IMMEDIATE');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/storage/library/database.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/storage/library/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,4 +3,5 @@ export declare const REGISTRY_SCHEMA = "\n CREATE TABLE projects (\n id TEXT
|
|
|
3
3
|
export declare const COORDINATOR_SCHEMA = "CREATE TABLE coordinator(singleton INTEGER PRIMARY KEY CHECK(singleton=1), pid INTEGER NOT NULL, token TEXT NOT NULL, port INTEGER)";
|
|
4
4
|
export declare const REGISTRY_MIGRATIONS: readonly ["ALTER TABLE projects ADD COLUMN removed_at TEXT", "ALTER TABLE projects ADD COLUMN pinned_at TEXT"];
|
|
5
5
|
export declare const PROJECT_RUNTIME_SCHEMA = "\n CREATE TABLE project_runtime (\n singleton INTEGER PRIMARY KEY CHECK(singleton = 1),\n pid INTEGER NOT NULL CHECK(pid > 0),\n token TEXT NOT NULL,\n phase TEXT NOT NULL CHECK(phase IN ('active', 'starting', 'retiring'))\n );\n";
|
|
6
|
+
export declare const BROWSER_AUTHORIZATION_SCHEMA = "\n CREATE TABLE browser_authority (\n singleton INTEGER PRIMARY KEY CHECK(singleton = 1),\n account_id TEXT, generation TEXT NOT NULL,\n operation_id TEXT, phase TEXT NOT NULL CHECK(phase IN ('ready', 'changing'))\n );\n CREATE TABLE browser_credentials (\n digest TEXT PRIMARY KEY, scope TEXT NOT NULL,\n account_id TEXT, generation TEXT NOT NULL,\n kind TEXT NOT NULL CHECK(kind IN ('session', 'launch')),\n expires_at INTEGER NOT NULL\n );\n";
|
|
6
7
|
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/storage/library/migrations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,osDAoCzB,CAAC;AAEF,eAAO,MAAM,eAAe,smBAmB3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,wIACwG,CAAC;AAExI,eAAO,MAAM,mBAAmB,gHAGtB,CAAC;AAEX,eAAO,MAAM,sBAAsB,wPAOlC,CAAC"}
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/storage/library/migrations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,osDAoCzB,CAAC;AAEF,eAAO,MAAM,eAAe,smBAmB3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,wIACwG,CAAC;AAExI,eAAO,MAAM,mBAAmB,gHAGtB,CAAC;AAEX,eAAO,MAAM,sBAAsB,wPAOlC,CAAC;AAEF,eAAO,MAAM,4BAA4B,0dAYxC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PROJECT_RUNTIME_SCHEMA = exports.REGISTRY_MIGRATIONS = exports.COORDINATOR_SCHEMA = exports.REGISTRY_SCHEMA = exports.BUNDLE_SCHEMA = void 0;
|
|
3
|
+
exports.BROWSER_AUTHORIZATION_SCHEMA = exports.PROJECT_RUNTIME_SCHEMA = exports.REGISTRY_MIGRATIONS = exports.COORDINATOR_SCHEMA = exports.REGISTRY_SCHEMA = exports.BUNDLE_SCHEMA = void 0;
|
|
4
4
|
exports.BUNDLE_SCHEMA = `
|
|
5
5
|
CREATE TABLE project (
|
|
6
6
|
singleton INTEGER PRIMARY KEY CHECK(singleton = 1),
|
|
@@ -71,4 +71,17 @@ exports.PROJECT_RUNTIME_SCHEMA = `
|
|
|
71
71
|
phase TEXT NOT NULL CHECK(phase IN ('active', 'starting', 'retiring'))
|
|
72
72
|
);
|
|
73
73
|
`;
|
|
74
|
+
exports.BROWSER_AUTHORIZATION_SCHEMA = `
|
|
75
|
+
CREATE TABLE browser_authority (
|
|
76
|
+
singleton INTEGER PRIMARY KEY CHECK(singleton = 1),
|
|
77
|
+
account_id TEXT, generation TEXT NOT NULL,
|
|
78
|
+
operation_id TEXT, phase TEXT NOT NULL CHECK(phase IN ('ready', 'changing'))
|
|
79
|
+
);
|
|
80
|
+
CREATE TABLE browser_credentials (
|
|
81
|
+
digest TEXT PRIMARY KEY, scope TEXT NOT NULL,
|
|
82
|
+
account_id TEXT, generation TEXT NOT NULL,
|
|
83
|
+
kind TEXT NOT NULL CHECK(kind IN ('session', 'launch')),
|
|
84
|
+
expires_at INTEGER NOT NULL
|
|
85
|
+
);
|
|
86
|
+
`;
|
|
74
87
|
//# sourceMappingURL=migrations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/storage/library/migrations.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC5B,CAAC;AAEW,QAAA,eAAe,GAAG;;;;;;;;;;;;;;;;;;;CAmB9B,CAAC;AAEW,QAAA,kBAAkB,GAC7B,qIAAqI,CAAC;AAE3H,QAAA,mBAAmB,GAAG;IACjC,iDAAiD;IACjD,gDAAgD;CACxC,CAAC;AAEE,QAAA,sBAAsB,GAAG;;;;;;;CAOrC,CAAC"}
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/storage/library/migrations.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC5B,CAAC;AAEW,QAAA,eAAe,GAAG;;;;;;;;;;;;;;;;;;;CAmB9B,CAAC;AAEW,QAAA,kBAAkB,GAC7B,qIAAqI,CAAC;AAE3H,QAAA,mBAAmB,GAAG;IACjC,iDAAiD;IACjD,gDAAgD;CACxC,CAAC;AAEE,QAAA,sBAAsB,GAAG;;;;;;;CAOrC,CAAC;AAEW,QAAA,4BAA4B,GAAG;;;;;;;;;;;;CAY3C,CAAC"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
export declare const browserAuthority: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
2
|
+
name: "browser_authority";
|
|
3
|
+
schema: undefined;
|
|
4
|
+
columns: {
|
|
5
|
+
singleton: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
6
|
+
name: string;
|
|
7
|
+
tableName: "browser_authority";
|
|
8
|
+
dataType: "number int53";
|
|
9
|
+
data: number;
|
|
10
|
+
driverParam: number;
|
|
11
|
+
notNull: true;
|
|
12
|
+
hasDefault: true;
|
|
13
|
+
isPrimaryKey: true;
|
|
14
|
+
isAutoincrement: false;
|
|
15
|
+
hasRuntimeDefault: false;
|
|
16
|
+
enumValues: undefined;
|
|
17
|
+
baseColumn: never;
|
|
18
|
+
identity: undefined;
|
|
19
|
+
generated: undefined;
|
|
20
|
+
}, {}>;
|
|
21
|
+
accountId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
22
|
+
name: string;
|
|
23
|
+
tableName: "browser_authority";
|
|
24
|
+
dataType: "string";
|
|
25
|
+
data: string;
|
|
26
|
+
driverParam: string;
|
|
27
|
+
notNull: false;
|
|
28
|
+
hasDefault: false;
|
|
29
|
+
isPrimaryKey: false;
|
|
30
|
+
isAutoincrement: false;
|
|
31
|
+
hasRuntimeDefault: false;
|
|
32
|
+
enumValues: [string, ...string[]];
|
|
33
|
+
baseColumn: never;
|
|
34
|
+
identity: undefined;
|
|
35
|
+
generated: undefined;
|
|
36
|
+
}, {}>;
|
|
37
|
+
generation: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
38
|
+
name: string;
|
|
39
|
+
tableName: "browser_authority";
|
|
40
|
+
dataType: "string";
|
|
41
|
+
data: string;
|
|
42
|
+
driverParam: string;
|
|
43
|
+
notNull: true;
|
|
44
|
+
hasDefault: false;
|
|
45
|
+
isPrimaryKey: false;
|
|
46
|
+
isAutoincrement: false;
|
|
47
|
+
hasRuntimeDefault: false;
|
|
48
|
+
enumValues: [string, ...string[]];
|
|
49
|
+
baseColumn: never;
|
|
50
|
+
identity: undefined;
|
|
51
|
+
generated: undefined;
|
|
52
|
+
}, {}>;
|
|
53
|
+
operationId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
54
|
+
name: string;
|
|
55
|
+
tableName: "browser_authority";
|
|
56
|
+
dataType: "string";
|
|
57
|
+
data: string;
|
|
58
|
+
driverParam: string;
|
|
59
|
+
notNull: false;
|
|
60
|
+
hasDefault: false;
|
|
61
|
+
isPrimaryKey: false;
|
|
62
|
+
isAutoincrement: false;
|
|
63
|
+
hasRuntimeDefault: false;
|
|
64
|
+
enumValues: [string, ...string[]];
|
|
65
|
+
baseColumn: never;
|
|
66
|
+
identity: undefined;
|
|
67
|
+
generated: undefined;
|
|
68
|
+
}, {}>;
|
|
69
|
+
phase: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
70
|
+
name: string;
|
|
71
|
+
tableName: "browser_authority";
|
|
72
|
+
dataType: "string enum";
|
|
73
|
+
data: "ready" | "changing";
|
|
74
|
+
driverParam: string;
|
|
75
|
+
notNull: true;
|
|
76
|
+
hasDefault: false;
|
|
77
|
+
isPrimaryKey: false;
|
|
78
|
+
isAutoincrement: false;
|
|
79
|
+
hasRuntimeDefault: false;
|
|
80
|
+
enumValues: ["ready", "changing"];
|
|
81
|
+
baseColumn: never;
|
|
82
|
+
identity: undefined;
|
|
83
|
+
generated: undefined;
|
|
84
|
+
}, {}>;
|
|
85
|
+
};
|
|
86
|
+
dialect: "sqlite";
|
|
87
|
+
}>;
|
|
88
|
+
export declare const browserCredentials: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
89
|
+
name: "browser_credentials";
|
|
90
|
+
schema: undefined;
|
|
91
|
+
columns: {
|
|
92
|
+
digest: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
93
|
+
name: string;
|
|
94
|
+
tableName: "browser_credentials";
|
|
95
|
+
dataType: "string";
|
|
96
|
+
data: string;
|
|
97
|
+
driverParam: string;
|
|
98
|
+
notNull: true;
|
|
99
|
+
hasDefault: false;
|
|
100
|
+
isPrimaryKey: true;
|
|
101
|
+
isAutoincrement: false;
|
|
102
|
+
hasRuntimeDefault: false;
|
|
103
|
+
enumValues: [string, ...string[]];
|
|
104
|
+
baseColumn: never;
|
|
105
|
+
identity: undefined;
|
|
106
|
+
generated: undefined;
|
|
107
|
+
}, {}>;
|
|
108
|
+
scope: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
109
|
+
name: string;
|
|
110
|
+
tableName: "browser_credentials";
|
|
111
|
+
dataType: "string";
|
|
112
|
+
data: string;
|
|
113
|
+
driverParam: string;
|
|
114
|
+
notNull: true;
|
|
115
|
+
hasDefault: false;
|
|
116
|
+
isPrimaryKey: false;
|
|
117
|
+
isAutoincrement: false;
|
|
118
|
+
hasRuntimeDefault: false;
|
|
119
|
+
enumValues: [string, ...string[]];
|
|
120
|
+
baseColumn: never;
|
|
121
|
+
identity: undefined;
|
|
122
|
+
generated: undefined;
|
|
123
|
+
}, {}>;
|
|
124
|
+
accountId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
125
|
+
name: string;
|
|
126
|
+
tableName: "browser_credentials";
|
|
127
|
+
dataType: "string";
|
|
128
|
+
data: string;
|
|
129
|
+
driverParam: string;
|
|
130
|
+
notNull: false;
|
|
131
|
+
hasDefault: false;
|
|
132
|
+
isPrimaryKey: false;
|
|
133
|
+
isAutoincrement: false;
|
|
134
|
+
hasRuntimeDefault: false;
|
|
135
|
+
enumValues: [string, ...string[]];
|
|
136
|
+
baseColumn: never;
|
|
137
|
+
identity: undefined;
|
|
138
|
+
generated: undefined;
|
|
139
|
+
}, {}>;
|
|
140
|
+
generation: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
141
|
+
name: string;
|
|
142
|
+
tableName: "browser_credentials";
|
|
143
|
+
dataType: "string";
|
|
144
|
+
data: string;
|
|
145
|
+
driverParam: string;
|
|
146
|
+
notNull: true;
|
|
147
|
+
hasDefault: false;
|
|
148
|
+
isPrimaryKey: false;
|
|
149
|
+
isAutoincrement: false;
|
|
150
|
+
hasRuntimeDefault: false;
|
|
151
|
+
enumValues: [string, ...string[]];
|
|
152
|
+
baseColumn: never;
|
|
153
|
+
identity: undefined;
|
|
154
|
+
generated: undefined;
|
|
155
|
+
}, {}>;
|
|
156
|
+
kind: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
157
|
+
name: string;
|
|
158
|
+
tableName: "browser_credentials";
|
|
159
|
+
dataType: "string enum";
|
|
160
|
+
data: "session" | "launch";
|
|
161
|
+
driverParam: string;
|
|
162
|
+
notNull: true;
|
|
163
|
+
hasDefault: false;
|
|
164
|
+
isPrimaryKey: false;
|
|
165
|
+
isAutoincrement: false;
|
|
166
|
+
hasRuntimeDefault: false;
|
|
167
|
+
enumValues: ["session", "launch"];
|
|
168
|
+
baseColumn: never;
|
|
169
|
+
identity: undefined;
|
|
170
|
+
generated: undefined;
|
|
171
|
+
}, {}>;
|
|
172
|
+
expiresAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
173
|
+
name: string;
|
|
174
|
+
tableName: "browser_credentials";
|
|
175
|
+
dataType: "number int53";
|
|
176
|
+
data: number;
|
|
177
|
+
driverParam: number;
|
|
178
|
+
notNull: true;
|
|
179
|
+
hasDefault: false;
|
|
180
|
+
isPrimaryKey: false;
|
|
181
|
+
isAutoincrement: false;
|
|
182
|
+
hasRuntimeDefault: false;
|
|
183
|
+
enumValues: undefined;
|
|
184
|
+
baseColumn: never;
|
|
185
|
+
identity: undefined;
|
|
186
|
+
generated: undefined;
|
|
187
|
+
}, {}>;
|
|
188
|
+
};
|
|
189
|
+
dialect: "sqlite";
|
|
190
|
+
}>;
|
|
191
|
+
//# sourceMappingURL=browserAuthorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browserAuthorization.d.ts","sourceRoot":"","sources":["../../../../src/storage/library/schema/browserAuthorization.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.browserCredentials = exports.browserAuthority = void 0;
|
|
4
|
+
const sqlite_core_1 = require("drizzle-orm/sqlite-core");
|
|
5
|
+
exports.browserAuthority = (0, sqlite_core_1.sqliteTable)('browser_authority', {
|
|
6
|
+
singleton: (0, sqlite_core_1.integer)().primaryKey(),
|
|
7
|
+
accountId: (0, sqlite_core_1.text)('account_id'),
|
|
8
|
+
generation: (0, sqlite_core_1.text)().notNull(),
|
|
9
|
+
operationId: (0, sqlite_core_1.text)('operation_id'),
|
|
10
|
+
phase: (0, sqlite_core_1.text)({ enum: ['ready', 'changing'] }).notNull(),
|
|
11
|
+
});
|
|
12
|
+
exports.browserCredentials = (0, sqlite_core_1.sqliteTable)('browser_credentials', {
|
|
13
|
+
digest: (0, sqlite_core_1.text)().primaryKey(),
|
|
14
|
+
scope: (0, sqlite_core_1.text)().notNull(),
|
|
15
|
+
accountId: (0, sqlite_core_1.text)('account_id'),
|
|
16
|
+
generation: (0, sqlite_core_1.text)().notNull(),
|
|
17
|
+
kind: (0, sqlite_core_1.text)({ enum: ['session', 'launch'] }).notNull(),
|
|
18
|
+
expiresAt: (0, sqlite_core_1.integer)('expires_at').notNull(),
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=browserAuthorization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browserAuthorization.js","sourceRoot":"","sources":["../../../../src/storage/library/schema/browserAuthorization.ts"],"names":[],"mappings":";;;AAAA,yDAAqE;AAExD,QAAA,gBAAgB,GAAG,IAAA,yBAAW,EAAC,mBAAmB,EAAE;IAC/D,SAAS,EAAE,IAAA,qBAAO,GAAE,CAAC,UAAU,EAAE;IACjC,SAAS,EAAE,IAAA,kBAAI,EAAC,YAAY,CAAC;IAC7B,UAAU,EAAE,IAAA,kBAAI,GAAE,CAAC,OAAO,EAAE;IAC5B,WAAW,EAAE,IAAA,kBAAI,EAAC,cAAc,CAAC;IACjC,KAAK,EAAE,IAAA,kBAAI,EAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;CACvD,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,IAAA,yBAAW,EAAC,qBAAqB,EAAE;IACnE,MAAM,EAAE,IAAA,kBAAI,GAAE,CAAC,UAAU,EAAE;IAC3B,KAAK,EAAE,IAAA,kBAAI,GAAE,CAAC,OAAO,EAAE;IACvB,SAAS,EAAE,IAAA,kBAAI,EAAC,YAAY,CAAC;IAC7B,UAAU,EAAE,IAAA,kBAAI,GAAE,CAAC,OAAO,EAAE;IAC5B,IAAI,EAAE,IAAA,kBAAI,EAAC,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;IACrD,SAAS,EAAE,IAAA,qBAAO,EAAC,YAAY,CAAC,CAAC,OAAO,EAAE;CAC3C,CAAC,CAAC"}
|