@api-client/core 0.6.29 → 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/build/browser.d.ts +6 -14
- package/build/browser.js +11 -16
- package/build/browser.js.map +1 -1
- package/build/index.d.ts +8 -20
- package/build/index.js +13 -25
- package/build/index.js.map +1 -1
- package/build/src/amf/ApiSchemaValues.d.ts +2 -0
- package/build/src/amf/ApiSchemaValues.js +29 -23
- package/build/src/amf/ApiSchemaValues.js.map +1 -1
- package/build/src/authorization/lib/Utils.d.ts +1 -1
- package/build/src/cookies/CookieJar.d.ts +23 -0
- package/build/src/cookies/CookieJar.js +3 -0
- package/build/src/cookies/CookieJar.js.map +1 -0
- package/build/src/cookies/CookieParser.d.ts +67 -0
- package/build/src/cookies/CookieParser.js +316 -0
- package/build/src/cookies/CookieParser.js.map +1 -0
- package/build/src/cookies/InMemoryCookieJar.d.ts +12 -0
- package/build/src/cookies/InMemoryCookieJar.js +68 -0
- package/build/src/cookies/InMemoryCookieJar.js.map +1 -0
- package/build/src/cookies/Punycode.d.ts +12 -0
- package/build/src/cookies/Punycode.js +124 -0
- package/build/src/cookies/Punycode.js.map +1 -0
- package/build/src/data/RequestDataExtractor.d.ts +8 -7
- package/build/src/data/RequestDataExtractor.js +8 -10
- package/build/src/data/RequestDataExtractor.js.map +1 -1
- package/build/src/events/CustomEvent.js +5 -0
- package/build/src/events/CustomEvent.js.map +1 -1
- package/build/src/events/EventTypes.d.ts +43 -43
- package/build/src/events/amf/AmfEventTypes.d.ts +4 -4
- package/build/src/events/authorization/AuthorizationEventTypes.d.ts +4 -4
- package/build/src/events/cookies/CookieEventTypes.d.ts +9 -9
- package/build/src/events/encryption/EncryptionEventTypes.d.ts +2 -2
- package/build/src/events/environment/EnvironmentEventTypes.d.ts +1 -1
- package/build/src/events/models/ModelEventTypes.d.ts +7 -7
- package/build/src/events/process/ProcessEventTypes.d.ts +3 -3
- package/build/src/events/reporting/ReportingEventTypes.d.ts +1 -1
- package/build/src/events/telemetry/TelemetryEventTypes.d.ts +6 -6
- package/build/src/events/transport/TransportEventTypes.d.ts +6 -6
- package/build/src/events/transport/TransportEvents.d.ts +2 -2
- package/build/src/mocking/ProjectMock.d.ts +3 -2
- package/build/src/mocking/ProjectMock.js +3 -3
- package/build/src/mocking/ProjectMock.js.map +1 -1
- package/build/src/mocking/lib/App.d.ts +36 -0
- package/build/src/mocking/lib/App.js +70 -0
- package/build/src/mocking/lib/App.js.map +1 -0
- package/build/src/models/{arc/ArcProject.d.ts → AppProject.d.ts} +296 -134
- package/build/src/models/{arc/ArcProject.js → AppProject.js} +436 -79
- package/build/src/models/AppProject.js.map +1 -0
- package/build/src/models/AppRequest.d.ts +69 -0
- package/build/src/models/AppRequest.js +150 -0
- package/build/src/models/AppRequest.js.map +1 -0
- package/build/src/models/ClientCertificate.d.ts +2 -2
- package/build/src/models/Environment.d.ts +8 -1
- package/build/src/models/Environment.js +21 -0
- package/build/src/models/Environment.js.map +1 -1
- package/build/src/models/HostRule.d.ts +2 -2
- package/build/src/models/HttpCookie.d.ts +63 -12
- package/build/src/models/HttpCookie.js +178 -44
- package/build/src/models/HttpCookie.js.map +1 -1
- package/build/src/models/HttpHistory.d.ts +8 -3
- package/build/src/models/HttpHistory.js +3 -3
- package/build/src/models/HttpHistory.js.map +1 -1
- package/build/src/models/HttpProject.d.ts +34 -1
- package/build/src/models/HttpProject.js +104 -8
- package/build/src/models/HttpProject.js.map +1 -1
- package/build/src/models/ProjectFolder.d.ts +2 -0
- package/build/src/models/ProjectFolder.js +14 -0
- package/build/src/models/ProjectFolder.js.map +1 -1
- package/build/src/models/ProjectItem.d.ts +2 -0
- package/build/src/models/ProjectItem.js +20 -0
- package/build/src/models/ProjectItem.js.map +1 -1
- package/build/src/models/ProjectParent.js.map +1 -1
- package/build/src/models/ProjectRequest.d.ts +3 -2
- package/build/src/models/ProjectRequest.js.map +1 -1
- package/build/src/models/Property.d.ts +2 -2
- package/build/src/models/Property.js +2 -2
- package/build/src/models/Property.js.map +1 -1
- package/build/src/models/Request.d.ts +16 -8
- package/build/src/models/Request.js +20 -15
- package/build/src/models/Request.js.map +1 -1
- package/build/src/models/RequestAuthorization.js.map +1 -1
- package/build/src/models/RequestUiMeta.d.ts +0 -14
- package/build/src/models/RequestUiMeta.js +1 -10
- package/build/src/models/RequestUiMeta.js.map +1 -1
- package/build/src/models/Server.d.ts +1 -2
- package/build/src/models/Server.js.map +1 -1
- package/build/src/models/http-actions/HttpActions.d.ts +256 -0
- package/build/src/models/http-actions/HttpActions.js +46 -0
- package/build/src/models/http-actions/HttpActions.js.map +1 -0
- package/build/src/models/http-actions/LegacyTranslator.d.ts +17 -0
- package/build/src/models/http-actions/LegacyTranslator.js +222 -0
- package/build/src/models/http-actions/LegacyTranslator.js.map +1 -0
- package/build/src/models/store/Backend.d.ts +136 -1
- package/build/src/models/store/File.d.ts +1 -1
- package/build/src/models/store/File.js +2 -0
- package/build/src/models/store/File.js.map +1 -1
- package/build/src/models/store/User.d.ts +3 -3
- package/build/src/runtime/http-engine/CoreEngine.d.ts +2 -0
- package/build/src/runtime/http-engine/CoreEngine.js +1 -0
- package/build/src/runtime/http-engine/CoreEngine.js.map +1 -1
- package/build/src/runtime/http-engine/HttpEngine.d.ts +13 -0
- package/build/src/runtime/http-engine/HttpEngine.js +39 -31
- package/build/src/runtime/http-engine/HttpEngine.js.map +1 -1
- package/build/src/runtime/{actions/ConditionRunner.d.ts → http-runner/ConditionCheck.d.ts} +2 -2
- package/build/src/runtime/{actions/ConditionRunner.js → http-runner/ConditionCheck.js} +2 -2
- package/build/src/runtime/http-runner/ConditionCheck.js.map +1 -0
- package/build/src/runtime/http-runner/HttpFlowRunner.d.ts +62 -0
- package/build/src/runtime/http-runner/HttpFlowRunner.js +217 -0
- package/build/src/runtime/http-runner/HttpFlowRunner.js.map +1 -0
- package/build/src/runtime/{node/RequestFactory.d.ts → http-runner/HttpRequestRunner.d.ts} +40 -54
- package/build/src/runtime/http-runner/HttpRequestRunner.js +316 -0
- package/build/src/runtime/http-runner/HttpRequestRunner.js.map +1 -0
- package/build/src/runtime/http-runner/HttpRuntimeEnvironment.d.ts +25 -0
- package/build/src/runtime/http-runner/HttpRuntimeEnvironment.js +2 -0
- package/build/src/runtime/http-runner/HttpRuntimeEnvironment.js.map +1 -0
- package/build/src/runtime/http-runner/RequestAuthorizationProcessor.d.ts +56 -0
- package/build/src/runtime/http-runner/RequestAuthorizationProcessor.js +143 -0
- package/build/src/runtime/http-runner/RequestAuthorizationProcessor.js.map +1 -0
- package/build/src/runtime/http-runner/RequestCookiesProcessor.d.ts +24 -0
- package/build/src/runtime/http-runner/RequestCookiesProcessor.js +65 -0
- package/build/src/runtime/http-runner/RequestCookiesProcessor.js.map +1 -0
- package/build/src/runtime/node/InteropInterfaces.d.ts +21 -6
- package/build/src/runtime/node/ProjectParallelRunner.js +3 -1
- package/build/src/runtime/node/ProjectParallelRunner.js.map +1 -1
- package/build/src/runtime/node/ProjectRequestRunner.d.ts +24 -10
- package/build/src/runtime/node/ProjectRequestRunner.js +116 -45
- package/build/src/runtime/node/ProjectRequestRunner.js.map +1 -1
- package/build/src/runtime/node/ProjectRunner.d.ts +5 -7
- package/build/src/runtime/node/ProjectRunner.js +30 -14
- package/build/src/runtime/node/ProjectRunner.js.map +1 -1
- package/build/src/runtime/node/ProjectRunnerWorker.js +3 -0
- package/build/src/runtime/node/ProjectRunnerWorker.js.map +1 -1
- package/build/src/runtime/reporters/Reporter.d.ts +5 -0
- package/build/src/runtime/reporters/Reporter.js.map +1 -1
- package/build/src/runtime/store/FilesSdk.js +4 -4
- package/build/src/runtime/store/FilesSdk.js.map +1 -1
- package/build/src/runtime/store/HistorySdk.js +1 -1
- package/build/src/runtime/store/HistorySdk.js.map +1 -1
- package/build/src/runtime/store/HttpClientSdk.d.ts +167 -0
- package/build/src/runtime/store/HttpClientSdk.js +624 -0
- package/build/src/runtime/store/HttpClientSdk.js.map +1 -0
- package/build/src/runtime/store/RouteBuilder.d.ts +17 -2
- package/build/src/runtime/store/RouteBuilder.js +60 -3
- package/build/src/runtime/store/RouteBuilder.js.map +1 -1
- package/build/src/runtime/store/Sdk.d.ts +5 -0
- package/build/src/runtime/store/Sdk.js +5 -0
- package/build/src/runtime/store/Sdk.js.map +1 -1
- package/build/src/runtime/store/SharedSdk.js +1 -1
- package/build/src/runtime/store/SharedSdk.js.map +1 -1
- package/build/src/runtime/store/UsersSdk.js +1 -1
- package/build/src/runtime/store/UsersSdk.js.map +1 -1
- package/package.json +2 -2
- package/src/amf/ApiSchemaValues.ts +41 -33
- package/src/cookies/CookieJar.ts +26 -0
- package/src/cookies/CookieParser.ts +327 -0
- package/src/cookies/InMemoryCookieJar.ts +70 -0
- package/src/cookies/Punycode.ts +133 -0
- package/src/data/RequestDataExtractor.ts +14 -15
- package/src/events/CustomEvent.ts +4 -0
- package/src/mocking/ProjectMock.ts +4 -3
- package/src/mocking/lib/App.ts +101 -0
- package/src/models/{arc/ArcProject.ts → AppProject.ts} +671 -225
- package/src/models/AppRequest.ts +176 -0
- package/src/models/ClientCertificate.ts +2 -2
- package/src/models/Environment.ts +24 -2
- package/src/models/HostRule.ts +2 -2
- package/src/models/HttpCookie.ts +210 -48
- package/src/models/HttpHistory.ts +12 -5
- package/src/models/HttpProject.ts +113 -10
- package/src/models/ProjectFolder.ts +16 -0
- package/src/models/ProjectItem.ts +18 -0
- package/src/models/ProjectParent.ts +4 -1
- package/src/models/ProjectRequest.ts +4 -3
- package/src/models/Property.ts +4 -4
- package/src/models/Request.ts +29 -19
- package/src/models/RequestAuthorization.ts +4 -4
- package/src/models/RequestUiMeta.ts +1 -21
- package/src/models/Server.ts +1 -2
- package/src/models/http-actions/HttpActions.ts +270 -0
- package/src/models/http-actions/LegacyTranslator.ts +223 -0
- package/src/models/store/Backend.ts +148 -2
- package/src/models/store/File.ts +3 -1
- package/src/models/store/User.ts +3 -3
- package/src/runtime/http-engine/CoreEngine.ts +3 -2
- package/src/runtime/http-engine/HttpEngine.ts +48 -30
- package/src/runtime/{actions/ConditionRunner.ts → http-runner/ConditionCheck.ts} +3 -3
- package/src/runtime/http-runner/HttpFlowRunner.ts +232 -0
- package/src/runtime/http-runner/HttpRequestRunner.ts +353 -0
- package/src/runtime/http-runner/HttpRuntimeEnvironment.ts +27 -0
- package/src/runtime/http-runner/RequestAuthorizationProcessor.ts +144 -0
- package/src/runtime/http-runner/RequestCookiesProcessor.ts +74 -0
- package/src/runtime/node/InteropInterfaces.ts +24 -6
- package/src/runtime/node/ProjectParallelRunner.ts +4 -2
- package/src/runtime/node/ProjectRequestRunner.ts +130 -60
- package/src/runtime/node/ProjectRunner.ts +37 -22
- package/src/runtime/node/ProjectRunnerWorker.ts +3 -0
- package/src/runtime/reporters/Reporter.ts +5 -0
- package/src/runtime/store/FilesSdk.ts +4 -4
- package/src/runtime/store/HistorySdk.ts +1 -1
- package/src/runtime/store/HttpClientSdk.ts +629 -0
- package/src/runtime/store/RouteBuilder.ts +75 -3
- package/src/runtime/store/Sdk.ts +6 -0
- package/src/runtime/store/SharedSdk.ts +1 -1
- package/src/runtime/store/UsersSdk.ts +1 -1
- package/build/src/lib/cookies/Cookie.d.ts +0 -123
- package/build/src/lib/cookies/Cookie.js +0 -257
- package/build/src/lib/cookies/Cookie.js.map +0 -1
- package/build/src/lib/cookies/Cookies.d.ts +0 -90
- package/build/src/lib/cookies/Cookies.js +0 -310
- package/build/src/lib/cookies/Cookies.js.map +0 -1
- package/build/src/lib/cookies/Utils.d.ts +0 -47
- package/build/src/lib/cookies/Utils.js +0 -163
- package/build/src/lib/cookies/Utils.js.map +0 -1
- package/build/src/mocking/lib/Arc.d.ts +0 -10
- package/build/src/mocking/lib/Arc.js +0 -31
- package/build/src/mocking/lib/Arc.js.map +0 -1
- package/build/src/models/RequestActions.d.ts +0 -65
- package/build/src/models/RequestActions.js +0 -114
- package/build/src/models/RequestActions.js.map +0 -1
- package/build/src/models/actions/Action.d.ts +0 -75
- package/build/src/models/actions/Action.js +0 -188
- package/build/src/models/actions/Action.js.map +0 -1
- package/build/src/models/actions/ActionView.d.ts +0 -15
- package/build/src/models/actions/ActionView.js +0 -33
- package/build/src/models/actions/ActionView.js.map +0 -1
- package/build/src/models/actions/Condition.d.ts +0 -81
- package/build/src/models/actions/Condition.js +0 -185
- package/build/src/models/actions/Condition.js.map +0 -1
- package/build/src/models/actions/ConditionView.d.ts +0 -17
- package/build/src/models/actions/ConditionView.js +0 -34
- package/build/src/models/actions/ConditionView.js.map +0 -1
- package/build/src/models/actions/Enums.d.ts +0 -26
- package/build/src/models/actions/Enums.js +0 -31
- package/build/src/models/actions/Enums.js.map +0 -1
- package/build/src/models/actions/RunnableAction.d.ts +0 -59
- package/build/src/models/actions/RunnableAction.js +0 -106
- package/build/src/models/actions/RunnableAction.js.map +0 -1
- package/build/src/models/actions/runnable/DeleteCookieAction.d.ts +0 -44
- package/build/src/models/actions/runnable/DeleteCookieAction.js +0 -92
- package/build/src/models/actions/runnable/DeleteCookieAction.js.map +0 -1
- package/build/src/models/actions/runnable/Runnable.d.ts +0 -8
- package/build/src/models/actions/runnable/Runnable.js +0 -4
- package/build/src/models/actions/runnable/Runnable.js.map +0 -1
- package/build/src/models/actions/runnable/SetCookieAction.d.ts +0 -87
- package/build/src/models/actions/runnable/SetCookieAction.js +0 -176
- package/build/src/models/actions/runnable/SetCookieAction.js.map +0 -1
- package/build/src/models/actions/runnable/SetVariableAction.d.ts +0 -31
- package/build/src/models/actions/runnable/SetVariableAction.js +0 -63
- package/build/src/models/actions/runnable/SetVariableAction.js.map +0 -1
- package/build/src/models/actions/runnable/index.d.ts +0 -7
- package/build/src/models/actions/runnable/index.js +0 -2
- package/build/src/models/actions/runnable/index.js.map +0 -1
- package/build/src/models/arc/ArcHttpRequest.d.ts +0 -39
- package/build/src/models/arc/ArcHttpRequest.js +0 -106
- package/build/src/models/arc/ArcHttpRequest.js.map +0 -1
- package/build/src/models/arc/ArcProject.js.map +0 -1
- package/build/src/runtime/actions/ActionRunner.d.ts +0 -17
- package/build/src/runtime/actions/ActionRunner.js +0 -74
- package/build/src/runtime/actions/ActionRunner.js.map +0 -1
- package/build/src/runtime/actions/ConditionRunner.js.map +0 -1
- package/build/src/runtime/actions/RunnableCondition.d.ts +0 -27
- package/build/src/runtime/actions/RunnableCondition.js +0 -50
- package/build/src/runtime/actions/RunnableCondition.js.map +0 -1
- package/build/src/runtime/actions/runnable/ActionRunnable.d.ts +0 -13
- package/build/src/runtime/actions/runnable/ActionRunnable.js +0 -13
- package/build/src/runtime/actions/runnable/ActionRunnable.js.map +0 -1
- package/build/src/runtime/actions/runnable/DeleteCookieRunnable.d.ts +0 -7
- package/build/src/runtime/actions/runnable/DeleteCookieRunnable.js +0 -36
- package/build/src/runtime/actions/runnable/DeleteCookieRunnable.js.map +0 -1
- package/build/src/runtime/actions/runnable/SetCookieRunnable.d.ts +0 -10
- package/build/src/runtime/actions/runnable/SetCookieRunnable.js +0 -89
- package/build/src/runtime/actions/runnable/SetCookieRunnable.js.map +0 -1
- package/build/src/runtime/actions/runnable/SetVariableRunnable.d.ts +0 -10
- package/build/src/runtime/actions/runnable/SetVariableRunnable.js +0 -49
- package/build/src/runtime/actions/runnable/SetVariableRunnable.js.map +0 -1
- package/build/src/runtime/modules/BasicAuthCache.d.ts +0 -39
- package/build/src/runtime/modules/BasicAuthCache.js +0 -122
- package/build/src/runtime/modules/BasicAuthCache.js.map +0 -1
- package/build/src/runtime/modules/ExecutionResponse.d.ts +0 -4
- package/build/src/runtime/modules/ExecutionResponse.js +0 -6
- package/build/src/runtime/modules/ExecutionResponse.js.map +0 -1
- package/build/src/runtime/modules/ModulesRegistry.d.ts +0 -93
- package/build/src/runtime/modules/ModulesRegistry.js +0 -69
- package/build/src/runtime/modules/ModulesRegistry.js.map +0 -1
- package/build/src/runtime/modules/RequestAuthorization.d.ts +0 -6
- package/build/src/runtime/modules/RequestAuthorization.js +0 -110
- package/build/src/runtime/modules/RequestAuthorization.js.map +0 -1
- package/build/src/runtime/modules/RequestCookies.d.ts +0 -17
- package/build/src/runtime/modules/RequestCookies.js +0 -134
- package/build/src/runtime/modules/RequestCookies.js.map +0 -1
- package/build/src/runtime/node/RequestFactory.js +0 -406
- package/build/src/runtime/node/RequestFactory.js.map +0 -1
- package/build/src/runtime/node/VariablesStore.d.ts +0 -9
- package/build/src/runtime/node/VariablesStore.js +0 -19
- package/build/src/runtime/node/VariablesStore.js.map +0 -1
- package/src/lib/cookies/Cookie.ts +0 -312
- package/src/lib/cookies/Cookies.ts +0 -326
- package/src/lib/cookies/Utils.ts +0 -168
- package/src/mocking/lib/Arc.ts +0 -34
- package/src/models/RequestActions.ts +0 -161
- package/src/models/actions/Action.ts +0 -213
- package/src/models/actions/ActionView.ts +0 -40
- package/src/models/actions/Condition.ts +0 -207
- package/src/models/actions/ConditionView.ts +0 -42
- package/src/models/actions/Enums.ts +0 -29
- package/src/models/actions/RunnableAction.ts +0 -144
- package/src/models/actions/runnable/DeleteCookieAction.ts +0 -113
- package/src/models/actions/runnable/Runnable.ts +0 -9
- package/src/models/actions/runnable/SetCookieAction.ts +0 -216
- package/src/models/actions/runnable/SetVariableAction.ts +0 -81
- package/src/models/arc/ArcHttpRequest.ts +0 -121
- package/src/models/arc/readme.md +0 -3
- package/src/runtime/actions/ActionRunner.ts +0 -83
- package/src/runtime/actions/RunnableCondition.ts +0 -56
- package/src/runtime/actions/runnable/ActionRunnable.ts +0 -19
- package/src/runtime/actions/runnable/DeleteCookieRunnable.ts +0 -39
- package/src/runtime/actions/runnable/SetCookieRunnable.ts +0 -92
- package/src/runtime/actions/runnable/SetVariableRunnable.ts +0 -53
- package/src/runtime/modules/BasicAuthCache.ts +0 -129
- package/src/runtime/modules/ExecutionResponse.ts +0 -4
- package/src/runtime/modules/ModulesRegistry.ts +0 -136
- package/src/runtime/modules/RequestAuthorization.ts +0 -106
- package/src/runtime/modules/RequestCookies.ts +0 -146
- package/src/runtime/node/RequestFactory.ts +0 -432
- package/src/runtime/node/VariablesStore.ts +0 -25
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// eslint-disable-next-line no-control-regex
|
|
2
|
+
const fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
|
|
1
3
|
export class HttpCookie {
|
|
2
4
|
/**
|
|
3
5
|
* The name of the cookie.
|
|
@@ -7,11 +9,6 @@ export class HttpCookie {
|
|
|
7
9
|
* The value of the cookie.
|
|
8
10
|
*/
|
|
9
11
|
value = '';
|
|
10
|
-
/**
|
|
11
|
-
* The domain of the cookie; this will be normalized with a preceding dot so that
|
|
12
|
-
* it's also valid for subdomains.
|
|
13
|
-
*/
|
|
14
|
-
domain;
|
|
15
12
|
/**
|
|
16
13
|
* Whether the cookie is a host-only cookie; this will only be `true` if no domain
|
|
17
14
|
* was passed.
|
|
@@ -33,17 +30,95 @@ export class HttpCookie {
|
|
|
33
30
|
* Whether the cookie is a session cookie or a persistent cookie with an expiration
|
|
34
31
|
* date.
|
|
35
32
|
*/
|
|
36
|
-
session;
|
|
33
|
+
session = true;
|
|
34
|
+
/**
|
|
35
|
+
* The Same Site policy applied to this cookie. Can be `unspecified`, `no_restriction`, `lax` or `strict`.
|
|
36
|
+
* @default unspecified
|
|
37
|
+
*/
|
|
38
|
+
sameSite = 'unspecified';
|
|
39
|
+
_domain;
|
|
40
|
+
_maxAge;
|
|
41
|
+
_expirationDate;
|
|
42
|
+
/**
|
|
43
|
+
* @param max The max age value
|
|
44
|
+
*/
|
|
45
|
+
set maxAge(max) {
|
|
46
|
+
const typedMax = Number(max);
|
|
47
|
+
if (Number.isNaN(typedMax)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
this._maxAge = typedMax;
|
|
51
|
+
if (typedMax <= 0) {
|
|
52
|
+
// see http://stackoverflow.com/a/11526569/1127848
|
|
53
|
+
// and https://tools.ietf.org/html/rfc6265#section-5.2.2
|
|
54
|
+
this._expirationDate = -8640000000000000;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
let now = Date.now();
|
|
58
|
+
now += typedMax * 1000;
|
|
59
|
+
this._expirationDate = now;
|
|
60
|
+
}
|
|
61
|
+
this.session = false;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @return Returns a value of maxAge property
|
|
65
|
+
*/
|
|
66
|
+
get maxAge() {
|
|
67
|
+
return this._maxAge;
|
|
68
|
+
}
|
|
37
69
|
/**
|
|
38
70
|
* The expiration date of the cookie as the number of seconds since the UNIX epoch.
|
|
39
71
|
* Not provided for session cookies.
|
|
40
72
|
*/
|
|
41
|
-
expirationDate
|
|
73
|
+
set expirationDate(expires) {
|
|
74
|
+
this.setExpirationTime(expires);
|
|
75
|
+
}
|
|
76
|
+
get expirationDate() {
|
|
77
|
+
return this._expirationDate;
|
|
78
|
+
}
|
|
42
79
|
/**
|
|
43
|
-
* The
|
|
44
|
-
*
|
|
80
|
+
* The domain of the cookie; this will be normalized with a preceding dot so that
|
|
81
|
+
* it's also valid for subdomains.
|
|
45
82
|
*/
|
|
46
|
-
|
|
83
|
+
set domain(domain) {
|
|
84
|
+
this._domain = domain;
|
|
85
|
+
if (!domain) {
|
|
86
|
+
this.hostOnly = false;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.hostOnly = true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
get domain() {
|
|
93
|
+
return this._domain;
|
|
94
|
+
}
|
|
95
|
+
// get samesite(): CookieSameSiteType | undefined {
|
|
96
|
+
// return this.sameSite;
|
|
97
|
+
// }
|
|
98
|
+
set samesite(value) {
|
|
99
|
+
this.sameSite = value || 'unspecified';
|
|
100
|
+
}
|
|
101
|
+
// get httponly(): boolean | undefined {
|
|
102
|
+
// return this.httpOnly;
|
|
103
|
+
// }
|
|
104
|
+
set httponly(value) {
|
|
105
|
+
this.httpOnly = value;
|
|
106
|
+
}
|
|
107
|
+
// get hostonly(): boolean | undefined {
|
|
108
|
+
// return this.hostOnly;
|
|
109
|
+
// }
|
|
110
|
+
set hostonly(value) {
|
|
111
|
+
this.hostOnly = value;
|
|
112
|
+
}
|
|
113
|
+
// get ['max-age'](): number | undefined {
|
|
114
|
+
// return this.maxAge;
|
|
115
|
+
// }
|
|
116
|
+
set ['max-age'](value) {
|
|
117
|
+
this.maxAge = value;
|
|
118
|
+
}
|
|
119
|
+
set expires(value) {
|
|
120
|
+
this.expirationDate = value;
|
|
121
|
+
}
|
|
47
122
|
static fromLegacy(old) {
|
|
48
123
|
const init = {
|
|
49
124
|
name: old.name,
|
|
@@ -81,36 +156,6 @@ export class HttpCookie {
|
|
|
81
156
|
};
|
|
82
157
|
return new HttpCookie(init);
|
|
83
158
|
}
|
|
84
|
-
static fromCookieParser(cookie) {
|
|
85
|
-
const { name, value, sameSite = 'unspecified' } = cookie;
|
|
86
|
-
const init = {
|
|
87
|
-
name,
|
|
88
|
-
value,
|
|
89
|
-
sameSite,
|
|
90
|
-
};
|
|
91
|
-
if (typeof cookie.domain === 'string') {
|
|
92
|
-
init.domain = cookie.domain;
|
|
93
|
-
}
|
|
94
|
-
if (typeof cookie.path === 'string') {
|
|
95
|
-
init.path = cookie.path;
|
|
96
|
-
}
|
|
97
|
-
if (typeof cookie.expires === 'number') {
|
|
98
|
-
init.expirationDate = cookie.expires;
|
|
99
|
-
}
|
|
100
|
-
if (typeof cookie.hostOnly === 'boolean') {
|
|
101
|
-
init.hostOnly = cookie.hostOnly;
|
|
102
|
-
}
|
|
103
|
-
if (typeof cookie.httpOnly === 'boolean') {
|
|
104
|
-
init.httpOnly = cookie.httpOnly;
|
|
105
|
-
}
|
|
106
|
-
if (typeof cookie.secure === 'boolean') {
|
|
107
|
-
init.secure = cookie.secure;
|
|
108
|
-
}
|
|
109
|
-
if (typeof cookie.persistent === 'boolean') {
|
|
110
|
-
init.session = !cookie.persistent;
|
|
111
|
-
}
|
|
112
|
-
return new HttpCookie(init);
|
|
113
|
-
}
|
|
114
159
|
constructor(input) {
|
|
115
160
|
let init;
|
|
116
161
|
if (typeof input === 'string') {
|
|
@@ -130,10 +175,28 @@ export class HttpCookie {
|
|
|
130
175
|
}
|
|
131
176
|
new(init) {
|
|
132
177
|
const { name = '', value = '', sameSite = 'unspecified', domain, expirationDate, hostOnly, httpOnly, path, secure, session } = init;
|
|
178
|
+
if (name && !fieldContentRegExp.test(name)) {
|
|
179
|
+
throw new TypeError('Argument `name` is invalid');
|
|
180
|
+
}
|
|
181
|
+
if (value && !fieldContentRegExp.test(value)) {
|
|
182
|
+
throw new TypeError('Argument `value` is invalid');
|
|
183
|
+
}
|
|
133
184
|
this.name = name;
|
|
134
185
|
this.value = value;
|
|
135
186
|
this.sameSite = sameSite;
|
|
187
|
+
if (typeof path === 'string') {
|
|
188
|
+
if (!fieldContentRegExp.test(path)) {
|
|
189
|
+
throw new TypeError('Option `path` is invalid');
|
|
190
|
+
}
|
|
191
|
+
this.path = path;
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
this.path = undefined;
|
|
195
|
+
}
|
|
136
196
|
if (domain) {
|
|
197
|
+
if (!fieldContentRegExp.test(domain)) {
|
|
198
|
+
throw new TypeError('Option `domain` is invalid');
|
|
199
|
+
}
|
|
137
200
|
this.domain = domain;
|
|
138
201
|
}
|
|
139
202
|
else {
|
|
@@ -167,14 +230,43 @@ export class HttpCookie {
|
|
|
167
230
|
this.session = session;
|
|
168
231
|
}
|
|
169
232
|
else {
|
|
170
|
-
this.session =
|
|
233
|
+
this.session = !this.expirationDate;
|
|
171
234
|
}
|
|
172
|
-
|
|
173
|
-
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Sets value for `expirationDate` property.
|
|
238
|
+
* @param expires The value as string, date, or a number
|
|
239
|
+
*/
|
|
240
|
+
setExpirationTime(expires) {
|
|
241
|
+
let value;
|
|
242
|
+
const typedNumber = Number(expires);
|
|
243
|
+
if (!Number.isNaN(typedNumber)) {
|
|
244
|
+
value = typedNumber;
|
|
245
|
+
}
|
|
246
|
+
else if (expires instanceof Date) {
|
|
247
|
+
value = expires.getTime();
|
|
248
|
+
}
|
|
249
|
+
else if (typeof expires === 'string') {
|
|
250
|
+
const tmp = new Date(expires);
|
|
251
|
+
if (tmp.toString() === 'Invalid Date') {
|
|
252
|
+
value = 0;
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
value = tmp.getTime();
|
|
256
|
+
}
|
|
174
257
|
}
|
|
175
258
|
else {
|
|
176
|
-
|
|
259
|
+
value = undefined;
|
|
177
260
|
}
|
|
261
|
+
this._expirationDate = value;
|
|
262
|
+
this.session = !value;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* @return Cookie's `name=value` string.
|
|
266
|
+
*/
|
|
267
|
+
toString() {
|
|
268
|
+
const { name, value } = this;
|
|
269
|
+
return `${name}=${value}`;
|
|
178
270
|
}
|
|
179
271
|
toJSON() {
|
|
180
272
|
const result = {
|
|
@@ -205,5 +297,47 @@ export class HttpCookie {
|
|
|
205
297
|
}
|
|
206
298
|
return result;
|
|
207
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Returns a Cookie as a HTTP header string.
|
|
302
|
+
* @return Cookie string as a HTTP header value
|
|
303
|
+
*/
|
|
304
|
+
toHeader() {
|
|
305
|
+
let header = this.toString();
|
|
306
|
+
let expires;
|
|
307
|
+
if (this._expirationDate) {
|
|
308
|
+
expires = new Date(this._expirationDate);
|
|
309
|
+
if (expires.toString() === 'Invalid Date') {
|
|
310
|
+
expires = new Date(0);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
if (expires) {
|
|
314
|
+
header += `; expires=${expires.toUTCString()}`;
|
|
315
|
+
}
|
|
316
|
+
const { path, domain, httpOnly, sameSite, secure } = this;
|
|
317
|
+
if (path) {
|
|
318
|
+
header += `; path=${path}`;
|
|
319
|
+
}
|
|
320
|
+
if (domain) {
|
|
321
|
+
header += `; domain=${domain}`;
|
|
322
|
+
}
|
|
323
|
+
if (httpOnly) {
|
|
324
|
+
header += `; httpOnly=${httpOnly}`;
|
|
325
|
+
}
|
|
326
|
+
switch (sameSite) {
|
|
327
|
+
case 'lax':
|
|
328
|
+
header += `; SameSite=Lax`;
|
|
329
|
+
break;
|
|
330
|
+
case 'no_restriction':
|
|
331
|
+
header += `; SameSite=None`;
|
|
332
|
+
break;
|
|
333
|
+
case 'strict':
|
|
334
|
+
header += `; SameSite=Strict`;
|
|
335
|
+
break;
|
|
336
|
+
}
|
|
337
|
+
if (secure || sameSite === 'strict') {
|
|
338
|
+
header += `; Secure`;
|
|
339
|
+
}
|
|
340
|
+
return header;
|
|
341
|
+
}
|
|
208
342
|
}
|
|
209
343
|
//# sourceMappingURL=HttpCookie.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpCookie.js","sourceRoot":"","sources":["../../../src/models/HttpCookie.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HttpCookie.js","sourceRoot":"","sources":["../../../src/models/HttpCookie.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,8 @@ export interface IHttpHistory {
|
|
|
9
9
|
* In majority of cases this value is set. It is not set when generating the history object before sending it to the store.
|
|
10
10
|
*
|
|
11
11
|
* Note for data store implementations. This must be a URL-safe value so the id should be encoded if needed.
|
|
12
|
+
*
|
|
13
|
+
* @readonly
|
|
12
14
|
*/
|
|
13
15
|
key?: string;
|
|
14
16
|
/**
|
|
@@ -25,9 +27,12 @@ export interface IHttpHistory {
|
|
|
25
27
|
app?: string;
|
|
26
28
|
/**
|
|
27
29
|
* The user id that made that request.
|
|
28
|
-
* Note, the default API Client's store automatically adds the user information to the record overriding any pre-set user id
|
|
30
|
+
* Note, the default API Client's store automatically adds the user information to the record overriding any pre-set user id, making it a read-only
|
|
31
|
+
* value.
|
|
32
|
+
*
|
|
33
|
+
* @readonly
|
|
29
34
|
*/
|
|
30
|
-
user
|
|
35
|
+
user?: string;
|
|
31
36
|
/**
|
|
32
37
|
* The optional request id in the project that generated this log.
|
|
33
38
|
*/
|
|
@@ -76,7 +81,7 @@ export interface IHttpHistoryBulkAdd {
|
|
|
76
81
|
}
|
|
77
82
|
/**
|
|
78
83
|
* An HTTP history is an object containing an information of a request and response
|
|
79
|
-
* made
|
|
84
|
+
* made by an application.
|
|
80
85
|
*
|
|
81
86
|
* Note, history object are not mutable. Can only be created or deleted.
|
|
82
87
|
*/
|
|
@@ -4,13 +4,13 @@ export const createdSymbol = Symbol('created');
|
|
|
4
4
|
export const midnightSymbol = Symbol('midnight');
|
|
5
5
|
/**
|
|
6
6
|
* An HTTP history is an object containing an information of a request and response
|
|
7
|
-
* made
|
|
7
|
+
* made by an application.
|
|
8
8
|
*
|
|
9
9
|
* Note, history object are not mutable. Can only be created or deleted.
|
|
10
10
|
*/
|
|
11
11
|
export class HttpHistory {
|
|
12
|
-
[createdSymbol];
|
|
13
|
-
[midnightSymbol];
|
|
12
|
+
[createdSymbol] = 0;
|
|
13
|
+
[midnightSymbol] = 0;
|
|
14
14
|
kind = Kind;
|
|
15
15
|
/**
|
|
16
16
|
* The data store key. Only present when the object was already inserted into the data store.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpHistory.js","sourceRoot":"","sources":["../../../src/models/HttpHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,IAAI,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAElF,MAAM,CAAC,MAAM,IAAI,GAAG,kBAAkB,CAAC;AACvC,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"HttpHistory.js","sourceRoot":"","sources":["../../../src/models/HttpHistory.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ import { IProjectRequest, ProjectRequest } from './ProjectRequest.js';
|
|
|
10
10
|
import { ProjectSchema, IProjectSchema } from './ProjectSchema.js';
|
|
11
11
|
import { ARCSavedRequest, ARCHistoryRequest } from './legacy/request/ArcRequest.js';
|
|
12
12
|
import { ArcLegacyProject } from './legacy/models/ArcLegacyProject.js';
|
|
13
|
+
import { IAppProject } from './AppProject.js';
|
|
14
|
+
import { Certificate, HttpCertificate } from './ClientCertificate.js';
|
|
13
15
|
export declare const Kind = "Core#HttpProject";
|
|
14
16
|
export interface IItemOptions {
|
|
15
17
|
/**
|
|
@@ -221,12 +223,14 @@ export interface IHttpProjectDefinitions {
|
|
|
221
223
|
folders?: IProjectFolder[];
|
|
222
224
|
schemas?: IProjectSchema[];
|
|
223
225
|
environments?: IEnvironment[];
|
|
226
|
+
certificates?: HttpCertificate[];
|
|
224
227
|
}
|
|
225
228
|
interface HttpProjectDefinitions {
|
|
226
229
|
requests: ProjectRequest[];
|
|
227
230
|
folders: ProjectFolder[];
|
|
228
231
|
schemas: ProjectSchema[];
|
|
229
232
|
environments: Environment[];
|
|
233
|
+
certificates: Certificate[];
|
|
230
234
|
}
|
|
231
235
|
/**
|
|
232
236
|
* An instance of an HttpProject.
|
|
@@ -268,6 +272,7 @@ export declare class HttpProject extends ProjectParent {
|
|
|
268
272
|
* Creates a new project from a set of options.
|
|
269
273
|
*/
|
|
270
274
|
static fromInitOptions(init: IProjectInitOptions): HttpProject;
|
|
275
|
+
static fromAppProject(init: IAppProject): HttpProject;
|
|
271
276
|
/**
|
|
272
277
|
* @param input The project definition used to restore the state.
|
|
273
278
|
* @param environments Optional list of environments to use with this project. It overrides environments stored in the project definition.
|
|
@@ -457,7 +462,7 @@ export declare class HttpProject extends ProjectParent {
|
|
|
457
462
|
* @param opts The schema add options.
|
|
458
463
|
* @returns The inserted into the schemas schema.
|
|
459
464
|
*/
|
|
460
|
-
addSchema(
|
|
465
|
+
addSchema(name: string, opts?: ISchemaAddOptions): ProjectSchema;
|
|
461
466
|
/**
|
|
462
467
|
* Adds a schema to the project.
|
|
463
468
|
*
|
|
@@ -549,5 +554,33 @@ export declare class HttpProject extends ProjectParent {
|
|
|
549
554
|
* @returns The environment definition or undefined if not found.
|
|
550
555
|
*/
|
|
551
556
|
findEnvironment(key: string): Environment | undefined;
|
|
557
|
+
/**
|
|
558
|
+
* Finds a definition for a certificate.
|
|
559
|
+
*
|
|
560
|
+
* @param key The key of the certificate to find.
|
|
561
|
+
* @returns The certificate definition or undefined if not found.
|
|
562
|
+
*/
|
|
563
|
+
findCertificate(key: string): Certificate | undefined;
|
|
564
|
+
/**
|
|
565
|
+
* Adds a certificate to the project.
|
|
566
|
+
*
|
|
567
|
+
* @param init Either an instance of a certificate or its definition.
|
|
568
|
+
* @returns The inserted certificate.
|
|
569
|
+
*/
|
|
570
|
+
addCertificate(init: Certificate | HttpCertificate): Certificate;
|
|
571
|
+
/**
|
|
572
|
+
* Removes a certificate from the project.
|
|
573
|
+
*
|
|
574
|
+
* @param key the key of the certificate to remove
|
|
575
|
+
* @returns The removed certificate, if any.
|
|
576
|
+
*/
|
|
577
|
+
removeCertificate(key: string): Certificate | undefined;
|
|
578
|
+
/**
|
|
579
|
+
* Finds the requests that are using the certificate identified by the key.
|
|
580
|
+
*
|
|
581
|
+
* @param key The key of the certificate to find the usage for.
|
|
582
|
+
* @returns The list of requests that use this certificate.
|
|
583
|
+
*/
|
|
584
|
+
findCertificateRequests(key: string): ProjectRequest[];
|
|
552
585
|
}
|
|
553
586
|
export {};
|
|
@@ -13,6 +13,7 @@ import { ProjectSchema } from './ProjectSchema.js';
|
|
|
13
13
|
import { Request } from './Request.js';
|
|
14
14
|
import v4 from '../lib/uuid.js';
|
|
15
15
|
import { PostmanDataTransformer } from './transformers/PostmanDataTransformer.js';
|
|
16
|
+
import { Certificate } from './ClientCertificate.js';
|
|
16
17
|
export const Kind = 'Core#HttpProject';
|
|
17
18
|
/**
|
|
18
19
|
* An instance of an HttpProject.
|
|
@@ -36,7 +37,7 @@ export class HttpProject extends ProjectParent {
|
|
|
36
37
|
*/
|
|
37
38
|
definitions = HttpProject.defaultDefinitions();
|
|
38
39
|
static defaultDefinitions() {
|
|
39
|
-
return { environments: [], folders: [], requests: [], schemas: [] };
|
|
40
|
+
return { environments: [], folders: [], requests: [], schemas: [], certificates: [] };
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
43
|
* Creates a new HTTP project from a name.
|
|
@@ -97,6 +98,33 @@ export class HttpProject extends ProjectParent {
|
|
|
97
98
|
const { name = 'Unnamed project' } = init;
|
|
98
99
|
return HttpProject.fromName(name);
|
|
99
100
|
}
|
|
101
|
+
static fromAppProject(init) {
|
|
102
|
+
const result = new HttpProject();
|
|
103
|
+
const { definitions = {}, items, info, key = v4() } = init;
|
|
104
|
+
result.key = key;
|
|
105
|
+
result.info = new Thing(info);
|
|
106
|
+
if (Array.isArray(items)) {
|
|
107
|
+
result.items = items.map(i => ProjectItem.fromAppProject(result, i));
|
|
108
|
+
}
|
|
109
|
+
if (Array.isArray(definitions.environments)) {
|
|
110
|
+
result.definitions.environments = definitions.environments.map(i => new Environment(i));
|
|
111
|
+
}
|
|
112
|
+
if (Array.isArray(definitions.requests)) {
|
|
113
|
+
result.definitions.requests = definitions.requests.map(i => {
|
|
114
|
+
const instance = new ProjectRequest(result, i);
|
|
115
|
+
instance.attachedCallback();
|
|
116
|
+
return instance;
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
if (Array.isArray(definitions.folders)) {
|
|
120
|
+
result.definitions.folders = definitions.folders.map(i => {
|
|
121
|
+
const instance = ProjectFolder.fromAppProject(result, i);
|
|
122
|
+
instance.attachedCallback();
|
|
123
|
+
return instance;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
100
128
|
/**
|
|
101
129
|
* @param input The project definition used to restore the state.
|
|
102
130
|
* @param environments Optional list of environments to use with this project. It overrides environments stored in the project definition.
|
|
@@ -184,6 +212,9 @@ export class HttpProject extends ProjectParent {
|
|
|
184
212
|
if (Array.isArray(definitions.schemas)) {
|
|
185
213
|
this.definitions.schemas = definitions.schemas.map(i => new ProjectSchema(i));
|
|
186
214
|
}
|
|
215
|
+
if (Array.isArray(definitions.certificates)) {
|
|
216
|
+
this.definitions.certificates = definitions.certificates.map(i => new Certificate(i));
|
|
217
|
+
}
|
|
187
218
|
}
|
|
188
219
|
toJSON() {
|
|
189
220
|
const result = {
|
|
@@ -205,6 +236,9 @@ export class HttpProject extends ProjectParent {
|
|
|
205
236
|
if (Array.isArray(this.definitions.schemas) && this.definitions.schemas.length) {
|
|
206
237
|
result.definitions.schemas = this.definitions.schemas.map(i => i.toJSON());
|
|
207
238
|
}
|
|
239
|
+
if (Array.isArray(this.definitions.certificates) && this.definitions.certificates.length) {
|
|
240
|
+
result.definitions.certificates = this.definitions.certificates.map(i => i.toJSON());
|
|
241
|
+
}
|
|
208
242
|
if (Array.isArray(this.items) && this.items.length) {
|
|
209
243
|
result.items = this.items.map(i => i.toJSON());
|
|
210
244
|
}
|
|
@@ -781,14 +815,7 @@ export class HttpProject extends ProjectParent {
|
|
|
781
815
|
flatItems = flatItems.concat(folder.items);
|
|
782
816
|
}
|
|
783
817
|
});
|
|
784
|
-
// const withEnvironments: (HttpProject | ProjectFolder)[] = [];
|
|
785
|
-
// if (Array.isArray(src.environments) && src.environments.length) {
|
|
786
|
-
// withEnvironments.push(src);
|
|
787
|
-
// }
|
|
788
818
|
(definitions.folders || []).forEach((folder) => {
|
|
789
|
-
// if (Array.isArray(folder.environments) && folder.environments.length) {
|
|
790
|
-
// withEnvironments.push(folder);
|
|
791
|
-
// }
|
|
792
819
|
const oldKey = folder.key;
|
|
793
820
|
const indexObject = flatItems.find(i => i.key === oldKey);
|
|
794
821
|
if (!indexObject) {
|
|
@@ -811,6 +838,9 @@ export class HttpProject extends ProjectParent {
|
|
|
811
838
|
(definitions.schemas || []).forEach((schema) => {
|
|
812
839
|
schema.key = v4();
|
|
813
840
|
});
|
|
841
|
+
(definitions.certificates || []).forEach((cert) => {
|
|
842
|
+
cert.key = v4();
|
|
843
|
+
});
|
|
814
844
|
(definitions.environments || []).forEach((environment) => {
|
|
815
845
|
const oldKey = environment.key;
|
|
816
846
|
const indexObject = flatItems.find(i => i.key === oldKey);
|
|
@@ -1147,5 +1177,71 @@ export class HttpProject extends ProjectParent {
|
|
|
1147
1177
|
findEnvironment(key) {
|
|
1148
1178
|
return this.definitions.environments.find(i => i.key === key);
|
|
1149
1179
|
}
|
|
1180
|
+
/**
|
|
1181
|
+
* Finds a definition for a certificate.
|
|
1182
|
+
*
|
|
1183
|
+
* @param key The key of the certificate to find.
|
|
1184
|
+
* @returns The certificate definition or undefined if not found.
|
|
1185
|
+
*/
|
|
1186
|
+
findCertificate(key) {
|
|
1187
|
+
return this.definitions.certificates.find(i => i.key === key);
|
|
1188
|
+
}
|
|
1189
|
+
/**
|
|
1190
|
+
* Adds a certificate to the project.
|
|
1191
|
+
*
|
|
1192
|
+
* @param init Either an instance of a certificate or its definition.
|
|
1193
|
+
* @returns The inserted certificate.
|
|
1194
|
+
*/
|
|
1195
|
+
addCertificate(init) {
|
|
1196
|
+
let finalCert;
|
|
1197
|
+
if (init instanceof Certificate) {
|
|
1198
|
+
finalCert = init;
|
|
1199
|
+
}
|
|
1200
|
+
else {
|
|
1201
|
+
finalCert = new Certificate(init);
|
|
1202
|
+
}
|
|
1203
|
+
if (!this.definitions.certificates) {
|
|
1204
|
+
this.definitions.certificates = [];
|
|
1205
|
+
}
|
|
1206
|
+
this.definitions.certificates.push(finalCert);
|
|
1207
|
+
return finalCert;
|
|
1208
|
+
}
|
|
1209
|
+
/**
|
|
1210
|
+
* Removes a certificate from the project.
|
|
1211
|
+
*
|
|
1212
|
+
* @param key the key of the certificate to remove
|
|
1213
|
+
* @returns The removed certificate, if any.
|
|
1214
|
+
*/
|
|
1215
|
+
removeCertificate(key) {
|
|
1216
|
+
if (!Array.isArray(this.definitions.certificates)) {
|
|
1217
|
+
return undefined;
|
|
1218
|
+
}
|
|
1219
|
+
const defIndex = this.definitions.certificates.findIndex(i => i.key === key);
|
|
1220
|
+
if (defIndex < 0) {
|
|
1221
|
+
return undefined;
|
|
1222
|
+
}
|
|
1223
|
+
const cert = this.definitions.certificates[defIndex];
|
|
1224
|
+
this.definitions.certificates.splice(defIndex, 1);
|
|
1225
|
+
return cert;
|
|
1226
|
+
}
|
|
1227
|
+
/**
|
|
1228
|
+
* Finds the requests that are using the certificate identified by the key.
|
|
1229
|
+
*
|
|
1230
|
+
* @param key The key of the certificate to find the usage for.
|
|
1231
|
+
* @returns The list of requests that use this certificate.
|
|
1232
|
+
*/
|
|
1233
|
+
findCertificateRequests(key) {
|
|
1234
|
+
return this.definitions.requests.filter((request) => {
|
|
1235
|
+
if (!Array.isArray(request.authorization)) {
|
|
1236
|
+
return false;
|
|
1237
|
+
}
|
|
1238
|
+
const ccAuth = request.authorization.find(auth => auth.type === 'client certificate');
|
|
1239
|
+
if (!ccAuth) {
|
|
1240
|
+
return false;
|
|
1241
|
+
}
|
|
1242
|
+
const cnf = ccAuth.config;
|
|
1243
|
+
return !!cnf && !!cnf.certificate && cnf.certificate.key === key;
|
|
1244
|
+
});
|
|
1245
|
+
}
|
|
1150
1246
|
}
|
|
1151
1247
|
//# sourceMappingURL=HttpProject.js.map
|