payload 1.0.4 → 1.0.5
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/CHANGELOG.md +560 -596
- package/dist/config/types.d.ts +2 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.js +10 -93
- package/dist/init.d.ts +3 -0
- package/dist/init.js +99 -0
- package/package.json +1 -1
package/dist/config/types.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ export declare type InitOptions = {
|
|
|
51
51
|
secret: string;
|
|
52
52
|
email?: EmailOptions;
|
|
53
53
|
local?: boolean;
|
|
54
|
-
onInit?: (payload: Payload) => Promise<void
|
|
54
|
+
onInit?: (payload: Payload) => Promise<void> | void;
|
|
55
55
|
/** Pino LoggerOptions */
|
|
56
56
|
loggerOptions?: LoggerOptions;
|
|
57
57
|
};
|
|
@@ -177,7 +177,7 @@ export declare type Config = {
|
|
|
177
177
|
};
|
|
178
178
|
plugins?: Plugin[];
|
|
179
179
|
telemetry?: boolean;
|
|
180
|
-
onInit?: (payload: Payload) => Promise<void
|
|
180
|
+
onInit?: (payload: Payload) => Promise<void> | void;
|
|
181
181
|
};
|
|
182
182
|
export declare type SanitizedConfig = Omit<DeepRequired<Config>, 'collections' | 'globals'> & {
|
|
183
183
|
collections: SanitizedCollectionConfig[];
|
package/dist/index.d.ts
CHANGED
|
@@ -87,7 +87,8 @@ export declare class Payload {
|
|
|
87
87
|
* @description Initializes Payload
|
|
88
88
|
* @param options
|
|
89
89
|
*/
|
|
90
|
-
init(options: InitOptions):
|
|
90
|
+
init(options: InitOptions): void;
|
|
91
|
+
initAsync(options: InitOptions): Promise<void>;
|
|
91
92
|
getAdminURL: () => string;
|
|
92
93
|
getAPIURL: () => string;
|
|
93
94
|
/**
|
package/dist/index.js
CHANGED
|
@@ -4,31 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Payload = void 0;
|
|
7
|
-
const express_1 = __importDefault(require("express"));
|
|
8
|
-
const crypto_1 = __importDefault(require("crypto"));
|
|
9
|
-
const logger_1 = __importDefault(require("./utilities/logger"));
|
|
10
|
-
const load_1 = __importDefault(require("./config/load"));
|
|
11
|
-
const authenticate_1 = __importDefault(require("./express/middleware/authenticate"));
|
|
12
|
-
const connect_1 = __importDefault(require("./mongoose/connect"));
|
|
13
|
-
const middleware_1 = __importDefault(require("./express/middleware"));
|
|
14
|
-
const admin_1 = __importDefault(require("./express/admin"));
|
|
15
|
-
const init_1 = __importDefault(require("./auth/init"));
|
|
16
|
-
const access_1 = __importDefault(require("./auth/requestHandlers/access"));
|
|
17
|
-
const init_2 = __importDefault(require("./collections/init"));
|
|
18
|
-
const init_3 = __importDefault(require("./preferences/init"));
|
|
19
|
-
const init_4 = __importDefault(require("./globals/init"));
|
|
20
|
-
const initPlayground_1 = __importDefault(require("./graphql/initPlayground"));
|
|
21
|
-
const static_1 = __importDefault(require("./express/static"));
|
|
22
|
-
const registerSchema_1 = __importDefault(require("./graphql/registerSchema"));
|
|
23
|
-
const graphQLHandler_1 = __importDefault(require("./graphql/graphQLHandler"));
|
|
24
|
-
const build_1 = __importDefault(require("./email/build"));
|
|
25
|
-
const identifyAPI_1 = __importDefault(require("./express/middleware/identifyAPI"));
|
|
26
|
-
const errorHandler_1 = __importDefault(require("./express/middleware/errorHandler"));
|
|
27
7
|
const local_1 = __importDefault(require("./collections/operations/local"));
|
|
28
8
|
const local_2 = __importDefault(require("./globals/operations/local"));
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
const serverInit_1 = require("./utilities/telemetry/events/serverInit");
|
|
9
|
+
const crypto_1 = require("./auth/crypto");
|
|
10
|
+
const init_1 = require("./init");
|
|
32
11
|
require('isomorphic-fetch');
|
|
33
12
|
/**
|
|
34
13
|
* @description Payload
|
|
@@ -37,8 +16,8 @@ class Payload {
|
|
|
37
16
|
constructor() {
|
|
38
17
|
this.collections = {};
|
|
39
18
|
this.versions = {};
|
|
40
|
-
this.encrypt =
|
|
41
|
-
this.decrypt =
|
|
19
|
+
this.encrypt = crypto_1.encrypt;
|
|
20
|
+
this.decrypt = crypto_1.decrypt;
|
|
42
21
|
this.Query = { name: 'Query', fields: {} };
|
|
43
22
|
this.Mutation = { name: 'Mutation', fields: {} };
|
|
44
23
|
this.errorResponses = [];
|
|
@@ -171,77 +150,15 @@ class Payload {
|
|
|
171
150
|
* @description Initializes Payload
|
|
172
151
|
* @param options
|
|
173
152
|
*/
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
}
|
|
180
|
-
if (options.mongoURL !== false && typeof options.mongoURL !== 'string') {
|
|
181
|
-
throw new Error('Error: missing MongoDB connection URL.');
|
|
182
|
-
}
|
|
183
|
-
this.emailOptions = { ...(options.email) };
|
|
184
|
-
this.secret = crypto_1.default
|
|
185
|
-
.createHash('sha256')
|
|
186
|
-
.update(options.secret)
|
|
187
|
-
.digest('hex')
|
|
188
|
-
.slice(0, 32);
|
|
189
|
-
this.mongoURL = options.mongoURL;
|
|
190
|
-
this.local = options.local;
|
|
191
|
-
this.config = (0, load_1.default)(this.logger);
|
|
192
|
-
// Connect to database
|
|
193
|
-
if (this.mongoURL) {
|
|
194
|
-
this.mongoMemoryServer = await (0, connect_1.default)(this.mongoURL, options.mongoOptions, this.logger);
|
|
195
|
-
}
|
|
196
|
-
// If not initializing locally, scaffold router
|
|
197
|
-
if (!this.local) {
|
|
198
|
-
this.router = express_1.default.Router();
|
|
199
|
-
this.router.use(...(0, middleware_1.default)(this));
|
|
200
|
-
(0, init_1.default)(this);
|
|
201
|
-
}
|
|
202
|
-
// Configure email service
|
|
203
|
-
this.email = (0, build_1.default)(this.emailOptions, this.logger);
|
|
204
|
-
this.sendEmail = sendEmail_1.default.bind(this);
|
|
205
|
-
// Initialize collections & globals
|
|
206
|
-
(0, init_2.default)(this);
|
|
207
|
-
(0, init_4.default)(this);
|
|
208
|
-
if (!this.config.graphQL.disable) {
|
|
209
|
-
(0, registerSchema_1.default)(this);
|
|
210
|
-
}
|
|
211
|
-
// If not initializing locally, set up HTTP routing
|
|
212
|
-
if (!this.local) {
|
|
213
|
-
options.express.use((req, res, next) => {
|
|
214
|
-
req.payload = this;
|
|
215
|
-
next();
|
|
216
|
-
});
|
|
217
|
-
this.express = options.express;
|
|
218
|
-
if (this.config.rateLimit.trustProxy) {
|
|
219
|
-
this.express.set('trust proxy', 1);
|
|
220
|
-
}
|
|
221
|
-
(0, admin_1.default)(this);
|
|
222
|
-
(0, init_3.default)(this);
|
|
223
|
-
this.router.get('/access', access_1.default);
|
|
224
|
-
if (!this.config.graphQL.disable) {
|
|
225
|
-
this.router.use(this.config.routes.graphQL, (0, identifyAPI_1.default)('GraphQL'), (req, res) => (0, graphQLHandler_1.default)(req, res)(req, res));
|
|
226
|
-
(0, initPlayground_1.default)(this);
|
|
227
|
-
}
|
|
228
|
-
// Bind router to API
|
|
229
|
-
this.express.use(this.config.routes.api, this.router);
|
|
230
|
-
// Enable static routes for all collections permitting upload
|
|
231
|
-
(0, static_1.default)(this);
|
|
232
|
-
this.errorHandler = (0, errorHandler_1.default)(this.config, this.logger);
|
|
233
|
-
this.router.use(this.errorHandler);
|
|
234
|
-
this.authenticate = (0, authenticate_1.default)(this.config);
|
|
235
|
-
}
|
|
236
|
-
if (typeof options.onInit === 'function')
|
|
237
|
-
await options.onInit(this);
|
|
238
|
-
if (typeof this.config.onInit === 'function')
|
|
239
|
-
await this.config.onInit(this);
|
|
240
|
-
(0, serverInit_1.serverInit)(this);
|
|
153
|
+
init(options) {
|
|
154
|
+
(0, init_1.init)(this, options);
|
|
155
|
+
}
|
|
156
|
+
async initAsync(options) {
|
|
157
|
+
await (0, init_1.init)(this, options);
|
|
241
158
|
}
|
|
242
159
|
}
|
|
243
160
|
exports.Payload = Payload;
|
|
244
161
|
const payload = new Payload();
|
|
245
162
|
exports.default = payload;
|
|
246
163
|
module.exports = payload;
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBbUJBLDJFQUE2RDtBQUM3RCx1RUFBK0Q7QUFDL0QsMENBQWlEO0FBeUJqRCxpQ0FBOEI7QUFFOUIsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFNUI7O0dBRUc7QUFDSCxNQUFhLE9BQU87SUFBcEI7UUFHRSxnQkFBVyxHQUVQLEVBQUUsQ0FBQTtRQUVOLGFBQVEsR0FFSixFQUFFLENBQUE7UUEwQk4sWUFBTyxHQUFHLGdCQUFPLENBQUM7UUFFbEIsWUFBTyxHQUFHLGdCQUFPLENBQUM7UUFhbEIsVUFBSyxHQUFxRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXhGLGFBQVEsR0FBcUQsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQVU5RixtQkFBYyxHQUE0QixFQUFFLENBQUM7UUFnQjdDLGdCQUFXLEdBQUcsR0FBVyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVsRixjQUFTLEdBQUcsR0FBVyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU5RTs7OztXQUlHO1FBQ0gsV0FBTSxHQUFHLEtBQUssRUFBVyxPQUF5QixFQUFjLEVBQUU7WUFDaEUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLGVBQWUsQ0FBQztZQUNuQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFBO1FBRUQ7Ozs7V0FJRztRQUNILFNBQUksR0FB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
|
package/dist/init.d.ts
ADDED
package/dist/init.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.init = void 0;
|
|
7
|
+
/* eslint-disable no-param-reassign */
|
|
8
|
+
const express_1 = __importDefault(require("express"));
|
|
9
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
10
|
+
const authenticate_1 = __importDefault(require("./express/middleware/authenticate"));
|
|
11
|
+
const connect_1 = __importDefault(require("./mongoose/connect"));
|
|
12
|
+
const middleware_1 = __importDefault(require("./express/middleware"));
|
|
13
|
+
const admin_1 = __importDefault(require("./express/admin"));
|
|
14
|
+
const init_1 = __importDefault(require("./auth/init"));
|
|
15
|
+
const access_1 = __importDefault(require("./auth/requestHandlers/access"));
|
|
16
|
+
const init_2 = __importDefault(require("./collections/init"));
|
|
17
|
+
const init_3 = __importDefault(require("./preferences/init"));
|
|
18
|
+
const init_4 = __importDefault(require("./globals/init"));
|
|
19
|
+
const initPlayground_1 = __importDefault(require("./graphql/initPlayground"));
|
|
20
|
+
const static_1 = __importDefault(require("./express/static"));
|
|
21
|
+
const registerSchema_1 = __importDefault(require("./graphql/registerSchema"));
|
|
22
|
+
const graphQLHandler_1 = __importDefault(require("./graphql/graphQLHandler"));
|
|
23
|
+
const build_1 = __importDefault(require("./email/build"));
|
|
24
|
+
const identifyAPI_1 = __importDefault(require("./express/middleware/identifyAPI"));
|
|
25
|
+
const errorHandler_1 = __importDefault(require("./express/middleware/errorHandler"));
|
|
26
|
+
const sendEmail_1 = __importDefault(require("./email/sendEmail"));
|
|
27
|
+
const serverInit_1 = require("./utilities/telemetry/events/serverInit");
|
|
28
|
+
const load_1 = __importDefault(require("./config/load"));
|
|
29
|
+
const logger_1 = __importDefault(require("./utilities/logger"));
|
|
30
|
+
const init = async (payload, options) => {
|
|
31
|
+
payload.logger = (0, logger_1.default)('payload', options.loggerOptions);
|
|
32
|
+
payload.logger.info('Starting Payload...');
|
|
33
|
+
if (!options.secret) {
|
|
34
|
+
throw new Error('Error: missing secret key. A secret key is needed to secure Payload.');
|
|
35
|
+
}
|
|
36
|
+
if (options.mongoURL !== false && typeof options.mongoURL !== 'string') {
|
|
37
|
+
throw new Error('Error: missing MongoDB connection URL.');
|
|
38
|
+
}
|
|
39
|
+
payload.emailOptions = { ...(options.email) };
|
|
40
|
+
payload.secret = crypto_1.default
|
|
41
|
+
.createHash('sha256')
|
|
42
|
+
.update(options.secret)
|
|
43
|
+
.digest('hex')
|
|
44
|
+
.slice(0, 32);
|
|
45
|
+
payload.mongoURL = options.mongoURL;
|
|
46
|
+
payload.local = options.local;
|
|
47
|
+
payload.config = (0, load_1.default)(payload.logger);
|
|
48
|
+
// Connect to database
|
|
49
|
+
if (payload.mongoURL) {
|
|
50
|
+
payload.mongoMemoryServer = await (0, connect_1.default)(payload.mongoURL, options.mongoOptions, payload.logger);
|
|
51
|
+
}
|
|
52
|
+
// If not initializing locally, scaffold router
|
|
53
|
+
if (!payload.local) {
|
|
54
|
+
payload.router = express_1.default.Router();
|
|
55
|
+
payload.router.use(...(0, middleware_1.default)(payload));
|
|
56
|
+
(0, init_1.default)(payload);
|
|
57
|
+
}
|
|
58
|
+
// Configure email service
|
|
59
|
+
payload.email = (0, build_1.default)(payload.emailOptions, payload.logger);
|
|
60
|
+
payload.sendEmail = sendEmail_1.default.bind(payload);
|
|
61
|
+
// Initialize collections & globals
|
|
62
|
+
(0, init_2.default)(payload);
|
|
63
|
+
(0, init_4.default)(payload);
|
|
64
|
+
if (!payload.config.graphQL.disable) {
|
|
65
|
+
(0, registerSchema_1.default)(payload);
|
|
66
|
+
}
|
|
67
|
+
// If not initializing locally, set up HTTP routing
|
|
68
|
+
if (!payload.local) {
|
|
69
|
+
options.express.use((req, res, next) => {
|
|
70
|
+
req.payload = payload;
|
|
71
|
+
next();
|
|
72
|
+
});
|
|
73
|
+
payload.express = options.express;
|
|
74
|
+
if (payload.config.rateLimit.trustProxy) {
|
|
75
|
+
payload.express.set('trust proxy', 1);
|
|
76
|
+
}
|
|
77
|
+
(0, admin_1.default)(payload);
|
|
78
|
+
(0, init_3.default)(payload);
|
|
79
|
+
payload.router.get('/access', access_1.default);
|
|
80
|
+
if (!payload.config.graphQL.disable) {
|
|
81
|
+
payload.router.use(payload.config.routes.graphQL, (0, identifyAPI_1.default)('GraphQL'), (req, res) => (0, graphQLHandler_1.default)(req, res)(req, res));
|
|
82
|
+
(0, initPlayground_1.default)(payload);
|
|
83
|
+
}
|
|
84
|
+
// Bind router to API
|
|
85
|
+
payload.express.use(payload.config.routes.api, payload.router);
|
|
86
|
+
// Enable static routes for all collections permitting upload
|
|
87
|
+
(0, static_1.default)(payload);
|
|
88
|
+
payload.errorHandler = (0, errorHandler_1.default)(payload.config, payload.logger);
|
|
89
|
+
payload.router.use(payload.errorHandler);
|
|
90
|
+
payload.authenticate = (0, authenticate_1.default)(payload.config);
|
|
91
|
+
}
|
|
92
|
+
if (typeof options.onInit === 'function')
|
|
93
|
+
await options.onInit(payload);
|
|
94
|
+
if (typeof payload.config.onInit === 'function')
|
|
95
|
+
await payload.config.onInit(payload);
|
|
96
|
+
(0, serverInit_1.serverInit)(payload);
|
|
97
|
+
};
|
|
98
|
+
exports.init = init;
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHNDQUFzQztBQUN0QyxzREFBNEM7QUFDNUMsb0RBQTRCO0FBTTVCLHFGQUE2RDtBQUM3RCxpRUFBaUQ7QUFDakQsc0VBQXFEO0FBQ3JELDREQUF3QztBQUN4Qyx1REFBbUM7QUFDbkMsMkVBQW1EO0FBQ25ELDhEQUFpRDtBQUNqRCw4REFBaUQ7QUFDakQsMERBQXlDO0FBQ3pDLDhFQUE2RDtBQUM3RCw4REFBMEM7QUFDMUMsOEVBQXNEO0FBQ3RELDhFQUFzRDtBQUN0RCwwREFBdUM7QUFDdkMsbUZBQTJEO0FBQzNELHFGQUE2RDtBQUU3RCxrRUFBMEM7QUFFMUMsd0VBQTRGO0FBRTVGLHlEQUF1QztBQUN2QyxnRUFBd0M7QUFFakMsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLE9BQWdCLEVBQUUsT0FBb0IsRUFBaUIsRUFBRTtJQUNsRixPQUFPLENBQUMsTUFBTSxHQUFHLElBQUEsZ0JBQU0sRUFBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFELE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FDYixzRUFBc0UsQ0FDdkUsQ0FBQztLQUNIO0lBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLEtBQUssSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFO1FBQ3RFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztLQUMzRDtJQUVELE9BQU8sQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDOUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxnQkFB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
|