UNPKG

5.43 kBSource Map (JSON)View Raw
1{"version":3,"file":"server-root.js","sourceRoot":"","sources":["../../../../src/http/server-root.ts"],"names":[],"mappings":";;;AAQA,2CAAmD;AACnD,2BAA6B;AAE7B,8DAAuF;AAEvF,6CAA8D;AAE9D,6DAA+D;AAC/D,iEAAoE;AACpE,iEAAoE;AACpE,+EAAkF;AAClF,mEAAsE;AACtE,2CAA8C;AAC9C,2CAAoD;AACpD,mDAAsD;AAOtD,SAAgB,UAAU,CAAC,MAAc,EAAE,SAA8B;IAErE,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,UAAC,IAAqB,EAAE,GAAqB;QAQhE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAE5B,IAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ;YACjC,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,YAAY,EAAE;YAElD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EACvC,GAAG,CAAC,SAAS,CAAC,8BAA8B,CAAY,CAAC,QAAQ,EAAE;gBACpE,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;SACvC;QAMD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,UAAC,IAAqB,EAAE,GAAqB;QAE5D,IAAM,IAAI,GACN,mEAKV,MAAM,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,UAAC,GAAG;YACnB,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC3D,OAAO,oBACP,2BAAc,SAAI,qCAA0B,CAAC,cAAc,CAAC,YAC1E,iBAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAEvC,CAAC;QACU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IACrB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAEhB,mDAA0B,wCAErC,uDAGe,mCAAkB,SAAI,mBAAK,8CAEzC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBACpB,iCAAoB,qEACpB,4CAAsB,2CACrC,YAEC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBACZ,iDAAyB,0EACzB,iDAAyB,sEACzB,+DAAgC,kDAC/C,0BAIA,CAAC;QAEM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC;AAtED,gCAsEC","sourcesContent":["// ==LICENSE-BEGIN==\n// Copyright 2017 European Digital Reading Lab. All rights reserved.\n// Licensed to the Readium Foundation under one or more contributor license agreements.\n// Use of this source code is governed by a BSD-style license\n// that can be found in the LICENSE file exposed on Github (readium) in the project repository.\n// ==LICENSE-END==\n\nimport * as express from \"express\";\nimport { html as beautifyHtml } from \"js-beautify\";\nimport * as path from \"path\";\n\nimport { encodeURIComponent_RFC3986, isHTTP } from \"@r2-utils-js/_utils/http/UrlUtils\";\n\nimport { _jsonPath, _show, _urlEncoded } from \"./request-ext\";\nimport { Server } from \"./server\";\nimport { serverLCPLSD_show_PATH } from \"./server-lcp-lsd-show\";\nimport { serverOPDS_browse_v1_PATH } from \"./server-opds-browse-v1\";\nimport { serverOPDS_browse_v2_PATH } from \"./server-opds-browse-v2\";\nimport { serverOPDS_convert_v1_to_v2_PATH } from \"./server-opds-convert-v1-to-v2\";\nimport { serverOPDS_local_feed_PATH } from \"./server-opds-local-feed\";\nimport { serverPub_PATH } from \"./server-pub\";\nimport { serverRemotePub_PATH } from \"./server-url\";\nimport { serverVersion_PATH } from \"./server-version\";\n\n// import * as debug_ from \"debug\";\n// const debug = debug_(\"r2:streamer#http/server-root\");\n\n// const IS_DEV = (process.env.NODE_ENV === \"development\" || process.env.NODE_ENV === \"dev\");\n\nexport function serverRoot(server: Server, topRouter: express.Application) {\n\n topRouter.options(\"*\", (_req: express.Request, res: express.Response) => {\n\n // console.log(req.url);\n\n // Object.keys(req.headers).forEach((header: string) => {\n // console.log(header + \" => \" + req.headers[header]);\n // });\n\n server.setResponseCORS(res);\n\n const serverData = server.serverInfo();\n if (serverData && serverData.trustKey &&\n serverData.trustCheck && serverData.trustCheckIV) {\n\n res.setHeader(\"Access-Control-Allow-Headers\",\n (res.getHeader(\"Access-Control-Allow-Headers\") as string).toString() +\n \", X-\" + serverData.trustCheck); // access-control-request-headers\n }\n\n // Object.keys(res.getHeaders()).forEach((header: string) => {\n // console.log(header + \" => \" + res.getHeaders()[header]);\n // });\n\n res.status(200).end();\n });\n\n topRouter.get(\"/\", (_req: express.Request, res: express.Response) => {\n\n const html =\n `\\\n<!DOCTYPE html>\n<html>\n<body>\n<h1>Local Publications</h1>\n${server.getPublications().map((pub) => {\n const filePathBase64 = Buffer.from(pub).toString(\"base64\");\n return `\\\n<h2><a href=\".${serverPub_PATH}/${encodeURIComponent_RFC3986(filePathBase64)}\">\\\n${isHTTP(pub) ? pub : path.basename(pub)}\\\n</a></h2>\n`;\n }).join(\"\")}\\\n${server.disableOPDS ? \"\" : `\\\n<p>\n<a href='.${serverOPDS_local_feed_PATH}'>See OPDS2 Feed</a> (JSON)\n</p>\n`}\\\n<h1>Additional Services</h1>\n\n<h2><a href='.${serverVersion_PATH}/${_show}'>Display Server Version</a></h2>\n\n${server.disableRemotePubUrl ? \"\" : `\\\n<h2><a href='.${serverRemotePub_PATH}'>Load Remote Publication</a> (HTTP URL)</h2>\n<h2><a href='.${serverLCPLSD_show_PATH}'>Show LCP / LSD</a> (HTTP URL)</h2>\n`}\\\n\n${server.disableOPDS ? \"\" : `\\\n<h2><a href='.${serverOPDS_browse_v1_PATH}'>Browse OPDS1 (XML/Atom) feed</a> (HTTP URL)</h2>\n<h2><a href='.${serverOPDS_browse_v2_PATH}'>Browse OPDS2 (JSON) feed</a> (HTTP URL)</h2>\n<h2><a href='.${serverOPDS_convert_v1_to_v2_PATH}'>Convert OPDS v1 to v2</a> (HTTP URL)</h2>\n`}\\\n\n</body>\n</html>\n`;\n\n res.status(200).send(beautifyHtml(html));\n });\n}\n"]}
\No newline at end of file