fluxmail 0.3.0 → 0.4.1
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 +15 -55
- package/dist/accounts/gmailConnection.d.ts +5 -1
- package/dist/accounts/gmailConnection.d.ts.map +1 -1
- package/dist/accounts/gmailConnection.js +14 -2
- package/dist/accounts/gmailConnection.js.map +1 -1
- package/dist/accounts/googleAuth.js +1 -1
- package/dist/accounts/googleAuth.js.map +1 -1
- package/dist/accounts/microsoftAuth.d.ts +21 -0
- package/dist/accounts/microsoftAuth.d.ts.map +1 -0
- package/dist/accounts/microsoftAuth.js +220 -0
- package/dist/accounts/microsoftAuth.js.map +1 -0
- package/dist/accounts/registry.d.ts +21 -8
- package/dist/accounts/registry.d.ts.map +1 -1
- package/dist/accounts/registry.js +190 -24
- package/dist/accounts/registry.js.map +1 -1
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +857 -647
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +102 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +114 -14
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +2 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +7 -1
- package/dist/context.js.map +1 -1
- package/dist/http/admin.d.ts +21 -0
- package/dist/http/admin.d.ts.map +1 -0
- package/dist/http/admin.js +618 -0
- package/dist/http/admin.js.map +1 -0
- package/dist/http/app.d.ts +2 -0
- package/dist/http/app.d.ts.map +1 -1
- package/dist/http/app.js +322 -42
- package/dist/http/app.js.map +1 -1
- package/dist/http/rest.d.ts +28 -0
- package/dist/http/rest.d.ts.map +1 -0
- package/dist/http/rest.js +1130 -0
- package/dist/http/rest.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/licensing/refresher.d.ts +23 -7
- package/dist/licensing/refresher.d.ts.map +1 -1
- package/dist/licensing/refresher.js +93 -37
- package/dist/licensing/refresher.js.map +1 -1
- package/dist/mcp/buildServer.d.ts.map +1 -1
- package/dist/mcp/buildServer.js +1 -1
- package/dist/mcp/buildServer.js.map +1 -1
- package/dist/permissions.d.ts +15 -4
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +61 -12
- package/dist/permissions.js.map +1 -1
- package/dist/service/emailService.d.ts +15 -8
- package/dist/service/emailService.d.ts.map +1 -1
- package/dist/service/emailService.js +42 -17
- package/dist/service/emailService.js.map +1 -1
- package/dist/storage/adminAudit.d.ts +14 -0
- package/dist/storage/adminAudit.d.ts.map +1 -0
- package/dist/storage/adminAudit.js +32 -0
- package/dist/storage/adminAudit.js.map +1 -0
- package/dist/storage/apiKeys.d.ts +25 -7
- package/dist/storage/apiKeys.d.ts.map +1 -1
- package/dist/storage/apiKeys.js +104 -12
- package/dist/storage/apiKeys.js.map +1 -1
- package/dist/storage/db.d.ts +486 -0
- package/dist/storage/db.d.ts.map +1 -1
- package/dist/storage/db.js +171 -8
- package/dist/storage/db.js.map +1 -1
- package/dist/storage/gmailConnectionGrants.d.ts +9 -0
- package/dist/storage/gmailConnectionGrants.d.ts.map +1 -1
- package/dist/storage/gmailConnectionGrants.js +30 -7
- package/dist/storage/gmailConnectionGrants.js.map +1 -1
- package/dist/storage/members.d.ts +7 -4
- package/dist/storage/members.d.ts.map +1 -1
- package/dist/storage/members.js +34 -8
- package/dist/storage/members.js.map +1 -1
- package/dist/storage/restIdempotency.d.ts +28 -0
- package/dist/storage/restIdempotency.d.ts.map +1 -0
- package/dist/storage/restIdempotency.js +47 -0
- package/dist/storage/restIdempotency.js.map +1 -0
- package/package.json +10 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/http/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/http/app.d.ts
CHANGED
|
@@ -5,12 +5,14 @@ import type { FluxmailDb } from '../storage/db.js';
|
|
|
5
5
|
import type { AccountRegistry } from '../accounts/registry.js';
|
|
6
6
|
import type { EmailService } from '../service/emailService.js';
|
|
7
7
|
import type { Telemetry } from '../telemetry.js';
|
|
8
|
+
import type { LicenseController } from '../licensing/refresher.js';
|
|
8
9
|
export interface AppDeps {
|
|
9
10
|
config: FluxmailConfig;
|
|
10
11
|
db: FluxmailDb;
|
|
11
12
|
registry: AccountRegistry;
|
|
12
13
|
service: EmailService;
|
|
13
14
|
telemetry?: Telemetry;
|
|
15
|
+
licenseController?: LicenseController;
|
|
14
16
|
}
|
|
15
17
|
export declare function createApp(deps: AppDeps): Hono<{
|
|
16
18
|
Bindings: HttpBindings;
|
package/dist/http/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/http/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/http/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAgB5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAMnE,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,CAAC,CAiiBzE"}
|
package/dist/http/app.js
CHANGED
|
@@ -7,67 +7,225 @@ import { authenticateApiKey } from '../storage/apiKeys.js';
|
|
|
7
7
|
import { buildMcpServer } from '../mcp/buildServer.js';
|
|
8
8
|
import { FULL_PERMISSION_POLICY } from '../permissions.js';
|
|
9
9
|
import { buildAuthUrl, createOAuthClient, exchangeCode } from '../accounts/googleAuth.js';
|
|
10
|
-
import { claimGmailConnectionGrant, inspectGmailConnectionGrant, } from '../storage/gmailConnectionGrants.js';
|
|
10
|
+
import { claimGmailConnectionGrant, claimOutlookConnectionGrant, inspectGmailConnectionGrant, inspectOutlookConnectionGrant, } from '../storage/gmailConnectionGrants.js';
|
|
11
|
+
import { buildMicrosoftAuthUrl, exchangeMicrosoftCode, requireMicrosoftConfig } from '../accounts/microsoftAuth.js';
|
|
12
|
+
import { prepareHostedGmailConnection, prepareHostedOutlookConnection } from '../accounts/gmailConnection.js';
|
|
11
13
|
import { VERSION } from '../version.js';
|
|
14
|
+
import { findMember } from '../storage/members.js';
|
|
15
|
+
import { createRestApi } from './rest.js';
|
|
16
|
+
import { hasCapability } from '../permissions.js';
|
|
17
|
+
import { administrationUsesHttps as administrationRequestUsesHttps, requestBodyExceedsLimit } from './admin.js';
|
|
18
|
+
import { recordAdminAuditEvent } from '../storage/adminAudit.js';
|
|
12
19
|
const OAUTH_STATE_TTL_MS = 10 * 60 * 1000;
|
|
13
20
|
export function createApp(deps) {
|
|
14
|
-
const { config, db, registry, service, telemetry } = deps;
|
|
21
|
+
const { config, db, registry, service, telemetry, licenseController } = deps;
|
|
15
22
|
const app = new Hono();
|
|
16
|
-
const
|
|
23
|
+
const googleOauthStates = new Map();
|
|
24
|
+
const microsoftOauthStates = new Map();
|
|
25
|
+
const escapeHtml = (value) => value.replace(/[&<>"']/g, (char) => {
|
|
26
|
+
const entities = {
|
|
27
|
+
'&': '&',
|
|
28
|
+
'<': '<',
|
|
29
|
+
'>': '>',
|
|
30
|
+
'"': '"',
|
|
31
|
+
"'": ''',
|
|
32
|
+
};
|
|
33
|
+
return entities[char];
|
|
34
|
+
});
|
|
17
35
|
const connectionLinkPage = (title, message) => `<html><body style="font-family: sans-serif"><h2>${title}</h2><p>${message}</p></body></html>`;
|
|
18
|
-
const connectionLinkError = (status) => {
|
|
36
|
+
const connectionLinkError = (status, providerName, providerCommand) => {
|
|
19
37
|
if (status === 'expired') {
|
|
20
38
|
return {
|
|
21
|
-
html: connectionLinkPage(
|
|
39
|
+
html: connectionLinkPage(`This ${providerName} connection link has expired`, 'Run the Fluxmail command again to get a new link.'),
|
|
22
40
|
status: 410,
|
|
23
41
|
};
|
|
24
42
|
}
|
|
25
43
|
if (status === 'used') {
|
|
26
44
|
return {
|
|
27
|
-
html: connectionLinkPage(
|
|
45
|
+
html: connectionLinkPage(`This ${providerName} connection link has already been used`, `Run "fluxmail accounts add ${providerCommand}" again if you still need to connect ${providerName}.`),
|
|
28
46
|
status: 410,
|
|
29
47
|
};
|
|
30
48
|
}
|
|
31
49
|
return {
|
|
32
|
-
html: connectionLinkPage(
|
|
50
|
+
html: connectionLinkPage(`This ${providerName} connection link is invalid`, 'Run the Fluxmail command again to get a new link.'),
|
|
33
51
|
status: 400,
|
|
34
52
|
};
|
|
35
53
|
};
|
|
36
|
-
const connectionConfirmationPage = () =>
|
|
37
|
-
|
|
54
|
+
const connectionConfirmationPage = (providerName, identityProvider) => `<html><body style="font-family: sans-serif"><h2>Connect ${providerName} to Fluxmail</h2>` +
|
|
55
|
+
`<p>Continue to ${identityProvider} to choose the account you want to connect.</p>` +
|
|
38
56
|
'<form method="post">' +
|
|
39
|
-
|
|
57
|
+
`<button type="submit">Continue with ${identityProvider}</button></form></body></html>`;
|
|
40
58
|
const beginGoogleOAuth = (intent) => {
|
|
41
59
|
const now = Date.now();
|
|
42
|
-
for (const [state, pending] of
|
|
60
|
+
for (const [state, pending] of googleOauthStates) {
|
|
43
61
|
if (pending.expiresAt < now)
|
|
44
|
-
|
|
62
|
+
googleOauthStates.delete(state);
|
|
45
63
|
}
|
|
46
64
|
const state = randomBytes(16).toString('hex');
|
|
47
|
-
|
|
65
|
+
googleOauthStates.set(state, { expiresAt: now + OAUTH_STATE_TTL_MS, ...(intent ? { intent } : {}) });
|
|
48
66
|
const client = createOAuthClient(config, `${config.publicUrl}/auth/google/callback`);
|
|
49
67
|
return buildAuthUrl(client, state);
|
|
50
68
|
};
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
69
|
+
const beginMicrosoftOAuth = (intent) => {
|
|
70
|
+
const microsoft = requireMicrosoftConfig(config);
|
|
71
|
+
if (!microsoft.clientSecret) {
|
|
72
|
+
throw new EmailError('invalid_request', 'MICROSOFT_CLIENT_SECRET is required for hosted Outlook connections.');
|
|
73
|
+
}
|
|
74
|
+
const now = Date.now();
|
|
75
|
+
for (const [state, pending] of microsoftOauthStates) {
|
|
76
|
+
if (pending.expiresAt < now)
|
|
77
|
+
microsoftOauthStates.delete(state);
|
|
78
|
+
}
|
|
79
|
+
const state = randomBytes(16).toString('hex');
|
|
80
|
+
const verifier = randomBytes(32).toString('base64url');
|
|
81
|
+
microsoftOauthStates.set(state, {
|
|
82
|
+
expiresAt: now + OAUTH_STATE_TTL_MS,
|
|
83
|
+
verifier,
|
|
84
|
+
...(intent ? { intent } : {}),
|
|
85
|
+
});
|
|
86
|
+
return buildMicrosoftAuthUrl(config, `${config.publicUrl}/auth/microsoft/callback`, state, verifier);
|
|
87
|
+
};
|
|
88
|
+
// Connecting a mailbox requires an admin member or a migrated management key.
|
|
89
|
+
const adminAuth = (c) => {
|
|
90
|
+
const authorization = c.req.header('authorization');
|
|
91
|
+
const bearer = authorization?.match(/^Bearer\s+([^\s]+)$/i)?.[1];
|
|
92
|
+
return bearer ? authenticateApiKey(db, bearer) : null;
|
|
61
93
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
94
|
+
const canAdministerAccounts = (auth) => hasCapability(auth.permissions, 'admin.accounts') && (auth.memberId === null || auth.role === 'admin');
|
|
95
|
+
const administrationUsesHttps = (c) => administrationRequestUsesHttps(c.req.raw, {
|
|
96
|
+
remoteAddress: c.env?.incoming?.socket.remoteAddress,
|
|
97
|
+
encrypted: Boolean(c.env?.incoming?.socket?.encrypted),
|
|
98
|
+
});
|
|
99
|
+
// Authenticate an MCP request. The service applies member grants and the key's
|
|
100
|
+
// optional mailbox allowlist before any provider call.
|
|
65
101
|
const authForRequest = (c) => {
|
|
66
|
-
if (config.authMode === 'none')
|
|
67
|
-
return { memberId: null, permissions: FULL_PERMISSION_POLICY };
|
|
102
|
+
if (config.authMode === 'none') {
|
|
103
|
+
return { keyId: 'auth:none', memberId: null, role: null, permissions: FULL_PERMISSION_POLICY, accountIds: null };
|
|
104
|
+
}
|
|
68
105
|
const bearer = c.req.header('authorization')?.replace(/^Bearer\s+/i, '');
|
|
69
106
|
return bearer ? authenticateApiKey(db, bearer) : null;
|
|
70
107
|
};
|
|
108
|
+
app.use('/auth/connections', async (c, next) => {
|
|
109
|
+
c.header('cache-control', 'no-store');
|
|
110
|
+
c.header('x-content-type-options', 'nosniff');
|
|
111
|
+
c.header('referrer-policy', 'no-referrer');
|
|
112
|
+
return next();
|
|
113
|
+
});
|
|
114
|
+
app.post('/auth/connections', async (c) => {
|
|
115
|
+
const auth = adminAuth(c);
|
|
116
|
+
if (!auth)
|
|
117
|
+
return c.json({ error: 'An admin API key is required.' }, 401);
|
|
118
|
+
const audit = (outcome, errorCode) => {
|
|
119
|
+
try {
|
|
120
|
+
recordAdminAuditEvent(db, {
|
|
121
|
+
operation: 'post /auth/connections',
|
|
122
|
+
outcome,
|
|
123
|
+
actorKeyId: auth.keyId,
|
|
124
|
+
actorMemberId: auth.memberId,
|
|
125
|
+
...(errorCode ? { errorCode } : {}),
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
// Auditing must not replace the API response.
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
if (!canAdministerAccounts(auth)) {
|
|
133
|
+
audit('error', 'permission_denied');
|
|
134
|
+
return c.json({ error: 'The API key cannot manage accounts.' }, 403);
|
|
135
|
+
}
|
|
136
|
+
if (!administrationUsesHttps(c)) {
|
|
137
|
+
audit('error', 'https_required');
|
|
138
|
+
return c.json({ error: 'Administrative routes require HTTPS outside loopback.' }, 400);
|
|
139
|
+
}
|
|
140
|
+
const mediaType = c.req.header('content-type')?.split(';', 1)[0]?.trim().toLowerCase();
|
|
141
|
+
if (mediaType !== 'application/json') {
|
|
142
|
+
audit('error', 'unsupported_media_type');
|
|
143
|
+
return c.json({ error: 'Content-Type must be application/json.' }, 415);
|
|
144
|
+
}
|
|
145
|
+
if (await requestBodyExceedsLimit(c.req.raw)) {
|
|
146
|
+
audit('error', 'request_too_large');
|
|
147
|
+
return c.json({ error: 'Request body is limited to 64 KiB.' }, 413);
|
|
148
|
+
}
|
|
149
|
+
let input;
|
|
150
|
+
try {
|
|
151
|
+
input = await c.req.json();
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
audit('error', 'invalid_request');
|
|
155
|
+
return c.json({ error: 'Request body must be valid JSON.' }, 400);
|
|
156
|
+
}
|
|
157
|
+
try {
|
|
158
|
+
if (input.provider !== 'gmail' && input.provider !== 'outlook') {
|
|
159
|
+
throw new EmailError('invalid_request', 'provider must be "gmail" or "outlook".');
|
|
160
|
+
}
|
|
161
|
+
const reauthorizeAccountId = typeof input.reauthorizeAccountId === 'string' ? input.reauthorizeAccountId.trim() : undefined;
|
|
162
|
+
const ownerRef = typeof input.owner === 'string' ? input.owner.trim() : undefined;
|
|
163
|
+
if ((reauthorizeAccountId?.length ?? 0) > 200 || (ownerRef?.length ?? 0) > 200) {
|
|
164
|
+
throw new EmailError('invalid_request', 'Account and member references are limited to 200 characters.');
|
|
165
|
+
}
|
|
166
|
+
if (input.shareWith !== undefined && !Array.isArray(input.shareWith)) {
|
|
167
|
+
throw new EmailError('invalid_request', 'shareWith must be an array of member ids or email addresses.');
|
|
168
|
+
}
|
|
169
|
+
if ((input.shareWith?.length ?? 0) > 100) {
|
|
170
|
+
throw new EmailError('invalid_request', 'shareWith is limited to 100 members.');
|
|
171
|
+
}
|
|
172
|
+
const shareWith = (input.shareWith ?? []).map((value) => {
|
|
173
|
+
if (typeof value !== 'string' || !value.trim() || value.trim().length > 200) {
|
|
174
|
+
throw new EmailError('invalid_request', 'shareWith must contain member ids or email addresses.');
|
|
175
|
+
}
|
|
176
|
+
return value.trim();
|
|
177
|
+
});
|
|
178
|
+
if (reauthorizeAccountId && (ownerRef || input.sharingMode !== undefined || shareWith.length)) {
|
|
179
|
+
throw new EmailError('invalid_request', 'owner and sharing settings cannot be combined with reauthorizeAccountId.');
|
|
180
|
+
}
|
|
181
|
+
let intent;
|
|
182
|
+
if (reauthorizeAccountId) {
|
|
183
|
+
const existing = registry.getAccount(reauthorizeAccountId);
|
|
184
|
+
if (existing.provider !== input.provider) {
|
|
185
|
+
throw new EmailError('invalid_request', `Account ${existing.id} uses ${existing.provider}, not ${input.provider}.`);
|
|
186
|
+
}
|
|
187
|
+
intent = { reauthorizeAccountId: existing.id };
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
if (!ownerRef)
|
|
191
|
+
throw new EmailError('invalid_request', 'owner is required for a new mailbox.');
|
|
192
|
+
registry.assertCanAddAccount();
|
|
193
|
+
const owner = findMember(db, ownerRef);
|
|
194
|
+
const sharingMode = input.sharingMode ?? (shareWith.length ? 'selected' : 'private');
|
|
195
|
+
if (sharingMode !== 'private' && sharingMode !== 'selected' && sharingMode !== 'all') {
|
|
196
|
+
throw new EmailError('invalid_request', 'sharingMode must be "private", "selected", or "all".');
|
|
197
|
+
}
|
|
198
|
+
if (sharingMode === 'selected' && shareWith.length === 0) {
|
|
199
|
+
throw new EmailError('invalid_request', 'shareWith is required when sharingMode is "selected".');
|
|
200
|
+
}
|
|
201
|
+
if (sharingMode !== 'selected' && shareWith.length > 0) {
|
|
202
|
+
throw new EmailError('invalid_request', 'shareWith can only be used with sharingMode "selected".');
|
|
203
|
+
}
|
|
204
|
+
intent = {
|
|
205
|
+
memberId: owner.id,
|
|
206
|
+
sharingMode,
|
|
207
|
+
sharedMemberIds: shareWith.map((ref) => findMember(db, ref).id),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
const prepared = input.provider === 'gmail'
|
|
211
|
+
? prepareHostedGmailConnection(db, config, intent)
|
|
212
|
+
: prepareHostedOutlookConnection(db, config, intent);
|
|
213
|
+
audit('success');
|
|
214
|
+
return c.json({
|
|
215
|
+
provider: input.provider,
|
|
216
|
+
connectionUrl: prepared.connectionUrl,
|
|
217
|
+
expiresAt: new Date(prepared.expiresAt).toISOString(),
|
|
218
|
+
}, 201);
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
if (isEmailError(err)) {
|
|
222
|
+
audit('error', err.code);
|
|
223
|
+
return c.json({ error: err.message }, 400);
|
|
224
|
+
}
|
|
225
|
+
audit('error', 'internal');
|
|
226
|
+
return c.json({ error: 'Could not create the connection link.' }, 500);
|
|
227
|
+
}
|
|
228
|
+
});
|
|
71
229
|
app.get('/healthz', (c) => c.json({ ok: true, name: 'fluxmail', version: VERSION }));
|
|
72
230
|
// Stateless Streamable HTTP: a fresh server+transport pair per request.
|
|
73
231
|
app.post('/mcp', async (c) => {
|
|
@@ -86,7 +244,9 @@ export function createApp(deps) {
|
|
|
86
244
|
catch {
|
|
87
245
|
return c.json({ jsonrpc: '2.0', error: { code: -32700, message: 'Parse error' }, id: null }, 400);
|
|
88
246
|
}
|
|
89
|
-
const scope =
|
|
247
|
+
const scope = config.authMode === 'none'
|
|
248
|
+
? { memberId: null }
|
|
249
|
+
: { memberId: auth.memberId, role: auth.role, accountIds: auth.accountIds };
|
|
90
250
|
const server = buildMcpServer(service.withScope(scope), {
|
|
91
251
|
permissions: auth.permissions,
|
|
92
252
|
maxAttachmentBytes: config.maxAttachmentBytes,
|
|
@@ -114,10 +274,28 @@ export function createApp(deps) {
|
|
|
114
274
|
app.delete('/mcp', methodNotAllowed);
|
|
115
275
|
// Server-hosted OAuth flow (for remote deployments; the CLI uses a loopback flow instead).
|
|
116
276
|
app.get('/auth/google', (c) => {
|
|
117
|
-
|
|
118
|
-
|
|
277
|
+
c.header('cache-control', 'no-store');
|
|
278
|
+
c.header('x-content-type-options', 'nosniff');
|
|
279
|
+
c.header('referrer-policy', 'no-referrer');
|
|
280
|
+
if (!administrationUsesHttps(c))
|
|
281
|
+
return c.text('Administrative routes require HTTPS outside loopback.', 400);
|
|
282
|
+
const auth = adminAuth(c);
|
|
283
|
+
if (!auth) {
|
|
284
|
+
return c.text('Unauthorized: pass an admin API key as a Bearer token.', 401);
|
|
285
|
+
}
|
|
286
|
+
if (!canAdministerAccounts(auth))
|
|
287
|
+
return c.text('Forbidden.', 403);
|
|
288
|
+
const ownerRef = c.req.query('owner');
|
|
289
|
+
if (!ownerRef) {
|
|
290
|
+
return c.text('Missing owner. Start the hosted connection with "fluxmail accounts add gmail --owner <member>".', 400);
|
|
291
|
+
}
|
|
292
|
+
try {
|
|
293
|
+
const owner = findMember(db, ownerRef);
|
|
294
|
+
return c.redirect(beginGoogleOAuth({ memberId: owner.id, sharingMode: 'private' }));
|
|
295
|
+
}
|
|
296
|
+
catch (err) {
|
|
297
|
+
return c.text(err instanceof Error ? err.message : String(err), 400);
|
|
119
298
|
}
|
|
120
|
-
return c.redirect(beginGoogleOAuth());
|
|
121
299
|
});
|
|
122
300
|
// Hono falls back to GET handlers for HEAD requests. Handle HEAD explicitly
|
|
123
301
|
// so link previews and security scanners cannot consume a one-time grant.
|
|
@@ -129,36 +307,38 @@ export function createApp(deps) {
|
|
|
129
307
|
app.get('/auth/google/connect', (c) => {
|
|
130
308
|
const token = c.req.query('token');
|
|
131
309
|
if (!token) {
|
|
132
|
-
const error = connectionLinkError('invalid');
|
|
310
|
+
const error = connectionLinkError('invalid', 'Gmail', 'gmail');
|
|
133
311
|
return c.html(error.html, error.status);
|
|
134
312
|
}
|
|
135
313
|
const status = inspectGmailConnectionGrant(db, token);
|
|
136
314
|
if (status !== 'available') {
|
|
137
|
-
const error = connectionLinkError(status);
|
|
315
|
+
const error = connectionLinkError(status, 'Gmail', 'gmail');
|
|
138
316
|
return c.html(error.html, error.status);
|
|
139
317
|
}
|
|
140
|
-
return c.html(connectionConfirmationPage());
|
|
318
|
+
return c.html(connectionConfirmationPage('Gmail', 'Google'));
|
|
141
319
|
});
|
|
142
320
|
app.post('/auth/google/connect', (c) => {
|
|
143
321
|
const token = c.req.query('token');
|
|
144
322
|
if (!token) {
|
|
145
|
-
const error = connectionLinkError('invalid');
|
|
323
|
+
const error = connectionLinkError('invalid', 'Gmail', 'gmail');
|
|
146
324
|
return c.html(error.html, error.status);
|
|
147
325
|
}
|
|
148
326
|
const claim = claimGmailConnectionGrant(db, token);
|
|
149
327
|
if (claim.status !== 'claimed') {
|
|
150
|
-
const error = connectionLinkError(claim.status);
|
|
328
|
+
const error = connectionLinkError(claim.status, 'Gmail', 'gmail');
|
|
151
329
|
return c.html(error.html, error.status);
|
|
152
330
|
}
|
|
153
331
|
return c.redirect(beginGoogleOAuth(claim.grant));
|
|
154
332
|
});
|
|
155
333
|
app.get('/auth/google/callback', async (c) => {
|
|
334
|
+
c.header('cache-control', 'no-store');
|
|
335
|
+
c.header('referrer-policy', 'no-referrer');
|
|
156
336
|
const state = c.req.query('state');
|
|
157
|
-
const pending = state ?
|
|
337
|
+
const pending = state ? googleOauthStates.get(state) : undefined;
|
|
158
338
|
if (!state || !pending || pending.expiresAt < Date.now()) {
|
|
159
339
|
return c.text('Invalid or expired OAuth state. Start the Gmail connection flow again.', 400);
|
|
160
340
|
}
|
|
161
|
-
|
|
341
|
+
googleOauthStates.delete(state);
|
|
162
342
|
const error = c.req.query('error');
|
|
163
343
|
if (error)
|
|
164
344
|
return c.text(`Google returned an error: ${error}`, 400);
|
|
@@ -178,9 +358,12 @@ export function createApp(deps) {
|
|
|
178
358
|
throw new EmailError('invalid_request', `Google authorized ${email}, but account ${reauthorizeAccount.id} belongs to ${reauthorizeAccount.email}. ` +
|
|
179
359
|
'Try again and choose the matching Google account.');
|
|
180
360
|
}
|
|
181
|
-
const account = registry.addGmailAccount(email, tokens, displayName, pending.intent?.memberId
|
|
182
|
-
|
|
183
|
-
|
|
361
|
+
const account = registry.addGmailAccount(email, tokens, displayName, pending.intent?.memberId, {
|
|
362
|
+
sharingMode: pending.intent?.sharingMode ?? 'private',
|
|
363
|
+
sharedMemberIds: pending.intent?.sharedMemberIds ?? [],
|
|
364
|
+
});
|
|
365
|
+
return c.html(`<html><body style="font-family: sans-serif"><h2>${escapeHtml(email)} is connected to Fluxmail</h2>` +
|
|
366
|
+
`<p>Account id: <code>${escapeHtml(account.id)}</code>. You can close this tab.</p></body></html>`);
|
|
184
367
|
}
|
|
185
368
|
catch (err) {
|
|
186
369
|
// Surface why connecting failed (expired code, missing refresh token,
|
|
@@ -190,6 +373,103 @@ export function createApp(deps) {
|
|
|
190
373
|
return c.text('Could not connect the account; check the server logs.', 500);
|
|
191
374
|
}
|
|
192
375
|
});
|
|
376
|
+
app.get('/auth/microsoft', (c) => {
|
|
377
|
+
c.header('cache-control', 'no-store');
|
|
378
|
+
c.header('x-content-type-options', 'nosniff');
|
|
379
|
+
c.header('referrer-policy', 'no-referrer');
|
|
380
|
+
if (!administrationUsesHttps(c))
|
|
381
|
+
return c.text('Administrative routes require HTTPS outside loopback.', 400);
|
|
382
|
+
const auth = adminAuth(c);
|
|
383
|
+
if (!auth) {
|
|
384
|
+
return c.text('Unauthorized: pass an admin API key as a Bearer token.', 401);
|
|
385
|
+
}
|
|
386
|
+
if (!canAdministerAccounts(auth))
|
|
387
|
+
return c.text('Forbidden.', 403);
|
|
388
|
+
const ownerRef = c.req.query('owner');
|
|
389
|
+
if (!ownerRef) {
|
|
390
|
+
return c.text('Missing owner. Start the hosted connection with "fluxmail accounts add outlook --owner <member>".', 400);
|
|
391
|
+
}
|
|
392
|
+
try {
|
|
393
|
+
const owner = findMember(db, ownerRef);
|
|
394
|
+
return c.redirect(beginMicrosoftOAuth({ memberId: owner.id, sharingMode: 'private' }));
|
|
395
|
+
}
|
|
396
|
+
catch (err) {
|
|
397
|
+
return c.text(err instanceof Error ? err.message : String(err), 400);
|
|
398
|
+
}
|
|
399
|
+
});
|
|
400
|
+
app.use('/auth/microsoft/connect', async (c, next) => {
|
|
401
|
+
c.header('cache-control', 'no-store');
|
|
402
|
+
c.header('referrer-policy', 'no-referrer');
|
|
403
|
+
return c.req.method === 'HEAD' ? c.body(null, 204) : next();
|
|
404
|
+
});
|
|
405
|
+
app.get('/auth/microsoft/connect', (c) => {
|
|
406
|
+
const token = c.req.query('token');
|
|
407
|
+
if (!token) {
|
|
408
|
+
const error = connectionLinkError('invalid', 'Outlook', 'outlook');
|
|
409
|
+
return c.html(error.html, error.status);
|
|
410
|
+
}
|
|
411
|
+
const status = inspectOutlookConnectionGrant(db, token);
|
|
412
|
+
if (status !== 'available') {
|
|
413
|
+
const error = connectionLinkError(status, 'Outlook', 'outlook');
|
|
414
|
+
return c.html(error.html, error.status);
|
|
415
|
+
}
|
|
416
|
+
return c.html(connectionConfirmationPage('Outlook', 'Microsoft'));
|
|
417
|
+
});
|
|
418
|
+
app.post('/auth/microsoft/connect', (c) => {
|
|
419
|
+
const token = c.req.query('token');
|
|
420
|
+
if (!token) {
|
|
421
|
+
const error = connectionLinkError('invalid', 'Outlook', 'outlook');
|
|
422
|
+
return c.html(error.html, error.status);
|
|
423
|
+
}
|
|
424
|
+
const claim = claimOutlookConnectionGrant(db, token);
|
|
425
|
+
if (claim.status !== 'claimed') {
|
|
426
|
+
const error = connectionLinkError(claim.status, 'Outlook', 'outlook');
|
|
427
|
+
return c.html(error.html, error.status);
|
|
428
|
+
}
|
|
429
|
+
return c.redirect(beginMicrosoftOAuth(claim.grant));
|
|
430
|
+
});
|
|
431
|
+
app.get('/auth/microsoft/callback', async (c) => {
|
|
432
|
+
c.header('cache-control', 'no-store');
|
|
433
|
+
c.header('referrer-policy', 'no-referrer');
|
|
434
|
+
const state = c.req.query('state');
|
|
435
|
+
const pending = state ? microsoftOauthStates.get(state) : undefined;
|
|
436
|
+
if (!state || !pending || pending.expiresAt < Date.now()) {
|
|
437
|
+
return c.text('Invalid or expired OAuth state. Start the Outlook connection flow again.', 400);
|
|
438
|
+
}
|
|
439
|
+
microsoftOauthStates.delete(state);
|
|
440
|
+
const error = c.req.query('error');
|
|
441
|
+
if (error) {
|
|
442
|
+
return c.text(`Microsoft returned an error: ${c.req.query('error_description') ?? error}`, 400);
|
|
443
|
+
}
|
|
444
|
+
const code = c.req.query('code');
|
|
445
|
+
if (!code)
|
|
446
|
+
return c.text('Missing code parameter.', 400);
|
|
447
|
+
try {
|
|
448
|
+
const { email, displayName, credentials } = await exchangeMicrosoftCode(config, code, `${config.publicUrl}/auth/microsoft/callback`, pending.verifier, 'confidential');
|
|
449
|
+
const reauthorizeAccount = pending.intent?.reauthorizeAccountId
|
|
450
|
+
? registry.getAccount(pending.intent.reauthorizeAccountId)
|
|
451
|
+
: undefined;
|
|
452
|
+
if (reauthorizeAccount?.provider !== undefined && reauthorizeAccount.provider !== 'outlook') {
|
|
453
|
+
throw new EmailError('invalid_request', `Account ${reauthorizeAccount.id} does not use Outlook.`);
|
|
454
|
+
}
|
|
455
|
+
if (reauthorizeAccount && reauthorizeAccount.email.toLowerCase() !== email.toLowerCase()) {
|
|
456
|
+
throw new EmailError('invalid_request', `Microsoft authorized ${email}, but account ${reauthorizeAccount.id} belongs to ${reauthorizeAccount.email}. ` +
|
|
457
|
+
'Try again and choose the matching Microsoft account.');
|
|
458
|
+
}
|
|
459
|
+
const account = registry.addOutlookAccount(email, credentials, displayName, pending.intent?.memberId, pending.intent?.reauthorizeAccountId, {
|
|
460
|
+
sharingMode: pending.intent?.sharingMode ?? 'private',
|
|
461
|
+
sharedMemberIds: pending.intent?.sharedMemberIds ?? [],
|
|
462
|
+
});
|
|
463
|
+
return c.html(`<html><body style="font-family: sans-serif"><h2>${escapeHtml(email)} is connected to Fluxmail</h2>` +
|
|
464
|
+
`<p>Account id: <code>${escapeHtml(account.id)}</code>. You can close this tab.</p></body></html>`);
|
|
465
|
+
}
|
|
466
|
+
catch (err) {
|
|
467
|
+
if (isEmailError(err))
|
|
468
|
+
return c.text(`Could not connect the account: ${err.message}`, 400);
|
|
469
|
+
return c.text('Could not connect the account; check the server logs.', 500);
|
|
470
|
+
}
|
|
471
|
+
});
|
|
472
|
+
app.route('/', createRestApi({ config, db, service, telemetry, registry, licenseController }));
|
|
193
473
|
return app;
|
|
194
474
|
}
|
|
195
475
|
//# sourceMappingURL=app.js.map
|
package/dist/http/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/http/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAKnG,OAAO,EAAE,kBAAkB,EAAmB,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EACL,yBAAyB,EACzB,2BAA2B,GAG5B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAU1C,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC1D,MAAM,GAAG,GAAG,IAAI,IAAI,EAA8B,CAAC;IACnD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiE,CAAC;IAE7F,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,OAAe,EAAU,EAAE,CACpE,mDAAmD,KAAK,WAAW,OAAO,oBAAoB,CAAC;IAEjG,MAAM,mBAAmB,GAAG,CAC1B,MAAwD,EACnB,EAAE;QACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,kBAAkB,CACtB,wCAAwC,EACxC,mDAAmD,CACpD;gBACD,MAAM,EAAE,GAAG;aACZ,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO;gBACL,IAAI,EAAE,kBAAkB,CACtB,kDAAkD,EAClD,oEAAoE,CACrE;gBACD,MAAM,EAAE,GAAG;aACZ,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,kBAAkB,CACtB,uCAAuC,EACvC,mDAAmD,CACpD;YACD,MAAM,EAAE,GAAG;SACZ,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,0BAA0B,GAAG,GAAW,EAAE,CAC9C,gFAAgF;QAChF,4EAA4E;QAC5E,sBAAsB;QACtB,0EAA0E,CAAC;IAE7E,MAAM,gBAAgB,GAAG,CAAC,MAA8B,EAAU,EAAE;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,SAAS,GAAG,GAAG;gBAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9C,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,uBAAuB,CAAC,CAAC;QACrF,OAAO,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,4EAA4E;IAC5E,uEAAuE;IACvE,MAAM,eAAe,GAAG,CACtB,CAAiG,EACjG,aAAa,GAAG,KAAK,EACZ,EAAE;QACX,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAC5C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,OAAO,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACxD,CAAC,CAAC;IAEF,gFAAgF;IAChF,8EAA8E;IAC9E,6CAA6C;IAC7C,MAAM,cAAc,GAAG,CAAC,CAAwD,EAAqB,EAAE;QACrG,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM;YAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;QAC/F,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAErF,wEAAwE;IACxE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,iDAAiD,EAAE;gBACnF,EAAE,EAAE,IAAI;aACT,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,KAAK,GAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACtD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,SAAS;YACT,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;YAClD,kBAAkB,EAAE,SAAS;YAC7B,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC;QACH,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC9B,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpE,OAAO,qBAAqB,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,CAAC,CAA6C,EAAE,EAAE,CACzE,CAAC,CAAC,IAAI,CACJ;QACE,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,wDAAwD,EAAE;QAC1F,EAAE,EAAE,IAAI;KACT,EACD,GAAG,CACJ,CAAC;IACJ,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAErC,2FAA2F;IAC3F,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;QAC5B,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,0EAA0E;IAC1E,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAChD,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE;QACpC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,MAAM,GAAG,2BAA2B,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,KAAK,GAAG,yBAAyB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChD,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACzD,OAAO,CAAC,CAAC,IAAI,CAAC,wEAAwE,EAAE,GAAG,CAAC,CAAC;QAC/F,CAAC;QACD,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,KAAK;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,6BAA6B,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,uBAAuB,CAAC,CAAC;QACrF,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACxE,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,oBAAoB;gBAC7D,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;gBAC1D,CAAC,CAAC,SAAS,CAAC;YACd,IAAI,kBAAkB,EAAE,QAAQ,KAAK,SAAS,IAAI,kBAAkB,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC1F,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,WAAW,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC7D,MAAM,IAAI,UAAU,CAClB,iBAAiB,EACjB,qBAAqB,KAAK,iBAAiB,kBAAkB,CAAC,EAAE,eAAe,kBAAkB,CAAC,KAAK,IAAI;oBACzG,mDAAmD,CACtD,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC/F,OAAO,CAAC,CAAC,IAAI,CACX,mDAAmD,KAAK,gCAAgC;gBACtF,wBAAwB,OAAO,CAAC,EAAE,oDAAoD,CACzF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sEAAsE;YACtE,gEAAgE;YAChE,IAAI,YAAY,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,IAAI,CAAC,kCAAkC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;YAC3F,OAAO,CAAC,CAAC,IAAI,CAAC,uDAAuD,EAAE,GAAG,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/http/app.ts"],"names":[],"mappings":"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"}
|