@rpcbase/server 0.566.0 → 0.568.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/dist/applyRouteLoaders.d.ts +9 -0
- package/dist/applyRouteLoaders.d.ts.map +1 -0
- package/dist/checkInitReplicaSet.d.ts +6 -0
- package/dist/checkInitReplicaSet.d.ts.map +1 -0
- package/dist/dev/coverage.d.ts +3 -0
- package/dist/dev/coverage.d.ts.map +1 -0
- package/dist/email.d.ts +19 -0
- package/dist/email.d.ts.map +1 -0
- package/dist/getDerivedKey.d.ts +3 -0
- package/dist/getDerivedKey.d.ts.map +1 -0
- package/dist/hashPassword.d.ts +2 -0
- package/dist/hashPassword.d.ts.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/initServer.d.ts +9 -0
- package/dist/initServer.d.ts.map +1 -0
- package/dist/metricsIngestProxyMiddleware.d.ts +3 -0
- package/dist/metricsIngestProxyMiddleware.d.ts.map +1 -0
- package/dist/notifications/api/notifications/handler.d.ts +4 -0
- package/dist/notifications/api/notifications/handler.d.ts.map +1 -0
- package/dist/notifications/api/notifications/index.d.ts +224 -0
- package/dist/notifications/api/notifications/index.d.ts.map +1 -0
- package/dist/notifications/api/notifications/shared.d.ts +6 -0
- package/dist/notifications/api/notifications/shared.d.ts.map +1 -0
- package/dist/notifications/createNotification.d.ts +31 -0
- package/dist/notifications/createNotification.d.ts.map +1 -0
- package/dist/notifications/digest.d.ts +15 -0
- package/dist/notifications/digest.d.ts.map +1 -0
- package/dist/notifications/routes.d.ts +2 -0
- package/dist/notifications/routes.d.ts.map +1 -0
- package/dist/notifications.d.ts +4 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/passwordHashStorage.d.ts +11 -0
- package/dist/passwordHashStorage.d.ts.map +1 -0
- package/dist/posthog.d.ts +11 -0
- package/dist/posthog.d.ts.map +1 -0
- package/dist/proxyAuth.d.ts +17 -0
- package/dist/proxyAuth.d.ts.map +1 -0
- package/dist/renderSSR.d.ts +15 -0
- package/dist/renderSSR.d.ts.map +1 -0
- package/dist/rts/api/changes/handler.d.ts +9 -0
- package/dist/rts/api/changes/handler.d.ts.map +1 -0
- package/dist/rts/api/changes/index.d.ts +25 -0
- package/dist/rts/api/changes/index.d.ts.map +1 -0
- package/dist/rts/index.d.ts +52 -0
- package/dist/rts/index.d.ts.map +1 -0
- package/dist/rts/queryExecutor.d.ts +60 -0
- package/dist/rts/queryExecutor.d.ts.map +1 -0
- package/dist/rts/routes.d.ts +2 -0
- package/dist/rts/routes.d.ts.map +1 -0
- package/dist/rts/ssrHydration.d.ts +14 -0
- package/dist/rts/ssrHydration.d.ts.map +1 -0
- package/dist/ssrMiddleware.d.ts +18 -0
- package/dist/ssrMiddleware.d.ts.map +1 -0
- package/dist/syncAuthenticatedSession.d.ts +18 -0
- package/dist/syncAuthenticatedSession.d.ts.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/handler.d.ts +5 -0
- package/dist/uploads/api/file-uploads/handler.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/handlers/completeUpload.d.ts +5 -0
- package/dist/uploads/api/file-uploads/handlers/completeUpload.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/handlers/getStatus.d.ts +5 -0
- package/dist/uploads/api/file-uploads/handlers/getStatus.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/handlers/initUpload.d.ts +5 -0
- package/dist/uploads/api/file-uploads/handlers/initUpload.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/handlers/uploadChunk.d.ts +9 -0
- package/dist/uploads/api/file-uploads/handlers/uploadChunk.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/imageVariantsPostProcessor.d.ts +2 -0
- package/dist/uploads/api/file-uploads/imageVariantsPostProcessor.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/index.d.ts +43 -0
- package/dist/uploads/api/file-uploads/index.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/middleware/rawBodyParser.d.ts +5 -0
- package/dist/uploads/api/file-uploads/middleware/rawBodyParser.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/postProcessors.d.ts +33 -0
- package/dist/uploads/api/file-uploads/postProcessors.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/processors/convertHeifToWebp.d.ts +32 -0
- package/dist/uploads/api/file-uploads/processors/convertHeifToWebp.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/processors/index.d.ts +29 -0
- package/dist/uploads/api/file-uploads/processors/index.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/processors/sanitizeSvg.d.ts +5 -0
- package/dist/uploads/api/file-uploads/processors/sanitizeSvg.d.ts.map +1 -0
- package/dist/uploads/api/file-uploads/shared.d.ts +32 -0
- package/dist/uploads/api/file-uploads/shared.d.ts.map +1 -0
- package/dist/uploads/api/files/handler.d.ts +4 -0
- package/dist/uploads/api/files/handler.d.ts.map +1 -0
- package/dist/uploads/api/files/handlers/deleteFile.d.ts +9 -0
- package/dist/uploads/api/files/handlers/deleteFile.d.ts.map +1 -0
- package/dist/uploads/api/files/handlers/getFile.d.ts +4 -0
- package/dist/uploads/api/files/handlers/getFile.d.ts.map +1 -0
- package/dist/uploads/api/files/index.d.ts +4 -0
- package/dist/uploads/api/files/index.d.ts.map +1 -0
- package/dist/uploads/routes.d.ts +2 -0
- package/dist/uploads/routes.d.ts.map +1 -0
- package/dist/uploads/worker.d.ts +2 -0
- package/dist/uploads/worker.d.ts.map +1 -0
- package/dist/uploads.d.ts +3 -0
- package/dist/uploads.d.ts.map +1 -0
- package/package.json +13 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Request } from 'express';
|
|
2
|
+
import { PaginationPageInfo, PaginationSpec } from '@rpcbase/api';
|
|
3
|
+
import { AppAbility } from '@rpcbase/db/acl';
|
|
4
|
+
type JsonObject = Record<string, unknown>;
|
|
5
|
+
export type RtsPopulateObject = {
|
|
6
|
+
path: string;
|
|
7
|
+
model?: string;
|
|
8
|
+
select?: string | JsonObject;
|
|
9
|
+
match?: JsonObject;
|
|
10
|
+
options?: {
|
|
11
|
+
sort?: Record<string, 1 | -1>;
|
|
12
|
+
limit?: number;
|
|
13
|
+
};
|
|
14
|
+
populate?: RtsPopulateOption;
|
|
15
|
+
};
|
|
16
|
+
export type RtsPopulateOption = string | RtsPopulateObject | Array<string | RtsPopulateObject>;
|
|
17
|
+
export type RtsQueryOptions = {
|
|
18
|
+
projection?: JsonObject;
|
|
19
|
+
sort?: Record<string, 1 | -1>;
|
|
20
|
+
limit?: number;
|
|
21
|
+
populate?: RtsPopulateOption;
|
|
22
|
+
pagination?: PaginationSpec;
|
|
23
|
+
};
|
|
24
|
+
export type RtsQueryResult = {
|
|
25
|
+
data: unknown[];
|
|
26
|
+
pageInfo?: PaginationPageInfo;
|
|
27
|
+
totalCount?: number;
|
|
28
|
+
};
|
|
29
|
+
export declare const resolveRtsRequestTenantId: (req: Request) => string | null;
|
|
30
|
+
export declare const resolveRtsRequestUserId: (req: Request) => string | null;
|
|
31
|
+
export declare const isRtsRequestAuthorized: (req: Request, tenantId: string) => boolean;
|
|
32
|
+
export declare const buildRtsAbilityFromRequest: (req: Request, tenantId: string) => Promise<{
|
|
33
|
+
ability: AppAbility;
|
|
34
|
+
userId: string | null;
|
|
35
|
+
}>;
|
|
36
|
+
export declare const normalizeRtsQueryOptions: (options: RtsQueryOptions | undefined) => RtsQueryOptions;
|
|
37
|
+
export declare const resolveRtsQueryDependencyModelNames: ({ tenantId, ability, modelName, options, allowInternalModels, }: {
|
|
38
|
+
tenantId: string;
|
|
39
|
+
ability: AppAbility;
|
|
40
|
+
modelName: string;
|
|
41
|
+
options: RtsQueryOptions;
|
|
42
|
+
allowInternalModels?: boolean;
|
|
43
|
+
}) => Promise<string[]>;
|
|
44
|
+
export declare const runRtsQuery: ({ tenantId, ability, modelName, query, options, allowInternalModels, }: {
|
|
45
|
+
tenantId: string;
|
|
46
|
+
ability: AppAbility;
|
|
47
|
+
modelName: string;
|
|
48
|
+
query: JsonObject;
|
|
49
|
+
options: RtsQueryOptions;
|
|
50
|
+
allowInternalModels?: boolean;
|
|
51
|
+
}) => Promise<RtsQueryResult>;
|
|
52
|
+
export declare const runRtsCount: ({ tenantId, ability, modelName, query, allowInternalModels, }: {
|
|
53
|
+
tenantId: string;
|
|
54
|
+
ability: AppAbility;
|
|
55
|
+
modelName: string;
|
|
56
|
+
query: JsonObject;
|
|
57
|
+
allowInternalModels?: boolean;
|
|
58
|
+
}) => Promise<number>;
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=queryExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryExecutor.d.ts","sourceRoot":"","sources":["../../src/rts/queryExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/rts/routes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,yBAKb,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Request } from 'express';
|
|
2
|
+
import { RtsSsrRuntime, StaticRpcbaseRtsHydrationData } from '@rpcbase/client';
|
|
3
|
+
export type RtsSsrCollector = {
|
|
4
|
+
runtime: RtsSsrRuntime;
|
|
5
|
+
hasRegistrations: () => boolean;
|
|
6
|
+
resolve: () => Promise<StaticRpcbaseRtsHydrationData | null>;
|
|
7
|
+
};
|
|
8
|
+
export declare const createRtsSsrCollector: (req: Request, opts?: {
|
|
9
|
+
maxQueries?: number;
|
|
10
|
+
maxDocsPerQuery?: number;
|
|
11
|
+
maxSerializedBytes?: number;
|
|
12
|
+
}) => RtsSsrCollector;
|
|
13
|
+
export declare const renderRtsHydrationScript: (data: StaticRpcbaseRtsHydrationData | null | undefined) => string;
|
|
14
|
+
//# sourceMappingURL=ssrHydration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssrHydration.d.ts","sourceRoot":"","sources":["../../src/rts/ssrHydration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,6BAA6B,EACnC,MAAM,iBAAiB,CAAA;AAwCxB,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,aAAa,CAAA;IACtB,gBAAgB,EAAE,MAAM,OAAO,CAAA;IAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,KAAK,OAAO,EACZ,OAAO;IACL,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B,KACA,eA6KF,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,MAAM,6BAA6B,GAAG,IAAI,GAAG,SAAS,KACrD,MAIF,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SsrErrorStatePayload } from '@rpcbase/client';
|
|
2
|
+
import { StaticHandler } from '@rpcbase/router';
|
|
3
|
+
import { createServer } from 'vite';
|
|
4
|
+
import { ComponentType } from 'react';
|
|
5
|
+
import { NextFunction, Request, Response } from 'express';
|
|
6
|
+
import { PostHog } from 'posthog-node';
|
|
7
|
+
type ViteDevServer = Awaited<ReturnType<typeof createServer>>;
|
|
8
|
+
export declare const ssrMiddleware: ({ viteInstance, dataRoutes, errorExtraComponent, renderTemplateStart, posthog, }: {
|
|
9
|
+
viteInstance: ViteDevServer;
|
|
10
|
+
dataRoutes: StaticHandler["dataRoutes"];
|
|
11
|
+
errorExtraComponent?: ComponentType<{
|
|
12
|
+
state?: SsrErrorStatePayload;
|
|
13
|
+
}>;
|
|
14
|
+
renderTemplateStart?: (req: Request, templateStart: string) => Promise<string>;
|
|
15
|
+
posthog?: PostHog | null;
|
|
16
|
+
}) => (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=ssrMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssrMiddleware.d.ts","sourceRoot":"","sources":["../src/ssrMiddleware.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACjI,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAErE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAO3C,KAAK,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC;AAoI9D,eAAO,MAAM,aAAa,GAAI,kFAM3B;IACD,YAAY,EAAE,aAAa,CAAC;IAC5B,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACxC,mBAAmB,CAAC,EAAE,aAAa,CAAC;QAAE,KAAK,CAAC,EAAE,oBAAoB,CAAA;KAAE,CAAC,CAAC;IACtE,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/E,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B,MAAW,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,kBA4K1D,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RequestHandler } from 'express';
|
|
2
|
+
type SessionUserLike = {
|
|
3
|
+
id?: unknown;
|
|
4
|
+
currentTenantId?: unknown;
|
|
5
|
+
signedInTenants?: unknown;
|
|
6
|
+
tenantRoles?: unknown;
|
|
7
|
+
isEntryGateAuthorized?: unknown;
|
|
8
|
+
};
|
|
9
|
+
type RequestLike = {
|
|
10
|
+
headers?: Record<string, string | string[] | undefined>;
|
|
11
|
+
session?: {
|
|
12
|
+
user?: SessionUserLike;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export declare const syncAuthenticatedSessionFromRequest: (req: RequestLike) => Promise<void>;
|
|
16
|
+
export declare const syncAuthenticatedSessionMiddleware: RequestHandler;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=syncAuthenticatedSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncAuthenticatedSession.d.ts","sourceRoot":"","sources":["../src/syncAuthenticatedSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAQ7C,KAAK,eAAe,GAAG;IACrB,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;IACvD,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,eAAe,CAAA;KACvB,CAAA;CACF,CAAA;AAoFD,eAAO,MAAM,mCAAmC,GAAU,KAAK,WAAW,KAAG,OAAO,CAAC,IAAI,CAmCxF,CAAA;AAED,eAAO,MAAM,kCAAkC,EAAE,cAIhD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/uploads/api/file-uploads/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAOlC,OAAO,EAA6E,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;yBAKtG,KAAK,GAAG,CAAC,WAAW,CAAC;AAArC,wBAcC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ApiHandler } from '@rpcbase/api';
|
|
2
|
+
import { SessionUser } from '../shared';
|
|
3
|
+
import * as Uploads from "../index";
|
|
4
|
+
export declare const completeUpload: ApiHandler<Record<string, never>, Uploads.CompleteResponsePayload, SessionUser>;
|
|
5
|
+
//# sourceMappingURL=completeUpload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completeUpload.d.ts","sourceRoot":"","sources":["../../../../../src/uploads/api/file-uploads/handlers/completeUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAKzC,OAAO,KAAK,OAAO,MAAM,UAAU,CAAA;AAGnC,OAAO,EACL,KAAK,WAAW,EASjB,MAAM,WAAW,CAAA;AAiDlB,eAAO,MAAM,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,uBAAuB,EAAE,WAAW,CAwV1G,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ApiHandler } from '@rpcbase/api';
|
|
2
|
+
import { SessionUser } from '../shared';
|
|
3
|
+
import * as Uploads from "../index";
|
|
4
|
+
export declare const getStatus: ApiHandler<Record<string, never>, Uploads.StatusResponsePayload, SessionUser>;
|
|
5
|
+
//# sourceMappingURL=getStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getStatus.d.ts","sourceRoot":"","sources":["../../../../../src/uploads/api/file-uploads/handlers/getStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAIzC,OAAO,KAAK,OAAO,MAAM,UAAU,CAAA;AACnC,OAAO,EACL,KAAK,WAAW,EAOjB,MAAM,WAAW,CAAA;AAGlB,eAAO,MAAM,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,qBAAqB,EAAE,WAAW,CAoDnG,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ApiHandler } from '@rpcbase/api';
|
|
2
|
+
import { SessionUser } from '../shared';
|
|
3
|
+
import * as Uploads from "../index";
|
|
4
|
+
export declare const initUpload: ApiHandler<Uploads.InitRequestPayload, Uploads.InitResponsePayload, SessionUser>;
|
|
5
|
+
//# sourceMappingURL=initUpload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initUpload.d.ts","sourceRoot":"","sources":["../../../../../src/uploads/api/file-uploads/handlers/initUpload.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAKzC,OAAO,KAAK,OAAO,MAAM,UAAU,CAAA;AACnC,OAAO,EACL,KAAK,WAAW,EAWjB,MAAM,WAAW,CAAA;AAGlB,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,mBAAmB,EAAE,WAAW,CA6DvG,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ApiHandler } from '@rpcbase/api';
|
|
2
|
+
import { SessionUser } from '../shared';
|
|
3
|
+
type ChunkResponsePayload = {
|
|
4
|
+
ok: boolean;
|
|
5
|
+
error?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const uploadChunk: ApiHandler<Buffer, ChunkResponsePayload, SessionUser>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=uploadChunk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadChunk.d.ts","sourceRoot":"","sources":["../../../../../src/uploads/api/file-uploads/handlers/uploadChunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAIzC,OAAO,EACL,KAAK,WAAW,EAWjB,MAAM,WAAW,CAAA;AAGlB,KAAK,oBAAoB,GAAG;IAC1B,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,UAAU,CAAC,MAAM,EAAE,oBAAoB,EAAE,WAAW,CAqG7E,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageVariantsPostProcessor.d.ts","sourceRoot":"","sources":["../../../../src/uploads/api/file-uploads/imageVariantsPostProcessor.ts"],"names":[],"mappings":"AAiMA,eAAO,MAAM,kCAAkC,QAAO,IAKrD,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const InitRoute = "/api/rb/file-uploads";
|
|
3
|
+
export declare const ChunkRoute = "/api/rb/file-uploads/:uploadId/chunks/:index";
|
|
4
|
+
export declare const StatusRoute = "/api/rb/file-uploads/:uploadId/status";
|
|
5
|
+
export declare const CompleteRoute = "/api/rb/file-uploads/:uploadId/complete";
|
|
6
|
+
export declare const initRequestSchema: z.ZodObject<{
|
|
7
|
+
filename: z.ZodString;
|
|
8
|
+
mimeType: z.ZodString;
|
|
9
|
+
isPublic: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
+
totalSize: z.ZodNumber;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
export type InitRequestPayload = z.infer<typeof initRequestSchema>;
|
|
13
|
+
export declare const initResponseSchema: z.ZodObject<{
|
|
14
|
+
ok: z.ZodBoolean;
|
|
15
|
+
error: z.ZodOptional<z.ZodString>;
|
|
16
|
+
uploadId: z.ZodOptional<z.ZodString>;
|
|
17
|
+
uploadKey: z.ZodOptional<z.ZodString>;
|
|
18
|
+
chunkSize: z.ZodOptional<z.ZodNumber>;
|
|
19
|
+
chunksTotal: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
}, z.core.$strip>;
|
|
21
|
+
export type InitResponsePayload = z.infer<typeof initResponseSchema>;
|
|
22
|
+
export declare const statusResponseSchema: z.ZodObject<{
|
|
23
|
+
ok: z.ZodBoolean;
|
|
24
|
+
error: z.ZodOptional<z.ZodString>;
|
|
25
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
26
|
+
error: "error";
|
|
27
|
+
done: "done";
|
|
28
|
+
uploading: "uploading";
|
|
29
|
+
assembling: "assembling";
|
|
30
|
+
}>>;
|
|
31
|
+
chunkSize: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
chunksTotal: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
received: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
34
|
+
fileId: z.ZodOptional<z.ZodString>;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
export type StatusResponsePayload = z.infer<typeof statusResponseSchema>;
|
|
37
|
+
export declare const completeResponseSchema: z.ZodObject<{
|
|
38
|
+
ok: z.ZodBoolean;
|
|
39
|
+
error: z.ZodOptional<z.ZodString>;
|
|
40
|
+
fileId: z.ZodOptional<z.ZodString>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
export type CompleteResponsePayload = z.infer<typeof completeResponseSchema>;
|
|
43
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/uploads/api/file-uploads/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,SAAS,yBAAyB,CAAA;AAC/C,eAAO,MAAM,UAAU,iDAAiD,CAAA;AACxE,eAAO,MAAM,WAAW,0CAA0C,CAAA;AAClE,eAAO,MAAM,aAAa,4CAA4C,CAAA;AAEtE,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAElE,eAAO,MAAM,kBAAkB;;;;;;;iBAO7B,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEpE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;iBAQ/B,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAExE,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rawBodyParser.d.ts","sourceRoot":"","sources":["../../../../../src/uploads/api/file-uploads/middleware/rawBodyParser.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,GAAI,0CAG3B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACxC,MACS,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,SA6FtC,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type UploadPostProcessorContext = {
|
|
2
|
+
tenantId: string;
|
|
3
|
+
uploadId: string;
|
|
4
|
+
fileId: string;
|
|
5
|
+
filename: string;
|
|
6
|
+
mimeType: string;
|
|
7
|
+
clientMimeType: string;
|
|
8
|
+
totalSize: number;
|
|
9
|
+
isPublic?: boolean;
|
|
10
|
+
userId?: string;
|
|
11
|
+
ownerKeyHash?: string;
|
|
12
|
+
inlineProcessors: string[];
|
|
13
|
+
metadata: Record<string, unknown>;
|
|
14
|
+
};
|
|
15
|
+
export type UploadPostProcessor = {
|
|
16
|
+
id: string;
|
|
17
|
+
version?: number;
|
|
18
|
+
match?: (ctx: UploadPostProcessorContext) => boolean;
|
|
19
|
+
process: (ctx: UploadPostProcessorContext) => Promise<unknown> | unknown;
|
|
20
|
+
};
|
|
21
|
+
export declare const uploadPostProcessorTaskName = "rb-upload-post-processors";
|
|
22
|
+
export declare const registerUploadPostProcessor: (processor: UploadPostProcessor) => void;
|
|
23
|
+
export declare const registerUploadProcessor: (processor: UploadPostProcessor) => void;
|
|
24
|
+
export declare const unregisterUploadPostProcessor: (id: string) => void;
|
|
25
|
+
export declare const unregisterUploadProcessor: (id: string) => void;
|
|
26
|
+
export declare const clearUploadPostProcessors: () => void;
|
|
27
|
+
export declare const clearUploadProcessors: () => void;
|
|
28
|
+
export declare const getUploadPostProcessors: () => UploadPostProcessor[];
|
|
29
|
+
export declare const getUploadProcessors: () => UploadPostProcessor[];
|
|
30
|
+
export declare const runUploadPostProcessors: (ctx: UploadPostProcessorContext) => Promise<void>;
|
|
31
|
+
export declare const registerUploadPostProcessorTask: () => void;
|
|
32
|
+
export declare const enqueueUploadPostProcessors: (ctx: UploadPostProcessorContext) => Promise<void>;
|
|
33
|
+
//# sourceMappingURL=postProcessors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postProcessors.d.ts","sourceRoot":"","sources":["../../../../src/uploads/api/file-uploads/postProcessors.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,0BAA0B,KAAK,OAAO,CAAA;IACpD,OAAO,EAAE,CAAC,GAAG,EAAE,0BAA0B,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;CACzE,CAAA;AAGD,eAAO,MAAM,2BAA2B,8BAA8B,CAAA;AAUtE,eAAO,MAAM,2BAA2B,GAAI,WAAW,mBAAmB,KAAG,IAa5E,CAAA;AAED,eAAO,MAAM,uBAAuB,cAfmB,mBAAmB,KAAG,IAeX,CAAA;AAElE,eAAO,MAAM,6BAA6B,GAAI,IAAI,MAAM,KAAG,IAI1D,CAAA;AAED,eAAO,MAAM,yBAAyB,OANY,MAAM,KAAG,IAMW,CAAA;AAEtE,eAAO,MAAM,yBAAyB,QAAO,IAI5C,CAAA;AAED,eAAO,MAAM,qBAAqB,QANW,IAMiB,CAAA;AAE9D,eAAO,MAAM,uBAAuB,QAAO,mBAAmB,EAAmC,CAAA;AAEjG,eAAO,MAAM,mBAAmB,QAFW,mBAAmB,EAEJ,CAAA;AAE1D,eAAO,MAAM,uBAAuB,GAAU,KAAK,0BAA0B,KAAG,OAAO,CAAC,IAAI,CAoC3F,CAAA;AAID,eAAO,MAAM,+BAA+B,QAAO,IAOlD,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAU,KAAK,0BAA0B,KAAG,OAAO,CAAC,IAAI,CAO/F,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { UploadFileProcessor, UploadFileProcessorContext } from './index';
|
|
2
|
+
export declare const convertHeifToWebpTaskName = "rb-upload-convert-heif-to-webp";
|
|
3
|
+
export type ConvertHeifToWebpTaskPayload = {
|
|
4
|
+
filename: string;
|
|
5
|
+
mimeType: string;
|
|
6
|
+
inputBase64: string;
|
|
7
|
+
};
|
|
8
|
+
export type ConvertHeifToWebpTaskResult = {
|
|
9
|
+
dataBase64: string;
|
|
10
|
+
filename: string;
|
|
11
|
+
mimeType: "image/webp";
|
|
12
|
+
metadata: {
|
|
13
|
+
width?: number;
|
|
14
|
+
height?: number;
|
|
15
|
+
sourceFilename: string;
|
|
16
|
+
sourceMimeType: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
declare module "@rpcbase/worker" {
|
|
20
|
+
interface WorkerTasksMap {
|
|
21
|
+
"rb-upload-convert-heif-to-webp": ConvertHeifToWebpTaskPayload;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export declare const hasHeifDeclaration: ({ filename, clientMimeType }: Pick<UploadFileProcessorContext, "filename" | "clientMimeType">) => boolean;
|
|
25
|
+
export declare const looksLikeHevcHeif: (sniff: Buffer) => boolean;
|
|
26
|
+
export declare const isHeifUpload: ({ filename, clientMimeType, sniff }: UploadFileProcessorContext) => boolean;
|
|
27
|
+
export declare const toWebpFilename: (filename: string) => string;
|
|
28
|
+
export declare const getSharpHeifSupportDiagnostic: () => string;
|
|
29
|
+
export declare const convertHeifToWebp: (input: Buffer, payload: Pick<ConvertHeifToWebpTaskPayload, "filename" | "mimeType">) => Promise<ConvertHeifToWebpTaskResult>;
|
|
30
|
+
export declare const registerConvertHeifToWebpTask: () => void;
|
|
31
|
+
export declare const convertHeifToWebpProcessor: UploadFileProcessor;
|
|
32
|
+
//# sourceMappingURL=convertHeifToWebp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertHeifToWebp.d.ts","sourceRoot":"","sources":["../../../../../src/uploads/api/file-uploads/processors/convertHeifToWebp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAoB9E,eAAO,MAAM,yBAAyB,mCAAmC,CAAA;AAEzE,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,YAAY,CAAA;IACtB,QAAQ,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,cAAc,EAAE,MAAM,CAAA;QACtB,cAAc,EAAE,MAAM,CAAA;KACvB,CAAA;CACF,CAAA;AAED,OAAO,QAAQ,iBAAiB,CAAC;IAC/B,UAAU,cAAc;QACtB,gCAAgC,EAAE,4BAA4B,CAAA;KAC/D;CACF;AAyBD,eAAO,MAAM,kBAAkB,GAAI,8BAA8B,IAAI,CAAC,0BAA0B,EAAE,UAAU,GAAG,gBAAgB,CAAC,KAAG,OAC5C,CAAA;AAEvF,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,OAAsE,CAAA;AAExH,eAAO,MAAM,YAAY,GAAI,qCAAqC,0BAA0B,KAAG,OACjB,CAAA;AAE9E,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,MAKjD,CAAA;AAcD,eAAO,MAAM,6BAA6B,QAAO,MAQhD,CAAA;AAkBD,eAAO,MAAM,iBAAiB,GAC5B,OAAO,MAAM,EACb,SAAS,IAAI,CAAC,4BAA4B,EAAE,UAAU,GAAG,UAAU,CAAC,KACnE,OAAO,CAAC,2BAA2B,CAqBrC,CAAA;AAUD,eAAO,MAAM,6BAA6B,QAAO,IAKhD,CAAA;AA4CD,eAAO,MAAM,0BAA0B,EAAE,mBAqBxC,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type UploadFileProcessorContext = {
|
|
2
|
+
filename: string;
|
|
3
|
+
clientMimeType: string;
|
|
4
|
+
totalSize: number;
|
|
5
|
+
sniff: Buffer;
|
|
6
|
+
};
|
|
7
|
+
export type UploadFileProcessorResult = {
|
|
8
|
+
data: Buffer;
|
|
9
|
+
filename?: string;
|
|
10
|
+
mimeType?: string;
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
};
|
|
13
|
+
export type UploadFileProcessor = {
|
|
14
|
+
id: string;
|
|
15
|
+
maxBytes: number;
|
|
16
|
+
match: (ctx: UploadFileProcessorContext) => boolean;
|
|
17
|
+
process: (data: Buffer, ctx: UploadFileProcessorContext) => Promise<UploadFileProcessorResult> | UploadFileProcessorResult;
|
|
18
|
+
};
|
|
19
|
+
export declare const uploadProcessors: readonly UploadFileProcessor[];
|
|
20
|
+
export declare const getMaxUploadProcessorBytes: () => number;
|
|
21
|
+
export declare const selectUploadProcessors: (ctx: UploadFileProcessorContext) => UploadFileProcessor[];
|
|
22
|
+
export declare const applyUploadProcessors: (data: Buffer, ctx: Omit<UploadFileProcessorContext, "sniff" | "totalSize">) => Promise<{
|
|
23
|
+
data: Buffer;
|
|
24
|
+
filename: string;
|
|
25
|
+
mimeType: string;
|
|
26
|
+
applied: string[];
|
|
27
|
+
metadata: Record<string, unknown>;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/uploads/api/file-uploads/processors/index.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,CAAC,GAAG,EAAE,0BAA0B,KAAK,OAAO,CAAA;IACnD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,0BAA0B,KAAK,OAAO,CAAC,yBAAyB,CAAC,GAAG,yBAAyB,CAAA;CAC3H,CAAA;AAED,eAAO,MAAM,gBAAgB,gCAAoG,CAAA;AAEjI,eAAO,MAAM,0BAA0B,QAAO,MACqC,CAAA;AAEnF,eAAO,MAAM,sBAAsB,GAAI,KAAK,0BAA0B,KAAG,mBAAmB,EAC9B,CAAA;AAE9D,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,KAAK,IAAI,CAAC,0BAA0B,EAAE,OAAO,GAAG,WAAW,CAAC,KAC3D,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CA0CpH,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { UploadFileProcessor } from './index';
|
|
2
|
+
export declare const looksLikeSvg: (sniff: Buffer) => boolean;
|
|
3
|
+
export declare const sanitizeSvg: (svg: string) => string;
|
|
4
|
+
export declare const sanitizeSvgProcessor: UploadFileProcessor;
|
|
5
|
+
//# sourceMappingURL=sanitizeSvg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitizeSvg.d.ts","sourceRoot":"","sources":["../../../../../src/uploads/api/file-uploads/processors/sanitizeSvg.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAgBlD,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,OAAmD,CAAA;AAEhG,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAGtC,CAAA;AAEJ,eAAO,MAAM,oBAAoB,EAAE,mBA0BlC,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Ctx } from '@rpcbase/api';
|
|
2
|
+
import { IRBUploadChunk, IRBUploadSession, LoadModelCtx } from '@rpcbase/db';
|
|
3
|
+
import { AppAbility } from '@rpcbase/db/acl';
|
|
4
|
+
import { Model } from 'mongoose';
|
|
5
|
+
export type SessionUser = {
|
|
6
|
+
id?: string;
|
|
7
|
+
currentTenantId?: string;
|
|
8
|
+
};
|
|
9
|
+
export type UploadSessionDoc = IRBUploadSession;
|
|
10
|
+
export type UploadChunkDoc = Omit<IRBUploadChunk, "data"> & {
|
|
11
|
+
data: Buffer;
|
|
12
|
+
};
|
|
13
|
+
export declare const getChunkSizeBytes: () => number;
|
|
14
|
+
export declare const getMaxClientUploadBytesPerSecond: () => number | null;
|
|
15
|
+
export declare const getSessionTtlMs: () => number;
|
|
16
|
+
export declare const getRawBodyLimitBytes: (chunkSizeBytes: number) => number;
|
|
17
|
+
export declare const getBucketName: () => string;
|
|
18
|
+
export declare const getUserId: (ctx: Ctx<SessionUser>) => string | null;
|
|
19
|
+
export declare const getTenantId: (ctx: Ctx<SessionUser>) => string | null;
|
|
20
|
+
export declare const computeSha256Hex: (data: Buffer) => string;
|
|
21
|
+
export declare const normalizeSha256Hex: (value: string) => string;
|
|
22
|
+
export declare const getModelCtx: (_ctx: Ctx<SessionUser>, tenantId: string, ability?: AppAbility) => LoadModelCtx;
|
|
23
|
+
export declare const toBufferPayload: (payload: unknown) => Buffer | null;
|
|
24
|
+
export declare const ensureUploadIndexes: (UploadSession: Model<UploadSessionDoc>, UploadChunk: Model<UploadChunkDoc>) => Promise<void>;
|
|
25
|
+
export declare const getUploadKeyHash: (ctx: Ctx<SessionUser>) => string | null;
|
|
26
|
+
export declare const buildUploadsAbility: (ctx: Ctx<SessionUser>, tenantId: string) => AppAbility;
|
|
27
|
+
export declare const getUploadSessionAccessQuery: (ability: AppAbility, action: "read" | "update" | "delete") => Record<string, unknown>;
|
|
28
|
+
export declare const getOwnershipSelector: (ctx: Ctx<SessionUser>, session: Pick<UploadSessionDoc, "userId" | "ownerKeyHash">) => {
|
|
29
|
+
userId?: string;
|
|
30
|
+
ownerKeyHash?: string;
|
|
31
|
+
} | null;
|
|
32
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/uploads/api/file-uploads/shared.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAClC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAiD,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAChG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAGrC,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAA;AAC/C,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAoB5E,eAAO,MAAM,iBAAiB,QAAO,MAIpC,CAAA;AAED,eAAO,MAAM,gCAAgC,QAAO,MAAM,GAAG,IAG5D,CAAA;AAED,eAAO,MAAM,eAAe,QAAO,MAGlC,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,gBAAgB,MAAM,KAAG,MAAsC,CAAA;AAEpG,eAAO,MAAM,aAAa,QAAO,MAAsE,CAAA;AAEvG,eAAO,MAAM,SAAS,GAAI,KAAK,GAAG,CAAC,WAAW,CAAC,KAAG,MAAM,GAAG,IAK1D,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,KAAK,GAAG,CAAC,WAAW,CAAC,KAAG,MAAM,GAAG,IAI5D,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAAyD,CAAA;AAEzG,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,MAAoC,CAAA;AAEvF,eAAO,MAAM,WAAW,GAAI,MAAM,GAAG,CAAC,WAAW,CAAC,EAAE,UAAU,MAAM,EAAE,UAAU,UAAU,KAAG,YAS3F,CAAA;AAEF,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,KAAG,MAAM,GAAG,IAI3D,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC9B,eAAe,KAAK,CAAC,gBAAgB,CAAC,EACtC,aAAa,KAAK,CAAC,cAAc,CAAC,KACjC,OAAO,CAAC,IAAI,CAUd,CAAA;AAQD,eAAO,MAAM,gBAAgB,GAAI,KAAK,GAAG,CAAC,WAAW,CAAC,KAAG,MAAM,GAAG,IAIjE,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,KAAK,GAAG,CAAC,WAAW,CAAC,EAAE,UAAU,MAAM,KAAG,UAI7E,CAAA;AAED,eAAO,MAAM,2BAA2B,GACtC,SAAS,UAAU,EACnB,QAAQ,MAAM,GAAG,QAAQ,GAAG,QAAQ,KACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAA6D,CAAA;AAWtF,eAAO,MAAM,oBAAoB,GAC/B,KAAK,GAAG,CAAC,WAAW,CAAC,EACrB,SAAS,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,cAAc,CAAC,KACzD;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAe/C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/uploads/api/files/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;yBAQlB,KAAK,GAAG;AAAxB,wBAGC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ApiHandler } from '@rpcbase/api';
|
|
2
|
+
import { SessionUser } from '../../file-uploads/shared';
|
|
3
|
+
type DeleteResponsePayload = {
|
|
4
|
+
ok: boolean;
|
|
5
|
+
error?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const deleteFile: ApiHandler<Record<string, never>, DeleteResponsePayload, SessionUser>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=deleteFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteFile.d.ts","sourceRoot":"","sources":["../../../../../src/uploads/api/files/handlers/deleteFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAIzC,OAAO,EAA2D,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAGrH,KAAK,qBAAqB,GAAG;IAC3B,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAqBD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,qBAAqB,EAAE,WAAW,CAsE5F,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFile.d.ts","sourceRoot":"","sources":["../../../../../src/uploads/api/files/handlers/getFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAIzC,OAAO,EAA2D,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAmFrH,eAAO,MAAM,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,CAkHzF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/uploads/api/files/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,0BAA0B,CAAA;AAE5C,eAAO,MAAM,QAAQ,0BAAQ,CAAA;AAC7B,eAAO,MAAM,WAAW,0BAAQ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/uploads/routes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,yBAKb,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/uploads/worker.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB,QAAO,IAI5C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../src/uploads.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,2CAA2C,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rpcbase/server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.568.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -42,6 +42,14 @@
|
|
|
42
42
|
"wireit": {
|
|
43
43
|
"build": {
|
|
44
44
|
"command": "../../node_modules/.bin/vite build",
|
|
45
|
+
"dependencies": [
|
|
46
|
+
"../api:build",
|
|
47
|
+
"../client:build",
|
|
48
|
+
"../db:build",
|
|
49
|
+
"../env:build",
|
|
50
|
+
"../router:build",
|
|
51
|
+
"../worker:build"
|
|
52
|
+
],
|
|
45
53
|
"files": [
|
|
46
54
|
"src/**/*",
|
|
47
55
|
"../../tsconfig.json",
|
|
@@ -92,7 +100,11 @@
|
|
|
92
100
|
}
|
|
93
101
|
},
|
|
94
102
|
"peerDependencies": {
|
|
103
|
+
"@rpcbase/api": "*",
|
|
104
|
+
"@rpcbase/client": "*",
|
|
95
105
|
"@rpcbase/db": "*",
|
|
106
|
+
"@rpcbase/env": "*",
|
|
107
|
+
"@rpcbase/router": "*",
|
|
96
108
|
"@rpcbase/worker": "*"
|
|
97
109
|
},
|
|
98
110
|
"dependencies": {
|