dn-react-router-toolkit 0.2.7 → 0.3.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/dist/api/create_handler.d.mts +13 -0
- package/dist/api/create_handler.d.ts +13 -0
- package/dist/api/create_handler.js +276 -0
- package/dist/api/create_handler.mjs +282 -0
- package/dist/api/index.d.mts +4 -0
- package/dist/api/index.d.ts +4 -0
- package/dist/api/index.js +276 -0
- package/dist/api/index.mjs +282 -0
- package/dist/auth/client/index.d.mts +3 -0
- package/dist/auth/client/index.d.ts +3 -0
- package/dist/{date.js → auth/client/index.js} +25 -32
- package/dist/auth/client/index.mjs +21 -0
- package/dist/auth/client/redirect_page.d.mts +1 -0
- package/dist/auth/client/redirect_page.d.ts +1 -0
- package/dist/auth/index.d.mts +4 -0
- package/dist/auth/index.d.ts +4 -0
- package/dist/auth/index.js +116 -0
- package/dist/auth/index.mjs +89 -0
- package/dist/auth/server/index.d.mts +1 -0
- package/dist/auth/server/index.d.ts +1 -0
- package/dist/{slug.js → auth/server/index.js} +6 -14
- package/dist/auth/server/index.mjs +2 -0
- package/dist/auth/with_auth.d.mts +2 -6
- package/dist/auth/with_auth.d.ts +2 -6
- package/dist/auth/with_auth.js +3 -0
- package/dist/auth/with_auth.mjs +3 -0
- package/dist/{components → client}/client_env.d.mts +1 -1
- package/dist/{components → client}/client_env.d.ts +1 -1
- package/dist/{components → client}/client_env.js +6 -2
- package/dist/{components → client}/client_env.mjs +2 -2
- package/dist/client/index.d.mts +3 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/{auth/client/google_login_button.js → client/index.js} +30 -33
- package/dist/client/index.mjs +31 -0
- package/dist/client/use_user_agent.d.mts +8 -0
- package/dist/client/use_user_agent.d.ts +8 -0
- package/dist/{file/client/format_size.js → client/use_user_agent.js} +14 -14
- package/dist/client/use_user_agent.mjs +13 -0
- package/dist/file/client/index.d.mts +1 -0
- package/dist/file/client/index.d.ts +1 -0
- package/dist/file/{cdn.js → client/index.js} +6 -16
- package/dist/file/client/index.mjs +2 -0
- package/dist/file/index.d.mts +1 -0
- package/dist/file/index.d.ts +1 -0
- package/dist/{cn.js → file/index.js} +6 -14
- package/dist/file/index.mjs +2 -0
- package/dist/file/server/index.d.mts +1 -0
- package/dist/file/server/index.d.ts +1 -0
- package/dist/file/server/index.js +24 -0
- package/dist/file/server/index.mjs +2 -0
- package/dist/http/index.d.mts +1 -1
- package/dist/http/index.d.ts +1 -1
- package/dist/http/index.js +3 -90
- package/dist/http/index.mjs +2 -68
- package/dist/index.d.mts +8 -6
- package/dist/index.d.ts +8 -6
- package/dist/index.js +3 -79
- package/dist/index.mjs +2 -58
- package/dist/modal/index.d.mts +1 -0
- package/dist/modal/index.d.ts +1 -0
- package/dist/{sleep.js → modal/index.js} +6 -14
- package/dist/modal/index.mjs +2 -0
- package/dist/seo/index.d.mts +4 -0
- package/dist/seo/index.d.ts +4 -0
- package/dist/seo/index.js +304 -0
- package/dist/seo/index.mjs +267 -0
- package/dist/text_editor/index.d.mts +1 -0
- package/dist/text_editor/index.d.ts +1 -0
- package/dist/text_editor/index.js +24 -0
- package/dist/text_editor/index.mjs +2 -0
- package/package.json +58 -32
- package/dist/auth/apple_auth.d.mts +0 -38
- package/dist/auth/apple_auth.d.ts +0 -38
- package/dist/auth/apple_auth.js +0 -88
- package/dist/auth/apple_auth.mjs +0 -63
- package/dist/auth/auth_repository.d.mts +0 -41
- package/dist/auth/auth_repository.d.ts +0 -41
- package/dist/auth/auth_repository.js +0 -18
- package/dist/auth/auth_repository.mjs +0 -0
- package/dist/auth/auth_service.d.mts +0 -63
- package/dist/auth/auth_service.d.ts +0 -63
- package/dist/auth/auth_service.js +0 -210
- package/dist/auth/auth_service.mjs +0 -171
- package/dist/auth/client/google_login_button.d.mts +0 -7
- package/dist/auth/client/google_login_button.d.ts +0 -7
- package/dist/auth/client/google_login_button.mjs +0 -37
- package/dist/auth/client/provider.d.mts +0 -24
- package/dist/auth/client/provider.d.ts +0 -24
- package/dist/auth/client/provider.js +0 -154
- package/dist/auth/client/provider.mjs +0 -118
- package/dist/auth/google_auth.d.mts +0 -33
- package/dist/auth/google_auth.d.ts +0 -33
- package/dist/auth/google_auth.js +0 -135
- package/dist/auth/google_auth.mjs +0 -108
- package/dist/auth/handlers/find_auth.d.mts +0 -13
- package/dist/auth/handlers/find_auth.d.ts +0 -13
- package/dist/auth/handlers/find_auth.js +0 -82
- package/dist/auth/handlers/find_auth.mjs +0 -55
- package/dist/auth/handlers/login.d.mts +0 -13
- package/dist/auth/handlers/login.d.ts +0 -13
- package/dist/auth/handlers/login.js +0 -107
- package/dist/auth/handlers/login.mjs +0 -80
- package/dist/auth/handlers/login_with_thirdparty.d.mts +0 -15
- package/dist/auth/handlers/login_with_thirdparty.d.ts +0 -15
- package/dist/auth/handlers/login_with_thirdparty.js +0 -98
- package/dist/auth/handlers/login_with_thirdparty.mjs +0 -71
- package/dist/auth/handlers/logout.d.mts +0 -13
- package/dist/auth/handlers/logout.d.ts +0 -13
- package/dist/auth/handlers/logout.js +0 -102
- package/dist/auth/handlers/logout.mjs +0 -75
- package/dist/auth/handlers/refresh.d.mts +0 -13
- package/dist/auth/handlers/refresh.d.ts +0 -13
- package/dist/auth/handlers/refresh.js +0 -92
- package/dist/auth/handlers/refresh.mjs +0 -65
- package/dist/auth/handlers/request_password_reset.d.mts +0 -10
- package/dist/auth/handlers/request_password_reset.d.ts +0 -10
- package/dist/auth/handlers/request_password_reset.js +0 -87
- package/dist/auth/handlers/request_password_reset.mjs +0 -60
- package/dist/auth/handlers/reset_password.d.mts +0 -10
- package/dist/auth/handlers/reset_password.d.ts +0 -10
- package/dist/auth/handlers/reset_password.js +0 -88
- package/dist/auth/handlers/reset_password.mjs +0 -61
- package/dist/auth/handlers/signup.d.mts +0 -15
- package/dist/auth/handlers/signup.d.ts +0 -15
- package/dist/auth/handlers/signup.js +0 -147
- package/dist/auth/handlers/signup.mjs +0 -112
- package/dist/auth/handlers/signup_with_thirdparty.d.mts +0 -17
- package/dist/auth/handlers/signup_with_thirdparty.d.ts +0 -17
- package/dist/auth/handlers/signup_with_thirdparty.js +0 -123
- package/dist/auth/handlers/signup_with_thirdparty.mjs +0 -98
- package/dist/auth/handlers/thirdparty_auth_callback.d.mts +0 -16
- package/dist/auth/handlers/thirdparty_auth_callback.d.ts +0 -16
- package/dist/auth/handlers/thirdparty_auth_callback.js +0 -129
- package/dist/auth/handlers/thirdparty_auth_callback.mjs +0 -102
- package/dist/auth/jwt_manager.d.mts +0 -38
- package/dist/auth/jwt_manager.d.ts +0 -38
- package/dist/auth/jwt_manager.js +0 -90
- package/dist/auth/jwt_manager.mjs +0 -65
- package/dist/auth/kakao_auth.d.mts +0 -27
- package/dist/auth/kakao_auth.d.ts +0 -27
- package/dist/auth/kakao_auth.js +0 -56
- package/dist/auth/kakao_auth.mjs +0 -31
- package/dist/auth/password_recovery.d.mts +0 -34
- package/dist/auth/password_recovery.d.ts +0 -34
- package/dist/auth/password_recovery.js +0 -169
- package/dist/auth/password_recovery.mjs +0 -134
- package/dist/auth/thirdparty_auth.d.mts +0 -41
- package/dist/auth/thirdparty_auth.d.ts +0 -41
- package/dist/auth/thirdparty_auth.js +0 -113
- package/dist/auth/thirdparty_auth.mjs +0 -86
- package/dist/cn.d.mts +0 -3
- package/dist/cn.d.ts +0 -3
- package/dist/cn.mjs +0 -7
- package/dist/components/index.d.mts +0 -5
- package/dist/components/index.d.ts +0 -5
- package/dist/components/index.js +0 -261
- package/dist/components/index.mjs +0 -219
- package/dist/components/modal/fullscreen_container.d.mts +0 -7
- package/dist/components/modal/fullscreen_container.d.ts +0 -7
- package/dist/components/modal/fullscreen_container.js +0 -102
- package/dist/components/modal/fullscreen_container.mjs +0 -68
- package/dist/components/modal/hooks.d.mts +0 -18
- package/dist/components/modal/hooks.d.ts +0 -18
- package/dist/components/modal/hooks.js +0 -236
- package/dist/components/modal/hooks.mjs +0 -204
- package/dist/components/modal/index.d.mts +0 -4
- package/dist/components/modal/index.d.ts +0 -4
- package/dist/components/modal/index.js +0 -238
- package/dist/components/modal/index.mjs +0 -203
- package/dist/components/modal/modal.d.mts +0 -13
- package/dist/components/modal/modal.d.ts +0 -13
- package/dist/components/modal/modal.js +0 -155
- package/dist/components/modal/modal.mjs +0 -130
- package/dist/components/styles.d.mts +0 -9
- package/dist/components/styles.d.ts +0 -9
- package/dist/components/styles.js +0 -48
- package/dist/components/styles.mjs +0 -17
- package/dist/date.d.mts +0 -5
- package/dist/date.d.ts +0 -5
- package/dist/date.mjs +0 -29
- package/dist/file/cdn.d.mts +0 -6
- package/dist/file/cdn.d.ts +0 -6
- package/dist/file/cdn.mjs +0 -9
- package/dist/file/client/drop_file_input.d.mts +0 -36
- package/dist/file/client/drop_file_input.d.ts +0 -36
- package/dist/file/client/drop_file_input.js +0 -323
- package/dist/file/client/drop_file_input.mjs +0 -294
- package/dist/file/client/file_upload_button.d.mts +0 -10
- package/dist/file/client/file_upload_button.d.ts +0 -10
- package/dist/file/client/file_upload_button.js +0 -89
- package/dist/file/client/file_upload_button.mjs +0 -58
- package/dist/file/client/file_uploader.d.mts +0 -13
- package/dist/file/client/file_uploader.d.ts +0 -13
- package/dist/file/client/file_uploader.js +0 -163
- package/dist/file/client/file_uploader.mjs +0 -136
- package/dist/file/client/format_size.d.mts +0 -3
- package/dist/file/client/format_size.d.ts +0 -3
- package/dist/file/client/format_size.mjs +0 -13
- package/dist/file/client/metadata.d.mts +0 -7
- package/dist/file/client/metadata.d.ts +0 -7
- package/dist/file/client/metadata.js +0 -85
- package/dist/file/client/metadata.mjs +0 -60
- package/dist/file/file_repository.d.mts +0 -16
- package/dist/file/file_repository.d.ts +0 -16
- package/dist/file/file_repository.js +0 -18
- package/dist/file/file_repository.mjs +0 -0
- package/dist/file/file_service.d.mts +0 -32
- package/dist/file/file_service.d.ts +0 -32
- package/dist/file/file_service.js +0 -66
- package/dist/file/file_service.mjs +0 -41
- package/dist/file/handlers/delete_file.d.mts +0 -17
- package/dist/file/handlers/delete_file.d.ts +0 -17
- package/dist/file/handlers/delete_file.js +0 -99
- package/dist/file/handlers/delete_file.mjs +0 -72
- package/dist/file/handlers/upload_file.d.mts +0 -16
- package/dist/file/handlers/upload_file.d.ts +0 -16
- package/dist/file/handlers/upload_file.js +0 -106
- package/dist/file/handlers/upload_file.mjs +0 -79
- package/dist/file/object_storage.d.mts +0 -20
- package/dist/file/object_storage.d.ts +0 -20
- package/dist/file/object_storage.js +0 -90
- package/dist/file/object_storage.mjs +0 -70
- package/dist/file/responsive_image.d.mts +0 -20
- package/dist/file/responsive_image.d.ts +0 -20
- package/dist/file/responsive_image.js +0 -132
- package/dist/file/responsive_image.mjs +0 -96
- package/dist/http/response.d.mts +0 -19
- package/dist/http/response.d.ts +0 -19
- package/dist/http/response.js +0 -109
- package/dist/http/response.mjs +0 -68
- package/dist/route/api.d.mts +0 -21
- package/dist/route/api.d.ts +0 -21
- package/dist/route/api.js +0 -584
- package/dist/route/api.mjs +0 -547
- package/dist/singleton.d.mts +0 -3
- package/dist/singleton.d.ts +0 -3
- package/dist/singleton.js +0 -37
- package/dist/singleton.mjs +0 -12
- package/dist/sleep.d.mts +0 -3
- package/dist/sleep.d.ts +0 -3
- package/dist/sleep.mjs +0 -7
- package/dist/slug.d.mts +0 -3
- package/dist/slug.d.ts +0 -3
- package/dist/slug.mjs +0 -7
- package/dist/text_editor/attach_media.d.mts +0 -16
- package/dist/text_editor/attach_media.d.ts +0 -16
- package/dist/text_editor/attach_media.js +0 -237
- package/dist/text_editor/attach_media.mjs +0 -210
- package/dist/text_editor/plugins/drag_and_drop.d.mts +0 -13
- package/dist/text_editor/plugins/drag_and_drop.d.ts +0 -13
- package/dist/text_editor/plugins/drag_and_drop.js +0 -59
- package/dist/text_editor/plugins/drag_and_drop.mjs +0 -34
- package/dist/text_editor/plugins/keymap.d.mts +0 -5
- package/dist/text_editor/plugins/keymap.d.ts +0 -5
- package/dist/text_editor/plugins/keymap.js +0 -40
- package/dist/text_editor/plugins/keymap.mjs +0 -15
- package/dist/text_editor/plugins/placehoder.d.mts +0 -5
- package/dist/text_editor/plugins/placehoder.d.ts +0 -5
- package/dist/text_editor/plugins/placehoder.js +0 -112
- package/dist/text_editor/plugins/placehoder.mjs +0 -87
- package/dist/text_editor/plugins/trailing_paragraph.d.mts +0 -5
- package/dist/text_editor/plugins/trailing_paragraph.d.ts +0 -5
- package/dist/text_editor/plugins/trailing_paragraph.js +0 -46
- package/dist/text_editor/plugins/trailing_paragraph.mjs +0 -21
- package/dist/text_editor/plugins/upload_placeholder.d.mts +0 -7
- package/dist/text_editor/plugins/upload_placeholder.d.ts +0 -7
- package/dist/text_editor/plugins/upload_placeholder.js +0 -94
- package/dist/text_editor/plugins/upload_placeholder.mjs +0 -68
- package/dist/text_editor/schema.d.mts +0 -9
- package/dist/text_editor/schema.d.ts +0 -9
- package/dist/text_editor/schema.js +0 -354
- package/dist/text_editor/schema.mjs +0 -319
- package/dist/text_editor/text_editor.d.mts +0 -45
- package/dist/text_editor/text_editor.d.ts +0 -45
- package/dist/text_editor/text_editor.js +0 -834
- package/dist/text_editor/text_editor.mjs +0 -806
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
interface FileRepository<TFile = unknown> {
|
|
2
|
-
findFileById(fileId: string): Promise<TFile | undefined>;
|
|
3
|
-
hasPermission(file: TFile, userId?: string): boolean;
|
|
4
|
-
createFile(fileData: {
|
|
5
|
-
id: string;
|
|
6
|
-
userId?: string;
|
|
7
|
-
name: string;
|
|
8
|
-
type?: string;
|
|
9
|
-
size?: number;
|
|
10
|
-
metadata?: Record<string, any>;
|
|
11
|
-
key: string;
|
|
12
|
-
}): Promise<TFile>;
|
|
13
|
-
deleteFile(fileId: string): Promise<void>;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export type { FileRepository };
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
-
for (let key of __getOwnPropNames(from))
|
|
9
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
-
|
|
16
|
-
// src/file/file_repository.ts
|
|
17
|
-
var file_repository_exports = {};
|
|
18
|
-
module.exports = __toCommonJS(file_repository_exports);
|
|
File without changes
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { ObjectStorage } from './object_storage.mjs';
|
|
2
|
-
import { FileRepository } from './file_repository.mjs';
|
|
3
|
-
import '@aws-sdk/client-s3';
|
|
4
|
-
|
|
5
|
-
type UploadFileParams = {
|
|
6
|
-
name: string;
|
|
7
|
-
userId?: string;
|
|
8
|
-
type?: string;
|
|
9
|
-
size?: number;
|
|
10
|
-
metadata?: Record<string, any>;
|
|
11
|
-
};
|
|
12
|
-
declare class FileService<TFile> {
|
|
13
|
-
prefix: string;
|
|
14
|
-
fileRepository: FileRepository<TFile>;
|
|
15
|
-
objectStorage: ObjectStorage;
|
|
16
|
-
constructor({ prefix, fileRepository, objectStorage, }: {
|
|
17
|
-
prefix?: string;
|
|
18
|
-
fileRepository: FileRepository<TFile>;
|
|
19
|
-
objectStorage: ObjectStorage;
|
|
20
|
-
});
|
|
21
|
-
generateSignedUrl(params: UploadFileParams): Promise<{
|
|
22
|
-
file: Awaited<TFile>;
|
|
23
|
-
signedUrl: string;
|
|
24
|
-
}>;
|
|
25
|
-
putFile(buffer: Buffer, params: UploadFileParams): Promise<{
|
|
26
|
-
key: string;
|
|
27
|
-
file: Awaited<TFile>;
|
|
28
|
-
}>;
|
|
29
|
-
private createFileReference;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export { FileService, type UploadFileParams };
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { ObjectStorage } from './object_storage.js';
|
|
2
|
-
import { FileRepository } from './file_repository.js';
|
|
3
|
-
import '@aws-sdk/client-s3';
|
|
4
|
-
|
|
5
|
-
type UploadFileParams = {
|
|
6
|
-
name: string;
|
|
7
|
-
userId?: string;
|
|
8
|
-
type?: string;
|
|
9
|
-
size?: number;
|
|
10
|
-
metadata?: Record<string, any>;
|
|
11
|
-
};
|
|
12
|
-
declare class FileService<TFile> {
|
|
13
|
-
prefix: string;
|
|
14
|
-
fileRepository: FileRepository<TFile>;
|
|
15
|
-
objectStorage: ObjectStorage;
|
|
16
|
-
constructor({ prefix, fileRepository, objectStorage, }: {
|
|
17
|
-
prefix?: string;
|
|
18
|
-
fileRepository: FileRepository<TFile>;
|
|
19
|
-
objectStorage: ObjectStorage;
|
|
20
|
-
});
|
|
21
|
-
generateSignedUrl(params: UploadFileParams): Promise<{
|
|
22
|
-
file: Awaited<TFile>;
|
|
23
|
-
signedUrl: string;
|
|
24
|
-
}>;
|
|
25
|
-
putFile(buffer: Buffer, params: UploadFileParams): Promise<{
|
|
26
|
-
key: string;
|
|
27
|
-
file: Awaited<TFile>;
|
|
28
|
-
}>;
|
|
29
|
-
private createFileReference;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export { FileService, type UploadFileParams };
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/file/file_service.ts
|
|
21
|
-
var file_service_exports = {};
|
|
22
|
-
__export(file_service_exports, {
|
|
23
|
-
FileService: () => FileService
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(file_service_exports);
|
|
26
|
-
var import_uuid = require("uuid");
|
|
27
|
-
var FileService = class {
|
|
28
|
-
prefix;
|
|
29
|
-
fileRepository;
|
|
30
|
-
objectStorage;
|
|
31
|
-
constructor({
|
|
32
|
-
prefix = "user",
|
|
33
|
-
fileRepository,
|
|
34
|
-
objectStorage
|
|
35
|
-
}) {
|
|
36
|
-
this.prefix = prefix;
|
|
37
|
-
this.fileRepository = fileRepository;
|
|
38
|
-
this.objectStorage = objectStorage;
|
|
39
|
-
}
|
|
40
|
-
async generateSignedUrl(params) {
|
|
41
|
-
const { key, file } = await this.createFileReference(params);
|
|
42
|
-
const signedUrl = await this.objectStorage.generateSignedUrl(key, {
|
|
43
|
-
contentType: params.type
|
|
44
|
-
});
|
|
45
|
-
return { file, signedUrl };
|
|
46
|
-
}
|
|
47
|
-
async putFile(buffer, params) {
|
|
48
|
-
const { key, file } = await this.createFileReference(params);
|
|
49
|
-
await this.objectStorage.put(key, buffer);
|
|
50
|
-
return { key, file };
|
|
51
|
-
}
|
|
52
|
-
async createFileReference(params) {
|
|
53
|
-
const id = (0, import_uuid.v4)();
|
|
54
|
-
const key = `${this.prefix}/${id}/${params.name}`;
|
|
55
|
-
const file = await this.fileRepository.createFile({
|
|
56
|
-
id,
|
|
57
|
-
key,
|
|
58
|
-
...params
|
|
59
|
-
});
|
|
60
|
-
return { key, file };
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
64
|
-
0 && (module.exports = {
|
|
65
|
-
FileService
|
|
66
|
-
});
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
// src/file/file_service.ts
|
|
2
|
-
import { v4 } from "uuid";
|
|
3
|
-
var FileService = class {
|
|
4
|
-
prefix;
|
|
5
|
-
fileRepository;
|
|
6
|
-
objectStorage;
|
|
7
|
-
constructor({
|
|
8
|
-
prefix = "user",
|
|
9
|
-
fileRepository,
|
|
10
|
-
objectStorage
|
|
11
|
-
}) {
|
|
12
|
-
this.prefix = prefix;
|
|
13
|
-
this.fileRepository = fileRepository;
|
|
14
|
-
this.objectStorage = objectStorage;
|
|
15
|
-
}
|
|
16
|
-
async generateSignedUrl(params) {
|
|
17
|
-
const { key, file } = await this.createFileReference(params);
|
|
18
|
-
const signedUrl = await this.objectStorage.generateSignedUrl(key, {
|
|
19
|
-
contentType: params.type
|
|
20
|
-
});
|
|
21
|
-
return { file, signedUrl };
|
|
22
|
-
}
|
|
23
|
-
async putFile(buffer, params) {
|
|
24
|
-
const { key, file } = await this.createFileReference(params);
|
|
25
|
-
await this.objectStorage.put(key, buffer);
|
|
26
|
-
return { key, file };
|
|
27
|
-
}
|
|
28
|
-
async createFileReference(params) {
|
|
29
|
-
const id = v4();
|
|
30
|
-
const key = `${this.prefix}/${id}/${params.name}`;
|
|
31
|
-
const file = await this.fileRepository.createFile({
|
|
32
|
-
id,
|
|
33
|
-
key,
|
|
34
|
-
...params
|
|
35
|
-
});
|
|
36
|
-
return { key, file };
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
export {
|
|
40
|
-
FileService
|
|
41
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { AuthService } from '../../auth/auth_service.mjs';
|
|
2
|
-
import { FileRepository } from '../file_repository.mjs';
|
|
3
|
-
import 'jose';
|
|
4
|
-
import '../../auth/jwt_manager.mjs';
|
|
5
|
-
import 'react-router';
|
|
6
|
-
import '../object_storage.mjs';
|
|
7
|
-
import '@aws-sdk/client-s3';
|
|
8
|
-
import '../../auth/auth_repository.mjs';
|
|
9
|
-
|
|
10
|
-
declare const deleteFileHandler: <TFile>(request: Request, { fileId }: {
|
|
11
|
-
fileId: string;
|
|
12
|
-
}, { authService, fileRepository, }: {
|
|
13
|
-
authService: AuthService;
|
|
14
|
-
fileRepository: FileRepository<TFile>;
|
|
15
|
-
}) => Promise<Response>;
|
|
16
|
-
|
|
17
|
-
export { deleteFileHandler };
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { AuthService } from '../../auth/auth_service.js';
|
|
2
|
-
import { FileRepository } from '../file_repository.js';
|
|
3
|
-
import 'jose';
|
|
4
|
-
import '../../auth/jwt_manager.js';
|
|
5
|
-
import 'react-router';
|
|
6
|
-
import '../object_storage.js';
|
|
7
|
-
import '@aws-sdk/client-s3';
|
|
8
|
-
import '../../auth/auth_repository.js';
|
|
9
|
-
|
|
10
|
-
declare const deleteFileHandler: <TFile>(request: Request, { fileId }: {
|
|
11
|
-
fileId: string;
|
|
12
|
-
}, { authService, fileRepository, }: {
|
|
13
|
-
authService: AuthService;
|
|
14
|
-
fileRepository: FileRepository<TFile>;
|
|
15
|
-
}) => Promise<Response>;
|
|
16
|
-
|
|
17
|
-
export { deleteFileHandler };
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/file/handlers/delete_file.ts
|
|
21
|
-
var delete_file_exports = {};
|
|
22
|
-
__export(delete_file_exports, {
|
|
23
|
-
deleteFileHandler: () => deleteFileHandler
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(delete_file_exports);
|
|
26
|
-
|
|
27
|
-
// src/http/response.ts
|
|
28
|
-
var createJsonResponse = (status) => {
|
|
29
|
-
return (data = {}, init) => {
|
|
30
|
-
return Response.json(data, { status, ...init });
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
var OK = createJsonResponse(200);
|
|
34
|
-
var CREATED = createJsonResponse(201);
|
|
35
|
-
var ACCEPTED = createJsonResponse(202);
|
|
36
|
-
var NO_CONTENT = (init) => {
|
|
37
|
-
return new Response(null, {
|
|
38
|
-
...init,
|
|
39
|
-
status: 204
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
var createException = (status, defaultMessage = "\uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.") => {
|
|
43
|
-
return (message = defaultMessage, init) => {
|
|
44
|
-
return createJsonResponse(status)({ message }, init);
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
|
-
var BAD_REQUEST = createException(400, "\uC694\uCCAD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
|
|
48
|
-
var UNAUTHORIZED = createException(401, "\uC778\uC99D\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.");
|
|
49
|
-
var FORBIDDEN = createException(403, "\uAD8C\uD55C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.");
|
|
50
|
-
var NOT_FOUND = createException(
|
|
51
|
-
404,
|
|
52
|
-
"\uC694\uCCAD\uD55C \uB9AC\uC18C\uC2A4\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
53
|
-
);
|
|
54
|
-
var METHOD_NOT_ALLOWED = createException(
|
|
55
|
-
405,
|
|
56
|
-
"\uBA54\uC11C\uB4DC\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
57
|
-
);
|
|
58
|
-
var NOT_ACCEPTABLE = createException(
|
|
59
|
-
406,
|
|
60
|
-
"\uC694\uCCAD\uD55C \uD615\uC2DD\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
61
|
-
);
|
|
62
|
-
var REQUEST_TIMEOUT = createException(
|
|
63
|
-
408,
|
|
64
|
-
"\uC694\uCCAD \uC2DC\uAC04\uC774 \uCD08\uACFC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."
|
|
65
|
-
);
|
|
66
|
-
var CONFLICT = createException(409, "\uC694\uCCAD\uC774 \uCDA9\uB3CC\uD588\uC2B5\uB2C8\uB2E4.");
|
|
67
|
-
var UNPROCESSABLE_ENTITY = createException(
|
|
68
|
-
422,
|
|
69
|
-
"\uCC98\uB9AC\uD560 \uC218 \uC5C6\uB294 \uC5D4\uD2F0\uD2F0\uC785\uB2C8\uB2E4."
|
|
70
|
-
);
|
|
71
|
-
var TOO_MANY_REQUESTS = createException(429, "\uC694\uCCAD\uC774 \uB108\uBB34 \uB9CE\uC2B5\uB2C8\uB2E4.");
|
|
72
|
-
var INTERNAL_SERVER_ERROR = createException(
|
|
73
|
-
500,
|
|
74
|
-
"\uC608\uAE30\uCE58 \uBABB\uD55C \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4."
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
// src/file/handlers/delete_file.ts
|
|
78
|
-
var deleteFileHandler = async (request, { fileId }, {
|
|
79
|
-
authService,
|
|
80
|
-
fileRepository
|
|
81
|
-
}) => {
|
|
82
|
-
const auth = await authService.verifyOrRefresh(request);
|
|
83
|
-
const file = await fileRepository.findFileById(fileId);
|
|
84
|
-
const headers = {
|
|
85
|
-
"Access-Control-Allow-Origin": "*"
|
|
86
|
-
};
|
|
87
|
-
if (!file) {
|
|
88
|
-
return NOT_FOUND("\uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.", { headers });
|
|
89
|
-
}
|
|
90
|
-
if (!fileRepository.hasPermission(file, auth?.userId)) {
|
|
91
|
-
return FORBIDDEN("\uD30C\uC77C\uC744 \uC0AD\uC81C\uD560 \uAD8C\uD55C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.", { headers });
|
|
92
|
-
}
|
|
93
|
-
await fileRepository.deleteFile(fileId);
|
|
94
|
-
return NO_CONTENT({ headers });
|
|
95
|
-
};
|
|
96
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
97
|
-
0 && (module.exports = {
|
|
98
|
-
deleteFileHandler
|
|
99
|
-
});
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
// src/http/response.ts
|
|
2
|
-
var createJsonResponse = (status) => {
|
|
3
|
-
return (data = {}, init) => {
|
|
4
|
-
return Response.json(data, { status, ...init });
|
|
5
|
-
};
|
|
6
|
-
};
|
|
7
|
-
var OK = createJsonResponse(200);
|
|
8
|
-
var CREATED = createJsonResponse(201);
|
|
9
|
-
var ACCEPTED = createJsonResponse(202);
|
|
10
|
-
var NO_CONTENT = (init) => {
|
|
11
|
-
return new Response(null, {
|
|
12
|
-
...init,
|
|
13
|
-
status: 204
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var createException = (status, defaultMessage = "\uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.") => {
|
|
17
|
-
return (message = defaultMessage, init) => {
|
|
18
|
-
return createJsonResponse(status)({ message }, init);
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
var BAD_REQUEST = createException(400, "\uC694\uCCAD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
|
|
22
|
-
var UNAUTHORIZED = createException(401, "\uC778\uC99D\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.");
|
|
23
|
-
var FORBIDDEN = createException(403, "\uAD8C\uD55C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.");
|
|
24
|
-
var NOT_FOUND = createException(
|
|
25
|
-
404,
|
|
26
|
-
"\uC694\uCCAD\uD55C \uB9AC\uC18C\uC2A4\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
27
|
-
);
|
|
28
|
-
var METHOD_NOT_ALLOWED = createException(
|
|
29
|
-
405,
|
|
30
|
-
"\uBA54\uC11C\uB4DC\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
31
|
-
);
|
|
32
|
-
var NOT_ACCEPTABLE = createException(
|
|
33
|
-
406,
|
|
34
|
-
"\uC694\uCCAD\uD55C \uD615\uC2DD\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
35
|
-
);
|
|
36
|
-
var REQUEST_TIMEOUT = createException(
|
|
37
|
-
408,
|
|
38
|
-
"\uC694\uCCAD \uC2DC\uAC04\uC774 \uCD08\uACFC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."
|
|
39
|
-
);
|
|
40
|
-
var CONFLICT = createException(409, "\uC694\uCCAD\uC774 \uCDA9\uB3CC\uD588\uC2B5\uB2C8\uB2E4.");
|
|
41
|
-
var UNPROCESSABLE_ENTITY = createException(
|
|
42
|
-
422,
|
|
43
|
-
"\uCC98\uB9AC\uD560 \uC218 \uC5C6\uB294 \uC5D4\uD2F0\uD2F0\uC785\uB2C8\uB2E4."
|
|
44
|
-
);
|
|
45
|
-
var TOO_MANY_REQUESTS = createException(429, "\uC694\uCCAD\uC774 \uB108\uBB34 \uB9CE\uC2B5\uB2C8\uB2E4.");
|
|
46
|
-
var INTERNAL_SERVER_ERROR = createException(
|
|
47
|
-
500,
|
|
48
|
-
"\uC608\uAE30\uCE58 \uBABB\uD55C \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4."
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
// src/file/handlers/delete_file.ts
|
|
52
|
-
var deleteFileHandler = async (request, { fileId }, {
|
|
53
|
-
authService,
|
|
54
|
-
fileRepository
|
|
55
|
-
}) => {
|
|
56
|
-
const auth = await authService.verifyOrRefresh(request);
|
|
57
|
-
const file = await fileRepository.findFileById(fileId);
|
|
58
|
-
const headers = {
|
|
59
|
-
"Access-Control-Allow-Origin": "*"
|
|
60
|
-
};
|
|
61
|
-
if (!file) {
|
|
62
|
-
return NOT_FOUND("\uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.", { headers });
|
|
63
|
-
}
|
|
64
|
-
if (!fileRepository.hasPermission(file, auth?.userId)) {
|
|
65
|
-
return FORBIDDEN("\uD30C\uC77C\uC744 \uC0AD\uC81C\uD560 \uAD8C\uD55C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.", { headers });
|
|
66
|
-
}
|
|
67
|
-
await fileRepository.deleteFile(fileId);
|
|
68
|
-
return NO_CONTENT({ headers });
|
|
69
|
-
};
|
|
70
|
-
export {
|
|
71
|
-
deleteFileHandler
|
|
72
|
-
};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { AuthService } from '../../auth/auth_service.mjs';
|
|
2
|
-
import { FileService } from '../file_service.mjs';
|
|
3
|
-
import 'jose';
|
|
4
|
-
import '../../auth/jwt_manager.mjs';
|
|
5
|
-
import 'react-router';
|
|
6
|
-
import '../object_storage.mjs';
|
|
7
|
-
import '@aws-sdk/client-s3';
|
|
8
|
-
import '../../auth/auth_repository.mjs';
|
|
9
|
-
import '../file_repository.mjs';
|
|
10
|
-
|
|
11
|
-
declare const uploadFileHandler: <TFile>(request: Request, { authService, fileService, }: {
|
|
12
|
-
authService: AuthService;
|
|
13
|
-
fileService: FileService<TFile>;
|
|
14
|
-
}) => Promise<Response>;
|
|
15
|
-
|
|
16
|
-
export { uploadFileHandler };
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { AuthService } from '../../auth/auth_service.js';
|
|
2
|
-
import { FileService } from '../file_service.js';
|
|
3
|
-
import 'jose';
|
|
4
|
-
import '../../auth/jwt_manager.js';
|
|
5
|
-
import 'react-router';
|
|
6
|
-
import '../object_storage.js';
|
|
7
|
-
import '@aws-sdk/client-s3';
|
|
8
|
-
import '../../auth/auth_repository.js';
|
|
9
|
-
import '../file_repository.js';
|
|
10
|
-
|
|
11
|
-
declare const uploadFileHandler: <TFile>(request: Request, { authService, fileService, }: {
|
|
12
|
-
authService: AuthService;
|
|
13
|
-
fileService: FileService<TFile>;
|
|
14
|
-
}) => Promise<Response>;
|
|
15
|
-
|
|
16
|
-
export { uploadFileHandler };
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/file/handlers/upload_file.ts
|
|
21
|
-
var upload_file_exports = {};
|
|
22
|
-
__export(upload_file_exports, {
|
|
23
|
-
uploadFileHandler: () => uploadFileHandler
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(upload_file_exports);
|
|
26
|
-
|
|
27
|
-
// src/http/response.ts
|
|
28
|
-
var createJsonResponse = (status) => {
|
|
29
|
-
return (data = {}, init) => {
|
|
30
|
-
return Response.json(data, { status, ...init });
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
var OK = createJsonResponse(200);
|
|
34
|
-
var CREATED = createJsonResponse(201);
|
|
35
|
-
var ACCEPTED = createJsonResponse(202);
|
|
36
|
-
var createException = (status, defaultMessage = "\uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.") => {
|
|
37
|
-
return (message = defaultMessage, init) => {
|
|
38
|
-
return createJsonResponse(status)({ message }, init);
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
var BAD_REQUEST = createException(400, "\uC694\uCCAD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
|
|
42
|
-
var UNAUTHORIZED = createException(401, "\uC778\uC99D\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.");
|
|
43
|
-
var FORBIDDEN = createException(403, "\uAD8C\uD55C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.");
|
|
44
|
-
var NOT_FOUND = createException(
|
|
45
|
-
404,
|
|
46
|
-
"\uC694\uCCAD\uD55C \uB9AC\uC18C\uC2A4\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
47
|
-
);
|
|
48
|
-
var METHOD_NOT_ALLOWED = createException(
|
|
49
|
-
405,
|
|
50
|
-
"\uBA54\uC11C\uB4DC\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
51
|
-
);
|
|
52
|
-
var NOT_ACCEPTABLE = createException(
|
|
53
|
-
406,
|
|
54
|
-
"\uC694\uCCAD\uD55C \uD615\uC2DD\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
55
|
-
);
|
|
56
|
-
var REQUEST_TIMEOUT = createException(
|
|
57
|
-
408,
|
|
58
|
-
"\uC694\uCCAD \uC2DC\uAC04\uC774 \uCD08\uACFC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."
|
|
59
|
-
);
|
|
60
|
-
var CONFLICT = createException(409, "\uC694\uCCAD\uC774 \uCDA9\uB3CC\uD588\uC2B5\uB2C8\uB2E4.");
|
|
61
|
-
var UNPROCESSABLE_ENTITY = createException(
|
|
62
|
-
422,
|
|
63
|
-
"\uCC98\uB9AC\uD560 \uC218 \uC5C6\uB294 \uC5D4\uD2F0\uD2F0\uC785\uB2C8\uB2E4."
|
|
64
|
-
);
|
|
65
|
-
var TOO_MANY_REQUESTS = createException(429, "\uC694\uCCAD\uC774 \uB108\uBB34 \uB9CE\uC2B5\uB2C8\uB2E4.");
|
|
66
|
-
var INTERNAL_SERVER_ERROR = createException(
|
|
67
|
-
500,
|
|
68
|
-
"\uC608\uAE30\uCE58 \uBABB\uD55C \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4."
|
|
69
|
-
);
|
|
70
|
-
|
|
71
|
-
// src/file/handlers/upload_file.ts
|
|
72
|
-
var uploadFileHandler = async (request, {
|
|
73
|
-
authService,
|
|
74
|
-
fileService
|
|
75
|
-
}) => {
|
|
76
|
-
const auth = await authService.verifyOrRefresh(request);
|
|
77
|
-
const { name, type, size, metadata } = await request.json();
|
|
78
|
-
const headers = {
|
|
79
|
-
"Access-Control-Allow-Origin": "*"
|
|
80
|
-
};
|
|
81
|
-
if (typeof name !== "string") {
|
|
82
|
-
return BAD_REQUEST("\uD30C\uC77C \uC774\uB984\uC774 \uD544\uC694\uD574\uC694.", { headers });
|
|
83
|
-
}
|
|
84
|
-
if (typeof type !== "string") {
|
|
85
|
-
return BAD_REQUEST("\uD30C\uC77C \uD0C0\uC785\uC774 \uD544\uC694\uD574\uC694.", { headers });
|
|
86
|
-
}
|
|
87
|
-
try {
|
|
88
|
-
const result = await fileService.generateSignedUrl({
|
|
89
|
-
userId: auth?.userId,
|
|
90
|
-
name,
|
|
91
|
-
type,
|
|
92
|
-
size,
|
|
93
|
-
metadata
|
|
94
|
-
});
|
|
95
|
-
return CREATED(result, { headers });
|
|
96
|
-
} catch (e) {
|
|
97
|
-
if (e instanceof Error) {
|
|
98
|
-
return INTERNAL_SERVER_ERROR(e.message, { headers });
|
|
99
|
-
}
|
|
100
|
-
return INTERNAL_SERVER_ERROR(e, { headers });
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
104
|
-
0 && (module.exports = {
|
|
105
|
-
uploadFileHandler
|
|
106
|
-
});
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
// src/http/response.ts
|
|
2
|
-
var createJsonResponse = (status) => {
|
|
3
|
-
return (data = {}, init) => {
|
|
4
|
-
return Response.json(data, { status, ...init });
|
|
5
|
-
};
|
|
6
|
-
};
|
|
7
|
-
var OK = createJsonResponse(200);
|
|
8
|
-
var CREATED = createJsonResponse(201);
|
|
9
|
-
var ACCEPTED = createJsonResponse(202);
|
|
10
|
-
var createException = (status, defaultMessage = "\uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.") => {
|
|
11
|
-
return (message = defaultMessage, init) => {
|
|
12
|
-
return createJsonResponse(status)({ message }, init);
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
var BAD_REQUEST = createException(400, "\uC694\uCCAD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.");
|
|
16
|
-
var UNAUTHORIZED = createException(401, "\uC778\uC99D\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.");
|
|
17
|
-
var FORBIDDEN = createException(403, "\uAD8C\uD55C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.");
|
|
18
|
-
var NOT_FOUND = createException(
|
|
19
|
-
404,
|
|
20
|
-
"\uC694\uCCAD\uD55C \uB9AC\uC18C\uC2A4\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
21
|
-
);
|
|
22
|
-
var METHOD_NOT_ALLOWED = createException(
|
|
23
|
-
405,
|
|
24
|
-
"\uBA54\uC11C\uB4DC\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
25
|
-
);
|
|
26
|
-
var NOT_ACCEPTABLE = createException(
|
|
27
|
-
406,
|
|
28
|
-
"\uC694\uCCAD\uD55C \uD615\uC2DD\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
29
|
-
);
|
|
30
|
-
var REQUEST_TIMEOUT = createException(
|
|
31
|
-
408,
|
|
32
|
-
"\uC694\uCCAD \uC2DC\uAC04\uC774 \uCD08\uACFC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."
|
|
33
|
-
);
|
|
34
|
-
var CONFLICT = createException(409, "\uC694\uCCAD\uC774 \uCDA9\uB3CC\uD588\uC2B5\uB2C8\uB2E4.");
|
|
35
|
-
var UNPROCESSABLE_ENTITY = createException(
|
|
36
|
-
422,
|
|
37
|
-
"\uCC98\uB9AC\uD560 \uC218 \uC5C6\uB294 \uC5D4\uD2F0\uD2F0\uC785\uB2C8\uB2E4."
|
|
38
|
-
);
|
|
39
|
-
var TOO_MANY_REQUESTS = createException(429, "\uC694\uCCAD\uC774 \uB108\uBB34 \uB9CE\uC2B5\uB2C8\uB2E4.");
|
|
40
|
-
var INTERNAL_SERVER_ERROR = createException(
|
|
41
|
-
500,
|
|
42
|
-
"\uC608\uAE30\uCE58 \uBABB\uD55C \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4."
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
// src/file/handlers/upload_file.ts
|
|
46
|
-
var uploadFileHandler = async (request, {
|
|
47
|
-
authService,
|
|
48
|
-
fileService
|
|
49
|
-
}) => {
|
|
50
|
-
const auth = await authService.verifyOrRefresh(request);
|
|
51
|
-
const { name, type, size, metadata } = await request.json();
|
|
52
|
-
const headers = {
|
|
53
|
-
"Access-Control-Allow-Origin": "*"
|
|
54
|
-
};
|
|
55
|
-
if (typeof name !== "string") {
|
|
56
|
-
return BAD_REQUEST("\uD30C\uC77C \uC774\uB984\uC774 \uD544\uC694\uD574\uC694.", { headers });
|
|
57
|
-
}
|
|
58
|
-
if (typeof type !== "string") {
|
|
59
|
-
return BAD_REQUEST("\uD30C\uC77C \uD0C0\uC785\uC774 \uD544\uC694\uD574\uC694.", { headers });
|
|
60
|
-
}
|
|
61
|
-
try {
|
|
62
|
-
const result = await fileService.generateSignedUrl({
|
|
63
|
-
userId: auth?.userId,
|
|
64
|
-
name,
|
|
65
|
-
type,
|
|
66
|
-
size,
|
|
67
|
-
metadata
|
|
68
|
-
});
|
|
69
|
-
return CREATED(result, { headers });
|
|
70
|
-
} catch (e) {
|
|
71
|
-
if (e instanceof Error) {
|
|
72
|
-
return INTERNAL_SERVER_ERROR(e.message, { headers });
|
|
73
|
-
}
|
|
74
|
-
return INTERNAL_SERVER_ERROR(e, { headers });
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
export {
|
|
78
|
-
uploadFileHandler
|
|
79
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as _aws_sdk_client_s3 from '@aws-sdk/client-s3';
|
|
2
|
-
|
|
3
|
-
declare class ObjectStorage {
|
|
4
|
-
private client;
|
|
5
|
-
private bucketName;
|
|
6
|
-
constructor({ bucketName }: {
|
|
7
|
-
bucketName: string;
|
|
8
|
-
});
|
|
9
|
-
generateSignedUrl(key: string, { contentType, expiresIn, }?: {
|
|
10
|
-
contentType?: string;
|
|
11
|
-
expiresIn?: number;
|
|
12
|
-
}): Promise<string>;
|
|
13
|
-
head(key: string): Promise<boolean>;
|
|
14
|
-
find(key: string): Promise<Uint8Array<ArrayBufferLike> | undefined>;
|
|
15
|
-
put(key: string, buffer: Buffer, { contentType }?: {
|
|
16
|
-
contentType?: string;
|
|
17
|
-
}): Promise<_aws_sdk_client_s3.PutObjectCommandOutput>;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export { ObjectStorage };
|