diff --git a/log/SQL.log b/log/SQL.log new file mode 100644 index 0000000..cc60971 --- /dev/null +++ b/log/SQL.log @@ -0,0 +1,706 @@ +[2022-02-24T15:03:25.488] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = '1549469775@qq.com' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = '1549469775@qq.com'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:03:25.551] [DEBUG] SQL - Executing (default): INSERT INTO `Users` (`id`,`username`,`password`,`email`,`createdAt`,`updatedAt`) VALUES (NULL,$1,$2,$3,$4,$5); { + plain: false, + raw: false, + logging: [Function: bound ], + hooks: true, + validate: true, + fields: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + defaultFields: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + returning: true, + hasTrigger: undefined, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + type: 'INSERT', + instance: User { + dataValues: { + id: null, + username: '1549469775@qq.com', + password: '$2b$10$7HW9.t8ElTrincTuFajI5ueyVgIRvzEGSM5t81CXy1ka5IpAs8wNO', + email: '1549469775@qq.com', + updatedAt: 2022-02-24T07:03:25.548Z, + createdAt: 2022-02-24T07:03:25.548Z + }, + _previousDataValues: { username: undefined, password: undefined, email: undefined }, + _changed: Set(3) { 'username', 'password', 'email' }, + _options: { + isNewRecord: true, + _schema: null, + _schemaDelimiter: '', + attributes: undefined, + include: undefined, + raw: undefined, + silent: undefined + }, + isNewRecord: true + }, + model: User, + bind: [ + '1549469775@qq.com', + '$2b$10$7HW9.t8ElTrincTuFajI5ueyVgIRvzEGSM5t81CXy1ka5IpAs8wNO', + '1549469775@qq.com', + '2022-02-24 07:03:25.548 +00:00', + '2022-02-24 07:03:25.548 +00:00' + ], + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:08:04.488] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = 'xieyaxin' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = 'xieyaxin'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:10:30.146] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = 'xieyaxin' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = 'xieyaxin'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:12:48.080] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = 'xieyaxin' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = 'xieyaxin'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:15:26.413] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = 'xieyaxin' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = 'xieyaxin'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:15:46.129] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:15:46.183] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:16:28.160] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = 'xieyaxin' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = 'xieyaxin'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:16:40.344] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:16:40.412] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:17:00.415] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:17:00.511] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:17:04.352] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = 'xieyaxin' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = 'xieyaxin'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:18:55.465] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:18:55.524] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:19:27.570] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:19:38.463] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = 'xieyaxin' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = 'xieyaxin'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:19:40.096] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:20:17.332] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = 'xieyaxin' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = 'xieyaxin'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:20:45.832] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:20:45.916] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:20:57.434] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:22:56.788] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = '1549469775@qq.com' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = '1549469775@qq.com'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:31:15.989] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = '1549469775@qq.com' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = '1549469775@qq.com'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:32:28.477] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = 'xieyaxin' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = 'xieyaxin'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:32:34.923] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:32:34.925] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:32:34.926] [DEBUG] SQL - Executing (default): DELETE FROM `Users` WHERE `id` = 1 { + plain: false, + raw: false, + logging: [Function: bound ], + type: 'DELETE', + limit: null, + hooks: true, + force: false, + instance: User { + dataValues: { + id: 1, + username: 'xieyaxin', + password: '$2b$10$GqErvSdKZYJECxlABid0.eapL3wzZ/YRASWBjxkBGDFMlGRISCyyy', + email: '1549469775@qq.com', + createdAt: 2022-02-24T06:33:04.439Z, + updatedAt: 2022-02-24T06:33:04.439Z + }, + _previousDataValues: { + id: 1, + username: 'xieyaxin', + password: '$2b$10$GqErvSdKZYJECxlABid0.eapL3wzZ/YRASWBjxkBGDFMlGRISCyyy', + email: '1549469775@qq.com', + createdAt: 2022-02-24T06:33:04.439Z, + updatedAt: 2022-02-24T06:33:04.439Z + }, + _changed: Set(0) {}, + _options: { + isNewRecord: false, + _schema: null, + _schemaDelimiter: '', + raw: true, + attributes: [Array] + }, + isNewRecord: false + }, + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T15:54:57.732] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = '1549469775@qq.com' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = '1549469775@qq.com'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T16:15:54.738] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = '1549469775@qq.com' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = '1549469775@qq.com'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T16:16:00.842] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = '1549469775@qq.com' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = '1549469775@qq.com'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T16:16:10.012] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = '1549469775@qq.com' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = '1549469775@qq.com'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T16:16:20.748] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T16:16:28.797] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: '`User`.`id` = 1', + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-24T16:16:38.617] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = 'xieyaxin' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = 'xieyaxin'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: 'D:\\1XYX\\demo\\hapi-demo\\source\\db\\data.db', + inMemory: 0, + readWriteMode: 6 +} diff --git a/log/Site.log b/log/Site.log new file mode 100644 index 0000000..d19193f --- /dev/null +++ b/log/Site.log @@ -0,0 +1,3 @@ +[2022-02-24T14:57:07.335] [DEBUG] Site - 服务器启动 +[2022-02-24T14:57:23.685] [DEBUG] Site - 服务器启动 +[2022-02-24T15:00:56.695] [DEBUG] Site - 服务器启动 diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 568ba9b..0000000 --- a/package-lock.json +++ /dev/null @@ -1,4780 +0,0 @@ -{ - "name": "hapi-demo", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "@hapi/hapi": "^20.1.2", - "@hapi/inert": "^6.0.3", - "multiparty": "^4.2.2", - "nodemon": "^2.0.7" - }, - "devDependencies": { - "@hapi/vision": "^6.1.0", - "dotenv": "^10.0.0", - "ejs": "^3.1.6", - "file-type": "^16.5.0", - "ts-node-dev": "^1.1.6", - "tsconfig-paths": "^3.9.0" - } - }, - "node_modules/@hapi/accept": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", - "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/ammo": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", - "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", - "dependencies": { - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/b64": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", - "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", - "dependencies": { - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/boom": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.2.tgz", - "integrity": "sha512-uJEJtiNHzKw80JpngDGBCGAmWjBtzxDCz17A9NO2zCi8LLBlb5Frpq4pXwyN+2JQMod4pKz5BALwyneCgDg89Q==", - "dependencies": { - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/bounce": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz", - "integrity": "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - }, - "node_modules/@hapi/call": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz", - "integrity": "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/catbox": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz", - "integrity": "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/podium": "4.x.x", - "@hapi/validate": "1.x.x" - } - }, - "node_modules/@hapi/catbox-memory": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz", - "integrity": "sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/content": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz", - "integrity": "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==", - "dependencies": { - "@hapi/boom": "9.x.x" - } - }, - "node_modules/@hapi/cryptiles": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", - "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", - "dependencies": { - "@hapi/boom": "9.x.x" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@hapi/file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz", - "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" - }, - "node_modules/@hapi/hapi": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.1.2.tgz", - "integrity": "sha512-yLppH93as7vw+uaAMVcHEB13eBojuzGhcX948y/CGukNRAlnPV+c1EJGbYPLXVffpH8wCNsI7TrTaeifSFS6Vw==", - "dependencies": { - "@hapi/accept": "^5.0.1", - "@hapi/ammo": "^5.0.1", - "@hapi/boom": "^9.1.0", - "@hapi/bounce": "^2.0.0", - "@hapi/call": "^8.0.0", - "@hapi/catbox": "^11.1.1", - "@hapi/catbox-memory": "^5.0.0", - "@hapi/heavy": "^7.0.1", - "@hapi/hoek": "^9.0.4", - "@hapi/mimos": "^5.0.0", - "@hapi/podium": "^4.1.1", - "@hapi/shot": "^5.0.5", - "@hapi/somever": "^3.0.0", - "@hapi/statehood": "^7.0.3", - "@hapi/subtext": "^7.0.3", - "@hapi/teamwork": "^5.1.0", - "@hapi/topo": "^5.0.0", - "@hapi/validate": "^1.1.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@hapi/heavy": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz", - "integrity": "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==" - }, - "node_modules/@hapi/inert": { - "version": "6.0.3", - "resolved": "https://r.cnpmjs.org/@hapi/inert/download/@hapi/inert-6.0.3.tgz", - "integrity": "sha1-V69dkSiT+ry1frS5VvhPbNgCD+E=", - "dependencies": { - "@hapi/ammo": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x", - "lru-cache": "^6.0.0" - } - }, - "node_modules/@hapi/iron": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", - "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", - "dependencies": { - "@hapi/b64": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/cryptiles": "5.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/mimos": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-5.0.0.tgz", - "integrity": "sha512-EVS6wJYeE73InTlPWt+2e3Izn319iIvffDreci3qDNT+t3lA5ylJ0/SoTaID8e0TPNUkHUSsgJZXEmLHvoYzrA==", - "dependencies": { - "@hapi/hoek": "9.x.x", - "mime-db": "1.x.x" - } - }, - "node_modules/@hapi/nigel": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz", - "integrity": "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==", - "dependencies": { - "@hapi/hoek": "^9.0.4", - "@hapi/vise": "^4.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@hapi/pez": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz", - "integrity": "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==", - "dependencies": { - "@hapi/b64": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/content": "^5.0.2", - "@hapi/hoek": "9.x.x", - "@hapi/nigel": "4.x.x" - } - }, - "node_modules/@hapi/podium": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", - "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", - "dependencies": { - "@hapi/hoek": "9.x.x", - "@hapi/teamwork": "5.x.x", - "@hapi/validate": "1.x.x" - } - }, - "node_modules/@hapi/shot": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz", - "integrity": "sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A==", - "dependencies": { - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "node_modules/@hapi/somever": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.0.tgz", - "integrity": "sha512-Upw/kmKotC9iEmK4y047HMYe4LDKsE5NWfjgX41XNKmFvxsQL7OiaCWVhuyyhU0ShDGBfIAnCH8jZr49z/JzZA==", - "dependencies": { - "@hapi/bounce": "2.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/statehood": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.3.tgz", - "integrity": "sha512-pYB+pyCHkf2Amh67QAXz7e/DN9jcMplIL7Z6N8h0K+ZTy0b404JKPEYkbWHSnDtxLjJB/OtgElxocr2fMH4G7w==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/cryptiles": "5.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/iron": "6.x.x", - "@hapi/validate": "1.x.x" - } - }, - "node_modules/@hapi/subtext": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.3.tgz", - "integrity": "sha512-CekDizZkDGERJ01C0+TzHlKtqdXZxzSWTOaH6THBrbOHnsr3GY+yiMZC+AfNCypfE17RaIakGIAbpL2Tk1z2+A==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/content": "^5.0.2", - "@hapi/file": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/pez": "^5.0.1", - "@hapi/wreck": "17.x.x" - } - }, - "node_modules/@hapi/teamwork": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.0.tgz", - "integrity": "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@hapi/validate": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", - "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0" - } - }, - "node_modules/@hapi/vise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz", - "integrity": "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==", - "dependencies": { - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@hapi/vision": { - "version": "6.1.0", - "resolved": "https://r.cnpmjs.org/@hapi/vision/download/@hapi/vision-6.1.0.tgz", - "integrity": "sha1-k58QZT+9nfEQxE39AhMItjPoW1M=", - "dev": true, - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "node_modules/@hapi/wreck": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.1.0.tgz", - "integrity": "sha512-nx6sFyfqOpJ+EFrHX+XWwJAxs3ju4iHdbB/bwR8yTNZOiYmuhA8eCe7lYPtYmb4j7vyK/SlbaQsmTtUrMvPEBw==", - "dependencies": { - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://r.cnpmjs.org/@sindresorhus/is/download/@sindresorhus/is-0.14.0.tgz", - "integrity": "sha1-n7OjzzEyMoFR81PeRjLgHlIQK+o=", - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://r.cnpmjs.org/@szmarczak/http-timer/download/@szmarczak/http-timer-1.1.2.tgz", - "integrity": "sha1-sWZeLEYaLNkvTBu/UNVFTeDUtCE=", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@tokenizer/token": { - "version": "0.1.1", - "resolved": "https://r.cnpmjs.org/@tokenizer/token/download/@tokenizer/token-0.1.1.tgz", - "integrity": "sha1-8NksEvhwed39Gyn2FHWLlpa8KeM=", - "dev": true - }, - "node_modules/@types/debug": { - "version": "4.1.5", - "resolved": "https://r.cnpmjs.org/@types/debug/download/@types/debug-4.1.5.tgz", - "integrity": "sha1-sU76iFK3do2JiQZhPCP2iHE+As0=", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://r.cnpmjs.org/@types/json5/download/@types/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "node_modules/@types/node": { - "version": "15.12.2", - "resolved": "https://r.cnpmjs.org/@types/node/download/@types/node-15.12.2.tgz", - "integrity": "sha1-HytCxL5xVv9Kb5FLL7A9BfqE440=", - "dev": true - }, - "node_modules/@types/readable-stream": { - "version": "2.3.10", - "resolved": "https://r.cnpmjs.org/@types/readable-stream/download/@types/readable-stream-2.3.10.tgz", - "integrity": "sha1-DxpRLKML7F5T0yghM7kjenA+dWI=", - "dev": true, - "dependencies": { - "@types/node": "*", - "safe-buffer": "*" - } - }, - "node_modules/@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/@types/strip-bom/download/@types/strip-bom-3.0.0.tgz", - "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", - "dev": true - }, - "node_modules/@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://r.cnpmjs.org/@types/strip-json-comments/download/@types/strip-json-comments-0.0.30.tgz", - "integrity": "sha1-mqMMBNshKpoGSdaub9UKzMQHSKE=", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://r.cnpmjs.org/abbrev/download/abbrev-1.1.1.tgz", - "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=" - }, - "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/ansi-align/download/ansi-align-3.0.0.tgz", - "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", - "dependencies": { - "string-width": "^3.0.0" - } - }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://r.cnpmjs.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://r.cnpmjs.org/emoji-regex/download/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" - }, - "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://r.cnpmjs.org/string-width/download/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://r.cnpmjs.org/strip-ansi/download/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://r.cnpmjs.org/ansi-regex/download/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://r.cnpmjs.org/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://r.cnpmjs.org/anymatch/download/anymatch-3.1.2.tgz", - "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://r.cnpmjs.org/arg/download/arg-4.1.3.tgz", - "integrity": "sha1-Jp/HrVuOQstjyJbVZmAXJhwUQIk=", - "dev": true - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/array-find-index/download/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async": { - "version": "0.9.2", - "resolved": "https://r.cnpmjs.org/async/download/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/balanced-match/download/balanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=" - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://r.cnpmjs.org/binary-extensions/download/binary-extensions-2.2.0.tgz", - "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen": { - "version": "4.2.0", - "resolved": "https://r.cnpmjs.org/boxen/download/boxen-4.2.0.tgz", - "integrity": "sha1-5BG2I1fW1tNlh8isPV2XTaoHDmQ=", - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://r.cnpmjs.org/brace-expansion/download/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://r.cnpmjs.org/braces/download/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://r.cnpmjs.org/buffer-from/download/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", - "dev": true - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://r.cnpmjs.org/cacheable-request/download/cacheable-request-6.1.0.tgz", - "integrity": "sha1-IP+4vRYrpL4R6VZ9gj22UQUsqRI=", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://r.cnpmjs.org/get-stream/download/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/lowercase-keys/download/lowercase-keys-2.0.0.tgz", - "integrity": "sha1-JgPni3tLAAbLyi+8yKMgJVislHk=", - "engines": { - "node": ">=8" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://r.cnpmjs.org/camelcase/download/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://r.cnpmjs.org/camelcase/download/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/chalk/download/chalk-3.0.0.tgz", - "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://r.cnpmjs.org/has-flag/download/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://r.cnpmjs.org/supports-color/download/supports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://r.cnpmjs.org/chokidar/download/chokidar-3.5.2.tgz", - "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/ci-info/download/ci-info-2.0.0.tgz", - "integrity": "sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=" - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://r.cnpmjs.org/cli-boxes/download/cli-boxes-2.2.1.tgz", - "integrity": "sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=", - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/clone-response/download/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://r.cnpmjs.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://r.cnpmjs.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://r.cnpmjs.org/concat-map/download/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://r.cnpmjs.org/configstore/download/configstore-5.0.1.tgz", - "integrity": "sha1-02UCG130uYzdGH1qOw4/anzF7ZY=", - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://r.cnpmjs.org/create-require/download/create-require-1.1.1.tgz", - "integrity": "sha1-wdfo8eX2z8n/ZfnNNS03NIdWwzM=", - "dev": true - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/crypto-random-string/download/crypto-random-string-2.0.0.tgz", - "integrity": "sha1-7yp6lm7BEIM4g2m6oC6+rSKbMNU=", - "engines": { - "node": ">=8" - } - }, - "node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://r.cnpmjs.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dateformat": { - "version": "1.0.12", - "resolved": "https://r.cnpmjs.org/dateformat/download/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true, - "dependencies": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" - }, - "bin": { - "dateformat": "bin/cli.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://r.cnpmjs.org/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://r.cnpmjs.org/decamelize/download/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://r.cnpmjs.org/decompress-response/download/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://r.cnpmjs.org/deep-extend/download/deep-extend-0.6.0.tgz", - "integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://r.cnpmjs.org/defer-to-connect/download/defer-to-connect-1.1.3.tgz", - "integrity": "sha1-MxrgUMCNz3ifjIOnuB8O2U9KxZE=" - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://r.cnpmjs.org/depd/download/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://r.cnpmjs.org/diff/download/diff-4.0.2.tgz", - "integrity": "sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0=", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://r.cnpmjs.org/dot-prop/download/dot-prop-5.3.0.tgz", - "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://r.cnpmjs.org/dotenv/download/dotenv-10.0.0.tgz", - "integrity": "sha1-PUInuPuV+BCWzdK2ZlP7LHCFuoE=", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://r.cnpmjs.org/duplexer3/download/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "node_modules/dynamic-dedupe": { - "version": "0.3.0", - "resolved": "https://r.cnpmjs.org/dynamic-dedupe/download/dynamic-dedupe-0.3.0.tgz", - "integrity": "sha1-BuRMIj9eTpTXjvnbI6ZRXOL5YqE=", - "dev": true, - "dependencies": { - "xtend": "^4.0.0" - } - }, - "node_modules/ejs": { - "version": "3.1.6", - "resolved": "https://r.cnpmjs.org/ejs/download/ejs-3.1.6.tgz", - "integrity": "sha1-W/0KBol0O7UmizVQzO7rvBcCgio=", - "dev": true, - "dependencies": { - "jake": "^10.6.1" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://r.cnpmjs.org/emoji-regex/download/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://r.cnpmjs.org/end-of-stream/download/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://r.cnpmjs.org/error-ex/download/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://r.cnpmjs.org/escape-goat/download/escape-goat-2.1.1.tgz", - "integrity": "sha1-Gy3HcANnbEV+x2Cy3GjttkgYhnU=", - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://r.cnpmjs.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-type": { - "version": "16.5.0", - "resolved": "https://r.cnpmjs.org/file-type/download/file-type-16.5.0.tgz", - "integrity": "sha1-FqJibzszusYS9ugeUiFvOnyOEqI=", - "dev": true, - "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.0.3", - "token-types": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/filelist": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/filelist/download/filelist-1.0.2.tgz", - "integrity": "sha1-gCAvIUYtTRwuIUEZsYB8G8A4Dls=", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://r.cnpmjs.org/fill-range/download/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://r.cnpmjs.org/find-up/download/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://r.cnpmjs.org/fsevents/download/fsevents-2.3.2.tgz", - "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", - "optional": true, - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://r.cnpmjs.org/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "dev": true - }, - "node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://r.cnpmjs.org/get-stdin/download/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://r.cnpmjs.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://r.cnpmjs.org/glob/download/glob-7.1.7.tgz", - "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://r.cnpmjs.org/glob-parent/download/glob-parent-5.1.2.tgz", - "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/global-dirs/download/global-dirs-2.1.0.tgz", - "integrity": "sha1-6QRqScgG/wTWwYJeGWyPAJHo300=", - "dependencies": { - "ini": "1.3.7" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://r.cnpmjs.org/got/download/got-9.6.0.tgz", - "integrity": "sha1-7fRefWf5lUVwXeH3u+7rEhdl7YU=", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.2.6.tgz", - "integrity": "sha1-/wQLKwhTsjw9MQJ1I3BvGIXXa+4=" - }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://r.cnpmjs.org/growly/download/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "peer": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://r.cnpmjs.org/has/download/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/has-flag/download/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/has-yarn/download/has-yarn-2.1.0.tgz", - "integrity": "sha1-E34RNUp7W/EapctknPDG8/8rLnc=", - "engines": { - "node": ">=8" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://r.cnpmjs.org/hosted-git-info/download/hosted-git-info-2.8.9.tgz", - "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://r.cnpmjs.org/http-cache-semantics/download/http-cache-semantics-4.1.0.tgz", - "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" - }, - "node_modules/http-errors": { - "version": "1.8.0", - "resolved": "https://r.cnpmjs.org/http-errors/download/http-errors-1.8.0.tgz", - "integrity": "sha1-ddG75JfhBE9R5O6ecEpi8o0zZQc=", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://r.cnpmjs.org/ieee754/download/ieee754-1.2.1.tgz", - "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=", - "dev": true - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/ignore-by-default/download/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/import-lazy/download/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://r.cnpmjs.org/imurmurhash/download/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/indent-string/download/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://r.cnpmjs.org/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://r.cnpmjs.org/inherits/download/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" - }, - "node_modules/ini": { - "version": "1.3.7", - "resolved": "https://r.cnpmjs.org/ini/download/ini-1.3.7.tgz", - "integrity": "sha1-oJNj4ZEZcuoW16iFEAXYTPCamoQ=" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://r.cnpmjs.org/is-arrayish/download/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/is-binary-path/download/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/is-ci/download/is-ci-2.0.0.tgz", - "integrity": "sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw=", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.4.0", - "resolved": "https://r.cnpmjs.org/is-core-module/download/is-core-module-2.4.0.tgz", - "integrity": "sha1-jp/I4VAnsBFBgCbpjw5vTYYwXME=", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://r.cnpmjs.org/is-docker/download/is-docker-2.2.1.tgz", - "integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=", - "dev": true, - "peer": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://r.cnpmjs.org/is-extglob/download/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://r.cnpmjs.org/is-finite/download/is-finite-1.1.0.tgz", - "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://r.cnpmjs.org/is-glob/download/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://r.cnpmjs.org/is-installed-globally/download/is-installed-globally-0.3.2.tgz", - "integrity": "sha1-/T76ee5nDRGHIzGC1bCh3QAxMUE=", - "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-npm": { - "version": "4.0.0", - "resolved": "https://r.cnpmjs.org/is-npm/download/is-npm-4.0.0.tgz", - "integrity": "sha1-yQ3YOAaW34enptgjwg0LErvjyE0=", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://r.cnpmjs.org/is-number/download/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/is-obj/download/is-obj-2.0.0.tgz", - "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://r.cnpmjs.org/is-path-inside/download/is-path-inside-3.0.3.tgz", - "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://r.cnpmjs.org/is-utf8/download/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://r.cnpmjs.org/is-wsl/download/is-wsl-2.2.0.tgz", - "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", - "dev": true, - "peer": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://r.cnpmjs.org/is-yarn-global/download/is-yarn-global-0.3.0.tgz", - "integrity": "sha1-1QLTOCWQ6jAEiTdGdUyJE5lz4jI=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true, - "peer": true - }, - "node_modules/jake": { - "version": "10.8.2", - "resolved": "https://r.cnpmjs.org/jake/download/jake-10.8.2.tgz", - "integrity": "sha1-68nehVgWCmbYLQ6txqLlj7xQCns=", - "dev": true, - "dependencies": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://r.cnpmjs.org/ansi-styles/download/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://r.cnpmjs.org/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://r.cnpmjs.org/color-convert/download/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://r.cnpmjs.org/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/json-buffer/download/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "node_modules/json5": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://r.cnpmjs.org/keyv/download/keyv-3.1.0.tgz", - "integrity": "sha1-7MIoSG9pmR5J6UdkhaW+Ho/FxNk=", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://r.cnpmjs.org/latest-version/download/latest-version-5.1.0.tgz", - "integrity": "sha1-EZ3+kI/jjRXfpD7NE/oS7Igy+s4=", - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://r.cnpmjs.org/load-json-file/download/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "https://r.cnpmjs.org/loud-rejection/download/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz", - "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://r.cnpmjs.org/lru-cache/download/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://r.cnpmjs.org/make-dir/download/make-dir-3.1.0.tgz", - "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://r.cnpmjs.org/make-error/download/make-error-1.3.6.tgz", - "integrity": "sha1-LrLjfqm2fEiR9oShOUeZr0hM96I=", - "dev": true - }, - "node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/map-obj/download/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow": { - "version": "3.7.0", - "resolved": "https://r.cnpmjs.org/meow/download/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/mimic-response/download/mimic-response-1.0.1.tgz", - "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://r.cnpmjs.org/minimatch/download/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://r.cnpmjs.org/minimist/download/minimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://r.cnpmjs.org/mkdirp/download/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://r.cnpmjs.org/ms/download/ms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" - }, - "node_modules/multiparty": { - "version": "4.2.2", - "resolved": "https://r.cnpmjs.org/multiparty/download/multiparty-4.2.2.tgz", - "integrity": "sha1-vuX7VzckdijTnatJef/W1Xv2DvY=", - "dependencies": { - "http-errors": "~1.8.0", - "safe-buffer": "5.2.1", - "uid-safe": "2.1.5" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/node-notifier": { - "version": "10.0.0", - "resolved": "https://r.cnpmjs.org/node-notifier/download/node-notifier-10.0.0.tgz", - "integrity": "sha1-k8FUBVsHtVCjOhlmobESkcIRPmk=", - "dev": true, - "peer": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.5", - "shellwords": "^0.1.1", - "uuid": "^8.3.2", - "which": "^2.0.2" - } - }, - "node_modules/node-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://r.cnpmjs.org/semver/download/semver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "dev": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/nodemon": { - "version": "2.0.7", - "resolved": "https://r.cnpmjs.org/nodemon/download/nodemon-2.0.7.tgz", - "integrity": "sha1-bwMKCg6+PqG6Kjj3G/m6tIQc7TI=", - "dependencies": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://r.cnpmjs.org/nopt/download/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://r.cnpmjs.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz", - "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/normalize-path/download/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://r.cnpmjs.org/normalize-url/download/normalize-url-4.5.1.tgz", - "integrity": "sha1-DdkM8SiO4dExO4cIHJpZMu5IUYo=", - "engines": { - "node": ">=8" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://r.cnpmjs.org/object-assign/download/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://r.cnpmjs.org/once/download/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://r.cnpmjs.org/p-cancelable/download/p-cancelable-1.1.0.tgz", - "integrity": "sha1-0HjRWjr0CSIMiG8dmgyi5EGrJsw=", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://r.cnpmjs.org/package-json/download/package-json-6.5.0.tgz", - "integrity": "sha1-b+7ayjXnVyWHbQsOZJdGl/7RRbA=", - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://r.cnpmjs.org/parse-json/download/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/path-exists/download/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://r.cnpmjs.org/path-parse/download/path-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", - "dev": true - }, - "node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://r.cnpmjs.org/path-type/download/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/peek-readable": { - "version": "3.1.3", - "resolved": "https://r.cnpmjs.org/peek-readable/download/peek-readable-3.1.3.tgz", - "integrity": "sha1-kySA1Gz2qlU8RsaFZsT7aags0rE=", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://r.cnpmjs.org/picomatch/download/picomatch-2.3.0.tgz", - "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=", - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://r.cnpmjs.org/pinkie/download/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://r.cnpmjs.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/prepend-http/download/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "engines": { - "node": ">=4" - } - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://r.cnpmjs.org/pstree.remy/download/pstree.remy-1.1.8.tgz", - "integrity": "sha1-wkIiT0pnwh9oaDm720rCgrg3PTo=" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://r.cnpmjs.org/pupa/download/pupa-2.1.1.tgz", - "integrity": "sha1-9ej9SvwsXZeCj6pSNUnth0SiDWI=", - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/random-bytes": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/random-bytes/download/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://r.cnpmjs.org/rc/download/rc-1.2.8.tgz", - "integrity": "sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://r.cnpmjs.org/read-pkg/download/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://r.cnpmjs.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.1", - "resolved": "https://r.cnpmjs.org/readable-web-to-node-stream/download/readable-web-to-node-stream-3.0.1.tgz", - "integrity": "sha1-P2GbG8Xdc6TP5cX5tPb6ulXf+EU=", - "dev": true, - "dependencies": { - "@types/readable-stream": "^2.3.9", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://r.cnpmjs.org/readdirp/download/readdirp-3.6.0.tgz", - "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redent": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/redent/download/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://r.cnpmjs.org/registry-auth-token/download/registry-auth-token-4.2.1.tgz", - "integrity": "sha1-bXtABkQZGJcszV/tzUHcMix5slA=", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://r.cnpmjs.org/registry-url/download/registry-url-5.1.0.tgz", - "integrity": "sha1-6YM0tQ1UNLgRNrROxjjZwgCcUAk=", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://r.cnpmjs.org/repeating/download/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://r.cnpmjs.org/resolve/download/resolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/responselike/download/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://r.cnpmjs.org/rimraf/download/rimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://r.cnpmjs.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://r.cnpmjs.org/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://r.cnpmjs.org/semver-diff/download/semver-diff-3.1.1.tgz", - "integrity": "sha1-Bfd85Z8yXgDicGr9Z7tQbdscoys=", - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://r.cnpmjs.org/setprototypeof/download/setprototypeof-1.2.0.tgz", - "integrity": "sha1-ZsmiSnP5/CjL5msJ/tPTPcrxtCQ=" - }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://r.cnpmjs.org/shellwords/download/shellwords-0.1.1.tgz", - "integrity": "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=", - "dev": true, - "peer": true - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://r.cnpmjs.org/signal-exit/download/signal-exit-3.0.3.tgz", - "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://r.cnpmjs.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://r.cnpmjs.org/source-map-support/download/source-map-support-0.5.19.tgz", - "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://r.cnpmjs.org/spdx-correct/download/spdx-correct-3.1.1.tgz", - "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://r.cnpmjs.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz", - "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://r.cnpmjs.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://r.cnpmjs.org/spdx-license-ids/download/spdx-license-ids-3.0.9.tgz", - "integrity": "sha1-illRNd75WSvaaXCUdPHL7qfCRn8=", - "dev": true - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://r.cnpmjs.org/statuses/download/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://r.cnpmjs.org/string_decoder/download/string_decoder-1.3.0.tgz", - "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://r.cnpmjs.org/string-width/download/string-width-4.2.2.tgz", - "integrity": "sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://r.cnpmjs.org/strip-ansi/download/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/strip-bom/download/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/strip-indent/download/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://r.cnpmjs.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strtok3": { - "version": "6.0.8", - "resolved": "https://r.cnpmjs.org/strtok3/download/strtok3-6.0.8.tgz", - "integrity": "sha1-yDkVf2FcELoPSuNQZ9rZlZ7so0Y=", - "dev": true, - "dependencies": { - "@tokenizer/token": "^0.1.1", - "@types/debug": "^4.1.5", - "peek-readable": "^3.1.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://r.cnpmjs.org/supports-color/download/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://r.cnpmjs.org/term-size/download/term-size-2.2.1.tgz", - "integrity": "sha1-KmpUhAQywvtjIP6g9BVTHpAYn1Q=", - "engines": { - "node": ">=8" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/to-readable-stream/download/to-readable-stream-1.0.0.tgz", - "integrity": "sha1-zgqgwvPfat+FLvtASng+d8BHV3E=", - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://r.cnpmjs.org/to-regex-range/download/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/toidentifier/download/toidentifier-1.0.0.tgz", - "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/token-types": { - "version": "2.1.1", - "resolved": "https://r.cnpmjs.org/token-types/download/token-types-2.1.1.tgz", - "integrity": "sha1-vVhdZJAqr3ILiXnSV7S4ULTUXEU=", - "dev": true, - "dependencies": { - "@tokenizer/token": "^0.1.1", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=0.1.98" - } - }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://r.cnpmjs.org/touch/download/touch-3.1.0.tgz", - "integrity": "sha1-/jZfX3XsntTlaCXgu3bSSrdK+Ds=", - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://r.cnpmjs.org/tree-kill/download/tree-kill-1.2.2.tgz", - "integrity": "sha1-TKCakJLIi3OnzcXooBtQeweQoMw=", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/trim-newlines": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/trim-newlines/download/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ts-node": { - "version": "9.1.1", - "resolved": "https://r.cnpmjs.org/ts-node/download/ts-node-9.1.1.tgz", - "integrity": "sha1-UamkUKPpWUAb2l8ASnLVS5NtN20=", - "dev": true, - "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" - } - }, - "node_modules/ts-node-dev": { - "version": "1.1.6", - "resolved": "https://r.cnpmjs.org/ts-node-dev/download/ts-node-dev-1.1.6.tgz", - "integrity": "sha1-7iETcYy1qSwcj0IpEjrWr766Afg=", - "dev": true, - "dependencies": { - "chokidar": "^3.5.1", - "dateformat": "~1.0.4-1.2.3", - "dynamic-dedupe": "^0.3.0", - "minimist": "^1.2.5", - "mkdirp": "^1.0.4", - "resolve": "^1.0.0", - "rimraf": "^2.6.1", - "source-map-support": "^0.5.12", - "tree-kill": "^1.2.2", - "ts-node": "^9.0.0", - "tsconfig": "^7.0.0" - }, - "bin": { - "ts-node-dev": "lib/bin.js", - "tsnd": "lib/bin.js" - }, - "engines": { - "node": ">=0.8.0" - }, - "peerDependencies": { - "node-notifier": "*", - "typescript": "*" - } - }, - "node_modules/tsconfig": { - "version": "7.0.0", - "resolved": "https://r.cnpmjs.org/tsconfig/download/tsconfig-7.0.0.tgz", - "integrity": "sha1-hFOIdaTcIW5cSlQys6Tew9VOkbc=", - "dev": true, - "dependencies": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://r.cnpmjs.org/tsconfig-paths/download/tsconfig-paths-3.9.0.tgz", - "integrity": "sha1-CYVHpsREiAfo/Ljq4IEGTumjyQs=", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/strip-bom/download/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tsconfig/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/strip-bom/download/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://r.cnpmjs.org/type-fest/download/type-fest-0.8.1.tgz", - "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", - "engines": { - "node": ">=8" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://r.cnpmjs.org/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.3.2", - "resolved": "https://r.cnpmjs.org/typescript/download/typescript-4.3.2.tgz", - "integrity": "sha1-OZqxiqxFgC1vJJjeUFT8u+cWqAU=", - "dev": true, - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uid-safe": { - "version": "2.1.5", - "resolved": "https://r.cnpmjs.org/uid-safe/download/uid-safe-2.1.5.tgz", - "integrity": "sha1-Kz1cckDo/C5Y+Komnl7knAhXvTo=", - "dependencies": { - "random-bytes": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/undefsafe": { - "version": "2.0.3", - "resolved": "https://r.cnpmjs.org/undefsafe/download/undefsafe-2.0.3.tgz", - "integrity": "sha1-axZucJStRjE7IgLafsws18xueq4=", - "dependencies": { - "debug": "^2.2.0" - } - }, - "node_modules/undefsafe/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://r.cnpmjs.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/undefsafe/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/unique-string/download/unique-string-2.0.0.tgz", - "integrity": "sha1-OcZFH4GvsnSd4rIz4/fF6IQ72J0=", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier": { - "version": "4.1.3", - "resolved": "https://r.cnpmjs.org/update-notifier/download/update-notifier-4.1.3.tgz", - "integrity": "sha1-vobuE+jOSPtQBD/3IFe1vVmOHqM=", - "dependencies": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/url-parse-lax/download/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://r.cnpmjs.org/uuid/download/uuid-8.3.2.tgz", - "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=", - "dev": true, - "peer": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://r.cnpmjs.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://r.cnpmjs.org/which/download/which-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dev": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://r.cnpmjs.org/widest-line/download/widest-line-3.1.0.tgz", - "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/wrappy/download/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://r.cnpmjs.org/write-file-atomic/download/write-file-atomic-3.0.3.tgz", - "integrity": "sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://r.cnpmjs.org/xdg-basedir/download/xdg-basedir-4.0.0.tgz", - "integrity": "sha1-S8jZmEQDaWIl74OhVzy7y0552xM=", - "engines": { - "node": ">=8" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://r.cnpmjs.org/xtend/download/xtend-4.0.2.tgz", - "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://r.cnpmjs.org/yallist/download/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://r.cnpmjs.org/yn/download/yn-3.1.1.tgz", - "integrity": "sha1-HodAGgnXZ8HV6rJqbkwYUYLS61A=", - "dev": true, - "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@hapi/accept": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", - "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/ammo": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", - "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/b64": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", - "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/boom": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.2.tgz", - "integrity": "sha512-uJEJtiNHzKw80JpngDGBCGAmWjBtzxDCz17A9NO2zCi8LLBlb5Frpq4pXwyN+2JQMod4pKz5BALwyneCgDg89Q==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/bounce": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz", - "integrity": "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" - }, - "@hapi/call": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz", - "integrity": "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/catbox": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz", - "integrity": "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/podium": "4.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/catbox-memory": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz", - "integrity": "sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/content": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz", - "integrity": "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==", - "requires": { - "@hapi/boom": "9.x.x" - } - }, - "@hapi/cryptiles": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", - "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", - "requires": { - "@hapi/boom": "9.x.x" - } - }, - "@hapi/file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz", - "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" - }, - "@hapi/hapi": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.1.2.tgz", - "integrity": "sha512-yLppH93as7vw+uaAMVcHEB13eBojuzGhcX948y/CGukNRAlnPV+c1EJGbYPLXVffpH8wCNsI7TrTaeifSFS6Vw==", - "requires": { - "@hapi/accept": "^5.0.1", - "@hapi/ammo": "^5.0.1", - "@hapi/boom": "^9.1.0", - "@hapi/bounce": "^2.0.0", - "@hapi/call": "^8.0.0", - "@hapi/catbox": "^11.1.1", - "@hapi/catbox-memory": "^5.0.0", - "@hapi/heavy": "^7.0.1", - "@hapi/hoek": "^9.0.4", - "@hapi/mimos": "^5.0.0", - "@hapi/podium": "^4.1.1", - "@hapi/shot": "^5.0.5", - "@hapi/somever": "^3.0.0", - "@hapi/statehood": "^7.0.3", - "@hapi/subtext": "^7.0.3", - "@hapi/teamwork": "^5.1.0", - "@hapi/topo": "^5.0.0", - "@hapi/validate": "^1.1.1" - } - }, - "@hapi/heavy": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz", - "integrity": "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==" - }, - "@hapi/inert": { - "version": "6.0.3", - "resolved": "https://r.cnpmjs.org/@hapi/inert/download/@hapi/inert-6.0.3.tgz", - "integrity": "sha1-V69dkSiT+ry1frS5VvhPbNgCD+E=", - "requires": { - "@hapi/ammo": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x", - "lru-cache": "^6.0.0" - } - }, - "@hapi/iron": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", - "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", - "requires": { - "@hapi/b64": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/cryptiles": "5.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/mimos": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-5.0.0.tgz", - "integrity": "sha512-EVS6wJYeE73InTlPWt+2e3Izn319iIvffDreci3qDNT+t3lA5ylJ0/SoTaID8e0TPNUkHUSsgJZXEmLHvoYzrA==", - "requires": { - "@hapi/hoek": "9.x.x", - "mime-db": "1.x.x" - } - }, - "@hapi/nigel": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz", - "integrity": "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==", - "requires": { - "@hapi/hoek": "^9.0.4", - "@hapi/vise": "^4.0.0" - } - }, - "@hapi/pez": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz", - "integrity": "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==", - "requires": { - "@hapi/b64": "5.x.x", - "@hapi/boom": "9.x.x", - "@hapi/content": "^5.0.2", - "@hapi/hoek": "9.x.x", - "@hapi/nigel": "4.x.x" - } - }, - "@hapi/podium": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", - "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", - "requires": { - "@hapi/hoek": "9.x.x", - "@hapi/teamwork": "5.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/shot": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz", - "integrity": "sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A==", - "requires": { - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/somever": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.0.tgz", - "integrity": "sha512-Upw/kmKotC9iEmK4y047HMYe4LDKsE5NWfjgX41XNKmFvxsQL7OiaCWVhuyyhU0ShDGBfIAnCH8jZr49z/JzZA==", - "requires": { - "@hapi/bounce": "2.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/statehood": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.3.tgz", - "integrity": "sha512-pYB+pyCHkf2Amh67QAXz7e/DN9jcMplIL7Z6N8h0K+ZTy0b404JKPEYkbWHSnDtxLjJB/OtgElxocr2fMH4G7w==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/cryptiles": "5.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/iron": "6.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/subtext": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.3.tgz", - "integrity": "sha512-CekDizZkDGERJ01C0+TzHlKtqdXZxzSWTOaH6THBrbOHnsr3GY+yiMZC+AfNCypfE17RaIakGIAbpL2Tk1z2+A==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/content": "^5.0.2", - "@hapi/file": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/pez": "^5.0.1", - "@hapi/wreck": "17.x.x" - } - }, - "@hapi/teamwork": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.0.tgz", - "integrity": "sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==" - }, - "@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@hapi/validate": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", - "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0" - } - }, - "@hapi/vise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz", - "integrity": "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==", - "requires": { - "@hapi/hoek": "9.x.x" - } - }, - "@hapi/vision": { - "version": "6.1.0", - "resolved": "https://r.cnpmjs.org/@hapi/vision/download/@hapi/vision-6.1.0.tgz", - "integrity": "sha1-k58QZT+9nfEQxE39AhMItjPoW1M=", - "dev": true, - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bounce": "2.x.x", - "@hapi/hoek": "9.x.x", - "@hapi/validate": "1.x.x" - } - }, - "@hapi/wreck": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.1.0.tgz", - "integrity": "sha512-nx6sFyfqOpJ+EFrHX+XWwJAxs3ju4iHdbB/bwR8yTNZOiYmuhA8eCe7lYPtYmb4j7vyK/SlbaQsmTtUrMvPEBw==", - "requires": { - "@hapi/boom": "9.x.x", - "@hapi/bourne": "2.x.x", - "@hapi/hoek": "9.x.x" - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://r.cnpmjs.org/@sindresorhus/is/download/@sindresorhus/is-0.14.0.tgz", - "integrity": "sha1-n7OjzzEyMoFR81PeRjLgHlIQK+o=" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://r.cnpmjs.org/@szmarczak/http-timer/download/@szmarczak/http-timer-1.1.2.tgz", - "integrity": "sha1-sWZeLEYaLNkvTBu/UNVFTeDUtCE=", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@tokenizer/token": { - "version": "0.1.1", - "resolved": "https://r.cnpmjs.org/@tokenizer/token/download/@tokenizer/token-0.1.1.tgz", - "integrity": "sha1-8NksEvhwed39Gyn2FHWLlpa8KeM=", - "dev": true - }, - "@types/debug": { - "version": "4.1.5", - "resolved": "https://r.cnpmjs.org/@types/debug/download/@types/debug-4.1.5.tgz", - "integrity": "sha1-sU76iFK3do2JiQZhPCP2iHE+As0=", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://r.cnpmjs.org/@types/json5/download/@types/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "@types/node": { - "version": "15.12.2", - "resolved": "https://r.cnpmjs.org/@types/node/download/@types/node-15.12.2.tgz", - "integrity": "sha1-HytCxL5xVv9Kb5FLL7A9BfqE440=", - "dev": true - }, - "@types/readable-stream": { - "version": "2.3.10", - "resolved": "https://r.cnpmjs.org/@types/readable-stream/download/@types/readable-stream-2.3.10.tgz", - "integrity": "sha1-DxpRLKML7F5T0yghM7kjenA+dWI=", - "dev": true, - "requires": { - "@types/node": "*", - "safe-buffer": "*" - } - }, - "@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/@types/strip-bom/download/@types/strip-bom-3.0.0.tgz", - "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", - "dev": true - }, - "@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://r.cnpmjs.org/@types/strip-json-comments/download/@types/strip-json-comments-0.0.30.tgz", - "integrity": "sha1-mqMMBNshKpoGSdaub9UKzMQHSKE=", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://r.cnpmjs.org/abbrev/download/abbrev-1.1.1.tgz", - "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=" - }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/ansi-align/download/ansi-align-3.0.0.tgz", - "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://r.cnpmjs.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://r.cnpmjs.org/emoji-regex/download/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://r.cnpmjs.org/string-width/download/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://r.cnpmjs.org/strip-ansi/download/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://r.cnpmjs.org/ansi-regex/download/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://r.cnpmjs.org/ansi-styles/download/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://r.cnpmjs.org/anymatch/download/anymatch-3.1.2.tgz", - "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://r.cnpmjs.org/arg/download/arg-4.1.3.tgz", - "integrity": "sha1-Jp/HrVuOQstjyJbVZmAXJhwUQIk=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/array-find-index/download/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "async": { - "version": "0.9.2", - "resolved": "https://r.cnpmjs.org/async/download/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/balanced-match/download/balanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://r.cnpmjs.org/binary-extensions/download/binary-extensions-2.2.0.tgz", - "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=" - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://r.cnpmjs.org/boxen/download/boxen-4.2.0.tgz", - "integrity": "sha1-5BG2I1fW1tNlh8isPV2XTaoHDmQ=", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://r.cnpmjs.org/brace-expansion/download/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://r.cnpmjs.org/braces/download/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "requires": { - "fill-range": "^7.0.1" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://r.cnpmjs.org/buffer-from/download/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", - "dev": true - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://r.cnpmjs.org/cacheable-request/download/cacheable-request-6.1.0.tgz", - "integrity": "sha1-IP+4vRYrpL4R6VZ9gj22UQUsqRI=", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://r.cnpmjs.org/get-stream/download/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/lowercase-keys/download/lowercase-keys-2.0.0.tgz", - "integrity": "sha1-JgPni3tLAAbLyi+8yKMgJVislHk=" - } - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://r.cnpmjs.org/camelcase/download/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://r.cnpmjs.org/camelcase/download/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/chalk/download/chalk-3.0.0.tgz", - "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://r.cnpmjs.org/has-flag/download/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://r.cnpmjs.org/supports-color/download/supports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://r.cnpmjs.org/chokidar/download/chokidar-3.5.2.tgz", - "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/ci-info/download/ci-info-2.0.0.tgz", - "integrity": "sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=" - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://r.cnpmjs.org/cli-boxes/download/cli-boxes-2.2.1.tgz", - "integrity": "sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=" - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/clone-response/download/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://r.cnpmjs.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://r.cnpmjs.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://r.cnpmjs.org/concat-map/download/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://r.cnpmjs.org/configstore/download/configstore-5.0.1.tgz", - "integrity": "sha1-02UCG130uYzdGH1qOw4/anzF7ZY=", - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://r.cnpmjs.org/create-require/download/create-require-1.1.1.tgz", - "integrity": "sha1-wdfo8eX2z8n/ZfnNNS03NIdWwzM=", - "dev": true - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/crypto-random-string/download/crypto-random-string-2.0.0.tgz", - "integrity": "sha1-7yp6lm7BEIM4g2m6oC6+rSKbMNU=" - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://r.cnpmjs.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://r.cnpmjs.org/dateformat/download/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://r.cnpmjs.org/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://r.cnpmjs.org/decamelize/download/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://r.cnpmjs.org/decompress-response/download/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://r.cnpmjs.org/deep-extend/download/deep-extend-0.6.0.tgz", - "integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=" - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://r.cnpmjs.org/defer-to-connect/download/defer-to-connect-1.1.3.tgz", - "integrity": "sha1-MxrgUMCNz3ifjIOnuB8O2U9KxZE=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://r.cnpmjs.org/depd/download/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://r.cnpmjs.org/diff/download/diff-4.0.2.tgz", - "integrity": "sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0=", - "dev": true - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://r.cnpmjs.org/dot-prop/download/dot-prop-5.3.0.tgz", - "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=", - "requires": { - "is-obj": "^2.0.0" - } - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://r.cnpmjs.org/dotenv/download/dotenv-10.0.0.tgz", - "integrity": "sha1-PUInuPuV+BCWzdK2ZlP7LHCFuoE=", - "dev": true - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://r.cnpmjs.org/duplexer3/download/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "dynamic-dedupe": { - "version": "0.3.0", - "resolved": "https://r.cnpmjs.org/dynamic-dedupe/download/dynamic-dedupe-0.3.0.tgz", - "integrity": "sha1-BuRMIj9eTpTXjvnbI6ZRXOL5YqE=", - "dev": true, - "requires": { - "xtend": "^4.0.0" - } - }, - "ejs": { - "version": "3.1.6", - "resolved": "https://r.cnpmjs.org/ejs/download/ejs-3.1.6.tgz", - "integrity": "sha1-W/0KBol0O7UmizVQzO7rvBcCgio=", - "dev": true, - "requires": { - "jake": "^10.6.1" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://r.cnpmjs.org/emoji-regex/download/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://r.cnpmjs.org/end-of-stream/download/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://r.cnpmjs.org/error-ex/download/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://r.cnpmjs.org/escape-goat/download/escape-goat-2.1.1.tgz", - "integrity": "sha1-Gy3HcANnbEV+x2Cy3GjttkgYhnU=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://r.cnpmjs.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "file-type": { - "version": "16.5.0", - "resolved": "https://r.cnpmjs.org/file-type/download/file-type-16.5.0.tgz", - "integrity": "sha1-FqJibzszusYS9ugeUiFvOnyOEqI=", - "dev": true, - "requires": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.0.3", - "token-types": "^2.0.0" - } - }, - "filelist": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/filelist/download/filelist-1.0.2.tgz", - "integrity": "sha1-gCAvIUYtTRwuIUEZsYB8G8A4Dls=", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://r.cnpmjs.org/fill-range/download/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://r.cnpmjs.org/find-up/download/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://r.cnpmjs.org/fsevents/download/fsevents-2.3.2.tgz", - "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://r.cnpmjs.org/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "dev": true - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://r.cnpmjs.org/get-stdin/download/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://r.cnpmjs.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.1.7", - "resolved": "https://r.cnpmjs.org/glob/download/glob-7.1.7.tgz", - "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://r.cnpmjs.org/glob-parent/download/glob-parent-5.1.2.tgz", - "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-dirs": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/global-dirs/download/global-dirs-2.1.0.tgz", - "integrity": "sha1-6QRqScgG/wTWwYJeGWyPAJHo300=", - "requires": { - "ini": "1.3.7" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://r.cnpmjs.org/got/download/got-9.6.0.tgz", - "integrity": "sha1-7fRefWf5lUVwXeH3u+7rEhdl7YU=", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.2.6.tgz", - "integrity": "sha1-/wQLKwhTsjw9MQJ1I3BvGIXXa+4=" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://r.cnpmjs.org/growly/download/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "peer": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://r.cnpmjs.org/has/download/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/has-flag/download/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/has-yarn/download/has-yarn-2.1.0.tgz", - "integrity": "sha1-E34RNUp7W/EapctknPDG8/8rLnc=" - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://r.cnpmjs.org/hosted-git-info/download/hosted-git-info-2.8.9.tgz", - "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://r.cnpmjs.org/http-cache-semantics/download/http-cache-semantics-4.1.0.tgz", - "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" - }, - "http-errors": { - "version": "1.8.0", - "resolved": "https://r.cnpmjs.org/http-errors/download/http-errors-1.8.0.tgz", - "integrity": "sha1-ddG75JfhBE9R5O6ecEpi8o0zZQc=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://r.cnpmjs.org/ieee754/download/ieee754-1.2.1.tgz", - "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=", - "dev": true - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/ignore-by-default/download/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/import-lazy/download/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://r.cnpmjs.org/imurmurhash/download/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/indent-string/download/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://r.cnpmjs.org/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://r.cnpmjs.org/inherits/download/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" - }, - "ini": { - "version": "1.3.7", - "resolved": "https://r.cnpmjs.org/ini/download/ini-1.3.7.tgz", - "integrity": "sha1-oJNj4ZEZcuoW16iFEAXYTPCamoQ=" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://r.cnpmjs.org/is-arrayish/download/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/is-binary-path/download/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/is-ci/download/is-ci-2.0.0.tgz", - "integrity": "sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw=", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.4.0", - "resolved": "https://r.cnpmjs.org/is-core-module/download/is-core-module-2.4.0.tgz", - "integrity": "sha1-jp/I4VAnsBFBgCbpjw5vTYYwXME=", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://r.cnpmjs.org/is-docker/download/is-docker-2.2.1.tgz", - "integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=", - "dev": true, - "peer": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://r.cnpmjs.org/is-extglob/download/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://r.cnpmjs.org/is-finite/download/is-finite-1.1.0.tgz", - "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://r.cnpmjs.org/is-glob/download/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://r.cnpmjs.org/is-installed-globally/download/is-installed-globally-0.3.2.tgz", - "integrity": "sha1-/T76ee5nDRGHIzGC1bCh3QAxMUE=", - "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - } - }, - "is-npm": { - "version": "4.0.0", - "resolved": "https://r.cnpmjs.org/is-npm/download/is-npm-4.0.0.tgz", - "integrity": "sha1-yQ3YOAaW34enptgjwg0LErvjyE0=" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://r.cnpmjs.org/is-number/download/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=" - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/is-obj/download/is-obj-2.0.0.tgz", - "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=" - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://r.cnpmjs.org/is-path-inside/download/is-path-inside-3.0.3.tgz", - "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://r.cnpmjs.org/is-utf8/download/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://r.cnpmjs.org/is-wsl/download/is-wsl-2.2.0.tgz", - "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", - "dev": true, - "peer": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://r.cnpmjs.org/is-yarn-global/download/is-yarn-global-0.3.0.tgz", - "integrity": "sha1-1QLTOCWQ6jAEiTdGdUyJE5lz4jI=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true, - "peer": true - }, - "jake": { - "version": "10.8.2", - "resolved": "https://r.cnpmjs.org/jake/download/jake-10.8.2.tgz", - "integrity": "sha1-68nehVgWCmbYLQ6txqLlj7xQCns=", - "dev": true, - "requires": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://r.cnpmjs.org/ansi-styles/download/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://r.cnpmjs.org/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://r.cnpmjs.org/color-convert/download/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://r.cnpmjs.org/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } - } - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/json-buffer/download/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://r.cnpmjs.org/keyv/download/keyv-3.1.0.tgz", - "integrity": "sha1-7MIoSG9pmR5J6UdkhaW+Ho/FxNk=", - "requires": { - "json-buffer": "3.0.0" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://r.cnpmjs.org/latest-version/download/latest-version-5.1.0.tgz", - "integrity": "sha1-EZ3+kI/jjRXfpD7NE/oS7Igy+s4=", - "requires": { - "package-json": "^6.3.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://r.cnpmjs.org/load-json-file/download/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://r.cnpmjs.org/loud-rejection/download/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz", - "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://r.cnpmjs.org/lru-cache/download/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://r.cnpmjs.org/make-dir/download/make-dir-3.1.0.tgz", - "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://r.cnpmjs.org/make-error/download/make-error-1.3.6.tgz", - "integrity": "sha1-LrLjfqm2fEiR9oShOUeZr0hM96I=", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/map-obj/download/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "meow": { - "version": "3.7.0", - "resolved": "https://r.cnpmjs.org/meow/download/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/mimic-response/download/mimic-response-1.0.1.tgz", - "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://r.cnpmjs.org/minimatch/download/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://r.cnpmjs.org/minimist/download/minimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://r.cnpmjs.org/mkdirp/download/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://r.cnpmjs.org/ms/download/ms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" - }, - "multiparty": { - "version": "4.2.2", - "resolved": "https://r.cnpmjs.org/multiparty/download/multiparty-4.2.2.tgz", - "integrity": "sha1-vuX7VzckdijTnatJef/W1Xv2DvY=", - "requires": { - "http-errors": "~1.8.0", - "safe-buffer": "5.2.1", - "uid-safe": "2.1.5" - } - }, - "node-notifier": { - "version": "10.0.0", - "resolved": "https://r.cnpmjs.org/node-notifier/download/node-notifier-10.0.0.tgz", - "integrity": "sha1-k8FUBVsHtVCjOhlmobESkcIRPmk=", - "dev": true, - "peer": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.5", - "shellwords": "^0.1.1", - "uuid": "^8.3.2", - "which": "^2.0.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://r.cnpmjs.org/semver/download/semver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "dev": true, - "peer": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "nodemon": { - "version": "2.0.7", - "resolved": "https://r.cnpmjs.org/nodemon/download/nodemon-2.0.7.tgz", - "integrity": "sha1-bwMKCg6+PqG6Kjj3G/m6tIQc7TI=", - "requires": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://r.cnpmjs.org/nopt/download/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://r.cnpmjs.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz", - "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/normalize-path/download/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://r.cnpmjs.org/normalize-url/download/normalize-url-4.5.1.tgz", - "integrity": "sha1-DdkM8SiO4dExO4cIHJpZMu5IUYo=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://r.cnpmjs.org/object-assign/download/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://r.cnpmjs.org/once/download/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://r.cnpmjs.org/p-cancelable/download/p-cancelable-1.1.0.tgz", - "integrity": "sha1-0HjRWjr0CSIMiG8dmgyi5EGrJsw=" - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://r.cnpmjs.org/package-json/download/package-json-6.5.0.tgz", - "integrity": "sha1-b+7ayjXnVyWHbQsOZJdGl/7RRbA=", - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://r.cnpmjs.org/parse-json/download/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://r.cnpmjs.org/path-exists/download/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://r.cnpmjs.org/path-parse/download/path-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://r.cnpmjs.org/path-type/download/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "peek-readable": { - "version": "3.1.3", - "resolved": "https://r.cnpmjs.org/peek-readable/download/peek-readable-3.1.3.tgz", - "integrity": "sha1-kySA1Gz2qlU8RsaFZsT7aags0rE=", - "dev": true - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://r.cnpmjs.org/picomatch/download/picomatch-2.3.0.tgz", - "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://r.cnpmjs.org/pinkie/download/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://r.cnpmjs.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/prepend-http/download/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "pstree.remy": { - "version": "1.1.8", - "resolved": "https://r.cnpmjs.org/pstree.remy/download/pstree.remy-1.1.8.tgz", - "integrity": "sha1-wkIiT0pnwh9oaDm720rCgrg3PTo=" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://r.cnpmjs.org/pupa/download/pupa-2.1.1.tgz", - "integrity": "sha1-9ej9SvwsXZeCj6pSNUnth0SiDWI=", - "requires": { - "escape-goat": "^2.0.0" - } - }, - "random-bytes": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/random-bytes/download/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" - }, - "rc": { - "version": "1.2.8", - "resolved": "https://r.cnpmjs.org/rc/download/rc-1.2.8.tgz", - "integrity": "sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://r.cnpmjs.org/read-pkg/download/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://r.cnpmjs.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readable-web-to-node-stream": { - "version": "3.0.1", - "resolved": "https://r.cnpmjs.org/readable-web-to-node-stream/download/readable-web-to-node-stream-3.0.1.tgz", - "integrity": "sha1-P2GbG8Xdc6TP5cX5tPb6ulXf+EU=", - "dev": true, - "requires": { - "@types/readable-stream": "^2.3.9", - "readable-stream": "^3.6.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://r.cnpmjs.org/readdirp/download/readdirp-3.6.0.tgz", - "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", - "requires": { - "picomatch": "^2.2.1" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/redent/download/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://r.cnpmjs.org/registry-auth-token/download/registry-auth-token-4.2.1.tgz", - "integrity": "sha1-bXtABkQZGJcszV/tzUHcMix5slA=", - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://r.cnpmjs.org/registry-url/download/registry-url-5.1.0.tgz", - "integrity": "sha1-6YM0tQ1UNLgRNrROxjjZwgCcUAk=", - "requires": { - "rc": "^1.2.8" - } - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://r.cnpmjs.org/repeating/download/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://r.cnpmjs.org/resolve/download/resolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/responselike/download/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://r.cnpmjs.org/rimraf/download/rimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://r.cnpmjs.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://r.cnpmjs.org/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://r.cnpmjs.org/semver-diff/download/semver-diff-3.1.1.tgz", - "integrity": "sha1-Bfd85Z8yXgDicGr9Z7tQbdscoys=", - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://r.cnpmjs.org/setprototypeof/download/setprototypeof-1.2.0.tgz", - "integrity": "sha1-ZsmiSnP5/CjL5msJ/tPTPcrxtCQ=" - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://r.cnpmjs.org/shellwords/download/shellwords-0.1.1.tgz", - "integrity": "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=", - "dev": true, - "peer": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://r.cnpmjs.org/signal-exit/download/signal-exit-3.0.3.tgz", - "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://r.cnpmjs.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://r.cnpmjs.org/source-map-support/download/source-map-support-0.5.19.tgz", - "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://r.cnpmjs.org/spdx-correct/download/spdx-correct-3.1.1.tgz", - "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://r.cnpmjs.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz", - "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://r.cnpmjs.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://r.cnpmjs.org/spdx-license-ids/download/spdx-license-ids-3.0.9.tgz", - "integrity": "sha1-illRNd75WSvaaXCUdPHL7qfCRn8=", - "dev": true - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://r.cnpmjs.org/statuses/download/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://r.cnpmjs.org/string_decoder/download/string_decoder-1.3.0.tgz", - "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://r.cnpmjs.org/string-width/download/string-width-4.2.2.tgz", - "integrity": "sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://r.cnpmjs.org/strip-ansi/download/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/strip-bom/download/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://r.cnpmjs.org/strip-indent/download/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://r.cnpmjs.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "strtok3": { - "version": "6.0.8", - "resolved": "https://r.cnpmjs.org/strtok3/download/strtok3-6.0.8.tgz", - "integrity": "sha1-yDkVf2FcELoPSuNQZ9rZlZ7so0Y=", - "dev": true, - "requires": { - "@tokenizer/token": "^0.1.1", - "@types/debug": "^4.1.5", - "peek-readable": "^3.1.3" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://r.cnpmjs.org/supports-color/download/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "requires": { - "has-flag": "^3.0.0" - } - }, - "term-size": { - "version": "2.2.1", - "resolved": "https://r.cnpmjs.org/term-size/download/term-size-2.2.1.tgz", - "integrity": "sha1-KmpUhAQywvtjIP6g9BVTHpAYn1Q=" - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/to-readable-stream/download/to-readable-stream-1.0.0.tgz", - "integrity": "sha1-zgqgwvPfat+FLvtASng+d8BHV3E=" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://r.cnpmjs.org/to-regex-range/download/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/toidentifier/download/toidentifier-1.0.0.tgz", - "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=" - }, - "token-types": { - "version": "2.1.1", - "resolved": "https://r.cnpmjs.org/token-types/download/token-types-2.1.1.tgz", - "integrity": "sha1-vVhdZJAqr3ILiXnSV7S4ULTUXEU=", - "dev": true, - "requires": { - "@tokenizer/token": "^0.1.1", - "ieee754": "^1.2.1" - } - }, - "touch": { - "version": "3.1.0", - "resolved": "https://r.cnpmjs.org/touch/download/touch-3.1.0.tgz", - "integrity": "sha1-/jZfX3XsntTlaCXgu3bSSrdK+Ds=", - "requires": { - "nopt": "~1.0.10" - } - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://r.cnpmjs.org/tree-kill/download/tree-kill-1.2.2.tgz", - "integrity": "sha1-TKCakJLIi3OnzcXooBtQeweQoMw=", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://r.cnpmjs.org/trim-newlines/download/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "ts-node": { - "version": "9.1.1", - "resolved": "https://r.cnpmjs.org/ts-node/download/ts-node-9.1.1.tgz", - "integrity": "sha1-UamkUKPpWUAb2l8ASnLVS5NtN20=", - "dev": true, - "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "ts-node-dev": { - "version": "1.1.6", - "resolved": "https://r.cnpmjs.org/ts-node-dev/download/ts-node-dev-1.1.6.tgz", - "integrity": "sha1-7iETcYy1qSwcj0IpEjrWr766Afg=", - "dev": true, - "requires": { - "chokidar": "^3.5.1", - "dateformat": "~1.0.4-1.2.3", - "dynamic-dedupe": "^0.3.0", - "minimist": "^1.2.5", - "mkdirp": "^1.0.4", - "resolve": "^1.0.0", - "rimraf": "^2.6.1", - "source-map-support": "^0.5.12", - "tree-kill": "^1.2.2", - "ts-node": "^9.0.0", - "tsconfig": "^7.0.0" - } - }, - "tsconfig": { - "version": "7.0.0", - "resolved": "https://r.cnpmjs.org/tsconfig/download/tsconfig-7.0.0.tgz", - "integrity": "sha1-hFOIdaTcIW5cSlQys6Tew9VOkbc=", - "dev": true, - "requires": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/strip-bom/download/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } - }, - "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://r.cnpmjs.org/tsconfig-paths/download/tsconfig-paths-3.9.0.tgz", - "integrity": "sha1-CYVHpsREiAfo/Ljq4IEGTumjyQs=", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/strip-bom/download/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://r.cnpmjs.org/type-fest/download/type-fest-0.8.1.tgz", - "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://r.cnpmjs.org/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.3.2", - "resolved": "https://r.cnpmjs.org/typescript/download/typescript-4.3.2.tgz", - "integrity": "sha1-OZqxiqxFgC1vJJjeUFT8u+cWqAU=", - "dev": true, - "peer": true - }, - "uid-safe": { - "version": "2.1.5", - "resolved": "https://r.cnpmjs.org/uid-safe/download/uid-safe-2.1.5.tgz", - "integrity": "sha1-Kz1cckDo/C5Y+Komnl7knAhXvTo=", - "requires": { - "random-bytes": "~1.0.0" - } - }, - "undefsafe": { - "version": "2.0.3", - "resolved": "https://r.cnpmjs.org/undefsafe/download/undefsafe-2.0.3.tgz", - "integrity": "sha1-axZucJStRjE7IgLafsws18xueq4=", - "requires": { - "debug": "^2.2.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://r.cnpmjs.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://r.cnpmjs.org/unique-string/download/unique-string-2.0.0.tgz", - "integrity": "sha1-OcZFH4GvsnSd4rIz4/fF6IQ72J0=", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "update-notifier": { - "version": "4.1.3", - "resolved": "https://r.cnpmjs.org/update-notifier/download/update-notifier-4.1.3.tgz", - "integrity": "sha1-vobuE+jOSPtQBD/3IFe1vVmOHqM=", - "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://r.cnpmjs.org/url-parse-lax/download/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://r.cnpmjs.org/uuid/download/uuid-8.3.2.tgz", - "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=", - "dev": true, - "peer": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://r.cnpmjs.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://r.cnpmjs.org/which/download/which-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dev": true, - "peer": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://r.cnpmjs.org/widest-line/download/widest-line-3.1.0.tgz", - "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", - "requires": { - "string-width": "^4.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://r.cnpmjs.org/wrappy/download/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://r.cnpmjs.org/write-file-atomic/download/write-file-atomic-3.0.3.tgz", - "integrity": "sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://r.cnpmjs.org/xdg-basedir/download/xdg-basedir-4.0.0.tgz", - "integrity": "sha1-S8jZmEQDaWIl74OhVzy7y0552xM=" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://r.cnpmjs.org/xtend/download/xtend-4.0.2.tgz", - "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://r.cnpmjs.org/yallist/download/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" - }, - "yn": { - "version": "3.1.1", - "resolved": "https://r.cnpmjs.org/yn/download/yn-3.1.1.tgz", - "integrity": "sha1-HodAGgnXZ8HV6rJqbkwYUYLS61A=", - "dev": true - } - } -} diff --git a/package.json b/package.json index 94a0811..7663884 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,10 @@ "private": true, "main": "index.js", "scripts": { - "init": "npx ts-node --project ./tsconfig.json -r tsconfig-paths/register source/db/init.ts alter", - "start": "npx ts-node-dev --project ./tsconfig.json -r tsconfig-paths/register ./source/main.ts", - "dev": "nodemon --exec 'npx ts-node --project ./tsconfig.json -r tsconfig-paths/register ./source/main.ts'" + "init": "ts-node --respawn --project ./tsconfig.json -r tsconfig-paths/register source/db/init.ts alter", + "start": "ts-node-dev --respawn --project ./tsconfig.json -r tsconfig-paths/register ./source/main.ts", + "dev": "npm start", + "deva": "nodemon --exec 'ts-node --project ./tsconfig.json -r tsconfig-paths/register ./source/main.ts'" }, "keywords": [], "author": "", @@ -16,6 +17,8 @@ "@hapi/cookie": "^11.0.2", "@hapi/hapi": "^20.1.2", "@hapi/inert": "^6.0.3", + "@types/hapi__hapi": "^20.0.10", + "@types/hapi__vision": "^5.5.3", "bcrypt": "^5.0.1", "hapi-auth-jwt2": "^10.2.0", "hapi-swagger": "^14.2.0", @@ -30,10 +33,11 @@ }, "devDependencies": { "@hapi/vision": "^6.1.0", - "@noderun/hapi-router": "link:packages/hapi-router", + "@noderun/hapi-router": "link:packages\\hapi-router", "dotenv": "^10.0.0", "ejs": "^3.1.6", "file-type": "^16.5.0", + "log4js": "^6.4.1", "ts-node": "^10.0.0", "ts-node-dev": "^1.1.6", "tsconfig-paths": "^3.9.0", diff --git a/packages/hapi-router/dist/hapi-router.cjs.js b/packages/hapi-router/dist/hapi-router.cjs.js index 1308360..f5f3074 100644 --- a/packages/hapi-router/dist/hapi-router.cjs.js +++ b/packages/hapi-router/dist/hapi-router.cjs.js @@ -52,6 +52,29 @@ function __values(o) { } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +} + +function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; +} + +function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; } var path$1 = require("path"); @@ -255,10 +278,10 @@ var routePlugin = (function () { } var str = route; if (options_1.auth) { - str += " 该路由需要权限"; + str = " 需要权限: " + " " + full(method) + " " + str; } else { - str += " 该路由不需要权限"; + str = " 不需权限: " + " " + full(method) + " " + str; } routes.push(str); server.route({ @@ -285,6 +308,14 @@ var routePlugin = (function () { }; return routePlugin; }()); +function full(str, length) { + if (length === void 0) { length = 10; } + var len = str.length; + var need = length - len; + if (need <= 0) + return str; + return str + __spread(Array(need)).map(function (v, i) { return " "; }).join(""); +} var plugin = new routePlugin(); exports.auth = auth; diff --git a/packages/hapi-router/dist/hapi-router.cjs.js.map b/packages/hapi-router/dist/hapi-router.cjs.js.map index b742164..e8e94fe 100644 --- a/packages/hapi-router/dist/hapi-router.cjs.js.map +++ b/packages/hapi-router/dist/hapi-router.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"hapi-router.cjs.js","sources":["../src/util/index.ts","../src/util/decorators.ts","../src/index.ts"],"sourcesContent":["// @ts-nocheck\n\nconst path = require(\"path\")\nconst fs = require(\"fs\")\n\nexport function removeIndex(ss:any) {\n const remove = (str:any) => {\n if (str.endsWith(\"/index\")) {\n return str.slice(0, -6);\n }\n if (str.endsWith(\"index\")) {\n return str.slice(0, -5);\n }\n return str ? str : \"/\";\n };\n let r = true;\n let rr = ss;\n while (r) {\n if (rr.endsWith(\"/index\")) {\n rr = remove(rr);\n } else {\n r = false;\n }\n }\n return rr ? rr : \"/\";\n}\n\nexport function isIndexEnd(str:any) {\n return str.length == 1 && str.endsWith(\"/\");\n}\n\n\nexport function walkDir(\n filePath:any,\n exclude = [\"node_modules\", \"^_\", \".git\", \".idea\", \".gitignore\", \"client\",\"\\.txt$\"]\n) {\n let files:any[] = [];\n function Data(opts:any) {\n this.relativeDir = opts.relativeDir;\n this.relativeFile = opts.relativeFile;\n this.filename = opts.filename;\n this.file = opts.file;\n this.absoluteFile = opts.absoluteFile;\n this.relativeFileNoExt = opts.relativeFileNoExt;\n this.absoluteDir = opts.absoluteDir;\n }\n function readDir(filePath, dirname = \".\") {\n let res = fs.readdirSync(filePath);\n res.forEach((filename) => {\n const filepath = path.resolve(filePath, filename);\n const stat = fs.statSync(filepath);\n const name = filepath.split(path.sep).slice(-1)[0];\n if (typeof exclude === \"string\" && new RegExp(exclude).test(name)) {\n return;\n }\n if (Array.isArray(exclude)) {\n for (let i = 0; i < exclude.length; i++) {\n const excludeItem = exclude[i];\n if (new RegExp(excludeItem).test(name)) {\n return;\n }\n }\n }\n if (!stat.isFile()) {\n readDir(filepath, dirname + path.sep + name);\n } else {\n const data = new Data({\n relativeDir: dirname,\n relativeFile: dirname + path.sep + path.parse(filepath).base,\n relativeFileNoExt: dirname + path.sep + path.parse(filepath).name,\n file: path.parse(filepath).base,\n filename: path.parse(filepath).name,\n absoluteFile: filepath,\n absoluteDir: path.parse(filepath).dir,\n });\n files.push(data);\n }\n });\n }\n readDir(filePath);\n return files;\n}\n","// @ts-nocheck\n\nexport function method(opts?:string|Array) {\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\n target[propertyKey].$method = opts\n }\n}\nexport function route(route?:string) {\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\n target[propertyKey].$route = route\n }\n}\n\nexport function config(options:Object) {\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\n target[propertyKey].$options = options\n }\n}\n\nexport function auth(isAuth:boolean = true) {\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\n target[propertyKey].$auth = isAuth\n }\n}\n\nexport function validate(validate:Object) {\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\n target[propertyKey].$validate = validate\n }\n}\n\nexport function swagger(desc,notes,tags) {\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\n target[propertyKey].$swagger = [desc,notes,tags]\n }\n}\n","// @ts-nocheck\n\nimport { walkDir, removeIndex, isIndexEnd } from \"./util\";\nimport * as Joi from \"joi\";\nconst path = require(\"path\")\nconst fs = require(\"fs\")\n\nconst routes = [\"所有路由路径:\"];\n\nclass routePlugin {\n public name: string = \"routePlugin\";\n public version: string = \"0.0.1\";\n public register(server: any, options: any) {\n const sourceDir = options.sourceDir;\n const type = options.type || \"jwt\";\n\n const files = walkDir(sourceDir);\n files.forEach((file) => {\n let filename = file.relativeFileNoExt;\n let array = filename.split(path.sep).slice(1);\n let fileNoExt = removeIndex(\"/\" + array.join(\"/\"));\n const moduleName = path.resolve(sourceDir, filename);\n const obj = require(moduleName);\n if (obj.default) {\n const func = new (obj.default || obj)();\n const prototype = Object.getPrototypeOf(func);\n const keys = Reflect.ownKeys(prototype);\n for (const key of keys) {\n if (key !== \"constructor\") {\n let ff = func[key];\n // 默认方法\n const method = ff.$method || \"GET\";\n // 路由收集规则\n let route = \"\";\n if (ff.$route) {\n if (isIndexEnd(fileNoExt)) {\n route = ff.$route;\n } else {\n route = fileNoExt + ff.$route;\n }\n } else {\n if (isIndexEnd(fileNoExt)) {\n route = fileNoExt + key.toString();\n } else {\n route = fileNoExt + \"/\" + key.toString();\n }\n }\n route = removeIndex(route);\n // 配置规则\n const options = ff.$options ? ff.$options : {};\n if (!options.auth) {\n if (ff.$auth == undefined) {\n if (route.startsWith(\"/api\")) {\n options.auth = type;\n } else {\n options.auth = false;\n }\n } else if (ff.$auth) {\n options.auth = type;\n } else {\n options.auth = false;\n }\n }\n if (!options.validate) {\n let validateObj = ff.$validate || {};\n if(options.auth&&type === \"jwt\"){\n if (validateObj.headers) {\n validateObj.headers = validateObj.headers.keys({\n Authorization: Joi.string(),\n })\n }else{\n validateObj.headers = Joi.object({\n headers: Joi.object({\n Authorization: Joi.string(),\n }).unknown(), // 注意加上这个\n })\n }\n }\n if (validateObj) {\n options.validate = validateObj;\n }\n }\n // && route.startsWith(\"/api\")\n if (ff.$swagger) {\n options.description = ff.$swagger[0];\n options.notes = ff.$swagger[1];\n options.tags = ff.$swagger[2];\n }\n let str = route;\n if (options.auth) {\n str += \" 该路由需要权限\";\n } else {\n str += \" 该路由不需要权限\";\n }\n routes.push(str);\n server.route({\n method: method,\n path: route,\n handler: ff,\n options: options,\n });\n }\n }\n }\n });\n fs.writeFileSync(path.resolve(sourceDir, \"route.txt\"), routes.join(\"\\n\"), {\n encoding: \"utf-8\",\n });\n }\n}\n\nconst plugin = new routePlugin();\n\nexport { plugin };\nexport * from \"./util/decorators\";\n"],"names":["path","fs","Joi"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"hapi-router.cjs.js","sources":["../src/util/index.ts","../src/util/decorators.ts","../src/index.ts"],"sourcesContent":["// @ts-nocheck\r\n\r\nconst path = require(\"path\")\r\nconst fs = require(\"fs\")\r\n\r\nexport function removeIndex(ss:any) {\r\n const remove = (str:any) => {\r\n if (str.endsWith(\"/index\")) {\r\n return str.slice(0, -6);\r\n }\r\n if (str.endsWith(\"index\")) {\r\n return str.slice(0, -5);\r\n }\r\n return str ? str : \"/\";\r\n };\r\n let r = true;\r\n let rr = ss;\r\n while (r) {\r\n if (rr.endsWith(\"/index\")) {\r\n rr = remove(rr);\r\n } else {\r\n r = false;\r\n }\r\n }\r\n return rr ? rr : \"/\";\r\n}\r\n\r\nexport function isIndexEnd(str:any) {\r\n return str.length == 1 && str.endsWith(\"/\");\r\n}\r\n\r\n\r\nexport function walkDir(\r\n filePath:any,\r\n exclude = [\"node_modules\", \"^_\", \".git\", \".idea\", \".gitignore\", \"client\",\"\\.txt$\"]\r\n) {\r\n let files:any[] = [];\r\n function Data(opts:any) {\r\n this.relativeDir = opts.relativeDir;\r\n this.relativeFile = opts.relativeFile;\r\n this.filename = opts.filename;\r\n this.file = opts.file;\r\n this.absoluteFile = opts.absoluteFile;\r\n this.relativeFileNoExt = opts.relativeFileNoExt;\r\n this.absoluteDir = opts.absoluteDir;\r\n }\r\n function readDir(filePath, dirname = \".\") {\r\n let res = fs.readdirSync(filePath);\r\n res.forEach((filename) => {\r\n const filepath = path.resolve(filePath, filename);\r\n const stat = fs.statSync(filepath);\r\n const name = filepath.split(path.sep).slice(-1)[0];\r\n if (typeof exclude === \"string\" && new RegExp(exclude).test(name)) {\r\n return;\r\n }\r\n if (Array.isArray(exclude)) {\r\n for (let i = 0; i < exclude.length; i++) {\r\n const excludeItem = exclude[i];\r\n if (new RegExp(excludeItem).test(name)) {\r\n return;\r\n }\r\n }\r\n }\r\n if (!stat.isFile()) {\r\n readDir(filepath, dirname + path.sep + name);\r\n } else {\r\n const data = new Data({\r\n relativeDir: dirname,\r\n relativeFile: dirname + path.sep + path.parse(filepath).base,\r\n relativeFileNoExt: dirname + path.sep + path.parse(filepath).name,\r\n file: path.parse(filepath).base,\r\n filename: path.parse(filepath).name,\r\n absoluteFile: filepath,\r\n absoluteDir: path.parse(filepath).dir,\r\n });\r\n files.push(data);\r\n }\r\n });\r\n }\r\n readDir(filePath);\r\n return files;\r\n}\r\n","// @ts-nocheck\r\n\r\nexport function method(opts?:string|Array) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$method = opts\r\n }\r\n}\r\nexport function route(route?:string) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$route = route\r\n }\r\n}\r\n\r\nexport function config(options:Object) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$options = options\r\n }\r\n}\r\n\r\nexport function auth(isAuth:boolean = true) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$auth = isAuth\r\n }\r\n}\r\n\r\nexport function validate(validate:Object) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$validate = validate\r\n }\r\n}\r\n\r\nexport function swagger(desc,notes,tags) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$swagger = [desc,notes,tags]\r\n }\r\n}\r\n","// @ts-nocheck\r\n\r\nimport { walkDir, removeIndex, isIndexEnd } from \"./util\";\r\nimport * as Joi from \"joi\";\r\nconst path = require(\"path\")\r\nconst fs = require(\"fs\")\r\n\r\nconst routes = [\"所有路由路径:\"];\r\n\r\nclass routePlugin {\r\n public name: string = \"routePlugin\";\r\n public version: string = \"0.0.1\";\r\n public register(server: any, options: any) {\r\n const sourceDir = options.sourceDir;\r\n const type = options.type || \"jwt\";\r\n\r\n const files = walkDir(sourceDir);\r\n files.forEach((file) => {\r\n let filename = file.relativeFileNoExt;\r\n let array = filename.split(path.sep).slice(1);\r\n let fileNoExt = removeIndex(\"/\" + array.join(\"/\"));\r\n const moduleName = path.resolve(sourceDir, filename);\r\n const obj = require(moduleName);\r\n if (obj.default) {\r\n const func = new (obj.default || obj)();\r\n const prototype = Object.getPrototypeOf(func);\r\n const keys = Reflect.ownKeys(prototype);\r\n for (const key of keys) {\r\n if (key !== \"constructor\") {\r\n let ff = func[key];\r\n // 默认方法\r\n const method = ff.$method || \"GET\";\r\n // 路由收集规则\r\n let route = \"\";\r\n if (ff.$route) {\r\n if (isIndexEnd(fileNoExt)) {\r\n route = ff.$route;\r\n } else {\r\n route = fileNoExt + ff.$route;\r\n }\r\n } else {\r\n if (isIndexEnd(fileNoExt)) {\r\n route = fileNoExt + key.toString();\r\n } else {\r\n route = fileNoExt + \"/\" + key.toString();\r\n }\r\n }\r\n route = removeIndex(route);\r\n // 配置规则\r\n const options = ff.$options ? ff.$options : {};\r\n if (!options.auth) {\r\n if (ff.$auth == undefined) {\r\n if (route.startsWith(\"/api\")) {\r\n options.auth = type;\r\n } else {\r\n options.auth = false;\r\n }\r\n } else if (ff.$auth) {\r\n options.auth = type;\r\n } else {\r\n options.auth = false;\r\n }\r\n }\r\n if (!options.validate) {\r\n let validateObj = ff.$validate || {};\r\n if(options.auth&&type === \"jwt\"){\r\n if (validateObj.headers) {\r\n validateObj.headers = validateObj.headers.keys({\r\n Authorization: Joi.string(),\r\n })\r\n }else{\r\n validateObj.headers = Joi.object({\r\n headers: Joi.object({\r\n Authorization: Joi.string(),\r\n }).unknown(), // 注意加上这个\r\n })\r\n }\r\n }\r\n if (validateObj) {\r\n options.validate = validateObj;\r\n }\r\n }\r\n // && route.startsWith(\"/api\")\r\n if (ff.$swagger) {\r\n options.description = ff.$swagger[0];\r\n options.notes = ff.$swagger[1];\r\n options.tags = ff.$swagger[2];\r\n }\r\n let str = route;\r\n if (options.auth) {\r\n str = \" 需要权限: \"+ \" \"+full(method)+\" \" + str;\r\n } else {\r\n str = \" 不需权限: \"+ \" \"+full(method)+\" \" + str;\r\n }\r\n routes.push(str);\r\n server.route({\r\n method: method,\r\n path: route,\r\n handler: ff,\r\n options: options,\r\n });\r\n }\r\n }\r\n }\r\n });\r\n fs.writeFileSync(path.resolve(sourceDir, \"route.txt\"), routes.join(\"\\n\"), {\r\n encoding: \"utf-8\",\r\n });\r\n }\r\n}\r\n\r\nfunction full(str: string, length=10) {\r\n let len = str.length;\r\n let need = length - len;\r\n if(need <= 0) return str \r\n return str+[...Array(need)].map((v,i)=>\" \").join(\"\")\r\n}\r\n\r\nconst plugin = new routePlugin();\r\n\r\nexport { plugin };\r\nexport * from \"./util/decorators\";\r\n"],"names":["path","fs","Joi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,MAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,IAAMC,IAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;SAER,WAAW,CAAC,EAAM;IAChC,IAAM,MAAM,GAAG,UAAC,GAAO;QACrB,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC1B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACzB;QACD,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACzB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACzB;QACD,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,GAAG,IAAI,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACzB,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;SACjB;aAAM;YACL,CAAC,GAAG,KAAK,CAAC;SACX;KACF;IACD,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;AACvB,CAAC;SAEe,UAAU,CAAC,GAAO;IAChC,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;SAGe,OAAO,CACrB,QAAY,EACZ,OAAkF;IAAlF,wBAAA,EAAA,WAAW,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAC,QAAQ,CAAC;IAElF,IAAI,KAAK,GAAS,EAAE,CAAC;IACrB,SAAS,IAAI,CAAC,IAAQ;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;KACrC;IACD,SAAS,OAAO,CAAC,QAAQ,EAAE,OAAa;QAAb,wBAAA,EAAA,aAAa;QACtC,IAAI,GAAG,GAAGA,IAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnC,GAAG,CAAC,OAAO,CAAC,UAAC,QAAQ;YACnB,IAAM,QAAQ,GAAGD,MAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAClD,IAAM,IAAI,GAAGC,IAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAACD,MAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACjE,OAAO;aACR;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACvC,IAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBACtC,OAAO;qBACR;iBACF;aACF;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;gBAClB,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAGA,MAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;aAC9C;iBAAM;gBACL,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC;oBACpB,WAAW,EAAE,OAAO;oBACpB,YAAY,EAAE,OAAO,GAAGA,MAAI,CAAC,GAAG,GAAGA,MAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI;oBAC5D,iBAAiB,EAAE,OAAO,GAAGA,MAAI,CAAC,GAAG,GAAGA,MAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI;oBACjE,IAAI,EAAEA,MAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI;oBAC/B,QAAQ,EAAEA,MAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI;oBACnC,YAAY,EAAE,QAAQ;oBACtB,WAAW,EAAEA,MAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG;iBACtC,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClB;SACF,CAAC,CAAC;KACJ;IACD,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC;AACf;;SC/EgB,MAAM,CAAC,IAA0B;IAC7C,OAAO,UAAU,MAAM,EAAE,WAAmB,EAAE,UAA8B;QACxE,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,GAAG,IAAI,CAAA;KACrC,CAAA;AACL,CAAC;SACe,KAAK,CAAC,KAAa;IAC/B,OAAO,UAAU,MAAM,EAAE,WAAmB,EAAE,UAA8B;QACxE,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,KAAK,CAAA;KACrC,CAAA;AACL,CAAC;SAEe,MAAM,CAAC,OAAc;IACjC,OAAO,UAAU,MAAM,EAAE,WAAmB,EAAE,UAA8B;QACxE,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAA;KACzC,CAAA;AACL,CAAC;SAEe,IAAI,CAAC,MAAqB;IAArB,uBAAA,EAAA,aAAqB;IACtC,OAAO,UAAU,MAAM,EAAE,WAAmB,EAAE,UAA8B;QACxE,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,MAAM,CAAA;KACrC,CAAA;AACL,CAAC;SAEe,QAAQ,CAAC,QAAe;IACpC,OAAO,UAAU,MAAM,EAAE,WAAmB,EAAE,UAA8B;QACxE,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAA;KAC3C,CAAA;AACL,CAAC;SAEe,OAAO,CAAC,IAAI,EAAC,KAAK,EAAC,IAAI;IACnC,OAAO,UAAU,MAAM,EAAE,WAAmB,EAAE,UAA8B;QACxE,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAC,KAAK,EAAC,IAAI,CAAC,CAAA;KACnD,CAAA;AACL;;AC/BA,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,IAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAExB,IAAM,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC;AAE3B;IAAA;QACS,SAAI,GAAW,aAAa,CAAC;QAC7B,YAAO,GAAW,OAAO,CAAC;KAkGlC;IAjGQ,8BAAQ,GAAf,UAAgB,MAAW,EAAE,OAAY;QACvC,IAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;QAEnC,IAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACjC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;;YACjB,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACtC,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,SAAS,GAAG,WAAW,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACnD,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrD,IAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YAChC,IAAI,GAAG,CAAC,OAAO,EAAE;gBACf,IAAM,IAAI,GAAG,KAAK,GAAG,CAAC,OAAO,IAAI,GAAG,GAAG,CAAC;gBACxC,IAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;;oBACxC,KAAkB,IAAA,SAAA,SAAA,IAAI,CAAA,0BAAA,4CAAE;wBAAnB,IAAM,GAAG,iBAAA;wBACZ,IAAI,GAAG,KAAK,aAAa,EAAE;4BACzB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;4BAEnB,IAAM,MAAM,GAAG,EAAE,CAAC,OAAO,IAAI,KAAK,CAAC;4BAEnC,IAAI,KAAK,GAAG,EAAE,CAAC;4BACf,IAAI,EAAE,CAAC,MAAM,EAAE;gCACb,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE;oCACzB,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC;iCACnB;qCAAM;oCACL,KAAK,GAAG,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC;iCAC/B;6BACF;iCAAM;gCACL,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE;oCACzB,KAAK,GAAG,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;iCACpC;qCAAM;oCACL,KAAK,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;iCAC1C;6BACF;4BACD,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;4BAE3B,IAAM,SAAO,GAAG,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;4BAC/C,IAAI,CAAC,SAAO,CAAC,IAAI,EAAE;gCACjB,IAAI,EAAE,CAAC,KAAK,IAAI,SAAS,EAAE;oCACzB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;wCAC5B,SAAO,CAAC,IAAI,GAAG,IAAI,CAAC;qCACrB;yCAAM;wCACL,SAAO,CAAC,IAAI,GAAG,KAAK,CAAC;qCACtB;iCACF;qCAAM,IAAI,EAAE,CAAC,KAAK,EAAE;oCACnB,SAAO,CAAC,IAAI,GAAG,IAAI,CAAC;iCACrB;qCAAM;oCACL,SAAO,CAAC,IAAI,GAAG,KAAK,CAAC;iCACtB;6BACF;4BACD,IAAI,CAAC,SAAO,CAAC,QAAQ,EAAE;gCACrB,IAAI,WAAW,GAAG,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC;gCACrC,IAAG,SAAO,CAAC,IAAI,IAAE,IAAI,KAAK,KAAK,EAAC;oCAC9B,IAAI,WAAW,CAAC,OAAO,EAAE;wCACvB,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;4CAC7C,aAAa,EAAEE,cAAG,CAAC,MAAM,EAAE;yCAC5B,CAAC,CAAA;qCACH;yCAAI;wCACH,WAAW,CAAC,OAAO,GAAGA,cAAG,CAAC,MAAM,CAAC;4CAC/B,OAAO,EAAEA,cAAG,CAAC,MAAM,CAAC;gDAClB,aAAa,EAAEA,cAAG,CAAC,MAAM,EAAE;6CAC5B,CAAC,CAAC,OAAO,EAAE;yCACb,CAAC,CAAA;qCACH;iCACF;gCACD,IAAI,WAAW,EAAE;oCACf,SAAO,CAAC,QAAQ,GAAG,WAAW,CAAC;iCAChC;6BACF;4BAED,IAAI,EAAE,CAAC,QAAQ,EAAE;gCACf,SAAO,CAAC,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gCACrC,SAAO,CAAC,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gCAC/B,SAAO,CAAC,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;6BAC/B;4BACD,IAAI,GAAG,GAAG,KAAK,CAAC;4BAChB,IAAI,SAAO,CAAC,IAAI,EAAE;gCAChB,GAAG,GAAG,SAAS,GAAE,GAAG,GAAC,IAAI,CAAC,MAAM,CAAC,GAAC,GAAG,GAAG,GAAG,CAAC;6BAC7C;iCAAM;gCACL,GAAG,GAAG,SAAS,GAAE,GAAG,GAAC,IAAI,CAAC,MAAM,CAAC,GAAC,GAAG,GAAG,GAAG,CAAC;6BAC7C;4BACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACjB,MAAM,CAAC,KAAK,CAAC;gCACX,MAAM,EAAE,MAAM;gCACd,IAAI,EAAE,KAAK;gCACX,OAAO,EAAE,EAAE;gCACX,OAAO,EAAE,SAAO;6BACjB,CAAC,CAAC;yBACJ;qBACF;;;;;;;;;aACF;SACF,CAAC,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;KACJ;IACH,kBAAC;AAAD,CAAC,IAAA;AAED,SAAS,IAAI,CAAC,GAAW,EAAE,MAAS;IAAT,uBAAA,EAAA,WAAS;IAChC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IACrB,IAAI,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC;IACxB,IAAG,IAAI,IAAI,CAAC;QAAE,OAAO,GAAG,CAAA;IACxB,OAAO,GAAG,GAAC,SAAI,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,UAAC,CAAC,EAAC,CAAC,IAAG,OAAA,GAAG,GAAA,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACxD,CAAC;IAEK,MAAM,GAAG,IAAI,WAAW;;;;;;;;;;"} \ No newline at end of file diff --git a/packages/hapi-router/src/index.ts b/packages/hapi-router/src/index.ts index c8f0f85..125ad1d 100755 --- a/packages/hapi-router/src/index.ts +++ b/packages/hapi-router/src/index.ts @@ -88,9 +88,9 @@ class routePlugin { } let str = route; if (options.auth) { - str += " 该路由需要权限"; + str = " 需要权限: "+ " "+full(method)+" " + str; } else { - str += " 该路由不需要权限"; + str = " 不需权限: "+ " "+full(method)+" " + str; } routes.push(str); server.route({ @@ -109,6 +109,13 @@ class routePlugin { } } +function full(str: string, length=10) { + let len = str.length; + let need = length - len; + if(need <= 0) return str + return str+[...Array(need)].map((v,i)=>" ").join("") +} + const plugin = new routePlugin(); export { plugin }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 653b804..71e3835 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,9 @@ specifiers: '@hapi/hapi': ^20.1.2 '@hapi/inert': ^6.0.3 '@hapi/vision': ^6.1.0 - '@noderun/hapi-router': link:packages/hapi-router + '@noderun/hapi-router': link:packages\hapi-router + '@types/hapi__hapi': ^20.0.10 + '@types/hapi__vision': ^5.5.3 bcrypt: ^5.0.1 dotenv: ^10.0.0 ejs: ^3.1.6 @@ -15,6 +17,7 @@ specifiers: joi: ^17.4.0 json-merge-patch: ^1.0.1 jsonwebtoken: ^8.5.1 + log4js: ^6.4.1 multiparty: ^4.2.2 nodemon: ^2.0.7 pug: ^3.0.2 @@ -29,6 +32,8 @@ dependencies: '@hapi/cookie': 11.0.2 '@hapi/hapi': 20.1.4 '@hapi/inert': 6.0.3 + '@types/hapi__hapi': registry.npmmirror.com/@types/hapi__hapi/20.0.10 + '@types/hapi__vision': registry.npmmirror.com/@types/hapi__vision/5.5.3 bcrypt: 5.0.1 hapi-auth-jwt2: 10.2.0 hapi-swagger: 14.2.0_@hapi+hapi@20.1.4+joi@17.4.0 @@ -47,6 +52,7 @@ devDependencies: dotenv: 10.0.0 ejs: 3.1.6 file-type: 16.5.0 + log4js: registry.npmmirror.com/log4js/6.4.1 ts-node: 10.0.0_typescript@4.3.2 ts-node-dev: 1.1.6_typescript@4.3.2 tsconfig-paths: 3.9.0 @@ -86,12 +92,6 @@ packages: '@hapi/hoek': 9.2.0 dev: false - /@hapi/b64/5.0.0: - resolution: {integrity: sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==} - dependencies: - '@hapi/hoek': 9.2.0 - dev: false - /@hapi/boom/9.1.2: resolution: {integrity: sha512-uJEJtiNHzKw80JpngDGBCGAmWjBtzxDCz17A9NO2zCi8LLBlb5Frpq4pXwyN+2JQMod4pKz5BALwyneCgDg89Q==} dependencies: @@ -133,7 +133,7 @@ packages: /@hapi/content/5.0.2: resolution: {integrity: sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==} dependencies: - '@hapi/boom': 9.1.2 + '@hapi/boom': registry.npmmirror.com/@hapi/boom/9.1.2 dev: false /@hapi/cookie/11.0.2: @@ -149,7 +149,7 @@ packages: resolution: {integrity: sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==} engines: {node: '>=12.0.0'} dependencies: - '@hapi/boom': 9.1.2 + '@hapi/boom': registry.npmmirror.com/@hapi/boom/9.1.2 dev: false /@hapi/file/2.0.0: @@ -205,11 +205,11 @@ packages: /@hapi/iron/6.0.0: resolution: {integrity: sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==} dependencies: - '@hapi/b64': 5.0.0 - '@hapi/boom': 9.1.2 - '@hapi/bourne': 2.0.0 - '@hapi/cryptiles': 5.1.0 - '@hapi/hoek': 9.2.0 + '@hapi/b64': registry.npmmirror.com/@hapi/b64/5.0.0 + '@hapi/boom': registry.npmmirror.com/@hapi/boom/9.1.2 + '@hapi/bourne': registry.npmmirror.com/@hapi/bourne/2.0.0 + '@hapi/cryptiles': registry.npmmirror.com/@hapi/cryptiles/5.1.0 + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 dev: false /@hapi/mimos/6.0.0: @@ -223,17 +223,17 @@ packages: resolution: {integrity: sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==} engines: {node: '>=12.0.0'} dependencies: - '@hapi/hoek': 9.2.0 + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 '@hapi/vise': 4.0.0 dev: false /@hapi/pez/5.0.3: resolution: {integrity: sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==} dependencies: - '@hapi/b64': 5.0.0 - '@hapi/boom': 9.1.2 + '@hapi/b64': registry.npmmirror.com/@hapi/b64/5.0.0 + '@hapi/boom': registry.npmmirror.com/@hapi/boom/9.1.2 '@hapi/content': 5.0.2 - '@hapi/hoek': 9.2.0 + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 '@hapi/nigel': 4.0.2 dev: false @@ -302,7 +302,7 @@ packages: /@hapi/vise/4.0.0: resolution: {integrity: sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==} dependencies: - '@hapi/hoek': 9.2.0 + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 dev: false /@hapi/vision/6.1.0: @@ -317,9 +317,9 @@ packages: /@hapi/wreck/17.1.0: resolution: {integrity: sha512-nx6sFyfqOpJ+EFrHX+XWwJAxs3ju4iHdbB/bwR8yTNZOiYmuhA8eCe7lYPtYmb4j7vyK/SlbaQsmTtUrMvPEBw==} dependencies: - '@hapi/boom': 9.1.2 - '@hapi/bourne': 2.0.0 - '@hapi/hoek': 9.2.0 + '@hapi/boom': registry.npmmirror.com/@hapi/boom/9.1.2 + '@hapi/bourne': registry.npmmirror.com/@hapi/bourne/2.0.0 + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 dev: false /@mapbox/node-pre-gyp/1.0.5: @@ -342,7 +342,7 @@ packages: /@sideway/address/4.1.2: resolution: {integrity: sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==} dependencies: - '@hapi/hoek': 9.2.0 + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 dev: false /@sideway/formula/3.0.0: @@ -393,13 +393,10 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - /@types/node/15.12.2: - resolution: {integrity: sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==} - /@types/readable-stream/2.3.10: resolution: {integrity: sha512-xwSXvAv9x4B9Vj88AMZnFyEVLilz1EBxKvRUhGqIF4nJpRQBSTm7jS236X4Y9Y2qPsVvaMxwrGJlNhLHEahlFQ==} dependencies: - '@types/node': 15.12.2 + '@types/node': registry.npmmirror.com/@types/node/15.12.2 safe-buffer: 5.2.1 dev: true @@ -425,7 +422,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.1 + debug: registry.npmmirror.com/debug/4.3.3 transitivePeerDependencies: - supports-color dev: false @@ -713,7 +710,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 /chownr/1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -773,11 +770,6 @@ packages: dev: false optional: true - /commander/2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: false - optional: true - /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} @@ -786,7 +778,7 @@ packages: engines: {node: '>=8'} dependencies: dot-prop: 5.3.0 - graceful-fs: 4.2.6 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 make-dir: 3.1.0 unique-string: 2.0.0 write-file-atomic: 3.0.3 @@ -851,16 +843,10 @@ packages: meow: 3.7.0 dev: true - /debug/2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - dependencies: - ms: 2.0.0 - dev: false - /debug/3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} dependencies: - ms: 2.1.3 + ms: registry.npmmirror.com/ms/2.1.3 dev: false /debug/4.3.1: @@ -872,7 +858,7 @@ packages: supports-color: optional: true dependencies: - ms: 2.1.2 + ms: registry.npmmirror.com/ms/2.1.2 dev: false /decamelize/1.2.0: @@ -1170,17 +1156,11 @@ packages: /fs.realpath/1.0.0: resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - optional: true - /fstream/1.0.12: resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} engines: {node: '>=0.6'} dependencies: - graceful-fs: 4.2.6 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 inherits: 2.0.4 mkdirp: 0.5.5 rimraf: 2.7.1 @@ -1277,9 +1257,6 @@ packages: url-parse-lax: 3.0.0 dev: false - /graceful-fs/4.2.6: - resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} - /handlebars/4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} engines: {node: '>=0.4.7'} @@ -1290,7 +1267,7 @@ packages: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.13.9 + uglify-js: registry.npmmirror.com/uglify-js/3.13.9 dev: false /hapi-auth-jwt2/10.2.0: @@ -1408,7 +1385,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.1 + debug: registry.npmmirror.com/debug/4.3.3 transitivePeerDependencies: - supports-color dev: false @@ -1731,7 +1708,7 @@ packages: resolution: {integrity: sha512-lByoCHZ6H2zgb6NtsXIqtzQ+6Ji7iVqnrhWxsXLhF+gXmgu6E8+ErpDxCMR439MUG1nfMjWI2HAoM8l0XgSNhw==} dependencies: call-me-maybe: 1.0.1 - debug: 3.2.7 + debug: registry.npmmirror.com/debug/3.2.7 js-yaml: 3.14.1 ono: 4.0.11 dev: false @@ -1832,7 +1809,7 @@ packages: resolution: {integrity: sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=} engines: {node: '>=0.10.0'} dependencies: - graceful-fs: 4.2.6 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 parse-json: 2.2.0 pify: 2.3.0 pinkie-promise: 2.0.1 @@ -1994,7 +1971,7 @@ packages: resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==} hasBin: true dependencies: - minimist: 1.2.5 + minimist: registry.npmmirror.com/minimist/1.2.5 dev: false /mkdirp/1.0.4: @@ -2012,14 +1989,6 @@ packages: resolution: {integrity: sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==} dev: false - /ms/2.0.0: - resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} - dev: false - - /ms/2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: false - /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: false @@ -2038,7 +2007,7 @@ packages: engines: {node: '>= 4.4.x'} hasBin: true dependencies: - debug: 3.2.7 + debug: registry.npmmirror.com/debug/3.2.7 iconv-lite: 0.4.24 sax: 1.2.4 dev: false @@ -2056,26 +2025,6 @@ packages: engines: {node: 4.x || >=6.0.0} dev: false - /node-gyp/3.8.0: - resolution: {integrity: sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==} - engines: {node: '>= 0.8.0'} - hasBin: true - dependencies: - fstream: 1.0.12 - glob: 7.1.7 - graceful-fs: 4.2.6 - mkdirp: 0.5.5 - nopt: 3.0.6 - npmlog: 4.1.2 - osenv: 0.1.5 - request: 2.88.2 - rimraf: 2.7.1 - semver: 5.3.0 - tar: 2.2.2 - which: 1.3.1 - dev: false - optional: true - /node-pre-gyp/0.11.0: resolution: {integrity: sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==} deprecated: 'Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future' @@ -2296,7 +2245,7 @@ packages: resolution: {integrity: sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=} engines: {node: '>=0.10.0'} dependencies: - graceful-fs: 4.2.6 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 pify: 2.3.0 pinkie-promise: 2.0.1 dev: true @@ -2484,7 +2433,7 @@ packages: dependencies: deep-extend: 0.6.0 ini: 1.3.8 - minimist: 1.2.5 + minimist: registry.npmmirror.com/minimist/1.2.5 strip-json-comments: 2.0.1 dev: false @@ -2794,7 +2743,7 @@ packages: node-addon-api: 3.2.1 node-pre-gyp: 0.11.0 optionalDependencies: - node-gyp: 3.8.0 + node-gyp: registry.npmmirror.com/node-gyp/3.8.0 dev: false /sshpk/1.16.1: @@ -2947,7 +2896,7 @@ packages: resolution: {integrity: sha512-hKslog8LhsXICJ1sMLsA8b8hQ3oUEX0457aLCFJc4zz6m8drmnCtyjbVqS5HycaKFOKVolJc2wFoe8KDPWfp4g==} dependencies: call-me-maybe: 1.0.1 - debug: 3.2.7 + debug: registry.npmmirror.com/debug/3.2.7 json-schema-ref-parser: 4.1.1 ono: 4.0.11 swagger-methods: 1.0.8 @@ -3181,13 +3130,6 @@ packages: hasBin: true dev: true - /uglify-js/3.13.9: - resolution: {integrity: sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==} - engines: {node: '>=0.8.0'} - hasBin: true - dev: false - optional: true - /uid-safe/2.1.5: resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} engines: {node: '>= 0.8'} @@ -3207,7 +3149,7 @@ packages: /undefsafe/2.0.3: resolution: {integrity: sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==} dependencies: - debug: 2.6.9 + debug: registry.npmmirror.com/debug/2.6.9 dev: false /unique-string/2.0.0: @@ -3358,7 +3300,7 @@ packages: /wkx/0.5.0: resolution: {integrity: sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==} dependencies: - '@types/node': 15.12.2 + '@types/node': registry.npmmirror.com/@types/node/15.12.2 dev: false /wordwrap/1.0.0: @@ -3409,5 +3351,393 @@ packages: lodash.isequal: 4.5.0 validator: 10.11.0 optionalDependencies: - commander: 2.20.3 + commander: registry.npmmirror.com/commander/2.20.3 + dev: false + + registry.npmmirror.com/@hapi/b64/5.0.0: + resolution: {integrity: sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@hapi/b64/-/b64-5.0.0.tgz} + name: '@hapi/b64' + version: 5.0.0 + dependencies: + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 + dev: false + + registry.npmmirror.com/@hapi/boom/9.1.2: + resolution: {integrity: sha512-uJEJtiNHzKw80JpngDGBCGAmWjBtzxDCz17A9NO2zCi8LLBlb5Frpq4pXwyN+2JQMod4pKz5BALwyneCgDg89Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@hapi/boom/-/boom-9.1.2.tgz} + name: '@hapi/boom' + version: 9.1.2 + dependencies: + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 + dev: false + + registry.npmmirror.com/@hapi/bourne/2.0.0: + resolution: {integrity: sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@hapi/bourne/-/bourne-2.0.0.tgz} + name: '@hapi/bourne' + version: 2.0.0 + dev: false + + registry.npmmirror.com/@hapi/cryptiles/5.1.0: + resolution: {integrity: sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@hapi/cryptiles/-/cryptiles-5.1.0.tgz} + name: '@hapi/cryptiles' + version: 5.1.0 + engines: {node: '>=12.0.0'} + dependencies: + '@hapi/boom': registry.npmmirror.com/@hapi/boom/9.1.2 + dev: false + + registry.npmmirror.com/@hapi/hoek/9.2.0: + resolution: {integrity: sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.2.0.tgz} + name: '@hapi/hoek' + version: 9.2.0 + dev: false + + registry.npmmirror.com/@hapi/iron/6.0.0: + resolution: {integrity: sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@hapi/iron/-/iron-6.0.0.tgz} + name: '@hapi/iron' + version: 6.0.0 + dependencies: + '@hapi/b64': registry.npmmirror.com/@hapi/b64/5.0.0 + '@hapi/boom': registry.npmmirror.com/@hapi/boom/9.1.2 + '@hapi/bourne': registry.npmmirror.com/@hapi/bourne/2.0.0 + '@hapi/cryptiles': registry.npmmirror.com/@hapi/cryptiles/5.1.0 + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 + dev: false + + registry.npmmirror.com/@hapi/podium/4.1.3: + resolution: {integrity: sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@hapi/podium/-/podium-4.1.3.tgz} + name: '@hapi/podium' + version: 4.1.3 + dependencies: + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 + '@hapi/teamwork': registry.npmmirror.com/@hapi/teamwork/5.1.0 + '@hapi/validate': registry.npmmirror.com/@hapi/validate/1.1.3 + dev: false + + registry.npmmirror.com/@hapi/teamwork/5.1.0: + resolution: {integrity: sha512-llqoQTrAJDTXxG3c4Kz/uzhBS1TsmSBa/XG5SPcVXgmffHE1nFtyLIK0hNJHCB3EuBKT84adzd1hZNY9GJLWtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@hapi/teamwork/-/teamwork-5.1.0.tgz} + name: '@hapi/teamwork' + version: 5.1.0 + engines: {node: '>=12.0.0'} + dev: false + + registry.npmmirror.com/@hapi/topo/5.0.0: + resolution: {integrity: sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@hapi/topo/-/topo-5.0.0.tgz} + name: '@hapi/topo' + version: 5.0.0 + dependencies: + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 + dev: false + + registry.npmmirror.com/@hapi/validate/1.1.3: + resolution: {integrity: sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@hapi/validate/-/validate-1.1.3.tgz} + name: '@hapi/validate' + version: 1.1.3 + dependencies: + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 + '@hapi/topo': registry.npmmirror.com/@hapi/topo/5.0.0 + dev: false + + registry.npmmirror.com/@sideway/address/4.1.2: + resolution: {integrity: sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sideway/address/-/address-4.1.2.tgz} + name: '@sideway/address' + version: 4.1.2 + dependencies: + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 + dev: false + + registry.npmmirror.com/@sideway/formula/3.0.0: + resolution: {integrity: sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.0.tgz} + name: '@sideway/formula' + version: 3.0.0 + dev: false + + registry.npmmirror.com/@sideway/pinpoint/2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz} + name: '@sideway/pinpoint' + version: 2.0.0 + dev: false + + registry.npmmirror.com/@types/hapi__catbox/10.2.4: + resolution: {integrity: sha512-A6ivRrXD5glmnJna1UAGw87QNZRp/vdFO9U4GS+WhOMWzHnw+oTGkMvg0g6y1930CbeheGOCm7A1qHsqH7AXqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hapi__catbox/-/hapi__catbox-10.2.4.tgz} + name: '@types/hapi__catbox' + version: 10.2.4 + dev: false + + registry.npmmirror.com/@types/hapi__hapi/20.0.10: + resolution: {integrity: sha512-Nt/SY/20/JAlHhbgH616j0g18vsANR9OWoyMdQcytlW6o7TBN+wRgf0MB8AgzjYpuzQam5oTiqyED9WwHmQKYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hapi__hapi/-/hapi__hapi-20.0.10.tgz} + name: '@types/hapi__hapi' + version: 20.0.10 + dependencies: + '@hapi/boom': registry.npmmirror.com/@hapi/boom/9.1.2 + '@hapi/iron': registry.npmmirror.com/@hapi/iron/6.0.0 + '@hapi/podium': registry.npmmirror.com/@hapi/podium/4.1.3 + '@types/hapi__catbox': registry.npmmirror.com/@types/hapi__catbox/10.2.4 + '@types/hapi__mimos': registry.npmmirror.com/@types/hapi__mimos/4.1.4 + '@types/hapi__shot': registry.npmmirror.com/@types/hapi__shot/4.1.2 + '@types/node': registry.npmmirror.com/@types/node/15.12.2 + joi: registry.npmmirror.com/joi/17.4.0 + dev: false + + registry.npmmirror.com/@types/hapi__mimos/4.1.4: + resolution: {integrity: sha512-i9hvJpFYTT/qzB5xKWvDYaSXrIiNqi4ephi+5Lo6+DoQdwqPXQgmVVOZR+s3MBiHoFqsCZCX9TmVWG3HczmTEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hapi__mimos/-/hapi__mimos-4.1.4.tgz} + name: '@types/hapi__mimos' + version: 4.1.4 + dependencies: + '@types/mime-db': registry.npmmirror.com/@types/mime-db/1.43.1 + dev: false + + registry.npmmirror.com/@types/hapi__shot/4.1.2: + resolution: {integrity: sha512-8wWgLVP1TeGqgzZtCdt+F+k15DWQvLG1Yv6ZzPfb3D5WIo5/S+GGKtJBVo2uNEcqabP5Ifc71QnJTDnTmw1axA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hapi__shot/-/hapi__shot-4.1.2.tgz} + name: '@types/hapi__shot' + version: 4.1.2 + dependencies: + '@types/node': registry.npmmirror.com/@types/node/15.12.2 + dev: false + + registry.npmmirror.com/@types/hapi__vision/5.5.3: + resolution: {integrity: sha512-R4+r9345+5LCM8/0OQ1J8UVVPwnOwMdUVtPrtJE4oNbZ31+rLSy/bLoGpuZJwjROeC006YXbibnRF1hcVQFjGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hapi__vision/-/hapi__vision-5.5.3.tgz} + name: '@types/hapi__vision' + version: 5.5.3 + dependencies: + '@types/hapi__hapi': registry.npmmirror.com/@types/hapi__hapi/20.0.10 + handlebars: registry.npmmirror.com/handlebars/4.7.7 + dev: false + + registry.npmmirror.com/@types/mime-db/1.43.1: + resolution: {integrity: sha512-kGZJY+R+WnR5Rk+RPHUMERtb2qBRViIHCBdtUrY+NmwuGb8pQdfTqQiCKPrxpdoycl8KWm2DLdkpoSdt479XoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mime-db/-/mime-db-1.43.1.tgz} + name: '@types/mime-db' + version: 1.43.1 + dev: false + + registry.npmmirror.com/@types/node/15.12.2: + resolution: {integrity: sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-15.12.2.tgz} + name: '@types/node' + version: 15.12.2 + + registry.npmmirror.com/commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz} + name: commander + version: 2.20.3 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/date-format/4.0.3: + resolution: {integrity: sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/date-format/-/date-format-4.0.3.tgz} + name: date-format + version: 4.0.3 + engines: {node: '>=4.0'} + dev: true + + registry.npmmirror.com/debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz} + name: debug + version: 2.6.9 + dependencies: + ms: registry.npmmirror.com/ms/2.0.0 + dev: false + + registry.npmmirror.com/debug/3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz} + name: debug + version: 3.2.7 + dependencies: + ms: registry.npmmirror.com/ms/2.1.3 + dev: false + + registry.npmmirror.com/debug/4.3.3: + resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-4.3.3.tgz} + name: debug + version: 4.3.3 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms/2.1.2 + + registry.npmmirror.com/flatted/3.2.5: + resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flatted/-/flatted-3.2.5.tgz} + name: flatted + version: 3.2.5 + dev: true + + registry.npmmirror.com/fs-extra/10.0.1: + resolution: {integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-10.0.1.tgz} + name: fs-extra + version: 10.0.1 + engines: {node: '>=12'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 + jsonfile: registry.npmmirror.com/jsonfile/6.1.0 + universalify: registry.npmmirror.com/universalify/2.0.0 + dev: true + + registry.npmmirror.com/fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} + name: fsevents + version: 2.3.2 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/graceful-fs/4.2.6: + resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.6.tgz} + name: graceful-fs + version: 4.2.6 + + registry.npmmirror.com/handlebars/4.7.7: + resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/handlebars/-/handlebars-4.7.7.tgz} + name: handlebars + version: 4.7.7 + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: registry.npmmirror.com/minimist/1.2.5 + neo-async: registry.npmmirror.com/neo-async/2.6.2 + source-map: registry.npmmirror.com/source-map/0.6.1 + wordwrap: registry.npmmirror.com/wordwrap/1.0.0 + optionalDependencies: + uglify-js: registry.npmmirror.com/uglify-js/3.13.9 + dev: false + + registry.npmmirror.com/joi/17.4.0: + resolution: {integrity: sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/joi/-/joi-17.4.0.tgz} + name: joi + version: 17.4.0 + dependencies: + '@hapi/hoek': registry.npmmirror.com/@hapi/hoek/9.2.0 + '@hapi/topo': registry.npmmirror.com/@hapi/topo/5.0.0 + '@sideway/address': registry.npmmirror.com/@sideway/address/4.1.2 + '@sideway/formula': registry.npmmirror.com/@sideway/formula/3.0.0 + '@sideway/pinpoint': registry.npmmirror.com/@sideway/pinpoint/2.0.0 + dev: false + + registry.npmmirror.com/jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz} + name: jsonfile + version: 6.1.0 + dependencies: + universalify: registry.npmmirror.com/universalify/2.0.0 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 + dev: true + + registry.npmmirror.com/log4js/6.4.1: + resolution: {integrity: sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/log4js/-/log4js-6.4.1.tgz} + name: log4js + version: 6.4.1 + engines: {node: '>=8.0'} + dependencies: + date-format: registry.npmmirror.com/date-format/4.0.3 + debug: registry.npmmirror.com/debug/4.3.3 + flatted: registry.npmmirror.com/flatted/3.2.5 + rfdc: registry.npmmirror.com/rfdc/1.3.0 + streamroller: registry.npmmirror.com/streamroller/3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/minimist/1.2.5: + resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimist/-/minimist-1.2.5.tgz} + name: minimist + version: 1.2.5 + dev: false + + registry.npmmirror.com/ms/2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz} + name: ms + version: 2.0.0 + dev: false + + registry.npmmirror.com/ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + + registry.npmmirror.com/ms/2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz} + name: ms + version: 2.1.3 + dev: false + + registry.npmmirror.com/neo-async/2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz} + name: neo-async + version: 2.6.2 + dev: false + + registry.npmmirror.com/node-gyp/3.8.0: + resolution: {integrity: sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-gyp/-/node-gyp-3.8.0.tgz} + name: node-gyp + version: 3.8.0 + engines: {node: '>= 0.8.0'} + hasBin: true + requiresBuild: true + dependencies: + fstream: 1.0.12 + glob: 7.1.7 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 + mkdirp: 0.5.5 + nopt: 3.0.6 + npmlog: 4.1.2 + osenv: 0.1.5 + request: 2.88.2 + rimraf: 2.7.1 + semver: 5.3.0 + tar: 2.2.2 + which: 1.3.1 + dev: false + optional: true + + registry.npmmirror.com/rfdc/1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rfdc/-/rfdc-1.3.0.tgz} + name: rfdc + version: 1.3.0 + dev: true + + registry.npmmirror.com/source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} + name: source-map + version: 0.6.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/streamroller/3.0.2: + resolution: {integrity: sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/streamroller/-/streamroller-3.0.2.tgz} + name: streamroller + version: 3.0.2 + engines: {node: '>=8.0'} + dependencies: + date-format: registry.npmmirror.com/date-format/4.0.3 + debug: registry.npmmirror.com/debug/4.3.3 + fs-extra: registry.npmmirror.com/fs-extra/10.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/uglify-js/3.13.9: + resolution: {integrity: sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uglify-js/-/uglify-js-3.13.9.tgz} + name: uglify-js + version: 3.13.9 + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz} + name: universalify + version: 2.0.0 + engines: {node: '>= 10.0.0'} + dev: true + + registry.npmmirror.com/wordwrap/1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wordwrap/-/wordwrap-1.0.0.tgz} + name: wordwrap + version: 1.0.0 dev: false diff --git a/public/upload/2050798.jpg b/public/upload/2050798.jpg new file mode 100644 index 0000000..afc9399 Binary files /dev/null and b/public/upload/2050798.jpg differ diff --git a/public/upload/icon.png b/public/upload/icon.png new file mode 100644 index 0000000..9e7ccc0 Binary files /dev/null and b/public/upload/icon.png differ diff --git a/source/db/data.db b/source/db/data.db index 1295270..9e6c176 100644 Binary files a/source/db/data.db and b/source/db/data.db differ diff --git a/source/db/index.ts b/source/db/index.ts index c8a009d..4776b7d 100644 --- a/source/db/index.ts +++ b/source/db/index.ts @@ -3,6 +3,7 @@ import path from "path"; export const sequelize = new Sequelize({ dialect: "sqlite", storage: path.resolve(__dirname, "./data.db"), + logging: loggerSQL.debug.bind(loggerSQL) // Alternative way to use custom logger, displays all messages }); diff --git a/source/log4js_config.ts b/source/log4js_config.ts new file mode 100644 index 0000000..c839aeb --- /dev/null +++ b/source/log4js_config.ts @@ -0,0 +1,37 @@ +import path from "path"; + +export default function () { + return { + appenders: { + file: { + type: "file", + filename: path.resolve(__dirname, "../", "./log", "./Site.log"), + }, + SQL: { + type: "file", + filename: path.resolve(__dirname, "../", "./log", "./SQL.log"), + }, + console: { + type: "console", + }, + }, + categories: { + default: { + appenders: ["console"], + level: "all", + }, + HAPI: { + appenders: ["console"], + level: "all", + }, + Site: { + appenders: ["file", "console"], + level: "debug", + }, + SQL: { + appenders: ["SQL"], + level: "debug", + }, + }, + }; +} diff --git a/source/main.ts b/source/main.ts index 83ed17f..deff501 100644 --- a/source/main.ts +++ b/source/main.ts @@ -1,5 +1,21 @@ require("dotenv").config(); +import { configure, getLogger } from "log4js"; +import log4jsConfig from "./log4js_config"; + +configure(log4jsConfig()); +const loggerSite = getLogger("Site"); +const loggerSQL = getLogger("SQL"); +const logger = getLogger("HAPI"); + +loggerSite.level = "debug"; +loggerSQL.level = "debug"; + +global.logger = logger; +global.loggerSite = loggerSite; +global.loggerSQL = loggerSQL; import { run } from "./run"; -run() +run().then((server) => { + global.server = server; +}); diff --git a/source/plugins/index.ts b/source/plugins/index.ts index 31b8f21..86d6440 100644 --- a/source/plugins/index.ts +++ b/source/plugins/index.ts @@ -2,16 +2,16 @@ import filePlugin from "./file-plugin"; import path from "path"; import { sourceDir } from "@/util"; import { plugin as routePlugin } from "@noderun/hapi-router"; - +import {ServerRegisterPluginObject, Plugin} from "@hapi/hapi" export default [ { - plugin: filePlugin, + plugin: filePlugin as unknown as Plugin, }, { - plugin: routePlugin, + plugin: routePlugin as Plugin, options: { sourceDir: path.resolve(sourceDir, "route"), type: "session" }, }, -]; +] as unknown as ServerRegisterPluginObject; diff --git a/source/route/api/user/index.ts b/source/route/api/user/index.ts index e29af3d..1413501 100644 --- a/source/route/api/user/index.ts +++ b/source/route/api/user/index.ts @@ -1,27 +1,29 @@ -import { auth, method, route, swagger, validate } from "@noderun/hapi-router"; +import { + auth, + method, + route, + swagger, + validate, + config, +} from "@noderun/hapi-router"; import { gSuccess, gFail } from "@/util"; import User from "@/model/User"; import * as bcrypt from "bcrypt"; import * as jwt from "jsonwebtoken"; import * as Joi from "joi"; +import { UserSchema } from "@/validateSchema"; export default class { @validate({ - payload: Joi.object({ - username: Joi.string().alphanum().min(6).max(35).required(), - password: Joi.string().pattern(new RegExp("^[a-zA-Z0-9]{3,30}$")), - email: Joi.string().email({ - minDomainSegments: 2, - tlds: { allow: ["com", "net"] }, - }), - }), + payload: UserSchema, }) @method("POST") - @route("/register") @swagger("用户注册", "返回注册用户的信息", ["api"]) @auth(false) async register(request, h) { let { username, password, email } = request.payload; + if (!username) username = email; + logger.trace(username, email); try { const result = await User.findOne({ where: { username: username } }); if (result != null) { @@ -36,6 +38,12 @@ export default class { } } + @method("POST") + async logout(request, h) { + request.cookieAuth.clear(); + return gSuccess("success"); + } + @validate({ payload: Joi.object({ username: Joi.string().alphanum().min(6).max(35).required(), @@ -44,7 +52,6 @@ export default class { }) @auth(false) @method("POST") - @route("/login") @swagger("用户登录", "返回注册用户的信息", ["api"]) async login(request, h) { let { username, password } = request.payload; @@ -56,13 +63,18 @@ export default class { if (!validUser) { return gFail(null, "密码不正确"); } - let token = jwt.sign({ id: result.id }, process.env.KEY); - return gSuccess({ token: token }); + //===== JWT ===== Start + // let token = jwt.sign({ id: result.id }, process.env.KEY); + // return gSuccess({ token: token }); + //===== JWT ===== End + //===== session ===== Start + request.cookieAuth.set({ id: result.id }); + //===== session ===== End + return gSuccess({ id: result.id }); } @method("DELETE") @auth() - @route("/del") @swagger("删除用户", "删除用户账号", ["sum"]) async del(request, h) { const { id } = request.auth.credentials; @@ -75,13 +87,12 @@ export default class { } @method("GET") - @route("/userinfo") @validate({ headers: Joi.object({ test: Joi.number(), }).unknown(), // 注意加上这个 }) - @swagger("获取用户信息", "返回注册用户的信息", ["用户操作","api"]) + @swagger("获取用户信息", "返回注册用户的信息", ["用户操作", "api"]) async userinfo(request, h) { console.log(request); const { id } = request.auth.credentials; diff --git a/source/route/api/wx/index.ts b/source/route/api/wx/index.ts deleted file mode 100644 index 728133c..0000000 --- a/source/route/api/wx/index.ts +++ /dev/null @@ -1,7 +0,0 @@ - - -export default class { - wxinit(req,h){ - // const {subgbat÷}÷ - } -} diff --git a/source/route/demo/_upload.ts b/source/route/demo/_upload.ts index b5d1695..e48f1c9 100644 --- a/source/route/demo/_upload.ts +++ b/source/route/demo/_upload.ts @@ -1,5 +1,5 @@ import path from "path"; -import { gSuccess, gFail, uploadDir } from "@/util"; +import { gSuccess, gFail, uploadDir, uploadPath } from "@/util"; const fs = require("fs"); const multiparty = require("multiparty"); @@ -18,7 +18,7 @@ function saveFile(file) { console.log("rename error: " + err); reject(); } else { - resolve(0); + resolve(uploadPath + "/" + filename); } }); } else { @@ -53,7 +53,7 @@ export default function (req, h) { "the form is " + Math.floor(percentComplete) + "%" + " complete" ); }); - form.parse(req.payload.file, async function (err, fields, files) { + form.parse(req.payload, async function (err, fields, files) { // console.log(err, fields, files); if (err) { @@ -61,10 +61,12 @@ export default function (req, h) { return; } const errList = []; + const fileList = []; for (let i = 0; i < files.file.length; i++) { const file = files.file[i]; try { - await saveFile(file); + const dstPath = await saveFile(file); + fileList.push(dstPath); } catch (error) { errList.push(error.message); } @@ -73,7 +75,8 @@ export default function (req, h) { resolve(gFail(null, errList.join("\n"))); return; } - resolve(h.view("views/upload.ejs")); + // resolve(h.view("views/upload.ejs")); + resolve([...new Set(fileList)]); }); }); } diff --git a/source/route/index/index.ts b/source/route/index/index.ts index 4c31610..f18a1be 100644 --- a/source/route/index/index.ts +++ b/source/route/index/index.ts @@ -14,14 +14,14 @@ export default class { @auth() @config({ auth: { - mode: "try" - } + mode: "try", + }, }) index(request, h) { // console.log(request.auth); - if(request.isAuthenticated){ + if (request.isAuthenticated) { // 登录了 - }else{ + } else { // 未登录 } return h.view("views/index.pug"); diff --git a/source/route/route.txt b/source/route/route.txt index 6abdb08..c84b083 100644 --- a/source/route/route.txt +++ b/source/route/route.txt @@ -1,19 +1,20 @@ 所有路由路径: -/api 该路由需要权限 -/api/user/register 该路由不需要权限 -/api/user/login 该路由不需要权限 -/api/user/del 该路由需要权限 -/api/user/userinfo 该路由需要权限 -/api/wx/wxinit 该路由需要权限 -/color 该路由不需要权限 -/color/add 该路由不需要权限 -/color/all_color 该路由不需要权限 -/demo/{path*} 该路由不需要权限 -/demo 该路由不需要权限 -/demo/upload 该路由不需要权限 -/index/color 该路由不需要权限 -/{path*} 该路由不需要权限 -/ 该路由需要权限 -/login 该路由不需要权限 -/login 该路由不需要权限 -/about 该路由需要权限 \ No newline at end of file + 需要权限: GET /api + 不需权限: POST /api/user/register + 需要权限: POST /api/user/logout + 不需权限: POST /api/user/login + 需要权限: DELETE /api/user/del + 需要权限: GET /api/user/userinfo + 需要权限: GET /api/wx/wxinit + 不需权限: GET /color + 不需权限: POST /color/add + 不需权限: GET /color/all_color + 不需权限: GET /demo/{path*} + 不需权限: GET /demo + 不需权限: POST /demo/upload + 不需权限: GET /index/color + 不需权限: GET /{path*} + 需要权限: GET / + 不需权限: GET /login + 不需权限: POST /login + 需要权限: GET /about \ No newline at end of file diff --git a/source/run.ts b/source/run.ts index 3b1ada8..934c546 100644 --- a/source/run.ts +++ b/source/run.ts @@ -1,47 +1,48 @@ "use strict"; import plugins from "@/plugins"; import path from "path"; -import { baseDir,templateDir } from "@/util"; +import { baseDir, templateDir } from "@/util"; import { validateJwt, validateSession } from "./validate"; -const Hapi = require("@hapi/hapi"); +import Hapi, {Server} from "@hapi/hapi" +// const Hapi = require("@hapi/hapi"); // const HapiSwagger = require("hapi-swagger"); // const HapiSwagger = require("hapi-swaggered-ui"); // swagger v2版本 -const run = async () => { +const run = async (): Promise => { const server = Hapi.server({ port: 3000, host: "localhost", }); - /** - * jwt - */ + //===== JWT ===== Start // await server.register(require("hapi-auth-jwt2")); // server.auth.strategy("jwt", "jwt", { // key: process.env.KEY, // Never Share your secret key // validate: validateJwt, // validate function defined above // verifyOptions: { algorithms: ["HS256"] }, // }); - /** - * cookie - */ + //===== JWT ===== End + //===== session ===== Start + // https://hapi.dev/module/cookie/api?v=11.0.2 await server.register(require("@hapi/cookie")); server.auth.strategy("session", "cookie", { cookie: { + ttl: 1000 * 60 * 60 * 24, name: "sid", //cookie的名字 password: process.env.KEY, - isSecure: false, + isSecure: false, // false: 允许 Cookie 通过不安全的连接传输,这会使其受到攻击 }, redirectTo: "/login", validateFunc: validateSession, }); server.auth.default("session"); + //===== session ===== End - await server.register(plugins, { + await server.register(plugins as any, { routes: { // prefix: "/api", }, - }); + } as any); /** * 模板引擎 @@ -51,13 +52,13 @@ const run = async () => { server.views({ engines: { ejs: require("ejs"), - pug: require("pug") + pug: require("pug"), }, isCached: process.env.NODE_ENV === "development" ? false : true, compileMode: "sync", // ejs relativeTo: baseDir, layout: false, // ejs - layoutPath: path.resolve(templateDir,"layout"), // ejs + layoutPath: path.resolve(templateDir, "layout"), // ejs path: "template", // pug compileOptions: { @@ -99,9 +100,9 @@ const run = async () => { }, }, ]); - await server.start(); - console.log("Server running on %s", server.info.uri); + logger.trace("Server running on %s", server.info.uri); + return server }; process.on("unhandledRejection", (err) => { diff --git a/source/util/index.ts b/source/util/index.ts index 521e8ab..eb8bf09 100644 --- a/source/util/index.ts +++ b/source/util/index.ts @@ -6,4 +6,5 @@ export const baseDir = path.resolve(__dirname, "../../"); export const sourceDir = path.resolve(__dirname, "../../source"); export const publicDir = path.resolve(__dirname, "../../public"); export const uploadDir = path.resolve(publicDir, "upload"); +export const uploadPath = "/public/upload"; // 图片上传地址 export const templateDir = path.resolve(baseDir, "template"); diff --git a/source/validateSchema/index.ts b/source/validateSchema/index.ts new file mode 100644 index 0000000..2f97354 --- /dev/null +++ b/source/validateSchema/index.ts @@ -0,0 +1,10 @@ +import * as Joi from "joi"; + +export const UserSchema = Joi.object({ + username: Joi.string().alphanum().min(6).max(35), + password: Joi.string().pattern(new RegExp("^[a-zA-Z0-9]{3,30}$")).required(), + email: Joi.string().email({ + minDomainSegments: 2, + tlds: { allow: ["com", "net"] }, + }), +}).or("username", "email"); diff --git a/tsconfig.json b/tsconfig.json index a77c299..a76106e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,4 +1,7 @@ { + "ts-node": { + "files": true + }, "compilerOptions": { "outDir": "./dist", "allowJs": true, @@ -10,12 +13,10 @@ "esModuleInterop": true, // esModuleInterop选项的作用是支持使用import d from 'cjs'的方式引入commonjs包。 "baseUrl": ".", "paths": { - "@/*": ["./source/*"] + "@/*": ["source/*"], + "#/*": ["types/*"] } }, - "include": [ - "./source/**/*", - "./types/global.d.ts" - ], + "include": ["source", "types"], "exclude": ["node_modules"] } diff --git a/types/global.d.ts b/types/global.d.ts index 8b13789..84b890d 100644 --- a/types/global.d.ts +++ b/types/global.d.ts @@ -1 +1,9 @@ +import { Logger } from "log4js"; +import { Server } from "@hapi/hapi"; +declare global { + var server: Server; + var logger: Logger; + var loggerSite: Logger; + var loggerSQL: Logger; +}