@rpcbase/server 0.489.0 → 0.490.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.
Files changed (107) hide show
  1. package/package.json +1 -1
  2. package/dist/applyRouteLoaders.d.ts +0 -9
  3. package/dist/applyRouteLoaders.d.ts.map +0 -1
  4. package/dist/checkInitReplicaSet.d.ts +0 -6
  5. package/dist/checkInitReplicaSet.d.ts.map +0 -1
  6. package/dist/dev/coverage.d.ts +0 -3
  7. package/dist/dev/coverage.d.ts.map +0 -1
  8. package/dist/email-DEw8keax.js +0 -8042
  9. package/dist/email-DEw8keax.js.map +0 -1
  10. package/dist/email.d.ts +0 -19
  11. package/dist/email.d.ts.map +0 -1
  12. package/dist/getDerivedKey.d.ts +0 -3
  13. package/dist/getDerivedKey.d.ts.map +0 -1
  14. package/dist/handler-BwK8qxLn.js +0 -438
  15. package/dist/handler-BwK8qxLn.js.map +0 -1
  16. package/dist/handler-CedzJJg0.js +0 -114
  17. package/dist/handler-CedzJJg0.js.map +0 -1
  18. package/dist/handler-Cohj3cz3.js +0 -176
  19. package/dist/handler-Cohj3cz3.js.map +0 -1
  20. package/dist/handler-qCAUmVgd.js +0 -684
  21. package/dist/handler-qCAUmVgd.js.map +0 -1
  22. package/dist/hashPassword.d.ts +0 -2
  23. package/dist/hashPassword.d.ts.map +0 -1
  24. package/dist/index.d.ts +0 -7
  25. package/dist/index.d.ts.map +0 -1
  26. package/dist/index.js +0 -4628
  27. package/dist/index.js.map +0 -1
  28. package/dist/initServer.d.ts +0 -9
  29. package/dist/initServer.d.ts.map +0 -1
  30. package/dist/metricsIngestProxyMiddleware.d.ts +0 -3
  31. package/dist/metricsIngestProxyMiddleware.d.ts.map +0 -1
  32. package/dist/notifications/api/notifications/handler.d.ts +0 -4
  33. package/dist/notifications/api/notifications/handler.d.ts.map +0 -1
  34. package/dist/notifications/api/notifications/index.d.ts +0 -168
  35. package/dist/notifications/api/notifications/index.d.ts.map +0 -1
  36. package/dist/notifications/api/notifications/shared.d.ts +0 -6
  37. package/dist/notifications/api/notifications/shared.d.ts.map +0 -1
  38. package/dist/notifications/createNotification.d.ts +0 -13
  39. package/dist/notifications/createNotification.d.ts.map +0 -1
  40. package/dist/notifications/digest.d.ts +0 -13
  41. package/dist/notifications/digest.d.ts.map +0 -1
  42. package/dist/notifications/routes.d.ts +0 -2
  43. package/dist/notifications/routes.d.ts.map +0 -1
  44. package/dist/notifications.d.ts +0 -4
  45. package/dist/notifications.d.ts.map +0 -1
  46. package/dist/notifications.js +0 -127
  47. package/dist/notifications.js.map +0 -1
  48. package/dist/passwordHashStorage.d.ts +0 -11
  49. package/dist/passwordHashStorage.d.ts.map +0 -1
  50. package/dist/posthog.d.ts +0 -9
  51. package/dist/posthog.d.ts.map +0 -1
  52. package/dist/renderSSR.d.ts +0 -12
  53. package/dist/renderSSR.d.ts.map +0 -1
  54. package/dist/render_resend_false-MiC__Smr.js +0 -6
  55. package/dist/render_resend_false-MiC__Smr.js.map +0 -1
  56. package/dist/rts/api/changes/handler.d.ts +0 -9
  57. package/dist/rts/api/changes/handler.d.ts.map +0 -1
  58. package/dist/rts/api/changes/index.d.ts +0 -25
  59. package/dist/rts/api/changes/index.d.ts.map +0 -1
  60. package/dist/rts/index.d.ts +0 -40
  61. package/dist/rts/index.d.ts.map +0 -1
  62. package/dist/rts/index.js +0 -631
  63. package/dist/rts/index.js.map +0 -1
  64. package/dist/rts/routes.d.ts +0 -2
  65. package/dist/rts/routes.d.ts.map +0 -1
  66. package/dist/schemas-7qqi9OQy.js +0 -4225
  67. package/dist/schemas-7qqi9OQy.js.map +0 -1
  68. package/dist/shared-BJomDDWK.js +0 -107
  69. package/dist/shared-BJomDDWK.js.map +0 -1
  70. package/dist/ssrMiddleware.d.ts +0 -18
  71. package/dist/ssrMiddleware.d.ts.map +0 -1
  72. package/dist/types/index.d.ts +0 -6
  73. package/dist/types/index.d.ts.map +0 -1
  74. package/dist/uploads/api/file-uploads/handler.d.ts +0 -5
  75. package/dist/uploads/api/file-uploads/handler.d.ts.map +0 -1
  76. package/dist/uploads/api/file-uploads/handlers/completeUpload.d.ts +0 -5
  77. package/dist/uploads/api/file-uploads/handlers/completeUpload.d.ts.map +0 -1
  78. package/dist/uploads/api/file-uploads/handlers/getStatus.d.ts +0 -5
  79. package/dist/uploads/api/file-uploads/handlers/getStatus.d.ts.map +0 -1
  80. package/dist/uploads/api/file-uploads/handlers/initUpload.d.ts +0 -5
  81. package/dist/uploads/api/file-uploads/handlers/initUpload.d.ts.map +0 -1
  82. package/dist/uploads/api/file-uploads/handlers/uploadChunk.d.ts +0 -9
  83. package/dist/uploads/api/file-uploads/handlers/uploadChunk.d.ts.map +0 -1
  84. package/dist/uploads/api/file-uploads/index.d.ts +0 -43
  85. package/dist/uploads/api/file-uploads/index.d.ts.map +0 -1
  86. package/dist/uploads/api/file-uploads/middleware/rawBodyParser.d.ts +0 -5
  87. package/dist/uploads/api/file-uploads/middleware/rawBodyParser.d.ts.map +0 -1
  88. package/dist/uploads/api/file-uploads/processors/index.d.ts +0 -25
  89. package/dist/uploads/api/file-uploads/processors/index.d.ts.map +0 -1
  90. package/dist/uploads/api/file-uploads/processors/sanitizeSvg.d.ts +0 -5
  91. package/dist/uploads/api/file-uploads/processors/sanitizeSvg.d.ts.map +0 -1
  92. package/dist/uploads/api/file-uploads/shared.d.ts +0 -32
  93. package/dist/uploads/api/file-uploads/shared.d.ts.map +0 -1
  94. package/dist/uploads/api/files/handler.d.ts +0 -4
  95. package/dist/uploads/api/files/handler.d.ts.map +0 -1
  96. package/dist/uploads/api/files/handlers/deleteFile.d.ts +0 -9
  97. package/dist/uploads/api/files/handlers/deleteFile.d.ts.map +0 -1
  98. package/dist/uploads/api/files/handlers/getFile.d.ts +0 -4
  99. package/dist/uploads/api/files/handlers/getFile.d.ts.map +0 -1
  100. package/dist/uploads/api/files/index.d.ts +0 -4
  101. package/dist/uploads/api/files/index.d.ts.map +0 -1
  102. package/dist/uploads/routes.d.ts +0 -2
  103. package/dist/uploads/routes.d.ts.map +0 -1
  104. package/dist/uploads.d.ts +0 -2
  105. package/dist/uploads.d.ts.map +0 -1
  106. package/dist/uploads.js +0 -10
  107. package/dist/uploads.js.map +0 -1
@@ -1,107 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import { getAccessibleByQuery, buildAbilityFromSession } from "@rpcbase/db/acl";
3
- const DEFAULT_CHUNK_SIZE_BYTES = 5 * 1024 * 1024;
4
- const MAX_CHUNK_SIZE_BYTES = 15 * 1024 * 1024;
5
- const DEFAULT_MAX_CLIENT_BYTES_PER_SECOND = 10 * 1024 * 1024;
6
- const DEFAULT_SESSION_TTL_S = 60 * 60 * 24;
7
- const ensuredIndexDbNames = /* @__PURE__ */ new Set();
8
- const parseOptionalPositiveInt = (rawValue) => {
9
- if (typeof rawValue !== "string") return null;
10
- const normalized = rawValue.trim();
11
- if (!normalized) return null;
12
- const parsed = Number(normalized);
13
- if (!Number.isFinite(parsed) || parsed <= 0) return null;
14
- return Math.floor(parsed);
15
- };
16
- const getChunkSizeBytes = () => {
17
- const configured = parseOptionalPositiveInt(process.env.RB_UPLOAD_CHUNK_SIZE_BYTES);
18
- const resolved = configured ?? DEFAULT_CHUNK_SIZE_BYTES;
19
- return Math.min(MAX_CHUNK_SIZE_BYTES, resolved);
20
- };
21
- const getMaxClientUploadBytesPerSecond = () => {
22
- const configured = parseOptionalPositiveInt(process.env.RB_UPLOAD_MAX_CLIENT_BYTES_PER_SECOND);
23
- return configured ?? DEFAULT_MAX_CLIENT_BYTES_PER_SECOND;
24
- };
25
- const getSessionTtlMs = () => {
26
- const ttlSeconds = parseOptionalPositiveInt(process.env.RB_UPLOAD_SESSION_TTL_S) ?? DEFAULT_SESSION_TTL_S;
27
- return ttlSeconds * 1e3;
28
- };
29
- const getRawBodyLimitBytes = (chunkSizeBytes) => chunkSizeBytes + 1024 * 1024;
30
- const getBucketName = () => (process.env.RB_FILESYSTEM_BUCKET_NAME ?? "").trim() || "fs";
31
- const getUserId = (ctx) => {
32
- const raw = ctx.req.session?.user?.id;
33
- if (typeof raw !== "string") return null;
34
- const normalized = raw.trim();
35
- return normalized ? normalized : null;
36
- };
37
- const getTenantId = (ctx) => {
38
- const rawSession = ctx.req.session?.user?.currentTenantId;
39
- const sessionTenantId = typeof rawSession === "string" ? rawSession.trim() : "";
40
- const userId = getUserId(ctx);
41
- const rawQuery = ctx.req.query?.["rb-tenant-id"];
42
- const queryTenantId = Array.isArray(rawQuery) ? rawQuery[0] : rawQuery;
43
- const queryValue = typeof queryTenantId === "string" && queryTenantId.trim() ? queryTenantId.trim() : null;
44
- if (!userId && queryValue) return queryValue;
45
- if (userId) return sessionTenantId || null;
46
- if (sessionTenantId) return sessionTenantId;
47
- return queryValue;
48
- };
49
- const computeSha256Hex = (data) => createHash("sha256").update(data).digest("hex");
50
- const normalizeSha256Hex = (value) => value.trim().toLowerCase();
51
- const getModelCtx = (_ctx, tenantId) => ({
52
- req: {
53
- session: {
54
- user: {
55
- currentTenantId: tenantId
56
- }
57
- }
58
- }
59
- });
60
- const toBufferPayload = (payload) => {
61
- if (Buffer.isBuffer(payload)) return payload;
62
- if (payload instanceof Uint8Array) return Buffer.from(payload);
63
- return null;
64
- };
65
- const ensureUploadIndexes = async (UploadSession, UploadChunk) => {
66
- const dbName = String(UploadSession?.db?.name ?? "");
67
- if (dbName && ensuredIndexDbNames.has(dbName)) return;
68
- await Promise.all([
69
- UploadSession.createIndexes(),
70
- UploadChunk.createIndexes()
71
- ]);
72
- if (dbName) ensuredIndexDbNames.add(dbName);
73
- };
74
- const normalizeUploadKey = (raw) => {
75
- if (typeof raw !== "string") return null;
76
- const normalized = raw.trim();
77
- return normalized ? normalized : null;
78
- };
79
- const getUploadKeyHash = (ctx) => {
80
- const uploadKey = normalizeUploadKey(ctx.req.get("X-Upload-Key"));
81
- if (!uploadKey) return null;
82
- return computeSha256Hex(Buffer.from(uploadKey));
83
- };
84
- const buildUploadsAbility = (ctx, tenantId) => {
85
- const uploadKeyHash = getUploadKeyHash(ctx);
86
- const claims = uploadKeyHash ? { uploadKeyHash } : void 0;
87
- return buildAbilityFromSession({ tenantId, session: ctx.req.session, claims });
88
- };
89
- const getUploadSessionAccessQuery = (ability, action) => getAccessibleByQuery(ability, action, "RBUploadSession");
90
- export {
91
- getModelCtx as a,
92
- buildUploadsAbility as b,
93
- getUploadSessionAccessQuery as c,
94
- getBucketName as d,
95
- ensureUploadIndexes as e,
96
- getUserId as f,
97
- getTenantId as g,
98
- getChunkSizeBytes as h,
99
- getSessionTtlMs as i,
100
- computeSha256Hex as j,
101
- getMaxClientUploadBytesPerSecond as k,
102
- getRawBodyLimitBytes as l,
103
- getUploadKeyHash as m,
104
- normalizeSha256Hex as n,
105
- toBufferPayload as t
106
- };
107
- //# sourceMappingURL=shared-BJomDDWK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared-BJomDDWK.js","sources":["../src/uploads/api/file-uploads/shared.ts"],"sourcesContent":["import { createHash, timingSafeEqual } from \"node:crypto\"\n\nimport { Ctx } from \"@rpcbase/api\"\nimport {\n type IRBUploadChunk,\n type IRBUploadSession,\n type LoadModelCtx,\n} from \"@rpcbase/db\"\nimport { buildAbilityFromSession, getAccessibleByQuery, type AppAbility } from \"@rpcbase/db/acl\"\nimport type { Model } from \"mongoose\"\n\n\nexport type SessionUser = {\n id?: string\n currentTenantId?: string\n}\n\nexport type UploadSessionDoc = IRBUploadSession\nexport type UploadChunkDoc = Omit<IRBUploadChunk, \"data\"> & { data: Buffer }\n\nconst DEFAULT_CHUNK_SIZE_BYTES = 5 * 1024 * 1024\nconst MAX_CHUNK_SIZE_BYTES = 15 * 1024 * 1024\n\nconst DEFAULT_MAX_CLIENT_BYTES_PER_SECOND = 10 * 1024 * 1024\n\nconst DEFAULT_SESSION_TTL_S = 60 * 60 * 24\n\nconst ensuredIndexDbNames = new Set<string>()\n\nconst parseOptionalPositiveInt = (rawValue: unknown): number | null => {\n if (typeof rawValue !== \"string\") return null\n const normalized = rawValue.trim()\n if (!normalized) return null\n const parsed = Number(normalized)\n if (!Number.isFinite(parsed) || parsed <= 0) return null\n return Math.floor(parsed)\n}\n\nexport const getChunkSizeBytes = (): number => {\n const configured = parseOptionalPositiveInt(process.env.RB_UPLOAD_CHUNK_SIZE_BYTES)\n const resolved = configured ?? DEFAULT_CHUNK_SIZE_BYTES\n return Math.min(MAX_CHUNK_SIZE_BYTES, resolved)\n}\n\nexport const getMaxClientUploadBytesPerSecond = (): number | null => {\n const configured = parseOptionalPositiveInt(process.env.RB_UPLOAD_MAX_CLIENT_BYTES_PER_SECOND)\n return configured ?? DEFAULT_MAX_CLIENT_BYTES_PER_SECOND\n}\n\nexport const getSessionTtlMs = (): number => {\n const ttlSeconds = parseOptionalPositiveInt(process.env.RB_UPLOAD_SESSION_TTL_S) ?? DEFAULT_SESSION_TTL_S\n return ttlSeconds * 1000\n}\n\nexport const getRawBodyLimitBytes = (chunkSizeBytes: number): number => chunkSizeBytes + 1024 * 1024\n\nexport const getBucketName = (): string => (process.env.RB_FILESYSTEM_BUCKET_NAME ?? \"\").trim() || \"fs\"\n\nexport const getUserId = (ctx: Ctx<SessionUser>): string | null => {\n const raw = ctx.req.session?.user?.id\n if (typeof raw !== \"string\") return null\n const normalized = raw.trim()\n return normalized ? normalized : null\n}\n\nexport const getTenantId = (ctx: Ctx<SessionUser>): string | null => {\n const rawSession = ctx.req.session?.user?.currentTenantId\n const sessionTenantId = typeof rawSession === \"string\" ? rawSession.trim() : \"\"\n\n const userId = getUserId(ctx)\n const rawQuery = ctx.req.query?.[\"rb-tenant-id\"]\n const queryTenantId = Array.isArray(rawQuery) ? rawQuery[0] : rawQuery\n const queryValue = typeof queryTenantId === \"string\" && queryTenantId.trim() ? queryTenantId.trim() : null\n\n if (!userId && queryValue) return queryValue\n\n if (userId) return sessionTenantId || null\n\n if (sessionTenantId) return sessionTenantId\n\n return queryValue\n}\n\nexport const computeSha256Hex = (data: Buffer): string => createHash(\"sha256\").update(data).digest(\"hex\")\n\nexport const normalizeSha256Hex = (value: string): string => value.trim().toLowerCase()\n\nexport const getModelCtx = (_ctx: Ctx<SessionUser>, tenantId: string): LoadModelCtx => ({\n req: {\n session: {\n user: {\n currentTenantId: tenantId,\n },\n },\n },\n})\n\nexport const toBufferPayload = (payload: unknown): Buffer | null => {\n if (Buffer.isBuffer(payload)) return payload\n if (payload instanceof Uint8Array) return Buffer.from(payload)\n return null\n}\n\nexport const ensureUploadIndexes = async (\n UploadSession: Model<UploadSessionDoc>,\n UploadChunk: Model<UploadChunkDoc>,\n): Promise<void> => {\n const dbName = String((UploadSession as unknown as { db?: { name?: unknown } })?.db?.name ?? \"\")\n if (dbName && ensuredIndexDbNames.has(dbName)) return\n\n await Promise.all([\n UploadSession.createIndexes(),\n UploadChunk.createIndexes(),\n ])\n\n if (dbName) ensuredIndexDbNames.add(dbName)\n}\n\nconst normalizeUploadKey = (raw: unknown): string | null => {\n if (typeof raw !== \"string\") return null\n const normalized = raw.trim()\n return normalized ? normalized : null\n}\n\nexport const getUploadKeyHash = (ctx: Ctx<SessionUser>): string | null => {\n const uploadKey = normalizeUploadKey(ctx.req.get(\"X-Upload-Key\"))\n if (!uploadKey) return null\n return computeSha256Hex(Buffer.from(uploadKey))\n}\n\nexport const buildUploadsAbility = (ctx: Ctx<SessionUser>, tenantId: string): AppAbility => {\n const uploadKeyHash = getUploadKeyHash(ctx)\n const claims = uploadKeyHash ? { uploadKeyHash } : undefined\n return buildAbilityFromSession({ tenantId, session: ctx.req.session, claims })\n}\n\nexport const getUploadSessionAccessQuery = (\n ability: AppAbility,\n action: \"read\" | \"update\" | \"delete\",\n): Record<string, unknown> => getAccessibleByQuery(ability, action, \"RBUploadSession\")\n\nconst timingSafeEqualHex = (left: string, right: string): boolean => {\n if (left.length !== right.length) return false\n try {\n return timingSafeEqual(Buffer.from(left, \"hex\"), Buffer.from(right, \"hex\"))\n } catch {\n return false\n }\n}\n\nexport const getOwnershipSelector = (\n ctx: Ctx<SessionUser>,\n session: Pick<UploadSessionDoc, \"userId\" | \"ownerKeyHash\">,\n): { userId?: string; ownerKeyHash?: string } | null => {\n if (session.userId) {\n const userId = getUserId(ctx)\n if (!userId || userId !== session.userId) return null\n return { userId: session.userId }\n }\n\n if (session.ownerKeyHash) {\n const uploadKeyHash = getUploadKeyHash(ctx)\n if (!uploadKeyHash) return null\n if (!timingSafeEqualHex(session.ownerKeyHash, uploadKeyHash)) return null\n return { ownerKeyHash: session.ownerKeyHash }\n }\n\n return null\n}\n"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
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
@@ -1 +0,0 @@
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;AAM3C,KAAK,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC;AAkI9D,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,kBA0K1D,CAAA"}
@@ -1,6 +0,0 @@
1
- export type SessionUser = {
2
- id: string;
3
- currentTenantId: string;
4
- signedInTenants: string[];
5
- };
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,5 +0,0 @@
1
- import { Api } from '@rpcbase/api';
2
- import { SessionUser } from './shared';
3
- declare const _default: (api: Api<SessionUser>) => void;
4
- export default _default;
5
- //# sourceMappingURL=handler.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,5 +0,0 @@
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
@@ -1 +0,0 @@
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;AAEnC,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,CAqR1G,CAAA"}
@@ -1,5 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,5 +0,0 @@
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
@@ -1 +0,0 @@
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,EAUjB,MAAM,WAAW,CAAA;AAGlB,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,mBAAmB,EAAE,WAAW,CA4DvG,CAAA"}
@@ -1,9 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,43 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,5 +0,0 @@
1
- export declare const rawBodyParser: ({ limitBytes, maxClientBytesPerSecond, }: {
2
- limitBytes: number;
3
- maxClientBytesPerSecond?: number | null;
4
- }) => (req: any, res: any, next: any) => void;
5
- //# sourceMappingURL=rawBodyParser.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,25 +0,0 @@
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
- mimeType?: string;
10
- };
11
- export type UploadFileProcessor = {
12
- id: string;
13
- maxBytes: number;
14
- match: (ctx: UploadFileProcessorContext) => boolean;
15
- process: (data: Buffer, ctx: UploadFileProcessorContext) => Promise<UploadFileProcessorResult> | UploadFileProcessorResult;
16
- };
17
- export declare const uploadProcessors: readonly UploadFileProcessor[];
18
- export declare const getMaxUploadProcessorBytes: () => number;
19
- export declare const selectUploadProcessors: (ctx: UploadFileProcessorContext) => UploadFileProcessor[];
20
- export declare const applyUploadProcessors: (data: Buffer, ctx: Omit<UploadFileProcessorContext, "sniff" | "totalSize">) => Promise<{
21
- data: Buffer;
22
- mimeType: string;
23
- applied: string[];
24
- }>;
25
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/uploads/api/file-uploads/processors/index.ts"],"names":[],"mappings":"AAGA,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;CAClB,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,gCAAwE,CAAA;AAErG,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,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAgC/D,CAAA"}
@@ -1,5 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,32 +0,0 @@
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) => 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
@@ -1 +0,0 @@
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,IAgB5D,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,KAAG,YAQrE,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"}
@@ -1,4 +0,0 @@
1
- import { Api } from '@rpcbase/api';
2
- declare const _default: (api: Api) => void;
3
- export default _default;
4
- //# sourceMappingURL=handler.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,9 +0,0 @@
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
@@ -1 +0,0 @@
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;AAQD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,qBAAqB,EAAE,WAAW,CAiE5F,CAAA"}
@@ -1,4 +0,0 @@
1
- import { ApiHandler } from '@rpcbase/api';
2
- import { SessionUser } from '../../file-uploads/shared';
3
- export declare const getFile: ApiHandler<Record<string, never>, Record<string, never>, SessionUser>;
4
- //# sourceMappingURL=getFile.d.ts.map
@@ -1 +0,0 @@
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;AAqBrH,eAAO,MAAM,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,CA0GzF,CAAA"}
@@ -1,4 +0,0 @@
1
- export declare const Route = "/api/rb/files/:fileId";
2
- export declare const GetRoute = "/api/rb/files/:fileId";
3
- export declare const DeleteRoute = "/api/rb/files/:fileId";
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export declare const routes: Record<string, unknown>;
2
- //# sourceMappingURL=routes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/uploads/routes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,yBAKb,CAAA"}
package/dist/uploads.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './uploads/routes';
2
- //# sourceMappingURL=uploads.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../src/uploads.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
package/dist/uploads.js DELETED
@@ -1,10 +0,0 @@
1
- const routes = Object.entries({
2
- .../* @__PURE__ */ Object.assign({ "./api/file-uploads/handler.ts": () => import("./handler-qCAUmVgd.js"), "./api/files/handler.ts": () => import("./handler-Cohj3cz3.js") })
3
- }).reduce((acc, [path, mod]) => {
4
- acc[path.replace("./api/", "@rpcbase/server/uploads/api/")] = mod;
5
- return acc;
6
- }, {});
7
- export {
8
- routes
9
- };
10
- //# sourceMappingURL=uploads.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uploads.js","sources":["../src/uploads/routes.ts"],"sourcesContent":["export const routes = Object.entries({\n ...import.meta.glob(\"./api/**/handler.ts\"),\n}).reduce<Record<string, unknown>>((acc, [path, mod]) => {\n acc[path.replace(\"./api/\", \"@rpcbase/server/uploads/api/\")] = mod\n return acc\n}, {})\n\n"],"names":[],"mappings":"AAAO,MAAM,SAAS,OAAO,QAAQ;AAAA,EACnC,GAAG,uBAAA,OAAA,EAAA,iCAAA,MAAA,OAAA,uBAAA,GAAA,0BAAA,MAAA,OAAA,uBAAA,EAAA,CAAA;AACL,CAAC,EAAE,OAAgC,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;AACvD,MAAI,KAAK,QAAQ,UAAU,8BAA8B,CAAC,IAAI;AAC9D,SAAO;AACT,GAAG,CAAA,CAAE;"}