├── .gitignore ├── backend-node ├── package.json ├── server.ts ├── tsconfig.json └── yarn.lock └── serverless-node ├── .webpack └── service │ └── functions │ └── checkout.js ├── functions └── checkout.ts ├── package.json ├── serverless.yml ├── tsconfig.json ├── webpack.config.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .serverless 3 | -------------------------------------------------------------------------------- /backend-node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "backend-node", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "dev": "tsnd --ignore-watch node_modules --transpile-only --respawn ./server.ts" 8 | }, 9 | "dependencies": { 10 | "aws-sdk": "^2.893.0", 11 | "express": "^4.17.1" 12 | }, 13 | "devDependencies": { 14 | "@types/express": "^4.17.11", 15 | "ts-node-dev": "^1.1.6", 16 | "typescript": "^4.2.4" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /backend-node/server.ts: -------------------------------------------------------------------------------- 1 | import express from 'express'; 2 | import { Lambda } from 'aws-sdk' 3 | 4 | const lambda = new Lambda({ 5 | region: 'us-east-1' 6 | }); 7 | 8 | const app = express(); 9 | 10 | app.post('/checkout', async (req, res) => { 11 | const response = await lambda.invoke({ 12 | FunctionName: 'sls-node-local-sls-checkout', 13 | InvocationType: "RequestResponse", 14 | Payload: JSON.stringify({ 15 | body: { 16 | clientId: '123456', 17 | products: [ 18 | { id: 1, title: 'Product 1', price: 10, quantity: 1 }, 19 | { id: 2, title: 'Product 2', price: 30, quantity: 2 }, 20 | ] 21 | } 22 | }), 23 | }).promise(); 24 | 25 | const { data } = response.$response; 26 | 27 | return res.json({ data }) 28 | }); 29 | 30 | app.listen(3333); -------------------------------------------------------------------------------- /backend-node/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 | 5 | /* Basic Options */ 6 | // "incremental": true, /* Enable incremental compilation */ 7 | "target": "es2017", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ 8 | "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ 9 | // "lib": [], /* Specify library files to be included in the compilation. */ 10 | // "allowJs": true, /* Allow javascript files to be compiled. */ 11 | // "checkJs": true, /* Report errors in .js files. */ 12 | // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */ 13 | // "declaration": true, /* Generates corresponding '.d.ts' file. */ 14 | // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ 15 | // "sourceMap": true, /* Generates corresponding '.map' file. */ 16 | // "outFile": "./", /* Concatenate and emit output to single file. */ 17 | // "outDir": "./", /* Redirect output structure to the directory. */ 18 | // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ 19 | // "composite": true, /* Enable project compilation */ 20 | // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ 21 | // "removeComments": true, /* Do not emit comments to output. */ 22 | // "noEmit": true, /* Do not emit outputs. */ 23 | // "importHelpers": true, /* Import emit helpers from 'tslib'. */ 24 | // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ 25 | // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ 26 | 27 | /* Strict Type-Checking Options */ 28 | "strict": true, /* Enable all strict type-checking options. */ 29 | // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ 30 | // "strictNullChecks": true, /* Enable strict null checks. */ 31 | // "strictFunctionTypes": true, /* Enable strict checking of function types. */ 32 | // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ 33 | // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ 34 | // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ 35 | // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ 36 | 37 | /* Additional Checks */ 38 | // "noUnusedLocals": true, /* Report errors on unused locals. */ 39 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 40 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 41 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 42 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ 43 | // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ 44 | 45 | /* Module Resolution Options */ 46 | // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ 47 | // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ 48 | // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ 49 | // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ 50 | // "typeRoots": [], /* List of folders to include type definitions from. */ 51 | // "types": [], /* Type declaration files to be included in compilation. */ 52 | // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ 53 | "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ 54 | // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ 55 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 56 | 57 | /* Source Map Options */ 58 | // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ 59 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 60 | // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ 61 | // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ 62 | 63 | /* Experimental Options */ 64 | // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ 65 | // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ 66 | 67 | /* Advanced Options */ 68 | "skipLibCheck": true, /* Skip type checking of declaration files. */ 69 | "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /backend-node/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/body-parser@*": 6 | version "1.19.0" 7 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" 8 | integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== 9 | dependencies: 10 | "@types/connect" "*" 11 | "@types/node" "*" 12 | 13 | "@types/connect@*": 14 | version "3.4.34" 15 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901" 16 | integrity sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ== 17 | dependencies: 18 | "@types/node" "*" 19 | 20 | "@types/express-serve-static-core@^4.17.18": 21 | version "4.17.19" 22 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz#00acfc1632e729acac4f1530e9e16f6dd1508a1d" 23 | integrity sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA== 24 | dependencies: 25 | "@types/node" "*" 26 | "@types/qs" "*" 27 | "@types/range-parser" "*" 28 | 29 | "@types/express@^4.17.11": 30 | version "4.17.11" 31 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545" 32 | integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg== 33 | dependencies: 34 | "@types/body-parser" "*" 35 | "@types/express-serve-static-core" "^4.17.18" 36 | "@types/qs" "*" 37 | "@types/serve-static" "*" 38 | 39 | "@types/mime@^1": 40 | version "1.3.2" 41 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" 42 | integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== 43 | 44 | "@types/node@*": 45 | version "15.0.0" 46 | resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.0.tgz#557dd0da4a6dca1407481df3bbacae0cd6f68042" 47 | integrity sha512-YN1d+ae2MCb4U0mMa+Zlb5lWTdpFShbAj5nmte6lel27waMMBfivrm0prC16p/Di3DyTrmerrYUT8/145HXxVw== 48 | 49 | "@types/qs@*": 50 | version "6.9.6" 51 | resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1" 52 | integrity sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA== 53 | 54 | "@types/range-parser@*": 55 | version "1.2.3" 56 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" 57 | integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== 58 | 59 | "@types/serve-static@*": 60 | version "1.13.9" 61 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e" 62 | integrity sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA== 63 | dependencies: 64 | "@types/mime" "^1" 65 | "@types/node" "*" 66 | 67 | "@types/strip-bom@^3.0.0": 68 | version "3.0.0" 69 | resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" 70 | integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= 71 | 72 | "@types/strip-json-comments@0.0.30": 73 | version "0.0.30" 74 | resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" 75 | integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== 76 | 77 | accepts@~1.3.7: 78 | version "1.3.7" 79 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 80 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 81 | dependencies: 82 | mime-types "~2.1.24" 83 | negotiator "0.6.2" 84 | 85 | anymatch@~3.1.1: 86 | version "3.1.2" 87 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 88 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 89 | dependencies: 90 | normalize-path "^3.0.0" 91 | picomatch "^2.0.4" 92 | 93 | arg@^4.1.0: 94 | version "4.1.3" 95 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 96 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 97 | 98 | array-find-index@^1.0.1: 99 | version "1.0.2" 100 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 101 | integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= 102 | 103 | array-flatten@1.1.1: 104 | version "1.1.1" 105 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 106 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= 107 | 108 | aws-sdk@^2.893.0: 109 | version "2.893.0" 110 | resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.893.0.tgz#953116eeef20ed7ced1ee081ec249af6644ccf44" 111 | integrity sha512-yebi0KfJSyYcaYF+sDJ6Wq7OLq/8VZZiP7mN3fYfE3XZQV9MUYHMITqyeVxKG8BMvzkYfr6gpx1XZOJAYzfvJQ== 112 | dependencies: 113 | buffer "4.9.2" 114 | events "1.1.1" 115 | ieee754 "1.1.13" 116 | jmespath "0.15.0" 117 | querystring "0.2.0" 118 | sax "1.2.1" 119 | url "0.10.3" 120 | uuid "3.3.2" 121 | xml2js "0.4.19" 122 | 123 | balanced-match@^1.0.0: 124 | version "1.0.2" 125 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 126 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 127 | 128 | base64-js@^1.0.2: 129 | version "1.5.1" 130 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 131 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 132 | 133 | binary-extensions@^2.0.0: 134 | version "2.2.0" 135 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 136 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 137 | 138 | body-parser@1.19.0: 139 | version "1.19.0" 140 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" 141 | integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== 142 | dependencies: 143 | bytes "3.1.0" 144 | content-type "~1.0.4" 145 | debug "2.6.9" 146 | depd "~1.1.2" 147 | http-errors "1.7.2" 148 | iconv-lite "0.4.24" 149 | on-finished "~2.3.0" 150 | qs "6.7.0" 151 | raw-body "2.4.0" 152 | type-is "~1.6.17" 153 | 154 | brace-expansion@^1.1.7: 155 | version "1.1.11" 156 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 157 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 158 | dependencies: 159 | balanced-match "^1.0.0" 160 | concat-map "0.0.1" 161 | 162 | braces@~3.0.2: 163 | version "3.0.2" 164 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 165 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 166 | dependencies: 167 | fill-range "^7.0.1" 168 | 169 | buffer-from@^1.0.0: 170 | version "1.1.1" 171 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 172 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 173 | 174 | buffer@4.9.2: 175 | version "4.9.2" 176 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" 177 | integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== 178 | dependencies: 179 | base64-js "^1.0.2" 180 | ieee754 "^1.1.4" 181 | isarray "^1.0.0" 182 | 183 | bytes@3.1.0: 184 | version "3.1.0" 185 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 186 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 187 | 188 | camelcase-keys@^2.0.0: 189 | version "2.1.0" 190 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" 191 | integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= 192 | dependencies: 193 | camelcase "^2.0.0" 194 | map-obj "^1.0.0" 195 | 196 | camelcase@^2.0.0: 197 | version "2.1.1" 198 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 199 | integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= 200 | 201 | chokidar@^3.5.1: 202 | version "3.5.1" 203 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" 204 | integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== 205 | dependencies: 206 | anymatch "~3.1.1" 207 | braces "~3.0.2" 208 | glob-parent "~5.1.0" 209 | is-binary-path "~2.1.0" 210 | is-glob "~4.0.1" 211 | normalize-path "~3.0.0" 212 | readdirp "~3.5.0" 213 | optionalDependencies: 214 | fsevents "~2.3.1" 215 | 216 | concat-map@0.0.1: 217 | version "0.0.1" 218 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 219 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 220 | 221 | content-disposition@0.5.3: 222 | version "0.5.3" 223 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 224 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 225 | dependencies: 226 | safe-buffer "5.1.2" 227 | 228 | content-type@~1.0.4: 229 | version "1.0.4" 230 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 231 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 232 | 233 | cookie-signature@1.0.6: 234 | version "1.0.6" 235 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 236 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= 237 | 238 | cookie@0.4.0: 239 | version "0.4.0" 240 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" 241 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== 242 | 243 | create-require@^1.1.0: 244 | version "1.1.1" 245 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 246 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 247 | 248 | currently-unhandled@^0.4.1: 249 | version "0.4.1" 250 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 251 | integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= 252 | dependencies: 253 | array-find-index "^1.0.1" 254 | 255 | dateformat@~1.0.4-1.2.3: 256 | version "1.0.12" 257 | resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" 258 | integrity sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk= 259 | dependencies: 260 | get-stdin "^4.0.1" 261 | meow "^3.3.0" 262 | 263 | debug@2.6.9: 264 | version "2.6.9" 265 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 266 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 267 | dependencies: 268 | ms "2.0.0" 269 | 270 | decamelize@^1.1.2: 271 | version "1.2.0" 272 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 273 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 274 | 275 | depd@~1.1.2: 276 | version "1.1.2" 277 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 278 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 279 | 280 | destroy@~1.0.4: 281 | version "1.0.4" 282 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 283 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 284 | 285 | diff@^4.0.1: 286 | version "4.0.2" 287 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 288 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 289 | 290 | dynamic-dedupe@^0.3.0: 291 | version "0.3.0" 292 | resolved "https://registry.yarnpkg.com/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz#06e44c223f5e4e94d78ef9db23a6515ce2f962a1" 293 | integrity sha1-BuRMIj9eTpTXjvnbI6ZRXOL5YqE= 294 | dependencies: 295 | xtend "^4.0.0" 296 | 297 | ee-first@1.1.1: 298 | version "1.1.1" 299 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 300 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 301 | 302 | encodeurl@~1.0.2: 303 | version "1.0.2" 304 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 305 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 306 | 307 | error-ex@^1.2.0: 308 | version "1.3.2" 309 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 310 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 311 | dependencies: 312 | is-arrayish "^0.2.1" 313 | 314 | escape-html@~1.0.3: 315 | version "1.0.3" 316 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 317 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 318 | 319 | etag@~1.8.1: 320 | version "1.8.1" 321 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 322 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 323 | 324 | events@1.1.1: 325 | version "1.1.1" 326 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" 327 | integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= 328 | 329 | express@^4.17.1: 330 | version "4.17.1" 331 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" 332 | integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== 333 | dependencies: 334 | accepts "~1.3.7" 335 | array-flatten "1.1.1" 336 | body-parser "1.19.0" 337 | content-disposition "0.5.3" 338 | content-type "~1.0.4" 339 | cookie "0.4.0" 340 | cookie-signature "1.0.6" 341 | debug "2.6.9" 342 | depd "~1.1.2" 343 | encodeurl "~1.0.2" 344 | escape-html "~1.0.3" 345 | etag "~1.8.1" 346 | finalhandler "~1.1.2" 347 | fresh "0.5.2" 348 | merge-descriptors "1.0.1" 349 | methods "~1.1.2" 350 | on-finished "~2.3.0" 351 | parseurl "~1.3.3" 352 | path-to-regexp "0.1.7" 353 | proxy-addr "~2.0.5" 354 | qs "6.7.0" 355 | range-parser "~1.2.1" 356 | safe-buffer "5.1.2" 357 | send "0.17.1" 358 | serve-static "1.14.1" 359 | setprototypeof "1.1.1" 360 | statuses "~1.5.0" 361 | type-is "~1.6.18" 362 | utils-merge "1.0.1" 363 | vary "~1.1.2" 364 | 365 | fill-range@^7.0.1: 366 | version "7.0.1" 367 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 368 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 369 | dependencies: 370 | to-regex-range "^5.0.1" 371 | 372 | finalhandler@~1.1.2: 373 | version "1.1.2" 374 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" 375 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== 376 | dependencies: 377 | debug "2.6.9" 378 | encodeurl "~1.0.2" 379 | escape-html "~1.0.3" 380 | on-finished "~2.3.0" 381 | parseurl "~1.3.3" 382 | statuses "~1.5.0" 383 | unpipe "~1.0.0" 384 | 385 | find-up@^1.0.0: 386 | version "1.1.2" 387 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 388 | integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= 389 | dependencies: 390 | path-exists "^2.0.0" 391 | pinkie-promise "^2.0.0" 392 | 393 | forwarded@~0.1.2: 394 | version "0.1.2" 395 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 396 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= 397 | 398 | fresh@0.5.2: 399 | version "0.5.2" 400 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 401 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 402 | 403 | fs.realpath@^1.0.0: 404 | version "1.0.0" 405 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 406 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 407 | 408 | fsevents@~2.3.1: 409 | version "2.3.2" 410 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 411 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 412 | 413 | function-bind@^1.1.1: 414 | version "1.1.1" 415 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 416 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 417 | 418 | get-stdin@^4.0.1: 419 | version "4.0.1" 420 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" 421 | integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= 422 | 423 | glob-parent@~5.1.0: 424 | version "5.1.2" 425 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 426 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 427 | dependencies: 428 | is-glob "^4.0.1" 429 | 430 | glob@^7.1.3: 431 | version "7.1.6" 432 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 433 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 434 | dependencies: 435 | fs.realpath "^1.0.0" 436 | inflight "^1.0.4" 437 | inherits "2" 438 | minimatch "^3.0.4" 439 | once "^1.3.0" 440 | path-is-absolute "^1.0.0" 441 | 442 | graceful-fs@^4.1.2: 443 | version "4.2.6" 444 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" 445 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 446 | 447 | has@^1.0.3: 448 | version "1.0.3" 449 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 450 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 451 | dependencies: 452 | function-bind "^1.1.1" 453 | 454 | hosted-git-info@^2.1.4: 455 | version "2.8.9" 456 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" 457 | integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== 458 | 459 | http-errors@1.7.2: 460 | version "1.7.2" 461 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" 462 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== 463 | dependencies: 464 | depd "~1.1.2" 465 | inherits "2.0.3" 466 | setprototypeof "1.1.1" 467 | statuses ">= 1.5.0 < 2" 468 | toidentifier "1.0.0" 469 | 470 | http-errors@~1.7.2: 471 | version "1.7.3" 472 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 473 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 474 | dependencies: 475 | depd "~1.1.2" 476 | inherits "2.0.4" 477 | setprototypeof "1.1.1" 478 | statuses ">= 1.5.0 < 2" 479 | toidentifier "1.0.0" 480 | 481 | iconv-lite@0.4.24: 482 | version "0.4.24" 483 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 484 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 485 | dependencies: 486 | safer-buffer ">= 2.1.2 < 3" 487 | 488 | ieee754@1.1.13: 489 | version "1.1.13" 490 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" 491 | integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== 492 | 493 | ieee754@^1.1.4: 494 | version "1.2.1" 495 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 496 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 497 | 498 | indent-string@^2.1.0: 499 | version "2.1.0" 500 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 501 | integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= 502 | dependencies: 503 | repeating "^2.0.0" 504 | 505 | inflight@^1.0.4: 506 | version "1.0.6" 507 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 508 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 509 | dependencies: 510 | once "^1.3.0" 511 | wrappy "1" 512 | 513 | inherits@2, inherits@2.0.4: 514 | version "2.0.4" 515 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 516 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 517 | 518 | inherits@2.0.3: 519 | version "2.0.3" 520 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 521 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 522 | 523 | ipaddr.js@1.9.1: 524 | version "1.9.1" 525 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 526 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 527 | 528 | is-arrayish@^0.2.1: 529 | version "0.2.1" 530 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 531 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 532 | 533 | is-binary-path@~2.1.0: 534 | version "2.1.0" 535 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 536 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 537 | dependencies: 538 | binary-extensions "^2.0.0" 539 | 540 | is-core-module@^2.2.0: 541 | version "2.3.0" 542 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz#d341652e3408bca69c4671b79a0954a3d349f887" 543 | integrity sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw== 544 | dependencies: 545 | has "^1.0.3" 546 | 547 | is-extglob@^2.1.1: 548 | version "2.1.1" 549 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 550 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 551 | 552 | is-finite@^1.0.0: 553 | version "1.1.0" 554 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" 555 | integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== 556 | 557 | is-glob@^4.0.1, is-glob@~4.0.1: 558 | version "4.0.1" 559 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 560 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 561 | dependencies: 562 | is-extglob "^2.1.1" 563 | 564 | is-number@^7.0.0: 565 | version "7.0.0" 566 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 567 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 568 | 569 | is-utf8@^0.2.0: 570 | version "0.2.1" 571 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 572 | integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= 573 | 574 | isarray@^1.0.0: 575 | version "1.0.0" 576 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 577 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 578 | 579 | jmespath@0.15.0: 580 | version "0.15.0" 581 | resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" 582 | integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= 583 | 584 | load-json-file@^1.0.0: 585 | version "1.1.0" 586 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 587 | integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= 588 | dependencies: 589 | graceful-fs "^4.1.2" 590 | parse-json "^2.2.0" 591 | pify "^2.0.0" 592 | pinkie-promise "^2.0.0" 593 | strip-bom "^2.0.0" 594 | 595 | loud-rejection@^1.0.0: 596 | version "1.6.0" 597 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 598 | integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= 599 | dependencies: 600 | currently-unhandled "^0.4.1" 601 | signal-exit "^3.0.0" 602 | 603 | make-error@^1.1.1: 604 | version "1.3.6" 605 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 606 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 607 | 608 | map-obj@^1.0.0, map-obj@^1.0.1: 609 | version "1.0.1" 610 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 611 | integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= 612 | 613 | media-typer@0.3.0: 614 | version "0.3.0" 615 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 616 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 617 | 618 | meow@^3.3.0: 619 | version "3.7.0" 620 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" 621 | integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= 622 | dependencies: 623 | camelcase-keys "^2.0.0" 624 | decamelize "^1.1.2" 625 | loud-rejection "^1.0.0" 626 | map-obj "^1.0.1" 627 | minimist "^1.1.3" 628 | normalize-package-data "^2.3.4" 629 | object-assign "^4.0.1" 630 | read-pkg-up "^1.0.1" 631 | redent "^1.0.0" 632 | trim-newlines "^1.0.0" 633 | 634 | merge-descriptors@1.0.1: 635 | version "1.0.1" 636 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 637 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 638 | 639 | methods@~1.1.2: 640 | version "1.1.2" 641 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 642 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 643 | 644 | mime-db@1.47.0: 645 | version "1.47.0" 646 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" 647 | integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== 648 | 649 | mime-types@~2.1.24: 650 | version "2.1.30" 651 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" 652 | integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== 653 | dependencies: 654 | mime-db "1.47.0" 655 | 656 | mime@1.6.0: 657 | version "1.6.0" 658 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 659 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 660 | 661 | minimatch@^3.0.4: 662 | version "3.0.4" 663 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 664 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 665 | dependencies: 666 | brace-expansion "^1.1.7" 667 | 668 | minimist@^1.1.3, minimist@^1.2.5: 669 | version "1.2.5" 670 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 671 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 672 | 673 | mkdirp@^1.0.4: 674 | version "1.0.4" 675 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" 676 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 677 | 678 | ms@2.0.0: 679 | version "2.0.0" 680 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 681 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 682 | 683 | ms@2.1.1: 684 | version "2.1.1" 685 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 686 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 687 | 688 | negotiator@0.6.2: 689 | version "0.6.2" 690 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 691 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 692 | 693 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: 694 | version "2.5.0" 695 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 696 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 697 | dependencies: 698 | hosted-git-info "^2.1.4" 699 | resolve "^1.10.0" 700 | semver "2 || 3 || 4 || 5" 701 | validate-npm-package-license "^3.0.1" 702 | 703 | normalize-path@^3.0.0, normalize-path@~3.0.0: 704 | version "3.0.0" 705 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 706 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 707 | 708 | object-assign@^4.0.1: 709 | version "4.1.1" 710 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 711 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 712 | 713 | on-finished@~2.3.0: 714 | version "2.3.0" 715 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 716 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 717 | dependencies: 718 | ee-first "1.1.1" 719 | 720 | once@^1.3.0: 721 | version "1.4.0" 722 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 723 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 724 | dependencies: 725 | wrappy "1" 726 | 727 | parse-json@^2.2.0: 728 | version "2.2.0" 729 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 730 | integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= 731 | dependencies: 732 | error-ex "^1.2.0" 733 | 734 | parseurl@~1.3.3: 735 | version "1.3.3" 736 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 737 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 738 | 739 | path-exists@^2.0.0: 740 | version "2.1.0" 741 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 742 | integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= 743 | dependencies: 744 | pinkie-promise "^2.0.0" 745 | 746 | path-is-absolute@^1.0.0: 747 | version "1.0.1" 748 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 749 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 750 | 751 | path-parse@^1.0.6: 752 | version "1.0.6" 753 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 754 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 755 | 756 | path-to-regexp@0.1.7: 757 | version "0.1.7" 758 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 759 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 760 | 761 | path-type@^1.0.0: 762 | version "1.1.0" 763 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 764 | integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= 765 | dependencies: 766 | graceful-fs "^4.1.2" 767 | pify "^2.0.0" 768 | pinkie-promise "^2.0.0" 769 | 770 | picomatch@^2.0.4, picomatch@^2.2.1: 771 | version "2.2.3" 772 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" 773 | integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== 774 | 775 | pify@^2.0.0: 776 | version "2.3.0" 777 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 778 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 779 | 780 | pinkie-promise@^2.0.0: 781 | version "2.0.1" 782 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 783 | integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= 784 | dependencies: 785 | pinkie "^2.0.0" 786 | 787 | pinkie@^2.0.0: 788 | version "2.0.4" 789 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 790 | integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= 791 | 792 | proxy-addr@~2.0.5: 793 | version "2.0.6" 794 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" 795 | integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== 796 | dependencies: 797 | forwarded "~0.1.2" 798 | ipaddr.js "1.9.1" 799 | 800 | punycode@1.3.2: 801 | version "1.3.2" 802 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 803 | integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= 804 | 805 | qs@6.7.0: 806 | version "6.7.0" 807 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" 808 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== 809 | 810 | querystring@0.2.0: 811 | version "0.2.0" 812 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 813 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= 814 | 815 | range-parser@~1.2.1: 816 | version "1.2.1" 817 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 818 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 819 | 820 | raw-body@2.4.0: 821 | version "2.4.0" 822 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" 823 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== 824 | dependencies: 825 | bytes "3.1.0" 826 | http-errors "1.7.2" 827 | iconv-lite "0.4.24" 828 | unpipe "1.0.0" 829 | 830 | read-pkg-up@^1.0.1: 831 | version "1.0.1" 832 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 833 | integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= 834 | dependencies: 835 | find-up "^1.0.0" 836 | read-pkg "^1.0.0" 837 | 838 | read-pkg@^1.0.0: 839 | version "1.1.0" 840 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 841 | integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= 842 | dependencies: 843 | load-json-file "^1.0.0" 844 | normalize-package-data "^2.3.2" 845 | path-type "^1.0.0" 846 | 847 | readdirp@~3.5.0: 848 | version "3.5.0" 849 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" 850 | integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== 851 | dependencies: 852 | picomatch "^2.2.1" 853 | 854 | redent@^1.0.0: 855 | version "1.0.0" 856 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" 857 | integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= 858 | dependencies: 859 | indent-string "^2.1.0" 860 | strip-indent "^1.0.1" 861 | 862 | repeating@^2.0.0: 863 | version "2.0.1" 864 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 865 | integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= 866 | dependencies: 867 | is-finite "^1.0.0" 868 | 869 | resolve@^1.0.0, resolve@^1.10.0: 870 | version "1.20.0" 871 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 872 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 873 | dependencies: 874 | is-core-module "^2.2.0" 875 | path-parse "^1.0.6" 876 | 877 | rimraf@^2.6.1: 878 | version "2.7.1" 879 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" 880 | integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== 881 | dependencies: 882 | glob "^7.1.3" 883 | 884 | safe-buffer@5.1.2: 885 | version "5.1.2" 886 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 887 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 888 | 889 | "safer-buffer@>= 2.1.2 < 3": 890 | version "2.1.2" 891 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 892 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 893 | 894 | sax@1.2.1: 895 | version "1.2.1" 896 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" 897 | integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= 898 | 899 | sax@>=0.6.0: 900 | version "1.2.4" 901 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 902 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== 903 | 904 | "semver@2 || 3 || 4 || 5": 905 | version "5.7.1" 906 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 907 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 908 | 909 | send@0.17.1: 910 | version "0.17.1" 911 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" 912 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== 913 | dependencies: 914 | debug "2.6.9" 915 | depd "~1.1.2" 916 | destroy "~1.0.4" 917 | encodeurl "~1.0.2" 918 | escape-html "~1.0.3" 919 | etag "~1.8.1" 920 | fresh "0.5.2" 921 | http-errors "~1.7.2" 922 | mime "1.6.0" 923 | ms "2.1.1" 924 | on-finished "~2.3.0" 925 | range-parser "~1.2.1" 926 | statuses "~1.5.0" 927 | 928 | serve-static@1.14.1: 929 | version "1.14.1" 930 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" 931 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== 932 | dependencies: 933 | encodeurl "~1.0.2" 934 | escape-html "~1.0.3" 935 | parseurl "~1.3.3" 936 | send "0.17.1" 937 | 938 | setprototypeof@1.1.1: 939 | version "1.1.1" 940 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 941 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 942 | 943 | signal-exit@^3.0.0: 944 | version "3.0.3" 945 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 946 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 947 | 948 | source-map-support@^0.5.12, source-map-support@^0.5.17: 949 | version "0.5.19" 950 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 951 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 952 | dependencies: 953 | buffer-from "^1.0.0" 954 | source-map "^0.6.0" 955 | 956 | source-map@^0.6.0: 957 | version "0.6.1" 958 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 959 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 960 | 961 | spdx-correct@^3.0.0: 962 | version "3.1.1" 963 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 964 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 965 | dependencies: 966 | spdx-expression-parse "^3.0.0" 967 | spdx-license-ids "^3.0.0" 968 | 969 | spdx-exceptions@^2.1.0: 970 | version "2.3.0" 971 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 972 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 973 | 974 | spdx-expression-parse@^3.0.0: 975 | version "3.0.1" 976 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 977 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 978 | dependencies: 979 | spdx-exceptions "^2.1.0" 980 | spdx-license-ids "^3.0.0" 981 | 982 | spdx-license-ids@^3.0.0: 983 | version "3.0.7" 984 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" 985 | integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== 986 | 987 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0: 988 | version "1.5.0" 989 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 990 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 991 | 992 | strip-bom@^2.0.0: 993 | version "2.0.0" 994 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 995 | integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= 996 | dependencies: 997 | is-utf8 "^0.2.0" 998 | 999 | strip-bom@^3.0.0: 1000 | version "3.0.0" 1001 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1002 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1003 | 1004 | strip-indent@^1.0.1: 1005 | version "1.0.1" 1006 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" 1007 | integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= 1008 | dependencies: 1009 | get-stdin "^4.0.1" 1010 | 1011 | strip-json-comments@^2.0.0: 1012 | version "2.0.1" 1013 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1014 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1015 | 1016 | to-regex-range@^5.0.1: 1017 | version "5.0.1" 1018 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1019 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1020 | dependencies: 1021 | is-number "^7.0.0" 1022 | 1023 | toidentifier@1.0.0: 1024 | version "1.0.0" 1025 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 1026 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 1027 | 1028 | tree-kill@^1.2.2: 1029 | version "1.2.2" 1030 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" 1031 | integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== 1032 | 1033 | trim-newlines@^1.0.0: 1034 | version "1.0.0" 1035 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" 1036 | integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= 1037 | 1038 | ts-node-dev@^1.1.6: 1039 | version "1.1.6" 1040 | resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-1.1.6.tgz#ee2113718cb5a92c1c8f4229123ad6afbeba01f8" 1041 | integrity sha512-RTUi7mHMNQospArGz07KiraQcdgUVNXKsgO2HAi7FoiyPMdTDqdniB6K1dqyaIxT7c9v/VpSbfBZPS6uVpaFLQ== 1042 | dependencies: 1043 | chokidar "^3.5.1" 1044 | dateformat "~1.0.4-1.2.3" 1045 | dynamic-dedupe "^0.3.0" 1046 | minimist "^1.2.5" 1047 | mkdirp "^1.0.4" 1048 | resolve "^1.0.0" 1049 | rimraf "^2.6.1" 1050 | source-map-support "^0.5.12" 1051 | tree-kill "^1.2.2" 1052 | ts-node "^9.0.0" 1053 | tsconfig "^7.0.0" 1054 | 1055 | ts-node@^9.0.0: 1056 | version "9.1.1" 1057 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" 1058 | integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== 1059 | dependencies: 1060 | arg "^4.1.0" 1061 | create-require "^1.1.0" 1062 | diff "^4.0.1" 1063 | make-error "^1.1.1" 1064 | source-map-support "^0.5.17" 1065 | yn "3.1.1" 1066 | 1067 | tsconfig@^7.0.0: 1068 | version "7.0.0" 1069 | resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" 1070 | integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== 1071 | dependencies: 1072 | "@types/strip-bom" "^3.0.0" 1073 | "@types/strip-json-comments" "0.0.30" 1074 | strip-bom "^3.0.0" 1075 | strip-json-comments "^2.0.0" 1076 | 1077 | type-is@~1.6.17, type-is@~1.6.18: 1078 | version "1.6.18" 1079 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 1080 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 1081 | dependencies: 1082 | media-typer "0.3.0" 1083 | mime-types "~2.1.24" 1084 | 1085 | typescript@^4.2.4: 1086 | version "4.2.4" 1087 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961" 1088 | integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg== 1089 | 1090 | unpipe@1.0.0, unpipe@~1.0.0: 1091 | version "1.0.0" 1092 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1093 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 1094 | 1095 | url@0.10.3: 1096 | version "0.10.3" 1097 | resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" 1098 | integrity sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ= 1099 | dependencies: 1100 | punycode "1.3.2" 1101 | querystring "0.2.0" 1102 | 1103 | utils-merge@1.0.1: 1104 | version "1.0.1" 1105 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 1106 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 1107 | 1108 | uuid@3.3.2: 1109 | version "3.3.2" 1110 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" 1111 | integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== 1112 | 1113 | validate-npm-package-license@^3.0.1: 1114 | version "3.0.4" 1115 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1116 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 1117 | dependencies: 1118 | spdx-correct "^3.0.0" 1119 | spdx-expression-parse "^3.0.0" 1120 | 1121 | vary@~1.1.2: 1122 | version "1.1.2" 1123 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1124 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 1125 | 1126 | wrappy@1: 1127 | version "1.0.2" 1128 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1129 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1130 | 1131 | xml2js@0.4.19: 1132 | version "0.4.19" 1133 | resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" 1134 | integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== 1135 | dependencies: 1136 | sax ">=0.6.0" 1137 | xmlbuilder "~9.0.1" 1138 | 1139 | xmlbuilder@~9.0.1: 1140 | version "9.0.7" 1141 | resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" 1142 | integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= 1143 | 1144 | xtend@^4.0.0: 1145 | version "4.0.2" 1146 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 1147 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 1148 | 1149 | yn@3.1.1: 1150 | version "3.1.1" 1151 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 1152 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 1153 | -------------------------------------------------------------------------------- /serverless-node/.webpack/service/functions/checkout.js: -------------------------------------------------------------------------------- 1 | /* 2 | * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). 3 | * This devtool is neither made for production nor for readable output files. 4 | * It uses "eval()" calls to create a separate source file in the browser devtools. 5 | * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) 6 | * or disable the default devtool with "devtool: false". 7 | * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). 8 | */ 9 | /******/ (() => { // webpackBootstrap 10 | /******/ "use strict"; 11 | /******/ var __webpack_modules__ = ({ 12 | 13 | /***/ "./functions/checkout.ts": 14 | /*!*******************************!*\ 15 | !*** ./functions/checkout.ts ***! 16 | \*******************************/ 17 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 18 | 19 | eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"handle\": () => (/* binding */ handle)\n/* harmony export */ });\nconst handle = async (event) => {\n const data = event.body;\n return {\n statusCode: 200,\n body: data,\n headers: {\n 'Content-Type': 'application/json'\n }\n };\n};\n\n\n//# sourceURL=webpack://serverless-node/./functions/checkout.ts?"); 20 | 21 | /***/ }) 22 | 23 | /******/ }); 24 | /************************************************************************/ 25 | /******/ // The require scope 26 | /******/ var __webpack_require__ = {}; 27 | /******/ 28 | /************************************************************************/ 29 | /******/ /* webpack/runtime/define property getters */ 30 | /******/ (() => { 31 | /******/ // define getter functions for harmony exports 32 | /******/ __webpack_require__.d = (exports, definition) => { 33 | /******/ for(var key in definition) { 34 | /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 35 | /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 36 | /******/ } 37 | /******/ } 38 | /******/ }; 39 | /******/ })(); 40 | /******/ 41 | /******/ /* webpack/runtime/hasOwnProperty shorthand */ 42 | /******/ (() => { 43 | /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) 44 | /******/ })(); 45 | /******/ 46 | /******/ /* webpack/runtime/make namespace object */ 47 | /******/ (() => { 48 | /******/ // define __esModule on exports 49 | /******/ __webpack_require__.r = (exports) => { 50 | /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 51 | /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 52 | /******/ } 53 | /******/ Object.defineProperty(exports, '__esModule', { value: true }); 54 | /******/ }; 55 | /******/ })(); 56 | /******/ 57 | /************************************************************************/ 58 | /******/ 59 | /******/ // startup 60 | /******/ // Load entry module and return exports 61 | /******/ // This entry module can't be inlined because the eval devtool is used. 62 | /******/ var __webpack_exports__ = {}; 63 | /******/ __webpack_modules__["./functions/checkout.ts"](0, __webpack_exports__, __webpack_require__); 64 | /******/ var __webpack_export_target__ = exports; 65 | /******/ for(var i in __webpack_exports__) __webpack_export_target__[i] = __webpack_exports__[i]; 66 | /******/ if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, "__esModule", { value: true }); 67 | /******/ 68 | /******/ })() 69 | ; -------------------------------------------------------------------------------- /serverless-node/functions/checkout.ts: -------------------------------------------------------------------------------- 1 | import { APIGatewayProxyHandler } from 'aws-lambda' 2 | 3 | export const handle: APIGatewayProxyHandler = async event => { 4 | const data = event.body; 5 | 6 | return { 7 | statusCode: 200, 8 | body: data, 9 | headers: { 10 | 'Content-Type': 'application/json' 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /serverless-node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "serverless-node", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "offline": "sls offline", 8 | "deploy": "sls deploy" 9 | }, 10 | "devDependencies": { 11 | "@types/aws-lambda": "^8.10.76", 12 | "aws-lambda": "^1.0.6", 13 | "serverless-offline": "^6.9.0", 14 | "serverless-webpack": "^5.4.1", 15 | "ts-loader": "^9.1.1", 16 | "typescript": "^4.2.4", 17 | "webpack": "^5.36.0", 18 | "webpack-node-externals": "^3.0.0" 19 | }, 20 | "dependencies": { 21 | "serverless": "^2.38.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /serverless-node/serverless.yml: -------------------------------------------------------------------------------- 1 | service: sls-node 2 | 3 | plugins: 4 | - serverless-webpack 5 | # - serverless-dynamodb-local 6 | # - serverless-offline-ssm 7 | - serverless-offline 8 | # - serverless-iam-roles-per-function 9 | # - serverless-prune-plugin 10 | # - serverless-plugin-tracing 11 | 12 | custom: 13 | webpack: 14 | webpackConfig: ./webpack.config.js 15 | includeModules: true 16 | 17 | provider: 18 | name: aws 19 | runtime: nodejs14.x 20 | stage: ${opt:stage, 'local'} 21 | region: ${opt:region, 'us-east-1'} 22 | lambdaHashingVersion: 20201221 23 | 24 | functions: 25 | sls-checkout: 26 | handler: functions/checkout.handle 27 | events: 28 | - http: 29 | path: /checkout 30 | method: POST 31 | cors: true -------------------------------------------------------------------------------- /serverless-node/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["es2017"], 4 | "removeComments": true, 5 | "moduleResolution": "node", 6 | "noUnusedLocals": true, 7 | "noUnusedParameters": true, 8 | "sourceMap": true, 9 | "target": "es2017", 10 | "outDir": "lib", 11 | "inlineSources": true, 12 | "esModuleInterop": true, 13 | "sourceRoot": "/" 14 | }, 15 | "include": ["./**/*.ts"], 16 | "exclude": [ 17 | "node_modules/**/*", 18 | ".serverless/**/*", 19 | ".webpack/**/*", 20 | "_warmup/**/*", 21 | ".vscode/**/*" 22 | ] 23 | } -------------------------------------------------------------------------------- /serverless-node/webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | const slsw = require('serverless-webpack') 3 | const nodeExternals = require('webpack-node-externals') 4 | 5 | module.exports = { 6 | context: __dirname, 7 | mode: slsw.lib.webpack.isLocal ? 'development' : 'production', 8 | entry: slsw.lib.entries, 9 | // devtool: slsw.lib.webpack.isLocal 10 | // ? 'cheap-module-eval-source-map' 11 | // : 'source-map', 12 | resolve: { 13 | extensions: ['.mjs', '.json', '.ts'], 14 | symlinks: false, 15 | cacheWithContext: false 16 | }, 17 | output: { 18 | libraryTarget: 'commonjs', 19 | path: path.join(__dirname, '.webpack'), 20 | filename: '[name].js' 21 | }, 22 | target: 'node', 23 | node: { 24 | __dirname: true, 25 | }, 26 | externals: [nodeExternals()], 27 | module: { 28 | rules: [ 29 | { 30 | test: /\.(tsx?)$/, 31 | loader: 'ts-loader', 32 | exclude: [ 33 | [ 34 | path.resolve(__dirname, 'node_modules'), 35 | path.resolve(__dirname, '.serverless'), 36 | path.resolve(__dirname, '.webpack') 37 | ] 38 | ], 39 | options: { 40 | transpileOnly: true, 41 | experimentalWatchApi: true 42 | } 43 | } 44 | ] 45 | } 46 | } 47 | --------------------------------------------------------------------------------