@ya-accelerators/nextjs-framework 0.0.99 → 0.0.101

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 (289) hide show
  1. package/dist/constants.d.ts +4 -0
  2. package/dist/constants.js +4 -0
  3. package/dist/constants.js.map +1 -1
  4. package/dist/env.client.d.ts +2 -2
  5. package/dist/env.client.js +1 -1
  6. package/dist/env.client.js.map +1 -1
  7. package/dist/env.d.ts +2 -2
  8. package/dist/env.js +1 -5
  9. package/dist/env.js.map +1 -1
  10. package/dist/hooks/anchor/index.d.ts +13 -0
  11. package/dist/hooks/anchor/index.js +65 -0
  12. package/dist/hooks/anchor/index.js.map +1 -0
  13. package/dist/hooks/date/index.js.map +1 -1
  14. package/dist/hooks/loading/index.jsx +1 -1
  15. package/dist/hooks/loading/index.jsx.map +1 -1
  16. package/dist/hooks/modal/index.d.ts +1 -1
  17. package/dist/hooks/modal/index.jsx +1 -1
  18. package/dist/hooks/modal/index.jsx.map +1 -1
  19. package/dist/hooks/mounted/index.js +0 -4
  20. package/dist/hooks/mounted/index.js.map +1 -1
  21. package/dist/hooks/toast/index.d.ts +3 -1
  22. package/dist/hooks/toast/index.jsx +9 -9
  23. package/dist/hooks/toast/index.jsx.map +1 -1
  24. package/dist/hooks/uploads/index.d.ts +41 -0
  25. package/dist/hooks/uploads/index.js +174 -0
  26. package/dist/hooks/uploads/index.js.map +1 -0
  27. package/dist/i18n/get-message-fallback.d.ts +0 -1
  28. package/dist/i18n/get-message-fallback.js +0 -1
  29. package/dist/i18n/get-message-fallback.js.map +1 -1
  30. package/dist/i18n/index.js +1 -4
  31. package/dist/i18n/index.js.map +1 -1
  32. package/dist/i18n/strings/ja-JP.json +12 -4
  33. package/dist/lib/cookie/index.d.ts +1 -1
  34. package/dist/lib/cookie/index.js +0 -1
  35. package/dist/lib/cookie/index.js.map +1 -1
  36. package/dist/lib/next-auth/index.js +0 -11
  37. package/dist/lib/next-auth/index.js.map +1 -1
  38. package/dist/lib/trpc/index.d.ts +3 -2
  39. package/dist/lib/trpc/index.js +39 -11
  40. package/dist/lib/trpc/index.js.map +1 -1
  41. package/dist/lib/uploads/index.js +14 -18
  42. package/dist/lib/uploads/index.js.map +1 -1
  43. package/dist/logger/index.d.ts +2 -1
  44. package/dist/logger/index.js +0 -6
  45. package/dist/logger/index.js.map +1 -1
  46. package/dist/styles/globals.css +77 -0
  47. package/dist/styles/tailwind.config.d.ts +365 -359
  48. package/dist/styles/tailwind.config.js +25 -20
  49. package/dist/styles/tailwind.config.js.map +1 -1
  50. package/dist/styles/tailwind.config.ts +28 -21
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/dist/ui/component/button/base.d.ts +4 -4
  53. package/dist/ui/component/button/base.jsx +5 -5
  54. package/dist/ui/component/button/base.jsx.map +1 -1
  55. package/dist/ui/component/button/colored/index.d.ts +2 -2
  56. package/dist/ui/component/button/image/index.d.ts +2 -2
  57. package/dist/ui/component/button/index.d.ts +4 -9
  58. package/dist/ui/component/button/index.jsx +0 -5
  59. package/dist/ui/component/button/index.jsx.map +1 -1
  60. package/dist/ui/component/card/index.jsx +1 -1
  61. package/dist/ui/component/card/index.jsx.map +1 -1
  62. package/dist/ui/component/icon/index.d.ts +2 -2
  63. package/dist/ui/component/index.d.ts +72 -75
  64. package/dist/ui/component/index.js +4 -4
  65. package/dist/ui/component/index.js.map +1 -1
  66. package/dist/ui/component/progressBar/index.d.ts +9 -0
  67. package/dist/ui/component/progressBar/index.jsx +15 -0
  68. package/dist/ui/component/progressBar/index.jsx.map +1 -0
  69. package/dist/ui/component/skeleton/index.d.ts +10 -0
  70. package/dist/ui/component/skeleton/index.jsx +35 -0
  71. package/dist/ui/component/skeleton/index.jsx.map +1 -0
  72. package/dist/ui/component/typography/H1/index.d.ts +2 -3
  73. package/dist/ui/component/typography/H1/index.jsx +2 -2
  74. package/dist/ui/component/typography/H1/index.jsx.map +1 -1
  75. package/dist/ui/component/typography/H2/index.d.ts +2 -3
  76. package/dist/ui/component/typography/H2/index.jsx +2 -2
  77. package/dist/ui/component/typography/H2/index.jsx.map +1 -1
  78. package/dist/ui/component/typography/H3/index.d.ts +2 -3
  79. package/dist/ui/component/typography/H3/index.jsx +2 -2
  80. package/dist/ui/component/typography/H3/index.jsx.map +1 -1
  81. package/dist/ui/component/typography/H4/index.d.ts +2 -3
  82. package/dist/ui/component/typography/H4/index.jsx +2 -2
  83. package/dist/ui/component/typography/H4/index.jsx.map +1 -1
  84. package/dist/ui/component/typography/H5/index.d.ts +2 -3
  85. package/dist/ui/component/typography/H5/index.jsx +2 -2
  86. package/dist/ui/component/typography/H5/index.jsx.map +1 -1
  87. package/dist/ui/component/typography/H6/index.d.ts +2 -3
  88. package/dist/ui/component/typography/H6/index.jsx +2 -2
  89. package/dist/ui/component/typography/H6/index.jsx.map +1 -1
  90. package/dist/ui/component/typography/Label/index.d.ts +2 -3
  91. package/dist/ui/component/typography/Label/index.jsx +2 -2
  92. package/dist/ui/component/typography/Label/index.jsx.map +1 -1
  93. package/dist/ui/component/typography/LinkText/index.d.ts +2 -3
  94. package/dist/ui/component/typography/LinkText/index.jsx +2 -2
  95. package/dist/ui/component/typography/LinkText/index.jsx.map +1 -1
  96. package/dist/ui/component/typography/P/index.d.ts +2 -3
  97. package/dist/ui/component/typography/P/index.jsx +2 -2
  98. package/dist/ui/component/typography/P/index.jsx.map +1 -1
  99. package/dist/ui/component/typography/Pre/index.d.ts +2 -3
  100. package/dist/ui/component/typography/Pre/index.jsx +2 -2
  101. package/dist/ui/component/typography/Pre/index.jsx.map +1 -1
  102. package/dist/ui/component/typography/Span/index.d.ts +6 -0
  103. package/dist/ui/component/typography/Span/index.jsx +12 -0
  104. package/dist/ui/component/typography/Span/index.jsx.map +1 -0
  105. package/dist/ui/component/typography/index.d.ts +26 -32
  106. package/dist/ui/component/typography/index.jsx +2 -0
  107. package/dist/ui/component/typography/index.jsx.map +1 -1
  108. package/dist/ui/composite/accordion/index.d.ts +12 -0
  109. package/dist/ui/composite/accordion/index.jsx +29 -0
  110. package/dist/ui/composite/accordion/index.jsx.map +1 -0
  111. package/dist/ui/composite/alert/index.d.ts +13 -0
  112. package/dist/ui/composite/alert/index.jsx +35 -0
  113. package/dist/ui/composite/alert/index.jsx.map +1 -0
  114. package/dist/ui/composite/avatar/index.d.ts +9 -0
  115. package/dist/ui/composite/avatar/index.jsx +25 -0
  116. package/dist/ui/composite/avatar/index.jsx.map +1 -0
  117. package/dist/ui/composite/dropdown/index.d.ts +2 -2
  118. package/dist/ui/composite/dropdown/index.jsx +0 -1
  119. package/dist/ui/composite/dropdown/index.jsx.map +1 -1
  120. package/dist/ui/composite/emptyState/index.d.ts +9 -0
  121. package/dist/ui/composite/emptyState/index.jsx +18 -0
  122. package/dist/ui/composite/emptyState/index.jsx.map +1 -0
  123. package/dist/ui/{layout → composite}/form/index.d.ts +4 -5
  124. package/dist/ui/{layout → composite}/form/index.jsx +31 -43
  125. package/dist/ui/composite/form/index.jsx.map +1 -0
  126. package/dist/ui/{layout → composite}/form/renderItem.d.ts +1 -2
  127. package/dist/ui/{layout → composite}/form/renderItem.jsx +25 -30
  128. package/dist/ui/composite/form/renderItem.jsx.map +1 -0
  129. package/dist/ui/composite/index.d.ts +490 -233
  130. package/dist/ui/composite/index.js +30 -0
  131. package/dist/ui/composite/index.js.map +1 -1
  132. package/dist/ui/composite/input/attachment/index.d.ts +18 -0
  133. package/dist/ui/composite/input/attachment/index.jsx +130 -0
  134. package/dist/ui/composite/input/attachment/index.jsx.map +1 -0
  135. package/dist/ui/composite/input/checkbox/index.d.ts +2 -2
  136. package/dist/ui/composite/input/checkbox/index.jsx +2 -2
  137. package/dist/ui/composite/input/checkbox/index.jsx.map +1 -1
  138. package/dist/ui/composite/input/datePicker/index.d.ts +1 -1
  139. package/dist/ui/composite/input/datePicker/index.jsx +5 -16
  140. package/dist/ui/composite/input/datePicker/index.jsx.map +1 -1
  141. package/dist/ui/composite/input/dateRange/index.d.ts +1 -1
  142. package/dist/ui/composite/input/dateRange/index.jsx +1 -3
  143. package/dist/ui/composite/input/dateRange/index.jsx.map +1 -1
  144. package/dist/ui/composite/input/dateTimePicker/index.jsx +1 -8
  145. package/dist/ui/composite/input/dateTimePicker/index.jsx.map +1 -1
  146. package/dist/ui/composite/input/dateTimeRange/index.d.ts +1 -1
  147. package/dist/ui/composite/input/dateTimeRange/index.jsx +2 -5
  148. package/dist/ui/composite/input/dateTimeRange/index.jsx.map +1 -1
  149. package/dist/ui/composite/input/file/index.d.ts +3 -8
  150. package/dist/ui/composite/input/file/index.jsx +91 -137
  151. package/dist/ui/composite/input/file/index.jsx.map +1 -1
  152. package/dist/ui/composite/input/index.d.ts +144 -128
  153. package/dist/ui/composite/input/index.js +4 -0
  154. package/dist/ui/composite/input/index.js.map +1 -1
  155. package/dist/ui/composite/input/list/index.jsx +3 -11
  156. package/dist/ui/composite/input/list/index.jsx.map +1 -1
  157. package/dist/ui/composite/input/radio/index.d.ts +2 -2
  158. package/dist/ui/composite/input/radio/index.jsx +3 -3
  159. package/dist/ui/composite/input/radio/index.jsx.map +1 -1
  160. package/dist/ui/composite/input/select/GroupHeading/index.jsx +1 -1
  161. package/dist/ui/composite/input/select/GroupHeading/index.jsx.map +1 -1
  162. package/dist/ui/composite/input/select/Input/index.jsx +1 -4
  163. package/dist/ui/composite/input/select/Input/index.jsx.map +1 -1
  164. package/dist/ui/composite/input/select/Option/index.jsx +0 -1
  165. package/dist/ui/composite/input/select/Option/index.jsx.map +1 -1
  166. package/dist/ui/composite/input/select/Placeholder/index.jsx +1 -1
  167. package/dist/ui/composite/input/select/Placeholder/index.jsx.map +1 -1
  168. package/dist/ui/composite/input/select/SelectContainer/index.jsx +1 -1
  169. package/dist/ui/composite/input/select/SelectContainer/index.jsx.map +1 -1
  170. package/dist/ui/composite/input/select/SingleValue/index.jsx +1 -1
  171. package/dist/ui/composite/input/select/SingleValue/index.jsx.map +1 -1
  172. package/dist/ui/composite/input/select/index.jsx +0 -2
  173. package/dist/ui/composite/input/select/index.jsx.map +1 -1
  174. package/dist/ui/composite/input/switch/index.d.ts +11 -0
  175. package/dist/ui/composite/input/switch/index.jsx +21 -0
  176. package/dist/ui/composite/input/switch/index.jsx.map +1 -0
  177. package/dist/ui/composite/input/text/index.d.ts +1 -1
  178. package/dist/ui/composite/input/text/index.jsx +1 -1
  179. package/dist/ui/composite/input/text/index.jsx.map +1 -1
  180. package/dist/ui/composite/input/textarea/index.d.ts +1 -1
  181. package/dist/ui/composite/input/textarea/index.jsx +1 -1
  182. package/dist/ui/composite/input/textarea/index.jsx.map +1 -1
  183. package/dist/ui/composite/input/timePicker/index.d.ts +1 -1
  184. package/dist/ui/composite/input/timeRange/index.d.ts +1 -1
  185. package/dist/ui/composite/input/timeRange/index.jsx +1 -1
  186. package/dist/ui/composite/input/timeRange/index.jsx.map +1 -1
  187. package/dist/ui/composite/input/weekDaysSelector/index.d.ts +1 -1
  188. package/dist/ui/composite/input/weekdayPicker/index.d.ts +1 -1
  189. package/dist/ui/composite/input/weekdayPicker/index.jsx +1 -1
  190. package/dist/ui/composite/input/weekdayPicker/index.jsx.map +1 -1
  191. package/dist/ui/composite/label/index.d.ts +3 -2
  192. package/dist/ui/composite/label/index.jsx +4 -4
  193. package/dist/ui/composite/label/index.jsx.map +1 -1
  194. package/dist/ui/composite/loading/index.jsx.map +1 -0
  195. package/dist/ui/composite/markdown/codeBlock.d.ts +4 -0
  196. package/dist/ui/composite/markdown/codeBlock.jsx +67 -0
  197. package/dist/ui/composite/markdown/codeBlock.jsx.map +1 -0
  198. package/dist/ui/composite/markdown/index.d.ts +3 -0
  199. package/dist/ui/composite/markdown/index.jsx +65 -0
  200. package/dist/ui/composite/markdown/index.jsx.map +1 -0
  201. package/dist/ui/{component/modal/index.d.ts → composite/modal/card.d.ts} +1 -1
  202. package/dist/ui/composite/modal/card.jsx +13 -0
  203. package/dist/ui/composite/modal/card.jsx.map +1 -0
  204. package/dist/ui/composite/modal/index.d.ts +2 -0
  205. package/dist/ui/composite/modal/index.jsx +3 -0
  206. package/dist/ui/composite/modal/index.jsx.map +1 -0
  207. package/dist/ui/{layout/modal/index.jsx → composite/modal/overlay.jsx} +4 -10
  208. package/dist/ui/composite/modal/overlay.jsx.map +1 -0
  209. package/dist/ui/{layout → composite}/object/index.d.ts +2 -3
  210. package/dist/ui/{layout → composite}/object/index.jsx +50 -24
  211. package/dist/ui/composite/object/index.jsx.map +1 -0
  212. package/dist/ui/composite/pageTitle/index.jsx +4 -2
  213. package/dist/ui/composite/pageTitle/index.jsx.map +1 -1
  214. package/dist/ui/composite/popover/index.d.ts +12 -0
  215. package/dist/ui/composite/popover/index.jsx +48 -0
  216. package/dist/ui/composite/popover/index.jsx.map +1 -0
  217. package/dist/ui/composite/stepper/index.d.ts +8 -0
  218. package/dist/ui/composite/stepper/index.jsx +34 -0
  219. package/dist/ui/composite/stepper/index.jsx.map +1 -0
  220. package/dist/ui/composite/table/features.d.ts +15 -0
  221. package/dist/ui/composite/table/features.js +10 -0
  222. package/dist/ui/composite/table/features.js.map +1 -0
  223. package/dist/ui/{layout → composite}/table/index.d.ts +4 -9
  224. package/dist/ui/{layout → composite}/table/index.jsx +10 -23
  225. package/dist/ui/composite/table/index.jsx.map +1 -0
  226. package/dist/ui/composite/toast/index.d.ts +18 -0
  227. package/dist/ui/{layout → composite}/toast/index.jsx +11 -4
  228. package/dist/ui/composite/toast/index.jsx.map +1 -0
  229. package/dist/ui/composite/tooltip/index.d.ts +11 -0
  230. package/dist/ui/composite/tooltip/index.jsx +29 -0
  231. package/dist/ui/composite/tooltip/index.jsx.map +1 -0
  232. package/dist/ui/functional/index.d.ts +5 -5
  233. package/dist/ui/functional/signInForm/index.jsx +1 -1
  234. package/dist/ui/functional/signInForm/index.jsx.map +1 -1
  235. package/dist/ui/layout/app/component.jsx +2 -2
  236. package/dist/ui/layout/app/component.jsx.map +1 -1
  237. package/dist/ui/layout/drawer/index.d.ts +11 -0
  238. package/dist/ui/layout/drawer/index.jsx +73 -0
  239. package/dist/ui/layout/drawer/index.jsx.map +1 -0
  240. package/dist/ui/layout/index.d.ts +38 -351
  241. package/dist/ui/layout/index.js +2 -12
  242. package/dist/ui/layout/index.js.map +1 -1
  243. package/dist/ui/layout/root/index.d.ts +1 -1
  244. package/dist/ui/layout/root/index.jsx +1 -2
  245. package/dist/ui/layout/root/index.jsx.map +1 -1
  246. package/dist/ui/layout/root/provider/index.jsx +0 -4
  247. package/dist/ui/layout/root/provider/index.jsx.map +1 -1
  248. package/dist/ui/layout/tab/component.jsx +3 -3
  249. package/dist/ui/layout/tab/component.jsx.map +1 -1
  250. package/dist/ui/layout/tab/content/index.d.ts +1 -1
  251. package/dist/ui/theme/border/index.d.ts +15 -15
  252. package/dist/ui/theme/border/index.js.map +1 -1
  253. package/dist/ui/theme/color/index.d.ts +24 -23
  254. package/dist/ui/theme/color/index.js +14 -24
  255. package/dist/ui/theme/color/index.js.map +1 -1
  256. package/dist/ui/theme/rounded/index.d.ts +6 -5
  257. package/dist/ui/theme/rounded/index.js +2 -0
  258. package/dist/ui/theme/rounded/index.js.map +1 -1
  259. package/dist/ui/theme/size/index.d.ts +8 -8
  260. package/dist/ui/theme/size/index.js +8 -8
  261. package/dist/ui/theme/size/index.js.map +1 -1
  262. package/dist/ui/types/index.d.ts +16 -2
  263. package/dist/ui/types/index.js +0 -1
  264. package/dist/ui/types/index.js.map +1 -1
  265. package/dist/util/date/impl.js +0 -2
  266. package/dist/util/date/impl.js.map +1 -1
  267. package/dist/util/date/index.d.ts +7 -7
  268. package/dist/util/index.js +8 -20
  269. package/dist/util/index.js.map +1 -1
  270. package/package.json +7 -6
  271. package/dist/ui/component/button/text/index.d.ts +0 -11
  272. package/dist/ui/component/button/text/index.jsx +0 -7
  273. package/dist/ui/component/button/text/index.jsx.map +0 -1
  274. package/dist/ui/component/markdown/index.d.ts +0 -4
  275. package/dist/ui/component/markdown/index.jsx +0 -61
  276. package/dist/ui/component/markdown/index.jsx.map +0 -1
  277. package/dist/ui/component/modal/index.jsx +0 -12
  278. package/dist/ui/component/modal/index.jsx.map +0 -1
  279. package/dist/ui/layout/form/index.jsx.map +0 -1
  280. package/dist/ui/layout/form/renderItem.jsx.map +0 -1
  281. package/dist/ui/layout/loading/index.jsx.map +0 -1
  282. package/dist/ui/layout/modal/index.jsx.map +0 -1
  283. package/dist/ui/layout/object/index.jsx.map +0 -1
  284. package/dist/ui/layout/table/index.jsx.map +0 -1
  285. package/dist/ui/layout/toast/index.d.ts +0 -7
  286. package/dist/ui/layout/toast/index.jsx.map +0 -1
  287. /package/dist/ui/{layout → composite}/loading/index.d.ts +0 -0
  288. /package/dist/ui/{layout → composite}/loading/index.jsx +0 -0
  289. /package/dist/ui/{layout/modal/index.d.ts → composite/modal/overlay.d.ts} +0 -0
@@ -23,8 +23,6 @@
23
23
  "Back": "戻る",
24
24
  "Previous": "前へ",
25
25
  "Next": "次へ",
26
- "Yes": "はい",
27
- "No": "いいえ",
28
26
  "Email": "メールアドレス",
29
27
  "Password": "パスワード",
30
28
  "Sign in": "サインイン",
@@ -37,8 +35,18 @@
37
35
  "Could not display this page. Please try again later.": "ページを表示できませんでした。しばらくしてからもう一度お試しください。",
38
36
  "Retry": "再試行",
39
37
  "Search": "検索",
40
- "Drag & drop to upload": "ドラッグ&ドロップでアップロード",
38
+ "Drag & drop a file to upload": "ドラッグ&ドロップでアップロード",
39
+ "Drag & drop files to upload": "ドラッグ&ドロップでアップロード",
41
40
  "or browse": "またはファイルを選択",
41
+ "Drop a file to upload": "ここにドロップしてアップロード",
42
+ "Drop files to upload": "ここにドロップしてアップロード",
43
+ "Accepted file types": "対応ファイル形式",
42
44
  "Upload": "アップロード",
43
- "Done": "完了"
45
+ "Upload failed": "アップロードに失敗しました",
46
+ "Upload failed — network error": "アップロードに失敗しました — 通信エラー",
47
+ "Upload failed — invalid response": "アップロードに失敗しました — 不正なレスポンス",
48
+ "Remove": "削除",
49
+ "Done": "完了",
50
+ "Copy": "コピー",
51
+ "Copied": "コピーしました"
44
52
  }
@@ -1,7 +1,7 @@
1
1
  export declare const setCookieValue: (cookieName: string, value: string, options?: {
2
2
  httpOnly?: boolean;
3
3
  secure?: boolean;
4
- sameSite?: "strict" | "lax" | "none";
4
+ sameSite?: 'strict' | 'lax' | 'none';
5
5
  maxAge?: number;
6
6
  }) => Promise<void>;
7
7
  export declare const getCookieValue: (cookieName: string) => Promise<string | undefined>;
@@ -20,7 +20,6 @@ export const setCookieValue = async (cookieName, value, options) => {
20
20
  if (options?.maxAge) {
21
21
  cookieOptions.push(`Max-Age=${options.maxAge}`);
22
22
  }
23
- // httpOnly cannot be set from the client side
24
23
  const cookieString = `${cookieName}=${encodeURIComponent(value)}; ${cookieOptions.join('; ')}; Path=/`;
25
24
  document.cookie = cookieString;
26
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/cookie/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/cookie/index.ts"],"names":[],"mappings":"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"}
@@ -41,9 +41,6 @@ export const options = (authorize, refresh, externalAuthorize) => {
41
41
  return null;
42
42
  }
43
43
  try {
44
- // Route an app-supplied opaque credential (e.g. a MicroHub OIDC broker
45
- // one-time code) through externalAuthorize; otherwise fall back to the
46
- // email/password path. Either callback maps to a TokenSet or undefined.
47
44
  let tokenSet;
48
45
  if (credentials.credential && externalAuthorize) {
49
46
  tokenSet = await externalAuthorize(credentials.credential);
@@ -59,9 +56,6 @@ export const options = (authorize, refresh, externalAuthorize) => {
59
56
  };
60
57
  }
61
58
  catch (error) {
62
- // NextAuth swallows authorize() exceptions silently and returns null —
63
- // operationally indistinguishable from "wrong password". Log the throw so
64
- // server-side bugs in the consumer's authorize callback are visible.
65
59
  logger.error('auth', { op: 'authorize', error });
66
60
  return null;
67
61
  }
@@ -70,9 +64,6 @@ export const options = (authorize, refresh, externalAuthorize) => {
70
64
  ],
71
65
  callbacks: {
72
66
  session: ({ session, token }) => {
73
- // The access token is deliberately NOT copied onto the session: the session is serialized to the
74
- // browser via /api/auth/session (SessionProvider), so exposing the bearer there hands any client
75
- // script a usable credential. The server reads it from the JWT via getToken (see Lib.trpc).
76
67
  if (token?.scope) {
77
68
  session.scope = token.scope;
78
69
  }
@@ -82,8 +73,6 @@ export const options = (authorize, refresh, externalAuthorize) => {
82
73
  return session;
83
74
  },
84
75
  jwt: async ({ token, user }) => {
85
- // New sign-in path: authorize() returned a TokenSet; CredentialsProvider
86
- // hands it to us on `user.tokenSet`.
87
76
  if (user?.tokenSet) {
88
77
  token.accessToken = user.tokenSet.accessToken;
89
78
  token.refreshToken = user.tokenSet.refreshToken;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/next-auth/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/next-auth/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@ import type { HTTPHeaders } from '@trpc/client';
2
2
  export declare const setHeaderValues: (headers: HTTPHeaders, options?: {
3
3
  httpOnly?: boolean;
4
4
  secure?: boolean;
5
- sameSite?: "strict" | "lax" | "none";
5
+ sameSite?: 'strict' | 'lax' | 'none';
6
6
  maxAge?: number;
7
7
  }) => Promise<void>;
8
- export declare const mergeDefaultHeaders: (extra?: HTTPHeaders) => Promise<HTTPHeaders>;
8
+ export declare const mergeDefaultHeaders: (extra: HTTPHeaders | undefined, allowed: readonly string[]) => Promise<HTTPHeaders>;
9
+ export declare const mergeServerHeaders: (extra: HTTPHeaders | undefined, allowed: readonly string[]) => Promise<HTTPHeaders>;
@@ -6,13 +6,32 @@ export const setHeaderValues = async (headers, options) => setCookieValue('heade
6
6
  // The real authorization is applied server-side from the JWT (getToken) below.
7
7
  const SENSITIVE_HEADER_NAMES = new Set([
8
8
  'authorization',
9
+ 'proxy-authorization',
9
10
  'cookie',
10
11
  'x-forwarded-for',
11
12
  'x-forwarded-host',
12
13
  'x-forwarded-proto',
13
14
  'x-real-ip',
15
+ 'user-agent',
16
+ 'host',
17
+ 'content-type',
18
+ 'content-length',
14
19
  ]);
15
- const createDefaultHeaders = async (defaultHeaders = {}) => {
20
+ const pickAllowedHeaders = (headers, allowed) => {
21
+ const admitted = allowed.map((name) => name.trim().toLowerCase());
22
+ const picked = {};
23
+ for (const [key, value] of Object.entries(headers)) {
24
+ const name = key.toLowerCase();
25
+ if (SENSITIVE_HEADER_NAMES.has(name)) {
26
+ continue;
27
+ }
28
+ if (admitted.includes(name)) {
29
+ picked[key] = value;
30
+ }
31
+ }
32
+ return picked;
33
+ };
34
+ const createDefaultHeaders = async (extra, allowed, own) => {
16
35
  let baseHeaders = {};
17
36
  let authorization;
18
37
  if (typeof window === 'undefined') {
@@ -20,7 +39,7 @@ const createDefaultHeaders = async (defaultHeaders = {}) => {
20
39
  const headersList = await nextHeaders();
21
40
  baseHeaders = { 'user-agent': headersList.get('user-agent') || 'unknown' };
22
41
  // Read the access token from the server-side JWT (getToken decodes the same session cookie
23
- // getServerSession does) rather than the session — the session no longer carries the bearer, so it is
42
+ // getServerSession does) rather than the session — the session does not carry the bearer, so it is
24
43
  // never exposed to client JS. Do NOT refresh here: the RSC / server-action path cannot persist a
25
44
  // rotated session cookie, so an inline refresh consumes a (possibly rotating) refresh token out of
26
45
  // band and poisons the next-auth jwt-callback refresh (which is the only place that can persist the
@@ -40,22 +59,31 @@ const createDefaultHeaders = async (defaultHeaders = {}) => {
40
59
  if (headersCookie) {
41
60
  try {
42
61
  const parsedHeaders = JSON.parse(headersCookie);
43
- for (const [key, value] of Object.entries(parsedHeaders)) {
44
- if (!SENSITIVE_HEADER_NAMES.has(key.toLowerCase())) {
45
- savedHeaders[key] = value;
46
- }
62
+ for (const [key, value] of Object.entries(pickAllowedHeaders(parsedHeaders, allowed))) {
63
+ savedHeaders[key] = value;
47
64
  }
48
65
  }
49
- catch {
50
- // Ignore if JSON parse fails
51
- }
66
+ catch { }
52
67
  }
53
68
  return {
54
69
  ...baseHeaders,
55
70
  ...savedHeaders,
56
71
  ...(authorization ? { authorization } : {}),
57
- ...defaultHeaders,
72
+ ...(own ? extra : pickAllowedHeaders(extra, allowed)),
58
73
  };
59
74
  };
60
- export const mergeDefaultHeaders = async (extra) => createDefaultHeaders(extra);
75
+ // Which function the call site picks is what says whether the bag is the caller's or the server's own.
76
+ // Both take the allow-list, so the browser-held `headers` cookie is narrowed by it on either path.
77
+ export const mergeDefaultHeaders = async (extra, allowed) => {
78
+ if (allowed === undefined) {
79
+ throw new Error('mergeDefaultHeaders requires the allowedConsumerHeaders the generated client carries as its second argument. Reaching this means a generated client was built before that export existed; treating the bag as unrestricted would put caller-controlled headers on the request.');
80
+ }
81
+ return createDefaultHeaders(extra ?? {}, allowed, false);
82
+ };
83
+ export const mergeServerHeaders = async (extra, allowed) => {
84
+ if (allowed === undefined) {
85
+ throw new Error('mergeServerHeaders requires the allowedConsumerHeaders the generated client carries as its second argument: the bag it is given is unfiltered, and the cookie-held one is narrowed by that list.');
86
+ }
87
+ return createDefaultHeaders(extra ?? {}, allowed, true);
88
+ };
61
89
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/trpc/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,OAAoB,EACpB,OAKC,EACD,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;AAEhE,+FAA+F;AAC/F,qGAAqG;AACrG,+EAA+E;AAC/E,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,eAAe;IACf,QAAQ;IACR,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,WAAW;CACZ,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,KAAK,EAAE,iBAA8B,EAAE,EAAwB,EAAE;IAC5F,IAAI,WAAW,GAAgB,EAAE,CAAA;IACjC,IAAI,aAAiC,CAAA;IAErC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;QAC7D,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE,CAAA;QACvC,WAAW,GAAG,EAAE,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,SAAS,EAAE,CAAA;QAC1E,2FAA2F;QAC3F,sGAAsG;QACtG,iGAAiG;QACjG,mGAAmG;QACnG,oGAAoG;QACpG,0FAA0F;QAC1F,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;QAClD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;QACnD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC;YAC3B,GAAG,EAAE,IAAI,WAAW,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YAClG,MAAM,EAAE,gBAAgB,CAAC,eAAe;SACzC,CAAC,CAAA;QACF,IAAI,KAAK,EAAE,WAAW,EAAE,CAAC;YACvB,aAAa,GAAG,UAAU,KAAK,CAAC,WAAW,EAAE,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAgB,EAAE,CAAA;IACpC,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAA2B,CAAA;YACzE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBACnD,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,WAAW;QACd,GAAG,YAAY;QACf,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,cAAc;KAClB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,KAAmB,EAAwB,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/trpc/index.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,5 @@
1
1
  import { logger } from '../../logger';
2
- // Same-origin upload relay. The browser POSTs the file bytes to the app's own origin and this route
3
- // forwards them to the backend's `/_uploads` sink: the one-time token and the target URL are resolved
4
- // server-side by `uploadAction`, so the token never reaches the browser and the page never makes a
5
- // cross-origin request (no CORS preflight, and no mixed content when the page is served over https while
6
- // the backend is plain http in dev). The destination is not caller-supplied, so this is not an open relay.
7
2
  export const createUploadRoute = (uploadAction) => async (request) => {
8
- // Unlike a Server Action, a route handler gets no framework CSRF protection, and this one is
9
- // cookie-authenticated: without this check an attacker's page could POST a body cross-site and have the
10
- // victim's session mint a token and store the object. Two accept conditions, because neither covers both
11
- // deployments on its own: `Sec-Fetch-Site` is browser-set and a forbidden header name (unforgeable) but
12
- // is only attached to trustworthy origins, so it is absent on the plain-http dev hosts; the Origin/Host
13
- // comparison covers those, and compares against `Host` alone — `x-forwarded-host` is caller-settable, so
14
- // trusting it would let an attacker match its own Origin.
15
3
  const origin = request.headers.get('origin');
16
4
  if (request.headers.get('sec-fetch-site') !== 'same-origin' &&
17
5
  (origin === null || URL.parse(origin)?.host !== request.headers.get('host'))) {
@@ -36,14 +24,9 @@ export const createUploadRoute = (uploadAction) => async (request) => {
36
24
  method: 'POST',
37
25
  headers: {
38
26
  authorization: `Bearer ${token}`,
39
- // Forwarded only when present — the backend falls back to its own default name for an absent header,
40
- // but an empty string would be taken as the real filename.
41
27
  ...(filename === null ? {} : { 'x-upload-filename': filename }),
42
28
  'content-type': request.headers.get('content-type') ?? 'application/octet-stream',
43
29
  },
44
- // The body is buffered rather than streamed: passing `request.body` through requires the
45
- // `duplex: 'half'` init option, which the DOM `RequestInit` type Next.js compiles against does not
46
- // declare. The backend caps a single upload at its own ceiling, so the buffer stays bounded.
47
30
  body: await request.arrayBuffer(),
48
31
  }).catch((error) => {
49
32
  logger.error('upload', { url, error });
@@ -57,7 +40,20 @@ export const createUploadRoute = (uploadAction) => async (request) => {
57
40
  }
58
41
  const body = await response.text();
59
42
  if (!response.ok) {
60
- logger.error('upload', { status: response.status, body });
43
+ // The status and the body's SHAPE, never the body itself. This route exists to keep the uploaded
44
+ // filename out of proxy / access logs (it travels in a header, not the query string), and a backend
45
+ // validation error commonly echoes the rejected filename back in its message — logging the raw text
46
+ // would put it in the log stream anyway. `Util.sanitize` cannot help: the whole response collapses
47
+ // into one string value, so there are no keys for it to match on.
48
+ let bodyKeys;
49
+ try {
50
+ const parsed = JSON.parse(body);
51
+ bodyKeys = typeof parsed === 'object' && parsed !== null ? Object.keys(parsed) : undefined;
52
+ }
53
+ catch {
54
+ bodyKeys = undefined;
55
+ }
56
+ logger.error('upload', { status: response.status, bodyKeys, bodyLength: body.length });
61
57
  }
62
58
  return new Response(body, { status: response.status, headers: { 'content-type': 'application/json' } });
63
59
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/uploads/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/uploads/index.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,9 @@ declare const LEVEL_ORDER: {
5
5
  readonly error: 40;
6
6
  };
7
7
  type LogLevel = keyof typeof LEVEL_ORDER;
8
+ declare const enabled: (level: LogLevel) => boolean;
8
9
  export declare const logger: {
9
- enabled: (level: LogLevel) => boolean;
10
+ enabled: typeof enabled;
10
11
  debug: (tag: string, payload: Record<string, unknown>) => void;
11
12
  info: (tag: string, payload: Record<string, unknown>) => void;
12
13
  warn: (tag: string, payload: Record<string, unknown>) => void;
@@ -11,8 +11,6 @@ const getThreshold = () => {
11
11
  return defaultClientEnv.NEXT_PUBLIC_LOG_LEVEL ?? DEFAULT_BY_DEPLOY_ENV[defaultClientEnv.NEXT_PUBLIC_DEPLOY_ENV];
12
12
  };
13
13
  const enabled = (level) => LEVEL_ORDER[level] >= LEVEL_ORDER[getThreshold()];
14
- // Service identifier: host on both sides (no env var). Falls back to 'unknown' when
15
- // `os.hostname()` is unavailable (e.g. Edge runtime in middleware).
16
14
  const getService = () => {
17
15
  if (isServer) {
18
16
  try {
@@ -24,10 +22,6 @@ const getService = () => {
24
22
  }
25
23
  return window.location.host;
26
24
  };
27
- // Path: auto-injected on client from `window.location.pathname`. Not auto-injected on
28
- // server side in v1 — Next.js middleware can't wrap downstream calls in AsyncLocalStorage
29
- // the way Express middleware does, and `headers()` is async (would force the logger API
30
- // to be async). Server callers include `path` in `payload` when relevant.
31
25
  const getAutoPath = () => (isServer ? undefined : window.location.pathname);
32
26
  const isDevFormat = () => isServer ? defaultServerEnv.NODE_ENV === 'development' : defaultClientEnv.NEXT_PUBLIC_DEPLOY_ENV === 'dev';
33
27
  const emit = (level, tag, payload) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/logger/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/logger/index.ts"],"names":[],"mappings":"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"}
@@ -24,3 +24,80 @@
24
24
  @apply cursor-pointer hover:opacity-80 disabled:cursor-default disabled:opacity-50;
25
25
  }
26
26
  }
27
+
28
+ @layer components {
29
+ .hljs {
30
+ color: light-dark(#24292f, #c9d1d9);
31
+ }
32
+ .hljs-doctag,
33
+ .hljs-keyword,
34
+ .hljs-meta .hljs-keyword,
35
+ .hljs-template-tag,
36
+ .hljs-template-variable,
37
+ .hljs-type,
38
+ .hljs-variable.language_ {
39
+ color: light-dark(#cf222e, #ff7b72);
40
+ }
41
+ .hljs-title,
42
+ .hljs-title.class_,
43
+ .hljs-title.class_.inherited__,
44
+ .hljs-title.function_ {
45
+ color: light-dark(#8250df, #d2a8ff);
46
+ }
47
+ .hljs-attr,
48
+ .hljs-attribute,
49
+ .hljs-literal,
50
+ .hljs-meta,
51
+ .hljs-number,
52
+ .hljs-operator,
53
+ .hljs-selector-attr,
54
+ .hljs-selector-class,
55
+ .hljs-selector-id,
56
+ .hljs-variable {
57
+ color: light-dark(#0550ae, #79c0ff);
58
+ }
59
+ .hljs-meta .hljs-string,
60
+ .hljs-regexp,
61
+ .hljs-string {
62
+ color: light-dark(#0a3069, #a5d6ff);
63
+ }
64
+ .hljs-built_in,
65
+ .hljs-symbol {
66
+ color: light-dark(#953800, #ffa657);
67
+ }
68
+ .hljs-code,
69
+ .hljs-comment,
70
+ .hljs-formula {
71
+ color: light-dark(#6e7781, #8b949e);
72
+ }
73
+ .hljs-name,
74
+ .hljs-quote,
75
+ .hljs-selector-pseudo,
76
+ .hljs-selector-tag {
77
+ color: light-dark(#116329, #7ee787);
78
+ }
79
+ .hljs-subst {
80
+ color: light-dark(#24292f, #c9d1d9);
81
+ }
82
+ .hljs-section {
83
+ color: light-dark(#0550ae, #1f6feb);
84
+ font-weight: bold;
85
+ }
86
+ .hljs-bullet {
87
+ color: light-dark(#953800, #f2cc60);
88
+ }
89
+ .hljs-emphasis {
90
+ font-style: italic;
91
+ }
92
+ .hljs-strong {
93
+ font-weight: bold;
94
+ }
95
+ .hljs-addition {
96
+ color: light-dark(#116329, #aff5b4);
97
+ background-color: light-dark(#dafbe1, #033a16);
98
+ }
99
+ .hljs-deletion {
100
+ color: light-dark(#82071e, #ffdcd7);
101
+ background-color: light-dark(#ffebe9, #67060c);
102
+ }
103
+ }