@huggingface/inference 3.14.0 → 4.0.0

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 (130) hide show
  1. package/README.md +104 -1
  2. package/dist/commonjs/errors.d.ts +46 -0
  3. package/dist/commonjs/errors.d.ts.map +1 -0
  4. package/dist/commonjs/errors.js +70 -0
  5. package/dist/commonjs/index.d.ts +1 -1
  6. package/dist/commonjs/index.d.ts.map +1 -1
  7. package/dist/commonjs/index.js +2 -3
  8. package/dist/commonjs/lib/getInferenceProviderMapping.d.ts.map +1 -1
  9. package/dist/commonjs/lib/getInferenceProviderMapping.js +27 -16
  10. package/dist/commonjs/lib/getProviderHelper.d.ts.map +1 -1
  11. package/dist/commonjs/lib/getProviderHelper.js +5 -3
  12. package/dist/commonjs/lib/makeRequestOptions.d.ts.map +1 -1
  13. package/dist/commonjs/lib/makeRequestOptions.js +12 -11
  14. package/dist/commonjs/package.d.ts +1 -1
  15. package/dist/commonjs/package.d.ts.map +1 -1
  16. package/dist/commonjs/package.js +1 -1
  17. package/dist/commonjs/providers/black-forest-labs.d.ts.map +1 -1
  18. package/dist/commonjs/providers/black-forest-labs.js +4 -4
  19. package/dist/commonjs/providers/fal-ai.d.ts.map +1 -1
  20. package/dist/commonjs/providers/fal-ai.js +29 -17
  21. package/dist/commonjs/providers/featherless-ai.d.ts.map +1 -1
  22. package/dist/commonjs/providers/featherless-ai.js +10 -4
  23. package/dist/commonjs/providers/hf-inference.d.ts.map +1 -1
  24. package/dist/commonjs/providers/hf-inference.js +27 -30
  25. package/dist/commonjs/providers/hyperbolic.d.ts.map +1 -1
  26. package/dist/commonjs/providers/hyperbolic.js +3 -3
  27. package/dist/commonjs/providers/nebius.d.ts.map +1 -1
  28. package/dist/commonjs/providers/nebius.js +2 -2
  29. package/dist/commonjs/providers/novita.d.ts +5 -6
  30. package/dist/commonjs/providers/novita.d.ts.map +1 -1
  31. package/dist/commonjs/providers/novita.js +66 -16
  32. package/dist/commonjs/providers/nscale.d.ts.map +1 -1
  33. package/dist/commonjs/providers/nscale.js +2 -2
  34. package/dist/commonjs/providers/ovhcloud.d.ts.map +1 -1
  35. package/dist/commonjs/providers/ovhcloud.js +2 -2
  36. package/dist/commonjs/providers/providerHelper.js +3 -3
  37. package/dist/commonjs/providers/replicate.js +4 -4
  38. package/dist/commonjs/providers/sambanova.d.ts +16 -0
  39. package/dist/commonjs/providers/sambanova.d.ts.map +1 -1
  40. package/dist/commonjs/providers/sambanova.js +2 -18
  41. package/dist/commonjs/providers/together.d.ts.map +1 -1
  42. package/dist/commonjs/providers/together.js +3 -3
  43. package/dist/commonjs/tasks/audio/automaticSpeechRecognition.d.ts.map +1 -1
  44. package/dist/commonjs/tasks/audio/automaticSpeechRecognition.js +2 -2
  45. package/dist/commonjs/utils/request.d.ts.map +1 -1
  46. package/dist/commonjs/utils/request.js +77 -12
  47. package/dist/commonjs/vendor/type-fest/basic.d.ts +33 -0
  48. package/dist/commonjs/vendor/type-fest/basic.d.ts.map +1 -0
  49. package/dist/commonjs/vendor/type-fest/basic.js +2 -0
  50. package/dist/esm/errors.d.ts +46 -0
  51. package/dist/esm/errors.d.ts.map +1 -0
  52. package/dist/esm/errors.js +62 -0
  53. package/dist/esm/index.d.ts +1 -1
  54. package/dist/esm/index.d.ts.map +1 -1
  55. package/dist/esm/index.js +1 -1
  56. package/dist/esm/lib/getInferenceProviderMapping.d.ts.map +1 -1
  57. package/dist/esm/lib/getInferenceProviderMapping.js +27 -16
  58. package/dist/esm/lib/getProviderHelper.d.ts.map +1 -1
  59. package/dist/esm/lib/getProviderHelper.js +5 -3
  60. package/dist/esm/lib/makeRequestOptions.d.ts.map +1 -1
  61. package/dist/esm/lib/makeRequestOptions.js +12 -11
  62. package/dist/esm/package.d.ts +1 -1
  63. package/dist/esm/package.d.ts.map +1 -1
  64. package/dist/esm/package.js +1 -1
  65. package/dist/esm/providers/black-forest-labs.d.ts.map +1 -1
  66. package/dist/esm/providers/black-forest-labs.js +4 -4
  67. package/dist/esm/providers/fal-ai.d.ts.map +1 -1
  68. package/dist/esm/providers/fal-ai.js +29 -17
  69. package/dist/esm/providers/featherless-ai.d.ts.map +1 -1
  70. package/dist/esm/providers/featherless-ai.js +10 -4
  71. package/dist/esm/providers/hf-inference.d.ts.map +1 -1
  72. package/dist/esm/providers/hf-inference.js +27 -30
  73. package/dist/esm/providers/hyperbolic.d.ts.map +1 -1
  74. package/dist/esm/providers/hyperbolic.js +3 -3
  75. package/dist/esm/providers/nebius.d.ts.map +1 -1
  76. package/dist/esm/providers/nebius.js +2 -2
  77. package/dist/esm/providers/novita.d.ts +5 -6
  78. package/dist/esm/providers/novita.d.ts.map +1 -1
  79. package/dist/esm/providers/novita.js +66 -16
  80. package/dist/esm/providers/nscale.d.ts.map +1 -1
  81. package/dist/esm/providers/nscale.js +2 -2
  82. package/dist/esm/providers/ovhcloud.d.ts.map +1 -1
  83. package/dist/esm/providers/ovhcloud.js +2 -2
  84. package/dist/esm/providers/providerHelper.js +3 -3
  85. package/dist/esm/providers/replicate.js +4 -4
  86. package/dist/esm/providers/sambanova.d.ts +16 -0
  87. package/dist/esm/providers/sambanova.d.ts.map +1 -1
  88. package/dist/esm/providers/sambanova.js +2 -18
  89. package/dist/esm/providers/together.d.ts.map +1 -1
  90. package/dist/esm/providers/together.js +3 -3
  91. package/dist/esm/tasks/audio/automaticSpeechRecognition.d.ts.map +1 -1
  92. package/dist/esm/tasks/audio/automaticSpeechRecognition.js +2 -2
  93. package/dist/esm/utils/request.d.ts.map +1 -1
  94. package/dist/esm/utils/request.js +77 -12
  95. package/dist/esm/vendor/type-fest/basic.d.ts +33 -0
  96. package/dist/esm/vendor/type-fest/basic.d.ts.map +1 -0
  97. package/dist/esm/vendor/type-fest/basic.js +1 -0
  98. package/package.json +2 -2
  99. package/src/errors.ts +82 -0
  100. package/src/index.ts +1 -1
  101. package/src/lib/getInferenceProviderMapping.ts +42 -22
  102. package/src/lib/getProviderHelper.ts +9 -3
  103. package/src/lib/makeRequestOptions.ts +20 -11
  104. package/src/package.ts +1 -1
  105. package/src/providers/black-forest-labs.ts +14 -4
  106. package/src/providers/fal-ai.ts +59 -23
  107. package/src/providers/featherless-ai.ts +10 -4
  108. package/src/providers/hf-inference.ts +75 -34
  109. package/src/providers/hyperbolic.ts +3 -4
  110. package/src/providers/nebius.ts +2 -2
  111. package/src/providers/novita.ts +103 -23
  112. package/src/providers/nscale.ts +2 -2
  113. package/src/providers/ovhcloud.ts +2 -2
  114. package/src/providers/providerHelper.ts +3 -3
  115. package/src/providers/replicate.ts +4 -4
  116. package/src/providers/sambanova.ts +3 -4
  117. package/src/providers/together.ts +3 -3
  118. package/src/tasks/audio/automaticSpeechRecognition.ts +2 -2
  119. package/src/tasks/cv/textToVideo.ts +2 -2
  120. package/src/utils/request.ts +127 -14
  121. package/src/vendor/type-fest/basic.ts +31 -0
  122. package/src/vendor/type-fest/license-cc0 +121 -0
  123. package/src/vendor/type-fest/license-mit +9 -0
  124. package/dist/commonjs/lib/InferenceOutputError.d.ts +0 -4
  125. package/dist/commonjs/lib/InferenceOutputError.d.ts.map +0 -1
  126. package/dist/commonjs/lib/InferenceOutputError.js +0 -10
  127. package/dist/esm/lib/InferenceOutputError.d.ts +0 -4
  128. package/dist/esm/lib/InferenceOutputError.d.ts.map +0 -1
  129. package/dist/esm/lib/InferenceOutputError.js +0 -6
  130. package/src/lib/InferenceOutputError.ts +0 -8
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Base class for all inference-related errors.
3
+ */
4
+ export class InferenceClientError extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = "InferenceClientError";
8
+ }
9
+ }
10
+ export class InferenceClientInputError extends InferenceClientError {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = "InputError";
14
+ }
15
+ }
16
+ class InferenceClientHttpRequestError extends InferenceClientError {
17
+ httpRequest;
18
+ httpResponse;
19
+ constructor(message, httpRequest, httpResponse) {
20
+ super(message);
21
+ this.httpRequest = {
22
+ ...httpRequest,
23
+ ...(httpRequest.headers
24
+ ? {
25
+ headers: {
26
+ ...httpRequest.headers,
27
+ ...("Authorization" in httpRequest.headers ? { Authorization: `Bearer [redacted]` } : undefined),
28
+ /// redact authentication in the request headers
29
+ },
30
+ }
31
+ : undefined),
32
+ };
33
+ this.httpResponse = httpResponse;
34
+ }
35
+ }
36
+ /**
37
+ * Thrown when the HTTP request to the provider fails, e.g. due to API issues or server errors.
38
+ */
39
+ export class InferenceClientProviderApiError extends InferenceClientHttpRequestError {
40
+ constructor(message, httpRequest, httpResponse) {
41
+ super(message, httpRequest, httpResponse);
42
+ this.name = "ProviderApiError";
43
+ }
44
+ }
45
+ /**
46
+ * Thrown when the HTTP request to the hub fails, e.g. due to API issues or server errors.
47
+ */
48
+ export class InferenceClientHubApiError extends InferenceClientHttpRequestError {
49
+ constructor(message, httpRequest, httpResponse) {
50
+ super(message, httpRequest, httpResponse);
51
+ this.name = "HubApiError";
52
+ }
53
+ }
54
+ /**
55
+ * Thrown when the inference output returned by the provider is invalid / does not match the expectations
56
+ */
57
+ export class InferenceClientProviderOutputError extends InferenceClientError {
58
+ constructor(message) {
59
+ super(message);
60
+ this.name = "ProviderOutputError";
61
+ }
62
+ }
@@ -1,5 +1,5 @@
1
1
  export { InferenceClient, InferenceClientEndpoint, HfInference } from "./InferenceClient.js";
2
- export { InferenceOutputError } from "./lib/InferenceOutputError.js";
2
+ export * from "./errors.js";
3
3
  export * from "./types.js";
4
4
  export * from "./tasks/index.js";
5
5
  import * as snippets from "./snippets/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7F,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { InferenceClient, InferenceClientEndpoint, HfInference } from "./InferenceClient.js";
2
- export { InferenceOutputError } from "./lib/InferenceOutputError.js";
2
+ export * from "./errors.js";
3
3
  export * from "./types.js";
4
4
  export * from "./tasks/index.js";
5
5
  import * as snippets from "./snippets/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"getInferenceProviderMapping.d.ts","sourceRoot":"","sources":["../../../src/lib/getInferenceProviderMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGzF,eAAO,MAAM,6BAA6B,uTAA+C,CAAC;AAE1F,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAC7C,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAAC,CAC3E,CAAC;AAEF,MAAM,WAAW,6BAA6B;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;CACjB;AAED,wBAAsB,qCAAqC,CAC1D,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IACT,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtE,GACC,OAAO,CAAC,wBAAwB,CAAC,CA6BnC;AAED,wBAAsB,2BAA2B,CAChD,MAAM,EAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC;CACjB,EACD,OAAO,EAAE;IACR,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtE,GACC,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CA4B/C;AAED,wBAAsB,eAAe,CACpC,QAAQ,CAAC,EAAE,yBAAyB,EACpC,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CAyB5B"}
1
+ {"version":3,"file":"getInferenceProviderMapping.d.ts","sourceRoot":"","sources":["../../../src/lib/getInferenceProviderMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAIzF,eAAO,MAAM,6BAA6B,uTAA+C,CAAC;AAE1F,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAC7C,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAAC,CAC3E,CAAC;AAEF,MAAM,WAAW,6BAA6B;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;CACjB;AAED,wBAAsB,qCAAqC,CAC1D,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IACT,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtE,GACC,OAAO,CAAC,wBAAwB,CAAC,CAgDnC;AAED,wBAAsB,2BAA2B,CAChD,MAAM,EAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC;CACjB,EACD,OAAO,EAAE;IACR,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtE,GACC,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CA4B/C;AAED,wBAAsB,eAAe,CACpC,QAAQ,CAAC,EAAE,yBAAyB,EACpC,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CAyB5B"}
@@ -2,6 +2,7 @@ import { HF_HUB_URL } from "../config.js";
2
2
  import { HARDCODED_MODEL_INFERENCE_MAPPING } from "../providers/consts.js";
3
3
  import { EQUIVALENT_SENTENCE_TRANSFORMERS_TASKS } from "../providers/hf-inference.js";
4
4
  import { typedInclude } from "../utils/typedInclude.js";
5
+ import { InferenceClientHubApiError, InferenceClientInputError } from "../errors.js";
5
6
  export const inferenceProviderMappingCache = new Map();
6
7
  export async function fetchInferenceProviderMappingForModel(modelId, accessToken, options) {
7
8
  let inferenceProviderMapping;
@@ -10,22 +11,32 @@ export async function fetchInferenceProviderMappingForModel(modelId, accessToken
10
11
  inferenceProviderMapping = inferenceProviderMappingCache.get(modelId);
11
12
  }
12
13
  else {
13
- const resp = await (options?.fetch ?? fetch)(`${HF_HUB_URL}/api/models/${modelId}?expand[]=inferenceProviderMapping`, {
14
+ const url = `${HF_HUB_URL}/api/models/${modelId}?expand[]=inferenceProviderMapping`;
15
+ const resp = await (options?.fetch ?? fetch)(url, {
14
16
  headers: accessToken?.startsWith("hf_") ? { Authorization: `Bearer ${accessToken}` } : {},
15
17
  });
16
- if (resp.status === 404) {
17
- throw new Error(`Model ${modelId} does not exist`);
18
+ if (!resp.ok) {
19
+ if (resp.headers.get("Content-Type")?.startsWith("application/json")) {
20
+ const error = await resp.json();
21
+ if ("error" in error && typeof error.error === "string") {
22
+ throw new InferenceClientHubApiError(`Failed to fetch inference provider mapping for model ${modelId}: ${error.error}`, { url, method: "GET" }, { requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: error });
23
+ }
24
+ }
25
+ else {
26
+ throw new InferenceClientHubApiError(`Failed to fetch inference provider mapping for model ${modelId}`, { url, method: "GET" }, { requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: await resp.text() });
27
+ }
18
28
  }
19
- inferenceProviderMapping = await resp
20
- .json()
21
- .then((json) => json.inferenceProviderMapping)
22
- .catch(() => null);
23
- if (inferenceProviderMapping) {
24
- inferenceProviderMappingCache.set(modelId, inferenceProviderMapping);
29
+ let payload = null;
30
+ try {
31
+ payload = await resp.json();
25
32
  }
26
- }
27
- if (!inferenceProviderMapping) {
28
- throw new Error(`We have not been able to find inference provider information for model ${modelId}.`);
33
+ catch {
34
+ throw new InferenceClientHubApiError(`Failed to fetch inference provider mapping for model ${modelId}: malformed API response, invalid JSON`, { url, method: "GET" }, { requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: await resp.text() });
35
+ }
36
+ if (!payload?.inferenceProviderMapping) {
37
+ throw new InferenceClientHubApiError(`We have not been able to find inference provider information for model ${modelId}.`, { url, method: "GET" }, { requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: await resp.text() });
38
+ }
39
+ inferenceProviderMapping = payload.inferenceProviderMapping;
29
40
  }
30
41
  return inferenceProviderMapping;
31
42
  }
@@ -40,7 +51,7 @@ export async function getInferenceProviderMapping(params, options) {
40
51
  ? EQUIVALENT_SENTENCE_TRANSFORMERS_TASKS
41
52
  : [params.task];
42
53
  if (!typedInclude(equivalentTasks, providerMapping.task)) {
43
- throw new Error(`Model ${params.modelId} is not supported for task ${params.task} and provider ${params.provider}. Supported task: ${providerMapping.task}.`);
54
+ throw new InferenceClientInputError(`Model ${params.modelId} is not supported for task ${params.task} and provider ${params.provider}. Supported task: ${providerMapping.task}.`);
44
55
  }
45
56
  if (providerMapping.status === "staging") {
46
57
  console.warn(`Model ${params.modelId} is in staging mode for provider ${params.provider}. Meant for test purposes only.`);
@@ -52,7 +63,7 @@ export async function getInferenceProviderMapping(params, options) {
52
63
  export async function resolveProvider(provider, modelId, endpointUrl) {
53
64
  if (endpointUrl) {
54
65
  if (provider) {
55
- throw new Error("Specifying both endpointUrl and provider is not supported.");
66
+ throw new InferenceClientInputError("Specifying both endpointUrl and provider is not supported.");
56
67
  }
57
68
  /// Defaulting to hf-inference helpers / API
58
69
  return "hf-inference";
@@ -63,13 +74,13 @@ export async function resolveProvider(provider, modelId, endpointUrl) {
63
74
  }
64
75
  if (provider === "auto") {
65
76
  if (!modelId) {
66
- throw new Error("Specifying a model is required when provider is 'auto'");
77
+ throw new InferenceClientInputError("Specifying a model is required when provider is 'auto'");
67
78
  }
68
79
  const inferenceProviderMapping = await fetchInferenceProviderMappingForModel(modelId);
69
80
  provider = Object.keys(inferenceProviderMapping)[0];
70
81
  }
71
82
  if (!provider) {
72
- throw new Error(`No Inference Provider available for model ${modelId}.`);
83
+ throw new InferenceClientInputError(`No Inference Provider available for model ${modelId}.`);
73
84
  }
74
85
  return provider;
75
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getProviderHelper.d.ts","sourceRoot":"","sources":["../../../src/lib/getProviderHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getProviderHelper.d.ts","sourceRoot":"","sources":["../../../src/lib/getProviderHelper.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import * as OvhCloud from "../providers/ovhcloud.js";
15
15
  import * as Replicate from "../providers/replicate.js";
16
16
  import * as Sambanova from "../providers/sambanova.js";
17
17
  import * as Together from "../providers/together.js";
18
+ import { InferenceClientInputError } from "../errors.js";
18
19
  export const PROVIDERS = {
19
20
  "black-forest-labs": {
20
21
  "text-to-image": new BlackForestLabs.BlackForestLabsTextToImageTask(),
@@ -86,6 +87,7 @@ export const PROVIDERS = {
86
87
  novita: {
87
88
  conversational: new Novita.NovitaConversationalTask(),
88
89
  "text-generation": new Novita.NovitaTextGenerationTask(),
90
+ "text-to-video": new Novita.NovitaTextToVideoTask(),
89
91
  },
90
92
  nscale: {
91
93
  "text-to-image": new Nscale.NscaleTextToImageTask(),
@@ -118,14 +120,14 @@ export function getProviderHelper(provider, task) {
118
120
  return new HFInference.HFInferenceTask();
119
121
  }
120
122
  if (!task) {
121
- throw new Error("you need to provide a task name when using an external provider, e.g. 'text-to-image'");
123
+ throw new InferenceClientInputError("you need to provide a task name when using an external provider, e.g. 'text-to-image'");
122
124
  }
123
125
  if (!(provider in PROVIDERS)) {
124
- throw new Error(`Provider '${provider}' not supported. Available providers: ${Object.keys(PROVIDERS)}`);
126
+ throw new InferenceClientInputError(`Provider '${provider}' not supported. Available providers: ${Object.keys(PROVIDERS)}`);
125
127
  }
126
128
  const providerTasks = PROVIDERS[provider];
127
129
  if (!providerTasks || !(task in providerTasks)) {
128
- throw new Error(`Task '${task}' not supported for provider '${provider}'. Available tasks: ${Object.keys(providerTasks ?? {})}`);
130
+ throw new InferenceClientInputError(`Task '${task}' not supported for provider '${provider}'. Available tasks: ${Object.keys(providerTasks ?? {})}`);
129
131
  }
130
132
  return providerTasks[task];
131
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"makeRequestOptions.d.ts","sourceRoot":"","sources":["../../../src/lib/makeRequestOptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAShE;;;GAGG;AACH,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,WAAW,GAAG;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,EACD,cAAc,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACpD,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB,GACC,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAmE7C;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAClD,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACpD,IAAI,EAAE,WAAW,GAAG;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,EACD,OAAO,EAAE,6BAA6B,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB,GACC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CA+EpC"}
1
+ {"version":3,"file":"makeRequestOptions.d.ts","sourceRoot":"","sources":["../../../src/lib/makeRequestOptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAUhE;;;GAGG;AACH,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,WAAW,GAAG;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,EACD,cAAc,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACpD,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB,GACC,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAqE7C;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAClD,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACpD,IAAI,EAAE,WAAW,GAAG;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,EACD,OAAO,EAAE,6BAA6B,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB,GACC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CA8EpC"}
@@ -2,6 +2,7 @@ import { HF_HEADER_X_BILL_TO, HF_HUB_URL } from "../config.js";
2
2
  import { PACKAGE_NAME, PACKAGE_VERSION } from "../package.js";
3
3
  import { getInferenceProviderMapping } from "./getInferenceProviderMapping.js";
4
4
  import { isUrl } from "./isUrl.js";
5
+ import { InferenceClientHubApiError, InferenceClientInputError } from "../errors.js";
5
6
  /**
6
7
  * Lazy-loaded from huggingface.co/api/tasks when needed
7
8
  * Used to determine the default model to use when it's not user defined
@@ -17,22 +18,22 @@ export async function makeRequestOptions(args, providerHelper, options) {
17
18
  const { task } = options ?? {};
18
19
  // Validate inputs
19
20
  if (args.endpointUrl && provider !== "hf-inference") {
20
- throw new Error(`Cannot use endpointUrl with a third-party provider.`);
21
+ throw new InferenceClientInputError(`Cannot use endpointUrl with a third-party provider.`);
21
22
  }
22
23
  if (maybeModel && isUrl(maybeModel)) {
23
- throw new Error(`Model URLs are no longer supported. Use endpointUrl instead.`);
24
+ throw new InferenceClientInputError(`Model URLs are no longer supported. Use endpointUrl instead.`);
24
25
  }
25
26
  if (args.endpointUrl) {
26
27
  // No need to have maybeModel, or to load default model for a task
27
28
  return makeRequestOptionsFromResolvedModel(maybeModel ?? args.endpointUrl, providerHelper, args, undefined, options);
28
29
  }
29
30
  if (!maybeModel && !task) {
30
- throw new Error("No model provided, and no task has been specified.");
31
+ throw new InferenceClientInputError("No model provided, and no task has been specified.");
31
32
  }
32
33
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
33
34
  const hfModel = maybeModel ?? (await loadDefaultModel(task));
34
35
  if (providerHelper.clientSideRoutingOnly && !maybeModel) {
35
- throw new Error(`Provider ${provider} requires a model ID to be passed directly.`);
36
+ throw new InferenceClientInputError(`Provider ${provider} requires a model ID to be passed directly.`);
36
37
  }
37
38
  const inferenceProviderMapping = providerHelper.clientSideRoutingOnly
38
39
  ? {
@@ -52,7 +53,7 @@ export async function makeRequestOptions(args, providerHelper, options) {
52
53
  accessToken: args.accessToken,
53
54
  }, { fetch: options?.fetch });
54
55
  if (!inferenceProviderMapping) {
55
- throw new Error(`We have not been able to find inference provider information for model ${hfModel}.`);
56
+ throw new InferenceClientInputError(`We have not been able to find inference provider information for model ${hfModel}.`);
56
57
  }
57
58
  // Use the sync version with the resolved model
58
59
  return makeRequestOptionsFromResolvedModel(inferenceProviderMapping.providerId, providerHelper, args, inferenceProviderMapping, options);
@@ -71,9 +72,8 @@ export function makeRequestOptionsFromResolvedModel(resolvedModel, providerHelpe
71
72
  if (providerHelper.clientSideRoutingOnly) {
72
73
  // Closed-source providers require an accessToken (cannot be routed).
73
74
  if (accessToken && accessToken.startsWith("hf_")) {
74
- throw new Error(`Provider ${provider} is closed-source and does not support HF tokens.`);
75
+ throw new InferenceClientInputError(`Provider ${provider} is closed-source and does not support HF tokens.`);
75
76
  }
76
- return "provider-key";
77
77
  }
78
78
  if (accessToken) {
79
79
  return accessToken.startsWith("hf_") ? "hf-token" : "provider-key";
@@ -138,20 +138,21 @@ async function loadDefaultModel(task) {
138
138
  }
139
139
  const taskInfo = tasks[task];
140
140
  if ((taskInfo?.models.length ?? 0) <= 0) {
141
- throw new Error(`No default model defined for task ${task}, please define the model explicitly.`);
141
+ throw new InferenceClientInputError(`No default model defined for task ${task}, please define the model explicitly.`);
142
142
  }
143
143
  return taskInfo.models[0].id;
144
144
  }
145
145
  async function loadTaskInfo() {
146
- const res = await fetch(`${HF_HUB_URL}/api/tasks`);
146
+ const url = `${HF_HUB_URL}/api/tasks`;
147
+ const res = await fetch(url);
147
148
  if (!res.ok) {
148
- throw new Error("Failed to load tasks definitions from Hugging Face Hub.");
149
+ throw new InferenceClientHubApiError("Failed to load tasks definitions from Hugging Face Hub.", { url, method: "GET" }, { requestId: res.headers.get("x-request-id") ?? "", status: res.status, body: await res.text() });
149
150
  }
150
151
  return await res.json();
151
152
  }
152
153
  function removeProviderPrefix(model, provider) {
153
154
  if (!model.startsWith(`${provider}/`)) {
154
- throw new Error(`Models from ${provider} must be prefixed by "${provider}/". Got "${model}".`);
155
+ throw new InferenceClientInputError(`Models from ${provider} must be prefixed by "${provider}/". Got "${model}".`);
155
156
  }
156
157
  return model.slice(provider.length + 1);
157
158
  }
@@ -1,3 +1,3 @@
1
- export declare const PACKAGE_VERSION = "3.14.0";
1
+ export declare const PACKAGE_VERSION = "4.0.0";
2
2
  export declare const PACKAGE_NAME = "@huggingface/inference";
3
3
  //# sourceMappingURL=package.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,YAAY,2BAA2B,CAAC"}
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,YAAY,2BAA2B,CAAC"}
@@ -1,3 +1,3 @@
1
1
  // Generated file from package.json. Issues importing JSON directly when publishing on commonjs/ESM - see https://github.com/microsoft/TypeScript/issues/51783
2
- export const PACKAGE_VERSION = "3.14.0";
2
+ export const PACKAGE_VERSION = "4.0.0";
3
3
  export const PACKAGE_NAME = "@huggingface/inference";
@@ -1 +1 @@
1
- {"version":3,"file":"black-forest-labs.d.ts","sourceRoot":"","sources":["../../../src/providers/black-forest-labs.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGrF,UAAU,uBAAuB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,8BAA+B,SAAQ,kBAAmB,YAAW,qBAAqB;;IAKtG,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQlD,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAWtF,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAO9B,WAAW,CAChB,QAAQ,EAAE,uBAAuB,EACjC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAgCzB"}
1
+ {"version":3,"file":"black-forest-labs.d.ts","sourceRoot":"","sources":["../../../src/providers/black-forest-labs.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGrF,UAAU,uBAAuB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,8BAA+B,SAAQ,kBAAmB,YAAW,qBAAqB;;IAKtG,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQlD,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAWtF,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAO9B,WAAW,CAChB,QAAQ,EAAE,uBAAuB,EACjC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAsCzB"}
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * Thanks!
16
16
  */
17
- import { InferenceOutputError } from "../lib/InferenceOutputError.js";
17
+ import { InferenceClientInputError, InferenceClientProviderApiError, InferenceClientProviderOutputError, } from "../errors.js";
18
18
  import { delay } from "../utils/delay.js";
19
19
  import { omit } from "../utils/omit.js";
20
20
  import { TaskProviderHelper } from "./providerHelper.js";
@@ -41,7 +41,7 @@ export class BlackForestLabsTextToImageTask extends TaskProviderHelper {
41
41
  }
42
42
  makeRoute(params) {
43
43
  if (!params) {
44
- throw new Error("Params are required");
44
+ throw new InferenceClientInputError("Params are required");
45
45
  }
46
46
  return `/v1/${params.model}`;
47
47
  }
@@ -53,7 +53,7 @@ export class BlackForestLabsTextToImageTask extends TaskProviderHelper {
53
53
  urlObj.searchParams.set("attempt", step.toString(10));
54
54
  const resp = await fetch(urlObj, { headers: { "Content-Type": "application/json" } });
55
55
  if (!resp.ok) {
56
- throw new InferenceOutputError("Failed to fetch result from black forest labs API");
56
+ throw new InferenceClientProviderApiError("Failed to fetch result from black forest labs API", { url: urlObj.toString(), method: "GET", headers: { "Content-Type": "application/json" } }, { requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: await resp.text() });
57
57
  }
58
58
  const payload = await resp.json();
59
59
  if (typeof payload === "object" &&
@@ -73,6 +73,6 @@ export class BlackForestLabsTextToImageTask extends TaskProviderHelper {
73
73
  return await image.blob();
74
74
  }
75
75
  }
76
- throw new InferenceOutputError("Failed to fetch result from black forest labs API");
76
+ throw new InferenceClientProviderOutputError(`Timed out while waiting for the result from black forest labs API - aborting after 5 attempts`);
77
77
  }
78
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fal-ai.d.ts","sourceRoot":"","sources":["../../../src/providers/fal-ai.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAG3E,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAW,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7F,OAAO,EACN,KAAK,oCAAoC,EACzC,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAEnG,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,sBAAsB;IAC/B,MAAM,EAAE,KAAK,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACZ,CAAC,CAAC;CACH;AAYD,eAAO,MAAM,2BAA2B,UAA0D,CAAC;AAEnG,uBAAe,SAAU,SAAQ,kBAAkB;gBACtC,GAAG,CAAC,EAAE,MAAM;IAIxB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAG3D,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAG3B,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAUtF;AAMD,qBAAa,oBAAqB,SAAQ,SAAU,YAAW,qBAAqB;IAC1E,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAuBrD,WAAW,CAAC,QAAQ,EAAE,sBAAsB,EAAE,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAkBjH;AAED,qBAAa,oBAAqB,SAAQ,SAAU,YAAW,qBAAqB;;IAI1E,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAMpC,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQrD,WAAW,CACzB,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CA8DhB;AAED,qBAAa,mCAAoC,SAAQ,SAAU,YAAW,oCAAoC;IACxG,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKvE,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAUlF,mBAAmB,CAAC,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,WAAW,CAAC;CAqBrF;AAED,qBAAa,qBAAsB,SAAQ,SAAS;IAC1C,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQrD,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAqB5D"}
1
+ {"version":3,"file":"fal-ai.d.ts","sourceRoot":"","sources":["../../../src/providers/fal-ai.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAW,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7F,OAAO,EACN,KAAK,oCAAoC,EACzC,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAOnG,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,sBAAsB;IAC/B,MAAM,EAAE,KAAK,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACZ,CAAC,CAAC;CACH;AAYD,eAAO,MAAM,2BAA2B,UAA0D,CAAC;AAEnG,uBAAe,SAAU,SAAQ,kBAAkB;gBACtC,GAAG,CAAC,EAAE,MAAM;IAIxB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAG3D,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAG3B,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAUtF;AAMD,qBAAa,oBAAqB,SAAQ,SAAU,YAAW,qBAAqB;IAC1E,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAuBrD,WAAW,CAAC,QAAQ,EAAE,sBAAsB,EAAE,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAkBjH;AAED,qBAAa,oBAAqB,SAAQ,SAAU,YAAW,qBAAqB;;IAI1E,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAMpC,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQrD,WAAW,CACzB,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CA8EhB;AAED,qBAAa,mCAAoC,SAAQ,SAAU,YAAW,oCAAoC;IACxG,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKvE,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAYlF,mBAAmB,CAAC,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,WAAW,CAAC;CAqBrF;AAED,qBAAa,qBAAsB,SAAQ,SAAS;IAC1C,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQrD,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAmC5D"}
@@ -15,12 +15,12 @@
15
15
  * Thanks!
16
16
  */
17
17
  import { base64FromBytes } from "../utils/base64FromBytes.js";
18
- import { InferenceOutputError } from "../lib/InferenceOutputError.js";
19
18
  import { isUrl } from "../lib/isUrl.js";
20
19
  import { delay } from "../utils/delay.js";
21
20
  import { omit } from "../utils/omit.js";
22
21
  import { TaskProviderHelper, } from "./providerHelper.js";
23
22
  import { HF_HUB_URL } from "../config.js";
23
+ import { InferenceClientInputError, InferenceClientProviderApiError, InferenceClientProviderOutputError, } from "../errors.js";
24
24
  export const FAL_AI_SUPPORTED_BLOB_TYPES = ["audio/mpeg", "audio/mp4", "audio/wav", "audio/x-wav"];
25
25
  class FalAITask extends TaskProviderHelper {
26
26
  constructor(url) {
@@ -79,7 +79,7 @@ export class FalAITextToImageTask extends FalAITask {
79
79
  const urlResponse = await fetch(response.images[0].url);
80
80
  return await urlResponse.blob();
81
81
  }
82
- throw new InferenceOutputError("Expected Fal.ai text-to-image response format");
82
+ throw new InferenceClientProviderOutputError("Received malformed response from Fal.ai text-to-image API");
83
83
  }
84
84
  }
85
85
  export class FalAITextToVideoTask extends FalAITask {
@@ -101,11 +101,11 @@ export class FalAITextToVideoTask extends FalAITask {
101
101
  }
102
102
  async getResponse(response, url, headers) {
103
103
  if (!url || !headers) {
104
- throw new InferenceOutputError("URL and headers are required for text-to-video task");
104
+ throw new InferenceClientInputError("URL and headers are required for text-to-video task");
105
105
  }
106
106
  const requestId = response.request_id;
107
107
  if (!requestId) {
108
- throw new InferenceOutputError("No request ID found in the response");
108
+ throw new InferenceClientProviderOutputError("Received malformed response from Fal.ai text-to-video API: no request ID found in the response");
109
109
  }
110
110
  let status = response.status;
111
111
  const parsedUrl = new URL(url);
@@ -120,13 +120,17 @@ export class FalAITextToVideoTask extends FalAITask {
120
120
  await delay(500);
121
121
  const statusResponse = await fetch(statusUrl, { headers });
122
122
  if (!statusResponse.ok) {
123
- throw new InferenceOutputError("Failed to fetch response status from fal-ai API");
123
+ throw new InferenceClientProviderApiError("Failed to fetch response status from fal-ai API", { url: statusUrl, method: "GET" }, {
124
+ requestId: statusResponse.headers.get("x-request-id") ?? "",
125
+ status: statusResponse.status,
126
+ body: await statusResponse.text(),
127
+ });
124
128
  }
125
129
  try {
126
130
  status = (await statusResponse.json()).status;
127
131
  }
128
132
  catch (error) {
129
- throw new InferenceOutputError("Failed to parse status response from fal-ai API");
133
+ throw new InferenceClientProviderOutputError("Failed to parse status response from fal-ai API: received malformed response");
130
134
  }
131
135
  }
132
136
  const resultResponse = await fetch(resultUrl, { headers });
@@ -135,7 +139,7 @@ export class FalAITextToVideoTask extends FalAITask {
135
139
  result = await resultResponse.json();
136
140
  }
137
141
  catch (error) {
138
- throw new InferenceOutputError("Failed to parse result response from fal-ai API");
142
+ throw new InferenceClientProviderOutputError("Failed to parse result response from fal-ai API: received malformed response");
139
143
  }
140
144
  if (typeof result === "object" &&
141
145
  !!result &&
@@ -149,7 +153,7 @@ export class FalAITextToVideoTask extends FalAITask {
149
153
  return await urlResponse.blob();
150
154
  }
151
155
  else {
152
- throw new InferenceOutputError("Expected { video: { url: string } } result format, got instead: " + JSON.stringify(result));
156
+ throw new InferenceClientProviderOutputError(`Received malformed response from Fal.ai text-to-video API: expected { video: { url: string } } result format, got instead: ${JSON.stringify(result)}`);
153
157
  }
154
158
  }
155
159
  }
@@ -162,7 +166,7 @@ export class FalAIAutomaticSpeechRecognitionTask extends FalAITask {
162
166
  async getResponse(response) {
163
167
  const res = response;
164
168
  if (typeof res?.text !== "string") {
165
- throw new InferenceOutputError(`Expected { text: string } format from Fal.ai Automatic Speech Recognition, got: ${JSON.stringify(response)}`);
169
+ throw new InferenceClientProviderOutputError(`Received malformed response from Fal.ai Automatic Speech Recognition API: expected { text: string } format, got instead: ${JSON.stringify(response)}`);
166
170
  }
167
171
  return { text: res.text };
168
172
  }
@@ -170,10 +174,10 @@ export class FalAIAutomaticSpeechRecognitionTask extends FalAITask {
170
174
  const blob = "data" in args && args.data instanceof Blob ? args.data : "inputs" in args ? args.inputs : undefined;
171
175
  const contentType = blob?.type;
172
176
  if (!contentType) {
173
- throw new Error(`Unable to determine the input's content-type. Make sure your are passing a Blob when using provider fal-ai.`);
177
+ throw new InferenceClientInputError(`Unable to determine the input's content-type. Make sure your are passing a Blob when using provider fal-ai.`);
174
178
  }
175
179
  if (!FAL_AI_SUPPORTED_BLOB_TYPES.includes(contentType)) {
176
- throw new Error(`Provider fal-ai does not support blob type ${contentType} - supported content types are: ${FAL_AI_SUPPORTED_BLOB_TYPES.join(", ")}`);
180
+ throw new InferenceClientInputError(`Provider fal-ai does not support blob type ${contentType} - supported content types are: ${FAL_AI_SUPPORTED_BLOB_TYPES.join(", ")}`);
177
181
  }
178
182
  const base64audio = base64FromBytes(new Uint8Array(await blob.arrayBuffer()));
179
183
  return {
@@ -193,17 +197,25 @@ export class FalAITextToSpeechTask extends FalAITask {
193
197
  async getResponse(response) {
194
198
  const res = response;
195
199
  if (typeof res?.audio?.url !== "string") {
196
- throw new InferenceOutputError(`Expected { audio: { url: string } } format from Fal.ai Text-to-Speech, got: ${JSON.stringify(response)}`);
200
+ throw new InferenceClientProviderOutputError(`Received malformed response from Fal.ai Text-to-Speech API: expected { audio: { url: string } } format, got instead: ${JSON.stringify(response)}`);
201
+ }
202
+ const urlResponse = await fetch(res.audio.url);
203
+ if (!urlResponse.ok) {
204
+ throw new InferenceClientProviderApiError(`Failed to fetch audio from ${res.audio.url}: ${urlResponse.statusText}`, { url: res.audio.url, method: "GET", headers: { "Content-Type": "application/json" } }, {
205
+ requestId: urlResponse.headers.get("x-request-id") ?? "",
206
+ status: urlResponse.status,
207
+ body: await urlResponse.text(),
208
+ });
197
209
  }
198
210
  try {
199
- const urlResponse = await fetch(res.audio.url);
200
- if (!urlResponse.ok) {
201
- throw new Error(`Failed to fetch audio from ${res.audio.url}: ${urlResponse.statusText}`);
202
- }
203
211
  return await urlResponse.blob();
204
212
  }
205
213
  catch (error) {
206
- throw new InferenceOutputError(`Error fetching or processing audio from Fal.ai Text-to-Speech URL: ${res.audio.url}. ${error instanceof Error ? error.message : String(error)}`);
214
+ throw new InferenceClientProviderApiError(`Failed to fetch audio from ${res.audio.url}: ${error instanceof Error ? error.message : String(error)}`, { url: res.audio.url, method: "GET", headers: { "Content-Type": "application/json" } }, {
215
+ requestId: urlResponse.headers.get("x-request-id") ?? "",
216
+ status: urlResponse.status,
217
+ body: await urlResponse.text(),
218
+ });
207
219
  }
208
220
  }
209
221
  }
@@ -1 +1 @@
1
- {"version":3,"file":"featherless-ai.d.ts","sourceRoot":"","sources":["../../../src/providers/featherless-ai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,gCAAgC,EAChC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAErF,UAAU,iCAAkC,SAAQ,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IACxF,OAAO,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,gCAAgC,CAAC;QAChD,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACH;AAID,qBAAa,+BAAgC,SAAQ,sBAAsB;;CAI1E;AAED,qBAAa,+BAAgC,SAAQ,sBAAsB;;IAKjE,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAS1E,WAAW,CAAC,QAAQ,EAAE,iCAAiC,GAAG,OAAO,CAAC,oBAAoB,CAAC;CActG"}
1
+ {"version":3,"file":"featherless-ai.d.ts","sourceRoot":"","sources":["../../../src/providers/featherless-ai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,gCAAgC,EAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAIrF,UAAU,iCAAkC,SAAQ,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IACxF,OAAO,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,gCAAgC,CAAC;QAChD,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACH;AAID,qBAAa,+BAAgC,SAAQ,sBAAsB;;CAI1E;AAED,qBAAa,+BAAgC,SAAQ,sBAAsB;;IAKjE,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAc1E,WAAW,CAAC,QAAQ,EAAE,iCAAiC,GAAG,OAAO,CAAC,oBAAoB,CAAC;CActG"}
@@ -1,5 +1,6 @@
1
- import { InferenceOutputError } from "../lib/InferenceOutputError.js";
2
1
  import { BaseConversationalTask, BaseTextGenerationTask } from "./providerHelper.js";
2
+ import { omit } from "../utils/omit.js";
3
+ import { InferenceClientProviderOutputError } from "../errors.js";
3
4
  const FEATHERLESS_API_BASE_URL = "https://api.featherless.ai";
4
5
  export class FeatherlessAIConversationalTask extends BaseConversationalTask {
5
6
  constructor() {
@@ -12,9 +13,14 @@ export class FeatherlessAITextGenerationTask extends BaseTextGenerationTask {
12
13
  }
13
14
  preparePayload(params) {
14
15
  return {
15
- ...params.args,
16
- ...params.args.parameters,
17
16
  model: params.model,
17
+ ...omit(params.args, ["inputs", "parameters"]),
18
+ ...(params.args.parameters
19
+ ? {
20
+ max_tokens: params.args.parameters.max_new_tokens,
21
+ ...omit(params.args.parameters, "max_new_tokens"),
22
+ }
23
+ : undefined),
18
24
  prompt: params.args.inputs,
19
25
  };
20
26
  }
@@ -28,6 +34,6 @@ export class FeatherlessAITextGenerationTask extends BaseTextGenerationTask {
28
34
  generated_text: completion.text,
29
35
  };
30
36
  }
31
- throw new InferenceOutputError("Expected Featherless AI text generation response format");
37
+ throw new InferenceClientProviderOutputError("Received malformed response from Featherless AI text generation API");
32
38
  }
33
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hf-inference.d.ts","sourceRoot":"","sources":["../../../src/providers/hf-inference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hf-inference.d.ts","sourceRoot":"","sources":["../../../src/providers/hf-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EACX,yBAAyB,EACzB,gCAAgC,EAChC,oBAAoB,EACpB,+BAA+B,EAC/B,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,4BAA4B,EAC5B,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,6BAA6B,EAC7B,4BAA4B,EAC5B,iCAAiC,EACjC,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EACX,6BAA6B,EAC7B,sBAAsB,EACtB,oCAAoC,EACpC,wBAAwB,EACxB,mCAAmC,EACnC,2BAA2B,EAC3B,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,gCAAgC,EAChC,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC7B,qBAAqB,EACrB,iCAAiC,EACjC,gCAAgC,EAChC,qCAAqC,EACrC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAEnG,UAAU,qBAAqB;IAC9B,IAAI,EAAE,KAAK,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACH;AAED,UAAU,wBAAwB;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,UAAU,kBAAkB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,sCAAsC,wDAAyD,CAAC;AAE7G,qBAAa,eAAgB,SAAQ,kBAAkB;;IAItD,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAGlD,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAO3C,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAQrB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAG/D;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;IAChF,WAAW,CACzB,QAAQ,EAAE,qBAAqB,GAAG,wBAAwB,EAC1D,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAmCzB;AAED,qBAAa,6BAA8B,SAAQ,eAAgB,YAAW,wBAAwB;IAC5F,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAkBlC,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAOrD,WAAW,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAGzF;AAED,qBAAa,6BAA8B,SAAQ,eAAgB,YAAW,wBAAwB;IACtF,WAAW,CAAC,QAAQ,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;CASlH;AAED,qBAAa,kCAAmC,SAAQ,eAAgB,YAAW,6BAA6B;IAChG,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAcjF;AAED,qBAAa,yCACZ,SAAQ,eACR,YAAW,oCAAoC;IAEhC,WAAW,CAAC,QAAQ,EAAE,gCAAgC,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAI3G,mBAAmB,CAAC,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,WAAW,CAAC;CAQrF;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;IAClF,WAAW,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;CA0BzF;AAED,qBAAa,wCACZ,SAAQ,eACR,YAAW,mCAAmC;IAE/B,WAAW,CACzB,QAAQ,EAAE,+BAA+B,GACvC,OAAO,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;CAmBnD;AAED,qBAAa,gCAAiC,SAAQ,eAAgB,YAAW,2BAA2B;IAC5F,WAAW,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAgB/F;AAED,qBAAa,kCAAmC,SAAQ,eAAgB,YAAW,6BAA6B;IAChG,WAAW,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAQnG;AAED,qBAAa,gCAAiC,SAAQ,eAAgB,YAAW,2BAA2B;IAC5F,WAAW,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAgB/F;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;IAChF,WAAW,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAQnF;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;IAC3F,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAiBxD,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAQzD;AAED,qBAAa,8BAA+B,SAAQ,eAAgB,YAAW,yBAAyB;IACxF,WAAW,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAmB3F;AAED,qBAAa,0CACZ,SAAQ,eACR,YAAW,qCAAqC;IAEjC,WAAW,CAAC,QAAQ,EAAE,iCAAiC,GAAG,OAAO,CAAC,iCAAiC,CAAC;CAQnH;AAED,qBAAa,iCAAkC,SAAQ,eAAgB,YAAW,4BAA4B;IAC9F,WAAW,CAAC,QAAQ,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;CASjG;AAED,qBAAa,gCAAiC,SAAQ,eAAgB,YAAW,2BAA2B;IAC5F,WAAW,CACzB,QAAQ,EAAE,uBAAuB,GAAG,uBAAuB,CAAC,MAAM,CAAC,GACjE,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;CAyB3C;AAED,qBAAa,uBAAwB,SAAQ,eAAgB,YAAW,kBAAkB;IAC1E,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;CAiB7E;AAED,qBAAa,qCAAsC,SAAQ,eAAgB,YAAW,gCAAgC;IACtG,WAAW,CAAC,QAAQ,EAAE,4BAA4B,GAAG,OAAO,CAAC,4BAA4B,CAAC;CAkBzG;AAED,qBAAa,iCAAkC,SAAQ,eAAgB,YAAW,4BAA4B;IAC9F,WAAW,CAAC,QAAQ,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAQjG;AAED,qBAAa,qCAAsC,SAAQ,eAAgB,YAAW,gCAAgC;IACrH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,4BAA4B,CAAC,MAAM,CAAC;IAkB7D,WAAW,CAAC,QAAQ,EAAE,4BAA4B,GAAG,OAAO,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;CAYjH;AAED,qBAAa,kCAAmC,SAAQ,eAAgB,YAAW,6BAA6B;IAChG,WAAW,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAkBnG;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;IAChF,WAAW,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAQnF;AAED,qBAAa,4BAA6B,SAAQ,eAAgB,YAAW,uBAAuB;IACpF,WAAW,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAQvF;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;IAClF,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzD;AAED,qBAAa,oCAAqC,SAAQ,eAAgB,YAAW,+BAA+B;IACpG,WAAW,CAAC,QAAQ,EAAE,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAQvG;AAED,qBAAa,sCACZ,SAAQ,eACR,YAAW,iCAAiC;IAE7B,WAAW,CAAC,QAAQ,EAAE,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;CAcnH;AAED,qBAAa,gCAAiC,SAAQ,eAAgB,YAAW,2BAA2B;IAC5F,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAQjE;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;IAChF,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzD"}