dkimkit 0.0.0-stage → 0.7.0
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 +161 -2
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +398 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/dns-host.d.ts +10 -0
- package/dist/src/dns-host.js +31 -0
- package/dist/src/dns-host.js.map +1 -0
- package/dist/src/errors.d.ts +17 -0
- package/dist/src/errors.js +51 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/hosted/api.d.ts +107 -0
- package/dist/src/hosted/api.js +919 -0
- package/dist/src/hosted/api.js.map +1 -0
- package/dist/src/hosted/auth.d.ts +80 -0
- package/dist/src/hosted/auth.js +147 -0
- package/dist/src/hosted/auth.js.map +1 -0
- package/dist/src/hosted/billing-dodo.d.ts +58 -0
- package/dist/src/hosted/billing-dodo.js +139 -0
- package/dist/src/hosted/billing-dodo.js.map +1 -0
- package/dist/src/hosted/billing-stripe.d.ts +82 -0
- package/dist/src/hosted/billing-stripe.js +205 -0
- package/dist/src/hosted/billing-stripe.js.map +1 -0
- package/dist/src/hosted/billing.d.ts +114 -0
- package/dist/src/hosted/billing.js +173 -0
- package/dist/src/hosted/billing.js.map +1 -0
- package/dist/src/hosted/bulk.d.ts +47 -0
- package/dist/src/hosted/bulk.js +66 -0
- package/dist/src/hosted/bulk.js.map +1 -0
- package/dist/src/hosted/cli.d.ts +2 -0
- package/dist/src/hosted/cli.js +318 -0
- package/dist/src/hosted/cli.js.map +1 -0
- package/dist/src/hosted/crypto.d.ts +22 -0
- package/dist/src/hosted/crypto.js +55 -0
- package/dist/src/hosted/crypto.js.map +1 -0
- package/dist/src/hosted/index.d.ts +7 -0
- package/dist/src/hosted/index.js +11 -0
- package/dist/src/hosted/index.js.map +1 -0
- package/dist/src/hosted/markdown.d.ts +16 -0
- package/dist/src/hosted/markdown.js +168 -0
- package/dist/src/hosted/markdown.js.map +1 -0
- package/dist/src/hosted/net.d.ts +9 -0
- package/dist/src/hosted/net.js +60 -0
- package/dist/src/hosted/net.js.map +1 -0
- package/dist/src/hosted/postgres-store.d.ts +62 -0
- package/dist/src/hosted/postgres-store.js +387 -0
- package/dist/src/hosted/postgres-store.js.map +1 -0
- package/dist/src/hosted/serialize.d.ts +144 -0
- package/dist/src/hosted/serialize.js +126 -0
- package/dist/src/hosted/serialize.js.map +1 -0
- package/dist/src/hosted/service.d.ts +170 -0
- package/dist/src/hosted/service.js +603 -0
- package/dist/src/hosted/service.js.map +1 -0
- package/dist/src/hosted/site.d.ts +84 -0
- package/dist/src/hosted/site.js +653 -0
- package/dist/src/hosted/site.js.map +1 -0
- package/dist/src/hosted/sqlite-store.d.ts +45 -0
- package/dist/src/hosted/sqlite-store.js +351 -0
- package/dist/src/hosted/sqlite-store.js.map +1 -0
- package/dist/src/hosted/store.d.ts +257 -0
- package/dist/src/hosted/store.js +181 -0
- package/dist/src/hosted/store.js.map +1 -0
- package/dist/src/hosted/widget.d.ts +46 -0
- package/dist/src/hosted/widget.js +130 -0
- package/dist/src/hosted/widget.js.map +1 -0
- package/dist/src/hosted/worker.d.ts +45 -0
- package/dist/src/hosted/worker.js +142 -0
- package/dist/src/hosted/worker.js.map +1 -0
- package/dist/src/http.d.ts +14 -0
- package/dist/src/http.js +54 -0
- package/dist/src/http.js.map +1 -0
- package/dist/src/index.d.ts +19 -0
- package/dist/src/index.js +19 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/orchestrator.d.ts +70 -0
- package/dist/src/orchestrator.js +69 -0
- package/dist/src/orchestrator.js.map +1 -0
- package/dist/src/propagation.d.ts +30 -0
- package/dist/src/propagation.js +76 -0
- package/dist/src/propagation.js.map +1 -0
- package/dist/src/providers/dns/aws.d.ts +28 -0
- package/dist/src/providers/dns/aws.js +103 -0
- package/dist/src/providers/dns/aws.js.map +1 -0
- package/dist/src/providers/dns/cloudflare.d.ts +26 -0
- package/dist/src/providers/dns/cloudflare.js +97 -0
- package/dist/src/providers/dns/cloudflare.js.map +1 -0
- package/dist/src/providers/dns/manual.d.ts +12 -0
- package/dist/src/providers/dns/manual.js +18 -0
- package/dist/src/providers/dns/manual.js.map +1 -0
- package/dist/src/providers/dns/route53.d.ts +34 -0
- package/dist/src/providers/dns/route53.js +176 -0
- package/dist/src/providers/dns/route53.js.map +1 -0
- package/dist/src/providers/email/factory.d.ts +29 -0
- package/dist/src/providers/email/factory.js +67 -0
- package/dist/src/providers/email/factory.js.map +1 -0
- package/dist/src/providers/email/mailgun.d.ts +36 -0
- package/dist/src/providers/email/mailgun.js +141 -0
- package/dist/src/providers/email/mailgun.js.map +1 -0
- package/dist/src/providers/email/postmark.d.ts +37 -0
- package/dist/src/providers/email/postmark.js +121 -0
- package/dist/src/providers/email/postmark.js.map +1 -0
- package/dist/src/providers/email/sendgrid.d.ts +31 -0
- package/dist/src/providers/email/sendgrid.js +109 -0
- package/dist/src/providers/email/sendgrid.js.map +1 -0
- package/dist/src/providers/email/ses.d.ts +39 -0
- package/dist/src/providers/email/ses.js +123 -0
- package/dist/src/providers/email/ses.js.map +1 -0
- package/dist/src/providers/factory.d.ts +14 -0
- package/dist/src/providers/factory.js +32 -0
- package/dist/src/providers/factory.js.map +1 -0
- package/dist/src/records.d.ts +35 -0
- package/dist/src/records.js +109 -0
- package/dist/src/records.js.map +1 -0
- package/dist/src/server.d.ts +67 -0
- package/dist/src/server.js +301 -0
- package/dist/src/server.js.map +1 -0
- package/dist/src/types.d.ts +75 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/xml.d.ts +6 -0
- package/dist/src/xml.js +23 -0
- package/dist/src/xml.js.map +1 -0
- package/docs/billing.md +43 -0
- package/docs/getting-started.md +66 -0
- package/docs/hosted-api.md +192 -0
- package/docs/library.md +253 -0
- package/docs/self-hosting.md +153 -0
- package/docs/widget.md +121 -0
- package/package.json +63 -4
- package/web/dashboard.html +669 -0
- package/web/index.html +697 -0
- package/web/widget-frame.html +480 -0
- package/web/widget.js +91 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site.js","sourceRoot":"","sources":["../../../src/hosted/site.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type DashboardSession, type LoginToken, type UsageQuery, type UsageRecord, type UsageRow, type Account, type DomainEvent, type DomainRow, type ListDomainsQuery, type Store, type WebhookDelivery, type WidgetSession } from './store.js';
|
|
2
|
+
export declare class SqliteStore implements Store {
|
|
3
|
+
private readonly db;
|
|
4
|
+
/** `path` is a file path, or ':memory:' for tests. */
|
|
5
|
+
constructor(path: string);
|
|
6
|
+
createAccount(account: Account): Promise<void>;
|
|
7
|
+
getAccount(id: string): Promise<Account | undefined>;
|
|
8
|
+
getAccountByKeyHash(hash: string): Promise<Account | undefined>;
|
|
9
|
+
updateAccount(id: string, patch: Partial<Account>): Promise<void>;
|
|
10
|
+
insertDomain(domain: DomainRow): Promise<void>;
|
|
11
|
+
getDomain(accountId: string, id: string): Promise<DomainRow | undefined>;
|
|
12
|
+
findDomain(accountId: string, domain: string, subdomain: string | null): Promise<DomainRow | undefined>;
|
|
13
|
+
listDomains(accountId: string, query: ListDomainsQuery): Promise<{
|
|
14
|
+
domains: DomainRow[];
|
|
15
|
+
next: string | null;
|
|
16
|
+
}>;
|
|
17
|
+
updateDomain(id: string, patch: Partial<DomainRow>): Promise<DomainRow>;
|
|
18
|
+
deleteDomain(id: string): Promise<void>;
|
|
19
|
+
claimDueDomains(now: number, limit: number, leaseMs: number): Promise<DomainRow[]>;
|
|
20
|
+
addEvent(event: DomainEvent): Promise<void>;
|
|
21
|
+
listEvents(domainId: string, limit: number): Promise<DomainEvent[]>;
|
|
22
|
+
addDelivery(delivery: WebhookDelivery): Promise<void>;
|
|
23
|
+
claimDueDeliveries(now: number, limit: number, leaseMs: number): Promise<WebhookDelivery[]>;
|
|
24
|
+
updateDelivery(id: string, patch: Partial<WebhookDelivery>): Promise<void>;
|
|
25
|
+
createWidgetSession(session: WidgetSession): Promise<void>;
|
|
26
|
+
getWidgetSessionByHash(hash: string): Promise<WidgetSession | undefined>;
|
|
27
|
+
updateWidgetSession(id: string, patch: Partial<WidgetSession>): Promise<void>;
|
|
28
|
+
listAccounts(): Promise<Account[]>;
|
|
29
|
+
countDomains(accountId: string): Promise<number>;
|
|
30
|
+
recordUsage(records: UsageRecord[]): Promise<void>;
|
|
31
|
+
recordActiveDomainDays(day: string, now: number): Promise<void>;
|
|
32
|
+
summarizeUsage(query: UsageQuery): Promise<UsageRow[]>;
|
|
33
|
+
getAccountByEmail(email: string): Promise<Account | undefined>;
|
|
34
|
+
getAccountByBillingCustomer(customerId: string): Promise<Account | undefined>;
|
|
35
|
+
listBillableAccounts(): Promise<Account[]>;
|
|
36
|
+
createLoginToken(token: LoginToken): Promise<void>;
|
|
37
|
+
consumeLoginToken(tokenHash: string, now: number): Promise<LoginToken | undefined>;
|
|
38
|
+
createDashboardSession(session: DashboardSession): Promise<void>;
|
|
39
|
+
getDashboardSession(tokenHash: string): Promise<DashboardSession | undefined>;
|
|
40
|
+
deleteDashboardSession(tokenHash: string): Promise<void>;
|
|
41
|
+
markBillingEventProcessed(eventId: string, now: number): Promise<boolean>;
|
|
42
|
+
close(): Promise<void>;
|
|
43
|
+
private insert;
|
|
44
|
+
private update;
|
|
45
|
+
}
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { DatabaseSync } from 'node:sqlite';
|
|
2
|
+
import { ACCOUNT_BILLING_COLUMNS, ACCOUNT_COLUMNS, DASHBOARD_SESSION_COLUMNS, LOGIN_TOKEN_COLUMNS, DELIVERY_COLUMNS, DOMAIN_COLUMNS, DuplicateError, EVENT_COLUMNS, fromColumns, jsonFallback, SESSION_COLUMNS, toColumns, toUsageRow, USAGE_COLUMNS, usageSql, } from './store.js';
|
|
3
|
+
const SCHEMA = `
|
|
4
|
+
CREATE TABLE IF NOT EXISTS accounts (
|
|
5
|
+
id TEXT PRIMARY KEY,
|
|
6
|
+
name TEXT NOT NULL,
|
|
7
|
+
api_key_hash TEXT NOT NULL UNIQUE,
|
|
8
|
+
sendgrid_api_key_enc TEXT,
|
|
9
|
+
webhook_url TEXT,
|
|
10
|
+
webhook_secret TEXT NOT NULL,
|
|
11
|
+
widget_origins TEXT NOT NULL DEFAULT '[]',
|
|
12
|
+
domain_limit INTEGER,
|
|
13
|
+
created_at INTEGER NOT NULL
|
|
14
|
+
);
|
|
15
|
+
CREATE TABLE IF NOT EXISTS domains (
|
|
16
|
+
id TEXT PRIMARY KEY,
|
|
17
|
+
account_id TEXT NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
|
|
18
|
+
domain TEXT NOT NULL,
|
|
19
|
+
subdomain TEXT NOT NULL DEFAULT '',
|
|
20
|
+
tenant_id TEXT,
|
|
21
|
+
metadata TEXT NOT NULL DEFAULT '{}',
|
|
22
|
+
status TEXT NOT NULL,
|
|
23
|
+
sendgrid_domain_id TEXT NOT NULL,
|
|
24
|
+
sendgrid_subuser TEXT,
|
|
25
|
+
dns_provider TEXT NOT NULL,
|
|
26
|
+
dns_credentials_enc TEXT,
|
|
27
|
+
inbound TEXT,
|
|
28
|
+
overwrite INTEGER NOT NULL DEFAULT 0,
|
|
29
|
+
records TEXT NOT NULL DEFAULT '[]',
|
|
30
|
+
pending TEXT NOT NULL DEFAULT '[]',
|
|
31
|
+
validation TEXT,
|
|
32
|
+
conflicts TEXT,
|
|
33
|
+
last_error TEXT,
|
|
34
|
+
attempts INTEGER NOT NULL DEFAULT 0,
|
|
35
|
+
next_run_at INTEGER,
|
|
36
|
+
locked_until INTEGER,
|
|
37
|
+
verified_at INTEGER,
|
|
38
|
+
expires_at INTEGER,
|
|
39
|
+
created_at INTEGER NOT NULL,
|
|
40
|
+
updated_at INTEGER NOT NULL,
|
|
41
|
+
UNIQUE (account_id, domain, subdomain)
|
|
42
|
+
);
|
|
43
|
+
CREATE INDEX IF NOT EXISTS domains_due ON domains (next_run_at) WHERE next_run_at IS NOT NULL;
|
|
44
|
+
CREATE INDEX IF NOT EXISTS domains_by_account ON domains (account_id, created_at, id);
|
|
45
|
+
CREATE TABLE IF NOT EXISTS events (
|
|
46
|
+
id TEXT PRIMARY KEY,
|
|
47
|
+
domain_id TEXT NOT NULL,
|
|
48
|
+
account_id TEXT NOT NULL,
|
|
49
|
+
type TEXT NOT NULL,
|
|
50
|
+
data TEXT NOT NULL,
|
|
51
|
+
created_at INTEGER NOT NULL
|
|
52
|
+
);
|
|
53
|
+
CREATE INDEX IF NOT EXISTS events_by_domain ON events (domain_id, created_at);
|
|
54
|
+
CREATE TABLE IF NOT EXISTS webhook_deliveries (
|
|
55
|
+
id TEXT PRIMARY KEY,
|
|
56
|
+
account_id TEXT NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
|
|
57
|
+
event_id TEXT NOT NULL,
|
|
58
|
+
url TEXT NOT NULL,
|
|
59
|
+
payload TEXT NOT NULL,
|
|
60
|
+
status TEXT NOT NULL,
|
|
61
|
+
attempts INTEGER NOT NULL DEFAULT 0,
|
|
62
|
+
next_attempt_at INTEGER,
|
|
63
|
+
locked_until INTEGER,
|
|
64
|
+
last_error TEXT,
|
|
65
|
+
response_status INTEGER,
|
|
66
|
+
created_at INTEGER NOT NULL
|
|
67
|
+
);
|
|
68
|
+
CREATE INDEX IF NOT EXISTS deliveries_due ON webhook_deliveries (next_attempt_at) WHERE status = 'pending';
|
|
69
|
+
CREATE TABLE IF NOT EXISTS usage_records (
|
|
70
|
+
id TEXT PRIMARY KEY,
|
|
71
|
+
account_id TEXT NOT NULL,
|
|
72
|
+
tenant_id TEXT,
|
|
73
|
+
domain_id TEXT NOT NULL,
|
|
74
|
+
domain TEXT NOT NULL,
|
|
75
|
+
metric TEXT NOT NULL,
|
|
76
|
+
quantity INTEGER NOT NULL,
|
|
77
|
+
day TEXT NOT NULL,
|
|
78
|
+
occurred_at INTEGER NOT NULL
|
|
79
|
+
);
|
|
80
|
+
CREATE INDEX IF NOT EXISTS usage_by_account_day ON usage_records (account_id, day);
|
|
81
|
+
CREATE TABLE IF NOT EXISTS widget_sessions (
|
|
82
|
+
id TEXT PRIMARY KEY,
|
|
83
|
+
account_id TEXT NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
|
|
84
|
+
token_hash TEXT NOT NULL UNIQUE,
|
|
85
|
+
domain_id TEXT,
|
|
86
|
+
defaults TEXT,
|
|
87
|
+
expires_at INTEGER NOT NULL,
|
|
88
|
+
created_at INTEGER NOT NULL
|
|
89
|
+
);
|
|
90
|
+
CREATE TABLE IF NOT EXISTS login_tokens (
|
|
91
|
+
token_hash TEXT PRIMARY KEY,
|
|
92
|
+
email TEXT NOT NULL,
|
|
93
|
+
name TEXT,
|
|
94
|
+
expires_at INTEGER NOT NULL,
|
|
95
|
+
used_at INTEGER,
|
|
96
|
+
created_at INTEGER NOT NULL
|
|
97
|
+
);
|
|
98
|
+
CREATE TABLE IF NOT EXISTS dashboard_sessions (
|
|
99
|
+
token_hash TEXT PRIMARY KEY,
|
|
100
|
+
account_id TEXT NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
|
|
101
|
+
expires_at INTEGER NOT NULL,
|
|
102
|
+
created_at INTEGER NOT NULL
|
|
103
|
+
);
|
|
104
|
+
CREATE TABLE IF NOT EXISTS billing_events (
|
|
105
|
+
id TEXT PRIMARY KEY,
|
|
106
|
+
processed_at INTEGER NOT NULL
|
|
107
|
+
);
|
|
108
|
+
`;
|
|
109
|
+
/** Columns added after the first release, for databases created before them. */
|
|
110
|
+
const MIGRATIONS = [
|
|
111
|
+
['accounts', 'widget_origins', "TEXT NOT NULL DEFAULT '[]'"],
|
|
112
|
+
['accounts', 'domain_limit', 'INTEGER'],
|
|
113
|
+
...ACCOUNT_BILLING_COLUMNS.map(([column, sqlite]) => ['accounts', column, sqlite]),
|
|
114
|
+
];
|
|
115
|
+
/** Run after MIGRATIONS, since they use migrated columns. */
|
|
116
|
+
const POST_MIGRATION = `
|
|
117
|
+
UPDATE accounts SET email_credentials_enc = sendgrid_api_key_enc
|
|
118
|
+
WHERE email_credentials_enc IS NULL AND sendgrid_api_key_enc IS NOT NULL;
|
|
119
|
+
CREATE UNIQUE INDEX IF NOT EXISTS accounts_by_email ON accounts (email);
|
|
120
|
+
CREATE INDEX IF NOT EXISTS accounts_by_billing_customer ON accounts (billing_customer_id);
|
|
121
|
+
`;
|
|
122
|
+
function encode(kind, v) {
|
|
123
|
+
if (kind === 'bool')
|
|
124
|
+
return v ? 1 : 0;
|
|
125
|
+
if (kind === 'emptyAsNull')
|
|
126
|
+
return v ?? '';
|
|
127
|
+
if (typeof kind === 'object')
|
|
128
|
+
return v === null ? null : JSON.stringify(v);
|
|
129
|
+
return v ?? null;
|
|
130
|
+
}
|
|
131
|
+
function decode(kind, v) {
|
|
132
|
+
if (kind === 'bool')
|
|
133
|
+
return v === 1;
|
|
134
|
+
if (kind === 'emptyAsNull')
|
|
135
|
+
return v === '' ? null : v;
|
|
136
|
+
if (typeof kind === 'object')
|
|
137
|
+
return v === null || v === undefined ? jsonFallback(kind) : JSON.parse(v);
|
|
138
|
+
return v ?? null;
|
|
139
|
+
}
|
|
140
|
+
const toRow = (map, value) => toColumns(map, value, encode);
|
|
141
|
+
const fromRow = (map, row) => fromColumns(map, row, decode);
|
|
142
|
+
export class SqliteStore {
|
|
143
|
+
db;
|
|
144
|
+
/** `path` is a file path, or ':memory:' for tests. */
|
|
145
|
+
constructor(path) {
|
|
146
|
+
this.db = new DatabaseSync(path);
|
|
147
|
+
this.db.exec('PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000;');
|
|
148
|
+
this.db.exec(SCHEMA);
|
|
149
|
+
for (const [table, column, definition] of MIGRATIONS) {
|
|
150
|
+
const columns = this.db.prepare(`PRAGMA table_info(${table})`).all().map((c) => c.name);
|
|
151
|
+
if (!columns.includes(column))
|
|
152
|
+
this.db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`);
|
|
153
|
+
}
|
|
154
|
+
this.db.exec(POST_MIGRATION);
|
|
155
|
+
}
|
|
156
|
+
async createAccount(account) {
|
|
157
|
+
this.insert('accounts', toRow(ACCOUNT_COLUMNS, account));
|
|
158
|
+
}
|
|
159
|
+
async getAccount(id) {
|
|
160
|
+
return fromRow(ACCOUNT_COLUMNS, this.db.prepare('SELECT * FROM accounts WHERE id = ?').get(id));
|
|
161
|
+
}
|
|
162
|
+
async getAccountByKeyHash(hash) {
|
|
163
|
+
return fromRow(ACCOUNT_COLUMNS, this.db.prepare('SELECT * FROM accounts WHERE api_key_hash = ?').get(hash));
|
|
164
|
+
}
|
|
165
|
+
async updateAccount(id, patch) {
|
|
166
|
+
this.update('accounts', id, toRow(ACCOUNT_COLUMNS, patch));
|
|
167
|
+
}
|
|
168
|
+
async insertDomain(domain) {
|
|
169
|
+
try {
|
|
170
|
+
this.insert('domains', toRow(DOMAIN_COLUMNS, domain));
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
if (/UNIQUE constraint failed/.test(String(err.message)))
|
|
174
|
+
throw new DuplicateError('Domain already registered');
|
|
175
|
+
throw err;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
async getDomain(accountId, id) {
|
|
179
|
+
return fromRow(DOMAIN_COLUMNS, this.db.prepare('SELECT * FROM domains WHERE account_id = ? AND id = ?').get(accountId, id));
|
|
180
|
+
}
|
|
181
|
+
async findDomain(accountId, domain, subdomain) {
|
|
182
|
+
const row = this.db
|
|
183
|
+
.prepare('SELECT * FROM domains WHERE account_id = ? AND domain = ? AND subdomain = ?')
|
|
184
|
+
.get(accountId, domain, subdomain ?? '');
|
|
185
|
+
return fromRow(DOMAIN_COLUMNS, row);
|
|
186
|
+
}
|
|
187
|
+
async listDomains(accountId, query) {
|
|
188
|
+
const where = ['account_id = $account'];
|
|
189
|
+
const params = { $account: accountId, $limit: query.limit + 1 };
|
|
190
|
+
if (query.tenantId) {
|
|
191
|
+
where.push('tenant_id = $tenant');
|
|
192
|
+
params.$tenant = query.tenantId;
|
|
193
|
+
}
|
|
194
|
+
if (query.status) {
|
|
195
|
+
where.push('status = $status');
|
|
196
|
+
params.$status = query.status;
|
|
197
|
+
}
|
|
198
|
+
if (query.after) {
|
|
199
|
+
const [createdAt, id] = Buffer.from(query.after, 'base64url').toString('utf8').split(':');
|
|
200
|
+
where.push('(created_at < $afterAt OR (created_at = $afterAt AND id < $afterId))');
|
|
201
|
+
params.$afterAt = Number(createdAt);
|
|
202
|
+
params.$afterId = id ?? '';
|
|
203
|
+
}
|
|
204
|
+
const rows = this.db
|
|
205
|
+
.prepare(`SELECT * FROM domains WHERE ${where.join(' AND ')} ORDER BY created_at DESC, id DESC LIMIT $limit`)
|
|
206
|
+
.all(params)
|
|
207
|
+
.map((r) => fromRow(DOMAIN_COLUMNS, r));
|
|
208
|
+
const page = rows.slice(0, query.limit);
|
|
209
|
+
const last = page.at(-1);
|
|
210
|
+
const next = rows.length > query.limit && last ? Buffer.from(`${last.createdAt}:${last.id}`).toString('base64url') : null;
|
|
211
|
+
return { domains: page, next };
|
|
212
|
+
}
|
|
213
|
+
async updateDomain(id, patch) {
|
|
214
|
+
this.update('domains', id, toRow(DOMAIN_COLUMNS, patch));
|
|
215
|
+
return fromRow(DOMAIN_COLUMNS, this.db.prepare('SELECT * FROM domains WHERE id = ?').get(id));
|
|
216
|
+
}
|
|
217
|
+
async deleteDomain(id) {
|
|
218
|
+
this.db.prepare('DELETE FROM events WHERE domain_id = ?').run(id);
|
|
219
|
+
this.db.prepare('DELETE FROM widget_sessions WHERE domain_id = ?').run(id);
|
|
220
|
+
this.db.prepare('DELETE FROM domains WHERE id = ?').run(id);
|
|
221
|
+
}
|
|
222
|
+
async claimDueDomains(now, limit, leaseMs) {
|
|
223
|
+
return this.db
|
|
224
|
+
.prepare(`UPDATE domains SET locked_until = $lease
|
|
225
|
+
WHERE id IN (
|
|
226
|
+
SELECT id FROM domains
|
|
227
|
+
WHERE next_run_at IS NOT NULL AND next_run_at <= $now AND (locked_until IS NULL OR locked_until < $now)
|
|
228
|
+
ORDER BY next_run_at LIMIT $limit
|
|
229
|
+
)
|
|
230
|
+
RETURNING *`)
|
|
231
|
+
.all({ $lease: now + leaseMs, $now: now, $limit: limit })
|
|
232
|
+
.map((r) => fromRow(DOMAIN_COLUMNS, r));
|
|
233
|
+
}
|
|
234
|
+
async addEvent(event) {
|
|
235
|
+
this.insert('events', toRow(EVENT_COLUMNS, event));
|
|
236
|
+
}
|
|
237
|
+
async listEvents(domainId, limit) {
|
|
238
|
+
return this.db
|
|
239
|
+
.prepare('SELECT * FROM events WHERE domain_id = ? ORDER BY created_at DESC, rowid DESC LIMIT ?')
|
|
240
|
+
.all(domainId, limit)
|
|
241
|
+
.map((r) => fromRow(EVENT_COLUMNS, r));
|
|
242
|
+
}
|
|
243
|
+
async addDelivery(delivery) {
|
|
244
|
+
this.insert('webhook_deliveries', toRow(DELIVERY_COLUMNS, delivery));
|
|
245
|
+
}
|
|
246
|
+
async claimDueDeliveries(now, limit, leaseMs) {
|
|
247
|
+
return this.db
|
|
248
|
+
.prepare(`UPDATE webhook_deliveries SET locked_until = $lease
|
|
249
|
+
WHERE id IN (
|
|
250
|
+
SELECT id FROM webhook_deliveries
|
|
251
|
+
WHERE status = 'pending' AND next_attempt_at <= $now AND (locked_until IS NULL OR locked_until < $now)
|
|
252
|
+
ORDER BY next_attempt_at LIMIT $limit
|
|
253
|
+
)
|
|
254
|
+
RETURNING *`)
|
|
255
|
+
.all({ $lease: now + leaseMs, $now: now, $limit: limit })
|
|
256
|
+
.map((r) => fromRow(DELIVERY_COLUMNS, r));
|
|
257
|
+
}
|
|
258
|
+
async updateDelivery(id, patch) {
|
|
259
|
+
this.update('webhook_deliveries', id, toRow(DELIVERY_COLUMNS, patch));
|
|
260
|
+
}
|
|
261
|
+
async createWidgetSession(session) {
|
|
262
|
+
this.insert('widget_sessions', toRow(SESSION_COLUMNS, session));
|
|
263
|
+
}
|
|
264
|
+
async getWidgetSessionByHash(hash) {
|
|
265
|
+
return fromRow(SESSION_COLUMNS, this.db.prepare('SELECT * FROM widget_sessions WHERE token_hash = ?').get(hash));
|
|
266
|
+
}
|
|
267
|
+
async updateWidgetSession(id, patch) {
|
|
268
|
+
this.update('widget_sessions', id, toRow(SESSION_COLUMNS, patch));
|
|
269
|
+
}
|
|
270
|
+
async listAccounts() {
|
|
271
|
+
return this.db.prepare('SELECT * FROM accounts ORDER BY created_at, id').all().map((r) => fromRow(ACCOUNT_COLUMNS, r));
|
|
272
|
+
}
|
|
273
|
+
async countDomains(accountId) {
|
|
274
|
+
return Number(this.db.prepare('SELECT COUNT(*) AS n FROM domains WHERE account_id = ?').get(accountId).n);
|
|
275
|
+
}
|
|
276
|
+
async recordUsage(records) {
|
|
277
|
+
for (const record of records) {
|
|
278
|
+
const row = toRow(USAGE_COLUMNS, record);
|
|
279
|
+
const columns = Object.keys(row);
|
|
280
|
+
this.db
|
|
281
|
+
.prepare(`INSERT OR IGNORE INTO usage_records (${columns.join(', ')}) VALUES (${columns.map((c) => `$${c}`).join(', ')})`)
|
|
282
|
+
.run(Object.fromEntries(columns.map((c) => [`$${c}`, row[c]])));
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
async recordActiveDomainDays(day, now) {
|
|
286
|
+
this.db
|
|
287
|
+
.prepare(`INSERT OR IGNORE INTO usage_records (id, account_id, tenant_id, domain_id, domain, metric, quantity, day, occurred_at)
|
|
288
|
+
SELECT 'active_domain_day:' || id || ':' || $day, account_id, tenant_id, id, domain, 'active_domain_day', 1, $day, $now
|
|
289
|
+
FROM domains WHERE status = 'verified'`)
|
|
290
|
+
.run({ $day: day, $now: now });
|
|
291
|
+
}
|
|
292
|
+
async summarizeUsage(query) {
|
|
293
|
+
const params = [query.from, query.to, ...(query.accountId ? [query.accountId] : [])];
|
|
294
|
+
return this.db
|
|
295
|
+
.prepare(usageSql(query, () => '?'))
|
|
296
|
+
.all(...params)
|
|
297
|
+
.map((r) => toUsageRow(r, Boolean(query.groupByTenant)));
|
|
298
|
+
}
|
|
299
|
+
async getAccountByEmail(email) {
|
|
300
|
+
return fromRow(ACCOUNT_COLUMNS, this.db.prepare('SELECT * FROM accounts WHERE email = ?').get(email));
|
|
301
|
+
}
|
|
302
|
+
async getAccountByBillingCustomer(customerId) {
|
|
303
|
+
return fromRow(ACCOUNT_COLUMNS, this.db.prepare('SELECT * FROM accounts WHERE billing_customer_id = ?').get(customerId));
|
|
304
|
+
}
|
|
305
|
+
async listBillableAccounts() {
|
|
306
|
+
return this.db
|
|
307
|
+
.prepare("SELECT * FROM accounts WHERE billing_status IN ('active', 'past_due') AND billing_customer_id IS NOT NULL ORDER BY id")
|
|
308
|
+
.all()
|
|
309
|
+
.map((r) => fromRow(ACCOUNT_COLUMNS, r));
|
|
310
|
+
}
|
|
311
|
+
async createLoginToken(token) {
|
|
312
|
+
this.insert('login_tokens', toRow(LOGIN_TOKEN_COLUMNS, token));
|
|
313
|
+
}
|
|
314
|
+
async consumeLoginToken(tokenHash, now) {
|
|
315
|
+
const row = this.db
|
|
316
|
+
.prepare('UPDATE login_tokens SET used_at = $now WHERE token_hash = $hash AND used_at IS NULL AND expires_at > $now RETURNING *')
|
|
317
|
+
.get({ $now: now, $hash: tokenHash });
|
|
318
|
+
return fromRow(LOGIN_TOKEN_COLUMNS, row);
|
|
319
|
+
}
|
|
320
|
+
async createDashboardSession(session) {
|
|
321
|
+
this.insert('dashboard_sessions', toRow(DASHBOARD_SESSION_COLUMNS, session));
|
|
322
|
+
}
|
|
323
|
+
async getDashboardSession(tokenHash) {
|
|
324
|
+
return fromRow(DASHBOARD_SESSION_COLUMNS, this.db.prepare('SELECT * FROM dashboard_sessions WHERE token_hash = ?').get(tokenHash));
|
|
325
|
+
}
|
|
326
|
+
async deleteDashboardSession(tokenHash) {
|
|
327
|
+
this.db.prepare('DELETE FROM dashboard_sessions WHERE token_hash = ?').run(tokenHash);
|
|
328
|
+
}
|
|
329
|
+
async markBillingEventProcessed(eventId, now) {
|
|
330
|
+
// `changes` may be a bigint.
|
|
331
|
+
return Number(this.db.prepare('INSERT OR IGNORE INTO billing_events (id, processed_at) VALUES (?, ?)').run(eventId, now).changes) === 1;
|
|
332
|
+
}
|
|
333
|
+
async close() {
|
|
334
|
+
this.db.close();
|
|
335
|
+
}
|
|
336
|
+
insert(table, row) {
|
|
337
|
+
const columns = Object.keys(row);
|
|
338
|
+
this.db
|
|
339
|
+
.prepare(`INSERT INTO ${table} (${columns.join(', ')}) VALUES (${columns.map((c) => `$${c}`).join(', ')})`)
|
|
340
|
+
.run(Object.fromEntries(columns.map((c) => [`$${c}`, row[c]])));
|
|
341
|
+
}
|
|
342
|
+
update(table, id, row) {
|
|
343
|
+
const columns = Object.keys(row);
|
|
344
|
+
if (columns.length === 0)
|
|
345
|
+
return;
|
|
346
|
+
this.db
|
|
347
|
+
.prepare(`UPDATE ${table} SET ${columns.map((c) => `${c} = $${c}`).join(', ')} WHERE id = $__id`)
|
|
348
|
+
.run({ ...Object.fromEntries(columns.map((c) => [`$${c}`, row[c]])), $__id: id });
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
//# sourceMappingURL=sqlite-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-store.js","sourceRoot":"","sources":["../../../src/hosted/sqlite-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EAGnB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,aAAa,EACb,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,aAAa,EACb,QAAQ,GAaT,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyGd,CAAC;AAEF,gFAAgF;AAChF,MAAM,UAAU,GAA0D;IACxE,CAAC,UAAU,EAAE,gBAAgB,EAAE,4BAA4B,CAAC;IAC5D,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,CAAC;IACvC,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAA4B,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7G,CAAC;AAEF,6DAA6D;AAC7D,MAAM,cAAc,GAAG;;;;;CAKtB,CAAC;AAIF,SAAS,MAAM,CAAC,IAAgB,EAAE,CAAU;IAC1C,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,IAAI,KAAK,aAAa;QAAE,OAAQ,CAAmB,IAAI,EAAE,CAAC;IAC9D,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAQ,CAAmB,IAAI,IAAI,CAAC;AACtC,CAAC;AAED,SAAS,MAAM,CAAC,IAAgB,EAAE,CAAU;IAC1C,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,aAAa;QAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAW,CAAC,CAAC;IAClH,OAAO,CAAC,IAAI,IAAI,CAAC;AACnB,CAAC;AAED,MAAM,KAAK,GAAG,CAAI,GAAiB,EAAE,KAAiB,EAAO,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9F,MAAM,OAAO,GAAG,CAAI,GAAiB,EAAE,GAAY,EAAiB,EAAE,CAAC,WAAW,CAAI,GAAG,EAAE,GAA0C,EAAE,MAAM,CAAC,CAAC;AAE/I,MAAM,OAAO,WAAW;IACL,EAAE,CAAe;IAElC,sDAAsD;IACtD,YAAY,IAAY;QACtB,IAAI,CAAC,EAAE,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;QACjG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,UAAU,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qBAAqB,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,eAAe,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;QACzG,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAgB;QAClC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,OAAO,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAClG,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,OAAO,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9G,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,KAAuB;QACrD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAiB;QAClC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;gBAAE,MAAM,IAAI,cAAc,CAAC,2BAA2B,CAAC,CAAC;YAC3H,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,EAAU;QAC3C,OAAO,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9H,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,MAAc,EAAE,SAAwB;QAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,6EAA6E,CAAC;aACtF,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,KAAuB;QAC1D,MAAM,KAAK,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACxC,MAAM,MAAM,GAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACrE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/B,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;QAChC,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1F,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;YACnF,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CAAC,+BAA+B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,iDAAiD,CAAC;aAC5G,GAAG,CAAC,MAAM,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAY,cAAc,EAAE,CAAC,CAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1H,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,KAAyB;QACtD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;QACzD,OAAO,OAAO,CAAY,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAE,CAAC;IAC5G,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,KAAa,EAAE,OAAe;QAC/D,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;;;qBAMa,CACd;aACA,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aACxD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAY,cAAc,EAAE,CAAC,CAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAkB;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,KAAa;QAC9C,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CAAC,uFAAuF,CAAC;aAChG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;aACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAc,aAAa,EAAE,CAAC,CAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAyB;QACzC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAW,EAAE,KAAa,EAAE,OAAe;QAClE,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;;;qBAMa,CACd;aACA,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aACxD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAkB,gBAAgB,EAAE,CAAC,CAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,KAA+B;QAC9D,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAAsB;QAC9C,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY;QACvC,OAAO,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACnH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,EAAU,EAAE,KAA6B;QACjE,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAU,eAAe,EAAE,CAAC,CAAE,CAAC,CAAC;IACnI,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,OAAO,MAAM,CAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAmB,CAAC,CAAC,CAAC,CAAC;IAC/H,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAsB;QACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,EAAE;iBACJ,OAAO,CAAC,wCAAwC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;iBACzH,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,GAAW,EAAE,GAAW;QACnD,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;gDAEwC,CACzC;aACA,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAiB;QACpC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;aACnC,GAAG,CAAC,GAAG,MAAM,CAAC;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAA4B,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAAa;QACnC,OAAO,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,UAAkB;QAClD,OAAO,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3H,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CAAC,uHAAuH,CAAC;aAChI,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAU,eAAe,EAAE,CAAC,CAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAiB;QACtC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,GAAW;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,uHAAuH,CAAC;aAChI,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,OAAyB;QACpD,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,OAAO,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACrI,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,SAAiB;QAC5C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,OAAe,EAAE,GAAW;QAC1D,6BAA6B;QAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1I,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,KAAa,EAAE,GAAQ;QACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,eAAe,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aAC1G,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAEO,MAAM,CAAC,KAAa,EAAE,EAAU,EAAE,GAAQ;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,UAAU,KAAK,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;aAChG,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACvF,CAAC;CACF"}
|