cross-seed 6.13.6 → 7.0.0-10

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 (255) hide show
  1. package/dist/Result.d.ts +27 -0
  2. package/dist/action.d.ts +34 -0
  3. package/dist/action.js +2 -1
  4. package/dist/action.js.map +1 -1
  5. package/dist/arr.d.ts +31 -0
  6. package/dist/arr.js +107 -39
  7. package/dist/arr.js.map +1 -1
  8. package/dist/auth.d.ts +3 -0
  9. package/dist/auth.js +9 -6
  10. package/dist/auth.js.map +1 -1
  11. package/dist/clients/Deluge.d.ts +153 -0
  12. package/dist/clients/Deluge.js +8 -7
  13. package/dist/clients/Deluge.js.map +1 -1
  14. package/dist/clients/QBittorrent.d.ts +218 -0
  15. package/dist/clients/QBittorrent.js +3 -2
  16. package/dist/clients/QBittorrent.js.map +1 -1
  17. package/dist/clients/RTorrent.d.ts +43 -0
  18. package/dist/clients/RTorrent.js +8 -4
  19. package/dist/clients/RTorrent.js.map +1 -1
  20. package/dist/clients/TorrentClient.d.ts +108 -0
  21. package/dist/clients/TorrentClient.js +137 -67
  22. package/dist/clients/TorrentClient.js.map +1 -1
  23. package/dist/clients/Transmission.d.ts +43 -0
  24. package/dist/clients/Transmission.js +4 -3
  25. package/dist/clients/Transmission.js.map +1 -1
  26. package/dist/cmd.d.ts +2 -0
  27. package/dist/cmd.js +42 -110
  28. package/dist/cmd.js.map +1 -1
  29. package/dist/configSchema.d.ts +1 -0
  30. package/dist/configSchema.js +1 -666
  31. package/dist/configSchema.js.map +1 -1
  32. package/dist/configuration.d.ts +63 -0
  33. package/dist/configuration.js +263 -24
  34. package/dist/configuration.js.map +1 -1
  35. package/dist/constants.d.ts +108 -0
  36. package/dist/constants.js +2 -32
  37. package/dist/constants.js.map +1 -1
  38. package/dist/dataFiles.d.ts +8 -0
  39. package/dist/dataFiles.js +21 -6
  40. package/dist/dataFiles.js.map +1 -1
  41. package/dist/db.d.ts +14 -0
  42. package/dist/db.js +76 -5
  43. package/dist/db.js.map +1 -1
  44. package/dist/dbConfig.d.ts +4 -0
  45. package/dist/dbConfig.js +67 -0
  46. package/dist/dbConfig.js.map +1 -0
  47. package/dist/decide.d.ts +25 -0
  48. package/dist/decide.js +4 -4
  49. package/dist/decide.js.map +1 -1
  50. package/dist/diagnostics/db.d.ts +21 -0
  51. package/dist/diagnostics/db.js +107 -0
  52. package/dist/diagnostics/db.js.map +1 -0
  53. package/dist/diff.d.ts +1 -0
  54. package/dist/errors.d.ts +3 -0
  55. package/dist/errors.js +0 -9
  56. package/dist/errors.js.map +1 -1
  57. package/dist/indexers.d.ts +105 -0
  58. package/dist/indexers.js +82 -14
  59. package/dist/indexers.js.map +1 -1
  60. package/dist/inject.d.ts +2 -0
  61. package/dist/jobs.d.ts +29 -0
  62. package/dist/jobs.js +14 -9
  63. package/dist/jobs.js.map +1 -1
  64. package/dist/logger.d.ts +29 -0
  65. package/dist/logger.js +18 -4
  66. package/dist/logger.js.map +1 -1
  67. package/dist/migrations/00-initialSchema.d.ts +9 -0
  68. package/dist/migrations/01-jobs.d.ts +9 -0
  69. package/dist/migrations/02-timestamps.d.ts +9 -0
  70. package/dist/migrations/03-rateLimits.d.ts +9 -0
  71. package/dist/migrations/04-auth.d.ts +9 -0
  72. package/dist/migrations/04-auth.js +1 -1
  73. package/dist/migrations/04-auth.js.map +1 -1
  74. package/dist/migrations/05-caps.d.ts +9 -0
  75. package/dist/migrations/06-uniqueDecisions.d.ts +9 -0
  76. package/dist/migrations/07-limits.d.ts +9 -0
  77. package/dist/migrations/08-rss.d.ts +9 -0
  78. package/dist/migrations/09-clientAndDataSearchees.d.ts +9 -0
  79. package/dist/migrations/10-indexerNameAudioBookCaps.d.ts +9 -0
  80. package/dist/migrations/11-trackers.d.ts +9 -0
  81. package/dist/migrations/12-user-auth.d.ts +9 -0
  82. package/dist/migrations/12-user-auth.js +22 -0
  83. package/dist/migrations/12-user-auth.js.map +1 -0
  84. package/dist/migrations/13-settings.d.ts +9 -0
  85. package/dist/migrations/13-settings.js +23 -0
  86. package/dist/migrations/13-settings.js.map +1 -0
  87. package/dist/migrations/14-indexer-enabled-flag.d.ts +9 -0
  88. package/dist/migrations/14-indexer-enabled-flag.js +12 -0
  89. package/dist/migrations/14-indexer-enabled-flag.js.map +1 -0
  90. package/dist/migrations/15-remove-url-unique-constraint.d.ts +9 -0
  91. package/dist/migrations/15-remove-url-unique-constraint.js +14 -0
  92. package/dist/migrations/15-remove-url-unique-constraint.js.map +1 -0
  93. package/dist/migrations/16-prune-inactive-indexers.d.ts +9 -0
  94. package/dist/migrations/16-prune-inactive-indexers.js +17 -0
  95. package/dist/migrations/16-prune-inactive-indexers.js.map +1 -0
  96. package/dist/migrations/migrations.d.ts +13 -0
  97. package/dist/migrations/migrations.js +10 -0
  98. package/dist/migrations/migrations.js.map +1 -1
  99. package/dist/parseTorrent.d.ts +53 -0
  100. package/dist/pipeline.d.ts +41 -0
  101. package/dist/pipeline.js +64 -13
  102. package/dist/pipeline.js.map +1 -1
  103. package/dist/preFilter.d.ts +25 -0
  104. package/dist/preFilter.js +15 -15
  105. package/dist/preFilter.js.map +1 -1
  106. package/dist/problems/linking.d.ts +2 -0
  107. package/dist/problems/linking.js +80 -0
  108. package/dist/problems/linking.js.map +1 -0
  109. package/dist/problems/path.d.ts +22 -0
  110. package/dist/problems/path.js +96 -0
  111. package/dist/problems/path.js.map +1 -0
  112. package/dist/problems.d.ts +13 -0
  113. package/dist/problems.js +48 -0
  114. package/dist/problems.js.map +1 -0
  115. package/dist/pushNotifier.d.ts +19 -0
  116. package/dist/routes/baseApi.d.ts +2 -0
  117. package/dist/routes/baseApi.js +354 -0
  118. package/dist/routes/baseApi.js.map +1 -0
  119. package/dist/routes/indexerApi.d.ts +6 -0
  120. package/dist/routes/indexerApi.js +165 -0
  121. package/dist/routes/indexerApi.js.map +1 -0
  122. package/dist/routes/staticFrontendPlugin.d.ts +4 -0
  123. package/dist/routes/staticFrontendPlugin.js +61 -0
  124. package/dist/routes/staticFrontendPlugin.js.map +1 -0
  125. package/dist/runtimeConfig.d.ts +6 -0
  126. package/dist/runtimeConfig.js +17 -1
  127. package/dist/runtimeConfig.js.map +1 -1
  128. package/dist/searchee.d.ts +108 -0
  129. package/dist/searchee.js +38 -6
  130. package/dist/searchee.js.map +1 -1
  131. package/dist/server.d.ts +4 -0
  132. package/dist/server.js +38 -429
  133. package/dist/server.js.map +1 -1
  134. package/dist/services/indexerService.d.ts +96 -0
  135. package/dist/services/indexerService.js +287 -0
  136. package/dist/services/indexerService.js.map +1 -0
  137. package/dist/sessionCookies.d.ts +5 -0
  138. package/dist/sessionCookies.js +27 -0
  139. package/dist/sessionCookies.js.map +1 -0
  140. package/dist/startup.d.ts +25 -0
  141. package/dist/startup.js +105 -151
  142. package/dist/startup.js.map +1 -1
  143. package/dist/torrent.d.ts +69 -0
  144. package/dist/torrent.js +17 -13
  145. package/dist/torrent.js.map +1 -1
  146. package/dist/torznab.d.ts +60 -0
  147. package/dist/torznab.js +14 -89
  148. package/dist/torznab.js.map +1 -1
  149. package/dist/trpc/fastifyAdapter.d.ts +2 -0
  150. package/dist/trpc/fastifyAdapter.js +9 -0
  151. package/dist/trpc/fastifyAdapter.js.map +1 -0
  152. package/dist/trpc/index.d.ts +49 -0
  153. package/dist/trpc/index.js +53 -0
  154. package/dist/trpc/index.js.map +1 -0
  155. package/dist/trpc/routers/auth.d.ts +43 -0
  156. package/dist/trpc/routers/auth.js +116 -0
  157. package/dist/trpc/routers/auth.js.map +1 -0
  158. package/dist/trpc/routers/clients.d.ts +21 -0
  159. package/dist/trpc/routers/clients.js +65 -0
  160. package/dist/trpc/routers/clients.js.map +1 -0
  161. package/dist/trpc/routers/health.d.ts +17 -0
  162. package/dist/trpc/routers/health.js +24 -0
  163. package/dist/trpc/routers/health.js.map +1 -0
  164. package/dist/trpc/routers/index.d.ts +394 -0
  165. package/dist/trpc/routers/index.js +23 -0
  166. package/dist/trpc/routers/index.js.map +1 -0
  167. package/dist/trpc/routers/indexers.d.ts +75 -0
  168. package/dist/trpc/routers/indexers.js +79 -0
  169. package/dist/trpc/routers/indexers.js.map +1 -0
  170. package/dist/trpc/routers/jobs.d.ts +33 -0
  171. package/dist/trpc/routers/jobs.js +84 -0
  172. package/dist/trpc/routers/jobs.js.map +1 -0
  173. package/dist/trpc/routers/logs.d.ts +27 -0
  174. package/dist/trpc/routers/logs.js +91 -0
  175. package/dist/trpc/routers/logs.js.map +1 -0
  176. package/dist/trpc/routers/searchees.d.ts +51 -0
  177. package/dist/trpc/routers/searchees.js +156 -0
  178. package/dist/trpc/routers/searchees.js.map +1 -0
  179. package/dist/trpc/routers/settings.d.ts +83 -0
  180. package/dist/trpc/routers/settings.js +92 -0
  181. package/dist/trpc/routers/settings.js.map +1 -0
  182. package/dist/trpc/routers/stats.d.ts +42 -0
  183. package/dist/trpc/routers/stats.js +102 -0
  184. package/dist/trpc/routers/stats.js.map +1 -0
  185. package/dist/userAuth.d.ts +21 -0
  186. package/dist/userAuth.js +86 -0
  187. package/dist/userAuth.js.map +1 -0
  188. package/dist/utils/authUtils.d.ts +10 -0
  189. package/dist/utils/authUtils.js +24 -0
  190. package/dist/utils/authUtils.js.map +1 -0
  191. package/dist/utils/logWatcher.d.ts +28 -0
  192. package/dist/utils/logWatcher.js +229 -0
  193. package/dist/utils/logWatcher.js.map +1 -0
  194. package/dist/utils/object.d.ts +1 -0
  195. package/dist/utils/object.js +4 -0
  196. package/dist/utils/object.js.map +1 -0
  197. package/dist/utils.d.ts +172 -0
  198. package/dist/utils.js +61 -50
  199. package/dist/utils.js.map +1 -1
  200. package/dist/webui/assets/FieldInfo-sRlPRNSK.js +1 -0
  201. package/dist/webui/assets/Page-B68mlTwU.js +1 -0
  202. package/dist/webui/assets/array-field-BCFMrvoU.js +1 -0
  203. package/dist/webui/assets/badge-C5YCxEzP.js +1 -0
  204. package/dist/webui/assets/check-NQsw6yBl.js +1 -0
  205. package/dist/webui/assets/chevron-down-8PGvFYxV.js +1 -0
  206. package/dist/webui/assets/clients-DnVpwApe.js +1 -0
  207. package/dist/webui/assets/connect-wMg2zyz6.js +1 -0
  208. package/dist/webui/assets/debug-BrjwiEi2.js +1 -0
  209. package/dist/webui/assets/directories-CHpJCWNR.js +1 -0
  210. package/dist/webui/assets/duration-field-DIkKt3iw.js +1 -0
  211. package/dist/webui/assets/general-uZrUIxbI.js +1 -0
  212. package/dist/webui/assets/health-_MuvAyjo.js +1 -0
  213. package/dist/webui/assets/index-B41DM2T5.css +1 -0
  214. package/dist/webui/assets/index-BBzHsn7u.js +1 -0
  215. package/dist/webui/assets/index-Ncy0-Qo7.js +54 -0
  216. package/dist/webui/assets/index-pKWy6v1P.js +1 -0
  217. package/dist/webui/assets/jobs-B8eat0YU.js +1 -0
  218. package/dist/webui/assets/library-BB0jQ8zn.js +1 -0
  219. package/dist/webui/assets/loader-circle-Bz67bJa3.js +1 -0
  220. package/dist/webui/assets/logs-CeP28848.js +1 -0
  221. package/dist/webui/assets/search-BRBIrqaX.js +1 -0
  222. package/dist/webui/assets/select-GZr6C6eZ.js +1 -0
  223. package/dist/webui/assets/select-field-CvT0SYk8.js +1 -0
  224. package/dist/webui/assets/settings-0ZdYY8g_.js +1 -0
  225. package/dist/webui/assets/submit-button-D7DKHqAq.js +1 -0
  226. package/dist/webui/assets/switch-BeMrf8sh.js +1 -0
  227. package/dist/webui/assets/switch-field-qMXHRKhx.js +1 -0
  228. package/dist/webui/assets/table-qEFWauuw.js +1 -0
  229. package/dist/webui/assets/test-tube-DhD6uWdp.js +1 -0
  230. package/dist/webui/assets/text-field-ZnKHDUks.js +1 -0
  231. package/dist/webui/assets/time-BM9K_Fbp.js +1 -0
  232. package/dist/webui/assets/trackers-BjJuAdX3.js +7 -0
  233. package/dist/webui/assets/use-form-validation-context-D2oA54L_.js +1 -0
  234. package/dist/webui/assets/use-settings-form-submit-CXwtE1sI.js +2 -0
  235. package/dist/webui/assets/useQuery-DD10sbzn.js +1 -0
  236. package/dist/webui/index.html +13 -0
  237. package/node_modules/@cross-seed/shared/dist/configSchema.d.ts +261 -0
  238. package/node_modules/@cross-seed/shared/dist/configSchema.d.ts.map +1 -0
  239. package/node_modules/@cross-seed/shared/dist/configSchema.js +53 -0
  240. package/node_modules/@cross-seed/shared/dist/configSchema.js.map +1 -0
  241. package/node_modules/@cross-seed/shared/dist/constants.d.ts +122 -0
  242. package/node_modules/@cross-seed/shared/dist/constants.d.ts.map +1 -0
  243. package/node_modules/@cross-seed/shared/dist/constants.js +127 -0
  244. package/node_modules/@cross-seed/shared/dist/constants.js.map +1 -0
  245. package/node_modules/@cross-seed/shared/dist/tsconfig.tsbuildinfo +1 -0
  246. package/node_modules/@cross-seed/shared/dist/utils.d.ts +9 -0
  247. package/node_modules/@cross-seed/shared/dist/utils.d.ts.map +1 -0
  248. package/node_modules/@cross-seed/shared/dist/utils.js +20 -0
  249. package/node_modules/@cross-seed/shared/dist/utils.js.map +1 -0
  250. package/node_modules/@cross-seed/shared/package.json +24 -0
  251. package/package.json +25 -42
  252. package/LICENSE +0 -201
  253. package/README.md +0 -34
  254. package/dist/config.template.cjs +0 -353
  255. package/dist/config.template.cjs.map +0 -1
@@ -0,0 +1,172 @@
1
+ import { ChalkInstance } from "chalk";
2
+ import type { Stats } from "fs";
3
+ import { Result } from "./Result.js";
4
+ import { File, Searchee } from "./searchee.js";
5
+ export type Awaitable<T> = T | Promise<T>;
6
+ type Truthy<T> = T extends false | "" | 0 | null | undefined ? never : T;
7
+ export type WithRequired<T, K extends keyof T> = T & {
8
+ [P in K]-?: T[P];
9
+ };
10
+ export type WithUndefined<T, K extends keyof T> = Omit<T, K> & {
11
+ [P in K]: undefined;
12
+ };
13
+ export declare function isTruthy<T>(value: T): value is Truthy<T>;
14
+ export declare function exists(srcPath: string): Promise<boolean>;
15
+ export declare function notExists(srcPath: string): Promise<boolean>;
16
+ export type DirVerificationFailureReason = "missing" | "not-directory" | "unreadable" | "unwritable";
17
+ export type DirVerificationResult = {
18
+ ok: true;
19
+ stats: Stats;
20
+ } | {
21
+ ok: false;
22
+ reason: DirVerificationFailureReason;
23
+ error?: unknown;
24
+ };
25
+ export declare function verifyDir(srcDir: string, testSrcName: string, permissions: number): Promise<DirVerificationResult>;
26
+ export declare function isChildPath(childPath: string, parentDirs: string[]): boolean;
27
+ export declare function countDirEntriesRec(dirs: string[], maxDataDepth: number): Promise<number>;
28
+ export declare function hasExt(files: File[], exts: string[]): boolean;
29
+ export declare function stripExtension(filename: string): string;
30
+ export declare function filesWithExt(files: File[], exts: string[]): File[];
31
+ export declare function findAFileWithExt(dir: string, exts: string[]): Promise<string | null>;
32
+ export declare function nMsAgo(n: number): number;
33
+ export declare function wait(n: number): Promise<void>;
34
+ /**
35
+ * Yield control to the event loop allowing all pending tasks to be processed
36
+ * regardless of the current phase.
37
+ * @param n Optional number of milliseconds to wait before yielding.
38
+ */
39
+ export declare function yieldToEventLoop(n?: number): Promise<void>;
40
+ export declare function time<R>(cb: () => Promise<R>, times: number[]): Promise<R>;
41
+ export declare function humanReadableDate(timestamp: number): string;
42
+ export declare function getLogString(searchee: Searchee, color?: ChalkInstance): string;
43
+ export declare function formatAsList(strings: string[], options: {
44
+ sort: boolean;
45
+ style?: Intl.ListFormatStyle;
46
+ type?: Intl.ListFormatType;
47
+ }): string;
48
+ /**
49
+ * This cannot be done at the log level because of too many false positives.
50
+ * The caller will need to extract the infoHash from their specific syntax.
51
+ * @param infoHash The infoHash to sanitize
52
+ */
53
+ export declare function sanitizeInfoHash(infoHash: string): string;
54
+ export declare function areMediaTitlesSimilar(a: string, b: string): boolean;
55
+ export declare function cleanseSeparators(str: string): string;
56
+ export declare function cleanTitle(title: string): string;
57
+ export declare function reformatTitleForSearching(name: string): string;
58
+ export declare function createKeyTitle(title: string): string | null;
59
+ export declare function isBadTitle(title: string): boolean;
60
+ /**
61
+ * Generates possible anime search queries from a given name.
62
+ * Only use if getMediaType returns anime as it's conditional on a few factors.
63
+ * @param stem The name without extension to generate queries from.
64
+ * @returns An array of possible search queries.
65
+ */
66
+ export declare function getAnimeQueries(stem: string): string[];
67
+ /**
68
+ * Generates possible video search queries from a given name.
69
+ * Only use if getMediaType returns video as it's conditional on a few factors.
70
+ * @param stem The name without extension to generate queries from.
71
+ * @returns An array of possible search queries.
72
+ */
73
+ export declare function getVideoQueries(stem: string): string[];
74
+ export declare function stripMetaFromName(name: string): string;
75
+ export declare function sanitizeUrl(url: string | URL): string;
76
+ export declare function getApikey(url: string): string | null;
77
+ export declare function extractCredentialsFromUrl(url: string, basePath?: string): Result<{
78
+ username: string;
79
+ password: string;
80
+ href: string;
81
+ }, "invalid URL">;
82
+ export declare const tap: (fn: any) => (value: any) => any;
83
+ export declare function fallback<T>(...args: T[]): T | undefined;
84
+ export declare function findFallback<T, U>(arr: T[], items: U[], cb: (e: T, item: U) => boolean): T | undefined;
85
+ export declare function inBatches<T>(items: T[], cb: (batch: T[]) => Promise<void>, options?: {
86
+ batchSize: number;
87
+ }): Promise<void>;
88
+ export declare function fromBatches<T, R>(items: T[], cb: (batch: T[]) => Promise<R[]>, options?: {
89
+ batchSize: number;
90
+ }): Promise<R[]>;
91
+ /**
92
+ * Makes comparators for `Array.prototype.sort`.
93
+ * Second getter will be used if the first is a tie, etc.
94
+ * Booleans are treated as 0 and 1,
95
+ * Ascending by default, use - or ! for descending.
96
+ * @param getters
97
+ */
98
+ export declare function comparing<T>(...getters: ((e: T) => number | boolean)[]): (a: T, b: T) => 0 | 1 | -1;
99
+ export declare function filterAsync<T>(arr: T[], predicate: (e: T) => Promise<boolean>): Promise<T[]>;
100
+ /**
101
+ * Filters an array asynchronously in batches, yielding to the event loop
102
+ * between batches to avoid blocking the event loop for too long.
103
+ * @param arr The array to filter.
104
+ * @param predicate The asynchronous predicate function to test each element.
105
+ * @param options.batchSize The size of each batch to process.
106
+ * @returns A promise that resolves to an array of elements that satisfy the predicate.
107
+ */
108
+ export declare function filterAsyncYield<T>(arr: T[], predicate: (e: T) => Promise<boolean>, options?: {
109
+ batchSize: number;
110
+ }): Promise<T[]>;
111
+ export declare function mapAsync<T, R>(arr: T[], cb: (e: T) => Promise<R>): Promise<R[]>;
112
+ export declare function flatMapAsync<T, R>(arr: T[], cb: (e: T) => Promise<R[]>): Promise<R[]>;
113
+ export declare function reduceAsync<T, R>(arr: T[], cb: (acc: R, cur: T, index: number, arr: T[]) => Promise<R>, initialValue: R): Promise<R>;
114
+ export declare function findAsync<T>(it: Iterable<T>, cb: (e: T) => Promise<boolean>): Promise<T | undefined>;
115
+ export declare function someAsync<T>(it: Iterable<T>, cb: (e: T) => Promise<boolean>): Promise<boolean>;
116
+ export declare function everyAsync<T>(it: Iterable<T>, cb: (e: T) => Promise<boolean>): Promise<boolean>;
117
+ /**
118
+ * Given multiple async iterables, this function will merge/interleave
119
+ * them all into one iterable, yielding on a first-come, first-serve basis.
120
+ * https://stackoverflow.com/questions/50585456/how-can-i-interleave-merge-async-iterables
121
+ */
122
+ export declare function combineAsyncIterables<T>(asyncIterables: AsyncIterable<T>[]): AsyncGenerator<T>;
123
+ export declare function capitalizeFirstLetter(string: string): string;
124
+ /**
125
+ * Replaces the last occurrence of a GLOBAL regex match in a string
126
+ * @param str The string to replace the last occurrence in
127
+ * @param globalRegExp The regex to match (must be global)
128
+ * @param newStr The string to replace the last occurrence with
129
+ */
130
+ export declare function replaceLastOccurrence(str: string, globalRegExp: RegExp, newStr: string): string;
131
+ export declare function escapeUnescapedQuotesInJsonValues(jsonStr: string): string;
132
+ export declare function extractInt(str: string): number;
133
+ export declare function getPathParts(pathStr: string, dirnameFunc?: (path: string) => string): string[];
134
+ export declare enum Mutex {
135
+ INDEX_TORRENTS_AND_DATA_DIRS = "INDEX_TORRENTS_AND_DATA_DIRS",
136
+ CHECK_JOBS = "CHECK_JOBS",
137
+ CREATE_ALL_SEARCHEES = "CREATE_ALL_SEARCHEES",
138
+ GUID_INFO_HASH_MAP = "GUID_INFO_HASH_MAP",
139
+ CLIENT_INJECTION = "CLIENT_INJECTION"
140
+ }
141
+ /**
142
+ * Executes a callback function within a mutex for the given name.
143
+ * @param name The name of the mutex to create/use.
144
+ * @param options.useQueue If false, concurrent calls will share the pending result.
145
+ * @param cb The callback to execute.
146
+ * @returns The result of the callback.
147
+ */
148
+ export declare function withMutex<T>(name: Mutex, options: {
149
+ useQueue: boolean;
150
+ }, cb: () => Promise<T>): Promise<T>;
151
+ /**
152
+ * An async safe semaphore implementation that preserves FIFO order.
153
+ * It uses an id for release to allow multiple releases (e.g try/finally with early releases).
154
+ * @param options.permits The number of concurrent permits.
155
+ * @param options.lifetimeMs Maximum lifetime of an acquire before automatic release.
156
+ */
157
+ export declare class AsyncSemaphore {
158
+ private permits;
159
+ private lifetimeMs?;
160
+ private acquired;
161
+ private timers;
162
+ private waiting;
163
+ private counter;
164
+ private getNextId;
165
+ constructor(options: {
166
+ permits: number;
167
+ lifetimeMs?: number;
168
+ });
169
+ acquire(): Promise<number>;
170
+ release(id: number): void;
171
+ }
172
+ export {};
package/dist/utils.js CHANGED
@@ -29,53 +29,76 @@ export async function notExists(srcPath) {
29
29
  }
30
30
  }
31
31
  export async function verifyDir(srcDir, testSrcName, permissions) {
32
- try {
33
- if (await notExists(srcDir)) {
34
- throw new Error("does not exist");
32
+ const logMissing = (message) => {
33
+ logger.error(`\tYour ${testSrcName} "${srcDir}" is not a valid directory on the filesystem: ${message}.`);
34
+ if (path.sep === "\\" &&
35
+ !srcDir.includes("\\") &&
36
+ !srcDir.includes("/")) {
37
+ logger.error("\tIt may not be formatted properly for Windows.\n" +
38
+ '\t\t\t\tMake sure to use "\\\\" or "/" for directory separators.');
35
39
  }
36
- if (!(await stat(srcDir)).isDirectory()) {
37
- throw new Error("not a directory");
40
+ };
41
+ const logPermissions = (message) => {
42
+ logger.error(`\tYour ${testSrcName} "${srcDir}" has invalid permissions: ${message}.`);
43
+ };
44
+ if (await notExists(srcDir)) {
45
+ logMissing("does not exist.");
46
+ return { ok: false, reason: "missing" };
47
+ }
48
+ let stats;
49
+ try {
50
+ stats = await stat(srcDir);
51
+ }
52
+ catch (error) {
53
+ const err = error;
54
+ if (err?.code === "ENOENT") {
55
+ logMissing(err.message ?? "does not exist.");
56
+ return { ok: false, reason: "missing", error };
38
57
  }
39
- if (permissions & constants.R_OK) {
40
- try {
41
- await readdir(srcDir);
42
- }
43
- catch (e) {
44
- logger.debug(e);
45
- throw new Error("no read permissions");
46
- }
58
+ logPermissions(err?.message ?? "stat failed.");
59
+ return { ok: false, reason: "unreadable", error };
60
+ }
61
+ if (!stats.isDirectory()) {
62
+ logger.error(`\tYour ${testSrcName} "${srcDir}" is not a directory on the filesystem.`);
63
+ return { ok: false, reason: "not-directory" };
64
+ }
65
+ if (permissions & constants.R_OK) {
66
+ try {
67
+ await readdir(srcDir);
47
68
  }
48
- if (permissions & constants.W_OK) {
49
- const tempFile = path.join(srcDir, testSrcName);
50
- try {
51
- await writeFile(tempFile, testSrcName);
52
- if (await notExists(tempFile)) {
53
- throw new Error("no write permissions - could not verify test file");
54
- }
55
- await unlink(tempFile);
56
- }
57
- catch (e) {
58
- logger.debug(e);
59
- throw new Error("no write permissions");
60
- }
69
+ catch (error) {
70
+ logger.debug(error);
71
+ logPermissions("no read permissions.");
72
+ return { ok: false, reason: "unreadable", error };
61
73
  }
62
- return true;
63
74
  }
64
- catch (e) {
65
- if (e.code === "ENOENT") {
66
- logger.error(`\tYour ${testSrcName} "${srcDir}" is not a valid directory on the filesystem: ${e.message}.`);
67
- if (path.sep === "\\" &&
68
- !srcDir.includes("\\") &&
69
- !srcDir.includes("/")) {
70
- logger.error("\tIt may not be formatted properly for Windows.\n" +
71
- '\t\t\t\tMake sure to use "\\\\" or "/" for directory separators.');
75
+ if (permissions & constants.W_OK) {
76
+ const tempFile = path.join(srcDir, testSrcName);
77
+ try {
78
+ await writeFile(tempFile, testSrcName);
79
+ if (await notExists(tempFile)) {
80
+ logPermissions("no write permissions - could not verify test file.");
81
+ return { ok: false, reason: "unwritable" };
72
82
  }
83
+ await unlink(tempFile);
73
84
  }
74
- else {
75
- logger.error(`\tYour ${testSrcName} "${srcDir}" has invalid permissions: ${e.message}.`);
85
+ catch (error) {
86
+ logger.debug(error);
87
+ logPermissions("no write permissions.");
88
+ return { ok: false, reason: "unwritable", error };
76
89
  }
77
90
  }
78
- return false;
91
+ return { ok: true, stats };
92
+ }
93
+ export function isChildPath(childPath, parentDirs) {
94
+ return parentDirs.some((parentDir) => {
95
+ const resolvedParent = path.resolve(parentDir);
96
+ const resolvedChild = path.resolve(childPath);
97
+ const relativePath = path.relative(resolvedParent, resolvedChild);
98
+ return (relativePath.length > 0 &&
99
+ !relativePath.startsWith("..") &&
100
+ !path.isAbsolute(relativePath));
101
+ });
79
102
  }
80
103
  export async function countDirEntriesRec(dirs, maxDataDepth) {
81
104
  if (maxDataDepth === 0)
@@ -154,18 +177,6 @@ export async function time(cb, times) {
154
177
  export function humanReadableDate(timestamp) {
155
178
  return new Date(timestamp).toLocaleString("sv");
156
179
  }
157
- export function humanReadableSize(bytes, options) {
158
- if (bytes === 0)
159
- return "0 B";
160
- const k = options?.binary ? 1024 : 1000;
161
- const sizes = options?.binary
162
- ? ["B", "KiB", "MiB", "GiB", "TiB"]
163
- : ["B", "kB", "MB", "GB", "TB"];
164
- // engineering notation: (coefficient) * 1000 ^ (exponent)
165
- const exponent = Math.floor(Math.log(Math.abs(bytes)) / Math.log(k));
166
- const coefficient = bytes / Math.pow(k, exponent);
167
- return `${parseFloat(coefficient.toFixed(2))} ${sizes[exponent]}`;
168
- }
169
180
  export function getLogString(searchee, color = chalk.reset) {
170
181
  if (searchee.title === searchee.name) {
171
182
  return searchee.infoHash || searchee.clientHost
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import{j as s}from"./index-Ncy0-Qo7.js";const l=({fieldMeta:r})=>r&&r.errors&&r.errors.length>0?s.jsx(s.Fragment,{children:s.jsx("span",{className:"text-sm text-red-600",children:r.errors.map((n,t)=>typeof n=="object"&&n!==null?s.jsx("span",{children:n?.message||JSON.stringify(n)},t):s.jsx("span",{children:n},t))})}):null;export{l as F};
@@ -0,0 +1 @@
1
+ import{Y as Ct,c as xe,r as s,j as a,Z as re,b as ae,$ as L,f as j,a0 as ve,d as A,g as h,e as Ne,a1 as Me,a2 as Te,a3 as _t,a4 as Rt,P as se,a5 as bt,a6 as It,a7 as yt,a8 as St,a9 as Et,aa as Pt,ab as Dt,ac as Nt,ad as Tt,i as O,ae as jt,B as At,af as Ot,S as kt}from"./index-Ncy0-Qo7.js";function Ft(e){return Ct({select:t=>t.location})}const Lt=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Gt=xe("ChevronRight",Lt);const Kt=[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]],$t=xe("Moon",Kt);const Bt=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],Ut=xe("Sun",Bt);function Pe(e){const t=Vt(e),n=s.forwardRef((o,r)=>{const{children:c,...i}=o,u=s.Children.toArray(c),p=u.find(Yt);if(p){const f=p.props.children,d=u.map(l=>l===p?s.Children.count(f)>1?s.Children.only(null):s.isValidElement(f)?f.props.children:null:l);return a.jsx(t,{...i,ref:r,children:s.isValidElement(f)?s.cloneElement(f,void 0,d):null})}return a.jsx(t,{...i,ref:r,children:c})});return n.displayName=`${e}.Slot`,n}function Vt(e){const t=s.forwardRef((n,o)=>{const{children:r,...c}=n;if(s.isValidElement(r)){const i=Ht(r),u=zt(c,r.props);return r.type!==s.Fragment&&(u.ref=o?re(o,i):i),s.cloneElement(r,u)}return s.Children.count(r)>1?s.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Wt=Symbol("radix.slottable");function Yt(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Wt}function zt(e,t){const n={...t};for(const o in t){const r=e[o],c=t[o];/^on[A-Z]/.test(o)?r&&c?n[o]=(...u)=>{const p=c(...u);return r(...u),p}:r&&(n[o]=r):o==="style"?n[o]={...r,...c}:o==="className"&&(n[o]=[r,c].filter(Boolean).join(" "))}return{...e,...n}}function Ht(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function je(e){const t=e+"CollectionProvider",[n,o]=ae(t),[r,c]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=_=>{const{scope:g,children:M}=_,y=L.useRef(null),w=L.useRef(new Map).current;return a.jsx(r,{scope:g,itemMap:w,collectionRef:y,children:M})};i.displayName=t;const u=e+"CollectionSlot",p=Pe(u),f=L.forwardRef((_,g)=>{const{scope:M,children:y}=_,w=c(u,M),R=j(g,w.collectionRef);return a.jsx(p,{ref:R,children:y})});f.displayName=u;const d=e+"CollectionItemSlot",l="data-radix-collection-item",v=Pe(d),C=L.forwardRef((_,g)=>{const{scope:M,children:y,...w}=_,R=L.useRef(null),T=j(g,R),P=c(d,M);return L.useEffect(()=>(P.itemMap.set(R,{ref:R,...w}),()=>void P.itemMap.delete(R))),a.jsx(v,{[l]:"",ref:T,children:y})});C.displayName=d;function x(_){const g=c(e+"CollectionConsumer",_);return L.useCallback(()=>{const y=g.collectionRef.current;if(!y)return[];const w=Array.from(y.querySelectorAll(`[${l}]`));return Array.from(g.itemMap.values()).sort((P,D)=>w.indexOf(P.ref.current)-w.indexOf(D.ref.current))},[g.collectionRef,g.itemMap])}return[{Provider:i,Slot:f,ItemSlot:C},x,o]}var Xt=s.createContext(void 0);function Ae(e){const t=s.useContext(Xt);return e||t||"ltr"}var pe="rovingFocusGroup.onEntryFocus",Zt={bubbles:!1,cancelable:!0},q="RovingFocusGroup",[ge,Oe,qt]=je(q),[Jt,ke]=ae(q,[qt]),[Qt,en]=Jt(q),Fe=s.forwardRef((e,t)=>a.jsx(ge.Provider,{scope:e.__scopeRovingFocusGroup,children:a.jsx(ge.Slot,{scope:e.__scopeRovingFocusGroup,children:a.jsx(tn,{...e,ref:t})})}));Fe.displayName=q;var tn=s.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:o,loop:r=!1,dir:c,currentTabStopId:i,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:p,onEntryFocus:f,preventScrollOnEntryFocus:d=!1,...l}=e,v=s.useRef(null),C=j(t,v),x=Ae(c),[_,g]=Ne({prop:i,defaultProp:u??null,onChange:p,caller:q}),[M,y]=s.useState(!1),w=Me(f),R=Oe(n),T=s.useRef(!1),[P,D]=s.useState(0);return s.useEffect(()=>{const b=v.current;if(b)return b.addEventListener(pe,w),()=>b.removeEventListener(pe,w)},[w]),a.jsx(Qt,{scope:n,orientation:o,dir:x,loop:r,currentTabStopId:_,onItemFocus:s.useCallback(b=>g(b),[g]),onItemShiftTab:s.useCallback(()=>y(!0),[]),onFocusableItemAdd:s.useCallback(()=>D(b=>b+1),[]),onFocusableItemRemove:s.useCallback(()=>D(b=>b-1),[]),children:a.jsx(A.div,{tabIndex:M||P===0?-1:0,"data-orientation":o,...l,ref:C,style:{outline:"none",...e.style},onMouseDown:h(e.onMouseDown,()=>{T.current=!0}),onFocus:h(e.onFocus,b=>{const $=!T.current;if(b.target===b.currentTarget&&$&&!M){const k=new CustomEvent(pe,Zt);if(b.currentTarget.dispatchEvent(k),!k.defaultPrevented){const V=R().filter(N=>N.focusable),W=V.find(N=>N.active),ee=V.find(N=>N.id===_),le=[W,ee,...V].filter(Boolean).map(N=>N.ref.current);Ke(le,d)}}T.current=!1}),onBlur:h(e.onBlur,()=>y(!1))})})}),Le="RovingFocusGroupItem",Ge=s.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:o=!0,active:r=!1,tabStopId:c,children:i,...u}=e,p=ve(),f=c||p,d=en(Le,n),l=d.currentTabStopId===f,v=Oe(n),{onFocusableItemAdd:C,onFocusableItemRemove:x,currentTabStopId:_}=d;return s.useEffect(()=>{if(o)return C(),()=>x()},[o,C,x]),a.jsx(ge.ItemSlot,{scope:n,id:f,focusable:o,active:r,children:a.jsx(A.span,{tabIndex:l?0:-1,"data-orientation":d.orientation,...u,ref:t,onMouseDown:h(e.onMouseDown,g=>{o?d.onItemFocus(f):g.preventDefault()}),onFocus:h(e.onFocus,()=>d.onItemFocus(f)),onKeyDown:h(e.onKeyDown,g=>{if(g.key==="Tab"&&g.shiftKey){d.onItemShiftTab();return}if(g.target!==g.currentTarget)return;const M=rn(g,d.orientation,d.dir);if(M!==void 0){if(g.metaKey||g.ctrlKey||g.altKey||g.shiftKey)return;g.preventDefault();let w=v().filter(R=>R.focusable).map(R=>R.ref.current);if(M==="last")w.reverse();else if(M==="prev"||M==="next"){M==="prev"&&w.reverse();const R=w.indexOf(g.currentTarget);w=d.loop?an(w,R+1):w.slice(R+1)}setTimeout(()=>Ke(w))}}),children:typeof i=="function"?i({isCurrentTabStop:l,hasTabStop:_!=null}):i})})});Ge.displayName=Le;var nn={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function on(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function rn(e,t,n){const o=on(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return nn[o]}function Ke(e,t=!1){const n=document.activeElement;for(const o of e)if(o===n||(o.focus({preventScroll:t}),document.activeElement!==n))return}function an(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var sn=Fe,cn=Ge;function un(e){const t=ln(e),n=s.forwardRef((o,r)=>{const{children:c,...i}=o,u=s.Children.toArray(c),p=u.find(fn);if(p){const f=p.props.children,d=u.map(l=>l===p?s.Children.count(f)>1?s.Children.only(null):s.isValidElement(f)?f.props.children:null:l);return a.jsx(t,{...i,ref:r,children:s.isValidElement(f)?s.cloneElement(f,void 0,d):null})}return a.jsx(t,{...i,ref:r,children:c})});return n.displayName=`${e}.Slot`,n}function ln(e){const t=s.forwardRef((n,o)=>{const{children:r,...c}=n;if(s.isValidElement(r)){const i=mn(r),u=pn(c,r.props);return r.type!==s.Fragment&&(u.ref=o?re(o,i):i),s.cloneElement(r,u)}return s.Children.count(r)>1?s.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var dn=Symbol("radix.slottable");function fn(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===dn}function pn(e,t){const n={...t};for(const o in t){const r=e[o],c=t[o];/^on[A-Z]/.test(o)?r&&c?n[o]=(...u)=>{const p=c(...u);return r(...u),p}:r&&(n[o]=r):o==="style"?n[o]={...r,...c}:o==="className"&&(n[o]=[r,c].filter(Boolean).join(" "))}return{...e,...n}}function mn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var he=["Enter"," "],vn=["ArrowDown","PageUp","Home"],$e=["ArrowUp","PageDown","End"],gn=[...vn,...$e],hn={ltr:[...he,"ArrowRight"],rtl:[...he,"ArrowLeft"]},xn={ltr:["ArrowLeft"],rtl:["ArrowRight"]},J="Menu",[X,Mn,wn]=je(J),[G,Be]=ae(J,[wn,Te,ke]),ce=Te(),Ue=ke(),[Cn,K]=G(J),[_n,Q]=G(J),Ve=e=>{const{__scopeMenu:t,open:n=!1,children:o,dir:r,onOpenChange:c,modal:i=!0}=e,u=ce(t),[p,f]=s.useState(null),d=s.useRef(!1),l=Me(c),v=Ae(r);return s.useEffect(()=>{const C=()=>{d.current=!0,document.addEventListener("pointerdown",x,{capture:!0,once:!0}),document.addEventListener("pointermove",x,{capture:!0,once:!0})},x=()=>d.current=!1;return document.addEventListener("keydown",C,{capture:!0}),()=>{document.removeEventListener("keydown",C,{capture:!0}),document.removeEventListener("pointerdown",x,{capture:!0}),document.removeEventListener("pointermove",x,{capture:!0})}},[]),a.jsx(_t,{...u,children:a.jsx(Cn,{scope:t,open:n,onOpenChange:l,content:p,onContentChange:f,children:a.jsx(_n,{scope:t,onClose:s.useCallback(()=>l(!1),[l]),isUsingKeyboardRef:d,dir:v,modal:i,children:o})})})};Ve.displayName=J;var Rn="MenuAnchor",we=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e,r=ce(n);return a.jsx(Rt,{...r,...o,ref:t})});we.displayName=Rn;var Ce="MenuPortal",[bn,We]=G(Ce,{forceMount:void 0}),Ye=e=>{const{__scopeMenu:t,forceMount:n,children:o,container:r}=e,c=K(Ce,t);return a.jsx(bn,{scope:t,forceMount:n,children:a.jsx(se,{present:n||c.open,children:a.jsx(bt,{asChild:!0,container:r,children:o})})})};Ye.displayName=Ce;var E="MenuContent",[In,_e]=G(E),ze=s.forwardRef((e,t)=>{const n=We(E,e.__scopeMenu),{forceMount:o=n.forceMount,...r}=e,c=K(E,e.__scopeMenu),i=Q(E,e.__scopeMenu);return a.jsx(X.Provider,{scope:e.__scopeMenu,children:a.jsx(se,{present:o||c.open,children:a.jsx(X.Slot,{scope:e.__scopeMenu,children:i.modal?a.jsx(yn,{...r,ref:t}):a.jsx(Sn,{...r,ref:t})})})})}),yn=s.forwardRef((e,t)=>{const n=K(E,e.__scopeMenu),o=s.useRef(null),r=j(t,o);return s.useEffect(()=>{const c=o.current;if(c)return It(c)},[]),a.jsx(Re,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:h(e.onFocusOutside,c=>c.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),Sn=s.forwardRef((e,t)=>{const n=K(E,e.__scopeMenu);return a.jsx(Re,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),En=un("MenuContent.ScrollLock"),Re=s.forwardRef((e,t)=>{const{__scopeMenu:n,loop:o=!1,trapFocus:r,onOpenAutoFocus:c,onCloseAutoFocus:i,disableOutsidePointerEvents:u,onEntryFocus:p,onEscapeKeyDown:f,onPointerDownOutside:d,onFocusOutside:l,onInteractOutside:v,onDismiss:C,disableOutsideScroll:x,..._}=e,g=K(E,n),M=Q(E,n),y=ce(n),w=Ue(n),R=Mn(n),[T,P]=s.useState(null),D=s.useRef(null),b=j(t,D,g.onContentChange),$=s.useRef(0),k=s.useRef(""),V=s.useRef(0),W=s.useRef(null),ee=s.useRef("right"),te=s.useRef(0),le=x?Et:s.Fragment,N=x?{as:En,allowPinchZoom:!0}:void 0,wt=m=>{const U=k.current+m,F=R().filter(S=>!S.disabled),Y=document.activeElement,de=F.find(S=>S.ref.current===Y)?.textValue,fe=F.map(S=>S.textValue),Se=Kn(fe,U,de),z=F.find(S=>S.textValue===Se)?.ref.current;(function S(Ee){k.current=Ee,window.clearTimeout($.current),Ee!==""&&($.current=window.setTimeout(()=>S(""),1e3))})(U),z&&setTimeout(()=>z.focus())};s.useEffect(()=>()=>window.clearTimeout($.current),[]),St();const B=s.useCallback(m=>ee.current===W.current?.side&&Bn(m,W.current?.area),[]);return a.jsx(In,{scope:n,searchRef:k,onItemEnter:s.useCallback(m=>{B(m)&&m.preventDefault()},[B]),onItemLeave:s.useCallback(m=>{B(m)||(D.current?.focus(),P(null))},[B]),onTriggerLeave:s.useCallback(m=>{B(m)&&m.preventDefault()},[B]),pointerGraceTimerRef:V,onPointerGraceIntentChange:s.useCallback(m=>{W.current=m},[]),children:a.jsx(le,{...N,children:a.jsx(Pt,{asChild:!0,trapped:r,onMountAutoFocus:h(c,m=>{m.preventDefault(),D.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:a.jsx(Dt,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:d,onFocusOutside:l,onInteractOutside:v,onDismiss:C,children:a.jsx(sn,{asChild:!0,...w,dir:M.dir,orientation:"vertical",loop:o,currentTabStopId:T,onCurrentTabStopIdChange:P,onEntryFocus:h(p,m=>{M.isUsingKeyboardRef.current||m.preventDefault()}),preventScrollOnEntryFocus:!0,children:a.jsx(Nt,{role:"menu","aria-orientation":"vertical","data-state":ut(g.open),"data-radix-menu-content":"",dir:M.dir,...y,..._,ref:b,style:{outline:"none",..._.style},onKeyDown:h(_.onKeyDown,m=>{const F=m.target.closest("[data-radix-menu-content]")===m.currentTarget,Y=m.ctrlKey||m.altKey||m.metaKey,de=m.key.length===1;F&&(m.key==="Tab"&&m.preventDefault(),!Y&&de&&wt(m.key));const fe=D.current;if(m.target!==fe||!gn.includes(m.key))return;m.preventDefault();const z=R().filter(S=>!S.disabled).map(S=>S.ref.current);$e.includes(m.key)&&z.reverse(),Ln(z)}),onBlur:h(e.onBlur,m=>{m.currentTarget.contains(m.target)||(window.clearTimeout($.current),k.current="")}),onPointerMove:h(e.onPointerMove,Z(m=>{const U=m.target,F=te.current!==m.clientX;if(m.currentTarget.contains(U)&&F){const Y=m.clientX>te.current?"right":"left";ee.current=Y,te.current=m.clientX}}))})})})})})})});ze.displayName=E;var Pn="MenuGroup",be=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return a.jsx(A.div,{role:"group",...o,ref:t})});be.displayName=Pn;var Dn="MenuLabel",He=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return a.jsx(A.div,{...o,ref:t})});He.displayName=Dn;var ne="MenuItem",De="menu.itemSelect",ie=s.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:o,...r}=e,c=s.useRef(null),i=Q(ne,e.__scopeMenu),u=_e(ne,e.__scopeMenu),p=j(t,c),f=s.useRef(!1),d=()=>{const l=c.current;if(!n&&l){const v=new CustomEvent(De,{bubbles:!0,cancelable:!0});l.addEventListener(De,C=>o?.(C),{once:!0}),yt(l,v),v.defaultPrevented?f.current=!1:i.onClose()}};return a.jsx(Xe,{...r,ref:p,disabled:n,onClick:h(e.onClick,d),onPointerDown:l=>{e.onPointerDown?.(l),f.current=!0},onPointerUp:h(e.onPointerUp,l=>{f.current||l.currentTarget?.click()}),onKeyDown:h(e.onKeyDown,l=>{const v=u.searchRef.current!=="";n||v&&l.key===" "||he.includes(l.key)&&(l.currentTarget.click(),l.preventDefault())})})});ie.displayName=ne;var Xe=s.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:o=!1,textValue:r,...c}=e,i=_e(ne,n),u=Ue(n),p=s.useRef(null),f=j(t,p),[d,l]=s.useState(!1),[v,C]=s.useState("");return s.useEffect(()=>{const x=p.current;x&&C((x.textContent??"").trim())},[c.children]),a.jsx(X.ItemSlot,{scope:n,disabled:o,textValue:r??v,children:a.jsx(cn,{asChild:!0,...u,focusable:!o,children:a.jsx(A.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...c,ref:f,onPointerMove:h(e.onPointerMove,Z(x=>{o?i.onItemLeave(x):(i.onItemEnter(x),x.defaultPrevented||x.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:h(e.onPointerLeave,Z(x=>i.onItemLeave(x))),onFocus:h(e.onFocus,()=>l(!0)),onBlur:h(e.onBlur,()=>l(!1))})})})}),Nn="MenuCheckboxItem",Ze=s.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:o,...r}=e;return a.jsx(tt,{scope:e.__scopeMenu,checked:n,children:a.jsx(ie,{role:"menuitemcheckbox","aria-checked":oe(n)?"mixed":n,...r,ref:t,"data-state":ye(n),onSelect:h(r.onSelect,()=>o?.(oe(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Ze.displayName=Nn;var qe="MenuRadioGroup",[Tn,jn]=G(qe,{value:void 0,onValueChange:()=>{}}),Je=s.forwardRef((e,t)=>{const{value:n,onValueChange:o,...r}=e,c=Me(o);return a.jsx(Tn,{scope:e.__scopeMenu,value:n,onValueChange:c,children:a.jsx(be,{...r,ref:t})})});Je.displayName=qe;var Qe="MenuRadioItem",et=s.forwardRef((e,t)=>{const{value:n,...o}=e,r=jn(Qe,e.__scopeMenu),c=n===r.value;return a.jsx(tt,{scope:e.__scopeMenu,checked:c,children:a.jsx(ie,{role:"menuitemradio","aria-checked":c,...o,ref:t,"data-state":ye(c),onSelect:h(o.onSelect,()=>r.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});et.displayName=Qe;var Ie="MenuItemIndicator",[tt,An]=G(Ie,{checked:!1}),nt=s.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:o,...r}=e,c=An(Ie,n);return a.jsx(se,{present:o||oe(c.checked)||c.checked===!0,children:a.jsx(A.span,{...r,ref:t,"data-state":ye(c.checked)})})});nt.displayName=Ie;var On="MenuSeparator",ot=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e;return a.jsx(A.div,{role:"separator","aria-orientation":"horizontal",...o,ref:t})});ot.displayName=On;var kn="MenuArrow",rt=s.forwardRef((e,t)=>{const{__scopeMenu:n,...o}=e,r=ce(n);return a.jsx(Tt,{...r,...o,ref:t})});rt.displayName=kn;var Fn="MenuSub",[Vo,at]=G(Fn),H="MenuSubTrigger",st=s.forwardRef((e,t)=>{const n=K(H,e.__scopeMenu),o=Q(H,e.__scopeMenu),r=at(H,e.__scopeMenu),c=_e(H,e.__scopeMenu),i=s.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:p}=c,f={__scopeMenu:e.__scopeMenu},d=s.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return s.useEffect(()=>d,[d]),s.useEffect(()=>{const l=u.current;return()=>{window.clearTimeout(l),p(null)}},[u,p]),a.jsx(we,{asChild:!0,...f,children:a.jsx(Xe,{id:r.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":r.contentId,"data-state":ut(n.open),...e,ref:re(t,r.onTriggerChange),onClick:l=>{e.onClick?.(l),!(e.disabled||l.defaultPrevented)&&(l.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:h(e.onPointerMove,Z(l=>{c.onItemEnter(l),!l.defaultPrevented&&!e.disabled&&!n.open&&!i.current&&(c.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:h(e.onPointerLeave,Z(l=>{d();const v=n.content?.getBoundingClientRect();if(v){const C=n.content?.dataset.side,x=C==="right",_=x?-5:5,g=v[x?"left":"right"],M=v[x?"right":"left"];c.onPointerGraceIntentChange({area:[{x:l.clientX+_,y:l.clientY},{x:g,y:v.top},{x:M,y:v.top},{x:M,y:v.bottom},{x:g,y:v.bottom}],side:C}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>c.onPointerGraceIntentChange(null),300)}else{if(c.onTriggerLeave(l),l.defaultPrevented)return;c.onPointerGraceIntentChange(null)}})),onKeyDown:h(e.onKeyDown,l=>{const v=c.searchRef.current!=="";e.disabled||v&&l.key===" "||hn[o.dir].includes(l.key)&&(n.onOpenChange(!0),n.content?.focus(),l.preventDefault())})})})});st.displayName=H;var ct="MenuSubContent",it=s.forwardRef((e,t)=>{const n=We(E,e.__scopeMenu),{forceMount:o=n.forceMount,...r}=e,c=K(E,e.__scopeMenu),i=Q(E,e.__scopeMenu),u=at(ct,e.__scopeMenu),p=s.useRef(null),f=j(t,p);return a.jsx(X.Provider,{scope:e.__scopeMenu,children:a.jsx(se,{present:o||c.open,children:a.jsx(X.Slot,{scope:e.__scopeMenu,children:a.jsx(Re,{id:u.contentId,"aria-labelledby":u.triggerId,...r,ref:f,align:"start",side:i.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{i.isUsingKeyboardRef.current&&p.current?.focus(),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:h(e.onFocusOutside,d=>{d.target!==u.trigger&&c.onOpenChange(!1)}),onEscapeKeyDown:h(e.onEscapeKeyDown,d=>{i.onClose(),d.preventDefault()}),onKeyDown:h(e.onKeyDown,d=>{const l=d.currentTarget.contains(d.target),v=xn[i.dir].includes(d.key);l&&v&&(c.onOpenChange(!1),u.trigger?.focus(),d.preventDefault())})})})})})});it.displayName=ct;function ut(e){return e?"open":"closed"}function oe(e){return e==="indeterminate"}function ye(e){return oe(e)?"indeterminate":e?"checked":"unchecked"}function Ln(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Gn(e,t){return e.map((n,o)=>e[(t+o)%e.length])}function Kn(e,t,n){const r=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,c=n?e.indexOf(n):-1;let i=Gn(e,Math.max(c,0));r.length===1&&(i=i.filter(f=>f!==n));const p=i.find(f=>f.toLowerCase().startsWith(r.toLowerCase()));return p!==n?p:void 0}function $n(e,t){const{x:n,y:o}=e;let r=!1;for(let c=0,i=t.length-1;c<t.length;i=c++){const u=t[c],p=t[i],f=u.x,d=u.y,l=p.x,v=p.y;d>o!=v>o&&n<(l-f)*(o-d)/(v-d)+f&&(r=!r)}return r}function Bn(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return $n(n,t)}function Z(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Un=Ve,Vn=we,Wn=Ye,Yn=ze,zn=be,Hn=He,Xn=ie,Zn=Ze,qn=Je,Jn=et,Qn=nt,eo=ot,to=rt,no=st,oo=it,ue="DropdownMenu",[ro]=ae(ue,[Be]),I=Be(),[ao,lt]=ro(ue),dt=e=>{const{__scopeDropdownMenu:t,children:n,dir:o,open:r,defaultOpen:c,onOpenChange:i,modal:u=!0}=e,p=I(t),f=s.useRef(null),[d,l]=Ne({prop:r,defaultProp:c??!1,onChange:i,caller:ue});return a.jsx(ao,{scope:t,triggerId:ve(),triggerRef:f,contentId:ve(),open:d,onOpenChange:l,onOpenToggle:s.useCallback(()=>l(v=>!v),[l]),modal:u,children:a.jsx(Un,{...p,open:d,onOpenChange:l,dir:o,modal:u,children:n})})};dt.displayName=ue;var ft="DropdownMenuTrigger",pt=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:o=!1,...r}=e,c=lt(ft,n),i=I(n);return a.jsx(Vn,{asChild:!0,...i,children:a.jsx(A.button,{type:"button",id:c.triggerId,"aria-haspopup":"menu","aria-expanded":c.open,"aria-controls":c.open?c.contentId:void 0,"data-state":c.open?"open":"closed","data-disabled":o?"":void 0,disabled:o,...r,ref:re(t,c.triggerRef),onPointerDown:h(e.onPointerDown,u=>{!o&&u.button===0&&u.ctrlKey===!1&&(c.onOpenToggle(),c.open||u.preventDefault())}),onKeyDown:h(e.onKeyDown,u=>{o||(["Enter"," "].includes(u.key)&&c.onOpenToggle(),u.key==="ArrowDown"&&c.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(u.key)&&u.preventDefault())})})})});pt.displayName=ft;var so="DropdownMenuPortal",mt=e=>{const{__scopeDropdownMenu:t,...n}=e,o=I(t);return a.jsx(Wn,{...o,...n})};mt.displayName=so;var vt="DropdownMenuContent",gt=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=lt(vt,n),c=I(n),i=s.useRef(!1);return a.jsx(Yn,{id:r.contentId,"aria-labelledby":r.triggerId,...c,...o,ref:t,onCloseAutoFocus:h(e.onCloseAutoFocus,u=>{i.current||r.triggerRef.current?.focus(),i.current=!1,u.preventDefault()}),onInteractOutside:h(e.onInteractOutside,u=>{const p=u.detail.originalEvent,f=p.button===0&&p.ctrlKey===!0,d=p.button===2||f;(!r.modal||d)&&(i.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});gt.displayName=vt;var co="DropdownMenuGroup",io=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(zn,{...r,...o,ref:t})});io.displayName=co;var uo="DropdownMenuLabel",ht=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Hn,{...r,...o,ref:t})});ht.displayName=uo;var lo="DropdownMenuItem",xt=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Xn,{...r,...o,ref:t})});xt.displayName=lo;var fo="DropdownMenuCheckboxItem",po=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Zn,{...r,...o,ref:t})});po.displayName=fo;var mo="DropdownMenuRadioGroup",vo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(qn,{...r,...o,ref:t})});vo.displayName=mo;var go="DropdownMenuRadioItem",ho=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Jn,{...r,...o,ref:t})});ho.displayName=go;var xo="DropdownMenuItemIndicator",Mo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(Qn,{...r,...o,ref:t})});Mo.displayName=xo;var wo="DropdownMenuSeparator",Mt=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(eo,{...r,...o,ref:t})});Mt.displayName=wo;var Co="DropdownMenuArrow",_o=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(to,{...r,...o,ref:t})});_o.displayName=Co;var Ro="DropdownMenuSubTrigger",bo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(no,{...r,...o,ref:t})});bo.displayName=Ro;var Io="DropdownMenuSubContent",yo=s.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=I(n);return a.jsx(oo,{...r,...o,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});yo.displayName=Io;var So=dt,Eo=pt,Po=mt,Do=gt,No=ht,To=xt,jo=Mt;function Ao({...e}){return a.jsx(So,{"data-slot":"dropdown-menu",...e})}function Oo({...e}){return a.jsx(Eo,{"data-slot":"dropdown-menu-trigger",...e})}function ko({className:e,sideOffset:t=4,...n}){return a.jsx(Po,{children:a.jsx(Do,{"data-slot":"dropdown-menu-content",sideOffset:t,className:O("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",e),...n})})}function me({className:e,inset:t,variant:n="default",...o}){return a.jsx(To,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":n,className:O("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...o})}function Wo({className:e,inset:t,...n}){return a.jsx(No,{"data-slot":"dropdown-menu-label","data-inset":t,className:O("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",e),...n})}function Yo({className:e,...t}){return a.jsx(jo,{"data-slot":"dropdown-menu-separator",className:O("bg-border -mx-1 my-1 h-px",e),...t})}const Fo=({className:e})=>{const{setTheme:t}=jt();return a.jsxs(Ao,{children:[a.jsx(Oo,{asChild:!0,children:a.jsxs(At,{variant:"ghost",size:"icon",className:e,children:[a.jsx(Ut,{className:"h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),a.jsx($t,{className:"absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"}),a.jsx("span",{className:"sr-only",children:"Toggle theme"})]})}),a.jsxs(ko,{children:[a.jsx(me,{onClick:()=>t("light"),children:"Light"}),a.jsx(me,{onClick:()=>t("dark"),children:"Dark"}),a.jsx(me,{onClick:()=>t("system"),children:"System"})]})]})};function Lo({...e}){return a.jsx("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...e})}function Go({className:e,...t}){return a.jsx("ol",{"data-slot":"breadcrumb-list",className:O("text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",e),...t})}function Ko({className:e,...t}){return a.jsx("li",{"data-slot":"breadcrumb-item",className:O("inline-flex items-center gap-1.5",e),...t})}function $o({className:e,...t}){return a.jsx("span",{"data-slot":"breadcrumb-page",role:"link","aria-disabled":"true","aria-current":"page",className:O("text-foreground font-normal",e),...t})}function Bo({children:e,className:t,...n}){return a.jsx("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:O("[&>svg]:size-3.5",t),...n,children:e??a.jsx(Gt,{})})}function zo({breadcrumbs:e,actions:t,children:n}){const o=Ft(),r=s.useMemo(()=>e||o.pathname.split("/").filter(Boolean).map(i=>i.charAt(0).toUpperCase()+i.slice(1)),[o.pathname,e]);return a.jsxs(a.Fragment,{children:[a.jsxs("header",{className:"flex h-12 shrink-0 items-center gap-2 border-b px-4",children:[a.jsx(Ot,{className:"-ml-1"}),a.jsx(kt,{orientation:"vertical",className:"mr-2 h-4"}),a.jsx(Lo,{children:a.jsx(Go,{children:r.map((c,i)=>a.jsxs(s.Fragment,{children:[a.jsx(Ko,{children:i===r.length-1?a.jsx($o,{children:c}):c}),i<r.length-1&&a.jsx(Bo,{})]},i))})}),a.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[t,a.jsx(Fo,{})]})]}),a.jsx("div",{className:"flex flex-1 flex-col",children:a.jsx("div",{className:"@container/main",children:a.jsx("div",{className:"flex flex-col gap-4 p-4",children:n})})})]})}export{Gt as C,Ao as D,zo as P,Oo as a,ko as b,me as c,Wo as d,Yo as e,je as f,Ae as u};
@@ -0,0 +1 @@
1
+ import{c as i,j as t,B as o,i as n,J as c}from"./index-Ncy0-Qo7.js";import{m as d}from"./use-settings-form-submit-CXwtE1sI.js";const u=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]],x=i("Trash2",u),m=({className:a,onClick:s})=>t.jsxs(o,{type:"button",variant:"destructive",className:n("",a),onClick:s,children:[t.jsx("span",{className:"sr-only",children:"Delete option"}),t.jsx(x,{className:"size-4"})]}),y=({className:a,showDelete:s=!1,onDelete:r})=>{const e=d();return t.jsxs("div",{className:n("flex items-center gap-2",a),children:[t.jsx(c,{type:"text",id:`${e.name}`,className:"form-input",value:e.state.value?String(e.state.value):"","aria-invalid":!!(e.state.meta.isTouched&&e.state.meta.errorMap.onBlur?.length>0),onBlur:e.handleBlur,onChange:l=>e.handleChange(l.target.value)}),s&&t.jsx(m,{onClick:r})]})};export{y as default};
@@ -0,0 +1 @@
1
+ import{j as n,K as s,i as o,M as d}from"./index-Ncy0-Qo7.js";const c=d("focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-md border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90 border-transparent",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 border-transparent",destructive:"bg-destructive [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 border-transparent text-white",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function u({className:e,variant:r,asChild:t=!1,...a}){const i=t?s:"span";return n.jsx(i,{"data-slot":"badge",className:o(c({variant:r}),e),...a})}export{u as B};
@@ -0,0 +1 @@
1
+ import{c}from"./index-Ncy0-Qo7.js";const e=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],t=c("Check",e);export{t as C};
@@ -0,0 +1 @@
1
+ import{c as o}from"./index-Ncy0-Qo7.js";const n=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],c=o("ChevronDown",n);export{c as C};
@@ -0,0 +1 @@
1
+ import{c as ge,j as e,y as W,z as X,A as Z,E as ee,F as se,L as O,G as te,B as v,H as ne,Q as je,r as g,u as re,t as J}from"./index-Ncy0-Qo7.js";import{u as le,i as q,j as ie,b as ae,c as z,F as oe,k as B,f as Ce,p as be,a as we,A as Ne}from"./use-settings-form-submit-CXwtE1sI.js";import{u as de}from"./useQuery-DD10sbzn.js";import{P as Se,D as ve,a as Fe,b as ye,d as Te,c as I}from"./Page-B68mlTwU.js";import{T as Ae,a as De,b as H,c as V,d as Ue,e as F}from"./table-qEFWauuw.js";import{P as ce,T as Le,E as Oe,a as Ve,b as ke}from"./test-tube-DhD6uWdp.js";import{L as Pe}from"./loader-circle-Bz67bJa3.js";const Ee=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]],Re=ge("Trash",Ee);function Me({open:l,onOpenChange:a,client:r,onEdit:d}){return e.jsx(W,{open:l,onOpenChange:a,children:e.jsxs(X,{className:"sm:max-w-md",children:[e.jsxs(Z,{children:[e.jsx(ee,{children:"View Torrent Client"}),e.jsx(se,{children:"View torrent client details."})]}),e.jsxs("div",{className:"grid flex-1 auto-rows-min gap-6 px-4",children:[e.jsxs("div",{className:"grid gap-3",children:[e.jsx(O,{children:"URL"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:r?.url||"N/A"})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(O,{children:"Username"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:r?.user||"N/A"})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(O,{children:"Password"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:r?.password?"********":"N/A"})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(O,{children:"Read only"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:r?.readOnly?"Yes":"No"})]})]}),e.jsxs(te,{children:[d&&e.jsxs(v,{type:"button",onClick:()=>d(r),className:"flex-1",children:[e.jsx(ce,{className:"mr-2 h-4 w-4"}),"Edit"]}),e.jsx(ne,{asChild:!0,className:"flex-1",children:e.jsx(v,{type:"button",variant:"outline",className:"flex-1",children:"Close"})})]})]})})}function _(l){return new URL(l).protocol}function Q(l){return new URL(l).host}const $e=l=>{try{const a=_(l),r=Q(l);return`${a}//${r}`}catch(a){return console.warn("Unable to strip credentials from client URL",a),l}};function qe({client:l,protocol:a,host:r,username:d="",password:h}){let o="";l!=="deluge"&&d&&(o=d),h&&(o+=`:${h}`),o+="@";const C=ue(l,!1);return`${a}//${o}${r}${C}`}function Be({client:l,protocol:a,host:r,username:d="",password:h="",readonly:o=!1,usePlugin:C=!1}){let m="";d&&(m+=d),h&&(m+=`:${h}`),m+="@";const w=ue(l,C);return`${l.toLowerCase()}:${o?"readonly:":""}${a}//${m}${r}${w}`}function ue(l,a){switch(l.toLowerCase()){case"qbittorrent":return"";case"transmission":return"/transmission/rpc";case"deluge":return"/json";case"rtorrent":return a?"/rutorrent/plugins/httprpc/action.php":"/RPC2";default:return""}}const Ie=async({client:l,url:a,username:r="",password:d,plugin:h=!1})=>{try{return{success:(await je.clients.testConnection.mutate({client:l.toLowerCase(),url:a,username:r,password:d,readonly:!1,plugin:h})).success}}catch(o){return console.error("Error testing connection:",o),{success:!1}}},K={qbittorrent:"qBittorrent",rtorrent:"rTorrent",transmission:"Transmission",deluge:"Deluge"};function He({open:l,onOpenChange:a,mode:r,client:d}){const[h,o]=g.useState(!1),{isFieldRequired:C}=le(q),m=re(),{data:w}=de(m.settings.get.queryOptions(void 0,{select:t=>t.config.torrentClients||[]})),{saveConfig:N,isLoading:k}=ie(),c=ae({...z,defaultValues:d??{},onSubmit:async({value:t})=>{try{const p={...t,readOnly:t?.readOnly??!1},x=q.safeParse(p);if(x.success){const i=x.data,f=_(i.url),S=Q(i.url),j=Be({client:i.client,protocol:f,host:S,username:i.user??"",password:i.password??"",readonly:i.readOnly});let b;r==="edit"&&d&&d.index!==void 0?(b=[...w||[]],b[d.index]=j):b=[...w||[],j],N({torrentClients:b}),a(!1)}else throw console.error("FULL VALIDATION FAILED:",x.error.format()),new Error("Validation failed")}catch(p){return console.error("Exception during full validation:",p),{status:"error",error:{_form:"An unexpected error occurred during validation"}}}},validators:{onSubmit:q}}),P=async()=>{o(!0);const t=String(c.getFieldValue("client")),p=String(c.getFieldValue("url")),x=String(c.getFieldValue("user")||""),i=String(c.getFieldValue("password")||""),f=qe({client:t,protocol:_(p),host:Q(p),username:x,password:i});(await Ie({client:t,url:f,username:x,password:i,plugin:!1})).success?(J.success("Connection successful!",{description:"The torrent client connection was successful."}),o(!1)):(J.error("Connection failed",{description:"Failed to connect to the torrent client."}),o(!1))},y=k||h;return e.jsx(W,{open:l,onOpenChange:a,children:e.jsx(X,{className:"sm:max-w-md",children:e.jsx(oe,{isFieldRequired:C,children:e.jsxs("form",{onSubmit:t=>{t.preventDefault(),t.stopPropagation(),c.handleSubmit()},children:[e.jsxs(Z,{children:[e.jsx(ee,{children:r==="edit"?"Edit Client":"Create Client"}),e.jsx(se,{children:r==="edit"?"Edit the details of the torrent client.":"Create a new torrent client."})]}),e.jsxs("div",{className:"grid flex-1 auto-rows-min gap-6 px-4",children:[e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"client",children:t=>e.jsxs(e.Fragment,{children:[e.jsx(t.SelectField,{label:"Client",options:K}),t.state.value===K.rtorrent.toLowerCase()&&e.jsx(c.AppField,{name:"plugin",children:p=>e.jsx(p.SwitchField,{label:"Use Plugin URL"})})]})})}),e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"url",children:t=>e.jsx(t.TextField,{label:"Client URL"})})}),e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"user",children:t=>e.jsx(t.TextField,{label:"User"})})}),e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"password",children:t=>e.jsx(t.TextField,{label:"Password",type:"password"})})}),e.jsx("div",{className:"grid gap-3",children:e.jsx(c.AppField,{name:"readOnly",children:t=>e.jsx(t.SwitchField,{label:"Read only"})})}),e.jsx(c.Subscribe,{selector:t=>({urlValue:t.values.url,urlMeta:t.fieldMeta.url,userValue:t.values.user,userMeta:t.fieldMeta.user,passwordValue:t.values.password,passwordMeta:t.fieldMeta.password,clientValue:t.values.client}),children:({urlValue:t,urlMeta:p,userValue:x,userMeta:i,passwordValue:f,passwordMeta:S,clientValue:j})=>{const b=t&&!p?.errors?.length,E=j==="transmission"&&f===void 0?!0:f&&!S?.errors?.length,R=j==="deluge"||j==="transmission"?!0:x&&!i?.errors?.length,T=b&&E&&R;return e.jsxs(e.Fragment,{children:[e.jsx(v,{type:"button",variant:"outline",onClick:P,disabled:!T,className:"w-full",children:h?e.jsxs(e.Fragment,{children:[e.jsx(Pe,{className:"animate-spin"}),"Testing connection..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Le,{className:"mr-2"}),"Test Connection"]})}),j==="qbittorrent"&&e.jsxs("p",{className:"text-muted-foreground -mt-4 px-2 text-sm italic",children:["Note: Testing connections can return false positives if"," ",e.jsx("code",{className:"bg-yellow-100 px-1",children:"Bypass auth on localhost"})," ","is enabled in qBittorrent."]})]})}})]}),e.jsxs(te,{className:"mt-6",children:[e.jsx(c.AppForm,{children:e.jsx(c.SubmitButton,{label:r==="edit"?"Update":"Create",actionLabel:r==="edit"?"Updating...":"Creating..."})}),e.jsx(ne,{asChild:!0,children:e.jsx(v,{type:"button",variant:"outline",disabled:y,children:"Cancel"})})]})]})})})})}function We(){const l=re(),{saveConfig:a}=ie(),[r,d]=g.useState(void 0),[h,o]=g.useState(null),[C,m]=g.useState(null),[w,N]=g.useState(!1),[k,c]=g.useState(!1),[P,y]=g.useState("create"),{isFieldRequired:t}=le(B),{data:p}=de(l.settings.get.queryOptions(void 0,{select:s=>{const n=Ce(s.config);return be(B,n,{includeUndefined:!0})}})),x=we(),i=ae({...z,defaultValues:p??z.defaultValues,onSubmit:x,validators:{onSubmit:B}}),[f,S]=g.useState(null);g.useEffect(()=>{f&&(document.getElementById(f)?.focus(),S(null))},[f]),g.useEffect(()=>{const s=p?.torrentClients??[];if(!s.length){d([]);return}const n=s.map((u,xe)=>{if(!u)return null;let A="",D="",U=!1,M="",$="";if(typeof u=="object")A=u.client,U=u.readOnly||!1,D=u.url,M=u.user||"",$=u.password||"";else if(typeof u=="string"){A=String(u).split(":")[0],U=String(u).includes("readonly");const fe=String(u).indexOf(":"),L=U?String(u).substring(String(u).indexOf(":",fe+1)+1):String(u).substring(String(u).indexOf(":")+1);if(!L)return null;const G=$e(L);if(!G)return null;D=G,M=j(L),$=b(L)}return!A||!D?null:{index:xe,client:A,url:D,user:M,password:$,readOnly:U}}).filter(Boolean);d(n)},[p]);const j=s=>{if(s.includes("@")){const n=s.split("://")[1].split("@")[0];return n.includes(":")?n.split(":")[0]:n.replace(":","")}return""},b=s=>{if(s.includes("@")){const n=s.split("://")[1].split("@")[0];if(n.includes(":"))return n.split(":")[1]}return""},E=s=>{s.preventDefault(),s.stopPropagation(),m(null),y("create"),c(!0)},R=s=>{N(s),s||o(null)},T=(s,n)=>{s.preventDefault(),s.stopPropagation(),o(null),m(n),N(!0)},Y=s=>{o(null),m(s),y("edit"),N(!1),c(!0)},pe=s=>{o(null);const n=r?.filter(u=>u.url!==s.url);d(n),a({torrentClients:n||[]})},he=s=>{c(s),s||o(null)},me=e.jsxs(v,{onClick:E,type:"button",size:"sm",children:[e.jsx(ke,{className:"mr-2 h-4 w-4"}),"Add Torrent Client"]});return e.jsxs(Se,{breadcrumbs:["Settings","Torrent Clients"],actions:me,children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Torrent Clients"}),e.jsx("p",{className:"text-muted-foreground",children:"Manage your torrent clients"})]}),r?e.jsx("div",{className:"mt-4 mb-7 overflow-x-auto rounded-lg border",children:e.jsxs(Ae,{children:[e.jsx(De,{className:"bg-muted sticky top-0 z-10",children:e.jsxs(H,{className:"border-b",children:[e.jsx(V,{children:"Client"}),e.jsx(V,{children:"RPC URL"}),e.jsx(V,{children:"Read only"}),e.jsx(V,{className:"text-right",children:"Actions"})]})}),e.jsxs(Ue,{children:[r?.length===0&&e.jsx(H,{children:e.jsx(F,{colSpan:6,className:"text-center",children:e.jsx("p",{className:"text-muted-foreground",children:"No torrent clients configured. Add a client to start downloading."})})}),r?.map(s=>e.jsxs(H,{className:"hover:bg-muted/50 cursor-pointer",onClick:n=>T(n,s),children:[e.jsx(F,{className:"font-medium",children:s.client}),e.jsx(F,{className:"font-mono text-sm",children:s.url}),e.jsx(F,{children:s.readOnly?"Yes":"No"}),e.jsx(F,{className:"text-right",children:e.jsxs(ve,{open:h===s.url,onOpenChange:n=>o(n?s.url:null),children:[e.jsx(Fe,{asChild:!0,children:e.jsxs(v,{variant:"ghost",className:"h-8 w-8 p-0",type:"button",onClick:n=>{n.preventDefault(),n.stopPropagation()},children:[e.jsx("span",{className:"sr-only",children:"Actions"}),e.jsx(Oe,{className:"h-4 w-4"})]})}),e.jsxs(ye,{align:"end",children:[e.jsx(Te,{children:"Actions"}),e.jsxs(I,{onClick:n=>{T(n,s)},children:[e.jsx(Ve,{className:"mr-2 h-4 w-4"}),"View Details"]}),e.jsxs(I,{onClick:n=>{n.stopPropagation(),Y(s)},children:[e.jsx(ce,{className:"mr-2 h-4 w-4"}),"Edit"]}),e.jsxs(I,{variant:"destructive",onClick:n=>{n.stopPropagation(),pe(s)},children:[e.jsx(Re,{className:"mr-2 h-4 w-4"}),"Delete"]})]})]})})]},s.url))]})]})}):e.jsx("p",{className:"mb-4 text-lg",children:"No torrent clients configured. Add a client"}),e.jsx(oe,{isFieldRequired:t,children:e.jsx("form",{className:"form flex flex-col gap-4",onSubmit:s=>{s.preventDefault(),s.stopPropagation(),i.handleSubmit()},noValidate:!0,children:e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("h2",{className:"text-xl font-bold",children:"Torrent Client Options"}),e.jsxs("fieldset",{className:"form-fieldset w-full gap-6 rounded-md",children:[e.jsx("div",{className:"",children:e.jsx(i.AppField,{name:"action",children:s=>e.jsx(s.SelectField,{label:"Action",options:Ne})})}),e.jsx("div",{className:"",children:e.jsx(i.AppField,{name:"linkCategory",validators:{},children:s=>e.jsx(s.TextField,{label:"Link Category",required:!1})})}),e.jsx("div",{className:"",children:e.jsx(i.AppField,{name:"torrentDir",validators:{},children:s=>e.jsx(s.TextField,{label:"Torrent Directory",required:!1})})}),e.jsx("div",{className:"",children:e.jsx(i.AppField,{name:"outputDir",validators:{},children:s=>e.jsx(s.TextField,{label:"Output Directory",required:!1})})}),e.jsxs("div",{className:"form-field-switches col-span-2 gap-x-12",children:[e.jsx(i.AppField,{name:"skipRecheck",children:s=>e.jsx(s.SwitchField,{label:"Skip Recheck"})}),e.jsx(i.AppField,{name:"useClientTorrents",children:s=>e.jsx(s.SwitchField,{label:"Use Client Torrents"})}),e.jsx(i.AppField,{name:"duplicateCategories",children:s=>e.jsx(s.SwitchField,{label:"Duplicate Categories"})})]})]}),e.jsx(i.AppForm,{children:e.jsx(i.SubmitButton,{})})]})})})]}),e.jsx(Me,{open:w,onOpenChange:R,client:C,onEdit:Y}),e.jsx(He,{open:k,onOpenChange:he,client:C,mode:P})]})}export{We as component};
@@ -0,0 +1 @@
1
+ import{u as g,r as x,j as e,L as d,B as i}from"./index-Ncy0-Qo7.js";import{F as m}from"./FieldInfo-sRlPRNSK.js";import{u as y,h as u,f as N,p as f,a as A,b as $,c as j,F as S,d as h,l as p}from"./use-settings-form-submit-CXwtE1sI.js";import{u as w}from"./useQuery-DD10sbzn.js";import{P as D}from"./Page-B68mlTwU.js";function R(){const{isFieldRequired:n}=y(u),v=g(),{data:b}=w(v.settings.get.queryOptions(void 0,{select:a=>{const r=N(a.config);return f(u,r,{includeUndefined:!0})}})),F=A(),l=$({...j,defaultValues:b??j.defaultValues,onSubmit:F,validators:{onSubmit:u}}),[c,o]=x.useState(null);return x.useEffect(()=>{c&&(document.getElementById(c)?.focus(),o(null))},[c]),e.jsx(D,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Connected App Settings"}),e.jsx("p",{className:"text-muted-foreground",children:"Manage apps connected to Cross-seed."})]}),e.jsx(S,{isFieldRequired:n,children:e.jsx("form",{className:"form flex flex-col gap-4",onSubmit:a=>{a.preventDefault(),a.stopPropagation(),l.handleSubmit()},noValidate:!0,children:e.jsxs("div",{className:"flex flex-wrap gap-6",children:[e.jsxs("fieldset",{className:"form-fieldset w-full gap-6",children:[e.jsx("div",{children:e.jsx(l.AppField,{name:"host",validators:{},children:a=>e.jsx(a.TextField,{label:"Host"})})}),e.jsx("div",{className:"",children:e.jsx(l.AppField,{name:"port",validators:{},children:a=>e.jsx(a.TextField,{label:"Port",type:"number"})})}),e.jsx("div",{className:"",children:e.jsx(l.AppField,{name:"apiKey",validators:{},children:a=>e.jsx(a.TextField,{label:"API Key"})})})]}),e.jsxs("fieldset",{className:"form-fieldset border-border w-full gap-6 rounded-md border",children:[e.jsx("legend",{children:"Connect to Other Apps"}),e.jsx("div",{className:"",children:e.jsx(l.Field,{name:"sonarr",mode:"array",validators:{},children:a=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs(d,{htmlFor:a.name,className:"block w-full",children:["Sonarr URL(s)",n(a.name)&&e.jsx("span",{className:"pl-1 text-red-500",children:"*"})]}),a.state.value&&a.state.value.map((r,s)=>e.jsxs("div",{className:"gap-y- mb-3 flex flex-col",children:[e.jsx(l.AppField,{name:`sonarr[${s}]`,validators:{onBlur:h().url().or(p(""))},children:t=>e.jsx(t.ArrayField,{showDelete:a.state.value&&a.state.value?.length>1,index:s,onDelete:()=>{a.removeValue(s)}})}),e.jsx(l.Subscribe,{selector:t=>t.fieldMeta[`${a.name}[${s}]`],children:t=>e.jsx(m,{fieldMeta:t})})]},s)),e.jsx(i,{variant:"secondary",type:"button",onClick:()=>{a.pushValue("");const r=`${a.name}-${a.state.value?.length?a.state.value.length-1:0}`;o(r)},title:`Add ${a.name}`,children:"Add"})]})})}),e.jsx("div",{children:e.jsx(l.Field,{name:"radarr",mode:"array",validators:{},children:a=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs(d,{htmlFor:a.name,className:"block w-full",children:["Radarr URL(s)",n(a.name)&&e.jsx("span",{className:"pl-1 text-red-500",children:"*"})]}),a.state.value&&a.state.value.map((r,s)=>e.jsxs("div",{className:"gap-y- mb-3 flex flex-col",children:[e.jsx(l.AppField,{name:`radarr[${s}]`,validators:{onBlur:h().url().or(p(""))},children:t=>e.jsx(t.ArrayField,{showDelete:a.state.value&&a.state.value?.length>1,index:s,onDelete:()=>{a.removeValue(s)}})}),e.jsx(l.Subscribe,{selector:t=>t.fieldMeta[`${a.name}[${s}]`],children:t=>e.jsx(m,{fieldMeta:t})})]},s)),e.jsx(i,{variant:"secondary",type:"button",onClick:()=>{a.pushValue("");const r=`${a.name}-${a.state.value?.length?a.state.value.length-1:0}`;o(r)},title:`Add ${a.name}`,children:"Add"})]})})}),e.jsx("div",{className:"",children:e.jsx(l.Field,{name:"notificationWebhookUrls",mode:"array",validators:{},children:a=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs(d,{htmlFor:a.name,className:"block w-full",children:["Notification Webhook URL(s)",n(a.name)&&e.jsx("span",{className:"pl-1 text-red-500",children:"*"})]}),a.state.value?.map((r,s)=>e.jsxs("div",{className:"gap-y- mb-3 flex flex-col",children:[e.jsx(l.AppField,{name:`notificationWebhookUrls[${s}]`,validators:{onBlur:h().min(3).url().or(p(""))},children:t=>e.jsx(t.ArrayField,{showDelete:a.state.value&&a.state.value?.length>1,index:s,onDelete:()=>{a.removeValue(s)}})}),e.jsx(l.Subscribe,{selector:t=>t.fieldMeta[`${a.name}[${s}]`],children:t=>e.jsx(m,{fieldMeta:t})})]},s)),e.jsx(i,{variant:"secondary",type:"button",onClick:()=>{a.pushValue("");const r=`${a.name}-${a.state.value?.length?a.state.value.length-1:0}`;o(r)},title:`Add ${a.name}`,children:"Add"})]})})})]}),e.jsx(l.AppForm,{children:e.jsx(l.SubmitButton,{})})]})})})]})})}export{R as component};
@@ -0,0 +1 @@
1
+ import{r,u as O,I as k,l as E,t as o,j as s,B as x}from"./index-Ncy0-Qo7.js";import{u as w}from"./useQuery-DD10sbzn.js";import{P as h}from"./Page-B68mlTwU.js";function P(){const[c,d]=r.useState(""),[a,l]=r.useState(!0),[p,u]=r.useState(""),f=r.useRef(null),m=O(),v=k(),{data:n,isLoading:b}=w(m.settings.get.queryOptions()),i=E(m.settings.replace.mutationOptions({onSuccess:()=>{o.success("Settings saved successfully!",{description:"Your changes will take effect on the next restart."}),v.invalidateQueries({queryKey:["settings.get"]})},onError:e=>{const t=e instanceof Error?e.message:"An unknown error occurred";o.error("Failed to save settings",{description:t})}})),g=()=>{const e=f.current;if(e){const t=window.pageYOffset||document.documentElement.scrollTop;e.style.height="auto",e.style.height=`${e.scrollHeight}px`,requestAnimationFrame(()=>{window.scrollTo(0,t)})}};r.useEffect(()=>{n?.config&&d(JSON.stringify(n.config,null,2))},[n]),r.useEffect(()=>{g()},[c]);const y=e=>{try{return JSON.parse(e),l(!0),u(""),!0}catch(t){return l(!1),u(t instanceof Error?t.message:"Invalid JSON"),!1}},j=e=>{d(e),y(e),setTimeout(g,0)},S=()=>{if(!a){o.error("Cannot save invalid JSON");return}try{const e=JSON.parse(c);i.mutate(e)}catch{o.error("Failed to parse JSON")}},N=()=>{n?.config&&(d(JSON.stringify(n.config,null,2)),l(!0),u(""),setTimeout(g,0))};if(b)return s.jsx(h,{breadcrumbs:["Diagnostics","Debug"],children:s.jsx("div",{className:"flex items-center justify-center p-8",children:s.jsx("div",{children:"Loading settings..."})})});const J=s.jsxs("div",{className:"flex gap-2",children:[s.jsx(x,{variant:"outline",onClick:N,disabled:i.isPending,children:"Reset"}),s.jsx(x,{onClick:S,disabled:!a||i.isPending,children:i.isPending?"Saving...":"Save"})]});return s.jsx(h,{breadcrumbs:["Diagnostics","Debug"],actions:J,children:s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-bold",children:"Debug Settings"}),s.jsx("p",{className:"text-muted-foreground",children:"Raw JSON editor for debugging configuration issues"})]}),s.jsx("div",{className:"relative",children:s.jsx("textarea",{ref:f,value:c,onChange:e=>j(e.target.value),className:`min-h-96 w-full resize-none overflow-hidden rounded-md border p-3 font-mono text-sm ${a?"border-gray-300 dark:border-gray-600":"border-red-500 dark:border-red-400"} bg-white text-gray-900 dark:bg-gray-900 dark:text-gray-100`,spellCheck:!1,placeholder:"Loading settings..."})}),!a&&s.jsxs("div",{className:"rounded-md bg-red-50 p-3 text-sm text-red-700 dark:bg-red-900/20 dark:text-red-400",children:[s.jsx("strong",{children:"JSON Error:"})," ",p]})]})})}export{P as component};
@@ -0,0 +1 @@
1
+ import{u as f,r as d,j as e,L as m,B as u}from"./index-Ncy0-Qo7.js";import{u as g,e as c,f as b,p as y,a as D,b as N,c as p,F as S,d as h,L as A}from"./use-settings-form-submit-CXwtE1sI.js";import{F as x}from"./FieldInfo-sRlPRNSK.js";import{u as k}from"./useQuery-DD10sbzn.js";import{P as $}from"./Page-B68mlTwU.js";function T(){const{isFieldRequired:n}=g(c),j=f(),{data:v}=k(j.settings.get.queryOptions(void 0,{select:a=>{const r=b(a.config);return y(c,r,{includeUndefined:!0})}})),F=D(),s=N({...p,defaultValues:v??p.defaultValues,onSubmit:F,validators:{onSubmit:c}}),[i,o]=d.useState(null);return d.useEffect(()=>{i&&(document.getElementById(i)?.focus(),o(null))},[i]),e.jsx($,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Directory & Path Settings"}),e.jsx("p",{className:"text-muted-foreground",children:"Manage the directories and paths used by cross-seed."})]}),e.jsx(S,{isFieldRequired:n,children:e.jsx("form",{className:"form flex flex-col gap-4",onSubmit:a=>{a.preventDefault(),a.stopPropagation(),s.handleSubmit()},noValidate:!0,children:e.jsxs("div",{className:"flex flex-wrap gap-6",children:[e.jsxs("fieldset",{className:"form-fieldset w-full gap-6",children:[e.jsx("div",{className:"",children:e.jsx(s.Field,{name:"dataDirs",mode:"array",validators:{},children:a=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs(m,{htmlFor:a.name,className:"block w-full",children:["Data Directories",n(a.name)&&e.jsx("span",{className:"pl-1 text-red-500",children:"*"})]}),a.state.value&&a.state.value.map((r,t)=>e.jsxs("div",{className:"gap-y- mb-3 flex flex-col",children:[e.jsx(s.AppField,{name:`dataDirs[${t}]`,validators:{onBlur:h()},children:l=>e.jsx(l.ArrayField,{showDelete:a.state.value&&a.state.value?.length>1,index:t,onDelete:()=>{a.removeValue(t)}})}),e.jsx(s.Subscribe,{selector:l=>l.fieldMeta[`${a.name}[${t}]`],children:l=>e.jsx(x,{fieldMeta:l})})]},t)),e.jsx(u,{variant:"secondary",type:"button",onClick:()=>{a.pushValue(""),a.state.value?.length&&o(`${a.name}-${a.state.value.length-1}`)},title:`Add ${a.name}`,children:"Add"})]})})}),e.jsx(s.AppField,{name:"flatLinking",validators:{},children:a=>e.jsx(a.SwitchField,{label:"Flat Linking",className:"form-field__switch flex flex-col items-start gap-5"})}),e.jsx("div",{className:"",children:e.jsx(s.AppField,{name:"linkType",children:a=>e.jsx(a.SelectField,{label:"Link Type",options:A})})}),e.jsx("div",{className:"",children:e.jsx(s.Field,{name:"linkDirs",mode:"array",validators:{},children:a=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs(m,{htmlFor:a.name,className:"block w-full",children:["Link Directories",n(a.name)&&e.jsx("span",{className:"pl-1 text-red-500",children:"*"})]}),a.state.value?.map((r,t)=>e.jsxs("div",{className:"gap-y- mb-3 flex flex-col",children:[e.jsx(s.AppField,{name:`linkDirs[${t}]`,validators:{onBlur:h()},children:l=>e.jsx(l.ArrayField,{showDelete:(a.state.value&&a.state.value?.length>1)??void 0,index:t,onDelete:()=>{a.removeValue(t)}})}),e.jsx(s.Subscribe,{selector:l=>l.fieldMeta[`${a.name}[${t}]`],children:l=>e.jsx(x,{fieldMeta:l})})]},t)),e.jsx(u,{variant:"secondary",type:"button",onClick:()=>{a.pushValue("");const r=`${a.name}-${a.state.value?.length?a.state.value.length-1:0}`;o(r)},title:`Add ${a.name}`,children:"Add"})]})})}),e.jsx("div",{className:"",children:e.jsx(s.AppField,{name:"maxDataDepth",validators:{},children:a=>e.jsx(a.TextField,{label:"Max Data Depth",type:"number"})})})]}),e.jsx(s.AppForm,{children:e.jsx(s.SubmitButton,{})})]})})})]})})}export{T as component};
@@ -0,0 +1 @@
1
+ import{r as i,j as r,i as S,J as D,L as C}from"./index-Ncy0-Qo7.js";import{S as L,a as M,b as P,c as y,d as E}from"./select-GZr6C6eZ.js";import{m as R}from"./use-settings-form-submit-CXwtE1sI.js";import{u as T,R as k}from"./use-form-validation-context-D2oA54L_.js";import{F as w}from"./FieldInfo-sRlPRNSK.js";import"./Page-B68mlTwU.js";import"./index-BBzHsn7u.js";import"./chevron-down-8PGvFYxV.js";import"./check-NQsw6yBl.js";const B=[{label:"Millisecond",labelPlural:"Milliseconds",value:"milliseconds",ms:1},{label:"Second",labelPlural:"Seconds",value:"seconds",ms:1e3},{label:"Minute",labelPlural:"Minutes",value:"minutes",ms:60*1e3},{label:"Hour",labelPlural:"Hours",value:"hours",ms:3600*1e3},{label:"Day",labelPlural:"Days",value:"days",ms:1440*60*1e3}];function H({id:e,className:l,value:a,onChange:t,onBlur:d,units:c=B,disabled:p=!1}){const s=i.useMemo(()=>c,[c]),u=i.useMemo(()=>A(a),[a]),[o,h]=i.useState(()=>u!=null?v(u,s).value:s[2]?.value??s[0].value),[x,f]=i.useState(""),[g,U]=i.useState(!1),b=s.find(n=>n.value===o)??s[0],F=N(x),j=_(b,F);i.useEffect(()=>{if(!g&&u!=null){const n=v(u,s);n.value!==o&&h(n.value)}},[g,u,o,s]),i.useEffect(()=>{if(u==null){f("");return}const n=s.find(m=>m.value===o)??s[0];f($(u,n.ms))},[u,o,s]);const I=n=>{U(!0),f(n);const m=N(n);if(m==null){t(null);return}t(m*b.ms)},V=n=>{U(!0),h(n)};return r.jsxs("div",{className:S("flex items-center gap-3",l),children:[r.jsx(D,{id:e,name:e,type:"number",min:0,step:"any",className:"flex-1 shadow-none",value:x,onBlur:d,inputMode:"decimal",disabled:p,onChange:n=>I(n.target.value)}),r.jsxs(L,{value:b.value,onValueChange:V,disabled:p,children:[r.jsx(M,{className:"w-32 shadow-none",children:r.jsx(P,{"aria-label":j,children:j})}),r.jsx(y,{children:s.map(n=>r.jsx(E,{value:n.value,children:n.labelPlural??`${n.label}s`},n.value))})]})]})}function v(e,l){if(!Number.isFinite(e)||e<=0)return l[0];for(let a=l.length-1;a>=0;a-=1){const t=l[a];if(e>=t.ms)return t}return l[0]}function N(e){if(!e||e.trim()==="")return null;const l=Number(e);return!Number.isFinite(l)||l<0?null:l}function $(e,l){if(l===0)return"";const a=e/l;return Number.isInteger(a)?a.toString():z(a.toFixed(6))}function z(e){return e.includes(".")?e.replace(/\.?0+$/,""):e}function A(e){if(e==null)return null;if(typeof e=="number")return Number.isFinite(e)?e:null;const l=Number(e);return Number.isFinite(l)?l:null}function _(e,l){return l==null||l!==1?e.labelPlural??`${e.label}s`:e.label}const Y=({label:e,className:l,hideLabel:a=!1})=>{const t=R(),{isFieldRequired:d}=T();return r.jsxs("div",{className:S("space-y-3",l),children:[!a&&r.jsxs(C,{htmlFor:t.name,className:"block w-full",children:[e,d(t.name)&&r.jsx(k,{})]}),r.jsx(H,{id:t.name,value:t.state.value??null,onBlur:t.handleBlur,onChange:c=>t.handleChange(c)}),r.jsx(w,{fieldMeta:t.state.meta})]})};export{Y as default};
@@ -0,0 +1 @@
1
+ import{u as h,r as c,j as e,L as j,B as F}from"./index-Ncy0-Qo7.js";import{F as f}from"./FieldInfo-sRlPRNSK.js";import{u as v,g as r,f as b,p as g,a as S,b as y,c as m,F as N,d as A}from"./use-settings-form-submit-CXwtE1sI.js";import{u as D}from"./useQuery-DD10sbzn.js";import{P as w}from"./Page-B68mlTwU.js";function B(){const{isFieldRequired:o}=v(r),u=h(),{data:p}=D(u.settings.get.queryOptions(void 0,{select:s=>{const n=b(s.config);return g(r,n,{includeUndefined:!0})}})),x=S(),a=y({...m,defaultValues:p??m.defaultValues,onSubmit:x,validators:{onSubmit:r}}),[i,d]=c.useState(null);return c.useEffect(()=>{i&&(document.getElementById(i)?.focus(),d(null))},[i]),e.jsx(w,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{children:e.jsx("h1",{className:"text-2xl font-bold",children:"General Settings"})}),e.jsx(N,{isFieldRequired:o,children:e.jsx("form",{className:"form flex flex-col gap-4",onSubmit:s=>{s.preventDefault(),s.stopPropagation(),a.handleSubmit()},noValidate:!0,children:e.jsxs("div",{className:"flex flex-wrap gap-6",children:[e.jsxs("fieldset",{className:"form-fieldset w-full gap-6",children:[e.jsx(a.AppField,{name:"includeNonVideos",children:s=>e.jsx(s.SwitchField,{label:"Include Non-Videos"})}),e.jsx(a.AppField,{name:"includeSingleEpisodes",children:s=>e.jsx(s.SwitchField,{label:"Include Single Episodes"})}),e.jsx("div",{className:"",children:e.jsx(a.AppField,{name:"snatchTimeout",validators:{},children:s=>e.jsx(s.DurationField,{label:"Snatch Timeout"})})}),e.jsx("div",{className:"",children:e.jsx(a.AppField,{name:"fuzzySizeThreshold",validators:{},children:s=>e.jsx(s.TextField,{label:"Fuzzy Size Threshold",type:"number"})})}),e.jsx("div",{className:"",children:e.jsx(a.AppField,{name:"seasonFromEpisodes",validators:{},children:s=>e.jsx(s.TextField,{label:"Season from Episodes",type:"number"})})}),e.jsx("div",{className:"",children:e.jsx(a.AppField,{name:"autoResumeMaxDownload",validators:{},children:s=>e.jsx(s.TextField,{label:"Auto-resume Max Download",type:"number"})})}),e.jsx("div",{className:"",children:e.jsx(a.Field,{name:"blockList",mode:"array",validators:{},children:s=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs(j,{htmlFor:s.name,className:"block w-full",children:["Block List",o(s.name)&&e.jsx("span",{className:"pl-1 text-red-500",children:"*"})]}),s.state.value&&(s.state.value.length?s.state.value:[""]).map((n,l)=>e.jsxs("div",{className:"gap-y- mb-3 flex flex-col",children:[e.jsx(a.AppField,{name:`blockList[${l}]`,validators:{onBlur:A()},children:t=>e.jsx(t.ArrayField,{showDelete:s.state.value&&s.state.value?.length>1,index:l,onDelete:()=>{s.removeValue(l)}})}),e.jsx(a.Subscribe,{selector:t=>t.fieldMeta[`${s.name}[${l}]`],children:t=>e.jsx(f,{fieldMeta:t})})]},l)),e.jsx(F,{variant:"secondary",type:"button",onClick:()=>{s.pushValue("");const n=`${s.name}-${s.state.value?.length?s.state.value.length-1:0}`;d(n)},title:`Add ${s.name}`,children:"Add"})]})})})]}),e.jsx(a.AppForm,{children:e.jsx(a.SubmitButton,{})})]})})})]})})}export{B as component};