@testsmith/api-spector 0.6.8 → 0.7.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.
- package/out/main/chunks/{broker-client-CN09i5Tl.js → broker-client-BSTNMPtT.js} +1 -1
- package/out/main/chunks/{handle-DHNkZoP1.js → handle-DDZ37J8G.js} +1 -0
- package/out/main/chunks/{import-CNwoS1_c.js → import-CBAklepT.js} +2 -2
- package/out/main/chunks/{request-exec-DltXYFsc.js → request-exec-DLBjLZe1.js} +1 -1
- package/out/main/chunks/{soap-handler-DYVGnmgi.js → soap-handler-C_LCcPwE.js} +2 -2
- package/out/main/contract.js +3 -3
- package/out/main/index.js +8 -5
- package/out/main/lib.js +2 -2
- package/out/main/runner.js +3 -3
- package/out/main/wsdl.js +3 -3
- package/out/preload/index.js +4 -0
- package/out/renderer/assets/{GraphQLEditor-ZFBdIcXA.js → GraphQLEditor-DVmXF8Zt.js} +1 -1
- package/out/renderer/assets/{SoapEditor-B9W4JxTQ.js → SoapEditor-Dnt4GqdH.js} +1 -1
- package/out/renderer/assets/{index-BRHOhi5S.js → index-Bquy5IRN.js} +154 -114
- package/out/renderer/assets/index-DfWnNkH3.css +2 -0
- package/out/renderer/index.html +2 -2
- package/package.json +4 -1
- package/out/renderer/assets/index-B3mtLdU3.css +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./GraphQLEditor-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./GraphQLEditor-DVmXF8Zt.js","./codemirror-F6m3Hm1M.js","./ajv-2MAg6kGF.js","./SoapEditor-Dnt4GqdH.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import { r as reactExports, g as getDefaultExportFromCjs, R as React$2, a as autocompletion, h as hoverTooltip, j as jsxRuntimeExports, k as keymap, t as toggleComment, x as xml, b as json, c as ReactCodeMirror, o as oneDark, d as javascript } from "./codemirror-F6m3Hm1M.js";
|
|
3
3
|
import { A as Ajv } from "./ajv-2MAg6kGF.js";
|
|
4
4
|
var client = { exports: {} };
|
|
@@ -15340,14 +15340,14 @@ const en = {
|
|
|
15340
15340
|
Remove: Remove$6,
|
|
15341
15341
|
"+ add": "+ add",
|
|
15342
15342
|
"Saved :path in the workspace": "Saved :path in the workspace",
|
|
15343
|
-
"Could not create the mock
|
|
15343
|
+
"Could not create the mock - open a workspace first.": "Could not create the mock - open a workspace first.",
|
|
15344
15344
|
":consumer → :provider (contract mock)": ":consumer → :provider (contract mock)",
|
|
15345
|
-
"Created mock with :count route
|
|
15345
|
+
"Created mock with :count route - open the Mocks panel to run it|Created mock with :count routes - open the Mocks panel to run it": "Created mock with :count route - open the Mocks panel to run it|Created mock with :count routes - open the Mocks panel to run it",
|
|
15346
15346
|
"Published, but bi-directional check failed: :detail": "Published, but bi-directional check failed: :detail",
|
|
15347
15347
|
"see matrix": "see matrix",
|
|
15348
15348
|
"Published :consumer@:version to the cloud": "Published :consumer@:version to the cloud",
|
|
15349
15349
|
"Contract Designer": "Contract Designer",
|
|
15350
|
-
"Design a consumer-driven contract up front
|
|
15350
|
+
"Design a consumer-driven contract up front - no endpoint required - then publish it to API Spector Cloud.": "Design a consumer-driven contract up front - no endpoint required - then publish it to API Spector Cloud.",
|
|
15351
15351
|
"New contract": "New contract",
|
|
15352
15352
|
"+ New": "+ New",
|
|
15353
15353
|
"No contracts yet. Click": "No contracts yet. Click",
|
|
@@ -15365,23 +15365,23 @@ const en = {
|
|
|
15365
15365
|
"Publishing…": "Publishing…",
|
|
15366
15366
|
"Publish to Cloud": "Publish to Cloud",
|
|
15367
15367
|
Delete: Delete$6,
|
|
15368
|
-
"Not connected to API Spector Cloud
|
|
15368
|
+
"Not connected to API Spector Cloud - connect in Settings → Cloud to publish. You can still design and save the contract.": "Not connected to API Spector Cloud - connect in Settings → Cloud to publish. You can still design and save the contract.",
|
|
15369
15369
|
"what this interaction is": "what this interaction is",
|
|
15370
15370
|
"Remove interaction": "Remove interaction",
|
|
15371
|
-
'provider state (e.g. "brand 1 exists")
|
|
15371
|
+
'provider state (e.g. "brand 1 exists") - optional': 'provider state (e.g. "brand 1 exists") - optional',
|
|
15372
15372
|
Request: Request$6,
|
|
15373
15373
|
"Body (JSON, optional)": "Body (JSON, optional)",
|
|
15374
15374
|
"Expected response": "Expected response",
|
|
15375
15375
|
"expected status code": "expected status code",
|
|
15376
15376
|
Body: Body$6,
|
|
15377
|
-
"[{ id: string, name: string, slug: string }]
|
|
15377
|
+
"[{ id: string, name: string, slug: string }] - or a JSON example": "[{ id: string, name: string, slug: string }] - or a JSON example",
|
|
15378
15378
|
"A JSON example (matched by type when the toggle is on), or a": "A JSON example (matched by type when the toggle is on), or a",
|
|
15379
15379
|
"type shape": "type shape",
|
|
15380
15380
|
"to check each property's type:": "to check each property's type:",
|
|
15381
15381
|
"plus nested": "plus nested",
|
|
15382
15382
|
". E.g.": ". E.g.",
|
|
15383
15383
|
". Compiles to Pact": ". Compiles to Pact",
|
|
15384
|
-
"Match a JSON example by type, not exact value (tolerant
|
|
15384
|
+
"Match a JSON example by type, not exact value (tolerant - recommended)": "Match a JSON example by type, not exact value (tolerant - recommended)",
|
|
15385
15385
|
"+ Add interaction": "+ Add interaction",
|
|
15386
15386
|
ERR: ERR$6,
|
|
15387
15387
|
"▲ Hide sent request": "▲ Hide sent request",
|
|
@@ -15413,7 +15413,7 @@ const en = {
|
|
|
15413
15413
|
":count operation clean|:count operations clean": ":count operation clean|:count operations clean",
|
|
15414
15414
|
"All cases sent": "All cases sent",
|
|
15415
15415
|
"No operations were fuzzed. Check that requests have a body or a matching spec operation.": "No operations were fuzzed. Check that requests have a body or a matching spec operation.",
|
|
15416
|
-
"Published :name@:version
|
|
15416
|
+
"Published :name@:version - :count contract(s) re-verified": "Published :name@:version - :count contract(s) re-verified",
|
|
15417
15417
|
"Provide an OpenAPI spec URL or pick a pinned snapshot for provider / bi-directional mode.": "Provide an OpenAPI spec URL or pick a pinned snapshot for provider / bi-directional mode.",
|
|
15418
15418
|
"Provide a provider base URL (e.g. http://localhost:3000) to replay contracts against.": "Provide a provider base URL (e.g. http://localhost:3000) to replay contracts against.",
|
|
15419
15419
|
"Provide a provider base URL (e.g. http://localhost:3000) to fuzz against.": "Provide a provider base URL (e.g. http://localhost:3000) to fuzz against.",
|
|
@@ -15752,7 +15752,7 @@ const en = {
|
|
|
15752
15752
|
"Enable API Spector Cloud": "Enable API Spector Cloud",
|
|
15753
15753
|
'Push mocks and monitors to a hosted instance. When on, "Push to cloud" actions appear on mocks and requests.': 'Push mocks and monitors to a hosted instance. When on, "Push to cloud" actions appear on mocks and requests.',
|
|
15754
15754
|
"API token": "API token",
|
|
15755
|
-
"•••••••• (saved
|
|
15755
|
+
"•••••••• (saved - type to replace)": "•••••••• (saved - type to replace)",
|
|
15756
15756
|
"Paste a token from the cloud dashboard": "Paste a token from the cloud dashboard",
|
|
15757
15757
|
"Stored in your OS keychain, never in the workspace file. Create one under Tokens in the cloud dashboard.": "Stored in your OS keychain, never in the workspace file. Create one under Tokens in the cloud dashboard.",
|
|
15758
15758
|
"Testing…": "Testing…",
|
|
@@ -15766,7 +15766,7 @@ const en = {
|
|
|
15766
15766
|
"Add pattern…": "Add pattern…",
|
|
15767
15767
|
Add: Add$6,
|
|
15768
15768
|
"Reference secrets from an external manager instead of storing them. Put a reference like": "Reference secrets from an external manager instead of storing them. Put a reference like",
|
|
15769
|
-
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret
|
|
15769
|
+
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret - tokens and secret-ids come from your environment (or the Vault sign-in below).": "in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret - tokens and secret-ids come from your environment (or the Vault sign-in below).",
|
|
15770
15770
|
"Address (VAULT_ADDR)": "Address (VAULT_ADDR)",
|
|
15771
15771
|
Namespace: Namespace$6,
|
|
15772
15772
|
"(Enterprise)": "(Enterprise)",
|
|
@@ -16122,7 +16122,7 @@ const en = {
|
|
|
16122
16122
|
"No contract body schema defined yet": "No contract body schema defined yet",
|
|
16123
16123
|
"Derive from contract": "Derive from contract",
|
|
16124
16124
|
Validate: Validate$6,
|
|
16125
|
-
"Standalone
|
|
16125
|
+
"Standalone - edits here don't touch the contract. Use “Derive from contract” to start from it.": "Standalone - edits here don't touch the contract. Use “Derive from contract” to start from it.",
|
|
16126
16126
|
"Format JSON": "Format JSON",
|
|
16127
16127
|
"Valid: response matches the schema.": "Valid: response matches the schema.",
|
|
16128
16128
|
"Invalid: :count error|Invalid: :count errors": "Invalid: :count error|Invalid: :count errors",
|
|
@@ -16599,14 +16599,14 @@ const de = {
|
|
|
16599
16599
|
Remove: Remove$5,
|
|
16600
16600
|
"+ add": "+ hinzufügen",
|
|
16601
16601
|
"Saved :path in the workspace": ":path im Arbeitsbereich gespeichert",
|
|
16602
|
-
"Could not create the mock
|
|
16602
|
+
"Could not create the mock - open a workspace first.": "Mock konnte nicht erstellt werden - öffnen Sie zuerst einen Arbeitsbereich.",
|
|
16603
16603
|
":consumer → :provider (contract mock)": ":consumer → :provider (Contract-Mock)",
|
|
16604
|
-
"Created mock with :count route
|
|
16604
|
+
"Created mock with :count route - open the Mocks panel to run it|Created mock with :count routes - open the Mocks panel to run it": "Mock mit :count Route erstellt - öffnen Sie das Mocks-Panel, um ihn auszuführen|Mock mit :count Routen erstellt - öffnen Sie das Mocks-Panel, um ihn auszuführen",
|
|
16605
16605
|
"Published, but bi-directional check failed: :detail": "Veröffentlicht, aber bidirektionale Prüfung fehlgeschlagen: :detail",
|
|
16606
16606
|
"see matrix": "Matrix ansehen",
|
|
16607
16607
|
"Published :consumer@:version to the cloud": ":consumer@:version in die Cloud veröffentlicht",
|
|
16608
16608
|
"Contract Designer": "Contract Designer",
|
|
16609
|
-
"Design a consumer-driven contract up front
|
|
16609
|
+
"Design a consumer-driven contract up front - no endpoint required - then publish it to API Spector Cloud.": "Entwerfen Sie vorab einen consumer-driven Contract - kein Endpunkt erforderlich - und veröffentlichen Sie ihn dann in der API Spector Cloud.",
|
|
16610
16610
|
"New contract": "Neuer Contract",
|
|
16611
16611
|
"+ New": "+ Neu",
|
|
16612
16612
|
"No contracts yet. Click": "Noch keine Contracts. Klicken Sie auf",
|
|
@@ -16624,23 +16624,23 @@ const de = {
|
|
|
16624
16624
|
"Publishing…": "Veröffentliche…",
|
|
16625
16625
|
"Publish to Cloud": "In Cloud veröffentlichen",
|
|
16626
16626
|
Delete: Delete$5,
|
|
16627
|
-
"Not connected to API Spector Cloud
|
|
16627
|
+
"Not connected to API Spector Cloud - connect in Settings → Cloud to publish. You can still design and save the contract.": "Nicht mit API Spector Cloud verbunden - verbinden Sie sich in Einstellungen → Cloud, um zu veröffentlichen. Sie können den Contract dennoch entwerfen und speichern.",
|
|
16628
16628
|
"what this interaction is": "was diese Interaktion ist",
|
|
16629
16629
|
"Remove interaction": "Interaktion entfernen",
|
|
16630
|
-
'provider state (e.g. "brand 1 exists")
|
|
16630
|
+
'provider state (e.g. "brand 1 exists") - optional': 'Provider-State (z. B. "Marke 1 existiert") - optional',
|
|
16631
16631
|
Request: Request$5,
|
|
16632
16632
|
"Body (JSON, optional)": "Body (JSON, optional)",
|
|
16633
16633
|
"Expected response": "Erwartete Antwort",
|
|
16634
16634
|
"expected status code": "erwarteter Statuscode",
|
|
16635
16635
|
Body: Body$5,
|
|
16636
|
-
"[{ id: string, name: string, slug: string }]
|
|
16636
|
+
"[{ id: string, name: string, slug: string }] - or a JSON example": "[{ id: string, name: string, slug: string }] - oder ein JSON-Beispiel",
|
|
16637
16637
|
"A JSON example (matched by type when the toggle is on), or a": "Ein JSON-Beispiel (nach Typ abgeglichen, wenn der Schalter aktiv ist), oder eine",
|
|
16638
16638
|
"type shape": "Typform",
|
|
16639
16639
|
"to check each property's type:": "um den Typ jeder Eigenschaft zu prüfen:",
|
|
16640
16640
|
"plus nested": "plus verschachtelt",
|
|
16641
16641
|
". E.g.": ". Z. B.",
|
|
16642
16642
|
". Compiles to Pact": ". Kompiliert zu Pact",
|
|
16643
|
-
"Match a JSON example by type, not exact value (tolerant
|
|
16643
|
+
"Match a JSON example by type, not exact value (tolerant - recommended)": "Ein JSON-Beispiel nach Typ abgleichen, nicht nach exaktem Wert (tolerant - empfohlen)",
|
|
16644
16644
|
"+ Add interaction": "+ Interaktion hinzufügen",
|
|
16645
16645
|
ERR: ERR$5,
|
|
16646
16646
|
"▲ Hide sent request": "▲ Gesendete Request ausblenden",
|
|
@@ -16672,7 +16672,7 @@ const de = {
|
|
|
16672
16672
|
":count operation clean|:count operations clean": ":count Operation sauber|:count Operationen sauber",
|
|
16673
16673
|
"All cases sent": "Alle Fälle gesendet",
|
|
16674
16674
|
"No operations were fuzzed. Check that requests have a body or a matching spec operation.": "Es wurden keine Operationen gefuzzt. Prüfen Sie, ob Requests einen Body oder eine passende Spec-Operation haben.",
|
|
16675
|
-
"Published :name@:version
|
|
16675
|
+
"Published :name@:version - :count contract(s) re-verified": ":name@:version veröffentlicht - :count Contract(s) erneut verifiziert",
|
|
16676
16676
|
"Provide an OpenAPI spec URL or pick a pinned snapshot for provider / bi-directional mode.": "Geben Sie eine OpenAPI-Spec-URL an oder wählen Sie einen angehefteten Snapshot für den Provider-/bidirektionalen Modus.",
|
|
16677
16677
|
"Provide a provider base URL (e.g. http://localhost:3000) to replay contracts against.": "Geben Sie eine Provider-Basis-URL an (z. B. http://localhost:3000), gegen die Contracts erneut abgespielt werden.",
|
|
16678
16678
|
"Provide a provider base URL (e.g. http://localhost:3000) to fuzz against.": "Geben Sie eine Provider-Basis-URL an (z. B. http://localhost:3000), gegen die gefuzzt wird.",
|
|
@@ -17011,7 +17011,7 @@ const de = {
|
|
|
17011
17011
|
"Enable API Spector Cloud": "API Spector Cloud aktivieren",
|
|
17012
17012
|
'Push mocks and monitors to a hosted instance. When on, "Push to cloud" actions appear on mocks and requests.': 'Übertragen Sie Mocks und Monitore an eine gehostete Instanz. Wenn aktiviert, erscheinen "In Cloud übertragen"-Aktionen bei Mocks und Requests.',
|
|
17013
17013
|
"API token": "API-Token",
|
|
17014
|
-
"•••••••• (saved
|
|
17014
|
+
"•••••••• (saved - type to replace)": "•••••••• (gespeichert - tippen zum Ersetzen)",
|
|
17015
17015
|
"Paste a token from the cloud dashboard": "Fügen Sie ein Token aus dem Cloud-Dashboard ein",
|
|
17016
17016
|
"Stored in your OS keychain, never in the workspace file. Create one under Tokens in the cloud dashboard.": "Wird in Ihrem OS-Schlüsselbund gespeichert, nie in der Arbeitsbereich-Datei. Erstellen Sie eines unter Tokens im Cloud-Dashboard.",
|
|
17017
17017
|
"Testing…": "Teste…",
|
|
@@ -17025,7 +17025,7 @@ const de = {
|
|
|
17025
17025
|
"Add pattern…": "Muster hinzufügen…",
|
|
17026
17026
|
Add: Add$5,
|
|
17027
17027
|
"Reference secrets from an external manager instead of storing them. Put a reference like": "Referenzieren Sie Secrets aus einem externen Manager, anstatt sie zu speichern. Setzen Sie eine Referenz wie",
|
|
17028
|
-
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret
|
|
17028
|
+
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret - tokens and secret-ids come from your environment (or the Vault sign-in below).": "in eine Umgebungsvariable oder ein Auth-Feld; sie wird zur Sendezeit aufgelöst und nie in den Arbeitsbereich geschrieben. Diese Verbindungskonfiguration ist nicht secret - Tokens und Secret-IDs kommen aus Ihrer Umgebung (oder der Vault-Anmeldung unten).",
|
|
17029
17029
|
"Address (VAULT_ADDR)": "Adresse (VAULT_ADDR)",
|
|
17030
17030
|
Namespace: Namespace$5,
|
|
17031
17031
|
"(Enterprise)": "(Enterprise)",
|
|
@@ -17381,7 +17381,7 @@ const de = {
|
|
|
17381
17381
|
"No contract body schema defined yet": "Noch kein Contract-Body-Schema definiert",
|
|
17382
17382
|
"Derive from contract": "Aus Contract ableiten",
|
|
17383
17383
|
Validate: Validate$5,
|
|
17384
|
-
"Standalone
|
|
17384
|
+
"Standalone - edits here don't touch the contract. Use “Derive from contract” to start from it.": "Eigenständig - Änderungen hier berühren den Contract nicht. Verwenden Sie „Aus Contract ableiten“, um davon auszugehen.",
|
|
17385
17385
|
"Format JSON": "JSON formatieren",
|
|
17386
17386
|
"Valid: response matches the schema.": "Gültig: Antwort entspricht dem Schema.",
|
|
17387
17387
|
"Invalid: :count error|Invalid: :count errors": "Ungültig: :count Fehler|Ungültig: :count Fehler",
|
|
@@ -17858,14 +17858,14 @@ const fr = {
|
|
|
17858
17858
|
Remove: Remove$4,
|
|
17859
17859
|
"+ add": "+ ajouter",
|
|
17860
17860
|
"Saved :path in the workspace": "Enregistré :path dans l'espace de travail",
|
|
17861
|
-
"Could not create the mock
|
|
17861
|
+
"Could not create the mock - open a workspace first.": "Impossible de créer le mock. Ouvrez d'abord un espace de travail.",
|
|
17862
17862
|
":consumer → :provider (contract mock)": ":consumer → :provider (mock de contrat)",
|
|
17863
|
-
"Created mock with :count route
|
|
17863
|
+
"Created mock with :count route - open the Mocks panel to run it|Created mock with :count routes - open the Mocks panel to run it": "Mock créé avec :count route. Ouvrez le panneau Mocks pour l'exécuter|Mock créé avec :count routes. Ouvrez le panneau Mocks pour l'exécuter",
|
|
17864
17864
|
"Published, but bi-directional check failed: :detail": "Publié, mais la vérification bi-directionnelle a échoué : :detail",
|
|
17865
17865
|
"see matrix": "voir la matrice",
|
|
17866
17866
|
"Published :consumer@:version to the cloud": "Publié :consumer@:version dans le cloud",
|
|
17867
17867
|
"Contract Designer": "Concepteur de contrats",
|
|
17868
|
-
"Design a consumer-driven contract up front
|
|
17868
|
+
"Design a consumer-driven contract up front - no endpoint required - then publish it to API Spector Cloud.": "Concevez un contrat piloté par le consommateur en amont, sans point de terminaison requis, puis publiez-le sur API Spector Cloud.",
|
|
17869
17869
|
"New contract": "Nouveau contrat",
|
|
17870
17870
|
"+ New": "+ Nouveau",
|
|
17871
17871
|
"No contracts yet. Click": "Aucun contrat pour le moment. Cliquez sur",
|
|
@@ -17883,23 +17883,23 @@ const fr = {
|
|
|
17883
17883
|
"Publishing…": "Publication…",
|
|
17884
17884
|
"Publish to Cloud": "Publier sur le Cloud",
|
|
17885
17885
|
Delete: Delete$4,
|
|
17886
|
-
"Not connected to API Spector Cloud
|
|
17886
|
+
"Not connected to API Spector Cloud - connect in Settings → Cloud to publish. You can still design and save the contract.": "Non connecté à API Spector Cloud. Connectez-vous dans Paramètres → Cloud pour publier. Vous pouvez tout de même concevoir et enregistrer le contrat.",
|
|
17887
17887
|
"what this interaction is": "ce qu'est cette interaction",
|
|
17888
17888
|
"Remove interaction": "Supprimer l'interaction",
|
|
17889
|
-
'provider state (e.g. "brand 1 exists")
|
|
17889
|
+
'provider state (e.g. "brand 1 exists") - optional': 'état du fournisseur (par ex. "brand 1 exists") - facultatif',
|
|
17890
17890
|
Request: Request$4,
|
|
17891
17891
|
"Body (JSON, optional)": "Corps (JSON, facultatif)",
|
|
17892
17892
|
"Expected response": "Réponse attendue",
|
|
17893
17893
|
"expected status code": "code de statut attendu",
|
|
17894
17894
|
Body: Body$4,
|
|
17895
|
-
"[{ id: string, name: string, slug: string }]
|
|
17895
|
+
"[{ id: string, name: string, slug: string }] - or a JSON example": "[{ id: string, name: string, slug: string }] - ou un exemple JSON",
|
|
17896
17896
|
"A JSON example (matched by type when the toggle is on), or a": "Un exemple JSON (comparé par type lorsque l'option est activée), ou une",
|
|
17897
17897
|
"type shape": "forme de type",
|
|
17898
17898
|
"to check each property's type:": "pour vérifier le type de chaque propriété :",
|
|
17899
17899
|
"plus nested": "plus imbriqué",
|
|
17900
17900
|
". E.g.": ". Par ex.",
|
|
17901
17901
|
". Compiles to Pact": ". Compile vers Pact",
|
|
17902
|
-
"Match a JSON example by type, not exact value (tolerant
|
|
17902
|
+
"Match a JSON example by type, not exact value (tolerant - recommended)": "Comparer un exemple JSON par type, pas par valeur exacte (tolérant - recommandé)",
|
|
17903
17903
|
"+ Add interaction": "+ Ajouter une interaction",
|
|
17904
17904
|
ERR: ERR$4,
|
|
17905
17905
|
"▲ Hide sent request": "▲ Masquer la request envoyée",
|
|
@@ -17931,7 +17931,7 @@ const fr = {
|
|
|
17931
17931
|
":count operation clean|:count operations clean": ":count opération propre|:count opérations propres",
|
|
17932
17932
|
"All cases sent": "Tous les cas envoyés",
|
|
17933
17933
|
"No operations were fuzzed. Check that requests have a body or a matching spec operation.": "Aucune opération n'a été fuzzée. Vérifiez que les requests ont un corps ou une opération de spec correspondante.",
|
|
17934
|
-
"Published :name@:version
|
|
17934
|
+
"Published :name@:version - :count contract(s) re-verified": "Publié :name@:version - :count contrat(s) revérifié(s)",
|
|
17935
17935
|
"Provide an OpenAPI spec URL or pick a pinned snapshot for provider / bi-directional mode.": "Fournissez une URL de spec OpenAPI ou choisissez un instantané épinglé pour le mode fournisseur / bi-directionnel.",
|
|
17936
17936
|
"Provide a provider base URL (e.g. http://localhost:3000) to replay contracts against.": "Fournissez une URL de base du fournisseur (par ex. http://localhost:3000) pour rejouer les contrats.",
|
|
17937
17937
|
"Provide a provider base URL (e.g. http://localhost:3000) to fuzz against.": "Fournissez une URL de base du fournisseur (par ex. http://localhost:3000) à fuzzer.",
|
|
@@ -18270,7 +18270,7 @@ const fr = {
|
|
|
18270
18270
|
"Enable API Spector Cloud": "Activer API Spector Cloud",
|
|
18271
18271
|
'Push mocks and monitors to a hosted instance. When on, "Push to cloud" actions appear on mocks and requests.': 'Poussez les mocks et les moniteurs vers une instance hébergée. Lorsque activé, les actions "Envoyer vers le cloud" apparaissent sur les mocks et les requests.',
|
|
18272
18272
|
"API token": "Token API",
|
|
18273
|
-
"•••••••• (saved
|
|
18273
|
+
"•••••••• (saved - type to replace)": "•••••••• (enregistré - saisissez pour remplacer)",
|
|
18274
18274
|
"Paste a token from the cloud dashboard": "Collez un token depuis le tableau de bord cloud",
|
|
18275
18275
|
"Stored in your OS keychain, never in the workspace file. Create one under Tokens in the cloud dashboard.": "Stocké dans le trousseau de votre OS, jamais dans le fichier de l'espace de travail. Créez-en un sous Tokens dans le tableau de bord cloud.",
|
|
18276
18276
|
"Testing…": "Test…",
|
|
@@ -18284,7 +18284,7 @@ const fr = {
|
|
|
18284
18284
|
"Add pattern…": "Ajouter un motif…",
|
|
18285
18285
|
Add: Add$4,
|
|
18286
18286
|
"Reference secrets from an external manager instead of storing them. Put a reference like": "Référencez des secrets depuis un gestionnaire externe au lieu de les stocker. Mettez une référence comme",
|
|
18287
|
-
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret
|
|
18287
|
+
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret - tokens and secret-ids come from your environment (or the Vault sign-in below).": "dans une variable d'environnement ou un champ d'authentification ; elle est résolue au moment de l'envoi et jamais écrite dans l'espace de travail. Cette config de connexion n'est pas secret - les tokens et les identifiants de secret proviennent de votre environnement (ou de la connexion Vault ci-dessous).",
|
|
18288
18288
|
"Address (VAULT_ADDR)": "Adresse (VAULT_ADDR)",
|
|
18289
18289
|
Namespace: Namespace$4,
|
|
18290
18290
|
"(Enterprise)": "(Enterprise)",
|
|
@@ -18640,7 +18640,7 @@ const fr = {
|
|
|
18640
18640
|
"No contract body schema defined yet": "Aucun schéma de corps de contrat défini pour le moment",
|
|
18641
18641
|
"Derive from contract": "Dériver du contrat",
|
|
18642
18642
|
Validate: Validate$4,
|
|
18643
|
-
"Standalone
|
|
18643
|
+
"Standalone - edits here don't touch the contract. Use “Derive from contract” to start from it.": "Autonome - les modifications ici n'affectent pas le contrat. Utilisez « Dériver du contrat » pour partir de celui-ci.",
|
|
18644
18644
|
"Format JSON": "Formater le JSON",
|
|
18645
18645
|
"Valid: response matches the schema.": "Valide : la réponse correspond au schéma.",
|
|
18646
18646
|
"Invalid: :count error|Invalid: :count errors": "Invalide : :count erreur|Invalide : :count erreurs",
|
|
@@ -19117,14 +19117,14 @@ const es = {
|
|
|
19117
19117
|
Remove: Remove$3,
|
|
19118
19118
|
"+ add": "+ añadir",
|
|
19119
19119
|
"Saved :path in the workspace": "Se guardó :path en el espacio de trabajo",
|
|
19120
|
-
"Could not create the mock
|
|
19120
|
+
"Could not create the mock - open a workspace first.": "No se pudo crear el mock. Abre primero un espacio de trabajo.",
|
|
19121
19121
|
":consumer → :provider (contract mock)": ":consumer → :provider (mock de contrato)",
|
|
19122
|
-
"Created mock with :count route
|
|
19122
|
+
"Created mock with :count route - open the Mocks panel to run it|Created mock with :count routes - open the Mocks panel to run it": "Se creó el mock con :count ruta. Abre el panel de Mocks para ejecutarlo|Se creó el mock con :count rutas. Abre el panel de Mocks para ejecutarlo",
|
|
19123
19123
|
"Published, but bi-directional check failed: :detail": "Publicado, pero la comprobación bidireccional falló: :detail",
|
|
19124
19124
|
"see matrix": "ver matriz",
|
|
19125
19125
|
"Published :consumer@:version to the cloud": "Se publicó :consumer@:version en la nube",
|
|
19126
19126
|
"Contract Designer": "Diseñador de contratos",
|
|
19127
|
-
"Design a consumer-driven contract up front
|
|
19127
|
+
"Design a consumer-driven contract up front - no endpoint required - then publish it to API Spector Cloud.": "Diseña un contrato dirigido por el consumidor de antemano, sin necesidad de endpoint, y luego publícalo en API Spector Cloud.",
|
|
19128
19128
|
"New contract": "Nuevo contrato",
|
|
19129
19129
|
"+ New": "+ Nuevo",
|
|
19130
19130
|
"No contracts yet. Click": "Aún no hay contratos. Haz clic en",
|
|
@@ -19142,23 +19142,23 @@ const es = {
|
|
|
19142
19142
|
"Publishing…": "Publicando…",
|
|
19143
19143
|
"Publish to Cloud": "Publicar en la nube",
|
|
19144
19144
|
Delete: Delete$3,
|
|
19145
|
-
"Not connected to API Spector Cloud
|
|
19145
|
+
"Not connected to API Spector Cloud - connect in Settings → Cloud to publish. You can still design and save the contract.": "No estás conectado a API Spector Cloud. Conéctate en Ajustes → Cloud para publicar. Aún puedes diseñar y guardar el contrato.",
|
|
19146
19146
|
"what this interaction is": "qué es esta interacción",
|
|
19147
19147
|
"Remove interaction": "Eliminar interacción",
|
|
19148
|
-
'provider state (e.g. "brand 1 exists")
|
|
19148
|
+
'provider state (e.g. "brand 1 exists") - optional': 'estado del proveedor (p. ej. "brand 1 exists") - opcional',
|
|
19149
19149
|
Request: Request$3,
|
|
19150
19150
|
"Body (JSON, optional)": "Cuerpo (JSON, opcional)",
|
|
19151
19151
|
"Expected response": "Respuesta esperada",
|
|
19152
19152
|
"expected status code": "código de estado esperado",
|
|
19153
19153
|
Body: Body$3,
|
|
19154
|
-
"[{ id: string, name: string, slug: string }]
|
|
19154
|
+
"[{ id: string, name: string, slug: string }] - or a JSON example": "[{ id: string, name: string, slug: string }] - o un ejemplo JSON",
|
|
19155
19155
|
"A JSON example (matched by type when the toggle is on), or a": "Un ejemplo JSON (comparado por tipo cuando el interruptor está activado), o una",
|
|
19156
19156
|
"type shape": "forma de tipos",
|
|
19157
19157
|
"to check each property's type:": "para comprobar el tipo de cada propiedad:",
|
|
19158
19158
|
"plus nested": "más anidados",
|
|
19159
19159
|
". E.g.": ". P. ej.",
|
|
19160
19160
|
". Compiles to Pact": ". Se compila a Pact",
|
|
19161
|
-
"Match a JSON example by type, not exact value (tolerant
|
|
19161
|
+
"Match a JSON example by type, not exact value (tolerant - recommended)": "Comparar un ejemplo JSON por tipo, no por valor exacto (tolerante - recomendado)",
|
|
19162
19162
|
"+ Add interaction": "+ Añadir interacción",
|
|
19163
19163
|
ERR: ERR$3,
|
|
19164
19164
|
"▲ Hide sent request": "▲ Ocultar request enviada",
|
|
@@ -19190,7 +19190,7 @@ const es = {
|
|
|
19190
19190
|
":count operation clean|:count operations clean": ":count operación limpia|:count operaciones limpias",
|
|
19191
19191
|
"All cases sent": "Todos los casos enviados",
|
|
19192
19192
|
"No operations were fuzzed. Check that requests have a body or a matching spec operation.": "No se hizo fuzzing a ninguna operación. Comprueba que las requests tengan cuerpo o una operación coincidente en la especificación.",
|
|
19193
|
-
"Published :name@:version
|
|
19193
|
+
"Published :name@:version - :count contract(s) re-verified": "Se publicó :name@:version - :count contrato(s) reverificado(s)",
|
|
19194
19194
|
"Provide an OpenAPI spec URL or pick a pinned snapshot for provider / bi-directional mode.": "Proporciona una URL de especificación OpenAPI o elige una instantánea fijada para el modo proveedor / bidireccional.",
|
|
19195
19195
|
"Provide a provider base URL (e.g. http://localhost:3000) to replay contracts against.": "Proporciona una URL base del proveedor (p. ej. http://localhost:3000) contra la que reproducir los contratos.",
|
|
19196
19196
|
"Provide a provider base URL (e.g. http://localhost:3000) to fuzz against.": "Proporciona una URL base del proveedor (p. ej. http://localhost:3000) contra la que hacer fuzzing.",
|
|
@@ -19529,7 +19529,7 @@ const es = {
|
|
|
19529
19529
|
"Enable API Spector Cloud": "Habilitar API Spector Cloud",
|
|
19530
19530
|
'Push mocks and monitors to a hosted instance. When on, "Push to cloud" actions appear on mocks and requests.': 'Envía mocks y monitores a una instancia alojada. Cuando está activado, aparecen acciones "Enviar a la nube" en los mocks y las requests.',
|
|
19531
19531
|
"API token": "Token de API",
|
|
19532
|
-
"•••••••• (saved
|
|
19532
|
+
"•••••••• (saved - type to replace)": "•••••••• (guardado - escribe para reemplazar)",
|
|
19533
19533
|
"Paste a token from the cloud dashboard": "Pega un token del panel de la nube",
|
|
19534
19534
|
"Stored in your OS keychain, never in the workspace file. Create one under Tokens in the cloud dashboard.": "Se guarda en el llavero de tu SO, nunca en el archivo del espacio de trabajo. Crea uno en Tokens en el panel de la nube.",
|
|
19535
19535
|
"Testing…": "Probando…",
|
|
@@ -19543,7 +19543,7 @@ const es = {
|
|
|
19543
19543
|
"Add pattern…": "Añadir patrón…",
|
|
19544
19544
|
Add: Add$3,
|
|
19545
19545
|
"Reference secrets from an external manager instead of storing them. Put a reference like": "Referencia secrets desde un gestor externo en lugar de almacenarlos. Pon una referencia como",
|
|
19546
|
-
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret
|
|
19546
|
+
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret - tokens and secret-ids come from your environment (or the Vault sign-in below).": "en una variable de entorno o un campo de autenticación; se resuelve al enviar y nunca se escribe en el espacio de trabajo. Esta configuración de conexión no es secret - los tokens y los secret-ids provienen de tu entorno (o del inicio de sesión de Vault de abajo).",
|
|
19547
19547
|
"Address (VAULT_ADDR)": "Dirección (VAULT_ADDR)",
|
|
19548
19548
|
Namespace: Namespace$3,
|
|
19549
19549
|
"(Enterprise)": "(Enterprise)",
|
|
@@ -19899,7 +19899,7 @@ const es = {
|
|
|
19899
19899
|
"No contract body schema defined yet": "Aún no hay esquema de cuerpo del contrato definido",
|
|
19900
19900
|
"Derive from contract": "Derivar del contrato",
|
|
19901
19901
|
Validate: Validate$3,
|
|
19902
|
-
"Standalone
|
|
19902
|
+
"Standalone - edits here don't touch the contract. Use “Derive from contract” to start from it.": "Independiente - las ediciones aquí no afectan al contrato. Usa “Derivar del contrato” para partir de él.",
|
|
19903
19903
|
"Format JSON": "Formatear JSON",
|
|
19904
19904
|
"Valid: response matches the schema.": "Válido: la respuesta coincide con el esquema.",
|
|
19905
19905
|
"Invalid: :count error|Invalid: :count errors": "No válido: :count error|No válido: :count errores",
|
|
@@ -20376,14 +20376,14 @@ const it = {
|
|
|
20376
20376
|
Remove: Remove$2,
|
|
20377
20377
|
"+ add": "+ aggiungi",
|
|
20378
20378
|
"Saved :path in the workspace": "Salvato :path nel workspace",
|
|
20379
|
-
"Could not create the mock
|
|
20379
|
+
"Could not create the mock - open a workspace first.": "Impossibile creare il mock. Apri prima un workspace.",
|
|
20380
20380
|
":consumer → :provider (contract mock)": ":consumer → :provider (mock del contratto)",
|
|
20381
|
-
"Created mock with :count route
|
|
20381
|
+
"Created mock with :count route - open the Mocks panel to run it|Created mock with :count routes - open the Mocks panel to run it": "Mock creato con :count route. Apri il pannello Mock per eseguirlo|Mock creato con :count route. Apri il pannello Mock per eseguirlo",
|
|
20382
20382
|
"Published, but bi-directional check failed: :detail": "Pubblicato, ma il controllo bidirezionale non è riuscito: :detail",
|
|
20383
20383
|
"see matrix": "vedi matrice",
|
|
20384
20384
|
"Published :consumer@:version to the cloud": "Pubblicato :consumer@:version nel cloud",
|
|
20385
20385
|
"Contract Designer": "Designer dei contratti",
|
|
20386
|
-
"Design a consumer-driven contract up front
|
|
20386
|
+
"Design a consumer-driven contract up front - no endpoint required - then publish it to API Spector Cloud.": "Progetta in anticipo un contratto guidato dal consumer, senza bisogno di endpoint, poi pubblicalo su API Spector Cloud.",
|
|
20387
20387
|
"New contract": "Nuovo contratto",
|
|
20388
20388
|
"+ New": "+ Nuovo",
|
|
20389
20389
|
"No contracts yet. Click": "Ancora nessun contratto. Clicca",
|
|
@@ -20401,23 +20401,23 @@ const it = {
|
|
|
20401
20401
|
"Publishing…": "Pubblicazione…",
|
|
20402
20402
|
"Publish to Cloud": "Pubblica sul cloud",
|
|
20403
20403
|
Delete: Delete$2,
|
|
20404
|
-
"Not connected to API Spector Cloud
|
|
20404
|
+
"Not connected to API Spector Cloud - connect in Settings → Cloud to publish. You can still design and save the contract.": "Non connesso ad API Spector Cloud. Connettiti in Impostazioni → Cloud per pubblicare. Puoi comunque progettare e salvare il contratto.",
|
|
20405
20405
|
"what this interaction is": "cos'è questa interazione",
|
|
20406
20406
|
"Remove interaction": "Rimuovi interazione",
|
|
20407
|
-
'provider state (e.g. "brand 1 exists")
|
|
20407
|
+
'provider state (e.g. "brand 1 exists") - optional': 'stato del provider (es. "il brand 1 esiste") - facoltativo',
|
|
20408
20408
|
Request: Request$2,
|
|
20409
20409
|
"Body (JSON, optional)": "Body (JSON, facoltativo)",
|
|
20410
20410
|
"Expected response": "Risposta attesa",
|
|
20411
20411
|
"expected status code": "codice di stato atteso",
|
|
20412
20412
|
Body: Body$2,
|
|
20413
|
-
"[{ id: string, name: string, slug: string }]
|
|
20413
|
+
"[{ id: string, name: string, slug: string }] - or a JSON example": "[{ id: string, name: string, slug: string }] - oppure un esempio JSON",
|
|
20414
20414
|
"A JSON example (matched by type when the toggle is on), or a": "Un esempio JSON (confrontato per tipo quando l'opzione è attiva), oppure una",
|
|
20415
20415
|
"type shape": "struttura di tipi",
|
|
20416
20416
|
"to check each property's type:": "per controllare il tipo di ogni proprietà:",
|
|
20417
20417
|
"plus nested": "più annidati",
|
|
20418
20418
|
". E.g.": ". Es.",
|
|
20419
20419
|
". Compiles to Pact": ". Compila in Pact",
|
|
20420
|
-
"Match a JSON example by type, not exact value (tolerant
|
|
20420
|
+
"Match a JSON example by type, not exact value (tolerant - recommended)": "Confronta un esempio JSON per tipo, non per valore esatto (tollerante - consigliato)",
|
|
20421
20421
|
"+ Add interaction": "+ Aggiungi interazione",
|
|
20422
20422
|
ERR: ERR$2,
|
|
20423
20423
|
"▲ Hide sent request": "▲ Nascondi request inviata",
|
|
@@ -20449,7 +20449,7 @@ const it = {
|
|
|
20449
20449
|
":count operation clean|:count operations clean": ":count operazione pulita|:count operazioni pulite",
|
|
20450
20450
|
"All cases sent": "Tutti i casi inviati",
|
|
20451
20451
|
"No operations were fuzzed. Check that requests have a body or a matching spec operation.": "Nessuna operazione è stata sottoposta a fuzzing. Verifica che le requests abbiano un body o un'operazione corrispondente nella spec.",
|
|
20452
|
-
"Published :name@:version
|
|
20452
|
+
"Published :name@:version - :count contract(s) re-verified": "Pubblicato :name@:version - :count contratto/i ri-verificati",
|
|
20453
20453
|
"Provide an OpenAPI spec URL or pick a pinned snapshot for provider / bi-directional mode.": "Fornisci un URL di specifica OpenAPI o scegli uno snapshot fissato per la modalità provider / bidirezionale.",
|
|
20454
20454
|
"Provide a provider base URL (e.g. http://localhost:3000) to replay contracts against.": "Fornisci un URL di base del provider (es. http://localhost:3000) su cui rieseguire i contratti.",
|
|
20455
20455
|
"Provide a provider base URL (e.g. http://localhost:3000) to fuzz against.": "Fornisci un URL di base del provider (es. http://localhost:3000) su cui eseguire il fuzzing.",
|
|
@@ -20788,7 +20788,7 @@ const it = {
|
|
|
20788
20788
|
"Enable API Spector Cloud": "Abilita API Spector Cloud",
|
|
20789
20789
|
'Push mocks and monitors to a hosted instance. When on, "Push to cloud" actions appear on mocks and requests.': `Invia mock e monitor a un'istanza ospitata. Quando è attivo, le azioni "Push nel cloud" appaiono su mock e requests.`,
|
|
20790
20790
|
"API token": "Token API",
|
|
20791
|
-
"•••••••• (saved
|
|
20791
|
+
"•••••••• (saved - type to replace)": "•••••••• (salvato - digita per sostituire)",
|
|
20792
20792
|
"Paste a token from the cloud dashboard": "Incolla un token dalla dashboard del cloud",
|
|
20793
20793
|
"Stored in your OS keychain, never in the workspace file. Create one under Tokens in the cloud dashboard.": "Memorizzato nel keychain del sistema operativo, mai nel file del workspace. Creane uno in Token nella dashboard del cloud.",
|
|
20794
20794
|
"Testing…": "Test in corso…",
|
|
@@ -20802,7 +20802,7 @@ const it = {
|
|
|
20802
20802
|
"Add pattern…": "Aggiungi pattern…",
|
|
20803
20803
|
Add: Add$2,
|
|
20804
20804
|
"Reference secrets from an external manager instead of storing them. Put a reference like": "Fai riferimento ai secrets da un gestore esterno invece di memorizzarli. Inserisci un riferimento come",
|
|
20805
|
-
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret
|
|
20805
|
+
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret - tokens and secret-ids come from your environment (or the Vault sign-in below).": "in una variabile d'ambiente o in un campo di autenticazione; viene risolto al momento dell'invio e mai scritto nel workspace. Questa configurazione di connessione non è secret - i token e i secret-id provengono dal tuo ambiente (o dall'accesso a Vault qui sotto).",
|
|
20806
20806
|
"Address (VAULT_ADDR)": "Indirizzo (VAULT_ADDR)",
|
|
20807
20807
|
Namespace: Namespace$2,
|
|
20808
20808
|
"(Enterprise)": "(Enterprise)",
|
|
@@ -21158,7 +21158,7 @@ const it = {
|
|
|
21158
21158
|
"No contract body schema defined yet": "Ancora nessuno schema del body del contratto definito",
|
|
21159
21159
|
"Derive from contract": "Deriva dal contratto",
|
|
21160
21160
|
Validate: Validate$2,
|
|
21161
|
-
"Standalone
|
|
21161
|
+
"Standalone - edits here don't touch the contract. Use “Derive from contract” to start from it.": "Autonomo - le modifiche qui non toccano il contratto. Usa “Deriva dal contratto” per partire da esso.",
|
|
21162
21162
|
"Format JSON": "Formatta JSON",
|
|
21163
21163
|
"Valid: response matches the schema.": "Valido: la risposta corrisponde allo schema.",
|
|
21164
21164
|
"Invalid: :count error|Invalid: :count errors": "Non valido: :count errore|Non valido: :count errori",
|
|
@@ -21635,14 +21635,14 @@ const nl = {
|
|
|
21635
21635
|
Remove: Remove$1,
|
|
21636
21636
|
"+ add": "+ toevoegen",
|
|
21637
21637
|
"Saved :path in the workspace": ":path opgeslagen in de werkruimte",
|
|
21638
|
-
"Could not create the mock
|
|
21638
|
+
"Could not create the mock - open a workspace first.": "Kon de mock niet aanmaken. Open eerst een werkruimte.",
|
|
21639
21639
|
":consumer → :provider (contract mock)": ":consumer → :provider (contractmock)",
|
|
21640
|
-
"Created mock with :count route
|
|
21640
|
+
"Created mock with :count route - open the Mocks panel to run it|Created mock with :count routes - open the Mocks panel to run it": "Mock aangemaakt met :count route. Open het paneel Mocks om deze uit te voeren.|Mock aangemaakt met :count routes. Open het paneel Mocks om deze uit te voeren.",
|
|
21641
21641
|
"Published, but bi-directional check failed: :detail": "Gepubliceerd, maar bidirectionele controle mislukt: :detail",
|
|
21642
21642
|
"see matrix": "zie matrix",
|
|
21643
21643
|
"Published :consumer@:version to the cloud": ":consumer@:version gepubliceerd naar de cloud",
|
|
21644
21644
|
"Contract Designer": "Contractontwerper",
|
|
21645
|
-
"Design a consumer-driven contract up front
|
|
21645
|
+
"Design a consumer-driven contract up front - no endpoint required - then publish it to API Spector Cloud.": "Ontwerp vooraf een consumer-driven contract, geen endpoint nodig, en publiceer het vervolgens naar API Spector Cloud.",
|
|
21646
21646
|
"New contract": "Nieuw contract",
|
|
21647
21647
|
"+ New": "+ Nieuw",
|
|
21648
21648
|
"No contracts yet. Click": "Nog geen contracten. Klik",
|
|
@@ -21660,23 +21660,23 @@ const nl = {
|
|
|
21660
21660
|
"Publishing…": "Publiceren…",
|
|
21661
21661
|
"Publish to Cloud": "Publiceren naar Cloud",
|
|
21662
21662
|
Delete: Delete$1,
|
|
21663
|
-
"Not connected to API Spector Cloud
|
|
21663
|
+
"Not connected to API Spector Cloud - connect in Settings → Cloud to publish. You can still design and save the contract.": "Niet verbonden met API Spector Cloud. Maak verbinding via Instellingen → Cloud om te publiceren. U kunt het contract nog steeds ontwerpen en opslaan.",
|
|
21664
21664
|
"what this interaction is": "wat deze interactie is",
|
|
21665
21665
|
"Remove interaction": "Interactie verwijderen",
|
|
21666
|
-
'provider state (e.g. "brand 1 exists")
|
|
21666
|
+
'provider state (e.g. "brand 1 exists") - optional': 'provider state (bijv. "merk 1 bestaat") - optioneel',
|
|
21667
21667
|
Request: Request$1,
|
|
21668
21668
|
"Body (JSON, optional)": "Body (JSON, optioneel)",
|
|
21669
21669
|
"Expected response": "Verwachte respons",
|
|
21670
21670
|
"expected status code": "verwachte statuscode",
|
|
21671
21671
|
Body: Body$1,
|
|
21672
|
-
"[{ id: string, name: string, slug: string }]
|
|
21672
|
+
"[{ id: string, name: string, slug: string }] - or a JSON example": "[{ id: string, name: string, slug: string }] - of een JSON-voorbeeld",
|
|
21673
21673
|
"A JSON example (matched by type when the toggle is on), or a": "Een JSON-voorbeeld (op type gematcht wanneer de schakelaar aan staat), of een",
|
|
21674
21674
|
"type shape": "typevorm",
|
|
21675
21675
|
"to check each property's type:": "om het type van elke eigenschap te controleren:",
|
|
21676
21676
|
"plus nested": "plus geneste",
|
|
21677
21677
|
". E.g.": ". Bijv.",
|
|
21678
21678
|
". Compiles to Pact": ". Compileert naar Pact",
|
|
21679
|
-
"Match a JSON example by type, not exact value (tolerant
|
|
21679
|
+
"Match a JSON example by type, not exact value (tolerant - recommended)": "Match een JSON-voorbeeld op type, niet op exacte waarde (tolerant - aanbevolen)",
|
|
21680
21680
|
"+ Add interaction": "+ Interactie toevoegen",
|
|
21681
21681
|
ERR: ERR$1,
|
|
21682
21682
|
"▲ Hide sent request": "▲ Verzonden request verbergen",
|
|
@@ -21708,7 +21708,7 @@ const nl = {
|
|
|
21708
21708
|
":count operation clean|:count operations clean": ":count operatie schoon|:count operaties schoon",
|
|
21709
21709
|
"All cases sent": "Alle gevallen verzonden",
|
|
21710
21710
|
"No operations were fuzzed. Check that requests have a body or a matching spec operation.": "Er zijn geen operaties gefuzzt. Controleer of requests een body of een bijbehorende spec-operatie hebben.",
|
|
21711
|
-
"Published :name@:version
|
|
21711
|
+
"Published :name@:version - :count contract(s) re-verified": ":name@:version gepubliceerd - :count contract(en) opnieuw geverifieerd",
|
|
21712
21712
|
"Provide an OpenAPI spec URL or pick a pinned snapshot for provider / bi-directional mode.": "Geef een OpenAPI-spec-URL op of kies een vastgezette snapshot voor provider- / bidirectionele modus.",
|
|
21713
21713
|
"Provide a provider base URL (e.g. http://localhost:3000) to replay contracts against.": "Geef een provider-basis-URL op (bijv. http://localhost:3000) om contracten tegen af te spelen.",
|
|
21714
21714
|
"Provide a provider base URL (e.g. http://localhost:3000) to fuzz against.": "Geef een provider-basis-URL op (bijv. http://localhost:3000) om tegen te fuzzen.",
|
|
@@ -22047,7 +22047,7 @@ const nl = {
|
|
|
22047
22047
|
"Enable API Spector Cloud": "API Spector Cloud inschakelen",
|
|
22048
22048
|
'Push mocks and monitors to a hosted instance. When on, "Push to cloud" actions appear on mocks and requests.': 'Push mocks en monitors naar een gehoste instantie. Wanneer ingeschakeld verschijnen "Push naar cloud"-acties op mocks en requests.',
|
|
22049
22049
|
"API token": "API-token",
|
|
22050
|
-
"•••••••• (saved
|
|
22050
|
+
"•••••••• (saved - type to replace)": "•••••••• (opgeslagen - typ om te vervangen)",
|
|
22051
22051
|
"Paste a token from the cloud dashboard": "Plak een token uit het cloud-dashboard",
|
|
22052
22052
|
"Stored in your OS keychain, never in the workspace file. Create one under Tokens in the cloud dashboard.": "Opgeslagen in uw OS-keychain, nooit in het werkruimtebestand. Maak er een aan onder Tokens in het cloud-dashboard.",
|
|
22053
22053
|
"Testing…": "Testen…",
|
|
@@ -22061,7 +22061,7 @@ const nl = {
|
|
|
22061
22061
|
"Add pattern…": "Patroon toevoegen…",
|
|
22062
22062
|
Add: Add$1,
|
|
22063
22063
|
"Reference secrets from an external manager instead of storing them. Put a reference like": "Verwijs naar secrets uit een externe manager in plaats van ze op te slaan. Plaats een verwijzing zoals",
|
|
22064
|
-
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret
|
|
22064
|
+
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret - tokens and secret-ids come from your environment (or the Vault sign-in below).": "in een omgevingsvariabele of een auth-veld; deze wordt bij verzenden opgelost en nooit naar de werkruimte geschreven. Deze verbindingsconfiguratie is niet-secret - tokens en secret-id's komen uit uw omgeving (of de Vault-aanmelding hieronder).",
|
|
22065
22065
|
"Address (VAULT_ADDR)": "Adres (VAULT_ADDR)",
|
|
22066
22066
|
Namespace: Namespace$1,
|
|
22067
22067
|
"(Enterprise)": "(Enterprise)",
|
|
@@ -22417,7 +22417,7 @@ const nl = {
|
|
|
22417
22417
|
"No contract body schema defined yet": "Nog geen contract-body-schema gedefinieerd",
|
|
22418
22418
|
"Derive from contract": "Afleiden uit contract",
|
|
22419
22419
|
Validate: Validate$1,
|
|
22420
|
-
"Standalone
|
|
22420
|
+
"Standalone - edits here don't touch the contract. Use “Derive from contract” to start from it.": "Standalone - bewerkingen hier raken het contract niet. Gebruik “Afleiden uit contract” om ermee te beginnen.",
|
|
22421
22421
|
"Format JSON": "JSON formatteren",
|
|
22422
22422
|
"Valid: response matches the schema.": "Geldig: respons komt overeen met het schema.",
|
|
22423
22423
|
"Invalid: :count error|Invalid: :count errors": "Ongeldig: :count fout|Ongeldig: :count fouten",
|
|
@@ -22894,14 +22894,14 @@ const pt = {
|
|
|
22894
22894
|
Remove,
|
|
22895
22895
|
"+ add": "+ adicionar",
|
|
22896
22896
|
"Saved :path in the workspace": "Guardado :path no espaço de trabalho",
|
|
22897
|
-
"Could not create the mock
|
|
22897
|
+
"Could not create the mock - open a workspace first.": "Não foi possível criar o mock. Abra primeiro um espaço de trabalho.",
|
|
22898
22898
|
":consumer → :provider (contract mock)": ":consumer → :provider (mock de contrato)",
|
|
22899
|
-
"Created mock with :count route
|
|
22899
|
+
"Created mock with :count route - open the Mocks panel to run it|Created mock with :count routes - open the Mocks panel to run it": "Mock criado com :count rota. Abra o painel Mocks para o executar|Mock criado com :count rotas. Abra o painel Mocks para o executar",
|
|
22900
22900
|
"Published, but bi-directional check failed: :detail": "Publicado, mas a verificação bidirecional falhou: :detail",
|
|
22901
22901
|
"see matrix": "ver matriz",
|
|
22902
22902
|
"Published :consumer@:version to the cloud": "Publicado :consumer@:version na cloud",
|
|
22903
22903
|
"Contract Designer": "Editor de contratos",
|
|
22904
|
-
"Design a consumer-driven contract up front
|
|
22904
|
+
"Design a consumer-driven contract up front - no endpoint required - then publish it to API Spector Cloud.": "Desenhe antecipadamente um contrato orientado pelo consumidor, sem necessidade de endpoint, e depois publique-o na API Spector Cloud.",
|
|
22905
22905
|
"New contract": "Novo contrato",
|
|
22906
22906
|
"+ New": "+ Novo",
|
|
22907
22907
|
"No contracts yet. Click": "Ainda não há contratos. Clique",
|
|
@@ -22919,23 +22919,23 @@ const pt = {
|
|
|
22919
22919
|
"Publishing…": "A publicar…",
|
|
22920
22920
|
"Publish to Cloud": "Publicar na Cloud",
|
|
22921
22921
|
Delete,
|
|
22922
|
-
"Not connected to API Spector Cloud
|
|
22922
|
+
"Not connected to API Spector Cloud - connect in Settings → Cloud to publish. You can still design and save the contract.": "Não está ligado à API Spector Cloud. Ligue-se em Definições → Cloud para publicar. Pode continuar a desenhar e a guardar o contrato.",
|
|
22923
22923
|
"what this interaction is": "o que é esta interação",
|
|
22924
22924
|
"Remove interaction": "Remover interação",
|
|
22925
|
-
'provider state (e.g. "brand 1 exists")
|
|
22925
|
+
'provider state (e.g. "brand 1 exists") - optional': 'estado do fornecedor (ex.: "brand 1 exists") - opcional',
|
|
22926
22926
|
Request,
|
|
22927
22927
|
"Body (JSON, optional)": "Corpo (JSON, opcional)",
|
|
22928
22928
|
"Expected response": "Resposta esperada",
|
|
22929
22929
|
"expected status code": "código de estado esperado",
|
|
22930
22930
|
Body,
|
|
22931
|
-
"[{ id: string, name: string, slug: string }]
|
|
22931
|
+
"[{ id: string, name: string, slug: string }] - or a JSON example": "[{ id: string, name: string, slug: string }] - ou um exemplo JSON",
|
|
22932
22932
|
"A JSON example (matched by type when the toggle is on), or a": "Um exemplo JSON (correspondido por tipo quando a opção está ativa), ou uma",
|
|
22933
22933
|
"type shape": "estrutura de tipos",
|
|
22934
22934
|
"to check each property's type:": "para verificar o tipo de cada propriedade:",
|
|
22935
22935
|
"plus nested": "além de aninhados",
|
|
22936
22936
|
". E.g.": ". Ex.:",
|
|
22937
22937
|
". Compiles to Pact": ". Compila para Pact",
|
|
22938
|
-
"Match a JSON example by type, not exact value (tolerant
|
|
22938
|
+
"Match a JSON example by type, not exact value (tolerant - recommended)": "Corresponder um exemplo JSON por tipo, não pelo valor exato (tolerante - recomendado)",
|
|
22939
22939
|
"+ Add interaction": "+ Adicionar interação",
|
|
22940
22940
|
ERR,
|
|
22941
22941
|
"▲ Hide sent request": "▲ Ocultar request enviado",
|
|
@@ -22967,7 +22967,7 @@ const pt = {
|
|
|
22967
22967
|
":count operation clean|:count operations clean": ":count operação sem problemas|:count operações sem problemas",
|
|
22968
22968
|
"All cases sent": "Todos os casos enviados",
|
|
22969
22969
|
"No operations were fuzzed. Check that requests have a body or a matching spec operation.": "Nenhuma operação foi sujeita a fuzzing. Verifique se os requests têm um corpo ou uma operação correspondente na especificação.",
|
|
22970
|
-
"Published :name@:version
|
|
22970
|
+
"Published :name@:version - :count contract(s) re-verified": "Publicado :name@:version - :count contrato(s) reverificado(s)",
|
|
22971
22971
|
"Provide an OpenAPI spec URL or pick a pinned snapshot for provider / bi-directional mode.": "Indique um URL de especificação OpenAPI ou escolha um snapshot fixado para o modo fornecedor / bidirecional.",
|
|
22972
22972
|
"Provide a provider base URL (e.g. http://localhost:3000) to replay contracts against.": "Indique um URL base do fornecedor (ex.: http://localhost:3000) para reproduzir os contratos.",
|
|
22973
22973
|
"Provide a provider base URL (e.g. http://localhost:3000) to fuzz against.": "Indique um URL base do fornecedor (ex.: http://localhost:3000) para fazer fuzzing.",
|
|
@@ -23306,7 +23306,7 @@ const pt = {
|
|
|
23306
23306
|
"Enable API Spector Cloud": "Ativar a API Spector Cloud",
|
|
23307
23307
|
'Push mocks and monitors to a hosted instance. When on, "Push to cloud" actions appear on mocks and requests.': 'Envie mocks e monitores para uma instância alojada. Quando ativado, as ações "Enviar para a cloud" aparecem nos mocks e nos requests.',
|
|
23308
23308
|
"API token": "Token da API",
|
|
23309
|
-
"•••••••• (saved
|
|
23309
|
+
"•••••••• (saved - type to replace)": "•••••••• (guardado - escreva para substituir)",
|
|
23310
23310
|
"Paste a token from the cloud dashboard": "Cole um token do painel da cloud",
|
|
23311
23311
|
"Stored in your OS keychain, never in the workspace file. Create one under Tokens in the cloud dashboard.": "Guardado no chaveiro do seu SO, nunca no ficheiro do espaço de trabalho. Crie um em Tokens no painel da cloud.",
|
|
23312
23312
|
"Testing…": "A testar…",
|
|
@@ -23320,7 +23320,7 @@ const pt = {
|
|
|
23320
23320
|
"Add pattern…": "Adicionar padrão…",
|
|
23321
23321
|
Add,
|
|
23322
23322
|
"Reference secrets from an external manager instead of storing them. Put a reference like": "Referencie secrets de um gestor externo em vez de os guardar. Coloque uma referência como",
|
|
23323
|
-
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret
|
|
23323
|
+
"in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret - tokens and secret-ids come from your environment (or the Vault sign-in below).": "numa variável de ambiente ou num campo de autenticação; é resolvida no momento do envio e nunca escrita no espaço de trabalho. Esta configuração de ligação não é secret - os tokens e os secret-ids vêm do seu ambiente (ou do início de sessão no Vault abaixo).",
|
|
23324
23324
|
"Address (VAULT_ADDR)": "Endereço (VAULT_ADDR)",
|
|
23325
23325
|
Namespace,
|
|
23326
23326
|
"(Enterprise)": "(Enterprise)",
|
|
@@ -23676,7 +23676,7 @@ const pt = {
|
|
|
23676
23676
|
"No contract body schema defined yet": "Ainda não há esquema de corpo de contrato definido",
|
|
23677
23677
|
"Derive from contract": "Derivar do contrato",
|
|
23678
23678
|
Validate,
|
|
23679
|
-
"Standalone
|
|
23679
|
+
"Standalone - edits here don't touch the contract. Use “Derive from contract” to start from it.": "Autónomo - as edições aqui não afetam o contrato. Use “Derivar do contrato” para começar a partir dele.",
|
|
23680
23680
|
"Format JSON": "Formatar JSON",
|
|
23681
23681
|
"Valid: response matches the schema.": "Válido: a resposta corresponde ao esquema.",
|
|
23682
23682
|
"Invalid: :count error|Invalid: :count errors": "Inválido: :count erro|Inválido: :count erros",
|
|
@@ -27438,8 +27438,8 @@ function jsonWithComments() {
|
|
|
27438
27438
|
function xmlWithComments() {
|
|
27439
27439
|
return [xml(), commentKeymap];
|
|
27440
27440
|
}
|
|
27441
|
-
const GraphQLEditor = reactExports.lazy(() => __vitePreload(() => import("./GraphQLEditor-
|
|
27442
|
-
const SoapEditor = reactExports.lazy(() => __vitePreload(() => import("./SoapEditor-
|
|
27441
|
+
const GraphQLEditor = reactExports.lazy(() => __vitePreload(() => import("./GraphQLEditor-DVmXF8Zt.js"), true ? __vite__mapDeps([0,1,2]) : void 0, import.meta.url).then((m) => ({ default: m.GraphQLEditor })));
|
|
27442
|
+
const SoapEditor = reactExports.lazy(() => __vitePreload(() => import("./SoapEditor-Dnt4GqdH.js"), true ? __vite__mapDeps([3,1,2]) : void 0, import.meta.url).then((m) => ({ default: m.SoapEditor })));
|
|
27443
27443
|
function BodyTab({ request: request2, onChange }) {
|
|
27444
27444
|
const t = useT();
|
|
27445
27445
|
const editorFallback = /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-4 text-xs text-surface-500", children: t("Loading editor…") });
|
|
@@ -32600,7 +32600,7 @@ function WelcomeScreen() {
|
|
|
32600
32600
|
)
|
|
32601
32601
|
] }),
|
|
32602
32602
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-surface-400 text-sm max-w-sm", children: t("Local-first API testing with Robot Framework & Playwright code generation. Secrets stay on your machine.") }),
|
|
32603
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-[11px] mt-3", style: { color: "var(--text-muted)" }, children: t("version :version", { version: "0.
|
|
32603
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-[11px] mt-3", style: { color: "var(--text-muted)" }, children: t("version :version", { version: "0.7.0" }) })
|
|
32604
32604
|
] }),
|
|
32605
32605
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-3 w-64", children: [
|
|
32606
32606
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -33878,7 +33878,7 @@ function WorkspaceSettingsModal({ onClose }) {
|
|
|
33878
33878
|
type: "password",
|
|
33879
33879
|
value: cloudToken,
|
|
33880
33880
|
onChange: (e) => setCloudToken(e.target.value),
|
|
33881
|
-
placeholder: cloudTokenSet ? t("•••••••• (saved
|
|
33881
|
+
placeholder: cloudTokenSet ? t("•••••••• (saved - type to replace)") : t("Paste a token from the cloud dashboard"),
|
|
33882
33882
|
className: `${inputCls} placeholder-surface-600`
|
|
33883
33883
|
}
|
|
33884
33884
|
),
|
|
@@ -33964,7 +33964,7 @@ function WorkspaceSettingsModal({ onClose }) {
|
|
|
33964
33964
|
type: "password",
|
|
33965
33965
|
value: aiKey,
|
|
33966
33966
|
onChange: (e) => setAiKey(e.target.value),
|
|
33967
|
-
placeholder: aiKeySet ? t("•••••••• (stored in keychain
|
|
33967
|
+
placeholder: aiKeySet ? t("•••••••• (stored in keychain - type to replace)") : "sk-...",
|
|
33968
33968
|
autoComplete: "off",
|
|
33969
33969
|
className: `${inputCls} placeholder-surface-600`
|
|
33970
33970
|
}
|
|
@@ -34036,7 +34036,7 @@ function WorkspaceSettingsModal({ onClose }) {
|
|
|
34036
34036
|
" ",
|
|
34037
34037
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-mono text-surface-400", children: "vault:secret/data/app#token" }),
|
|
34038
34038
|
" ",
|
|
34039
|
-
t("in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret
|
|
34039
|
+
t("in an environment variable or an auth field; it is resolved at send-time and never written to the workspace. This connection config is non-secret - tokens and secret-ids come from your environment (or the Vault sign-in below).")
|
|
34040
34040
|
] }),
|
|
34041
34041
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2 border border-surface-800 rounded p-3", children: [
|
|
34042
34042
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-[10px] uppercase tracking-wider text-surface-500 font-semibold", children: "HashiCorp Vault" }),
|
|
@@ -38860,7 +38860,7 @@ function ContractPanel() {
|
|
|
38860
38860
|
version: specVersion.trim(),
|
|
38861
38861
|
specUrl: specUrl.trim()
|
|
38862
38862
|
});
|
|
38863
|
-
setPublishNote(t("Published :name@:version
|
|
38863
|
+
setPublishNote(t("Published :name@:version - :count contract(s) re-verified", { name: providerName.trim(), version: specVersion.trim(), count: res.verified_contracts }));
|
|
38864
38864
|
} catch (e) {
|
|
38865
38865
|
setError(e.message);
|
|
38866
38866
|
} finally {
|
|
@@ -39510,7 +39510,7 @@ function ContractDesignerModal({ seed, onClose }) {
|
|
|
39510
39510
|
const id = st.activeMockId;
|
|
39511
39511
|
const entry = id ? st.mocks[id] : null;
|
|
39512
39512
|
if (!id || !entry) {
|
|
39513
|
-
show(t("Could not create the mock
|
|
39513
|
+
show(t("Could not create the mock - open a workspace first."), false);
|
|
39514
39514
|
return;
|
|
39515
39515
|
}
|
|
39516
39516
|
const mock = { ...designContractToMock(selected), id, name: t(":consumer → :provider (contract mock)", { consumer: selected.consumer, provider: selected.provider }) };
|
|
@@ -39518,7 +39518,7 @@ function ContractDesignerModal({ seed, onClose }) {
|
|
|
39518
39518
|
await electron$5.saveMock(entry.relPath, mock);
|
|
39519
39519
|
const ws = useStore.getState().workspace;
|
|
39520
39520
|
if (ws) await electron$5.saveWorkspace(ws);
|
|
39521
|
-
show(t("Created mock with :count route
|
|
39521
|
+
show(t("Created mock with :count route - open the Mocks panel to run it|Created mock with :count routes - open the Mocks panel to run it", { count: mock.routes.length }), true);
|
|
39522
39522
|
} catch (e) {
|
|
39523
39523
|
show(e.message, false);
|
|
39524
39524
|
}
|
|
@@ -39546,7 +39546,7 @@ function ContractDesignerModal({ seed, onClose }) {
|
|
|
39546
39546
|
{
|
|
39547
39547
|
onClose,
|
|
39548
39548
|
title: t("Contract Designer"),
|
|
39549
|
-
subtitle: t("Design a consumer-driven contract up front
|
|
39549
|
+
subtitle: t("Design a consumer-driven contract up front - no endpoint required - then publish it to API Spector Cloud."),
|
|
39550
39550
|
panelClassName: "bg-surface-900 border border-surface-700 rounded-xl w-[min(1000px,94vw)] h-[min(760px,90vh)] flex flex-col",
|
|
39551
39551
|
children: [
|
|
39552
39552
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-1 min-h-0", children: [
|
|
@@ -39657,7 +39657,7 @@ function ContractDesignerModal({ seed, onClose }) {
|
|
|
39657
39657
|
)
|
|
39658
39658
|
] })
|
|
39659
39659
|
] }),
|
|
39660
|
-
!cloudConnected && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "px-4 py-1.5 text-[11px] text-amber-400 bg-amber-950/20 border-b border-surface-800", children: t("Not connected to API Spector Cloud
|
|
39660
|
+
!cloudConnected && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "px-4 py-1.5 text-[11px] text-amber-400 bg-amber-950/20 border-b border-surface-800", children: t("Not connected to API Spector Cloud - connect in Settings → Cloud to publish. You can still design and save the contract.") }),
|
|
39661
39661
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 overflow-y-auto px-4 py-3 flex flex-col gap-4", children: [
|
|
39662
39662
|
selected.interactions.map((it2, ix) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border border-surface-800 rounded-lg p-3 flex flex-col gap-2.5", children: [
|
|
39663
39663
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -39705,7 +39705,7 @@ function ContractDesignerModal({ seed, onClose }) {
|
|
|
39705
39705
|
{
|
|
39706
39706
|
value: it2.providerState ?? "",
|
|
39707
39707
|
onChange: (e) => patchInteraction(ix, { providerState: e.target.value }),
|
|
39708
|
-
placeholder: t('provider state (e.g. "brand 1 exists")
|
|
39708
|
+
placeholder: t('provider state (e.g. "brand 1 exists") - optional'),
|
|
39709
39709
|
className: "text-xs bg-surface-800 border border-surface-700 rounded px-2 py-1 focus:outline-none focus:border-blue-500"
|
|
39710
39710
|
}
|
|
39711
39711
|
),
|
|
@@ -39779,7 +39779,7 @@ function ContractDesignerModal({ seed, onClose }) {
|
|
|
39779
39779
|
value: it2.response.body ?? "",
|
|
39780
39780
|
onChange: (e) => patchInteraction(ix, { response: { ...it2.response, body: e.target.value } }),
|
|
39781
39781
|
rows: 3,
|
|
39782
|
-
placeholder: t("[{ id: string, name: string, slug: string }]
|
|
39782
|
+
placeholder: t("[{ id: string, name: string, slug: string }] - or a JSON example"),
|
|
39783
39783
|
spellCheck: false,
|
|
39784
39784
|
className: "text-[11px] font-mono bg-surface-800 border border-surface-700 rounded px-2 py-1.5 focus:outline-none focus:border-blue-500 resize-y"
|
|
39785
39785
|
}
|
|
@@ -39819,7 +39819,7 @@ function ContractDesignerModal({ seed, onClose }) {
|
|
|
39819
39819
|
className: "accent-blue-500"
|
|
39820
39820
|
}
|
|
39821
39821
|
),
|
|
39822
|
-
t("Match a JSON example by type, not exact value (tolerant
|
|
39822
|
+
t("Match a JSON example by type, not exact value (tolerant - recommended)")
|
|
39823
39823
|
] })
|
|
39824
39824
|
] }, it2.id)),
|
|
39825
39825
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -41257,25 +41257,40 @@ function CommandPalette() {
|
|
|
41257
41257
|
}
|
|
41258
41258
|
const { electron: electron$1 } = window;
|
|
41259
41259
|
const DISMISS_KEY = STORAGE_KEYS.updateSkipped;
|
|
41260
|
+
const RELEASES_URL = "https://github.com/testsmith-io/api-spector/releases/latest";
|
|
41261
|
+
const shellCls = "fixed bottom-4 right-4 z-[80] w-80 bg-surface-900 border border-surface-700 rounded-lg shadow-2xl overflow-hidden";
|
|
41260
41262
|
function UpdateToast() {
|
|
41261
41263
|
const t = useT();
|
|
41262
41264
|
const [npm, setNpm] = reactExports.useState(null);
|
|
41263
|
-
const [
|
|
41264
|
-
const [
|
|
41265
|
+
const [phase, setPhase] = reactExports.useState("idle");
|
|
41266
|
+
const [version, setVersion] = reactExports.useState("");
|
|
41267
|
+
const [percent, setPercent] = reactExports.useState(0);
|
|
41268
|
+
const [errorMsg, setErrorMsg] = reactExports.useState("");
|
|
41265
41269
|
const { copied, copy: doCopy } = useCopyFeedback(1500);
|
|
41266
41270
|
reactExports.useEffect(() => {
|
|
41267
41271
|
let cancelled = false;
|
|
41268
41272
|
electron$1.getUpdateMode().then((mode) => {
|
|
41269
41273
|
if (cancelled) return;
|
|
41270
41274
|
if (mode === "auto") {
|
|
41271
|
-
electron$1.onUpdateAvailable(({ version }) => {
|
|
41272
|
-
if (
|
|
41275
|
+
electron$1.onUpdateAvailable(({ version: version2 }) => {
|
|
41276
|
+
if (cancelled) return;
|
|
41277
|
+
setVersion(version2);
|
|
41278
|
+
setPercent(0);
|
|
41279
|
+
setPhase("downloading");
|
|
41273
41280
|
});
|
|
41274
|
-
electron$1.
|
|
41275
|
-
if (!cancelled)
|
|
41276
|
-
|
|
41277
|
-
|
|
41278
|
-
|
|
41281
|
+
electron$1.onUpdateProgress(({ percent: percent2 }) => {
|
|
41282
|
+
if (!cancelled) setPercent(Math.max(0, Math.min(100, Math.round(percent2))));
|
|
41283
|
+
});
|
|
41284
|
+
electron$1.onUpdateDownloaded(({ version: version2 }) => {
|
|
41285
|
+
if (cancelled) return;
|
|
41286
|
+
setVersion(version2);
|
|
41287
|
+
setPhase("ready");
|
|
41288
|
+
});
|
|
41289
|
+
electron$1.onUpdateError(({ message }) => {
|
|
41290
|
+
if (cancelled) return;
|
|
41291
|
+
console.error("Auto-update error:", message);
|
|
41292
|
+
setErrorMsg(message);
|
|
41293
|
+
setPhase((prev) => prev === "downloading" ? "error" : prev);
|
|
41279
41294
|
});
|
|
41280
41295
|
return;
|
|
41281
41296
|
}
|
|
@@ -41295,30 +41310,55 @@ function UpdateToast() {
|
|
|
41295
41310
|
cancelled = true;
|
|
41296
41311
|
};
|
|
41297
41312
|
}, []);
|
|
41298
|
-
if (
|
|
41299
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className:
|
|
41313
|
+
if (phase === "downloading") {
|
|
41314
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: shellCls, children: [
|
|
41315
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 px-3 pt-3", children: [
|
|
41316
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-2 h-2 rounded-full bg-blue-500 animate-pulse flex-shrink-0" }),
|
|
41317
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-surface-300 flex-1 min-w-0", children: t("Downloading API Spector :latest…", { latest: version }) }),
|
|
41318
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-[11px] font-mono text-surface-400 tabular-nums", children: [
|
|
41319
|
+
percent,
|
|
41320
|
+
"%"
|
|
41321
|
+
] })
|
|
41322
|
+
] }),
|
|
41323
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-3 pt-2 pb-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-1.5 w-full rounded-full bg-surface-800 overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-full bg-blue-500 transition-[width] duration-300 ease-out", style: { width: `${percent}%` } }) }) })
|
|
41324
|
+
] });
|
|
41325
|
+
}
|
|
41326
|
+
if (phase === "ready") {
|
|
41327
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: shellCls, children: [
|
|
41300
41328
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 px-3 pt-3", children: [
|
|
41301
41329
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "mt-1 w-2 h-2 rounded-full bg-emerald-500 flex-shrink-0" }),
|
|
41302
41330
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
41303
41331
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-sm font-semibold text-white", children: t("Update ready") }),
|
|
41304
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-surface-300 mt-0.5", children: t("API Spector :latest has been downloaded. Restart to install it.", { latest:
|
|
41332
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-surface-300 mt-0.5", children: t("API Spector :latest has been downloaded. Restart to install it.", { latest: version }) })
|
|
41305
41333
|
] }),
|
|
41306
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () =>
|
|
41334
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () => setPhase("idle"), title: t("Later"), className: "text-surface-500 hover:text-surface-300 text-base leading-none px-0.5", children: "×" })
|
|
41307
41335
|
] }),
|
|
41308
41336
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-end gap-2 px-3 py-2.5", children: [
|
|
41309
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () =>
|
|
41337
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () => setPhase("idle"), className: "px-2.5 py-1 text-[11px] rounded text-surface-400 hover:text-surface-200 hover:bg-surface-800 transition-colors", children: t("Later") }),
|
|
41310
41338
|
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () => {
|
|
41311
41339
|
void electron$1.installUpdate();
|
|
41312
41340
|
}, className: "px-3 py-1 text-xs rounded bg-blue-600 hover:bg-blue-500 text-white font-medium transition-colors", children: t("Restart to update") })
|
|
41313
41341
|
] })
|
|
41314
41342
|
] });
|
|
41315
41343
|
}
|
|
41316
|
-
if (
|
|
41317
|
-
return /* @__PURE__ */ jsxRuntimeExports.
|
|
41318
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
41319
|
-
|
|
41320
|
-
|
|
41321
|
-
|
|
41344
|
+
if (phase === "error") {
|
|
41345
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: shellCls, children: [
|
|
41346
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 px-3 pt-3", children: [
|
|
41347
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "mt-1 w-2 h-2 rounded-full bg-red-500 flex-shrink-0" }),
|
|
41348
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
41349
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-sm font-semibold text-white", children: t("Update failed") }),
|
|
41350
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-surface-300 mt-0.5", children: t("The update couldn't be downloaded. You can download it manually instead.") }),
|
|
41351
|
+
errorMsg && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-[10px] font-mono text-surface-500 mt-1 break-all line-clamp-3", children: errorMsg })
|
|
41352
|
+
] }),
|
|
41353
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () => setPhase("idle"), title: t("Later"), className: "text-surface-500 hover:text-surface-300 text-base leading-none px-0.5", children: "×" })
|
|
41354
|
+
] }),
|
|
41355
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-end gap-2 px-3 py-2.5", children: [
|
|
41356
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () => setPhase("idle"), className: "px-2.5 py-1 text-[11px] rounded text-surface-400 hover:text-surface-200 hover:bg-surface-800 transition-colors", children: t("Dismiss") }),
|
|
41357
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () => {
|
|
41358
|
+
void electron$1.openExternal(RELEASES_URL);
|
|
41359
|
+
}, className: "px-3 py-1 text-xs rounded bg-blue-600 hover:bg-blue-500 text-white font-medium transition-colors", children: t("Download manually") })
|
|
41360
|
+
] })
|
|
41361
|
+
] });
|
|
41322
41362
|
}
|
|
41323
41363
|
if (!npm) return null;
|
|
41324
41364
|
const later = () => setNpm(null);
|
|
@@ -41332,7 +41372,7 @@ function UpdateToast() {
|
|
|
41332
41372
|
const copy2 = () => {
|
|
41333
41373
|
void doCopy(npm.command);
|
|
41334
41374
|
};
|
|
41335
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className:
|
|
41375
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: shellCls, children: [
|
|
41336
41376
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 px-3 pt-3", children: [
|
|
41337
41377
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "mt-1 w-2 h-2 rounded-full bg-blue-500 flex-shrink-0" }),
|
|
41338
41378
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
@@ -41627,7 +41667,7 @@ function App() {
|
|
|
41627
41667
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { color: "#6aa3c8" }, children: "Spector" }),
|
|
41628
41668
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ml-2 text-[10px] font-normal opacity-50", children: [
|
|
41629
41669
|
"v",
|
|
41630
|
-
"0.
|
|
41670
|
+
"0.7.0"
|
|
41631
41671
|
] }),
|
|
41632
41672
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "mx-2 opacity-30", children: "·" }),
|
|
41633
41673
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|