serverless-offline 8.8.1 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/package.json +33 -57
- package/src/ServerlessOffline.js +412 -0
- package/src/config/commandOptions.js +155 -0
- package/src/config/constants.js +22 -0
- package/{dist → src}/config/defaultOptions.js +8 -17
- package/src/config/index.js +4 -0
- package/src/config/supportedRuntimes.js +47 -0
- package/src/events/authCanExecuteResource.js +35 -0
- package/src/events/authFunctionNameExtractor.js +75 -0
- package/src/events/authMatchPolicyResource.js +71 -0
- package/src/events/authValidateContext.js +51 -0
- package/src/events/http/Endpoint.js +135 -0
- package/src/events/http/Http.js +50 -0
- package/src/events/http/HttpEventDefinition.js +20 -0
- package/src/events/http/HttpServer.js +1277 -0
- package/src/events/http/OfflineEndpoint.js +33 -0
- package/src/events/http/authJWTSettingsExtractor.js +70 -0
- package/src/events/http/createAuthScheme.js +176 -0
- package/src/events/http/createJWTAuthScheme.js +106 -0
- package/src/events/http/index.js +1 -0
- package/src/events/http/javaHelpers.js +102 -0
- package/src/events/http/lambda-events/LambdaIntegrationEvent.js +57 -0
- package/src/events/http/lambda-events/LambdaProxyIntegrationEvent.js +233 -0
- package/src/events/http/lambda-events/LambdaProxyIntegrationEventV2.js +190 -0
- package/src/events/http/lambda-events/VelocityContext.js +147 -0
- package/src/events/http/lambda-events/index.js +4 -0
- package/src/events/http/lambda-events/renderVelocityTemplateObject.js +93 -0
- package/{dist → src}/events/http/parseResources.js +73 -78
- package/src/events/http/payloadSchemaValidator.js +13 -0
- package/{dist → src}/events/http/templates/offline-default.req.vm +0 -0
- package/{dist → src}/events/http/templates/offline-default.res.vm +0 -0
- package/src/events/schedule/Schedule.js +131 -0
- package/src/events/schedule/ScheduleEvent.js +18 -0
- package/src/events/schedule/ScheduleEventDefinition.js +21 -0
- package/src/events/schedule/index.js +1 -0
- package/src/events/websocket/HttpServer.js +69 -0
- package/src/events/websocket/WebSocket.js +52 -0
- package/src/events/websocket/WebSocketClients.js +462 -0
- package/src/events/websocket/WebSocketEventDefinition.js +18 -0
- package/src/events/websocket/WebSocketServer.js +73 -0
- package/src/events/websocket/http-routes/_catchAll/catchAllRoute.js +16 -0
- package/src/events/websocket/http-routes/_catchAll/index.js +1 -0
- package/src/events/websocket/http-routes/connections/ConnectionsController.js +28 -0
- package/src/events/websocket/http-routes/connections/connectionsRoutes.js +70 -0
- package/src/events/websocket/http-routes/connections/index.js +1 -0
- package/src/events/websocket/http-routes/index.js +2 -0
- package/src/events/websocket/index.js +1 -0
- package/src/events/websocket/lambda-events/WebSocketAuthorizerEvent.js +65 -0
- package/src/events/websocket/lambda-events/WebSocketConnectEvent.js +68 -0
- package/src/events/websocket/lambda-events/WebSocketDisconnectEvent.js +31 -0
- package/src/events/websocket/lambda-events/WebSocketEvent.js +29 -0
- package/src/events/websocket/lambda-events/WebSocketRequestContext.js +67 -0
- package/src/events/websocket/lambda-events/index.js +4 -0
- package/src/index.js +12 -0
- package/src/lambda/HttpServer.js +108 -0
- package/src/lambda/Lambda.js +68 -0
- package/src/lambda/LambdaContext.js +33 -0
- package/src/lambda/LambdaFunction.js +308 -0
- package/src/lambda/LambdaFunctionPool.js +109 -0
- package/src/lambda/__tests__/LambdaContext.test.js +30 -0
- package/src/lambda/__tests__/LambdaFunction.test.js +196 -0
- package/src/lambda/__tests__/fixtures/Lambda/LambdaFunctionThatReturnsJSONObject.fixture.js +47 -0
- package/src/lambda/__tests__/fixtures/Lambda/LambdaFunctionThatReturnsNativeString.fixture.js +46 -0
- package/src/lambda/__tests__/fixtures/Lambda/package.json +3 -0
- package/src/lambda/__tests__/fixtures/lambdaFunction.fixture.js +145 -0
- package/src/lambda/__tests__/fixtures/package.json +3 -0
- package/src/lambda/__tests__/routes/invocations/InvocationsController.test.js +42 -0
- package/src/lambda/handler-runner/HandlerRunner.js +136 -0
- package/src/lambda/handler-runner/child-process-runner/ChildProcessRunner.js +72 -0
- package/src/lambda/handler-runner/child-process-runner/childProcessHelper.js +42 -0
- package/src/lambda/handler-runner/child-process-runner/index.js +1 -0
- package/src/lambda/handler-runner/docker-runner/DockerContainer.js +417 -0
- package/src/lambda/handler-runner/docker-runner/DockerImage.js +35 -0
- package/src/lambda/handler-runner/docker-runner/DockerRunner.js +63 -0
- package/src/lambda/handler-runner/docker-runner/index.js +1 -0
- package/src/lambda/handler-runner/go-runner/GoRunner.js +166 -0
- package/src/lambda/handler-runner/go-runner/index.js +1 -0
- package/src/lambda/handler-runner/in-process-runner/InProcessRunner.js +125 -0
- package/src/lambda/handler-runner/in-process-runner/index.js +1 -0
- package/src/lambda/handler-runner/index.js +1 -0
- package/src/lambda/handler-runner/java-runner/JavaRunner.js +114 -0
- package/src/lambda/handler-runner/java-runner/index.js +1 -0
- package/src/lambda/handler-runner/python-runner/PythonRunner.js +138 -0
- package/src/lambda/handler-runner/python-runner/index.js +1 -0
- package/{dist → src}/lambda/handler-runner/python-runner/invoke.py +0 -0
- package/src/lambda/handler-runner/ruby-runner/RubyRunner.js +107 -0
- package/src/lambda/handler-runner/ruby-runner/index.js +1 -0
- package/{dist → src}/lambda/handler-runner/ruby-runner/invoke.rb +0 -0
- package/src/lambda/handler-runner/worker-thread-runner/WorkerThreadRunner.js +70 -0
- package/src/lambda/handler-runner/worker-thread-runner/index.js +1 -0
- package/src/lambda/handler-runner/worker-thread-runner/workerThreadHelper.js +29 -0
- package/src/lambda/index.js +1 -0
- package/src/lambda/routes/index.js +2 -0
- package/src/lambda/routes/invocations/InvocationsController.js +102 -0
- package/src/lambda/routes/invocations/index.js +1 -0
- package/src/lambda/routes/invocations/invocationsRoute.js +77 -0
- package/src/lambda/routes/invoke-async/InvokeAsyncController.js +20 -0
- package/src/lambda/routes/invoke-async/index.js +1 -0
- package/src/lambda/routes/invoke-async/invokeAsyncRoute.js +33 -0
- package/src/utils/__tests__/createUniqueId.test.js +18 -0
- package/src/utils/__tests__/formatToClfTime.test.js +14 -0
- package/src/utils/__tests__/generateHapiPath.test.js +46 -0
- package/src/utils/__tests__/lowerCaseKeys.test.js +30 -0
- package/src/utils/__tests__/parseHeaders.test.js +13 -0
- package/src/utils/__tests__/parseMultiValueHeaders.test.js +24 -0
- package/src/utils/__tests__/parseMultiValueQueryStringParameters.test.js +159 -0
- package/src/utils/__tests__/parseQueryStringParameters.test.js +15 -0
- package/src/utils/__tests__/splitHandlerPathAndName.test.js +54 -0
- package/src/utils/__tests__/unflatten.test.js +32 -0
- package/src/utils/checkDockerDaemon.js +19 -0
- package/src/utils/checkGoVersion.js +16 -0
- package/src/utils/createApiKey.js +5 -0
- package/src/utils/createUniqueId.js +5 -0
- package/src/utils/detectExecutable.js +11 -0
- package/{dist → src}/utils/formatToClfTime.js +6 -14
- package/src/utils/generateHapiPath.js +26 -0
- package/src/utils/getHttpApiCorsConfig.js +28 -0
- package/src/utils/index.js +42 -0
- package/src/utils/jsonPath.js +13 -0
- package/src/utils/logRoutes.js +64 -0
- package/src/utils/lowerCaseKeys.js +6 -0
- package/src/utils/parseHeaders.js +14 -0
- package/src/utils/parseMultiValueHeaders.js +27 -0
- package/src/utils/parseMultiValueQueryStringParameters.js +31 -0
- package/src/utils/parseQueryStringParameters.js +15 -0
- package/src/utils/resolveJoins.js +29 -0
- package/src/utils/splitHandlerPathAndName.js +31 -0
- package/src/utils/unflatten.js +11 -0
- package/CHANGELOG.md +0 -78
- package/dist/ServerlessOffline.js +0 -508
- package/dist/config/commandOptions.js +0 -149
- package/dist/config/constants.js +0 -30
- package/dist/config/index.js +0 -55
- package/dist/config/supportedRuntimes.js +0 -40
- package/dist/debugLog.js +0 -12
- package/dist/events/authCanExecuteResource.js +0 -35
- package/dist/events/authFunctionNameExtractor.js +0 -87
- package/dist/events/authMatchPolicyResource.js +0 -62
- package/dist/events/authValidateContext.js +0 -53
- package/dist/events/http/Endpoint.js +0 -173
- package/dist/events/http/Http.js +0 -77
- package/dist/events/http/HttpEventDefinition.js +0 -36
- package/dist/events/http/HttpServer.js +0 -1370
- package/dist/events/http/OfflineEndpoint.js +0 -38
- package/dist/events/http/authJWTSettingsExtractor.js +0 -76
- package/dist/events/http/createAuthScheme.js +0 -184
- package/dist/events/http/createJWTAuthScheme.js +0 -159
- package/dist/events/http/index.js +0 -15
- package/dist/events/http/javaHelpers.js +0 -99
- package/dist/events/http/lambda-events/LambdaIntegrationEvent.js +0 -87
- package/dist/events/http/lambda-events/LambdaProxyIntegrationEvent.js +0 -246
- package/dist/events/http/lambda-events/LambdaProxyIntegrationEventV2.js +0 -225
- package/dist/events/http/lambda-events/VelocityContext.js +0 -170
- package/dist/events/http/lambda-events/index.js +0 -39
- package/dist/events/http/lambda-events/renderVelocityTemplateObject.js +0 -111
- package/dist/events/http/payloadSchemaValidator.js +0 -13
- package/dist/events/schedule/Schedule.js +0 -183
- package/dist/events/schedule/ScheduleEvent.js +0 -27
- package/dist/events/schedule/ScheduleEventDefinition.js +0 -36
- package/dist/events/schedule/index.js +0 -15
- package/dist/events/websocket/HttpServer.js +0 -114
- package/dist/events/websocket/WebSocket.js +0 -78
- package/dist/events/websocket/WebSocketClients.js +0 -577
- package/dist/events/websocket/WebSocketEventDefinition.js +0 -32
- package/dist/events/websocket/WebSocketServer.js +0 -139
- package/dist/events/websocket/http-routes/_catchAll/catchAllRoute.js +0 -33
- package/dist/events/websocket/http-routes/_catchAll/index.js +0 -15
- package/dist/events/websocket/http-routes/connections/ConnectionsController.js +0 -45
- package/dist/events/websocket/http-routes/connections/connectionsRoutes.js +0 -95
- package/dist/events/websocket/http-routes/connections/index.js +0 -15
- package/dist/events/websocket/http-routes/index.js +0 -23
- package/dist/events/websocket/index.js +0 -15
- package/dist/events/websocket/lambda-events/WebSocketAuthorizerEvent.js +0 -99
- package/dist/events/websocket/lambda-events/WebSocketConnectEvent.js +0 -101
- package/dist/events/websocket/lambda-events/WebSocketDisconnectEvent.js +0 -47
- package/dist/events/websocket/lambda-events/WebSocketEvent.js +0 -54
- package/dist/events/websocket/lambda-events/WebSocketRequestContext.js +0 -98
- package/dist/events/websocket/lambda-events/index.js +0 -39
- package/dist/index.js +0 -15
- package/dist/lambda/HttpServer.js +0 -124
- package/dist/lambda/Lambda.js +0 -117
- package/dist/lambda/LambdaContext.js +0 -53
- package/dist/lambda/LambdaFunction.js +0 -390
- package/dist/lambda/LambdaFunctionPool.js +0 -127
- package/dist/lambda/handler-runner/HandlerRunner.js +0 -195
- package/dist/lambda/handler-runner/child-process-runner/ChildProcessRunner.js +0 -124
- package/dist/lambda/handler-runner/child-process-runner/childProcessHelper.js +0 -49
- package/dist/lambda/handler-runner/child-process-runner/index.js +0 -15
- package/dist/lambda/handler-runner/docker-runner/DockerContainer.js +0 -515
- package/dist/lambda/handler-runner/docker-runner/DockerImage.js +0 -67
- package/dist/lambda/handler-runner/docker-runner/DockerRunner.js +0 -74
- package/dist/lambda/handler-runner/docker-runner/index.js +0 -15
- package/dist/lambda/handler-runner/go-runner/GoRunner.js +0 -230
- package/dist/lambda/handler-runner/go-runner/index.js +0 -15
- package/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js +0 -228
- package/dist/lambda/handler-runner/in-process-runner/index.js +0 -15
- package/dist/lambda/handler-runner/index.js +0 -15
- package/dist/lambda/handler-runner/java-runner/JavaRunner.js +0 -153
- package/dist/lambda/handler-runner/java-runner/index.js +0 -15
- package/dist/lambda/handler-runner/python-runner/PythonRunner.js +0 -185
- package/dist/lambda/handler-runner/python-runner/index.js +0 -15
- package/dist/lambda/handler-runner/ruby-runner/RubyRunner.js +0 -147
- package/dist/lambda/handler-runner/ruby-runner/index.js +0 -15
- package/dist/lambda/handler-runner/worker-thread-runner/WorkerThreadRunner.js +0 -92
- package/dist/lambda/handler-runner/worker-thread-runner/index.js +0 -15
- package/dist/lambda/handler-runner/worker-thread-runner/workerThreadHelper.js +0 -31
- package/dist/lambda/index.js +0 -15
- package/dist/lambda/routes/index.js +0 -23
- package/dist/lambda/routes/invocations/InvocationsController.js +0 -142
- package/dist/lambda/routes/invocations/index.js +0 -15
- package/dist/lambda/routes/invocations/invocationsRoute.js +0 -90
- package/dist/lambda/routes/invoke-async/InvokeAsyncController.js +0 -38
- package/dist/lambda/routes/invoke-async/index.js +0 -15
- package/dist/lambda/routes/invoke-async/invokeAsyncRoute.js +0 -43
- package/dist/main.js +0 -11
- package/dist/serverlessLog.js +0 -91
- package/dist/utils/checkDockerDaemon.js +0 -27
- package/dist/utils/checkGoVersion.js +0 -27
- package/dist/utils/createApiKey.js +0 -12
- package/dist/utils/createUniqueId.js +0 -14
- package/dist/utils/detectExecutable.js +0 -21
- package/dist/utils/generateHapiPath.js +0 -28
- package/dist/utils/getHttpApiCorsConfig.js +0 -40
- package/dist/utils/index.js +0 -165
- package/dist/utils/jsonPath.js +0 -21
- package/dist/utils/lowerCaseKeys.js +0 -14
- package/dist/utils/parseHeaders.js +0 -23
- package/dist/utils/parseMultiValueHeaders.js +0 -36
- package/dist/utils/parseMultiValueQueryStringParameters.js +0 -40
- package/dist/utils/parseQueryStringParameters.js +0 -26
- package/dist/utils/resolveJoins.js +0 -36
- package/dist/utils/satisfiesVersionRange.js +0 -20
- package/dist/utils/splitHandlerPathAndName.js +0 -37
- package/dist/utils/unflatten.js +0 -18
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _index = require("../../../utils/index.js");
|
|
9
|
-
|
|
10
|
-
function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
|
|
11
|
-
|
|
12
|
-
var id = 0;
|
|
13
|
-
|
|
14
|
-
function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
|
|
15
|
-
|
|
16
|
-
const {
|
|
17
|
-
now
|
|
18
|
-
} = Date;
|
|
19
|
-
const connectedAt = new Map();
|
|
20
|
-
|
|
21
|
-
var _connectionId = /*#__PURE__*/_classPrivateFieldLooseKey("connectionId");
|
|
22
|
-
|
|
23
|
-
var _eventType = /*#__PURE__*/_classPrivateFieldLooseKey("eventType");
|
|
24
|
-
|
|
25
|
-
var _route = /*#__PURE__*/_classPrivateFieldLooseKey("route");
|
|
26
|
-
|
|
27
|
-
var _connectedAt = /*#__PURE__*/_classPrivateFieldLooseKey("connectedAt");
|
|
28
|
-
|
|
29
|
-
class WebSocketRequestContext {
|
|
30
|
-
constructor(eventType, route, connectionId) {
|
|
31
|
-
Object.defineProperty(this, _connectionId, {
|
|
32
|
-
writable: true,
|
|
33
|
-
value: null
|
|
34
|
-
});
|
|
35
|
-
Object.defineProperty(this, _eventType, {
|
|
36
|
-
writable: true,
|
|
37
|
-
value: null
|
|
38
|
-
});
|
|
39
|
-
Object.defineProperty(this, _route, {
|
|
40
|
-
writable: true,
|
|
41
|
-
value: null
|
|
42
|
-
});
|
|
43
|
-
Object.defineProperty(this, _connectedAt, {
|
|
44
|
-
writable: true,
|
|
45
|
-
value: null
|
|
46
|
-
});
|
|
47
|
-
_classPrivateFieldLooseBase(this, _connectionId)[_connectionId] = connectionId;
|
|
48
|
-
_classPrivateFieldLooseBase(this, _eventType)[_eventType] = eventType;
|
|
49
|
-
_classPrivateFieldLooseBase(this, _route)[_route] = route;
|
|
50
|
-
|
|
51
|
-
if (eventType === 'CONNECT') {
|
|
52
|
-
connectedAt.set(connectionId, now());
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
_classPrivateFieldLooseBase(this, _connectedAt)[_connectedAt] = connectedAt.get(connectionId);
|
|
56
|
-
|
|
57
|
-
if (eventType === 'DISCONNECT') {
|
|
58
|
-
connectedAt.delete(connectionId);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
create() {
|
|
63
|
-
const timeEpoch = now();
|
|
64
|
-
const requestContext = {
|
|
65
|
-
apiId: 'private',
|
|
66
|
-
connectedAt: _classPrivateFieldLooseBase(this, _connectedAt)[_connectedAt],
|
|
67
|
-
connectionId: _classPrivateFieldLooseBase(this, _connectionId)[_connectionId],
|
|
68
|
-
domainName: 'localhost',
|
|
69
|
-
eventType: _classPrivateFieldLooseBase(this, _eventType)[_eventType],
|
|
70
|
-
extendedRequestId: (0, _index.createUniqueId)(),
|
|
71
|
-
identity: {
|
|
72
|
-
accessKey: null,
|
|
73
|
-
accountId: null,
|
|
74
|
-
caller: null,
|
|
75
|
-
cognitoAuthenticationProvider: null,
|
|
76
|
-
cognitoAuthenticationType: null,
|
|
77
|
-
cognitoIdentityId: null,
|
|
78
|
-
cognitoIdentityPoolId: null,
|
|
79
|
-
principalOrgId: null,
|
|
80
|
-
sourceIp: '127.0.0.1',
|
|
81
|
-
user: null,
|
|
82
|
-
userAgent: null,
|
|
83
|
-
userArn: null
|
|
84
|
-
},
|
|
85
|
-
messageDirection: 'IN',
|
|
86
|
-
messageId: (0, _index.createUniqueId)(),
|
|
87
|
-
requestId: (0, _index.createUniqueId)(),
|
|
88
|
-
requestTime: (0, _index.formatToClfTime)(timeEpoch),
|
|
89
|
-
requestTimeEpoch: timeEpoch,
|
|
90
|
-
routeKey: _classPrivateFieldLooseBase(this, _route)[_route],
|
|
91
|
-
stage: 'local'
|
|
92
|
-
};
|
|
93
|
-
return requestContext;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
exports.default = WebSocketRequestContext;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "WebSocketAuthorizerEvent", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _WebSocketAuthorizerEvent.default;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
Object.defineProperty(exports, "WebSocketConnectEvent", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _WebSocketConnectEvent.default;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
Object.defineProperty(exports, "WebSocketDisconnectEvent", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () {
|
|
21
|
-
return _WebSocketDisconnectEvent.default;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
Object.defineProperty(exports, "WebSocketEvent", {
|
|
25
|
-
enumerable: true,
|
|
26
|
-
get: function () {
|
|
27
|
-
return _WebSocketEvent.default;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
var _WebSocketConnectEvent = _interopRequireDefault(require("./WebSocketConnectEvent.js"));
|
|
32
|
-
|
|
33
|
-
var _WebSocketDisconnectEvent = _interopRequireDefault(require("./WebSocketDisconnectEvent.js"));
|
|
34
|
-
|
|
35
|
-
var _WebSocketEvent = _interopRequireDefault(require("./WebSocketEvent.js"));
|
|
36
|
-
|
|
37
|
-
var _WebSocketAuthorizerEvent = _interopRequireDefault(require("./WebSocketAuthorizerEvent.js"));
|
|
38
|
-
|
|
39
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
package/dist/index.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "default", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _ServerlessOffline.default;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
var _ServerlessOffline = _interopRequireDefault(require("./ServerlessOffline.js"));
|
|
14
|
-
|
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _hapi = require("@hapi/hapi");
|
|
9
|
-
|
|
10
|
-
var _process = require("process");
|
|
11
|
-
|
|
12
|
-
var _index = require("./routes/index.js");
|
|
13
|
-
|
|
14
|
-
var _serverlessLog = _interopRequireDefault(require("../serverlessLog.js"));
|
|
15
|
-
|
|
16
|
-
var _debugLog = _interopRequireDefault(require("../debugLog.js"));
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
|
-
function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
|
|
21
|
-
|
|
22
|
-
var id = 0;
|
|
23
|
-
|
|
24
|
-
function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
|
|
25
|
-
|
|
26
|
-
var _lambda = /*#__PURE__*/_classPrivateFieldLooseKey("lambda");
|
|
27
|
-
|
|
28
|
-
var _options = /*#__PURE__*/_classPrivateFieldLooseKey("options");
|
|
29
|
-
|
|
30
|
-
var _server = /*#__PURE__*/_classPrivateFieldLooseKey("server");
|
|
31
|
-
|
|
32
|
-
class HttpServer {
|
|
33
|
-
constructor(options, lambda, v3Utils) {
|
|
34
|
-
Object.defineProperty(this, _lambda, {
|
|
35
|
-
writable: true,
|
|
36
|
-
value: null
|
|
37
|
-
});
|
|
38
|
-
Object.defineProperty(this, _options, {
|
|
39
|
-
writable: true,
|
|
40
|
-
value: null
|
|
41
|
-
});
|
|
42
|
-
Object.defineProperty(this, _server, {
|
|
43
|
-
writable: true,
|
|
44
|
-
value: null
|
|
45
|
-
});
|
|
46
|
-
_classPrivateFieldLooseBase(this, _lambda)[_lambda] = lambda;
|
|
47
|
-
_classPrivateFieldLooseBase(this, _options)[_options] = options;
|
|
48
|
-
const {
|
|
49
|
-
host,
|
|
50
|
-
lambdaPort
|
|
51
|
-
} = options;
|
|
52
|
-
const serverOptions = {
|
|
53
|
-
host,
|
|
54
|
-
port: lambdaPort
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
if (v3Utils) {
|
|
58
|
-
this.log = v3Utils.log;
|
|
59
|
-
this.progress = v3Utils.progress;
|
|
60
|
-
this.writeText = v3Utils.writeText;
|
|
61
|
-
this.v3Utils = v3Utils;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
_classPrivateFieldLooseBase(this, _server)[_server] = new _hapi.Server(serverOptions);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
async start() {
|
|
68
|
-
// add routes
|
|
69
|
-
const _invocationsRoute = (0, _index.invocationsRoute)(_classPrivateFieldLooseBase(this, _lambda)[_lambda], _classPrivateFieldLooseBase(this, _options)[_options], this.v3Utils);
|
|
70
|
-
|
|
71
|
-
const _invokeAsyncRoute = (0, _index.invokeAsyncRoute)(_classPrivateFieldLooseBase(this, _lambda)[_lambda], _classPrivateFieldLooseBase(this, _options)[_options]);
|
|
72
|
-
|
|
73
|
-
_classPrivateFieldLooseBase(this, _server)[_server].route([_invokeAsyncRoute, _invocationsRoute]);
|
|
74
|
-
|
|
75
|
-
const {
|
|
76
|
-
host,
|
|
77
|
-
httpsProtocol,
|
|
78
|
-
lambdaPort
|
|
79
|
-
} = _classPrivateFieldLooseBase(this, _options)[_options];
|
|
80
|
-
|
|
81
|
-
try {
|
|
82
|
-
await _classPrivateFieldLooseBase(this, _server)[_server].start();
|
|
83
|
-
} catch (err) {
|
|
84
|
-
if (this.log) {
|
|
85
|
-
this.log.error(`Unexpected error while starting serverless-offline lambda server on port ${lambdaPort}:`, err);
|
|
86
|
-
} else {
|
|
87
|
-
console.error(`Unexpected error while starting serverless-offline lambda server on port ${lambdaPort}:`, err);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
(0, _process.exit)(1);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
if (this.log) {
|
|
94
|
-
this.log.notice(`Offline [http for lambda] listening on http${httpsProtocol ? 's' : ''}://${host}:${lambdaPort}`);
|
|
95
|
-
} else {
|
|
96
|
-
(0, _serverlessLog.default)(`Offline [http for lambda] listening on http${httpsProtocol ? 's' : ''}://${host}:${lambdaPort}`);
|
|
97
|
-
} // Print all the invocation routes to debug
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const basePath = `http${httpsProtocol ? 's' : ''}://${host}:${lambdaPort}`;
|
|
101
|
-
|
|
102
|
-
const funcNamePairs = _classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNamePairs();
|
|
103
|
-
|
|
104
|
-
if (this.log) {
|
|
105
|
-
this.log.notice([`Function names exposed for local invocation by aws-sdk:`, ..._classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNames().map(functionName => ` * ${funcNamePairs[functionName]}: ${functionName}`)].join('\n'));
|
|
106
|
-
this.log.debug([`Lambda Invocation Routes (for AWS SDK or AWS CLI):`, ..._classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNames().map(functionName => ` * ${_invocationsRoute.method} ${basePath}${_invocationsRoute.path.replace('{functionName}', functionName)}`)].join('\n'));
|
|
107
|
-
this.log.debug([`Lambda Async Invocation Routes (for AWS SDK or AWS CLI):`, ..._classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNames().map(functionName => ` * ${_invokeAsyncRoute.method} ${basePath}${_invokeAsyncRoute.path.replace('{functionName}', functionName)}`)].join('\n'));
|
|
108
|
-
} else {
|
|
109
|
-
(0, _serverlessLog.default)([`Function names exposed for local invocation by aws-sdk:`, ..._classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNames().map(functionName => ` * ${funcNamePairs[functionName]}: ${functionName}`)].join('\n'));
|
|
110
|
-
(0, _debugLog.default)([`Lambda Invocation Routes (for AWS SDK or AWS CLI):`, ..._classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNames().map(functionName => ` * ${_invocationsRoute.method} ${basePath}${_invocationsRoute.path.replace('{functionName}', functionName)}`)].join('\n'));
|
|
111
|
-
(0, _debugLog.default)([`Lambda Async Invocation Routes (for AWS SDK or AWS CLI):`, ..._classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNames().map(functionName => ` * ${_invokeAsyncRoute.method} ${basePath}${_invokeAsyncRoute.path.replace('{functionName}', functionName)}`)].join('\n'));
|
|
112
|
-
}
|
|
113
|
-
} // stops the server
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
stop(timeout) {
|
|
117
|
-
return _classPrivateFieldLooseBase(this, _server)[_server].stop({
|
|
118
|
-
timeout
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
exports.default = HttpServer;
|
package/dist/lambda/Lambda.js
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _HttpServer = _interopRequireDefault(require("./HttpServer.js"));
|
|
9
|
-
|
|
10
|
-
var _LambdaFunctionPool = _interopRequireDefault(require("./LambdaFunctionPool.js"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
|
|
15
|
-
|
|
16
|
-
var id = 0;
|
|
17
|
-
|
|
18
|
-
function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
|
|
19
|
-
|
|
20
|
-
const {
|
|
21
|
-
assign
|
|
22
|
-
} = Object;
|
|
23
|
-
|
|
24
|
-
var _httpServer = /*#__PURE__*/_classPrivateFieldLooseKey("httpServer");
|
|
25
|
-
|
|
26
|
-
var _lambdas = /*#__PURE__*/_classPrivateFieldLooseKey("lambdas");
|
|
27
|
-
|
|
28
|
-
var _lambdaFunctionNamesKeys = /*#__PURE__*/_classPrivateFieldLooseKey("lambdaFunctionNamesKeys");
|
|
29
|
-
|
|
30
|
-
var _lambdaFunctionPool = /*#__PURE__*/_classPrivateFieldLooseKey("lambdaFunctionPool");
|
|
31
|
-
|
|
32
|
-
class Lambda {
|
|
33
|
-
constructor(serverless, options, v3Utils) {
|
|
34
|
-
Object.defineProperty(this, _httpServer, {
|
|
35
|
-
writable: true,
|
|
36
|
-
value: null
|
|
37
|
-
});
|
|
38
|
-
Object.defineProperty(this, _lambdas, {
|
|
39
|
-
writable: true,
|
|
40
|
-
value: new Map()
|
|
41
|
-
});
|
|
42
|
-
Object.defineProperty(this, _lambdaFunctionNamesKeys, {
|
|
43
|
-
writable: true,
|
|
44
|
-
value: new Map()
|
|
45
|
-
});
|
|
46
|
-
Object.defineProperty(this, _lambdaFunctionPool, {
|
|
47
|
-
writable: true,
|
|
48
|
-
value: null
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
if (v3Utils) {
|
|
52
|
-
this.log = v3Utils.log;
|
|
53
|
-
this.progress = v3Utils.progress;
|
|
54
|
-
this.writeText = v3Utils.writeText;
|
|
55
|
-
this.v3Utils = v3Utils;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
_classPrivateFieldLooseBase(this, _httpServer)[_httpServer] = new _HttpServer.default(options, this, v3Utils);
|
|
59
|
-
_classPrivateFieldLooseBase(this, _lambdaFunctionPool)[_lambdaFunctionPool] = new _LambdaFunctionPool.default(serverless, options, v3Utils);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
_create(functionKey, functionDefinition) {
|
|
63
|
-
_classPrivateFieldLooseBase(this, _lambdas)[_lambdas].set(functionKey, functionDefinition);
|
|
64
|
-
|
|
65
|
-
_classPrivateFieldLooseBase(this, _lambdaFunctionNamesKeys)[_lambdaFunctionNamesKeys].set(functionDefinition.name, functionKey);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
create(lambdas) {
|
|
69
|
-
lambdas.forEach(({
|
|
70
|
-
functionKey,
|
|
71
|
-
functionDefinition
|
|
72
|
-
}) => {
|
|
73
|
-
this._create(functionKey, functionDefinition);
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
get(functionKey) {
|
|
78
|
-
const functionDefinition = _classPrivateFieldLooseBase(this, _lambdas)[_lambdas].get(functionKey);
|
|
79
|
-
|
|
80
|
-
return _classPrivateFieldLooseBase(this, _lambdaFunctionPool)[_lambdaFunctionPool].get(functionKey, functionDefinition);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
getByFunctionName(functionName) {
|
|
84
|
-
const functionKey = _classPrivateFieldLooseBase(this, _lambdaFunctionNamesKeys)[_lambdaFunctionNamesKeys].get(functionName);
|
|
85
|
-
|
|
86
|
-
return this.get(functionKey);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
listFunctionNames() {
|
|
90
|
-
const functionNames = Array.from(_classPrivateFieldLooseBase(this, _lambdaFunctionNamesKeys)[_lambdaFunctionNamesKeys].keys());
|
|
91
|
-
return functionNames;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
listFunctionNamePairs() {
|
|
95
|
-
const funcNamePairs = Array.from(_classPrivateFieldLooseBase(this, _lambdaFunctionNamesKeys)[_lambdaFunctionNamesKeys]).reduce((obj, [key, value]) => assign(obj, {
|
|
96
|
-
[key]: value
|
|
97
|
-
}), // Be careful! Maps can have non-String keys; object literals can't.
|
|
98
|
-
{});
|
|
99
|
-
return funcNamePairs;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
start() {
|
|
103
|
-
return _classPrivateFieldLooseBase(this, _httpServer)[_httpServer].start();
|
|
104
|
-
} // stops the server
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
stop(timeout) {
|
|
108
|
-
return _classPrivateFieldLooseBase(this, _httpServer)[_httpServer].stop(timeout);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
cleanup() {
|
|
112
|
-
return _classPrivateFieldLooseBase(this, _lambdaFunctionPool)[_lambdaFunctionPool].cleanup();
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
exports.default = Lambda;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
|
|
9
|
-
|
|
10
|
-
var id = 0;
|
|
11
|
-
|
|
12
|
-
function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
|
|
13
|
-
|
|
14
|
-
var _context = /*#__PURE__*/_classPrivateFieldLooseKey("context");
|
|
15
|
-
|
|
16
|
-
// class for creating a LambdaContext
|
|
17
|
-
// http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html
|
|
18
|
-
class LambdaContext {
|
|
19
|
-
constructor(functionName, memorySize) {
|
|
20
|
-
Object.defineProperty(this, _context, {
|
|
21
|
-
writable: true,
|
|
22
|
-
value: null
|
|
23
|
-
});
|
|
24
|
-
_classPrivateFieldLooseBase(this, _context)[_context] = {
|
|
25
|
-
awsRequestId: undefined,
|
|
26
|
-
callbackWaitsForEmptyEventLoop: true,
|
|
27
|
-
clientContext: undefined,
|
|
28
|
-
functionName,
|
|
29
|
-
functionVersion: `$LATEST`,
|
|
30
|
-
identity: undefined,
|
|
31
|
-
invokedFunctionArn: `offline_invokedFunctionArn_for_${functionName}`,
|
|
32
|
-
logGroupName: `offline_logGroupName_for_${functionName}`,
|
|
33
|
-
logStreamName: `offline_logStreamName_for_${functionName}`,
|
|
34
|
-
memoryLimitInMB: String(memorySize) // NOTE: string in AWS
|
|
35
|
-
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
setClientContext(clientContext) {
|
|
40
|
-
_classPrivateFieldLooseBase(this, _context)[_context].clientContext = clientContext;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
setRequestId(requestId) {
|
|
44
|
-
_classPrivateFieldLooseBase(this, _context)[_context].awsRequestId = requestId;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
create() {
|
|
48
|
-
return _classPrivateFieldLooseBase(this, _context)[_context];
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
exports.default = LambdaContext;
|