dn-react-router-toolkit 0.9.0 → 0.9.2

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 (103) hide show
  1. package/dist/api/default_api_handler.d.mts +13 -0
  2. package/dist/api/default_api_handler.d.ts +13 -0
  3. package/dist/api/{create_handler.js → default_api_handler.js} +49 -52
  4. package/dist/api/{create_handler.mjs → default_api_handler.mjs} +45 -48
  5. package/dist/api/index.d.mts +8 -7
  6. package/dist/api/index.d.ts +8 -7
  7. package/dist/api/index.js +233 -147
  8. package/dist/api/index.mjs +238 -151
  9. package/dist/api/put_resource_handler.d.mts +25 -0
  10. package/dist/api/put_resource_handler.d.ts +25 -0
  11. package/dist/api/put_resource_handler.js +214 -0
  12. package/dist/api/put_resource_handler.mjs +194 -0
  13. package/dist/api/resource_handler.d.mts +26 -0
  14. package/dist/api/resource_handler.d.ts +26 -0
  15. package/dist/api/resource_handler.js +280 -0
  16. package/dist/api/resource_handler.mjs +265 -0
  17. package/dist/auth/cookie_manager.d.mts +1 -1
  18. package/dist/auth/cookie_manager.d.ts +1 -1
  19. package/dist/auth/index.d.mts +2 -2
  20. package/dist/auth/index.d.ts +2 -2
  21. package/dist/auth/index.js +18 -18
  22. package/dist/auth/index.mjs +18 -18
  23. package/dist/auth/with_auth.d.mts +2 -2
  24. package/dist/auth/with_auth.d.ts +2 -2
  25. package/dist/auth/with_auth.js +18 -18
  26. package/dist/auth/with_auth.mjs +18 -18
  27. package/dist/client/editor.d.mts +2 -2
  28. package/dist/client/editor.d.ts +2 -2
  29. package/dist/client/editor.js +9 -3
  30. package/dist/client/editor.mjs +9 -3
  31. package/dist/client/index.d.mts +2 -2
  32. package/dist/client/index.d.ts +2 -2
  33. package/dist/client/index.js +9 -3
  34. package/dist/client/index.mjs +9 -3
  35. package/dist/crud/crud_form.js +22 -4
  36. package/dist/crud/crud_form.mjs +11 -3
  37. package/dist/crud/crud_form_provider.js +16 -3
  38. package/dist/crud/crud_form_provider.mjs +14 -1
  39. package/dist/crud/index.js +22 -4
  40. package/dist/crud/index.mjs +11 -3
  41. package/dist/db/backup/index.d.mts +1 -1
  42. package/dist/db/backup/index.d.ts +1 -1
  43. package/dist/form/create_form_component.js +21 -2
  44. package/dist/form/create_form_component.mjs +10 -1
  45. package/dist/form/form_components.js +21 -2
  46. package/dist/form/form_components.mjs +10 -1
  47. package/dist/form/index.js +21 -2
  48. package/dist/form/index.mjs +10 -1
  49. package/dist/post/editor_toolbar.js +20 -3
  50. package/dist/post/editor_toolbar.mjs +9 -2
  51. package/dist/post/index.js +31 -11
  52. package/dist/post/index.mjs +19 -9
  53. package/dist/post/post_form_page.js +29 -11
  54. package/dist/post/post_form_page.mjs +17 -9
  55. package/dist/post/thumbnail_picker.js +21 -2
  56. package/dist/post/thumbnail_picker.mjs +10 -1
  57. package/dist/table/buttons.js +11 -14
  58. package/dist/table/buttons.mjs +10 -13
  59. package/dist/table/index.js +14 -18
  60. package/dist/table/index.mjs +13 -17
  61. package/dist/table/table.js +10 -4
  62. package/dist/table/table.mjs +5 -1
  63. package/dist/table/table_form.js +12 -18
  64. package/dist/table/table_form.mjs +9 -15
  65. package/dist/utils/cn.d.mts +3 -0
  66. package/dist/utils/cn.d.ts +3 -0
  67. package/dist/utils/cn.js +32 -0
  68. package/dist/utils/cn.mjs +7 -0
  69. package/dist/utils/date.d.mts +5 -0
  70. package/dist/utils/date.d.ts +5 -0
  71. package/dist/utils/date.js +65 -0
  72. package/dist/utils/date.mjs +29 -0
  73. package/dist/utils/index.d.mts +7 -0
  74. package/dist/utils/index.d.ts +7 -0
  75. package/dist/utils/index.js +116 -0
  76. package/dist/utils/index.mjs +73 -0
  77. package/dist/utils/korean.d.mts +6 -0
  78. package/dist/utils/korean.d.ts +6 -0
  79. package/dist/utils/korean.js +41 -0
  80. package/dist/utils/korean.mjs +16 -0
  81. package/dist/utils/singleton.d.mts +3 -0
  82. package/dist/utils/singleton.d.ts +3 -0
  83. package/dist/utils/singleton.js +37 -0
  84. package/dist/utils/singleton.mjs +12 -0
  85. package/dist/utils/sleep.d.mts +3 -0
  86. package/dist/utils/sleep.d.ts +3 -0
  87. package/dist/utils/sleep.js +32 -0
  88. package/dist/utils/sleep.mjs +7 -0
  89. package/dist/utils/slug.d.mts +3 -0
  90. package/dist/utils/slug.d.ts +3 -0
  91. package/dist/utils/slug.js +32 -0
  92. package/dist/utils/slug.mjs +7 -0
  93. package/package.json +8 -4
  94. package/dist/api/create_api_handler.d.mts +0 -30
  95. package/dist/api/create_api_handler.d.ts +0 -30
  96. package/dist/api/create_api_handler.js +0 -155
  97. package/dist/api/create_api_handler.mjs +0 -139
  98. package/dist/api/create_handler.d.mts +0 -13
  99. package/dist/api/create_handler.d.ts +0 -13
  100. package/dist/api/item_api_handler.d.mts +0 -21
  101. package/dist/api/item_api_handler.d.ts +0 -21
  102. package/dist/api/item_api_handler.js +0 -63
  103. package/dist/api/item_api_handler.mjs +0 -38
@@ -0,0 +1,13 @@
1
+ import { LoaderFunctionArgs, ActionFunctionArgs } from 'react-router';
2
+ import { AuthService, PasswordRecoveryService, AuthProvider, JWTManager, ThirdpartyAuthPayload } from 'gw-auth/server';
3
+ import { FileService } from 'gw-file/server';
4
+
5
+ declare const defaultAPIHandler: <TFile>({ authService, fileService, passwordRecoveryService, authProviders, signupTokenManager, }: {
6
+ authService: AuthService<TFile>;
7
+ fileService: FileService<TFile>;
8
+ passwordRecoveryService: PasswordRecoveryService;
9
+ authProviders: AuthProvider[];
10
+ signupTokenManager: JWTManager<ThirdpartyAuthPayload>;
11
+ }) => (args: LoaderFunctionArgs | ActionFunctionArgs) => Promise<(({ request }: LoaderFunctionArgs<any> | ActionFunctionArgs<any>) => Promise<Response>) | Response>;
12
+
13
+ export { defaultAPIHandler };
@@ -0,0 +1,13 @@
1
+ import { LoaderFunctionArgs, ActionFunctionArgs } from 'react-router';
2
+ import { AuthService, PasswordRecoveryService, AuthProvider, JWTManager, ThirdpartyAuthPayload } from 'gw-auth/server';
3
+ import { FileService } from 'gw-file/server';
4
+
5
+ declare const defaultAPIHandler: <TFile>({ authService, fileService, passwordRecoveryService, authProviders, signupTokenManager, }: {
6
+ authService: AuthService<TFile>;
7
+ fileService: FileService<TFile>;
8
+ passwordRecoveryService: PasswordRecoveryService;
9
+ authProviders: AuthProvider[];
10
+ signupTokenManager: JWTManager<ThirdpartyAuthPayload>;
11
+ }) => (args: LoaderFunctionArgs | ActionFunctionArgs) => Promise<(({ request }: LoaderFunctionArgs<any> | ActionFunctionArgs<any>) => Promise<Response>) | Response>;
12
+
13
+ export { defaultAPIHandler };
@@ -17,14 +17,13 @@ var __copyProps = (to, from, except, desc) => {
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
- // src/api/create_handler.ts
21
- var create_handler_exports = {};
22
- __export(create_handler_exports, {
23
- createAPIHandler: () => createAPIHandler
20
+ // src/api/default_api_handler.ts
21
+ var default_api_handler_exports = {};
22
+ __export(default_api_handler_exports, {
23
+ defaultAPIHandler: () => defaultAPIHandler
24
24
  });
25
- module.exports = __toCommonJS(create_handler_exports);
26
- var import_http = require("dn-react-toolkit/http");
27
- var import_server = require("dn-react-toolkit/auth/server");
25
+ module.exports = __toCommonJS(default_api_handler_exports);
26
+ var import_server = require("gw-auth/server");
28
27
 
29
28
  // src/auth/with_auth.ts
30
29
  var toResponse = (result) => {
@@ -50,31 +49,31 @@ function createWithStrictAuthHandler({ authService }) {
50
49
  arg.request
51
50
  );
52
51
  if (accessToken) {
53
- const payload = await authService.accessTokenManager.verify(accessToken);
54
- if (payload) {
55
- return respond(payload);
52
+ const verifyResult = await authService.accessTokenManager.verify(accessToken);
53
+ if (verifyResult.isOk) {
54
+ const payload = verifyResult.value;
55
+ if (payload) {
56
+ return respond(payload);
57
+ }
56
58
  }
57
59
  }
58
60
  const refreshToken = await authService.getRefreshTokenFromCookies(
59
61
  arg.request
60
62
  );
61
63
  if (refreshToken) {
62
- try {
63
- const newAccessToken = await authService.refreshAccessToken(refreshToken);
64
- const setCookieHeader = await authService.getAccessTokenSetCookie(
65
- newAccessToken
66
- );
67
- const headers = new Headers();
68
- headers.append("Set-Cookie", setCookieHeader);
69
- const payload = authService.accessTokenManager.decode(newAccessToken);
70
- return respond(payload, headers);
71
- } catch (e) {
72
- console.log(e);
73
- const setCookieHeader = await authService.getRefreshTokenSetCookie(void 0);
74
- const headers = new Headers();
75
- headers.append("Set-Cookie", setCookieHeader);
76
- return respond(void 0, headers);
64
+ const refreshResult = await authService.refreshAccessToken(refreshToken);
65
+ if (refreshResult.isErr) {
66
+ const setCookieHeader2 = await authService.getRefreshTokenSetCookie(void 0);
67
+ const headers2 = new Headers();
68
+ headers2.append("Set-Cookie", setCookieHeader2);
69
+ return respond(void 0, headers2);
77
70
  }
71
+ const newAccessToken = refreshResult.value;
72
+ const setCookieHeader = await authService.getAccessTokenSetCookie(newAccessToken);
73
+ const headers = new Headers();
74
+ headers.append("Set-Cookie", setCookieHeader);
75
+ const payload = authService.accessTokenManager.decode(newAccessToken);
76
+ return respond(payload, headers);
78
77
  }
79
78
  return respond(void 0);
80
79
  };
@@ -85,13 +84,14 @@ function createWithStrictAuthHandler({ authService }) {
85
84
  // src/auth/cookie_manager.ts
86
85
  var import_react_router = require("react-router");
87
86
 
88
- // src/api/create_handler.ts
89
- var import_server2 = require("dn-react-toolkit/file/server");
90
- var createAPIHandler = ({
87
+ // src/api/default_api_handler.ts
88
+ var import_server2 = require("gw-file/server");
89
+ var import_gw_response = require("gw-response");
90
+ var defaultAPIHandler = ({
91
91
  authService,
92
92
  fileService,
93
93
  passwordRecoveryService,
94
- getThirdPartyAuth,
94
+ authProviders,
95
95
  signupTokenManager
96
96
  }) => {
97
97
  const handler = async (args) => {
@@ -106,7 +106,7 @@ var createAPIHandler = ({
106
106
  switch (method) {
107
107
  case "GET": {
108
108
  return withAuth(
109
- (auth) => ({ request: request2 }) => (0, import_server.findAuthHandler)(auth)(request2)
109
+ (auth) => ({ request: request2 }) => (0, import_server.findAuthHandler)(auth)()
110
110
  );
111
111
  }
112
112
  }
@@ -126,13 +126,10 @@ var createAPIHandler = ({
126
126
  const provider = slug[2];
127
127
  switch (method) {
128
128
  case "POST": {
129
- return (0, import_server.loginWithThirdPartyHandler)(
130
- request,
131
- {
132
- provider,
133
- getThirdPartyAuth
134
- }
135
- );
129
+ return (0, import_server.loginWithThirdPartyHandler)(request, {
130
+ provider,
131
+ authProviders
132
+ });
136
133
  }
137
134
  }
138
135
  }
@@ -171,14 +168,11 @@ var createAPIHandler = ({
171
168
  default: {
172
169
  switch (method) {
173
170
  case "POST": {
174
- return (0, import_server.signUpWithThirdpartyHandler)(
175
- request,
176
- {
177
- authService,
178
- fileService,
179
- signupTokenManager
180
- }
181
- );
171
+ return (0, import_server.signUpWithThirdpartyHandler)(request, {
172
+ authService,
173
+ fileService,
174
+ signupTokenManager
175
+ });
182
176
  }
183
177
  }
184
178
  }
@@ -191,7 +185,7 @@ var createAPIHandler = ({
191
185
  return (0, import_server.thirdpartyAuthCallbackHandler)(request, {
192
186
  provider,
193
187
  authService,
194
- getThirdPartyAuth
188
+ authProviders
195
189
  });
196
190
  }
197
191
  }
@@ -214,9 +208,9 @@ var createAPIHandler = ({
214
208
  switch (method) {
215
209
  case "POST": {
216
210
  return withAuth(
217
- (auth) => ({ request: request2 }) => (0, import_server2.uploadFileHandler)({ fileService })(
218
- auth
219
- )(request2)
211
+ (auth) => ({ request: request2 }) => (0, import_server2.uploadFileHandler)({ fileService })(request2, {
212
+ userId: auth?.userId
213
+ })
220
214
  )(args);
221
215
  }
222
216
  }
@@ -228,7 +222,7 @@ var createAPIHandler = ({
228
222
  return withAuth(
229
223
  (auth) => () => (0, import_server2.deleteFileHandler)({
230
224
  fileRepository: fileService.fileRepository
231
- })({ fileId })(auth)()
225
+ })({ fileId, userId: auth?.userId })()
232
226
  );
233
227
  }
234
228
  }
@@ -236,7 +230,10 @@ var createAPIHandler = ({
236
230
  }
237
231
  }
238
232
  default: {
239
- return (0, import_http.NOT_FOUND)();
233
+ return (0, import_gw_response.httpNotFound)({
234
+ code: "RESOURCE_NOT_FOUND",
235
+ message: "\uB9AC\uC18C\uC2A4\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
236
+ });
240
237
  }
241
238
  }
242
239
  };
@@ -244,5 +241,5 @@ var createAPIHandler = ({
244
241
  };
245
242
  // Annotate the CommonJS export names for ESM import in node:
246
243
  0 && (module.exports = {
247
- createAPIHandler
244
+ defaultAPIHandler
248
245
  });
@@ -1,5 +1,4 @@
1
- // src/api/create_handler.ts
2
- import { NOT_FOUND } from "dn-react-toolkit/http";
1
+ // src/api/default_api_handler.ts
3
2
  import {
4
3
  findAuthHandler,
5
4
  loginHandler,
@@ -11,7 +10,7 @@ import {
11
10
  signupHandler,
12
11
  signUpWithThirdpartyHandler,
13
12
  thirdpartyAuthCallbackHandler
14
- } from "dn-react-toolkit/auth/server";
13
+ } from "gw-auth/server";
15
14
 
16
15
  // src/auth/with_auth.ts
17
16
  var toResponse = (result) => {
@@ -37,31 +36,31 @@ function createWithStrictAuthHandler({ authService }) {
37
36
  arg.request
38
37
  );
39
38
  if (accessToken) {
40
- const payload = await authService.accessTokenManager.verify(accessToken);
41
- if (payload) {
42
- return respond(payload);
39
+ const verifyResult = await authService.accessTokenManager.verify(accessToken);
40
+ if (verifyResult.isOk) {
41
+ const payload = verifyResult.value;
42
+ if (payload) {
43
+ return respond(payload);
44
+ }
43
45
  }
44
46
  }
45
47
  const refreshToken = await authService.getRefreshTokenFromCookies(
46
48
  arg.request
47
49
  );
48
50
  if (refreshToken) {
49
- try {
50
- const newAccessToken = await authService.refreshAccessToken(refreshToken);
51
- const setCookieHeader = await authService.getAccessTokenSetCookie(
52
- newAccessToken
53
- );
54
- const headers = new Headers();
55
- headers.append("Set-Cookie", setCookieHeader);
56
- const payload = authService.accessTokenManager.decode(newAccessToken);
57
- return respond(payload, headers);
58
- } catch (e) {
59
- console.log(e);
60
- const setCookieHeader = await authService.getRefreshTokenSetCookie(void 0);
61
- const headers = new Headers();
62
- headers.append("Set-Cookie", setCookieHeader);
63
- return respond(void 0, headers);
51
+ const refreshResult = await authService.refreshAccessToken(refreshToken);
52
+ if (refreshResult.isErr) {
53
+ const setCookieHeader2 = await authService.getRefreshTokenSetCookie(void 0);
54
+ const headers2 = new Headers();
55
+ headers2.append("Set-Cookie", setCookieHeader2);
56
+ return respond(void 0, headers2);
64
57
  }
58
+ const newAccessToken = refreshResult.value;
59
+ const setCookieHeader = await authService.getAccessTokenSetCookie(newAccessToken);
60
+ const headers = new Headers();
61
+ headers.append("Set-Cookie", setCookieHeader);
62
+ const payload = authService.accessTokenManager.decode(newAccessToken);
63
+ return respond(payload, headers);
65
64
  }
66
65
  return respond(void 0);
67
66
  };
@@ -72,16 +71,17 @@ function createWithStrictAuthHandler({ authService }) {
72
71
  // src/auth/cookie_manager.ts
73
72
  import { createCookie } from "react-router";
74
73
 
75
- // src/api/create_handler.ts
74
+ // src/api/default_api_handler.ts
76
75
  import {
77
76
  deleteFileHandler,
78
77
  uploadFileHandler
79
- } from "dn-react-toolkit/file/server";
80
- var createAPIHandler = ({
78
+ } from "gw-file/server";
79
+ import { httpNotFound } from "gw-response";
80
+ var defaultAPIHandler = ({
81
81
  authService,
82
82
  fileService,
83
83
  passwordRecoveryService,
84
- getThirdPartyAuth,
84
+ authProviders,
85
85
  signupTokenManager
86
86
  }) => {
87
87
  const handler = async (args) => {
@@ -96,7 +96,7 @@ var createAPIHandler = ({
96
96
  switch (method) {
97
97
  case "GET": {
98
98
  return withAuth(
99
- (auth) => ({ request: request2 }) => findAuthHandler(auth)(request2)
99
+ (auth) => ({ request: request2 }) => findAuthHandler(auth)()
100
100
  );
101
101
  }
102
102
  }
@@ -116,13 +116,10 @@ var createAPIHandler = ({
116
116
  const provider = slug[2];
117
117
  switch (method) {
118
118
  case "POST": {
119
- return loginWithThirdPartyHandler(
120
- request,
121
- {
122
- provider,
123
- getThirdPartyAuth
124
- }
125
- );
119
+ return loginWithThirdPartyHandler(request, {
120
+ provider,
121
+ authProviders
122
+ });
126
123
  }
127
124
  }
128
125
  }
@@ -161,14 +158,11 @@ var createAPIHandler = ({
161
158
  default: {
162
159
  switch (method) {
163
160
  case "POST": {
164
- return signUpWithThirdpartyHandler(
165
- request,
166
- {
167
- authService,
168
- fileService,
169
- signupTokenManager
170
- }
171
- );
161
+ return signUpWithThirdpartyHandler(request, {
162
+ authService,
163
+ fileService,
164
+ signupTokenManager
165
+ });
172
166
  }
173
167
  }
174
168
  }
@@ -181,7 +175,7 @@ var createAPIHandler = ({
181
175
  return thirdpartyAuthCallbackHandler(request, {
182
176
  provider,
183
177
  authService,
184
- getThirdPartyAuth
178
+ authProviders
185
179
  });
186
180
  }
187
181
  }
@@ -204,9 +198,9 @@ var createAPIHandler = ({
204
198
  switch (method) {
205
199
  case "POST": {
206
200
  return withAuth(
207
- (auth) => ({ request: request2 }) => uploadFileHandler({ fileService })(
208
- auth
209
- )(request2)
201
+ (auth) => ({ request: request2 }) => uploadFileHandler({ fileService })(request2, {
202
+ userId: auth?.userId
203
+ })
210
204
  )(args);
211
205
  }
212
206
  }
@@ -218,7 +212,7 @@ var createAPIHandler = ({
218
212
  return withAuth(
219
213
  (auth) => () => deleteFileHandler({
220
214
  fileRepository: fileService.fileRepository
221
- })({ fileId })(auth)()
215
+ })({ fileId, userId: auth?.userId })()
222
216
  );
223
217
  }
224
218
  }
@@ -226,12 +220,15 @@ var createAPIHandler = ({
226
220
  }
227
221
  }
228
222
  default: {
229
- return NOT_FOUND();
223
+ return httpNotFound({
224
+ code: "RESOURCE_NOT_FOUND",
225
+ message: "\uB9AC\uC18C\uC2A4\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
226
+ });
230
227
  }
231
228
  }
232
229
  };
233
230
  return handler;
234
231
  };
235
232
  export {
236
- createAPIHandler
233
+ defaultAPIHandler
237
234
  };
@@ -1,12 +1,13 @@
1
- export { createAPIHandler } from './create_handler.mjs';
2
- export { APIHandlerOptions, apiHandler } from './create_api_handler.mjs';
3
- export { ItemAPIHandlerOptions, itemApiHandler } from './item_api_handler.mjs';
1
+ export { defaultAPIHandler } from './default_api_handler.mjs';
2
+ export { APIHandlerOptions, resourceHandler } from './resource_handler.mjs';
3
+ export { PutResourceExistingConditions, PutResourceHandlerOptions, PutResourceValidators, putResourceHandler } from './put_resource_handler.mjs';
4
4
  import 'react-router';
5
- import 'dn-react-toolkit/auth/server';
6
- import 'dn-react-toolkit/file/server';
7
- import 'drizzle-orm';
5
+ import 'gw-auth/server';
6
+ import 'gw-file/server';
7
+ import 'gw-result';
8
8
  import '../table/repository.mjs';
9
+ import 'drizzle-orm';
9
10
  import 'drizzle-orm/node-postgres';
10
11
  import 'drizzle-orm/pg-core';
11
12
  import '../auth/with_auth.mjs';
12
- import 'dn-react-toolkit/auth';
13
+ import 'gw-auth';
@@ -1,12 +1,13 @@
1
- export { createAPIHandler } from './create_handler.js';
2
- export { APIHandlerOptions, apiHandler } from './create_api_handler.js';
3
- export { ItemAPIHandlerOptions, itemApiHandler } from './item_api_handler.js';
1
+ export { defaultAPIHandler } from './default_api_handler.js';
2
+ export { APIHandlerOptions, resourceHandler } from './resource_handler.js';
3
+ export { PutResourceExistingConditions, PutResourceHandlerOptions, PutResourceValidators, putResourceHandler } from './put_resource_handler.js';
4
4
  import 'react-router';
5
- import 'dn-react-toolkit/auth/server';
6
- import 'dn-react-toolkit/file/server';
7
- import 'drizzle-orm';
5
+ import 'gw-auth/server';
6
+ import 'gw-file/server';
7
+ import 'gw-result';
8
8
  import '../table/repository.js';
9
+ import 'drizzle-orm';
9
10
  import 'drizzle-orm/node-postgres';
10
11
  import 'drizzle-orm/pg-core';
11
12
  import '../auth/with_auth.js';
12
- import 'dn-react-toolkit/auth';
13
+ import 'gw-auth';