promptfoo 0.103.4 → 0.103.6
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.
- package/LICENSE +10 -1
- package/dist/package.json +9 -9
- package/dist/src/app/assets/{index-Br_ykdEV.js → index-CsrcHuZk.js} +203 -203
- package/dist/src/app/assets/{index.es-lNQS-wgf.js → index.es-Ccp6ob2s.js} +1 -1
- package/dist/src/app/assets/{sync-CRhW4wge.js → sync-_oBoT8fc.js} +1 -1
- package/dist/src/app/index.html +1 -1
- package/dist/src/assertions/index.d.ts +1 -1
- package/dist/src/assertions/index.d.ts.map +1 -1
- package/dist/src/assertions/index.js +1 -10
- package/dist/src/assertions/index.js.map +1 -1
- package/dist/src/assertions/utils.d.ts +5 -2
- package/dist/src/assertions/utils.d.ts.map +1 -1
- package/dist/src/commands/auth.d.ts +1 -0
- package/dist/src/commands/auth.d.ts.map +1 -1
- package/dist/src/commands/auth.js +7 -3
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/database/tables.d.ts +45 -12
- package/dist/src/database/tables.d.ts.map +1 -1
- package/dist/src/fetch.d.ts.map +1 -1
- package/dist/src/fetch.js +20 -3
- package/dist/src/fetch.js.map +1 -1
- package/dist/src/globalConfig/cloud.d.ts +1 -0
- package/dist/src/globalConfig/cloud.d.ts.map +1 -1
- package/dist/src/globalConfig/cloud.js +4 -4
- package/dist/src/globalConfig/cloud.js.map +1 -1
- package/dist/src/index.d.ts +19 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +13 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/providers/bedrock.d.ts.map +1 -1
- package/dist/src/providers/bedrock.js +28 -9
- package/dist/src/providers/bedrock.js.map +1 -1
- package/dist/src/providers/browser.js +1 -1
- package/dist/src/providers/browser.js.map +1 -1
- package/dist/src/providers/defaults.d.ts +1 -0
- package/dist/src/providers/defaults.d.ts.map +1 -1
- package/dist/src/providers/defaults.js +11 -0
- package/dist/src/providers/defaults.js.map +1 -1
- package/dist/src/providers/http.d.ts.map +1 -1
- package/dist/src/providers/http.js +39 -63
- package/dist/src/providers/http.js.map +1 -1
- package/dist/src/redteam/commands/run.d.ts +2 -0
- package/dist/src/redteam/commands/run.d.ts.map +1 -1
- package/dist/src/redteam/commands/run.js +41 -31
- package/dist/src/redteam/commands/run.js.map +1 -1
- package/dist/src/redteam/constants.d.ts +2 -2
- package/dist/src/redteam/constants.d.ts.map +1 -1
- package/dist/src/redteam/constants.js +3 -6
- package/dist/src/redteam/constants.js.map +1 -1
- package/dist/src/redteam/plugins/base.d.ts.map +1 -1
- package/dist/src/redteam/plugins/base.js +3 -0
- package/dist/src/redteam/plugins/base.js.map +1 -1
- package/dist/src/redteam/providers/crescendo/index.d.ts +1 -0
- package/dist/src/redteam/providers/crescendo/index.d.ts.map +1 -1
- package/dist/src/redteam/providers/crescendo/index.js +58 -3
- package/dist/src/redteam/providers/crescendo/index.js.map +1 -1
- package/dist/src/redteam/providers/iterative.js +4 -4
- package/dist/src/redteam/providers/iterative.js.map +1 -1
- package/dist/src/redteam/providers/iterativeTree.d.ts.map +1 -1
- package/dist/src/redteam/providers/iterativeTree.js +5 -4
- package/dist/src/redteam/providers/iterativeTree.js.map +1 -1
- package/dist/src/redteam/shared.d.ts.map +1 -1
- package/dist/src/redteam/shared.js +4 -1
- package/dist/src/redteam/shared.js.map +1 -1
- package/dist/src/types/env.d.ts +2 -0
- package/dist/src/types/env.d.ts.map +1 -1
- package/dist/src/types/index.d.ts +1215 -342
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/util/convertEvalResultsToTable.d.ts.map +1 -1
- package/dist/src/util/convertEvalResultsToTable.js +14 -0
- package/dist/src/util/convertEvalResultsToTable.js.map +1 -1
- package/dist/src/util/index.d.ts +10 -4
- package/dist/src/util/index.d.ts.map +1 -1
- package/dist/src/validators/providers.d.ts +71 -2
- package/dist/src/validators/providers.d.ts.map +1 -1
- package/dist/src/validators/providers.js +3 -0
- package/dist/src/validators/providers.js.map +1 -1
- package/dist/src/validators/redteam.d.ts +24 -0
- package/dist/src/validators/redteam.d.ts.map +1 -1
- package/dist/test/assertions/index.test.js +0 -30
- package/dist/test/assertions/index.test.js.map +1 -1
- package/dist/test/assertions/python.test.js +35 -0
- package/dist/test/assertions/python.test.js.map +1 -1
- package/dist/test/factories/evalFactory.d.ts +35 -8
- package/dist/test/factories/evalFactory.d.ts.map +1 -1
- package/dist/test/fetch.test.js +147 -19
- package/dist/test/fetch.test.js.map +1 -1
- package/dist/test/index.test.js +2 -0
- package/dist/test/index.test.js.map +1 -1
- package/dist/test/providers/bedrock.test.js +38 -0
- package/dist/test/providers/bedrock.test.js.map +1 -1
- package/dist/test/providers/defaults.test.d.ts +2 -0
- package/dist/test/providers/defaults.test.d.ts.map +1 -0
- package/dist/test/providers/defaults.test.js +77 -0
- package/dist/test/providers/defaults.test.js.map +1 -0
- package/dist/test/providers/http.test.js +65 -9
- package/dist/test/providers/http.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
|
@@ -31,6 +31,7 @@ export default class EvalFactory {
|
|
|
31
31
|
WATSONX_AI_APIKEY?: string | undefined;
|
|
32
32
|
WATSONX_AI_PROJECT_ID?: string | undefined;
|
|
33
33
|
WATSONX_AI_BEARER_TOKEN?: string | undefined;
|
|
34
|
+
WATSONX_AI_AUTH_TYPE?: string | undefined;
|
|
34
35
|
AZURE_CLIENT_SECRET?: string | undefined;
|
|
35
36
|
AZURE_CLIENT_ID?: string | undefined;
|
|
36
37
|
AZURE_TENANT_ID?: string | undefined;
|
|
@@ -71,6 +72,8 @@ export default class EvalFactory {
|
|
|
71
72
|
VERTEX_PROJECT_ID?: string | undefined;
|
|
72
73
|
VERTEX_PUBLISHER?: string | undefined;
|
|
73
74
|
VERTEX_REGION?: string | undefined;
|
|
75
|
+
PROMPTFOO_CA_CERT_PATH?: string | undefined;
|
|
76
|
+
PROMPTFOO_INSECURE_SSL?: string | undefined;
|
|
74
77
|
} | undefined;
|
|
75
78
|
metadata?: Record<string, any> | undefined;
|
|
76
79
|
description?: string | undefined;
|
|
@@ -115,6 +118,7 @@ export default class EvalFactory {
|
|
|
115
118
|
WATSONX_AI_APIKEY?: string | undefined;
|
|
116
119
|
WATSONX_AI_PROJECT_ID?: string | undefined;
|
|
117
120
|
WATSONX_AI_BEARER_TOKEN?: string | undefined;
|
|
121
|
+
WATSONX_AI_AUTH_TYPE?: string | undefined;
|
|
118
122
|
AZURE_CLIENT_SECRET?: string | undefined;
|
|
119
123
|
AZURE_CLIENT_ID?: string | undefined;
|
|
120
124
|
AZURE_TENANT_ID?: string | undefined;
|
|
@@ -155,6 +159,8 @@ export default class EvalFactory {
|
|
|
155
159
|
VERTEX_PROJECT_ID?: string | undefined;
|
|
156
160
|
VERTEX_PUBLISHER?: string | undefined;
|
|
157
161
|
VERTEX_REGION?: string | undefined;
|
|
162
|
+
PROMPTFOO_CA_CERT_PATH?: string | undefined;
|
|
163
|
+
PROMPTFOO_INSECURE_SSL?: string | undefined;
|
|
158
164
|
} | undefined;
|
|
159
165
|
} | (((args_0: string, args_1: {
|
|
160
166
|
vars: Record<string, string | {}>;
|
|
@@ -197,6 +203,7 @@ export default class EvalFactory {
|
|
|
197
203
|
WATSONX_AI_APIKEY?: string | undefined;
|
|
198
204
|
WATSONX_AI_PROJECT_ID?: string | undefined;
|
|
199
205
|
WATSONX_AI_BEARER_TOKEN?: string | undefined;
|
|
206
|
+
WATSONX_AI_AUTH_TYPE?: string | undefined;
|
|
200
207
|
AZURE_CLIENT_SECRET?: string | undefined;
|
|
201
208
|
AZURE_CLIENT_ID?: string | undefined;
|
|
202
209
|
AZURE_TENANT_ID?: string | undefined;
|
|
@@ -237,6 +244,8 @@ export default class EvalFactory {
|
|
|
237
244
|
VERTEX_PROJECT_ID?: string | undefined;
|
|
238
245
|
VERTEX_PUBLISHER?: string | undefined;
|
|
239
246
|
VERTEX_REGION?: string | undefined;
|
|
247
|
+
PROMPTFOO_CA_CERT_PATH?: string | undefined;
|
|
248
|
+
PROMPTFOO_INSECURE_SSL?: string | undefined;
|
|
240
249
|
} | undefined;
|
|
241
250
|
}>)[] | undefined;
|
|
242
251
|
tests?: string | (string | {
|
|
@@ -286,6 +295,7 @@ export default class EvalFactory {
|
|
|
286
295
|
WATSONX_AI_APIKEY?: string | undefined;
|
|
287
296
|
WATSONX_AI_PROJECT_ID?: string | undefined;
|
|
288
297
|
WATSONX_AI_BEARER_TOKEN?: string | undefined;
|
|
298
|
+
WATSONX_AI_AUTH_TYPE?: string | undefined;
|
|
289
299
|
AZURE_CLIENT_SECRET?: string | undefined;
|
|
290
300
|
AZURE_CLIENT_ID?: string | undefined;
|
|
291
301
|
AZURE_TENANT_ID?: string | undefined;
|
|
@@ -326,6 +336,8 @@ export default class EvalFactory {
|
|
|
326
336
|
VERTEX_PROJECT_ID?: string | undefined;
|
|
327
337
|
VERTEX_PUBLISHER?: string | undefined;
|
|
328
338
|
VERTEX_REGION?: string | undefined;
|
|
339
|
+
PROMPTFOO_CA_CERT_PATH?: string | undefined;
|
|
340
|
+
PROMPTFOO_INSECURE_SSL?: string | undefined;
|
|
329
341
|
} | undefined;
|
|
330
342
|
} | {
|
|
331
343
|
callApi: import("../../src").CallApiFunction;
|
|
@@ -344,7 +356,7 @@ export default class EvalFactory {
|
|
|
344
356
|
description?: string | undefined;
|
|
345
357
|
providerOutput?: string | {} | undefined;
|
|
346
358
|
assert?: ({
|
|
347
|
-
type: "
|
|
359
|
+
type: "moderation" | `promptfoo:redteam:${string}` | "cost" | "factuality" | "answer-relevance" | "bleu" | "classifier" | "contains-all" | "contains-any" | "contains-json" | "contains-sql" | "contains-xml" | "contains" | "context-faithfulness" | "context-recall" | "context-relevance" | "equals" | "g-eval" | "icontains-all" | "icontains-any" | "icontains" | "is-json" | "is-refusal" | "is-sql" | "is-valid-openai-function-call" | "is-valid-openai-tools-call" | "is-xml" | "javascript" | "latency" | "levenshtein" | "llm-rubric" | "model-graded-closedqa" | "model-graded-factuality" | "perplexity-score" | "perplexity" | "python" | "regex" | "rouge-n" | "similar" | "starts-with" | "webhook" | "not-moderation" | "not-cost" | "not-factuality" | "not-answer-relevance" | "not-bleu" | "not-classifier" | "not-contains-all" | "not-contains-any" | "not-contains-json" | "not-contains-sql" | "not-contains-xml" | "not-contains" | "not-context-faithfulness" | "not-context-recall" | "not-context-relevance" | "not-equals" | "not-g-eval" | "not-icontains-all" | "not-icontains-any" | "not-icontains" | "not-is-json" | "not-is-refusal" | "not-is-sql" | "not-is-valid-openai-function-call" | "not-is-valid-openai-tools-call" | "not-is-xml" | "not-javascript" | "not-latency" | "not-levenshtein" | "not-llm-rubric" | "not-model-graded-closedqa" | "not-model-graded-factuality" | "not-perplexity-score" | "not-perplexity" | "not-python" | "not-regex" | "not-rouge-n" | "not-similar" | "not-starts-with" | "not-webhook" | "select-best" | "human";
|
|
348
360
|
value?: import("../../src").AssertionValue | undefined;
|
|
349
361
|
config?: Record<string, any> | undefined;
|
|
350
362
|
provider?: any;
|
|
@@ -359,7 +371,7 @@ export default class EvalFactory {
|
|
|
359
371
|
} | {
|
|
360
372
|
type: "assert-set";
|
|
361
373
|
assert: {
|
|
362
|
-
type: "
|
|
374
|
+
type: "moderation" | `promptfoo:redteam:${string}` | "cost" | "factuality" | "answer-relevance" | "bleu" | "classifier" | "contains-all" | "contains-any" | "contains-json" | "contains-sql" | "contains-xml" | "contains" | "context-faithfulness" | "context-recall" | "context-relevance" | "equals" | "g-eval" | "icontains-all" | "icontains-any" | "icontains" | "is-json" | "is-refusal" | "is-sql" | "is-valid-openai-function-call" | "is-valid-openai-tools-call" | "is-xml" | "javascript" | "latency" | "levenshtein" | "llm-rubric" | "model-graded-closedqa" | "model-graded-factuality" | "perplexity-score" | "perplexity" | "python" | "regex" | "rouge-n" | "similar" | "starts-with" | "webhook" | "not-moderation" | "not-cost" | "not-factuality" | "not-answer-relevance" | "not-bleu" | "not-classifier" | "not-contains-all" | "not-contains-any" | "not-contains-json" | "not-contains-sql" | "not-contains-xml" | "not-contains" | "not-context-faithfulness" | "not-context-recall" | "not-context-relevance" | "not-equals" | "not-g-eval" | "not-icontains-all" | "not-icontains-any" | "not-icontains" | "not-is-json" | "not-is-refusal" | "not-is-sql" | "not-is-valid-openai-function-call" | "not-is-valid-openai-tools-call" | "not-is-xml" | "not-javascript" | "not-latency" | "not-levenshtein" | "not-llm-rubric" | "not-model-graded-closedqa" | "not-model-graded-factuality" | "not-perplexity-score" | "not-perplexity" | "not-python" | "not-regex" | "not-rouge-n" | "not-similar" | "not-starts-with" | "not-webhook" | "select-best" | "human";
|
|
363
375
|
value?: import("../../src").AssertionValue | undefined;
|
|
364
376
|
config?: Record<string, any> | undefined;
|
|
365
377
|
provider?: any;
|
|
@@ -429,6 +441,7 @@ export default class EvalFactory {
|
|
|
429
441
|
WATSONX_AI_APIKEY?: string | undefined;
|
|
430
442
|
WATSONX_AI_PROJECT_ID?: string | undefined;
|
|
431
443
|
WATSONX_AI_BEARER_TOKEN?: string | undefined;
|
|
444
|
+
WATSONX_AI_AUTH_TYPE?: string | undefined;
|
|
432
445
|
AZURE_CLIENT_SECRET?: string | undefined;
|
|
433
446
|
AZURE_CLIENT_ID?: string | undefined;
|
|
434
447
|
AZURE_TENANT_ID?: string | undefined;
|
|
@@ -469,6 +482,8 @@ export default class EvalFactory {
|
|
|
469
482
|
VERTEX_PROJECT_ID?: string | undefined;
|
|
470
483
|
VERTEX_PUBLISHER?: string | undefined;
|
|
471
484
|
VERTEX_REGION?: string | undefined;
|
|
485
|
+
PROMPTFOO_CA_CERT_PATH?: string | undefined;
|
|
486
|
+
PROMPTFOO_INSECURE_SSL?: string | undefined;
|
|
472
487
|
} | undefined;
|
|
473
488
|
} | {
|
|
474
489
|
callApi: import("../../src").CallApiFunction;
|
|
@@ -487,7 +502,7 @@ export default class EvalFactory {
|
|
|
487
502
|
description?: string | undefined;
|
|
488
503
|
providerOutput?: string | {} | undefined;
|
|
489
504
|
assert?: ({
|
|
490
|
-
type: "
|
|
505
|
+
type: "moderation" | `promptfoo:redteam:${string}` | "cost" | "factuality" | "answer-relevance" | "bleu" | "classifier" | "contains-all" | "contains-any" | "contains-json" | "contains-sql" | "contains-xml" | "contains" | "context-faithfulness" | "context-recall" | "context-relevance" | "equals" | "g-eval" | "icontains-all" | "icontains-any" | "icontains" | "is-json" | "is-refusal" | "is-sql" | "is-valid-openai-function-call" | "is-valid-openai-tools-call" | "is-xml" | "javascript" | "latency" | "levenshtein" | "llm-rubric" | "model-graded-closedqa" | "model-graded-factuality" | "perplexity-score" | "perplexity" | "python" | "regex" | "rouge-n" | "similar" | "starts-with" | "webhook" | "not-moderation" | "not-cost" | "not-factuality" | "not-answer-relevance" | "not-bleu" | "not-classifier" | "not-contains-all" | "not-contains-any" | "not-contains-json" | "not-contains-sql" | "not-contains-xml" | "not-contains" | "not-context-faithfulness" | "not-context-recall" | "not-context-relevance" | "not-equals" | "not-g-eval" | "not-icontains-all" | "not-icontains-any" | "not-icontains" | "not-is-json" | "not-is-refusal" | "not-is-sql" | "not-is-valid-openai-function-call" | "not-is-valid-openai-tools-call" | "not-is-xml" | "not-javascript" | "not-latency" | "not-levenshtein" | "not-llm-rubric" | "not-model-graded-closedqa" | "not-model-graded-factuality" | "not-perplexity-score" | "not-perplexity" | "not-python" | "not-regex" | "not-rouge-n" | "not-similar" | "not-starts-with" | "not-webhook" | "select-best" | "human";
|
|
491
506
|
value?: import("../../src").AssertionValue | undefined;
|
|
492
507
|
config?: Record<string, any> | undefined;
|
|
493
508
|
provider?: any;
|
|
@@ -502,7 +517,7 @@ export default class EvalFactory {
|
|
|
502
517
|
} | {
|
|
503
518
|
type: "assert-set";
|
|
504
519
|
assert: {
|
|
505
|
-
type: "
|
|
520
|
+
type: "moderation" | `promptfoo:redteam:${string}` | "cost" | "factuality" | "answer-relevance" | "bleu" | "classifier" | "contains-all" | "contains-any" | "contains-json" | "contains-sql" | "contains-xml" | "contains" | "context-faithfulness" | "context-recall" | "context-relevance" | "equals" | "g-eval" | "icontains-all" | "icontains-any" | "icontains" | "is-json" | "is-refusal" | "is-sql" | "is-valid-openai-function-call" | "is-valid-openai-tools-call" | "is-xml" | "javascript" | "latency" | "levenshtein" | "llm-rubric" | "model-graded-closedqa" | "model-graded-factuality" | "perplexity-score" | "perplexity" | "python" | "regex" | "rouge-n" | "similar" | "starts-with" | "webhook" | "not-moderation" | "not-cost" | "not-factuality" | "not-answer-relevance" | "not-bleu" | "not-classifier" | "not-contains-all" | "not-contains-any" | "not-contains-json" | "not-contains-sql" | "not-contains-xml" | "not-contains" | "not-context-faithfulness" | "not-context-recall" | "not-context-relevance" | "not-equals" | "not-g-eval" | "not-icontains-all" | "not-icontains-any" | "not-icontains" | "not-is-json" | "not-is-refusal" | "not-is-sql" | "not-is-valid-openai-function-call" | "not-is-valid-openai-tools-call" | "not-is-xml" | "not-javascript" | "not-latency" | "not-levenshtein" | "not-llm-rubric" | "not-model-graded-closedqa" | "not-model-graded-factuality" | "not-perplexity-score" | "not-perplexity" | "not-python" | "not-regex" | "not-rouge-n" | "not-similar" | "not-starts-with" | "not-webhook" | "select-best" | "human";
|
|
506
521
|
value?: import("../../src").AssertionValue | undefined;
|
|
507
522
|
config?: Record<string, any> | undefined;
|
|
508
523
|
provider?: any;
|
|
@@ -569,6 +584,7 @@ export default class EvalFactory {
|
|
|
569
584
|
WATSONX_AI_APIKEY?: string | undefined;
|
|
570
585
|
WATSONX_AI_PROJECT_ID?: string | undefined;
|
|
571
586
|
WATSONX_AI_BEARER_TOKEN?: string | undefined;
|
|
587
|
+
WATSONX_AI_AUTH_TYPE?: string | undefined;
|
|
572
588
|
AZURE_CLIENT_SECRET?: string | undefined;
|
|
573
589
|
AZURE_CLIENT_ID?: string | undefined;
|
|
574
590
|
AZURE_TENANT_ID?: string | undefined;
|
|
@@ -609,6 +625,8 @@ export default class EvalFactory {
|
|
|
609
625
|
VERTEX_PROJECT_ID?: string | undefined;
|
|
610
626
|
VERTEX_PUBLISHER?: string | undefined;
|
|
611
627
|
VERTEX_REGION?: string | undefined;
|
|
628
|
+
PROMPTFOO_CA_CERT_PATH?: string | undefined;
|
|
629
|
+
PROMPTFOO_INSECURE_SSL?: string | undefined;
|
|
612
630
|
} | undefined;
|
|
613
631
|
} | {
|
|
614
632
|
callApi: import("../../src").CallApiFunction;
|
|
@@ -627,7 +645,7 @@ export default class EvalFactory {
|
|
|
627
645
|
description?: string | undefined;
|
|
628
646
|
providerOutput?: string | {} | undefined;
|
|
629
647
|
assert?: ({
|
|
630
|
-
type: "
|
|
648
|
+
type: "moderation" | `promptfoo:redteam:${string}` | "cost" | "factuality" | "answer-relevance" | "bleu" | "classifier" | "contains-all" | "contains-any" | "contains-json" | "contains-sql" | "contains-xml" | "contains" | "context-faithfulness" | "context-recall" | "context-relevance" | "equals" | "g-eval" | "icontains-all" | "icontains-any" | "icontains" | "is-json" | "is-refusal" | "is-sql" | "is-valid-openai-function-call" | "is-valid-openai-tools-call" | "is-xml" | "javascript" | "latency" | "levenshtein" | "llm-rubric" | "model-graded-closedqa" | "model-graded-factuality" | "perplexity-score" | "perplexity" | "python" | "regex" | "rouge-n" | "similar" | "starts-with" | "webhook" | "not-moderation" | "not-cost" | "not-factuality" | "not-answer-relevance" | "not-bleu" | "not-classifier" | "not-contains-all" | "not-contains-any" | "not-contains-json" | "not-contains-sql" | "not-contains-xml" | "not-contains" | "not-context-faithfulness" | "not-context-recall" | "not-context-relevance" | "not-equals" | "not-g-eval" | "not-icontains-all" | "not-icontains-any" | "not-icontains" | "not-is-json" | "not-is-refusal" | "not-is-sql" | "not-is-valid-openai-function-call" | "not-is-valid-openai-tools-call" | "not-is-xml" | "not-javascript" | "not-latency" | "not-levenshtein" | "not-llm-rubric" | "not-model-graded-closedqa" | "not-model-graded-factuality" | "not-perplexity-score" | "not-perplexity" | "not-python" | "not-regex" | "not-rouge-n" | "not-similar" | "not-starts-with" | "not-webhook" | "select-best" | "human";
|
|
631
649
|
value?: import("../../src").AssertionValue | undefined;
|
|
632
650
|
config?: Record<string, any> | undefined;
|
|
633
651
|
provider?: any;
|
|
@@ -642,7 +660,7 @@ export default class EvalFactory {
|
|
|
642
660
|
} | {
|
|
643
661
|
type: "assert-set";
|
|
644
662
|
assert: {
|
|
645
|
-
type: "
|
|
663
|
+
type: "moderation" | `promptfoo:redteam:${string}` | "cost" | "factuality" | "answer-relevance" | "bleu" | "classifier" | "contains-all" | "contains-any" | "contains-json" | "contains-sql" | "contains-xml" | "contains" | "context-faithfulness" | "context-recall" | "context-relevance" | "equals" | "g-eval" | "icontains-all" | "icontains-any" | "icontains" | "is-json" | "is-refusal" | "is-sql" | "is-valid-openai-function-call" | "is-valid-openai-tools-call" | "is-xml" | "javascript" | "latency" | "levenshtein" | "llm-rubric" | "model-graded-closedqa" | "model-graded-factuality" | "perplexity-score" | "perplexity" | "python" | "regex" | "rouge-n" | "similar" | "starts-with" | "webhook" | "not-moderation" | "not-cost" | "not-factuality" | "not-answer-relevance" | "not-bleu" | "not-classifier" | "not-contains-all" | "not-contains-any" | "not-contains-json" | "not-contains-sql" | "not-contains-xml" | "not-contains" | "not-context-faithfulness" | "not-context-recall" | "not-context-relevance" | "not-equals" | "not-g-eval" | "not-icontains-all" | "not-icontains-any" | "not-icontains" | "not-is-json" | "not-is-refusal" | "not-is-sql" | "not-is-valid-openai-function-call" | "not-is-valid-openai-tools-call" | "not-is-xml" | "not-javascript" | "not-latency" | "not-levenshtein" | "not-llm-rubric" | "not-model-graded-closedqa" | "not-model-graded-factuality" | "not-perplexity-score" | "not-perplexity" | "not-python" | "not-regex" | "not-rouge-n" | "not-similar" | "not-starts-with" | "not-webhook" | "select-best" | "human";
|
|
646
664
|
value?: import("../../src").AssertionValue | undefined;
|
|
647
665
|
config?: Record<string, any> | undefined;
|
|
648
666
|
provider?: any;
|
|
@@ -711,6 +729,7 @@ export default class EvalFactory {
|
|
|
711
729
|
WATSONX_AI_APIKEY?: string | undefined;
|
|
712
730
|
WATSONX_AI_PROJECT_ID?: string | undefined;
|
|
713
731
|
WATSONX_AI_BEARER_TOKEN?: string | undefined;
|
|
732
|
+
WATSONX_AI_AUTH_TYPE?: string | undefined;
|
|
714
733
|
AZURE_CLIENT_SECRET?: string | undefined;
|
|
715
734
|
AZURE_CLIENT_ID?: string | undefined;
|
|
716
735
|
AZURE_TENANT_ID?: string | undefined;
|
|
@@ -751,6 +770,8 @@ export default class EvalFactory {
|
|
|
751
770
|
VERTEX_PROJECT_ID?: string | undefined;
|
|
752
771
|
VERTEX_PUBLISHER?: string | undefined;
|
|
753
772
|
VERTEX_REGION?: string | undefined;
|
|
773
|
+
PROMPTFOO_CA_CERT_PATH?: string | undefined;
|
|
774
|
+
PROMPTFOO_INSECURE_SSL?: string | undefined;
|
|
754
775
|
} | undefined;
|
|
755
776
|
} | {
|
|
756
777
|
callApi: import("../../src").CallApiFunction;
|
|
@@ -768,7 +789,7 @@ export default class EvalFactory {
|
|
|
768
789
|
}) | undefined;
|
|
769
790
|
providerOutput?: string | {} | undefined;
|
|
770
791
|
assert?: ({
|
|
771
|
-
type: "
|
|
792
|
+
type: "moderation" | `promptfoo:redteam:${string}` | "cost" | "factuality" | "answer-relevance" | "bleu" | "classifier" | "contains-all" | "contains-any" | "contains-json" | "contains-sql" | "contains-xml" | "contains" | "context-faithfulness" | "context-recall" | "context-relevance" | "equals" | "g-eval" | "icontains-all" | "icontains-any" | "icontains" | "is-json" | "is-refusal" | "is-sql" | "is-valid-openai-function-call" | "is-valid-openai-tools-call" | "is-xml" | "javascript" | "latency" | "levenshtein" | "llm-rubric" | "model-graded-closedqa" | "model-graded-factuality" | "perplexity-score" | "perplexity" | "python" | "regex" | "rouge-n" | "similar" | "starts-with" | "webhook" | "not-moderation" | "not-cost" | "not-factuality" | "not-answer-relevance" | "not-bleu" | "not-classifier" | "not-contains-all" | "not-contains-any" | "not-contains-json" | "not-contains-sql" | "not-contains-xml" | "not-contains" | "not-context-faithfulness" | "not-context-recall" | "not-context-relevance" | "not-equals" | "not-g-eval" | "not-icontains-all" | "not-icontains-any" | "not-icontains" | "not-is-json" | "not-is-refusal" | "not-is-sql" | "not-is-valid-openai-function-call" | "not-is-valid-openai-tools-call" | "not-is-xml" | "not-javascript" | "not-latency" | "not-levenshtein" | "not-llm-rubric" | "not-model-graded-closedqa" | "not-model-graded-factuality" | "not-perplexity-score" | "not-perplexity" | "not-python" | "not-regex" | "not-rouge-n" | "not-similar" | "not-starts-with" | "not-webhook" | "select-best" | "human";
|
|
772
793
|
value?: import("../../src").AssertionValue | undefined;
|
|
773
794
|
config?: Record<string, any> | undefined;
|
|
774
795
|
provider?: any;
|
|
@@ -783,7 +804,7 @@ export default class EvalFactory {
|
|
|
783
804
|
} | {
|
|
784
805
|
type: "assert-set";
|
|
785
806
|
assert: {
|
|
786
|
-
type: "
|
|
807
|
+
type: "moderation" | `promptfoo:redteam:${string}` | "cost" | "factuality" | "answer-relevance" | "bleu" | "classifier" | "contains-all" | "contains-any" | "contains-json" | "contains-sql" | "contains-xml" | "contains" | "context-faithfulness" | "context-recall" | "context-relevance" | "equals" | "g-eval" | "icontains-all" | "icontains-any" | "icontains" | "is-json" | "is-refusal" | "is-sql" | "is-valid-openai-function-call" | "is-valid-openai-tools-call" | "is-xml" | "javascript" | "latency" | "levenshtein" | "llm-rubric" | "model-graded-closedqa" | "model-graded-factuality" | "perplexity-score" | "perplexity" | "python" | "regex" | "rouge-n" | "similar" | "starts-with" | "webhook" | "not-moderation" | "not-cost" | "not-factuality" | "not-answer-relevance" | "not-bleu" | "not-classifier" | "not-contains-all" | "not-contains-any" | "not-contains-json" | "not-contains-sql" | "not-contains-xml" | "not-contains" | "not-context-faithfulness" | "not-context-recall" | "not-context-relevance" | "not-equals" | "not-g-eval" | "not-icontains-all" | "not-icontains-any" | "not-icontains" | "not-is-json" | "not-is-refusal" | "not-is-sql" | "not-is-valid-openai-function-call" | "not-is-valid-openai-tools-call" | "not-is-xml" | "not-javascript" | "not-latency" | "not-levenshtein" | "not-llm-rubric" | "not-model-graded-closedqa" | "not-model-graded-factuality" | "not-perplexity-score" | "not-perplexity" | "not-python" | "not-regex" | "not-rouge-n" | "not-similar" | "not-starts-with" | "not-webhook" | "select-best" | "human";
|
|
787
808
|
value?: import("../../src").AssertionValue | undefined;
|
|
788
809
|
config?: Record<string, any> | undefined;
|
|
789
810
|
provider?: any;
|
|
@@ -902,6 +923,7 @@ export default class EvalFactory {
|
|
|
902
923
|
WATSONX_AI_APIKEY?: string | undefined;
|
|
903
924
|
WATSONX_AI_PROJECT_ID?: string | undefined;
|
|
904
925
|
WATSONX_AI_BEARER_TOKEN?: string | undefined;
|
|
926
|
+
WATSONX_AI_AUTH_TYPE?: string | undefined;
|
|
905
927
|
AZURE_CLIENT_SECRET?: string | undefined;
|
|
906
928
|
AZURE_CLIENT_ID?: string | undefined;
|
|
907
929
|
AZURE_TENANT_ID?: string | undefined;
|
|
@@ -942,6 +964,8 @@ export default class EvalFactory {
|
|
|
942
964
|
VERTEX_PROJECT_ID?: string | undefined;
|
|
943
965
|
VERTEX_PUBLISHER?: string | undefined;
|
|
944
966
|
VERTEX_REGION?: string | undefined;
|
|
967
|
+
PROMPTFOO_CA_CERT_PATH?: string | undefined;
|
|
968
|
+
PROMPTFOO_INSECURE_SSL?: string | undefined;
|
|
945
969
|
} | undefined;
|
|
946
970
|
} | (((args_0: string, args_1: {
|
|
947
971
|
vars: Record<string, string | {}>;
|
|
@@ -984,6 +1008,7 @@ export default class EvalFactory {
|
|
|
984
1008
|
WATSONX_AI_APIKEY?: string | undefined;
|
|
985
1009
|
WATSONX_AI_PROJECT_ID?: string | undefined;
|
|
986
1010
|
WATSONX_AI_BEARER_TOKEN?: string | undefined;
|
|
1011
|
+
WATSONX_AI_AUTH_TYPE?: string | undefined;
|
|
987
1012
|
AZURE_CLIENT_SECRET?: string | undefined;
|
|
988
1013
|
AZURE_CLIENT_ID?: string | undefined;
|
|
989
1014
|
AZURE_TENANT_ID?: string | undefined;
|
|
@@ -1024,6 +1049,8 @@ export default class EvalFactory {
|
|
|
1024
1049
|
VERTEX_PROJECT_ID?: string | undefined;
|
|
1025
1050
|
VERTEX_PUBLISHER?: string | undefined;
|
|
1026
1051
|
VERTEX_REGION?: string | undefined;
|
|
1052
|
+
PROMPTFOO_CA_CERT_PATH?: string | undefined;
|
|
1053
|
+
PROMPTFOO_INSECURE_SSL?: string | undefined;
|
|
1027
1054
|
} | undefined;
|
|
1028
1055
|
}>)[] | undefined;
|
|
1029
1056
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evalFactory.d.ts","sourceRoot":"","sources":["../../../test/factories/evalFactory.ts"],"names":[],"mappings":"AAIA,OAAO,IAAI,MAAM,uBAAuB,CAAC;AAGzC,MAAM,CAAC,OAAO,OAAO,WAAW;WACjB,MAAM;WAmJN,eAAe
|
|
1
|
+
{"version":3,"file":"evalFactory.d.ts","sourceRoot":"","sources":["../../../test/factories/evalFactory.ts"],"names":[],"mappings":"AAIA,OAAO,IAAI,MAAM,uBAAuB,CAAC;AAGzC,MAAM,CAAC,OAAO,OAAO,WAAW;WACjB,MAAM;WAmJN,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI7B"}
|
package/dist/test/fetch.test.js
CHANGED
|
@@ -3,7 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
6
8
|
const proxy_agent_1 = require("proxy-agent");
|
|
9
|
+
const cliState_1 = __importDefault(require("../src/cliState"));
|
|
7
10
|
const constants_1 = require("../src/constants");
|
|
8
11
|
const envars_1 = require("../src/envars");
|
|
9
12
|
const fetch_1 = require("../src/fetch");
|
|
@@ -13,24 +16,37 @@ const utils_1 = require("./util/utils");
|
|
|
13
16
|
jest.mock('../src/util/time', () => ({
|
|
14
17
|
sleep: jest.fn().mockResolvedValue(undefined),
|
|
15
18
|
}));
|
|
16
|
-
jest.mock('proxy-agent')
|
|
19
|
+
jest.mock('proxy-agent', () => {
|
|
20
|
+
return {
|
|
21
|
+
ProxyAgent: jest.fn().mockImplementation((options) => ({
|
|
22
|
+
options,
|
|
23
|
+
addRequest: jest.fn(),
|
|
24
|
+
destroy: jest.fn(),
|
|
25
|
+
})),
|
|
26
|
+
};
|
|
27
|
+
});
|
|
17
28
|
jest.mock('../src/logger');
|
|
18
29
|
jest.mock('../src/envars', () => ({
|
|
19
|
-
|
|
30
|
+
getEnvString: jest.fn().mockImplementation((key, defaultValue = '') => ''),
|
|
31
|
+
getEnvBool: jest.fn().mockImplementation((key, defaultValue = false) => false),
|
|
20
32
|
getEnvInt: jest.fn().mockReturnValue(100),
|
|
21
|
-
getEnvBool: jest.fn().mockReturnValue(false),
|
|
22
33
|
}));
|
|
23
|
-
jest.mock('
|
|
24
|
-
|
|
25
|
-
|
|
34
|
+
jest.mock('fs', () => ({
|
|
35
|
+
readFileSync: jest.fn(),
|
|
36
|
+
}));
|
|
37
|
+
jest.mock('../src/cliState', () => ({
|
|
38
|
+
default: {
|
|
39
|
+
basePath: undefined,
|
|
40
|
+
},
|
|
26
41
|
}));
|
|
27
42
|
describe('fetchWithProxy', () => {
|
|
28
43
|
beforeEach(() => {
|
|
44
|
+
jest.clearAllMocks();
|
|
29
45
|
jest.spyOn(global, 'fetch').mockImplementation();
|
|
30
46
|
jest.mocked(proxy_agent_1.ProxyAgent).mockClear();
|
|
31
47
|
});
|
|
32
48
|
afterEach(() => {
|
|
33
|
-
jest.
|
|
49
|
+
jest.resetAllMocks();
|
|
34
50
|
});
|
|
35
51
|
it('should add version header to all requests', async () => {
|
|
36
52
|
const url = 'https://example.com/api';
|
|
@@ -118,7 +134,7 @@ describe('fetchWithProxy', () => {
|
|
|
118
134
|
await (0, fetch_1.fetchWithProxy)(url);
|
|
119
135
|
expect(global.fetch).toHaveBeenCalledWith('https://example.com/api', expect.objectContaining({
|
|
120
136
|
headers: {
|
|
121
|
-
Authorization: 'Basic dXNlcm5hbWU6',
|
|
137
|
+
Authorization: 'Basic dXNlcm5hbWU6',
|
|
122
138
|
'x-promptfoo-version': constants_1.VERSION,
|
|
123
139
|
},
|
|
124
140
|
}));
|
|
@@ -141,6 +157,111 @@ describe('fetchWithProxy', () => {
|
|
|
141
157
|
},
|
|
142
158
|
}));
|
|
143
159
|
});
|
|
160
|
+
it('should use custom CA certificate when PROMPTFOO_CA_CERT_PATH is set', async () => {
|
|
161
|
+
const mockCertPath = path_1.default.normalize('/path/to/cert.pem');
|
|
162
|
+
const mockCertContent = 'mock-cert-content';
|
|
163
|
+
jest.mocked(envars_1.getEnvString).mockImplementation((key, defaultValue = '') => {
|
|
164
|
+
if (key === 'PROMPTFOO_CA_CERT_PATH') {
|
|
165
|
+
return mockCertPath;
|
|
166
|
+
}
|
|
167
|
+
return defaultValue;
|
|
168
|
+
});
|
|
169
|
+
jest.mocked(envars_1.getEnvBool).mockImplementation((key, defaultValue = false) => {
|
|
170
|
+
if (key === 'PROMPTFOO_INSECURE_SSL') {
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
return defaultValue;
|
|
174
|
+
});
|
|
175
|
+
jest.mocked(fs_1.default.readFileSync).mockReturnValue(mockCertContent);
|
|
176
|
+
const mockFetch = jest.fn().mockResolvedValue(new Response());
|
|
177
|
+
global.fetch = mockFetch;
|
|
178
|
+
await (0, fetch_1.fetchWithProxy)('https://example.com');
|
|
179
|
+
const actualPath = jest.mocked(fs_1.default.readFileSync).mock.calls[0][0];
|
|
180
|
+
const normalizedActual = path_1.default.normalize(actualPath).replace(/^\w:/, '');
|
|
181
|
+
const normalizedExpected = path_1.default.normalize(mockCertPath).replace(/^\w:/, '');
|
|
182
|
+
expect(normalizedActual).toBe(normalizedExpected);
|
|
183
|
+
expect(proxy_agent_1.ProxyAgent).toHaveBeenCalledWith(expect.objectContaining({
|
|
184
|
+
ca: mockCertContent,
|
|
185
|
+
rejectUnauthorized: true,
|
|
186
|
+
}));
|
|
187
|
+
});
|
|
188
|
+
it('should handle missing CA certificate file gracefully', async () => {
|
|
189
|
+
const mockCertPath = path_1.default.normalize('/path/to/nonexistent.pem');
|
|
190
|
+
jest.mocked(envars_1.getEnvString).mockImplementation((key, defaultValue = '') => {
|
|
191
|
+
if (key === 'PROMPTFOO_CA_CERT_PATH') {
|
|
192
|
+
return mockCertPath;
|
|
193
|
+
}
|
|
194
|
+
return defaultValue;
|
|
195
|
+
});
|
|
196
|
+
jest.mocked(fs_1.default.readFileSync).mockImplementation(() => {
|
|
197
|
+
throw new Error('File not found');
|
|
198
|
+
});
|
|
199
|
+
const mockFetch = jest.fn().mockResolvedValue(new Response());
|
|
200
|
+
global.fetch = mockFetch;
|
|
201
|
+
await (0, fetch_1.fetchWithProxy)('https://example.com');
|
|
202
|
+
const actualPath = jest.mocked(fs_1.default.readFileSync).mock.calls[0][0];
|
|
203
|
+
const normalizedActual = path_1.default.normalize(actualPath).replace(/^\w:/, '');
|
|
204
|
+
const normalizedExpected = path_1.default.normalize(mockCertPath).replace(/^\w:/, '');
|
|
205
|
+
expect(normalizedActual).toBe(normalizedExpected);
|
|
206
|
+
expect(proxy_agent_1.ProxyAgent).toHaveBeenCalledWith(expect.objectContaining({
|
|
207
|
+
rejectUnauthorized: true,
|
|
208
|
+
}));
|
|
209
|
+
});
|
|
210
|
+
it('should disable SSL verification when PROMPTFOO_INSECURE_SSL is true', async () => {
|
|
211
|
+
jest
|
|
212
|
+
.mocked(envars_1.getEnvString)
|
|
213
|
+
.mockImplementation((key, defaultValue = '') => defaultValue);
|
|
214
|
+
jest.mocked(envars_1.getEnvBool).mockImplementation((key, defaultValue = false) => {
|
|
215
|
+
if (key === 'PROMPTFOO_INSECURE_SSL') {
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
return defaultValue;
|
|
219
|
+
});
|
|
220
|
+
const mockFetch = jest.fn().mockResolvedValue(new Response());
|
|
221
|
+
global.fetch = mockFetch;
|
|
222
|
+
await (0, fetch_1.fetchWithProxy)('https://example.com');
|
|
223
|
+
expect(proxy_agent_1.ProxyAgent).toHaveBeenCalledWith(expect.objectContaining({
|
|
224
|
+
rejectUnauthorized: false,
|
|
225
|
+
}));
|
|
226
|
+
});
|
|
227
|
+
it('should resolve CA certificate path relative to basePath when available', async () => {
|
|
228
|
+
const mockBasePath = path_1.default.normalize('/base/path');
|
|
229
|
+
const mockCertPath = 'certs/cert.pem';
|
|
230
|
+
const mockCertContent = 'mock-cert-content';
|
|
231
|
+
// Update basePath in cliState
|
|
232
|
+
cliState_1.default.basePath = mockBasePath;
|
|
233
|
+
jest.mocked(envars_1.getEnvString).mockImplementation((key, defaultValue = '') => {
|
|
234
|
+
if (key === 'PROMPTFOO_CA_CERT_PATH') {
|
|
235
|
+
return mockCertPath;
|
|
236
|
+
}
|
|
237
|
+
return defaultValue;
|
|
238
|
+
});
|
|
239
|
+
jest.mocked(envars_1.getEnvBool).mockImplementation((key, defaultValue = false) => {
|
|
240
|
+
if (key === 'PROMPTFOO_INSECURE_SSL') {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
return defaultValue;
|
|
244
|
+
});
|
|
245
|
+
jest.mocked(fs_1.default.readFileSync).mockReturnValue(mockCertContent);
|
|
246
|
+
const mockFetch = jest.fn().mockResolvedValue(new Response());
|
|
247
|
+
global.fetch = mockFetch;
|
|
248
|
+
await (0, fetch_1.fetchWithProxy)('https://example.com');
|
|
249
|
+
const expectedPath = path_1.default.normalize(path_1.default.join(mockBasePath, mockCertPath));
|
|
250
|
+
const actualPath = jest.mocked(fs_1.default.readFileSync).mock.calls[0][0];
|
|
251
|
+
const normalizedActual = path_1.default.normalize(actualPath).replace(/^\w:/, '');
|
|
252
|
+
const normalizedExpected = path_1.default.normalize(expectedPath).replace(/^\w:/, '');
|
|
253
|
+
const normalizedBasePath = path_1.default.normalize(mockBasePath).replace(/^\w:/, '');
|
|
254
|
+
const normalizedCertPath = path_1.default.normalize(mockCertPath);
|
|
255
|
+
expect(normalizedActual).toBe(normalizedExpected);
|
|
256
|
+
expect(normalizedActual).toContain(normalizedBasePath);
|
|
257
|
+
expect(normalizedActual).toContain(normalizedCertPath);
|
|
258
|
+
expect(proxy_agent_1.ProxyAgent).toHaveBeenCalledWith(expect.objectContaining({
|
|
259
|
+
ca: mockCertContent,
|
|
260
|
+
rejectUnauthorized: true,
|
|
261
|
+
}));
|
|
262
|
+
// Reset basePath
|
|
263
|
+
cliState_1.default.basePath = undefined;
|
|
264
|
+
});
|
|
144
265
|
});
|
|
145
266
|
describe('fetchWithTimeout', () => {
|
|
146
267
|
beforeEach(() => {
|
|
@@ -232,7 +353,6 @@ describe('handleRateLimit', () => {
|
|
|
232
353
|
}),
|
|
233
354
|
});
|
|
234
355
|
const promise = (0, fetch_1.handleRateLimit)(response);
|
|
235
|
-
// No need to advance timers, sleep will resolve immediately
|
|
236
356
|
await promise;
|
|
237
357
|
expect(logger_1.default.debug).toHaveBeenCalledWith(expect.stringMatching(/Rate limited, waiting \d+ms before retry/));
|
|
238
358
|
});
|
|
@@ -266,7 +386,7 @@ describe('fetchWithRetries', () => {
|
|
|
266
386
|
jest.mocked(global.fetch).mockResolvedValueOnce(successResponse);
|
|
267
387
|
await (0, fetch_1.fetchWithRetries)('https://example.com', {}, 1000, 0);
|
|
268
388
|
expect(global.fetch).toHaveBeenCalledTimes(1);
|
|
269
|
-
expect(time_1.sleep).not.toHaveBeenCalled();
|
|
389
|
+
expect(time_1.sleep).not.toHaveBeenCalled();
|
|
270
390
|
});
|
|
271
391
|
it('should handle negative retry values by treating them as 0', async () => {
|
|
272
392
|
const successResponse = (0, utils_1.createMockResponse)();
|
|
@@ -288,18 +408,24 @@ describe('fetchWithRetries', () => {
|
|
|
288
408
|
expect(time_1.sleep).toHaveBeenCalledTimes(1); // Should only sleep once between attempts
|
|
289
409
|
});
|
|
290
410
|
it('should handle 5XX errors when PROMPTFOO_RETRY_5XX is true', async () => {
|
|
291
|
-
jest.mocked(envars_1.getEnvBool).
|
|
411
|
+
jest.mocked(envars_1.getEnvBool).mockImplementation((key) => {
|
|
412
|
+
if (key === 'PROMPTFOO_RETRY_5XX') {
|
|
413
|
+
return true;
|
|
414
|
+
}
|
|
415
|
+
return false;
|
|
416
|
+
});
|
|
292
417
|
const errorResponse = (0, utils_1.createMockResponse)({
|
|
293
418
|
status: 502,
|
|
294
419
|
statusText: 'Bad Gateway',
|
|
295
420
|
});
|
|
296
421
|
const successResponse = (0, utils_1.createMockResponse)();
|
|
297
|
-
jest
|
|
298
|
-
.
|
|
422
|
+
const mockFetch = jest
|
|
423
|
+
.fn()
|
|
299
424
|
.mockResolvedValueOnce(errorResponse)
|
|
300
425
|
.mockResolvedValueOnce(successResponse);
|
|
426
|
+
global.fetch = mockFetch;
|
|
301
427
|
await (0, fetch_1.fetchWithRetries)('https://example.com', {}, 1000, 2);
|
|
302
|
-
expect(
|
|
428
|
+
expect(mockFetch).toHaveBeenCalledTimes(2);
|
|
303
429
|
expect(time_1.sleep).toHaveBeenCalledTimes(1);
|
|
304
430
|
});
|
|
305
431
|
it('should handle rate limits with proper backoff', async () => {
|
|
@@ -310,19 +436,21 @@ describe('fetchWithRetries', () => {
|
|
|
310
436
|
}),
|
|
311
437
|
});
|
|
312
438
|
const successResponse = (0, utils_1.createMockResponse)();
|
|
313
|
-
jest
|
|
314
|
-
.
|
|
439
|
+
const mockFetch = jest
|
|
440
|
+
.fn()
|
|
315
441
|
.mockResolvedValueOnce(rateLimitedResponse)
|
|
316
442
|
.mockResolvedValueOnce(successResponse);
|
|
443
|
+
global.fetch = mockFetch;
|
|
317
444
|
await (0, fetch_1.fetchWithRetries)('https://example.com', {}, 1000, 2);
|
|
318
|
-
expect(
|
|
445
|
+
expect(mockFetch).toHaveBeenCalledTimes(2);
|
|
319
446
|
expect(logger_1.default.debug).toHaveBeenCalledWith(expect.stringContaining('Rate limited on URL'));
|
|
320
447
|
expect(time_1.sleep).toHaveBeenCalledTimes(1);
|
|
321
448
|
});
|
|
322
449
|
it('should respect maximum retry count', async () => {
|
|
323
|
-
jest.
|
|
450
|
+
const mockFetch = jest.fn().mockRejectedValue(new Error('Network error'));
|
|
451
|
+
global.fetch = mockFetch;
|
|
324
452
|
await expect((0, fetch_1.fetchWithRetries)('https://example.com', {}, 1000, 2)).rejects.toThrow('Request failed after 2 retries: Network error');
|
|
325
|
-
expect(
|
|
453
|
+
expect(mockFetch).toHaveBeenCalledTimes(3); // Initial attempt + 2 retries
|
|
326
454
|
expect(time_1.sleep).toHaveBeenCalledTimes(2);
|
|
327
455
|
});
|
|
328
456
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.test.js","sourceRoot":"","sources":["../../test/fetch.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fetch.test.js","sourceRoot":"","sources":["../../test/fetch.test.ts"],"names":[],"mappings":"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"}
|