tempest-react-sdk 0.41.0 → 0.42.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +3 -3
  2. package/bin/tempest.mjs +3 -3
  3. package/dist/auth/create-tempest-auth.cjs +1 -1
  4. package/dist/auth/create-tempest-auth.cjs.map +1 -1
  5. package/dist/auth/create-tempest-auth.js +34 -30
  6. package/dist/auth/create-tempest-auth.js.map +1 -1
  7. package/dist/br.cjs +1 -1
  8. package/dist/br.cjs.map +1 -1
  9. package/dist/br.d.ts +0 -13
  10. package/dist/br.js +14 -15
  11. package/dist/br.js.map +1 -1
  12. package/dist/charts/palette.cjs +1 -1
  13. package/dist/charts/palette.cjs.map +1 -1
  14. package/dist/charts/palette.js +4 -4
  15. package/dist/charts/palette.js.map +1 -1
  16. package/dist/charts.cjs +1 -1
  17. package/dist/charts.d.ts +0 -3
  18. package/dist/charts.js +8 -8
  19. package/dist/http/api-client.cjs +1 -1
  20. package/dist/http/api-client.cjs.map +1 -1
  21. package/dist/http/api-client.js +58 -30
  22. package/dist/http/api-client.js.map +1 -1
  23. package/dist/http/resumable-upload.cjs +1 -1
  24. package/dist/http/resumable-upload.js +6 -6
  25. package/dist/icons/generated/aliases.cjs +1 -1
  26. package/dist/icons/generated/aliases.cjs.map +1 -1
  27. package/dist/icons/generated/aliases.js +9 -0
  28. package/dist/icons/generated/aliases.js.map +1 -1
  29. package/dist/icons/generated/icon-names.cjs +1 -1
  30. package/dist/icons/generated/icon-names.cjs.map +1 -1
  31. package/dist/icons/generated/icon-names.js +1 -1
  32. package/dist/icons/generated/icon-names.js.map +1 -1
  33. package/dist/icons/generated/shard-a.cjs +1 -1
  34. package/dist/icons/generated/shard-a.cjs.map +1 -1
  35. package/dist/icons/generated/shard-a.js +61 -61
  36. package/dist/icons/generated/shard-a.js.map +1 -1
  37. package/dist/icons/generated/shard-b.cjs +1 -1
  38. package/dist/icons/generated/shard-b.cjs.map +1 -1
  39. package/dist/icons/generated/shard-b.js +15 -13
  40. package/dist/icons/generated/shard-b.js.map +1 -1
  41. package/dist/icons/generated/shard-e.cjs +1 -1
  42. package/dist/icons/generated/shard-e.cjs.map +1 -1
  43. package/dist/icons/generated/shard-e.js +20 -19
  44. package/dist/icons/generated/shard-e.js.map +1 -1
  45. package/dist/icons/generated/shard-f.cjs +1 -1
  46. package/dist/icons/generated/shard-f.cjs.map +1 -1
  47. package/dist/icons/generated/shard-f.js +140 -134
  48. package/dist/icons/generated/shard-f.js.map +1 -1
  49. package/dist/icons/generated/shard-h.cjs +1 -1
  50. package/dist/icons/generated/shard-h.cjs.map +1 -1
  51. package/dist/icons/generated/shard-h.js +13 -14
  52. package/dist/icons/generated/shard-h.js.map +1 -1
  53. package/dist/icons/generated/shard-l.cjs +1 -1
  54. package/dist/icons/generated/shard-l.cjs.map +1 -1
  55. package/dist/icons/generated/shard-l.js +73 -69
  56. package/dist/icons/generated/shard-l.js.map +1 -1
  57. package/dist/icons/generated/shard-m.cjs +1 -1
  58. package/dist/icons/generated/shard-m.cjs.map +1 -1
  59. package/dist/icons/generated/shard-m.js +101 -98
  60. package/dist/icons/generated/shard-m.js.map +1 -1
  61. package/dist/icons/generated/shard-p.cjs +1 -1
  62. package/dist/icons/generated/shard-p.cjs.map +1 -1
  63. package/dist/icons/generated/shard-p.js +19 -20
  64. package/dist/icons/generated/shard-p.js.map +1 -1
  65. package/dist/icons/generated/shard-r.cjs +1 -1
  66. package/dist/icons/generated/shard-r.cjs.map +1 -1
  67. package/dist/icons/generated/shard-r.js +19 -17
  68. package/dist/icons/generated/shard-r.js.map +1 -1
  69. package/dist/icons/generated/shard-s.cjs +1 -1
  70. package/dist/icons/generated/shard-s.cjs.map +1 -1
  71. package/dist/icons/generated/shard-s.js +160 -159
  72. package/dist/icons/generated/shard-s.js.map +1 -1
  73. package/dist/icons/generated/shard-u.cjs +1 -1
  74. package/dist/icons/generated/shard-u.cjs.map +1 -1
  75. package/dist/icons/generated/shard-u.js +11 -10
  76. package/dist/icons/generated/shard-u.js.map +1 -1
  77. package/dist/icons/material-symbols.cjs +2 -0
  78. package/dist/icons/material-symbols.cjs.map +1 -0
  79. package/dist/icons/material-symbols.js +32 -0
  80. package/dist/icons/material-symbols.js.map +1 -0
  81. package/dist/icons/shard-cache.cjs.map +1 -1
  82. package/dist/icons/shard-cache.js.map +1 -1
  83. package/dist/icons.cjs +1 -1
  84. package/dist/icons.d.ts +74 -5
  85. package/dist/icons.js +2 -1
  86. package/dist/imaging/encode.cjs +1 -1
  87. package/dist/imaging/encode.cjs.map +1 -1
  88. package/dist/imaging/encode.js +1 -4
  89. package/dist/imaging/encode.js.map +1 -1
  90. package/dist/imaging.cjs +1 -1
  91. package/dist/imaging.d.ts +0 -7
  92. package/dist/imaging.js +6 -6
  93. package/dist/tabular/compact.cjs +1 -1
  94. package/dist/tabular/compact.cjs.map +1 -1
  95. package/dist/tabular/compact.js +8 -8
  96. package/dist/tabular/compact.js.map +1 -1
  97. package/dist/tabular/manifest.cjs +1 -1
  98. package/dist/tabular/manifest.cjs.map +1 -1
  99. package/dist/tabular/manifest.js +13 -14
  100. package/dist/tabular/manifest.js.map +1 -1
  101. package/dist/tabular.cjs +1 -1
  102. package/dist/tabular.d.ts +0 -9
  103. package/dist/tabular.js +5 -5
  104. package/dist/tempest-react-sdk.cjs +1 -1
  105. package/dist/tempest-react-sdk.d.ts +72 -305
  106. package/dist/tempest-react-sdk.js +183 -188
  107. package/dist/vision/index.cjs +1 -1
  108. package/dist/vision/index.cjs.map +1 -1
  109. package/dist/vision/index.js +1 -1
  110. package/dist/vision/index.js.map +1 -1
  111. package/dist/vision/preprocess/pipeline.cjs +1 -1
  112. package/dist/vision/preprocess/pipeline.cjs.map +1 -1
  113. package/dist/vision/preprocess/pipeline.js +43 -28
  114. package/dist/vision/preprocess/pipeline.js.map +1 -1
  115. package/dist/vision.d.ts +6 -3
  116. package/dist/vite.cjs +1 -1
  117. package/dist/vite.d.ts +0 -25
  118. package/dist/vite.js +6 -6
  119. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.cjs","names":[],"sources":["../../src/http/api-client.ts"],"sourcesContent":["/**\n * @tempest-limits function-lines — createApiClient is three lines over the limit and\n * every one of them is a request-lifecycle concern the client cannot delegate: base\n * URL joining, the auth header, the retry loop, the timeout signal and the response\n * parsing that turns a failure into a typed error.\n */\nimport { randomId } from \"../utils\";\nimport { buildApiError, TempestApiError } from \"./errors\";\nimport type { ApiClient, ApiClientConfig, RequestOptions } from \"./types\";\n\nfunction buildUrl(baseURL: string, path: string, params?: RequestOptions[\"params\"]): string {\n const url = new URL(path, baseURL.endsWith(\"/\") ? baseURL : `${baseURL}/`);\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(key, String(value));\n }\n }\n }\n return url.toString();\n}\n\nfunction isFormData(body: unknown): body is FormData {\n return typeof FormData !== \"undefined\" && body instanceof FormData;\n}\n\nasync function parseError(response: Response, sentRequestId?: string): Promise<TempestApiError> {\n let body: unknown;\n try {\n body = await response.clone().json();\n } catch {\n try {\n body = await response.text();\n } catch {\n body = null;\n }\n }\n return new TempestApiError(\n buildApiError(response.status, body, response.headers, sentRequestId),\n );\n}\n\n/**\n * Create a typed HTTP client backed by `fetch`.\n *\n * Handles JSON serialization, query params, bearer auth via `getToken`,\n * automatic refresh + retry on 401 when `refresh` is supplied, and uploads\n * via `FormData`. Throws an `ApiError` on non-2xx responses.\n */\nexport function createApiClient(config: ApiClientConfig): ApiClient {\n const fetcher = config.fetcher ?? globalThis.fetch.bind(globalThis);\n\n function authHeaders(): Record<string, string> {\n const token = config.getToken?.();\n return token ? { Authorization: `Bearer ${token}` } : {};\n }\n\n async function rawRequest(\n path: string,\n options: RequestOptions,\n requestId?: string,\n ): Promise<Response> {\n const { body, params, headers, ...rest } = options;\n const isForm = isFormData(body);\n\n const finalHeaders: Record<string, string> = {\n ...(isForm ? {} : { \"Content-Type\": \"application/json\" }),\n ...(requestId ? { \"X-Request-ID\": requestId } : {}),\n ...config.headers,\n ...authHeaders(),\n ...(headers as Record<string, string> | undefined),\n };\n\n const init: RequestInit = {\n ...rest,\n headers: finalHeaders,\n credentials: config.withCredentials ? \"include\" : rest.credentials,\n body:\n body === undefined || body === null\n ? undefined\n : isForm\n ? (body as FormData)\n : JSON.stringify(body),\n };\n\n return fetcher(buildUrl(config.baseURL, path, params), init);\n }\n\n async function request<T>(path: string, options: RequestOptions = {}): Promise<T> {\n const requestId = config.requestId ? config.requestId() : randomId();\n let response = await rawRequest(path, options, requestId);\n\n if (response.status === 401) {\n if (config.refresh) {\n try {\n await config.refresh();\n response = await rawRequest(path, options, requestId);\n } catch {\n await config.onUnauthorized?.(response);\n throw await parseError(response, requestId);\n }\n } else {\n await config.onUnauthorized?.(response);\n }\n }\n\n if (!response.ok) {\n throw await parseError(response, requestId);\n }\n\n if (response.status === 204) {\n return undefined as T;\n }\n\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n if (contentType.includes(\"application/json\")) {\n return (await response.json()) as T;\n }\n return (await response.text()) as unknown as T;\n }\n\n async function upload<T>(\n path: string,\n formData: FormData,\n method: \"POST\" | \"PUT\" | \"PATCH\" = \"POST\",\n ): Promise<T> {\n return request<T>(path, { method, body: formData });\n }\n\n return {\n request,\n get: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"GET\" }),\n post: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"POST\" }),\n put: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"PUT\" }),\n patch: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"PATCH\" }),\n delete: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"DELETE\" }),\n upload,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"api-client.cjs","names":[],"sources":["../../src/http/api-client.ts"],"sourcesContent":["/**\n * @tempest-limits function-lines — createApiClient is over the limit and every line\n * is a request-lifecycle concern the client cannot delegate: base URL joining, the\n * auth header, the 401 refresh-and-replay, the opt-in retry wrapper and the response\n * parsing that turns a failure into a typed error.\n */\nimport { randomId } from \"../utils\";\nimport { buildApiError, TempestApiError } from \"./errors\";\nimport { retry as retryWithBackoff } from \"./retry\";\nimport type { RetryOptions } from \"./retry\";\nimport type { ApiClient, ApiClientConfig, RequestOptions } from \"./types\";\n\n/**\n * Methods the built-in retry policy will replay.\n *\n * `PUT` and `DELETE` are idempotent on paper but stay out: a backend that logs,\n * bills, or fires a webhook per call still sees two, so replaying them is a\n * decision the caller makes through `shouldRetry`, not a default.\n */\nconst IDEMPOTENT_METHODS: ReadonlySet<string> = new Set([\"GET\", \"HEAD\", \"OPTIONS\"]);\n\n/**\n * Sub-500 statuses worth a second attempt: a network failure (status `0`), a\n * request timeout, a too-early replay, and a rate limit — which usually carries\n * the `Retry-After` the backoff already honours.\n */\nconst RETRIABLE_STATUSES: ReadonlySet<number> = new Set([0, 408, 425, 429]);\n\n/**\n * The built-in retry policy, used when `retry` is `true` or is options carrying\n * no `shouldRetry` of their own.\n *\n * Conservative on purpose. Replaying a write can duplicate it, and replaying a\n * `400` or a `403` cannot fix a bad payload or a permission the caller does not\n * have — it only spends the user's time before showing the same error.\n *\n * @param error - Whatever the attempt threw.\n * @param method - The upper-cased HTTP method of the request.\n * @returns Whether the client should try again.\n */\nfunction isRetriableFailure(error: unknown, method: string): boolean {\n if (!IDEMPOTENT_METHODS.has(method)) return false;\n if (!(error instanceof TempestApiError)) return false;\n return RETRIABLE_STATUSES.has(error.status) || error.status >= 500;\n}\n\n/**\n * Normalize the `retry` config into options, or `null` when retrying is off.\n *\n * @param config - The `retry` field as the caller wrote it.\n * @returns Retry options to use, or `null` to run a single attempt.\n */\nfunction resolveRetry(config: boolean | RetryOptions | undefined): RetryOptions | null {\n if (!config) return null;\n return config === true ? {} : config;\n}\n\nfunction buildUrl(baseURL: string, path: string, params?: RequestOptions[\"params\"]): string {\n const url = new URL(path, baseURL.endsWith(\"/\") ? baseURL : `${baseURL}/`);\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(key, String(value));\n }\n }\n }\n return url.toString();\n}\n\nfunction isFormData(body: unknown): body is FormData {\n return typeof FormData !== \"undefined\" && body instanceof FormData;\n}\n\nasync function parseError(response: Response, sentRequestId?: string): Promise<TempestApiError> {\n let body: unknown;\n try {\n body = await response.clone().json();\n } catch {\n try {\n body = await response.text();\n } catch {\n body = null;\n }\n }\n return new TempestApiError(\n buildApiError(response.status, body, response.headers, sentRequestId),\n );\n}\n\n/**\n * Create a typed HTTP client backed by `fetch`.\n *\n * Handles JSON serialization, query params, bearer auth via `getToken`, uploads\n * via `FormData`, and throws a typed `ApiError` on any non-2xx response.\n *\n * **Expired sessions.** A `401` with `refresh` configured awaits the refresh and\n * replays the request once. `onUnauthorized` fires whenever that path ends\n * unauthorized anyway — the refresh threw, or the replay came back `401` — which\n * is the signal to clear the session. Without `refresh`, the first `401` calls\n * it directly.\n *\n * **Retries** are off unless you set `retry`. See {@link ApiClientConfig.retry}\n * for the built-in policy; it never replays a write.\n *\n * @example\n * const api = createApiClient({\n * baseURL: import.meta.env.VITE_API_URL,\n * getToken: () => useAuthStore.getState().token,\n * refresh,\n * onUnauthorized: () => useAuthStore.getState().logout(),\n * retry: true,\n * });\n *\n * @param config - Base URL plus the optional auth, retry and fetch hooks.\n * @returns A client with `request`/`get`/`post`/`put`/`patch`/`delete`/`upload`.\n */\nexport function createApiClient(config: ApiClientConfig): ApiClient {\n const fetcher = config.fetcher ?? globalThis.fetch.bind(globalThis);\n\n function authHeaders(): Record<string, string> {\n const token = config.getToken?.();\n return token ? { Authorization: `Bearer ${token}` } : {};\n }\n\n async function rawRequest(\n path: string,\n options: RequestOptions,\n requestId?: string,\n ): Promise<Response> {\n const { body, params, headers, ...rest } = options;\n const isForm = isFormData(body);\n\n const finalHeaders: Record<string, string> = {\n ...(isForm ? {} : { \"Content-Type\": \"application/json\" }),\n ...(requestId ? { \"X-Request-ID\": requestId } : {}),\n ...config.headers,\n ...authHeaders(),\n ...(headers as Record<string, string> | undefined),\n };\n\n const init: RequestInit = {\n ...rest,\n headers: finalHeaders,\n credentials: config.withCredentials ? \"include\" : rest.credentials,\n body:\n body === undefined || body === null\n ? undefined\n : isForm\n ? (body as FormData)\n : JSON.stringify(body),\n };\n\n return fetcher(buildUrl(config.baseURL, path, params), init);\n }\n\n async function attempt<T>(path: string, options: RequestOptions): Promise<T> {\n const requestId = config.requestId ? config.requestId() : randomId();\n let response = await rawRequest(path, options, requestId);\n\n if (response.status === 401) {\n if (config.refresh) {\n try {\n await config.refresh();\n response = await rawRequest(path, options, requestId);\n } catch {\n await config.onUnauthorized?.(response);\n throw await parseError(response, requestId);\n }\n if (response.status === 401) {\n await config.onUnauthorized?.(response);\n }\n } else {\n await config.onUnauthorized?.(response);\n }\n }\n\n if (!response.ok) {\n throw await parseError(response, requestId);\n }\n\n if (response.status === 204) {\n return undefined as T;\n }\n\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n if (contentType.includes(\"application/json\")) {\n return (await response.json()) as T;\n }\n return (await response.text()) as unknown as T;\n }\n\n async function request<T>(path: string, options: RequestOptions = {}): Promise<T> {\n const retryOptions = resolveRetry(config.retry);\n if (!retryOptions) return attempt<T>(path, options);\n\n const method = (options.method ?? \"GET\").toUpperCase();\n return retryWithBackoff(() => attempt<T>(path, options), {\n ...retryOptions,\n shouldRetry:\n retryOptions.shouldRetry ?? ((error: unknown) => isRetriableFailure(error, method)),\n });\n }\n\n async function upload<T>(\n path: string,\n formData: FormData,\n method: \"POST\" | \"PUT\" | \"PATCH\" = \"POST\",\n ): Promise<T> {\n return request<T>(path, { method, body: formData });\n }\n\n return {\n request,\n get: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"GET\" }),\n post: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"POST\" }),\n put: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"PUT\" }),\n patch: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"PATCH\" }),\n delete: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"DELETE\" }),\n upload,\n };\n}\n"],"mappings":"uFAmBA,IAAM,EAA0C,IAAI,IAAI,CAAC,MAAO,OAAQ,SAAS,CAAC,EAO5E,EAA0C,IAAI,IAAI,CAAC,EAAG,IAAK,IAAK,GAAG,CAAC,EAc1E,SAAS,EAAmB,EAAgB,EAAyB,CAGjE,MAFI,CAAC,EAAmB,IAAI,CAAM,GAC9B,EAAE,aAAiB,EAAA,iBAAyB,GACzC,EAAmB,IAAI,EAAM,MAAM,GAAK,EAAM,QAAU,GACnE,CAQA,SAAS,EAAa,EAAiE,CAEnF,OADK,EACE,IAAW,GAAO,CAAC,EAAI,EADV,IAExB,CAEA,SAAS,EAAS,EAAiB,EAAc,EAA2C,CACxF,IAAM,EAAM,IAAI,IAAI,EAAM,EAAQ,SAAS,GAAG,EAAI,EAAU,GAAG,EAAQ,EAAE,EACzE,GAAI,EACK,IAAA,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,CAAM,EACxC,GAAiC,MACjC,EAAI,aAAa,IAAI,EAAK,OAAO,CAAK,CAAC,EAInD,OAAO,EAAI,SAAS,CACxB,CAEA,SAAS,EAAW,EAAiC,CACjD,OAAO,OAAO,SAAa,KAAe,aAAgB,QAC9D,CAEA,eAAe,EAAW,EAAoB,EAAkD,CAC5F,IAAI,EACJ,GAAI,CACA,EAAO,MAAM,EAAS,MAAM,CAAC,CAAC,KAAK,CACvC,MAAQ,CACJ,GAAI,CACA,EAAO,MAAM,EAAS,KAAK,CAC/B,MAAQ,CACJ,EAAO,IACX,CACJ,CACA,OAAO,IAAI,EAAA,gBACP,EAAA,cAAc,EAAS,OAAQ,EAAM,EAAS,QAAS,CAAa,CACxE,CACJ,CA6BA,SAAgB,EAAgB,EAAoC,CAChE,IAAM,EAAU,EAAO,SAAW,WAAW,MAAM,KAAK,UAAU,EAElE,SAAS,GAAsC,CAC3C,IAAM,EAAQ,EAAO,WAAW,EAChC,OAAO,EAAQ,CAAE,cAAe,UAAU,GAAQ,EAAI,CAAC,CAC3D,CAEA,eAAe,EACX,EACA,EACA,EACiB,CACjB,GAAM,CAAE,OAAM,SAAQ,UAAS,GAAG,GAAS,EACrC,EAAS,EAAW,CAAI,EAExB,EAAuC,CACzC,GAAI,EAAS,CAAC,EAAI,CAAE,eAAgB,kBAAmB,EACvD,GAAI,EAAY,CAAE,eAAgB,CAAU,EAAI,CAAC,EACjD,GAAG,EAAO,QACV,GAAG,EAAY,EACf,GAAI,CACR,EAEM,EAAoB,CACtB,GAAG,EACH,QAAS,EACT,YAAa,EAAO,gBAAkB,UAAY,EAAK,YACvD,KACI,GAA+B,KACzB,IAAA,GACA,EACG,EACD,KAAK,UAAU,CAAI,CACnC,EAEA,OAAO,EAAQ,EAAS,EAAO,QAAS,EAAM,CAAM,EAAG,CAAI,CAC/D,CAEA,eAAe,EAAW,EAAc,EAAqC,CACzE,IAAM,EAAY,EAAO,UAAY,EAAO,UAAU,EAAI,EAAA,SAAS,EAC/D,EAAW,MAAM,EAAW,EAAM,EAAS,CAAS,EAExD,GAAI,EAAS,SAAW,IAAK,CACzB,GAAI,EAAO,QAAS,CAChB,GAAI,CACA,MAAM,EAAO,QAAQ,EACrB,EAAW,MAAM,EAAW,EAAM,EAAS,CAAS,CACxD,MAAQ,CAEJ,MADA,MAAM,EAAO,iBAAiB,CAAQ,EAChC,MAAM,EAAW,EAAU,CAAS,CAC9C,CACI,EAAS,SAAW,KACpB,MAAM,EAAO,iBAAiB,CAAQ,CAE9C,MACI,MAAM,EAAO,iBAAiB,CAAQ,CAE9C,CAEA,GAAI,CAAC,EAAS,GACV,MAAM,MAAM,EAAW,EAAU,CAAS,EAG1C,KAAS,SAAW,IAQxB,OAJoB,EAAS,QAAQ,IAAI,cAAc,GAAK,GAAA,CAC5C,SAAS,kBAAkB,EAC/B,MAAM,EAAS,KAAK,EAExB,MAAM,EAAS,KAAK,CAChC,CAEA,eAAe,EAAW,EAAc,EAA0B,CAAC,EAAe,CAC9E,IAAM,EAAe,EAAa,EAAO,KAAK,EAC9C,GAAI,CAAC,EAAc,OAAO,EAAW,EAAM,CAAO,EAElD,IAAM,GAAU,EAAQ,QAAU,MAAA,CAAO,YAAY,EACrD,OAAO,EAAA,UAAuB,EAAW,EAAM,CAAO,EAAG,CACrD,GAAG,EACH,YACI,EAAa,cAAiB,GAAmB,EAAmB,EAAO,CAAM,EACzF,CAAC,CACL,CAEA,eAAe,EACX,EACA,EACA,EAAmC,OACzB,CACV,OAAO,EAAW,EAAM,CAAE,SAAQ,KAAM,CAAS,CAAC,CACtD,CAEA,MAAO,CACH,UACA,KAAS,EAAc,IACnB,EAAW,EAAM,CAAE,GAAG,EAAS,OAAQ,KAAM,CAAC,EAClD,MAAU,EAAc,IACpB,EAAW,EAAM,CAAE,GAAG,EAAS,OAAQ,MAAO,CAAC,EACnD,KAAS,EAAc,IACnB,EAAW,EAAM,CAAE,GAAG,EAAS,OAAQ,KAAM,CAAC,EAClD,OAAW,EAAc,IACrB,EAAW,EAAM,CAAE,GAAG,EAAS,OAAQ,OAAQ,CAAC,EACpD,QAAY,EAAc,IACtB,EAAW,EAAM,CAAE,GAAG,EAAS,OAAQ,QAAS,CAAC,EACrD,QACJ,CACJ"}
@@ -1,15 +1,32 @@
1
1
  import { randomId as e } from "../utils/ids.js";
2
2
  import { TempestApiError as t, buildApiError as n } from "./errors.js";
3
+ import { retry as r } from "./retry.js";
3
4
  //#region src/http/api-client.ts
4
- function r(e, t, n) {
5
+ var i = /* @__PURE__ */ new Set([
6
+ "GET",
7
+ "HEAD",
8
+ "OPTIONS"
9
+ ]), a = /* @__PURE__ */ new Set([
10
+ 0,
11
+ 408,
12
+ 425,
13
+ 429
14
+ ]);
15
+ function o(e, n) {
16
+ return !i.has(n) || !(e instanceof t) ? !1 : a.has(e.status) || e.status >= 500;
17
+ }
18
+ function s(e) {
19
+ return e ? e === !0 ? {} : e : null;
20
+ }
21
+ function c(e, t, n) {
5
22
  let r = new URL(t, e.endsWith("/") ? e : `${e}/`);
6
23
  if (n) for (let [e, t] of Object.entries(n)) t != null && r.searchParams.set(e, String(t));
7
24
  return r.toString();
8
25
  }
9
- function i(e) {
26
+ function l(e) {
10
27
  return typeof FormData < "u" && e instanceof FormData;
11
28
  }
12
- async function a(e, r) {
29
+ async function u(e, r) {
13
30
  let i;
14
31
  try {
15
32
  i = await e.clone().json();
@@ -22,72 +39,83 @@ async function a(e, r) {
22
39
  }
23
40
  return new t(n(e.status, i, e.headers, r));
24
41
  }
25
- function o(t) {
42
+ function d(t) {
26
43
  let n = t.fetcher ?? globalThis.fetch.bind(globalThis);
27
- function o() {
44
+ function i() {
28
45
  let e = t.getToken?.();
29
46
  return e ? { Authorization: `Bearer ${e}` } : {};
30
47
  }
31
- async function s(e, a, s) {
32
- let { body: c, params: l, headers: u, ...d } = a, f = i(c), p = {
48
+ async function a(e, r, a) {
49
+ let { body: o, params: s, headers: u, ...d } = r, f = l(o), p = {
33
50
  ...f ? {} : { "Content-Type": "application/json" },
34
- ...s ? { "X-Request-ID": s } : {},
51
+ ...a ? { "X-Request-ID": a } : {},
35
52
  ...t.headers,
36
- ...o(),
53
+ ...i(),
37
54
  ...u
38
55
  }, m = {
39
56
  ...d,
40
57
  headers: p,
41
58
  credentials: t.withCredentials ? "include" : d.credentials,
42
- body: c == null ? void 0 : f ? c : JSON.stringify(c)
59
+ body: o == null ? void 0 : f ? o : JSON.stringify(o)
43
60
  };
44
- return n(r(t.baseURL, e, l), m);
61
+ return n(c(t.baseURL, e, s), m);
45
62
  }
46
- async function c(n, r = {}) {
47
- let i = t.requestId ? t.requestId() : e(), o = await s(n, r, i);
63
+ async function d(n, r) {
64
+ let i = t.requestId ? t.requestId() : e(), o = await a(n, r, i);
48
65
  if (o.status === 401) {
49
- if (t.refresh) try {
50
- await t.refresh(), o = await s(n, r, i);
51
- } catch {
52
- throw await t.onUnauthorized?.(o), await a(o, i);
53
- }
54
- else await t.onUnauthorized?.(o);
66
+ if (t.refresh) {
67
+ try {
68
+ await t.refresh(), o = await a(n, r, i);
69
+ } catch {
70
+ throw await t.onUnauthorized?.(o), await u(o, i);
71
+ }
72
+ o.status === 401 && await t.onUnauthorized?.(o);
73
+ } else await t.onUnauthorized?.(o);
55
74
  }
56
- if (!o.ok) throw await a(o, i);
75
+ if (!o.ok) throw await u(o, i);
57
76
  if (o.status !== 204) return (o.headers.get("content-type") ?? "").includes("application/json") ? await o.json() : await o.text();
58
77
  }
59
- async function l(e, t, n = "POST") {
60
- return c(e, {
78
+ async function f(e, n = {}) {
79
+ let i = s(t.retry);
80
+ if (!i) return d(e, n);
81
+ let a = (n.method ?? "GET").toUpperCase();
82
+ return r(() => d(e, n), {
83
+ ...i,
84
+ shouldRetry: i.shouldRetry ?? ((e) => o(e, a))
85
+ });
86
+ }
87
+ async function p(e, t, n = "POST") {
88
+ return f(e, {
61
89
  method: n,
62
90
  body: t
63
91
  });
64
92
  }
65
93
  return {
66
- request: c,
67
- get: (e, t) => c(e, {
94
+ request: f,
95
+ get: (e, t) => f(e, {
68
96
  ...t,
69
97
  method: "GET"
70
98
  }),
71
- post: (e, t) => c(e, {
99
+ post: (e, t) => f(e, {
72
100
  ...t,
73
101
  method: "POST"
74
102
  }),
75
- put: (e, t) => c(e, {
103
+ put: (e, t) => f(e, {
76
104
  ...t,
77
105
  method: "PUT"
78
106
  }),
79
- patch: (e, t) => c(e, {
107
+ patch: (e, t) => f(e, {
80
108
  ...t,
81
109
  method: "PATCH"
82
110
  }),
83
- delete: (e, t) => c(e, {
111
+ delete: (e, t) => f(e, {
84
112
  ...t,
85
113
  method: "DELETE"
86
114
  }),
87
- upload: l
115
+ upload: p
88
116
  };
89
117
  }
90
118
  //#endregion
91
- export { o as createApiClient };
119
+ export { d as createApiClient };
92
120
 
93
121
  //# sourceMappingURL=api-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","names":[],"sources":["../../src/http/api-client.ts"],"sourcesContent":["/**\n * @tempest-limits function-lines — createApiClient is three lines over the limit and\n * every one of them is a request-lifecycle concern the client cannot delegate: base\n * URL joining, the auth header, the retry loop, the timeout signal and the response\n * parsing that turns a failure into a typed error.\n */\nimport { randomId } from \"../utils\";\nimport { buildApiError, TempestApiError } from \"./errors\";\nimport type { ApiClient, ApiClientConfig, RequestOptions } from \"./types\";\n\nfunction buildUrl(baseURL: string, path: string, params?: RequestOptions[\"params\"]): string {\n const url = new URL(path, baseURL.endsWith(\"/\") ? baseURL : `${baseURL}/`);\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(key, String(value));\n }\n }\n }\n return url.toString();\n}\n\nfunction isFormData(body: unknown): body is FormData {\n return typeof FormData !== \"undefined\" && body instanceof FormData;\n}\n\nasync function parseError(response: Response, sentRequestId?: string): Promise<TempestApiError> {\n let body: unknown;\n try {\n body = await response.clone().json();\n } catch {\n try {\n body = await response.text();\n } catch {\n body = null;\n }\n }\n return new TempestApiError(\n buildApiError(response.status, body, response.headers, sentRequestId),\n );\n}\n\n/**\n * Create a typed HTTP client backed by `fetch`.\n *\n * Handles JSON serialization, query params, bearer auth via `getToken`,\n * automatic refresh + retry on 401 when `refresh` is supplied, and uploads\n * via `FormData`. Throws an `ApiError` on non-2xx responses.\n */\nexport function createApiClient(config: ApiClientConfig): ApiClient {\n const fetcher = config.fetcher ?? globalThis.fetch.bind(globalThis);\n\n function authHeaders(): Record<string, string> {\n const token = config.getToken?.();\n return token ? { Authorization: `Bearer ${token}` } : {};\n }\n\n async function rawRequest(\n path: string,\n options: RequestOptions,\n requestId?: string,\n ): Promise<Response> {\n const { body, params, headers, ...rest } = options;\n const isForm = isFormData(body);\n\n const finalHeaders: Record<string, string> = {\n ...(isForm ? {} : { \"Content-Type\": \"application/json\" }),\n ...(requestId ? { \"X-Request-ID\": requestId } : {}),\n ...config.headers,\n ...authHeaders(),\n ...(headers as Record<string, string> | undefined),\n };\n\n const init: RequestInit = {\n ...rest,\n headers: finalHeaders,\n credentials: config.withCredentials ? \"include\" : rest.credentials,\n body:\n body === undefined || body === null\n ? undefined\n : isForm\n ? (body as FormData)\n : JSON.stringify(body),\n };\n\n return fetcher(buildUrl(config.baseURL, path, params), init);\n }\n\n async function request<T>(path: string, options: RequestOptions = {}): Promise<T> {\n const requestId = config.requestId ? config.requestId() : randomId();\n let response = await rawRequest(path, options, requestId);\n\n if (response.status === 401) {\n if (config.refresh) {\n try {\n await config.refresh();\n response = await rawRequest(path, options, requestId);\n } catch {\n await config.onUnauthorized?.(response);\n throw await parseError(response, requestId);\n }\n } else {\n await config.onUnauthorized?.(response);\n }\n }\n\n if (!response.ok) {\n throw await parseError(response, requestId);\n }\n\n if (response.status === 204) {\n return undefined as T;\n }\n\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n if (contentType.includes(\"application/json\")) {\n return (await response.json()) as T;\n }\n return (await response.text()) as unknown as T;\n }\n\n async function upload<T>(\n path: string,\n formData: FormData,\n method: \"POST\" | \"PUT\" | \"PATCH\" = \"POST\",\n ): Promise<T> {\n return request<T>(path, { method, body: formData });\n }\n\n return {\n request,\n get: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"GET\" }),\n post: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"POST\" }),\n put: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"PUT\" }),\n patch: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"PATCH\" }),\n delete: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"DELETE\" }),\n upload,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","names":[],"sources":["../../src/http/api-client.ts"],"sourcesContent":["/**\n * @tempest-limits function-lines — createApiClient is over the limit and every line\n * is a request-lifecycle concern the client cannot delegate: base URL joining, the\n * auth header, the 401 refresh-and-replay, the opt-in retry wrapper and the response\n * parsing that turns a failure into a typed error.\n */\nimport { randomId } from \"../utils\";\nimport { buildApiError, TempestApiError } from \"./errors\";\nimport { retry as retryWithBackoff } from \"./retry\";\nimport type { RetryOptions } from \"./retry\";\nimport type { ApiClient, ApiClientConfig, RequestOptions } from \"./types\";\n\n/**\n * Methods the built-in retry policy will replay.\n *\n * `PUT` and `DELETE` are idempotent on paper but stay out: a backend that logs,\n * bills, or fires a webhook per call still sees two, so replaying them is a\n * decision the caller makes through `shouldRetry`, not a default.\n */\nconst IDEMPOTENT_METHODS: ReadonlySet<string> = new Set([\"GET\", \"HEAD\", \"OPTIONS\"]);\n\n/**\n * Sub-500 statuses worth a second attempt: a network failure (status `0`), a\n * request timeout, a too-early replay, and a rate limit — which usually carries\n * the `Retry-After` the backoff already honours.\n */\nconst RETRIABLE_STATUSES: ReadonlySet<number> = new Set([0, 408, 425, 429]);\n\n/**\n * The built-in retry policy, used when `retry` is `true` or is options carrying\n * no `shouldRetry` of their own.\n *\n * Conservative on purpose. Replaying a write can duplicate it, and replaying a\n * `400` or a `403` cannot fix a bad payload or a permission the caller does not\n * have — it only spends the user's time before showing the same error.\n *\n * @param error - Whatever the attempt threw.\n * @param method - The upper-cased HTTP method of the request.\n * @returns Whether the client should try again.\n */\nfunction isRetriableFailure(error: unknown, method: string): boolean {\n if (!IDEMPOTENT_METHODS.has(method)) return false;\n if (!(error instanceof TempestApiError)) return false;\n return RETRIABLE_STATUSES.has(error.status) || error.status >= 500;\n}\n\n/**\n * Normalize the `retry` config into options, or `null` when retrying is off.\n *\n * @param config - The `retry` field as the caller wrote it.\n * @returns Retry options to use, or `null` to run a single attempt.\n */\nfunction resolveRetry(config: boolean | RetryOptions | undefined): RetryOptions | null {\n if (!config) return null;\n return config === true ? {} : config;\n}\n\nfunction buildUrl(baseURL: string, path: string, params?: RequestOptions[\"params\"]): string {\n const url = new URL(path, baseURL.endsWith(\"/\") ? baseURL : `${baseURL}/`);\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(key, String(value));\n }\n }\n }\n return url.toString();\n}\n\nfunction isFormData(body: unknown): body is FormData {\n return typeof FormData !== \"undefined\" && body instanceof FormData;\n}\n\nasync function parseError(response: Response, sentRequestId?: string): Promise<TempestApiError> {\n let body: unknown;\n try {\n body = await response.clone().json();\n } catch {\n try {\n body = await response.text();\n } catch {\n body = null;\n }\n }\n return new TempestApiError(\n buildApiError(response.status, body, response.headers, sentRequestId),\n );\n}\n\n/**\n * Create a typed HTTP client backed by `fetch`.\n *\n * Handles JSON serialization, query params, bearer auth via `getToken`, uploads\n * via `FormData`, and throws a typed `ApiError` on any non-2xx response.\n *\n * **Expired sessions.** A `401` with `refresh` configured awaits the refresh and\n * replays the request once. `onUnauthorized` fires whenever that path ends\n * unauthorized anyway — the refresh threw, or the replay came back `401` — which\n * is the signal to clear the session. Without `refresh`, the first `401` calls\n * it directly.\n *\n * **Retries** are off unless you set `retry`. See {@link ApiClientConfig.retry}\n * for the built-in policy; it never replays a write.\n *\n * @example\n * const api = createApiClient({\n * baseURL: import.meta.env.VITE_API_URL,\n * getToken: () => useAuthStore.getState().token,\n * refresh,\n * onUnauthorized: () => useAuthStore.getState().logout(),\n * retry: true,\n * });\n *\n * @param config - Base URL plus the optional auth, retry and fetch hooks.\n * @returns A client with `request`/`get`/`post`/`put`/`patch`/`delete`/`upload`.\n */\nexport function createApiClient(config: ApiClientConfig): ApiClient {\n const fetcher = config.fetcher ?? globalThis.fetch.bind(globalThis);\n\n function authHeaders(): Record<string, string> {\n const token = config.getToken?.();\n return token ? { Authorization: `Bearer ${token}` } : {};\n }\n\n async function rawRequest(\n path: string,\n options: RequestOptions,\n requestId?: string,\n ): Promise<Response> {\n const { body, params, headers, ...rest } = options;\n const isForm = isFormData(body);\n\n const finalHeaders: Record<string, string> = {\n ...(isForm ? {} : { \"Content-Type\": \"application/json\" }),\n ...(requestId ? { \"X-Request-ID\": requestId } : {}),\n ...config.headers,\n ...authHeaders(),\n ...(headers as Record<string, string> | undefined),\n };\n\n const init: RequestInit = {\n ...rest,\n headers: finalHeaders,\n credentials: config.withCredentials ? \"include\" : rest.credentials,\n body:\n body === undefined || body === null\n ? undefined\n : isForm\n ? (body as FormData)\n : JSON.stringify(body),\n };\n\n return fetcher(buildUrl(config.baseURL, path, params), init);\n }\n\n async function attempt<T>(path: string, options: RequestOptions): Promise<T> {\n const requestId = config.requestId ? config.requestId() : randomId();\n let response = await rawRequest(path, options, requestId);\n\n if (response.status === 401) {\n if (config.refresh) {\n try {\n await config.refresh();\n response = await rawRequest(path, options, requestId);\n } catch {\n await config.onUnauthorized?.(response);\n throw await parseError(response, requestId);\n }\n if (response.status === 401) {\n await config.onUnauthorized?.(response);\n }\n } else {\n await config.onUnauthorized?.(response);\n }\n }\n\n if (!response.ok) {\n throw await parseError(response, requestId);\n }\n\n if (response.status === 204) {\n return undefined as T;\n }\n\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n if (contentType.includes(\"application/json\")) {\n return (await response.json()) as T;\n }\n return (await response.text()) as unknown as T;\n }\n\n async function request<T>(path: string, options: RequestOptions = {}): Promise<T> {\n const retryOptions = resolveRetry(config.retry);\n if (!retryOptions) return attempt<T>(path, options);\n\n const method = (options.method ?? \"GET\").toUpperCase();\n return retryWithBackoff(() => attempt<T>(path, options), {\n ...retryOptions,\n shouldRetry:\n retryOptions.shouldRetry ?? ((error: unknown) => isRetriableFailure(error, method)),\n });\n }\n\n async function upload<T>(\n path: string,\n formData: FormData,\n method: \"POST\" | \"PUT\" | \"PATCH\" = \"POST\",\n ): Promise<T> {\n return request<T>(path, { method, body: formData });\n }\n\n return {\n request,\n get: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"GET\" }),\n post: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"POST\" }),\n put: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"PUT\" }),\n patch: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"PATCH\" }),\n delete: <T>(path: string, options?: RequestOptions) =>\n request<T>(path, { ...options, method: \"DELETE\" }),\n upload,\n };\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require("./errors.cjs"),t=require("./idempotency.cjs"),n=require("./retry.cjs");var r=`1.0.0`,i=5242880;function a(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n)}function o(e){if(!e)return null;let t=Object.entries(e).map(([e,t])=>`${e} ${a(t)}`);return t.length>0?t.join(`,`):null}function s(e,t){let n=t,r=typeof n.name==`string`?n.name:`blob`,i=typeof n.lastModified==`number`?n.lastModified:0;return`${e}|${r}|${t.size}|${t.type}|${i}`}function c(e=`tempest-upload:`){function t(){try{return typeof localStorage>`u`?null:localStorage}catch{return null}}return{get(n){let r=t()?.getItem(e+n);if(!r)return null;try{return JSON.parse(r)}catch{return null}},set(n,r){t()?.setItem(e+n,JSON.stringify(r))},delete(n){t()?.removeItem(e+n)}}}function l(t){return new Promise((n,r)=>{let i=new XMLHttpRequest;i.open(t.method,t.url),i.withCredentials=t.withCredentials;for(let[e,n]of Object.entries(t.headers))i.setRequestHeader(e,n);if(t.onProgress){let e=t.onProgress;i.upload.onprogress=t=>e(t.loaded)}i.onload=()=>n({status:i.status,text:i.responseText,header:e=>i.getResponseHeader(e)}),i.onerror=()=>r(new e.TempestApiError({status:0,detail:`Falha de rede no upload resumível.`})),i.onabort=()=>r(new DOMException(`Aborted`,`AbortError`)),t.register(i),i.send(t.body)})}function u(e){let t=e.header(`Upload-Offset`);if(t===null)return null;let n=Number(t);return Number.isFinite(n)&&n>=0?n:null}function d(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}function f(t,n){let r=d(t.text),i=e.buildApiError(t.status,r,{get:t.header}),a=typeof r==`object`&&!!r&&(`detail`in r||`message`in r);return new e.TempestApiError({...i,detail:a?i.detail:n})}function p(e){let t=typeof window>`u`?void 0:window.location.href;try{return new URL(e,t).href}catch{return e}}function m(a){let{endpoint:d,file:m,chunkSize:h=i,metadata:g,headers:_={},getToken:v,withCredentials:y=!1,key:b=s(d,m),storage:x=c(),retry:S,onProgress:C,onStateChange:w}=a,T=`idle`,E=0,D=null,O=null,k=null,A=null,j=0;function M(e){T!==e&&(T=e,w?.(e))}function N(e){C?.({loaded:e,total:m.size,fraction:m.size===0?1:e/m.size,resumedFrom:j})}function P(){let e={..._,"Tus-Resumable":r},t=v?.();return t&&!(`Authorization`in e)&&(e.Authorization=`Bearer ${t}`),e}function F(e){A=e}async function I(){!x||!D||!O||await x.set(b,{url:D,offset:E,size:m.size,idempotencyKey:O,updatedAt:Date.now()})}async function L(t){let n=await l({method:`HEAD`,url:t,headers:P(),withCredentials:y,register:F});if(n.status===404||n.status===410)throw new e.TempestApiError({status:n.status,detail:`O upload expirou no servidor. Comece de novo.`});let r=u(n);if(r===null)throw f(n,`HEAD sem Upload-Offset.`);return r}async function R(){let e=x?await x.get(b):null;if(e&&e.size===m.size&&(O=e.idempotencyKey,e.url))try{return E=await L(e.url),D=e.url,e.url}catch{E=0}M(`creating`),O??=t.generateIdempotencyKey(),D=null,E=0,x&&await x.set(b,{url:``,offset:0,size:m.size,idempotencyKey:O,updatedAt:Date.now()});let n={...P(),"Upload-Length":String(m.size),"Idempotency-Key":O},r=o(g);r&&(n[`Upload-Metadata`]=r);let i=await l({method:`POST`,url:d,headers:n,withCredentials:y,register:F});if(i.status!==201)throw f(i,`Criação do upload recusada.`);let a=i.header(`Location`);if(!a)throw f(i,`Criação do upload sem cabeçalho Location.`);return D=p(a),await I(),D}async function z(e,t){if(t.needed&&(E=await L(e),t.needed=!1,N(E),await I(),E>=m.size))return;let n=Math.min(E+h,m.size),r=E,i=await l({method:`PATCH`,url:e,headers:{...P(),"Content-Type":`application/offset+octet-stream`,"Upload-Offset":String(r)},body:m.slice(r,n),withCredentials:y,onProgress:e=>N(Math.min(r+e,m.size)),register:F});if(i.status===409||i.status===412)throw t.needed=!0,f(i,`Offset divergente — o servidor já tinha esses bytes.`);if(i.status!==204&&i.status!==200)throw f(i,`Chunk recusado pelo servidor.`);E=u(i)??n,N(E),await I()}async function B(){k=null;let e=await R();j=E,M(`uploading`),N(E);let t={needed:!1};for(;E<m.size&&!k;)await n.retry(()=>z(e,t),{retries:5,...S,shouldRetry:(e,n)=>k||e instanceof DOMException&&e.name===`AbortError`?!1:(t.needed=!0,S?.shouldRetry?.(e,n)??!0)});return k===`pause`?(M(`paused`),null):k===`abort`?(M(`aborted`),null):(M(`done`),x&&await x.delete(b),{url:e,size:m.size})}async function V(){try{return await B()}catch(e){if(k!==null||e instanceof DOMException&&e.name===`AbortError`)return M(k===`abort`?`aborted`:`paused`),null;throw M(`error`),e}finally{A=null}}function H(e){k=e,A?.abort(),A=null}return{start:V,resume:V,pause:()=>H(`pause`),abort:async({discard:e=!1}={})=>{H(`abort`),M(`aborted`),e&&(D&&await l({method:`DELETE`,url:D,headers:P(),withCredentials:y,register:()=>void 0}).catch(()=>void 0),x&&await x.delete(b))},get state(){return T},get offset(){return E},get url(){return D},key:b}}exports.DEFAULT_CHUNK_SIZE=i,exports.TUS_VERSION=r,exports.createLocalUploadStorage=c,exports.createResumableUpload=m,exports.uploadFingerprint=s;
1
+ const e=require("./errors.cjs"),t=require("./retry.cjs"),n=require("./idempotency.cjs");var r=`1.0.0`,i=5242880;function a(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n)}function o(e){if(!e)return null;let t=Object.entries(e).map(([e,t])=>`${e} ${a(t)}`);return t.length>0?t.join(`,`):null}function s(e,t){let n=t,r=typeof n.name==`string`?n.name:`blob`,i=typeof n.lastModified==`number`?n.lastModified:0;return`${e}|${r}|${t.size}|${t.type}|${i}`}function c(e=`tempest-upload:`){function t(){try{return typeof localStorage>`u`?null:localStorage}catch{return null}}return{get(n){let r=t()?.getItem(e+n);if(!r)return null;try{return JSON.parse(r)}catch{return null}},set(n,r){t()?.setItem(e+n,JSON.stringify(r))},delete(n){t()?.removeItem(e+n)}}}function l(t){return new Promise((n,r)=>{let i=new XMLHttpRequest;i.open(t.method,t.url),i.withCredentials=t.withCredentials;for(let[e,n]of Object.entries(t.headers))i.setRequestHeader(e,n);if(t.onProgress){let e=t.onProgress;i.upload.onprogress=t=>e(t.loaded)}i.onload=()=>n({status:i.status,text:i.responseText,header:e=>i.getResponseHeader(e)}),i.onerror=()=>r(new e.TempestApiError({status:0,detail:`Falha de rede no upload resumível.`})),i.onabort=()=>r(new DOMException(`Aborted`,`AbortError`)),t.register(i),i.send(t.body)})}function u(e){let t=e.header(`Upload-Offset`);if(t===null)return null;let n=Number(t);return Number.isFinite(n)&&n>=0?n:null}function d(e){if(!e)return null;try{return JSON.parse(e)}catch{return e}}function f(t,n){let r=d(t.text),i=e.buildApiError(t.status,r,{get:t.header}),a=typeof r==`object`&&!!r&&(`detail`in r||`message`in r);return new e.TempestApiError({...i,detail:a?i.detail:n})}function p(e){let t=typeof window>`u`?void 0:window.location.href;try{return new URL(e,t).href}catch{return e}}function m(a){let{endpoint:d,file:m,chunkSize:h=i,metadata:g,headers:_={},getToken:v,withCredentials:y=!1,key:b=s(d,m),storage:x=c(),retry:S,onProgress:C,onStateChange:w}=a,T=`idle`,E=0,D=null,O=null,k=null,A=null,j=0;function M(e){T!==e&&(T=e,w?.(e))}function N(e){C?.({loaded:e,total:m.size,fraction:m.size===0?1:e/m.size,resumedFrom:j})}function P(){let e={..._,"Tus-Resumable":r},t=v?.();return t&&!(`Authorization`in e)&&(e.Authorization=`Bearer ${t}`),e}function F(e){A=e}async function I(){!x||!D||!O||await x.set(b,{url:D,offset:E,size:m.size,idempotencyKey:O,updatedAt:Date.now()})}async function L(t){let n=await l({method:`HEAD`,url:t,headers:P(),withCredentials:y,register:F});if(n.status===404||n.status===410)throw new e.TempestApiError({status:n.status,detail:`O upload expirou no servidor. Comece de novo.`});let r=u(n);if(r===null)throw f(n,`HEAD sem Upload-Offset.`);return r}async function R(){let e=x?await x.get(b):null;if(e&&e.size===m.size&&(O=e.idempotencyKey,e.url))try{return E=await L(e.url),D=e.url,e.url}catch{E=0}M(`creating`),O??=n.generateIdempotencyKey(),D=null,E=0,x&&await x.set(b,{url:``,offset:0,size:m.size,idempotencyKey:O,updatedAt:Date.now()});let t={...P(),"Upload-Length":String(m.size),"Idempotency-Key":O},r=o(g);r&&(t[`Upload-Metadata`]=r);let i=await l({method:`POST`,url:d,headers:t,withCredentials:y,register:F});if(i.status!==201)throw f(i,`Criação do upload recusada.`);let a=i.header(`Location`);if(!a)throw f(i,`Criação do upload sem cabeçalho Location.`);return D=p(a),await I(),D}async function z(e,t){if(t.needed&&(E=await L(e),t.needed=!1,N(E),await I(),E>=m.size))return;let n=Math.min(E+h,m.size),r=E,i=await l({method:`PATCH`,url:e,headers:{...P(),"Content-Type":`application/offset+octet-stream`,"Upload-Offset":String(r)},body:m.slice(r,n),withCredentials:y,onProgress:e=>N(Math.min(r+e,m.size)),register:F});if(i.status===409||i.status===412)throw t.needed=!0,f(i,`Offset divergente — o servidor já tinha esses bytes.`);if(i.status!==204&&i.status!==200)throw f(i,`Chunk recusado pelo servidor.`);E=u(i)??n,N(E),await I()}async function B(){k=null;let e=await R();j=E,M(`uploading`),N(E);let n={needed:!1};for(;E<m.size&&!k;)await t.retry(()=>z(e,n),{retries:5,...S,shouldRetry:(e,t)=>k||e instanceof DOMException&&e.name===`AbortError`?!1:(n.needed=!0,S?.shouldRetry?.(e,t)??!0)});return k===`pause`?(M(`paused`),null):k===`abort`?(M(`aborted`),null):(M(`done`),x&&await x.delete(b),{url:e,size:m.size})}async function V(){try{return await B()}catch(e){if(k!==null||e instanceof DOMException&&e.name===`AbortError`)return M(k===`abort`?`aborted`:`paused`),null;throw M(`error`),e}finally{A=null}}function H(e){k=e,A?.abort(),A=null}return{start:V,resume:V,pause:()=>H(`pause`),abort:async({discard:e=!1}={})=>{H(`abort`),M(`aborted`),e&&(D&&await l({method:`DELETE`,url:D,headers:P(),withCredentials:y,register:()=>void 0}).catch(()=>void 0),x&&await x.delete(b))},get state(){return T},get offset(){return E},get url(){return D},key:b}}exports.DEFAULT_CHUNK_SIZE=i,exports.TUS_VERSION=r,exports.createLocalUploadStorage=c,exports.createResumableUpload=m,exports.uploadFingerprint=s;
2
2
  //# sourceMappingURL=resumable-upload.cjs.map
@@ -1,6 +1,6 @@
1
1
  import { TempestApiError as e, buildApiError as t } from "./errors.js";
2
- import { generateIdempotencyKey as n } from "./idempotency.js";
3
- import { retry as r } from "./retry.js";
2
+ import { retry as n } from "./retry.js";
3
+ import { generateIdempotencyKey as r } from "./idempotency.js";
4
4
  //#region src/http/resumable-upload.ts
5
5
  var i = "1.0.0", a = 5242880;
6
6
  function o(e) {
@@ -146,7 +146,7 @@ function h(t) {
146
146
  } catch {
147
147
  E = 0;
148
148
  }
149
- M("creating"), O ??= n(), D = null, E = 0, x && await x.set(b, {
149
+ M("creating"), O ??= r(), D = null, E = 0, x && await x.set(b, {
150
150
  url: "",
151
151
  offset: 0,
152
152
  size: f.size,
@@ -157,8 +157,8 @@ function h(t) {
157
157
  ...P(),
158
158
  "Upload-Length": String(f.size),
159
159
  "Idempotency-Key": O
160
- }, r = s(g);
161
- r && (t["Upload-Metadata"] = r);
160
+ }, n = s(g);
161
+ n && (t["Upload-Metadata"] = n);
162
162
  let i = await u({
163
163
  method: "POST",
164
164
  url: o,
@@ -195,7 +195,7 @@ function h(t) {
195
195
  let e = await R();
196
196
  j = E, M("uploading"), N(E);
197
197
  let t = { needed: !1 };
198
- for (; E < f.size && !k;) await r(() => z(e, t), {
198
+ for (; E < f.size && !k;) await n(() => z(e, t), {
199
199
  retries: 5,
200
200
  ...S,
201
201
  shouldRetry: (e, n) => k || e instanceof DOMException && e.name === "AbortError" ? !1 : (t.needed = !0, S?.shouldRetry?.(e, n) ?? !0)
@@ -1,2 +1,2 @@
1
- var e={"activity-square":`square-activity`,"alarm-check":`alarm-clock-check`,"alarm-minus":`alarm-clock-minus`,"alarm-plus":`alarm-clock-plus`,"alert-circle":`circle-alert`,"alert-octagon":`octagon-alert`,"alert-triangle":`triangle-alert`,"align-center":`text-align-center`,"align-justify":`text-align-justify`,"align-left":`text-align-start`,"align-right":`text-align-end`,"area-chart":`chart-area`,"arrow-down-01":`arrow-down-0-1`,"arrow-down-10":`arrow-down-1-0`,"arrow-down-az":`arrow-down-a-z`,"arrow-down-circle":`circle-arrow-down`,"arrow-down-left-from-circle":`circle-arrow-out-down-left`,"arrow-down-left-from-square":`square-arrow-out-down-left`,"arrow-down-left-square":`square-arrow-down-left`,"arrow-down-right-from-circle":`circle-arrow-out-down-right`,"arrow-down-right-from-square":`square-arrow-out-down-right`,"arrow-down-right-square":`square-arrow-down-right`,"arrow-down-square":`square-arrow-down`,"arrow-down-za":`arrow-down-z-a`,"arrow-left-circle":`circle-arrow-left`,"arrow-left-square":`square-arrow-left`,"arrow-right-circle":`circle-arrow-right`,"arrow-right-square":`square-arrow-right`,"arrow-up-01":`arrow-up-0-1`,"arrow-up-10":`arrow-up-1-0`,"arrow-up-az":`arrow-up-a-z`,"arrow-up-circle":`circle-arrow-up`,"arrow-up-left-from-circle":`circle-arrow-out-up-left`,"arrow-up-left-from-square":`square-arrow-out-up-left`,"arrow-up-left-square":`square-arrow-up-left`,"arrow-up-right-from-circle":`circle-arrow-out-up-right`,"arrow-up-right-from-square":`square-arrow-out-up-right`,"arrow-up-right-square":`square-arrow-up-right`,"arrow-up-square":`square-arrow-up`,"arrow-up-za":`arrow-up-z-a`,"asterisk-square":`square-asterisk`,"axis-3-d":`axis-3d`,"badge-help":`badge-question-mark`,"bar-chart":`chart-no-axes-column-increasing`,"bar-chart-2":`chart-no-axes-column`,"bar-chart-3":`chart-column`,"bar-chart-4":`chart-column-increasing`,"bar-chart-big":`chart-column-big`,"bar-chart-horizontal":`chart-bar`,"bar-chart-horizontal-big":`chart-bar-big`,"between-horizonal-end":`between-horizontal-end`,"between-horizonal-start":`between-horizontal-start`,"book-template":`book-dashed`,"box-select":`square-dashed`,"candlestick-chart":`chart-candlestick`,"check-circle":`circle-check-big`,"check-circle-2":`circle-check`,"check-square":`square-check-big`,"check-square-2":`square-check`,"chevron-down-circle":`circle-chevron-down`,"chevron-down-square":`square-chevron-down`,"chevron-left-circle":`circle-chevron-left`,"chevron-left-square":`square-chevron-left`,"chevron-right-circle":`circle-chevron-right`,"chevron-right-square":`square-chevron-right`,"chevron-up-circle":`circle-chevron-up`,"chevron-up-square":`square-chevron-up`,"circle-help":`circle-question-mark`,"circle-slashed":`circle-slash-2`,"clipboard-edit":`clipboard-pen`,"clipboard-signature":`clipboard-pen-line`,"code-2":`code-xml`,"code-square":`square-code`,columns:`columns-2`,"columns-settings":`columns-3-cog`,"contact-2":`contact-round`,"curly-braces":`braces`,"divide-circle":`circle-divide`,"divide-square":`square-divide`,"dot-square":`square-dot`,"download-cloud":`cloud-download`,edit:`square-pen`,"edit-2":`pen`,"edit-3":`pen-line`,"equal-square":`square-equal`,"file-audio":`file-headphone`,"file-audio-2":`file-headphone`,"file-axis-3-d":`file-axis-3d`,"file-badge-2":`file-badge`,"file-bar-chart":`file-chart-column-increasing`,"file-bar-chart-2":`file-chart-column`,"file-check-2":`file-check-corner`,"file-code-2":`file-code-corner`,"file-cog-2":`file-cog`,"file-edit":`file-pen`,"file-json":`file-braces`,"file-json-2":`file-braces-corner`,"file-key-2":`file-key`,"file-line-chart":`file-chart-line`,"file-lock-2":`file-lock`,"file-minus-2":`file-minus-corner`,"file-pie-chart":`file-chart-pie`,"file-plus-2":`file-plus-corner`,"file-question":`file-question-mark`,"file-search-2":`file-search-corner`,"file-signature":`file-pen-line`,"file-type-2":`file-type-corner`,"file-video":`file-play`,"file-video-2":`file-video-camera`,"file-volume-2":`file-signal`,"file-warning":`file-exclamation-point`,"file-x-2":`file-x-corner`,filter:`funnel`,"filter-x":`funnel-x`,"flip-horizontal":`square-centerline-dashed-horizontal`,"flip-vertical":`square-centerline-dashed-vertical`,"folder-cog-2":`folder-cog`,"folder-edit":`folder-pen`,"fork-knife":`utensils`,"fork-knife-crossed":`utensils-crossed`,"form-input":`rectangle-ellipsis`,"function-square":`square-function`,"gantt-chart":`chart-no-axes-gantt`,"gantt-chart-square":`square-chart-gantt`,"gauge-circle":`circle-gauge`,"git-commit":`git-commit-horizontal`,"globe-2":`earth`,grab:`hand-grab`,grid:`grid-3x3`,"grid-2-x-2":`grid-2x2`,"grid-2-x-2-check":`grid-2x2-check`,"grid-2-x-2-plus":`grid-2x2-plus`,"grid-2-x-2-x":`grid-2x2-x`,"grid-3-x-3":`grid-3x3`,"help-circle":`circle-question-mark`,"helping-hand":`hand-helping`,home:`house`,"ice-cream":`ice-cream-cone`,"ice-cream-2":`ice-cream-bowl`,indent:`list-indent-increase`,"indent-decrease":`list-indent-decrease`,"indent-increase":`list-indent-increase`,inspect:`square-mouse-pointer`,"kanban-square":`square-kanban`,"kanban-square-dashed":`square-dashed-kanban`,"laptop-2":`laptop-minimal`,"layers-3":`layers`,layout:`panels-top-left`,"letter-text":`text-initial`,"library-square":`square-library`,"line-chart":`chart-line`,"loader-2":`loader-circle`,"location-edit":`map-pin-pen`,"m-square":`square-m`,"mail-question":`mail-question-mark`,"menu-square":`square-menu`,"message-circle-question":`message-circle-question-mark`,"mic-2":`mic-vocal`,"minus-circle":`circle-minus`,"minus-square":`square-minus`,"more-horizontal":`ellipsis`,"more-vertical":`ellipsis-vertical`,"mouse-pointer-square-dashed":`square-dashed-mouse-pointer`,"move-3-d":`move-3d`,outdent:`list-indent-decrease`,"paintbrush-2":`paintbrush-vertical`,palmtree:`tree-palm`,"panel-bottom-inactive":`panel-bottom-dashed`,"panel-left-inactive":`panel-left-dashed`,"panel-right-inactive":`panel-right-dashed`,"panel-top-inactive":`panel-top-dashed`,"panels-left-right":`columns-3`,"panels-top-bottom":`rows-3`,"parking-circle":`circle-parking`,"parking-circle-off":`circle-parking-off`,"parking-square":`square-parking`,"parking-square-off":`square-parking-off`,"pause-circle":`circle-pause`,"pause-octagon":`octagon-pause`,"pen-box":`square-pen`,"pen-square":`square-pen`,"percent-circle":`circle-percent`,"percent-diamond":`diamond-percent`,"percent-square":`square-percent`,"pi-square":`square-pi`,"pie-chart":`chart-pie`,"pilcrow-square":`square-pilcrow`,"play-circle":`circle-play`,"play-square":`square-play`,"plug-zap-2":`plug-zap`,"plus-circle":`circle-plus`,"plus-square":`square-plus`,"power-circle":`circle-power`,"power-square":`square-power`,"rotate-3-d":`rotate-3d`,rows:`rows-2`,"scale-3-d":`scale-3d`,"scatter-chart":`chart-scatter`,"school-2":`university`,"scissors-square":`square-scissors`,"scissors-square-dashed-bottom":`square-bottom-dashed-scissors`,"send-horizonal":`send-horizontal`,"shield-close":`shield-x`,"shield-question":`shield-question-mark`,sidebar:`panel-left`,"sidebar-close":`panel-left-close`,"sidebar-open":`panel-left-open`,"sigma-square":`square-sigma`,"slash-square":`square-slash`,sliders:`sliders-vertical`,"sort-asc":`arrow-up-narrow-wide`,"sort-desc":`arrow-down-wide-narrow`,"split-square-horizontal":`square-split-horizontal`,"split-square-vertical":`square-split-vertical`,"square-gantt-chart":`square-chart-gantt`,stars:`sparkles`,"stop-circle":`circle-stop`,subtitles:`captions`,"table-config":`columns-3-cog`,"terminal-square":`square-terminal`,"test-tube-2":`test-tube-diagonal`,text:`text-align-start`,"text-select":`square-dashed-text`,"text-selection":`square-dashed-text`,train:`tram-front`,"tv-2":`tv-minimal`,unlock:`lock-open`,"unlock-keyhole":`lock-keyhole-open`,"upload-cloud":`cloud-upload`,"user-2":`user-round`,"user-check-2":`user-round-check`,"user-circle":`circle-user`,"user-circle-2":`circle-user-round`,"user-cog-2":`user-round-cog`,"user-minus-2":`user-round-minus`,"user-plus-2":`user-round-plus`,"user-square":`square-user`,"user-square-2":`square-user-round`,"user-x-2":`user-round-x`,"users-2":`users-round`,verified:`badge-check`,"wallet-2":`wallet-minimal`,"wand-2":`wand-sparkles`,waves:`waves-horizontal`,"wrap-text":`text-wrap`,"x-circle":`circle-x`,"x-octagon":`octagon-x`,"x-square":`square-x`};exports.iconAliases=e;
1
+ var e={"activity-square":`square-activity`,"alarm-check":`alarm-clock-check`,"alarm-minus":`alarm-clock-minus`,"alarm-plus":`alarm-clock-plus`,"alert-circle":`circle-alert`,"alert-octagon":`octagon-alert`,"alert-triangle":`triangle-alert`,"align-center":`text-align-center`,"align-justify":`text-align-justify`,"align-left":`text-align-start`,"align-right":`text-align-end`,angry:`face-angry`,annoyed:`face-expressionless`,"area-chart":`chart-area`,"arrow-down-01":`arrow-down-0-1`,"arrow-down-10":`arrow-down-1-0`,"arrow-down-az":`arrow-down-a-z`,"arrow-down-circle":`circle-arrow-down`,"arrow-down-left-from-circle":`circle-arrow-out-down-left`,"arrow-down-left-from-square":`square-arrow-out-down-left`,"arrow-down-left-square":`square-arrow-down-left`,"arrow-down-right-from-circle":`circle-arrow-out-down-right`,"arrow-down-right-from-square":`square-arrow-out-down-right`,"arrow-down-right-square":`square-arrow-down-right`,"arrow-down-square":`square-arrow-down`,"arrow-down-za":`arrow-down-z-a`,"arrow-left-circle":`circle-arrow-left`,"arrow-left-square":`square-arrow-left`,"arrow-right-circle":`circle-arrow-right`,"arrow-right-square":`square-arrow-right`,"arrow-up-01":`arrow-up-0-1`,"arrow-up-10":`arrow-up-1-0`,"arrow-up-az":`arrow-up-a-z`,"arrow-up-circle":`circle-arrow-up`,"arrow-up-left-from-circle":`circle-arrow-out-up-left`,"arrow-up-left-from-square":`square-arrow-out-up-left`,"arrow-up-left-square":`square-arrow-up-left`,"arrow-up-right-from-circle":`circle-arrow-out-up-right`,"arrow-up-right-from-square":`square-arrow-out-up-right`,"arrow-up-right-square":`square-arrow-up-right`,"arrow-up-square":`square-arrow-up`,"arrow-up-za":`arrow-up-z-a`,"asterisk-square":`square-asterisk`,"axis-3-d":`axis-3d`,"badge-help":`badge-question-mark`,"bar-chart":`chart-no-axes-column-increasing`,"bar-chart-2":`chart-no-axes-column`,"bar-chart-3":`chart-column`,"bar-chart-4":`chart-column-increasing`,"bar-chart-big":`chart-column-big`,"bar-chart-horizontal":`chart-bar`,"bar-chart-horizontal-big":`chart-bar-big`,"between-horizonal-end":`between-horizontal-end`,"between-horizonal-start":`between-horizontal-start`,"book-template":`book-dashed`,"box-select":`square-dashed`,"candlestick-chart":`chart-candlestick`,"check-circle":`circle-check-big`,"check-circle-2":`circle-check`,"check-square":`square-check-big`,"check-square-2":`square-check`,"chevron-down-circle":`circle-chevron-down`,"chevron-down-square":`square-chevron-down`,"chevron-left-circle":`circle-chevron-left`,"chevron-left-square":`square-chevron-left`,"chevron-right-circle":`circle-chevron-right`,"chevron-right-square":`square-chevron-right`,"chevron-up-circle":`circle-chevron-up`,"chevron-up-square":`square-chevron-up`,"circle-help":`circle-question-mark`,"circle-slashed":`circle-slash-2`,"clipboard-edit":`clipboard-pen`,"clipboard-signature":`clipboard-pen-line`,"code-2":`code-xml`,"code-square":`square-code`,columns:`columns-2`,"columns-settings":`columns-3-cog`,"contact-2":`contact-round`,"curly-braces":`braces`,"divide-circle":`circle-divide`,"divide-square":`square-divide`,"dot-square":`square-dot`,"download-cloud":`cloud-download`,edit:`square-pen`,"edit-2":`pen`,"edit-3":`pen-line`,"equal-square":`square-equal`,"file-audio":`file-headphone`,"file-audio-2":`file-headphone`,"file-axis-3-d":`file-axis-3d`,"file-badge-2":`file-badge`,"file-bar-chart":`file-chart-column-increasing`,"file-bar-chart-2":`file-chart-column`,"file-check-2":`file-check-corner`,"file-code-2":`file-code-corner`,"file-cog-2":`file-cog`,"file-edit":`file-pen`,"file-json":`file-braces`,"file-json-2":`file-braces-corner`,"file-key-2":`file-key`,"file-line-chart":`file-chart-line`,"file-lock-2":`file-lock`,"file-minus-2":`file-minus-corner`,"file-pie-chart":`file-chart-pie`,"file-plus-2":`file-plus-corner`,"file-question":`file-question-mark`,"file-search-2":`file-search-corner`,"file-signature":`file-pen-line`,"file-type-2":`file-type-corner`,"file-video":`file-play`,"file-video-2":`file-video-camera`,"file-volume-2":`file-signal`,"file-warning":`file-exclamation-point`,"file-x-2":`file-x-corner`,filter:`funnel`,"filter-x":`funnel-x`,"flip-horizontal":`square-centerline-dashed-horizontal`,"flip-vertical":`square-centerline-dashed-vertical`,"folder-cog-2":`folder-cog`,"folder-edit":`folder-pen`,"fork-knife":`utensils`,"fork-knife-crossed":`utensils-crossed`,"form-input":`rectangle-ellipsis`,frown:`face-slightly-frowning`,"function-square":`square-function`,"gantt-chart":`chart-no-axes-gantt`,"gantt-chart-square":`square-chart-gantt`,"gauge-circle":`circle-gauge`,"git-commit":`git-commit-horizontal`,"globe-2":`earth`,grab:`hand-grab`,grid:`grid-3x3`,"grid-2-x-2":`grid-2x2`,"grid-2-x-2-check":`grid-2x2-check`,"grid-2-x-2-plus":`grid-2x2-plus`,"grid-2-x-2-x":`grid-2x2-x`,"grid-3-x-3":`grid-3x3`,"help-circle":`circle-question-mark`,"helping-hand":`hand-helping`,history:`rotate-ccw-clock`,home:`house`,"ice-cream":`ice-cream-cone`,"ice-cream-2":`ice-cream-bowl`,indent:`list-indent-increase`,"indent-decrease":`list-indent-decrease`,"indent-increase":`list-indent-increase`,inspect:`square-mouse-pointer`,"kanban-square":`square-kanban`,"kanban-square-dashed":`square-dashed-kanban`,"laptop-2":`laptop-minimal`,laugh:`face-grinning`,"layers-3":`layers`,layout:`panels-top-left`,"letter-text":`text-initial`,"library-square":`square-library`,"line-chart":`chart-line`,"loader-2":`loader-circle`,"location-edit":`map-pin-pen`,"m-square":`square-m`,"mail-question":`mail-question-mark`,meh:`face-neutral`,"menu-square":`square-menu`,"message-circle-question":`message-circle-question-mark`,"mic-2":`mic-vocal`,"minus-circle":`circle-minus`,"minus-square":`square-minus`,"more-horizontal":`ellipsis`,"more-vertical":`ellipsis-vertical`,"mouse-pointer-square-dashed":`square-dashed-mouse-pointer`,"move-3-d":`move-3d`,outdent:`list-indent-decrease`,"paintbrush-2":`paintbrush-vertical`,palmtree:`tree-palm`,"panel-bottom-inactive":`panel-bottom-dashed`,"panel-left-inactive":`panel-left-dashed`,"panel-right-inactive":`panel-right-dashed`,"panel-top-inactive":`panel-top-dashed`,"panels-left-right":`columns-3`,"panels-top-bottom":`rows-3`,"parking-circle":`circle-parking`,"parking-circle-off":`circle-parking-off`,"parking-square":`square-parking`,"parking-square-off":`square-parking-off`,"pause-circle":`circle-pause`,"pause-octagon":`octagon-pause`,"pen-box":`square-pen`,"pen-square":`square-pen`,"percent-circle":`circle-percent`,"percent-diamond":`diamond-percent`,"percent-square":`square-percent`,"pi-square":`square-pi`,"pie-chart":`chart-pie`,"pilcrow-square":`square-pilcrow`,"play-circle":`circle-play`,"play-square":`square-play`,"plug-zap-2":`plug-zap`,"plus-circle":`circle-plus`,"plus-square":`square-plus`,podcast:`mic-signal`,"power-circle":`circle-power`,"power-square":`square-power`,"rotate-3-d":`rotate-3d`,rows:`rows-2`,"scale-3-d":`scale-3d`,"scatter-chart":`chart-scatter`,"school-2":`university`,"scissors-square":`square-scissors`,"scissors-square-dashed-bottom":`square-bottom-dashed-scissors`,"send-horizonal":`send-horizontal`,"shield-close":`shield-x`,"shield-question":`shield-question-mark`,sidebar:`panel-left`,"sidebar-close":`panel-left-close`,"sidebar-open":`panel-left-open`,"sigma-square":`square-sigma`,"slash-square":`square-slash`,sliders:`sliders-vertical`,smile:`face-slightly-smiling`,"smile-plus":`face-slightly-smiling-plus`,"sort-asc":`arrow-up-narrow-wide`,"sort-desc":`arrow-down-wide-narrow`,"split-square-horizontal":`square-split-horizontal`,"split-square-vertical":`square-split-vertical`,"square-gantt-chart":`square-chart-gantt`,stars:`sparkles`,"stop-circle":`circle-stop`,subtitles:`captions`,"table-config":`columns-3-cog`,"terminal-square":`square-terminal`,"test-tube-2":`test-tube-diagonal`,text:`text-align-start`,"text-select":`square-dashed-text`,"text-selection":`square-dashed-text`,train:`tram-front`,"tv-2":`tv-minimal`,unlock:`lock-open`,"unlock-keyhole":`lock-keyhole-open`,"upload-cloud":`cloud-upload`,"user-2":`user-round`,"user-check-2":`user-round-check`,"user-circle":`circle-user`,"user-circle-2":`circle-user-round`,"user-cog-2":`user-round-cog`,"user-minus-2":`user-round-minus`,"user-plus-2":`user-round-plus`,"user-square":`square-user`,"user-square-2":`square-user-round`,"user-x-2":`user-round-x`,"users-2":`users-round`,verified:`badge-check`,"wallet-2":`wallet-minimal`,"wand-2":`wand-sparkles`,waves:`waves-horizontal`,"wrap-text":`text-wrap`,"x-circle":`circle-x`,"x-octagon":`octagon-x`,"x-square":`square-x`};exports.iconAliases=e;
2
2
  //# sourceMappingURL=aliases.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"aliases.cjs","names":[],"sources":["../../../src/icons/generated/aliases.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\n/**\n * Lucide's 248 deprecated slugs, mapped to the canonical slug that\n * replaced them (`alert-circle` → `circle-alert`).\n *\n * Kept so a name stored in a database years ago keeps rendering after a lucide\n * bump renames it. Resolution goes through here first, so an alias loads the\n * shard of its *canonical* slug.\n */\nexport const iconAliases: Record<string, string> = {\n \"activity-square\": \"square-activity\",\n \"alarm-check\": \"alarm-clock-check\",\n \"alarm-minus\": \"alarm-clock-minus\",\n \"alarm-plus\": \"alarm-clock-plus\",\n \"alert-circle\": \"circle-alert\",\n \"alert-octagon\": \"octagon-alert\",\n \"alert-triangle\": \"triangle-alert\",\n \"align-center\": \"text-align-center\",\n \"align-justify\": \"text-align-justify\",\n \"align-left\": \"text-align-start\",\n \"align-right\": \"text-align-end\",\n \"area-chart\": \"chart-area\",\n \"arrow-down-01\": \"arrow-down-0-1\",\n \"arrow-down-10\": \"arrow-down-1-0\",\n \"arrow-down-az\": \"arrow-down-a-z\",\n \"arrow-down-circle\": \"circle-arrow-down\",\n \"arrow-down-left-from-circle\": \"circle-arrow-out-down-left\",\n \"arrow-down-left-from-square\": \"square-arrow-out-down-left\",\n \"arrow-down-left-square\": \"square-arrow-down-left\",\n \"arrow-down-right-from-circle\": \"circle-arrow-out-down-right\",\n \"arrow-down-right-from-square\": \"square-arrow-out-down-right\",\n \"arrow-down-right-square\": \"square-arrow-down-right\",\n \"arrow-down-square\": \"square-arrow-down\",\n \"arrow-down-za\": \"arrow-down-z-a\",\n \"arrow-left-circle\": \"circle-arrow-left\",\n \"arrow-left-square\": \"square-arrow-left\",\n \"arrow-right-circle\": \"circle-arrow-right\",\n \"arrow-right-square\": \"square-arrow-right\",\n \"arrow-up-01\": \"arrow-up-0-1\",\n \"arrow-up-10\": \"arrow-up-1-0\",\n \"arrow-up-az\": \"arrow-up-a-z\",\n \"arrow-up-circle\": \"circle-arrow-up\",\n \"arrow-up-left-from-circle\": \"circle-arrow-out-up-left\",\n \"arrow-up-left-from-square\": \"square-arrow-out-up-left\",\n \"arrow-up-left-square\": \"square-arrow-up-left\",\n \"arrow-up-right-from-circle\": \"circle-arrow-out-up-right\",\n \"arrow-up-right-from-square\": \"square-arrow-out-up-right\",\n \"arrow-up-right-square\": \"square-arrow-up-right\",\n \"arrow-up-square\": \"square-arrow-up\",\n \"arrow-up-za\": \"arrow-up-z-a\",\n \"asterisk-square\": \"square-asterisk\",\n \"axis-3-d\": \"axis-3d\",\n \"badge-help\": \"badge-question-mark\",\n \"bar-chart\": \"chart-no-axes-column-increasing\",\n \"bar-chart-2\": \"chart-no-axes-column\",\n \"bar-chart-3\": \"chart-column\",\n \"bar-chart-4\": \"chart-column-increasing\",\n \"bar-chart-big\": \"chart-column-big\",\n \"bar-chart-horizontal\": \"chart-bar\",\n \"bar-chart-horizontal-big\": \"chart-bar-big\",\n \"between-horizonal-end\": \"between-horizontal-end\",\n \"between-horizonal-start\": \"between-horizontal-start\",\n \"book-template\": \"book-dashed\",\n \"box-select\": \"square-dashed\",\n \"candlestick-chart\": \"chart-candlestick\",\n \"check-circle\": \"circle-check-big\",\n \"check-circle-2\": \"circle-check\",\n \"check-square\": \"square-check-big\",\n \"check-square-2\": \"square-check\",\n \"chevron-down-circle\": \"circle-chevron-down\",\n \"chevron-down-square\": \"square-chevron-down\",\n \"chevron-left-circle\": \"circle-chevron-left\",\n \"chevron-left-square\": \"square-chevron-left\",\n \"chevron-right-circle\": \"circle-chevron-right\",\n \"chevron-right-square\": \"square-chevron-right\",\n \"chevron-up-circle\": \"circle-chevron-up\",\n \"chevron-up-square\": \"square-chevron-up\",\n \"circle-help\": \"circle-question-mark\",\n \"circle-slashed\": \"circle-slash-2\",\n \"clipboard-edit\": \"clipboard-pen\",\n \"clipboard-signature\": \"clipboard-pen-line\",\n \"code-2\": \"code-xml\",\n \"code-square\": \"square-code\",\n columns: \"columns-2\",\n \"columns-settings\": \"columns-3-cog\",\n \"contact-2\": \"contact-round\",\n \"curly-braces\": \"braces\",\n \"divide-circle\": \"circle-divide\",\n \"divide-square\": \"square-divide\",\n \"dot-square\": \"square-dot\",\n \"download-cloud\": \"cloud-download\",\n edit: \"square-pen\",\n \"edit-2\": \"pen\",\n \"edit-3\": \"pen-line\",\n \"equal-square\": \"square-equal\",\n \"file-audio\": \"file-headphone\",\n \"file-audio-2\": \"file-headphone\",\n \"file-axis-3-d\": \"file-axis-3d\",\n \"file-badge-2\": \"file-badge\",\n \"file-bar-chart\": \"file-chart-column-increasing\",\n \"file-bar-chart-2\": \"file-chart-column\",\n \"file-check-2\": \"file-check-corner\",\n \"file-code-2\": \"file-code-corner\",\n \"file-cog-2\": \"file-cog\",\n \"file-edit\": \"file-pen\",\n \"file-json\": \"file-braces\",\n \"file-json-2\": \"file-braces-corner\",\n \"file-key-2\": \"file-key\",\n \"file-line-chart\": \"file-chart-line\",\n \"file-lock-2\": \"file-lock\",\n \"file-minus-2\": \"file-minus-corner\",\n \"file-pie-chart\": \"file-chart-pie\",\n \"file-plus-2\": \"file-plus-corner\",\n \"file-question\": \"file-question-mark\",\n \"file-search-2\": \"file-search-corner\",\n \"file-signature\": \"file-pen-line\",\n \"file-type-2\": \"file-type-corner\",\n \"file-video\": \"file-play\",\n \"file-video-2\": \"file-video-camera\",\n \"file-volume-2\": \"file-signal\",\n \"file-warning\": \"file-exclamation-point\",\n \"file-x-2\": \"file-x-corner\",\n filter: \"funnel\",\n \"filter-x\": \"funnel-x\",\n \"flip-horizontal\": \"square-centerline-dashed-horizontal\",\n \"flip-vertical\": \"square-centerline-dashed-vertical\",\n \"folder-cog-2\": \"folder-cog\",\n \"folder-edit\": \"folder-pen\",\n \"fork-knife\": \"utensils\",\n \"fork-knife-crossed\": \"utensils-crossed\",\n \"form-input\": \"rectangle-ellipsis\",\n \"function-square\": \"square-function\",\n \"gantt-chart\": \"chart-no-axes-gantt\",\n \"gantt-chart-square\": \"square-chart-gantt\",\n \"gauge-circle\": \"circle-gauge\",\n \"git-commit\": \"git-commit-horizontal\",\n \"globe-2\": \"earth\",\n grab: \"hand-grab\",\n grid: \"grid-3x3\",\n \"grid-2-x-2\": \"grid-2x2\",\n \"grid-2-x-2-check\": \"grid-2x2-check\",\n \"grid-2-x-2-plus\": \"grid-2x2-plus\",\n \"grid-2-x-2-x\": \"grid-2x2-x\",\n \"grid-3-x-3\": \"grid-3x3\",\n \"help-circle\": \"circle-question-mark\",\n \"helping-hand\": \"hand-helping\",\n home: \"house\",\n \"ice-cream\": \"ice-cream-cone\",\n \"ice-cream-2\": \"ice-cream-bowl\",\n indent: \"list-indent-increase\",\n \"indent-decrease\": \"list-indent-decrease\",\n \"indent-increase\": \"list-indent-increase\",\n inspect: \"square-mouse-pointer\",\n \"kanban-square\": \"square-kanban\",\n \"kanban-square-dashed\": \"square-dashed-kanban\",\n \"laptop-2\": \"laptop-minimal\",\n \"layers-3\": \"layers\",\n layout: \"panels-top-left\",\n \"letter-text\": \"text-initial\",\n \"library-square\": \"square-library\",\n \"line-chart\": \"chart-line\",\n \"loader-2\": \"loader-circle\",\n \"location-edit\": \"map-pin-pen\",\n \"m-square\": \"square-m\",\n \"mail-question\": \"mail-question-mark\",\n \"menu-square\": \"square-menu\",\n \"message-circle-question\": \"message-circle-question-mark\",\n \"mic-2\": \"mic-vocal\",\n \"minus-circle\": \"circle-minus\",\n \"minus-square\": \"square-minus\",\n \"more-horizontal\": \"ellipsis\",\n \"more-vertical\": \"ellipsis-vertical\",\n \"mouse-pointer-square-dashed\": \"square-dashed-mouse-pointer\",\n \"move-3-d\": \"move-3d\",\n outdent: \"list-indent-decrease\",\n \"paintbrush-2\": \"paintbrush-vertical\",\n palmtree: \"tree-palm\",\n \"panel-bottom-inactive\": \"panel-bottom-dashed\",\n \"panel-left-inactive\": \"panel-left-dashed\",\n \"panel-right-inactive\": \"panel-right-dashed\",\n \"panel-top-inactive\": \"panel-top-dashed\",\n \"panels-left-right\": \"columns-3\",\n \"panels-top-bottom\": \"rows-3\",\n \"parking-circle\": \"circle-parking\",\n \"parking-circle-off\": \"circle-parking-off\",\n \"parking-square\": \"square-parking\",\n \"parking-square-off\": \"square-parking-off\",\n \"pause-circle\": \"circle-pause\",\n \"pause-octagon\": \"octagon-pause\",\n \"pen-box\": \"square-pen\",\n \"pen-square\": \"square-pen\",\n \"percent-circle\": \"circle-percent\",\n \"percent-diamond\": \"diamond-percent\",\n \"percent-square\": \"square-percent\",\n \"pi-square\": \"square-pi\",\n \"pie-chart\": \"chart-pie\",\n \"pilcrow-square\": \"square-pilcrow\",\n \"play-circle\": \"circle-play\",\n \"play-square\": \"square-play\",\n \"plug-zap-2\": \"plug-zap\",\n \"plus-circle\": \"circle-plus\",\n \"plus-square\": \"square-plus\",\n \"power-circle\": \"circle-power\",\n \"power-square\": \"square-power\",\n \"rotate-3-d\": \"rotate-3d\",\n rows: \"rows-2\",\n \"scale-3-d\": \"scale-3d\",\n \"scatter-chart\": \"chart-scatter\",\n \"school-2\": \"university\",\n \"scissors-square\": \"square-scissors\",\n \"scissors-square-dashed-bottom\": \"square-bottom-dashed-scissors\",\n \"send-horizonal\": \"send-horizontal\",\n \"shield-close\": \"shield-x\",\n \"shield-question\": \"shield-question-mark\",\n sidebar: \"panel-left\",\n \"sidebar-close\": \"panel-left-close\",\n \"sidebar-open\": \"panel-left-open\",\n \"sigma-square\": \"square-sigma\",\n \"slash-square\": \"square-slash\",\n sliders: \"sliders-vertical\",\n \"sort-asc\": \"arrow-up-narrow-wide\",\n \"sort-desc\": \"arrow-down-wide-narrow\",\n \"split-square-horizontal\": \"square-split-horizontal\",\n \"split-square-vertical\": \"square-split-vertical\",\n \"square-gantt-chart\": \"square-chart-gantt\",\n stars: \"sparkles\",\n \"stop-circle\": \"circle-stop\",\n subtitles: \"captions\",\n \"table-config\": \"columns-3-cog\",\n \"terminal-square\": \"square-terminal\",\n \"test-tube-2\": \"test-tube-diagonal\",\n text: \"text-align-start\",\n \"text-select\": \"square-dashed-text\",\n \"text-selection\": \"square-dashed-text\",\n train: \"tram-front\",\n \"tv-2\": \"tv-minimal\",\n unlock: \"lock-open\",\n \"unlock-keyhole\": \"lock-keyhole-open\",\n \"upload-cloud\": \"cloud-upload\",\n \"user-2\": \"user-round\",\n \"user-check-2\": \"user-round-check\",\n \"user-circle\": \"circle-user\",\n \"user-circle-2\": \"circle-user-round\",\n \"user-cog-2\": \"user-round-cog\",\n \"user-minus-2\": \"user-round-minus\",\n \"user-plus-2\": \"user-round-plus\",\n \"user-square\": \"square-user\",\n \"user-square-2\": \"square-user-round\",\n \"user-x-2\": \"user-round-x\",\n \"users-2\": \"users-round\",\n verified: \"badge-check\",\n \"wallet-2\": \"wallet-minimal\",\n \"wand-2\": \"wand-sparkles\",\n waves: \"waves-horizontal\",\n \"wrap-text\": \"text-wrap\",\n \"x-circle\": \"circle-x\",\n \"x-octagon\": \"octagon-x\",\n \"x-square\": \"square-x\",\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"aliases.cjs","names":[],"sources":["../../../src/icons/generated/aliases.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\n/**\n * Lucide's 257 deprecated slugs, mapped to the canonical slug that\n * replaced them (`alert-circle` → `circle-alert`).\n *\n * Kept so a name stored in a database years ago keeps rendering after a lucide\n * bump renames it. Resolution goes through here first, so an alias loads the\n * shard of its *canonical* slug.\n */\nexport const iconAliases: Record<string, string> = {\n \"activity-square\": \"square-activity\",\n \"alarm-check\": \"alarm-clock-check\",\n \"alarm-minus\": \"alarm-clock-minus\",\n \"alarm-plus\": \"alarm-clock-plus\",\n \"alert-circle\": \"circle-alert\",\n \"alert-octagon\": \"octagon-alert\",\n \"alert-triangle\": \"triangle-alert\",\n \"align-center\": \"text-align-center\",\n \"align-justify\": \"text-align-justify\",\n \"align-left\": \"text-align-start\",\n \"align-right\": \"text-align-end\",\n angry: \"face-angry\",\n annoyed: \"face-expressionless\",\n \"area-chart\": \"chart-area\",\n \"arrow-down-01\": \"arrow-down-0-1\",\n \"arrow-down-10\": \"arrow-down-1-0\",\n \"arrow-down-az\": \"arrow-down-a-z\",\n \"arrow-down-circle\": \"circle-arrow-down\",\n \"arrow-down-left-from-circle\": \"circle-arrow-out-down-left\",\n \"arrow-down-left-from-square\": \"square-arrow-out-down-left\",\n \"arrow-down-left-square\": \"square-arrow-down-left\",\n \"arrow-down-right-from-circle\": \"circle-arrow-out-down-right\",\n \"arrow-down-right-from-square\": \"square-arrow-out-down-right\",\n \"arrow-down-right-square\": \"square-arrow-down-right\",\n \"arrow-down-square\": \"square-arrow-down\",\n \"arrow-down-za\": \"arrow-down-z-a\",\n \"arrow-left-circle\": \"circle-arrow-left\",\n \"arrow-left-square\": \"square-arrow-left\",\n \"arrow-right-circle\": \"circle-arrow-right\",\n \"arrow-right-square\": \"square-arrow-right\",\n \"arrow-up-01\": \"arrow-up-0-1\",\n \"arrow-up-10\": \"arrow-up-1-0\",\n \"arrow-up-az\": \"arrow-up-a-z\",\n \"arrow-up-circle\": \"circle-arrow-up\",\n \"arrow-up-left-from-circle\": \"circle-arrow-out-up-left\",\n \"arrow-up-left-from-square\": \"square-arrow-out-up-left\",\n \"arrow-up-left-square\": \"square-arrow-up-left\",\n \"arrow-up-right-from-circle\": \"circle-arrow-out-up-right\",\n \"arrow-up-right-from-square\": \"square-arrow-out-up-right\",\n \"arrow-up-right-square\": \"square-arrow-up-right\",\n \"arrow-up-square\": \"square-arrow-up\",\n \"arrow-up-za\": \"arrow-up-z-a\",\n \"asterisk-square\": \"square-asterisk\",\n \"axis-3-d\": \"axis-3d\",\n \"badge-help\": \"badge-question-mark\",\n \"bar-chart\": \"chart-no-axes-column-increasing\",\n \"bar-chart-2\": \"chart-no-axes-column\",\n \"bar-chart-3\": \"chart-column\",\n \"bar-chart-4\": \"chart-column-increasing\",\n \"bar-chart-big\": \"chart-column-big\",\n \"bar-chart-horizontal\": \"chart-bar\",\n \"bar-chart-horizontal-big\": \"chart-bar-big\",\n \"between-horizonal-end\": \"between-horizontal-end\",\n \"between-horizonal-start\": \"between-horizontal-start\",\n \"book-template\": \"book-dashed\",\n \"box-select\": \"square-dashed\",\n \"candlestick-chart\": \"chart-candlestick\",\n \"check-circle\": \"circle-check-big\",\n \"check-circle-2\": \"circle-check\",\n \"check-square\": \"square-check-big\",\n \"check-square-2\": \"square-check\",\n \"chevron-down-circle\": \"circle-chevron-down\",\n \"chevron-down-square\": \"square-chevron-down\",\n \"chevron-left-circle\": \"circle-chevron-left\",\n \"chevron-left-square\": \"square-chevron-left\",\n \"chevron-right-circle\": \"circle-chevron-right\",\n \"chevron-right-square\": \"square-chevron-right\",\n \"chevron-up-circle\": \"circle-chevron-up\",\n \"chevron-up-square\": \"square-chevron-up\",\n \"circle-help\": \"circle-question-mark\",\n \"circle-slashed\": \"circle-slash-2\",\n \"clipboard-edit\": \"clipboard-pen\",\n \"clipboard-signature\": \"clipboard-pen-line\",\n \"code-2\": \"code-xml\",\n \"code-square\": \"square-code\",\n columns: \"columns-2\",\n \"columns-settings\": \"columns-3-cog\",\n \"contact-2\": \"contact-round\",\n \"curly-braces\": \"braces\",\n \"divide-circle\": \"circle-divide\",\n \"divide-square\": \"square-divide\",\n \"dot-square\": \"square-dot\",\n \"download-cloud\": \"cloud-download\",\n edit: \"square-pen\",\n \"edit-2\": \"pen\",\n \"edit-3\": \"pen-line\",\n \"equal-square\": \"square-equal\",\n \"file-audio\": \"file-headphone\",\n \"file-audio-2\": \"file-headphone\",\n \"file-axis-3-d\": \"file-axis-3d\",\n \"file-badge-2\": \"file-badge\",\n \"file-bar-chart\": \"file-chart-column-increasing\",\n \"file-bar-chart-2\": \"file-chart-column\",\n \"file-check-2\": \"file-check-corner\",\n \"file-code-2\": \"file-code-corner\",\n \"file-cog-2\": \"file-cog\",\n \"file-edit\": \"file-pen\",\n \"file-json\": \"file-braces\",\n \"file-json-2\": \"file-braces-corner\",\n \"file-key-2\": \"file-key\",\n \"file-line-chart\": \"file-chart-line\",\n \"file-lock-2\": \"file-lock\",\n \"file-minus-2\": \"file-minus-corner\",\n \"file-pie-chart\": \"file-chart-pie\",\n \"file-plus-2\": \"file-plus-corner\",\n \"file-question\": \"file-question-mark\",\n \"file-search-2\": \"file-search-corner\",\n \"file-signature\": \"file-pen-line\",\n \"file-type-2\": \"file-type-corner\",\n \"file-video\": \"file-play\",\n \"file-video-2\": \"file-video-camera\",\n \"file-volume-2\": \"file-signal\",\n \"file-warning\": \"file-exclamation-point\",\n \"file-x-2\": \"file-x-corner\",\n filter: \"funnel\",\n \"filter-x\": \"funnel-x\",\n \"flip-horizontal\": \"square-centerline-dashed-horizontal\",\n \"flip-vertical\": \"square-centerline-dashed-vertical\",\n \"folder-cog-2\": \"folder-cog\",\n \"folder-edit\": \"folder-pen\",\n \"fork-knife\": \"utensils\",\n \"fork-knife-crossed\": \"utensils-crossed\",\n \"form-input\": \"rectangle-ellipsis\",\n frown: \"face-slightly-frowning\",\n \"function-square\": \"square-function\",\n \"gantt-chart\": \"chart-no-axes-gantt\",\n \"gantt-chart-square\": \"square-chart-gantt\",\n \"gauge-circle\": \"circle-gauge\",\n \"git-commit\": \"git-commit-horizontal\",\n \"globe-2\": \"earth\",\n grab: \"hand-grab\",\n grid: \"grid-3x3\",\n \"grid-2-x-2\": \"grid-2x2\",\n \"grid-2-x-2-check\": \"grid-2x2-check\",\n \"grid-2-x-2-plus\": \"grid-2x2-plus\",\n \"grid-2-x-2-x\": \"grid-2x2-x\",\n \"grid-3-x-3\": \"grid-3x3\",\n \"help-circle\": \"circle-question-mark\",\n \"helping-hand\": \"hand-helping\",\n history: \"rotate-ccw-clock\",\n home: \"house\",\n \"ice-cream\": \"ice-cream-cone\",\n \"ice-cream-2\": \"ice-cream-bowl\",\n indent: \"list-indent-increase\",\n \"indent-decrease\": \"list-indent-decrease\",\n \"indent-increase\": \"list-indent-increase\",\n inspect: \"square-mouse-pointer\",\n \"kanban-square\": \"square-kanban\",\n \"kanban-square-dashed\": \"square-dashed-kanban\",\n \"laptop-2\": \"laptop-minimal\",\n laugh: \"face-grinning\",\n \"layers-3\": \"layers\",\n layout: \"panels-top-left\",\n \"letter-text\": \"text-initial\",\n \"library-square\": \"square-library\",\n \"line-chart\": \"chart-line\",\n \"loader-2\": \"loader-circle\",\n \"location-edit\": \"map-pin-pen\",\n \"m-square\": \"square-m\",\n \"mail-question\": \"mail-question-mark\",\n meh: \"face-neutral\",\n \"menu-square\": \"square-menu\",\n \"message-circle-question\": \"message-circle-question-mark\",\n \"mic-2\": \"mic-vocal\",\n \"minus-circle\": \"circle-minus\",\n \"minus-square\": \"square-minus\",\n \"more-horizontal\": \"ellipsis\",\n \"more-vertical\": \"ellipsis-vertical\",\n \"mouse-pointer-square-dashed\": \"square-dashed-mouse-pointer\",\n \"move-3-d\": \"move-3d\",\n outdent: \"list-indent-decrease\",\n \"paintbrush-2\": \"paintbrush-vertical\",\n palmtree: \"tree-palm\",\n \"panel-bottom-inactive\": \"panel-bottom-dashed\",\n \"panel-left-inactive\": \"panel-left-dashed\",\n \"panel-right-inactive\": \"panel-right-dashed\",\n \"panel-top-inactive\": \"panel-top-dashed\",\n \"panels-left-right\": \"columns-3\",\n \"panels-top-bottom\": \"rows-3\",\n \"parking-circle\": \"circle-parking\",\n \"parking-circle-off\": \"circle-parking-off\",\n \"parking-square\": \"square-parking\",\n \"parking-square-off\": \"square-parking-off\",\n \"pause-circle\": \"circle-pause\",\n \"pause-octagon\": \"octagon-pause\",\n \"pen-box\": \"square-pen\",\n \"pen-square\": \"square-pen\",\n \"percent-circle\": \"circle-percent\",\n \"percent-diamond\": \"diamond-percent\",\n \"percent-square\": \"square-percent\",\n \"pi-square\": \"square-pi\",\n \"pie-chart\": \"chart-pie\",\n \"pilcrow-square\": \"square-pilcrow\",\n \"play-circle\": \"circle-play\",\n \"play-square\": \"square-play\",\n \"plug-zap-2\": \"plug-zap\",\n \"plus-circle\": \"circle-plus\",\n \"plus-square\": \"square-plus\",\n podcast: \"mic-signal\",\n \"power-circle\": \"circle-power\",\n \"power-square\": \"square-power\",\n \"rotate-3-d\": \"rotate-3d\",\n rows: \"rows-2\",\n \"scale-3-d\": \"scale-3d\",\n \"scatter-chart\": \"chart-scatter\",\n \"school-2\": \"university\",\n \"scissors-square\": \"square-scissors\",\n \"scissors-square-dashed-bottom\": \"square-bottom-dashed-scissors\",\n \"send-horizonal\": \"send-horizontal\",\n \"shield-close\": \"shield-x\",\n \"shield-question\": \"shield-question-mark\",\n sidebar: \"panel-left\",\n \"sidebar-close\": \"panel-left-close\",\n \"sidebar-open\": \"panel-left-open\",\n \"sigma-square\": \"square-sigma\",\n \"slash-square\": \"square-slash\",\n sliders: \"sliders-vertical\",\n smile: \"face-slightly-smiling\",\n \"smile-plus\": \"face-slightly-smiling-plus\",\n \"sort-asc\": \"arrow-up-narrow-wide\",\n \"sort-desc\": \"arrow-down-wide-narrow\",\n \"split-square-horizontal\": \"square-split-horizontal\",\n \"split-square-vertical\": \"square-split-vertical\",\n \"square-gantt-chart\": \"square-chart-gantt\",\n stars: \"sparkles\",\n \"stop-circle\": \"circle-stop\",\n subtitles: \"captions\",\n \"table-config\": \"columns-3-cog\",\n \"terminal-square\": \"square-terminal\",\n \"test-tube-2\": \"test-tube-diagonal\",\n text: \"text-align-start\",\n \"text-select\": \"square-dashed-text\",\n \"text-selection\": \"square-dashed-text\",\n train: \"tram-front\",\n \"tv-2\": \"tv-minimal\",\n unlock: \"lock-open\",\n \"unlock-keyhole\": \"lock-keyhole-open\",\n \"upload-cloud\": \"cloud-upload\",\n \"user-2\": \"user-round\",\n \"user-check-2\": \"user-round-check\",\n \"user-circle\": \"circle-user\",\n \"user-circle-2\": \"circle-user-round\",\n \"user-cog-2\": \"user-round-cog\",\n \"user-minus-2\": \"user-round-minus\",\n \"user-plus-2\": \"user-round-plus\",\n \"user-square\": \"square-user\",\n \"user-square-2\": \"square-user-round\",\n \"user-x-2\": \"user-round-x\",\n \"users-2\": \"users-round\",\n verified: \"badge-check\",\n \"wallet-2\": \"wallet-minimal\",\n \"wand-2\": \"wand-sparkles\",\n waves: \"waves-horizontal\",\n \"wrap-text\": \"text-wrap\",\n \"x-circle\": \"circle-x\",\n \"x-octagon\": \"octagon-x\",\n \"x-square\": \"square-x\",\n};\n"],"mappings":"AAWA,IAAa,EAAsC,CAC/C,kBAAmB,kBACnB,cAAe,oBACf,cAAe,oBACf,aAAc,mBACd,eAAgB,eAChB,gBAAiB,gBACjB,iBAAkB,iBAClB,eAAgB,oBAChB,gBAAiB,qBACjB,aAAc,mBACd,cAAe,iBACf,MAAO,aACP,QAAS,sBACT,aAAc,aACd,gBAAiB,iBACjB,gBAAiB,iBACjB,gBAAiB,iBACjB,oBAAqB,oBACrB,8BAA+B,6BAC/B,8BAA+B,6BAC/B,yBAA0B,yBAC1B,+BAAgC,8BAChC,+BAAgC,8BAChC,0BAA2B,0BAC3B,oBAAqB,oBACrB,gBAAiB,iBACjB,oBAAqB,oBACrB,oBAAqB,oBACrB,qBAAsB,qBACtB,qBAAsB,qBACtB,cAAe,eACf,cAAe,eACf,cAAe,eACf,kBAAmB,kBACnB,4BAA6B,2BAC7B,4BAA6B,2BAC7B,uBAAwB,uBACxB,6BAA8B,4BAC9B,6BAA8B,4BAC9B,wBAAyB,wBACzB,kBAAmB,kBACnB,cAAe,eACf,kBAAmB,kBACnB,WAAY,UACZ,aAAc,sBACd,YAAa,kCACb,cAAe,uBACf,cAAe,eACf,cAAe,0BACf,gBAAiB,mBACjB,uBAAwB,YACxB,2BAA4B,gBAC5B,wBAAyB,yBACzB,0BAA2B,2BAC3B,gBAAiB,cACjB,aAAc,gBACd,oBAAqB,oBACrB,eAAgB,mBAChB,iBAAkB,eAClB,eAAgB,mBAChB,iBAAkB,eAClB,sBAAuB,sBACvB,sBAAuB,sBACvB,sBAAuB,sBACvB,sBAAuB,sBACvB,uBAAwB,uBACxB,uBAAwB,uBACxB,oBAAqB,oBACrB,oBAAqB,oBACrB,cAAe,uBACf,iBAAkB,iBAClB,iBAAkB,gBAClB,sBAAuB,qBACvB,SAAU,WACV,cAAe,cACf,QAAS,YACT,mBAAoB,gBACpB,YAAa,gBACb,eAAgB,SAChB,gBAAiB,gBACjB,gBAAiB,gBACjB,aAAc,aACd,iBAAkB,iBAClB,KAAM,aACN,SAAU,MACV,SAAU,WACV,eAAgB,eAChB,aAAc,iBACd,eAAgB,iBAChB,gBAAiB,eACjB,eAAgB,aAChB,iBAAkB,+BAClB,mBAAoB,oBACpB,eAAgB,oBAChB,cAAe,mBACf,aAAc,WACd,YAAa,WACb,YAAa,cACb,cAAe,qBACf,aAAc,WACd,kBAAmB,kBACnB,cAAe,YACf,eAAgB,oBAChB,iBAAkB,iBAClB,cAAe,mBACf,gBAAiB,qBACjB,gBAAiB,qBACjB,iBAAkB,gBAClB,cAAe,mBACf,aAAc,YACd,eAAgB,oBAChB,gBAAiB,cACjB,eAAgB,yBAChB,WAAY,gBACZ,OAAQ,SACR,WAAY,WACZ,kBAAmB,sCACnB,gBAAiB,oCACjB,eAAgB,aAChB,cAAe,aACf,aAAc,WACd,qBAAsB,mBACtB,aAAc,qBACd,MAAO,yBACP,kBAAmB,kBACnB,cAAe,sBACf,qBAAsB,qBACtB,eAAgB,eAChB,aAAc,wBACd,UAAW,QACX,KAAM,YACN,KAAM,WACN,aAAc,WACd,mBAAoB,iBACpB,kBAAmB,gBACnB,eAAgB,aAChB,aAAc,WACd,cAAe,uBACf,eAAgB,eAChB,QAAS,mBACT,KAAM,QACN,YAAa,iBACb,cAAe,iBACf,OAAQ,uBACR,kBAAmB,uBACnB,kBAAmB,uBACnB,QAAS,uBACT,gBAAiB,gBACjB,uBAAwB,uBACxB,WAAY,iBACZ,MAAO,gBACP,WAAY,SACZ,OAAQ,kBACR,cAAe,eACf,iBAAkB,iBAClB,aAAc,aACd,WAAY,gBACZ,gBAAiB,cACjB,WAAY,WACZ,gBAAiB,qBACjB,IAAK,eACL,cAAe,cACf,0BAA2B,+BAC3B,QAAS,YACT,eAAgB,eAChB,eAAgB,eAChB,kBAAmB,WACnB,gBAAiB,oBACjB,8BAA+B,8BAC/B,WAAY,UACZ,QAAS,uBACT,eAAgB,sBAChB,SAAU,YACV,wBAAyB,sBACzB,sBAAuB,oBACvB,uBAAwB,qBACxB,qBAAsB,mBACtB,oBAAqB,YACrB,oBAAqB,SACrB,iBAAkB,iBAClB,qBAAsB,qBACtB,iBAAkB,iBAClB,qBAAsB,qBACtB,eAAgB,eAChB,gBAAiB,gBACjB,UAAW,aACX,aAAc,aACd,iBAAkB,iBAClB,kBAAmB,kBACnB,iBAAkB,iBAClB,YAAa,YACb,YAAa,YACb,iBAAkB,iBAClB,cAAe,cACf,cAAe,cACf,aAAc,WACd,cAAe,cACf,cAAe,cACf,QAAS,aACT,eAAgB,eAChB,eAAgB,eAChB,aAAc,YACd,KAAM,SACN,YAAa,WACb,gBAAiB,gBACjB,WAAY,aACZ,kBAAmB,kBACnB,gCAAiC,gCACjC,iBAAkB,kBAClB,eAAgB,WAChB,kBAAmB,uBACnB,QAAS,aACT,gBAAiB,mBACjB,eAAgB,kBAChB,eAAgB,eAChB,eAAgB,eAChB,QAAS,mBACT,MAAO,wBACP,aAAc,6BACd,WAAY,uBACZ,YAAa,yBACb,0BAA2B,0BAC3B,wBAAyB,wBACzB,qBAAsB,qBACtB,MAAO,WACP,cAAe,cACf,UAAW,WACX,eAAgB,gBAChB,kBAAmB,kBACnB,cAAe,qBACf,KAAM,mBACN,cAAe,qBACf,iBAAkB,qBAClB,MAAO,aACP,OAAQ,aACR,OAAQ,YACR,iBAAkB,oBAClB,eAAgB,eAChB,SAAU,aACV,eAAgB,mBAChB,cAAe,cACf,gBAAiB,oBACjB,aAAc,iBACd,eAAgB,mBAChB,cAAe,kBACf,cAAe,cACf,gBAAiB,oBACjB,WAAY,eACZ,UAAW,cACX,SAAU,cACV,WAAY,iBACZ,SAAU,gBACV,MAAO,mBACP,YAAa,YACb,WAAY,WACZ,YAAa,YACb,WAAY,UAChB"}
@@ -11,6 +11,8 @@ var e = {
11
11
  "align-justify": "text-align-justify",
12
12
  "align-left": "text-align-start",
13
13
  "align-right": "text-align-end",
14
+ angry: "face-angry",
15
+ annoyed: "face-expressionless",
14
16
  "area-chart": "chart-area",
15
17
  "arrow-down-01": "arrow-down-0-1",
16
18
  "arrow-down-10": "arrow-down-1-0",
@@ -121,6 +123,7 @@ var e = {
121
123
  "fork-knife": "utensils",
122
124
  "fork-knife-crossed": "utensils-crossed",
123
125
  "form-input": "rectangle-ellipsis",
126
+ frown: "face-slightly-frowning",
124
127
  "function-square": "square-function",
125
128
  "gantt-chart": "chart-no-axes-gantt",
126
129
  "gantt-chart-square": "square-chart-gantt",
@@ -136,6 +139,7 @@ var e = {
136
139
  "grid-3-x-3": "grid-3x3",
137
140
  "help-circle": "circle-question-mark",
138
141
  "helping-hand": "hand-helping",
142
+ history: "rotate-ccw-clock",
139
143
  home: "house",
140
144
  "ice-cream": "ice-cream-cone",
141
145
  "ice-cream-2": "ice-cream-bowl",
@@ -146,6 +150,7 @@ var e = {
146
150
  "kanban-square": "square-kanban",
147
151
  "kanban-square-dashed": "square-dashed-kanban",
148
152
  "laptop-2": "laptop-minimal",
153
+ laugh: "face-grinning",
149
154
  "layers-3": "layers",
150
155
  layout: "panels-top-left",
151
156
  "letter-text": "text-initial",
@@ -155,6 +160,7 @@ var e = {
155
160
  "location-edit": "map-pin-pen",
156
161
  "m-square": "square-m",
157
162
  "mail-question": "mail-question-mark",
163
+ meh: "face-neutral",
158
164
  "menu-square": "square-menu",
159
165
  "message-circle-question": "message-circle-question-mark",
160
166
  "mic-2": "mic-vocal",
@@ -192,6 +198,7 @@ var e = {
192
198
  "plug-zap-2": "plug-zap",
193
199
  "plus-circle": "circle-plus",
194
200
  "plus-square": "square-plus",
201
+ podcast: "mic-signal",
195
202
  "power-circle": "circle-power",
196
203
  "power-square": "square-power",
197
204
  "rotate-3-d": "rotate-3d",
@@ -210,6 +217,8 @@ var e = {
210
217
  "sigma-square": "square-sigma",
211
218
  "slash-square": "square-slash",
212
219
  sliders: "sliders-vertical",
220
+ smile: "face-slightly-smiling",
221
+ "smile-plus": "face-slightly-smiling-plus",
213
222
  "sort-asc": "arrow-up-narrow-wide",
214
223
  "sort-desc": "arrow-down-wide-narrow",
215
224
  "split-square-horizontal": "square-split-horizontal",
@@ -1 +1 @@
1
- {"version":3,"file":"aliases.js","names":[],"sources":["../../../src/icons/generated/aliases.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\n/**\n * Lucide's 248 deprecated slugs, mapped to the canonical slug that\n * replaced them (`alert-circle` → `circle-alert`).\n *\n * Kept so a name stored in a database years ago keeps rendering after a lucide\n * bump renames it. Resolution goes through here first, so an alias loads the\n * shard of its *canonical* slug.\n */\nexport const iconAliases: Record<string, string> = {\n \"activity-square\": \"square-activity\",\n \"alarm-check\": \"alarm-clock-check\",\n \"alarm-minus\": \"alarm-clock-minus\",\n \"alarm-plus\": \"alarm-clock-plus\",\n \"alert-circle\": \"circle-alert\",\n \"alert-octagon\": \"octagon-alert\",\n \"alert-triangle\": \"triangle-alert\",\n \"align-center\": \"text-align-center\",\n \"align-justify\": \"text-align-justify\",\n \"align-left\": \"text-align-start\",\n \"align-right\": \"text-align-end\",\n \"area-chart\": \"chart-area\",\n \"arrow-down-01\": \"arrow-down-0-1\",\n \"arrow-down-10\": \"arrow-down-1-0\",\n \"arrow-down-az\": \"arrow-down-a-z\",\n \"arrow-down-circle\": \"circle-arrow-down\",\n \"arrow-down-left-from-circle\": \"circle-arrow-out-down-left\",\n \"arrow-down-left-from-square\": \"square-arrow-out-down-left\",\n \"arrow-down-left-square\": \"square-arrow-down-left\",\n \"arrow-down-right-from-circle\": \"circle-arrow-out-down-right\",\n \"arrow-down-right-from-square\": \"square-arrow-out-down-right\",\n \"arrow-down-right-square\": \"square-arrow-down-right\",\n \"arrow-down-square\": \"square-arrow-down\",\n \"arrow-down-za\": \"arrow-down-z-a\",\n \"arrow-left-circle\": \"circle-arrow-left\",\n \"arrow-left-square\": \"square-arrow-left\",\n \"arrow-right-circle\": \"circle-arrow-right\",\n \"arrow-right-square\": \"square-arrow-right\",\n \"arrow-up-01\": \"arrow-up-0-1\",\n \"arrow-up-10\": \"arrow-up-1-0\",\n \"arrow-up-az\": \"arrow-up-a-z\",\n \"arrow-up-circle\": \"circle-arrow-up\",\n \"arrow-up-left-from-circle\": \"circle-arrow-out-up-left\",\n \"arrow-up-left-from-square\": \"square-arrow-out-up-left\",\n \"arrow-up-left-square\": \"square-arrow-up-left\",\n \"arrow-up-right-from-circle\": \"circle-arrow-out-up-right\",\n \"arrow-up-right-from-square\": \"square-arrow-out-up-right\",\n \"arrow-up-right-square\": \"square-arrow-up-right\",\n \"arrow-up-square\": \"square-arrow-up\",\n \"arrow-up-za\": \"arrow-up-z-a\",\n \"asterisk-square\": \"square-asterisk\",\n \"axis-3-d\": \"axis-3d\",\n \"badge-help\": \"badge-question-mark\",\n \"bar-chart\": \"chart-no-axes-column-increasing\",\n \"bar-chart-2\": \"chart-no-axes-column\",\n \"bar-chart-3\": \"chart-column\",\n \"bar-chart-4\": \"chart-column-increasing\",\n \"bar-chart-big\": \"chart-column-big\",\n \"bar-chart-horizontal\": \"chart-bar\",\n \"bar-chart-horizontal-big\": \"chart-bar-big\",\n \"between-horizonal-end\": \"between-horizontal-end\",\n \"between-horizonal-start\": \"between-horizontal-start\",\n \"book-template\": \"book-dashed\",\n \"box-select\": \"square-dashed\",\n \"candlestick-chart\": \"chart-candlestick\",\n \"check-circle\": \"circle-check-big\",\n \"check-circle-2\": \"circle-check\",\n \"check-square\": \"square-check-big\",\n \"check-square-2\": \"square-check\",\n \"chevron-down-circle\": \"circle-chevron-down\",\n \"chevron-down-square\": \"square-chevron-down\",\n \"chevron-left-circle\": \"circle-chevron-left\",\n \"chevron-left-square\": \"square-chevron-left\",\n \"chevron-right-circle\": \"circle-chevron-right\",\n \"chevron-right-square\": \"square-chevron-right\",\n \"chevron-up-circle\": \"circle-chevron-up\",\n \"chevron-up-square\": \"square-chevron-up\",\n \"circle-help\": \"circle-question-mark\",\n \"circle-slashed\": \"circle-slash-2\",\n \"clipboard-edit\": \"clipboard-pen\",\n \"clipboard-signature\": \"clipboard-pen-line\",\n \"code-2\": \"code-xml\",\n \"code-square\": \"square-code\",\n columns: \"columns-2\",\n \"columns-settings\": \"columns-3-cog\",\n \"contact-2\": \"contact-round\",\n \"curly-braces\": \"braces\",\n \"divide-circle\": \"circle-divide\",\n \"divide-square\": \"square-divide\",\n \"dot-square\": \"square-dot\",\n \"download-cloud\": \"cloud-download\",\n edit: \"square-pen\",\n \"edit-2\": \"pen\",\n \"edit-3\": \"pen-line\",\n \"equal-square\": \"square-equal\",\n \"file-audio\": \"file-headphone\",\n \"file-audio-2\": \"file-headphone\",\n \"file-axis-3-d\": \"file-axis-3d\",\n \"file-badge-2\": \"file-badge\",\n \"file-bar-chart\": \"file-chart-column-increasing\",\n \"file-bar-chart-2\": \"file-chart-column\",\n \"file-check-2\": \"file-check-corner\",\n \"file-code-2\": \"file-code-corner\",\n \"file-cog-2\": \"file-cog\",\n \"file-edit\": \"file-pen\",\n \"file-json\": \"file-braces\",\n \"file-json-2\": \"file-braces-corner\",\n \"file-key-2\": \"file-key\",\n \"file-line-chart\": \"file-chart-line\",\n \"file-lock-2\": \"file-lock\",\n \"file-minus-2\": \"file-minus-corner\",\n \"file-pie-chart\": \"file-chart-pie\",\n \"file-plus-2\": \"file-plus-corner\",\n \"file-question\": \"file-question-mark\",\n \"file-search-2\": \"file-search-corner\",\n \"file-signature\": \"file-pen-line\",\n \"file-type-2\": \"file-type-corner\",\n \"file-video\": \"file-play\",\n \"file-video-2\": \"file-video-camera\",\n \"file-volume-2\": \"file-signal\",\n \"file-warning\": \"file-exclamation-point\",\n \"file-x-2\": \"file-x-corner\",\n filter: \"funnel\",\n \"filter-x\": \"funnel-x\",\n \"flip-horizontal\": \"square-centerline-dashed-horizontal\",\n \"flip-vertical\": \"square-centerline-dashed-vertical\",\n \"folder-cog-2\": \"folder-cog\",\n \"folder-edit\": \"folder-pen\",\n \"fork-knife\": \"utensils\",\n \"fork-knife-crossed\": \"utensils-crossed\",\n \"form-input\": \"rectangle-ellipsis\",\n \"function-square\": \"square-function\",\n \"gantt-chart\": \"chart-no-axes-gantt\",\n \"gantt-chart-square\": \"square-chart-gantt\",\n \"gauge-circle\": \"circle-gauge\",\n \"git-commit\": \"git-commit-horizontal\",\n \"globe-2\": \"earth\",\n grab: \"hand-grab\",\n grid: \"grid-3x3\",\n \"grid-2-x-2\": \"grid-2x2\",\n \"grid-2-x-2-check\": \"grid-2x2-check\",\n \"grid-2-x-2-plus\": \"grid-2x2-plus\",\n \"grid-2-x-2-x\": \"grid-2x2-x\",\n \"grid-3-x-3\": \"grid-3x3\",\n \"help-circle\": \"circle-question-mark\",\n \"helping-hand\": \"hand-helping\",\n home: \"house\",\n \"ice-cream\": \"ice-cream-cone\",\n \"ice-cream-2\": \"ice-cream-bowl\",\n indent: \"list-indent-increase\",\n \"indent-decrease\": \"list-indent-decrease\",\n \"indent-increase\": \"list-indent-increase\",\n inspect: \"square-mouse-pointer\",\n \"kanban-square\": \"square-kanban\",\n \"kanban-square-dashed\": \"square-dashed-kanban\",\n \"laptop-2\": \"laptop-minimal\",\n \"layers-3\": \"layers\",\n layout: \"panels-top-left\",\n \"letter-text\": \"text-initial\",\n \"library-square\": \"square-library\",\n \"line-chart\": \"chart-line\",\n \"loader-2\": \"loader-circle\",\n \"location-edit\": \"map-pin-pen\",\n \"m-square\": \"square-m\",\n \"mail-question\": \"mail-question-mark\",\n \"menu-square\": \"square-menu\",\n \"message-circle-question\": \"message-circle-question-mark\",\n \"mic-2\": \"mic-vocal\",\n \"minus-circle\": \"circle-minus\",\n \"minus-square\": \"square-minus\",\n \"more-horizontal\": \"ellipsis\",\n \"more-vertical\": \"ellipsis-vertical\",\n \"mouse-pointer-square-dashed\": \"square-dashed-mouse-pointer\",\n \"move-3-d\": \"move-3d\",\n outdent: \"list-indent-decrease\",\n \"paintbrush-2\": \"paintbrush-vertical\",\n palmtree: \"tree-palm\",\n \"panel-bottom-inactive\": \"panel-bottom-dashed\",\n \"panel-left-inactive\": \"panel-left-dashed\",\n \"panel-right-inactive\": \"panel-right-dashed\",\n \"panel-top-inactive\": \"panel-top-dashed\",\n \"panels-left-right\": \"columns-3\",\n \"panels-top-bottom\": \"rows-3\",\n \"parking-circle\": \"circle-parking\",\n \"parking-circle-off\": \"circle-parking-off\",\n \"parking-square\": \"square-parking\",\n \"parking-square-off\": \"square-parking-off\",\n \"pause-circle\": \"circle-pause\",\n \"pause-octagon\": \"octagon-pause\",\n \"pen-box\": \"square-pen\",\n \"pen-square\": \"square-pen\",\n \"percent-circle\": \"circle-percent\",\n \"percent-diamond\": \"diamond-percent\",\n \"percent-square\": \"square-percent\",\n \"pi-square\": \"square-pi\",\n \"pie-chart\": \"chart-pie\",\n \"pilcrow-square\": \"square-pilcrow\",\n \"play-circle\": \"circle-play\",\n \"play-square\": \"square-play\",\n \"plug-zap-2\": \"plug-zap\",\n \"plus-circle\": \"circle-plus\",\n \"plus-square\": \"square-plus\",\n \"power-circle\": \"circle-power\",\n \"power-square\": \"square-power\",\n \"rotate-3-d\": \"rotate-3d\",\n rows: \"rows-2\",\n \"scale-3-d\": \"scale-3d\",\n \"scatter-chart\": \"chart-scatter\",\n \"school-2\": \"university\",\n \"scissors-square\": \"square-scissors\",\n \"scissors-square-dashed-bottom\": \"square-bottom-dashed-scissors\",\n \"send-horizonal\": \"send-horizontal\",\n \"shield-close\": \"shield-x\",\n \"shield-question\": \"shield-question-mark\",\n sidebar: \"panel-left\",\n \"sidebar-close\": \"panel-left-close\",\n \"sidebar-open\": \"panel-left-open\",\n \"sigma-square\": \"square-sigma\",\n \"slash-square\": \"square-slash\",\n sliders: \"sliders-vertical\",\n \"sort-asc\": \"arrow-up-narrow-wide\",\n \"sort-desc\": \"arrow-down-wide-narrow\",\n \"split-square-horizontal\": \"square-split-horizontal\",\n \"split-square-vertical\": \"square-split-vertical\",\n \"square-gantt-chart\": \"square-chart-gantt\",\n stars: \"sparkles\",\n \"stop-circle\": \"circle-stop\",\n subtitles: \"captions\",\n \"table-config\": \"columns-3-cog\",\n \"terminal-square\": \"square-terminal\",\n \"test-tube-2\": \"test-tube-diagonal\",\n text: \"text-align-start\",\n \"text-select\": \"square-dashed-text\",\n \"text-selection\": \"square-dashed-text\",\n train: \"tram-front\",\n \"tv-2\": \"tv-minimal\",\n unlock: \"lock-open\",\n \"unlock-keyhole\": \"lock-keyhole-open\",\n \"upload-cloud\": \"cloud-upload\",\n \"user-2\": \"user-round\",\n \"user-check-2\": \"user-round-check\",\n \"user-circle\": \"circle-user\",\n \"user-circle-2\": \"circle-user-round\",\n \"user-cog-2\": \"user-round-cog\",\n \"user-minus-2\": \"user-round-minus\",\n \"user-plus-2\": \"user-round-plus\",\n \"user-square\": \"square-user\",\n \"user-square-2\": \"square-user-round\",\n \"user-x-2\": \"user-round-x\",\n \"users-2\": \"users-round\",\n verified: \"badge-check\",\n \"wallet-2\": \"wallet-minimal\",\n \"wand-2\": \"wand-sparkles\",\n waves: \"waves-horizontal\",\n \"wrap-text\": \"text-wrap\",\n \"x-circle\": \"circle-x\",\n \"x-octagon\": \"octagon-x\",\n \"x-square\": \"square-x\",\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"aliases.js","names":[],"sources":["../../../src/icons/generated/aliases.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\n/**\n * Lucide's 257 deprecated slugs, mapped to the canonical slug that\n * replaced them (`alert-circle` → `circle-alert`).\n *\n * Kept so a name stored in a database years ago keeps rendering after a lucide\n * bump renames it. Resolution goes through here first, so an alias loads the\n * shard of its *canonical* slug.\n */\nexport const iconAliases: Record<string, string> = {\n \"activity-square\": \"square-activity\",\n \"alarm-check\": \"alarm-clock-check\",\n \"alarm-minus\": \"alarm-clock-minus\",\n \"alarm-plus\": \"alarm-clock-plus\",\n \"alert-circle\": \"circle-alert\",\n \"alert-octagon\": \"octagon-alert\",\n \"alert-triangle\": \"triangle-alert\",\n \"align-center\": \"text-align-center\",\n \"align-justify\": \"text-align-justify\",\n \"align-left\": \"text-align-start\",\n \"align-right\": \"text-align-end\",\n angry: \"face-angry\",\n annoyed: \"face-expressionless\",\n \"area-chart\": \"chart-area\",\n \"arrow-down-01\": \"arrow-down-0-1\",\n \"arrow-down-10\": \"arrow-down-1-0\",\n \"arrow-down-az\": \"arrow-down-a-z\",\n \"arrow-down-circle\": \"circle-arrow-down\",\n \"arrow-down-left-from-circle\": \"circle-arrow-out-down-left\",\n \"arrow-down-left-from-square\": \"square-arrow-out-down-left\",\n \"arrow-down-left-square\": \"square-arrow-down-left\",\n \"arrow-down-right-from-circle\": \"circle-arrow-out-down-right\",\n \"arrow-down-right-from-square\": \"square-arrow-out-down-right\",\n \"arrow-down-right-square\": \"square-arrow-down-right\",\n \"arrow-down-square\": \"square-arrow-down\",\n \"arrow-down-za\": \"arrow-down-z-a\",\n \"arrow-left-circle\": \"circle-arrow-left\",\n \"arrow-left-square\": \"square-arrow-left\",\n \"arrow-right-circle\": \"circle-arrow-right\",\n \"arrow-right-square\": \"square-arrow-right\",\n \"arrow-up-01\": \"arrow-up-0-1\",\n \"arrow-up-10\": \"arrow-up-1-0\",\n \"arrow-up-az\": \"arrow-up-a-z\",\n \"arrow-up-circle\": \"circle-arrow-up\",\n \"arrow-up-left-from-circle\": \"circle-arrow-out-up-left\",\n \"arrow-up-left-from-square\": \"square-arrow-out-up-left\",\n \"arrow-up-left-square\": \"square-arrow-up-left\",\n \"arrow-up-right-from-circle\": \"circle-arrow-out-up-right\",\n \"arrow-up-right-from-square\": \"square-arrow-out-up-right\",\n \"arrow-up-right-square\": \"square-arrow-up-right\",\n \"arrow-up-square\": \"square-arrow-up\",\n \"arrow-up-za\": \"arrow-up-z-a\",\n \"asterisk-square\": \"square-asterisk\",\n \"axis-3-d\": \"axis-3d\",\n \"badge-help\": \"badge-question-mark\",\n \"bar-chart\": \"chart-no-axes-column-increasing\",\n \"bar-chart-2\": \"chart-no-axes-column\",\n \"bar-chart-3\": \"chart-column\",\n \"bar-chart-4\": \"chart-column-increasing\",\n \"bar-chart-big\": \"chart-column-big\",\n \"bar-chart-horizontal\": \"chart-bar\",\n \"bar-chart-horizontal-big\": \"chart-bar-big\",\n \"between-horizonal-end\": \"between-horizontal-end\",\n \"between-horizonal-start\": \"between-horizontal-start\",\n \"book-template\": \"book-dashed\",\n \"box-select\": \"square-dashed\",\n \"candlestick-chart\": \"chart-candlestick\",\n \"check-circle\": \"circle-check-big\",\n \"check-circle-2\": \"circle-check\",\n \"check-square\": \"square-check-big\",\n \"check-square-2\": \"square-check\",\n \"chevron-down-circle\": \"circle-chevron-down\",\n \"chevron-down-square\": \"square-chevron-down\",\n \"chevron-left-circle\": \"circle-chevron-left\",\n \"chevron-left-square\": \"square-chevron-left\",\n \"chevron-right-circle\": \"circle-chevron-right\",\n \"chevron-right-square\": \"square-chevron-right\",\n \"chevron-up-circle\": \"circle-chevron-up\",\n \"chevron-up-square\": \"square-chevron-up\",\n \"circle-help\": \"circle-question-mark\",\n \"circle-slashed\": \"circle-slash-2\",\n \"clipboard-edit\": \"clipboard-pen\",\n \"clipboard-signature\": \"clipboard-pen-line\",\n \"code-2\": \"code-xml\",\n \"code-square\": \"square-code\",\n columns: \"columns-2\",\n \"columns-settings\": \"columns-3-cog\",\n \"contact-2\": \"contact-round\",\n \"curly-braces\": \"braces\",\n \"divide-circle\": \"circle-divide\",\n \"divide-square\": \"square-divide\",\n \"dot-square\": \"square-dot\",\n \"download-cloud\": \"cloud-download\",\n edit: \"square-pen\",\n \"edit-2\": \"pen\",\n \"edit-3\": \"pen-line\",\n \"equal-square\": \"square-equal\",\n \"file-audio\": \"file-headphone\",\n \"file-audio-2\": \"file-headphone\",\n \"file-axis-3-d\": \"file-axis-3d\",\n \"file-badge-2\": \"file-badge\",\n \"file-bar-chart\": \"file-chart-column-increasing\",\n \"file-bar-chart-2\": \"file-chart-column\",\n \"file-check-2\": \"file-check-corner\",\n \"file-code-2\": \"file-code-corner\",\n \"file-cog-2\": \"file-cog\",\n \"file-edit\": \"file-pen\",\n \"file-json\": \"file-braces\",\n \"file-json-2\": \"file-braces-corner\",\n \"file-key-2\": \"file-key\",\n \"file-line-chart\": \"file-chart-line\",\n \"file-lock-2\": \"file-lock\",\n \"file-minus-2\": \"file-minus-corner\",\n \"file-pie-chart\": \"file-chart-pie\",\n \"file-plus-2\": \"file-plus-corner\",\n \"file-question\": \"file-question-mark\",\n \"file-search-2\": \"file-search-corner\",\n \"file-signature\": \"file-pen-line\",\n \"file-type-2\": \"file-type-corner\",\n \"file-video\": \"file-play\",\n \"file-video-2\": \"file-video-camera\",\n \"file-volume-2\": \"file-signal\",\n \"file-warning\": \"file-exclamation-point\",\n \"file-x-2\": \"file-x-corner\",\n filter: \"funnel\",\n \"filter-x\": \"funnel-x\",\n \"flip-horizontal\": \"square-centerline-dashed-horizontal\",\n \"flip-vertical\": \"square-centerline-dashed-vertical\",\n \"folder-cog-2\": \"folder-cog\",\n \"folder-edit\": \"folder-pen\",\n \"fork-knife\": \"utensils\",\n \"fork-knife-crossed\": \"utensils-crossed\",\n \"form-input\": \"rectangle-ellipsis\",\n frown: \"face-slightly-frowning\",\n \"function-square\": \"square-function\",\n \"gantt-chart\": \"chart-no-axes-gantt\",\n \"gantt-chart-square\": \"square-chart-gantt\",\n \"gauge-circle\": \"circle-gauge\",\n \"git-commit\": \"git-commit-horizontal\",\n \"globe-2\": \"earth\",\n grab: \"hand-grab\",\n grid: \"grid-3x3\",\n \"grid-2-x-2\": \"grid-2x2\",\n \"grid-2-x-2-check\": \"grid-2x2-check\",\n \"grid-2-x-2-plus\": \"grid-2x2-plus\",\n \"grid-2-x-2-x\": \"grid-2x2-x\",\n \"grid-3-x-3\": \"grid-3x3\",\n \"help-circle\": \"circle-question-mark\",\n \"helping-hand\": \"hand-helping\",\n history: \"rotate-ccw-clock\",\n home: \"house\",\n \"ice-cream\": \"ice-cream-cone\",\n \"ice-cream-2\": \"ice-cream-bowl\",\n indent: \"list-indent-increase\",\n \"indent-decrease\": \"list-indent-decrease\",\n \"indent-increase\": \"list-indent-increase\",\n inspect: \"square-mouse-pointer\",\n \"kanban-square\": \"square-kanban\",\n \"kanban-square-dashed\": \"square-dashed-kanban\",\n \"laptop-2\": \"laptop-minimal\",\n laugh: \"face-grinning\",\n \"layers-3\": \"layers\",\n layout: \"panels-top-left\",\n \"letter-text\": \"text-initial\",\n \"library-square\": \"square-library\",\n \"line-chart\": \"chart-line\",\n \"loader-2\": \"loader-circle\",\n \"location-edit\": \"map-pin-pen\",\n \"m-square\": \"square-m\",\n \"mail-question\": \"mail-question-mark\",\n meh: \"face-neutral\",\n \"menu-square\": \"square-menu\",\n \"message-circle-question\": \"message-circle-question-mark\",\n \"mic-2\": \"mic-vocal\",\n \"minus-circle\": \"circle-minus\",\n \"minus-square\": \"square-minus\",\n \"more-horizontal\": \"ellipsis\",\n \"more-vertical\": \"ellipsis-vertical\",\n \"mouse-pointer-square-dashed\": \"square-dashed-mouse-pointer\",\n \"move-3-d\": \"move-3d\",\n outdent: \"list-indent-decrease\",\n \"paintbrush-2\": \"paintbrush-vertical\",\n palmtree: \"tree-palm\",\n \"panel-bottom-inactive\": \"panel-bottom-dashed\",\n \"panel-left-inactive\": \"panel-left-dashed\",\n \"panel-right-inactive\": \"panel-right-dashed\",\n \"panel-top-inactive\": \"panel-top-dashed\",\n \"panels-left-right\": \"columns-3\",\n \"panels-top-bottom\": \"rows-3\",\n \"parking-circle\": \"circle-parking\",\n \"parking-circle-off\": \"circle-parking-off\",\n \"parking-square\": \"square-parking\",\n \"parking-square-off\": \"square-parking-off\",\n \"pause-circle\": \"circle-pause\",\n \"pause-octagon\": \"octagon-pause\",\n \"pen-box\": \"square-pen\",\n \"pen-square\": \"square-pen\",\n \"percent-circle\": \"circle-percent\",\n \"percent-diamond\": \"diamond-percent\",\n \"percent-square\": \"square-percent\",\n \"pi-square\": \"square-pi\",\n \"pie-chart\": \"chart-pie\",\n \"pilcrow-square\": \"square-pilcrow\",\n \"play-circle\": \"circle-play\",\n \"play-square\": \"square-play\",\n \"plug-zap-2\": \"plug-zap\",\n \"plus-circle\": \"circle-plus\",\n \"plus-square\": \"square-plus\",\n podcast: \"mic-signal\",\n \"power-circle\": \"circle-power\",\n \"power-square\": \"square-power\",\n \"rotate-3-d\": \"rotate-3d\",\n rows: \"rows-2\",\n \"scale-3-d\": \"scale-3d\",\n \"scatter-chart\": \"chart-scatter\",\n \"school-2\": \"university\",\n \"scissors-square\": \"square-scissors\",\n \"scissors-square-dashed-bottom\": \"square-bottom-dashed-scissors\",\n \"send-horizonal\": \"send-horizontal\",\n \"shield-close\": \"shield-x\",\n \"shield-question\": \"shield-question-mark\",\n sidebar: \"panel-left\",\n \"sidebar-close\": \"panel-left-close\",\n \"sidebar-open\": \"panel-left-open\",\n \"sigma-square\": \"square-sigma\",\n \"slash-square\": \"square-slash\",\n sliders: \"sliders-vertical\",\n smile: \"face-slightly-smiling\",\n \"smile-plus\": \"face-slightly-smiling-plus\",\n \"sort-asc\": \"arrow-up-narrow-wide\",\n \"sort-desc\": \"arrow-down-wide-narrow\",\n \"split-square-horizontal\": \"square-split-horizontal\",\n \"split-square-vertical\": \"square-split-vertical\",\n \"square-gantt-chart\": \"square-chart-gantt\",\n stars: \"sparkles\",\n \"stop-circle\": \"circle-stop\",\n subtitles: \"captions\",\n \"table-config\": \"columns-3-cog\",\n \"terminal-square\": \"square-terminal\",\n \"test-tube-2\": \"test-tube-diagonal\",\n text: \"text-align-start\",\n \"text-select\": \"square-dashed-text\",\n \"text-selection\": \"square-dashed-text\",\n train: \"tram-front\",\n \"tv-2\": \"tv-minimal\",\n unlock: \"lock-open\",\n \"unlock-keyhole\": \"lock-keyhole-open\",\n \"upload-cloud\": \"cloud-upload\",\n \"user-2\": \"user-round\",\n \"user-check-2\": \"user-round-check\",\n \"user-circle\": \"circle-user\",\n \"user-circle-2\": \"circle-user-round\",\n \"user-cog-2\": \"user-round-cog\",\n \"user-minus-2\": \"user-round-minus\",\n \"user-plus-2\": \"user-round-plus\",\n \"user-square\": \"square-user\",\n \"user-square-2\": \"square-user-round\",\n \"user-x-2\": \"user-round-x\",\n \"users-2\": \"users-round\",\n verified: \"badge-check\",\n \"wallet-2\": \"wallet-minimal\",\n \"wand-2\": \"wand-sparkles\",\n waves: \"waves-horizontal\",\n \"wrap-text\": \"text-wrap\",\n \"x-circle\": \"circle-x\",\n \"x-octagon\": \"octagon-x\",\n \"x-square\": \"square-x\",\n};\n"],"mappings":"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"}