occam-server 2.0.1 → 7.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/.swcrc +5 -0
  2. package/README.md +40 -30
  3. package/lib/constants.js +26 -0
  4. package/lib/createProjectEntries.js +63 -0
  5. package/lib/index.js +75 -0
  6. package/lib/loadFile.js +18 -0
  7. package/lib/loadFiles.js +18 -0
  8. package/lib/loadProject.js +18 -0
  9. package/lib/loadProjects.js +18 -0
  10. package/lib/loadRelease.js +18 -0
  11. package/lib/loadReleases.js +18 -0
  12. package/lib/moveProjectEntries.js +77 -0
  13. package/lib/removeProjectEntries.js +68 -0
  14. package/lib/removeRelease.js +32 -0
  15. package/lib/renameProjectEntries.js +74 -0
  16. package/lib/saveFile.js +19 -0
  17. package/lib/utilities/fileSystem.js +255 -0
  18. package/lib/utilities/http.js +76 -0
  19. package/lib/utilities/name.js +16 -0
  20. package/lib/utilities/pathMap.js +58 -0
  21. package/license.txt +48 -0
  22. package/package.json +20 -22
  23. package/src/constants.js +5 -0
  24. package/src/createProjectEntries.js +71 -0
  25. package/src/index.js +16 -0
  26. package/src/loadFile.js +15 -0
  27. package/src/loadFiles.js +15 -0
  28. package/src/loadProject.js +15 -0
  29. package/src/loadProjects.js +14 -0
  30. package/src/loadRelease.js +14 -0
  31. package/src/loadReleases.js +13 -0
  32. package/src/moveProjectEntries.js +102 -0
  33. package/src/removeProjectEntries.js +79 -0
  34. package/src/removeRelease.js +35 -0
  35. package/src/renameProjectEntries.js +101 -0
  36. package/src/saveFile.js +14 -0
  37. package/src/utilities/fileSystem.js +364 -0
  38. package/src/utilities/http.js +71 -0
  39. package/src/utilities/name.js +7 -0
  40. package/src/utilities/pathMap.js +39 -0
  41. package/es6/handler/importProject.js +0 -23
  42. package/es6/handler/loadFile.js +0 -27
  43. package/es6/handler/loadFiles.js +0 -25
  44. package/es6/handler/loadProjects.js +0 -29
  45. package/es6/handler/moveProjectEntries.js +0 -24
  46. package/es6/handler/removeProjectEntries.js +0 -24
  47. package/es6/handler/saveFile.js +0 -26
  48. package/es6/handler/saveFiles.js +0 -26
  49. package/es6/handlers.js +0 -67
  50. package/es6/httpResponse.js +0 -46
  51. package/es6/main.js +0 -36
  52. package/es6/middleware/error.js +0 -11
  53. package/es6/paths.js +0 -7
  54. package/es6/routers.js +0 -47
  55. package/es6/uris.js +0 -25
  56. package/es6/utilities/query.js +0 -15
  57. package/index.js +0 -3
  58. package/lib/handler/importProject.js +0 -26
  59. package/lib/handler/loadFile.js +0 -29
  60. package/lib/handler/loadFiles.js +0 -28
  61. package/lib/handler/loadProjects.js +0 -31
  62. package/lib/handler/moveProjectEntries.js +0 -29
  63. package/lib/handler/removeProjectEntries.js +0 -29
  64. package/lib/handler/saveFile.js +0 -31
  65. package/lib/handler/saveFiles.js +0 -31
  66. package/lib/handlers.js +0 -81
  67. package/lib/httpResponse.js +0 -47
  68. package/lib/main.js +0 -41
  69. package/lib/middleware/error.js +0 -12
  70. package/lib/paths.js +0 -8
  71. package/lib/routers.js +0 -52
  72. package/lib/uris.js +0 -26
  73. package/lib/utilities/query.js +0 -16
package/es6/handlers.js DELETED
@@ -1,67 +0,0 @@
1
- 'use strict';
2
-
3
- const necessary = require('necessary');
4
-
5
- const uris = require('./uris'),
6
- paths = require('./paths'),
7
- httpResponse = require('./httpResponse'),
8
- saveFilesHandler = require('./handler/saveFiles'),
9
- saveFileHandler = require('./handler/saveFile'),
10
- loadFileHandler = require('./handler/loadFile'),
11
- loadFilesHandler = require('./handler/loadFiles'),
12
- loadProjectsHandler = require('./handler/loadProjects'),
13
- importProjectHandler = require('./handler/importProject'),
14
- moveProjectEntriesHandler = require('./handler/moveProjectEntries'),
15
- removeProjectEntriesHandler = require('./handler/removeProjectEntries');
16
-
17
- const { templateUtilities } = necessary,
18
- { parseFile } = templateUtilities,
19
- { INDEX_TEMPLATE_PATH } = paths,
20
- { SAVE_FILES_URI,
21
- SAVE_FILE_URI,
22
- LOAD_FILE_URI,
23
- LOAD_FILES_URI,
24
- LOAD_PROJECTS_URI,
25
- IMPORT_PROJECT_URI,
26
- MOVE_PROJECT_ENTRIES_URI,
27
- REMOVE_PROJECT_ENTRIES_URI } = uris;
28
-
29
- function createRestfulHandler(options, pathResolver) {
30
- return function (request, response, next) {
31
- const {path} = request;
32
-
33
- try {
34
- switch (path) {
35
- case SAVE_FILES_URI: saveFilesHandler(request, response, next); break;
36
- case SAVE_FILE_URI: saveFileHandler(request, response, next); break;
37
- case LOAD_FILE_URI: loadFileHandler(request, response, next); break;
38
- case LOAD_FILES_URI: loadFilesHandler(request, response, next); break;
39
- case LOAD_PROJECTS_URI: loadProjectsHandler(request, response, next); break;
40
- case IMPORT_PROJECT_URI: importProjectHandler(request, response, next); break;
41
- case MOVE_PROJECT_ENTRIES_URI: moveProjectEntriesHandler(request, response, next); break;
42
- case REMOVE_PROJECT_ENTRIES_URI: removeProjectEntriesHandler(request, response, next); break;
43
- }
44
- } catch (error) {
45
- next(error);
46
- }
47
- };
48
- }
49
-
50
- function createIndexPageHandler(options, pathResolver) {
51
- return function (request, response, next) {
52
- const { fileSystemHost, concurrentLayerProtocolHost, templateDirectoryPath } = options,
53
- filePath = pathResolver(`${templateDirectoryPath}${INDEX_TEMPLATE_PATH}`),
54
- args = {
55
- fileSystemHost: fileSystemHost,
56
- concurrentLayerProtocolHost: concurrentLayerProtocolHost
57
- },
58
- html = parseFile(filePath, args);
59
-
60
- httpResponse.html(response, html);
61
- };
62
- }
63
-
64
- module.exports = {
65
- createRestfulHandler,
66
- createIndexPageHandler
67
- };
@@ -1,46 +0,0 @@
1
- 'use strict';
2
-
3
- function ok(response) {
4
- const responseBody = 'OK';
5
-
6
- response.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'});
7
-
8
- response.end(responseBody);
9
- }
10
-
11
- function html(response, html) {
12
- const responseBody = html;
13
-
14
- response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
15
-
16
- response.end(responseBody);
17
- }
18
-
19
- function json(response, json) {
20
- const responseBody = JSON.stringify(json);
21
-
22
- response.writeHead(200, {'Content-Type': 'application/json; charset=utf-8'});
23
-
24
- response.end(responseBody);
25
- }
26
-
27
- function redirect(response, location, cookie) {
28
- const headers = {
29
- 'Location': location
30
- };
31
-
32
- if (cookie) {
33
- cookie.write(response);
34
- }
35
-
36
- response.writeHead(302, headers);
37
-
38
- response.end();
39
- }
40
-
41
- module.exports = {
42
- ok,
43
- html,
44
- json,
45
- redirect
46
- };
package/es6/main.js DELETED
@@ -1,36 +0,0 @@
1
- 'use strict';
2
-
3
- const express = require('express');
4
-
5
- const routers = require('./routers');
6
-
7
- const { createStaticRouter, createRestfulRouter, createDefaultRouter } = routers;
8
-
9
- const server = express(); ///
10
-
11
- function start(options, pathResolver, done) {
12
- const { port } = options;
13
-
14
- const staticRouter = createStaticRouter(options, pathResolver),
15
- restfulRouter = createRestfulRouter(options, pathResolver),
16
- defaultRouter = createDefaultRouter(options, pathResolver);
17
-
18
- server.use(defaultRouter);
19
-
20
- server.use(restfulRouter);
21
-
22
- server.use(staticRouter);
23
-
24
- server.listen(port, done);
25
- }
26
-
27
- function stop(done) {
28
- server.stop();
29
-
30
- server.close(done);
31
- }
32
-
33
- module.exports = {
34
- start,
35
- stop
36
- };
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- const httpResponse = require('../httpResponse');
4
-
5
- function errorMiddleware(error, request, response, next) {
6
- const json = null; ///
7
-
8
- httpResponse.json(response, json);
9
- }
10
-
11
- module.exports = errorMiddleware;
package/es6/paths.js DELETED
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- const INDEX_TEMPLATE_PATH = '/index.html';
4
-
5
- module.exports = {
6
- INDEX_TEMPLATE_PATH
7
- };
package/es6/routers.js DELETED
@@ -1,47 +0,0 @@
1
- 'use strict';
2
-
3
- const express = require('express'),
4
- bodyParser = require('body-parser');
5
-
6
- const uris = require('./uris'),
7
- handlers = require('./handlers'),
8
- errorMiddleware = require('./middleware/error');
9
-
10
- const { INDEX_PAGE_URI, WILDCARD_PAGE_URI } = uris,
11
- { createRestfulHandler, createIndexPageHandler } = handlers;
12
-
13
- function createStaticRouter(options, pathResolver) {
14
- const { publicDirectoryPath } = options,
15
- staticRouter = express.static(pathResolver(publicDirectoryPath));
16
-
17
- return staticRouter;
18
- }
19
-
20
- function createRestfulRouter(options, pathResolver) {
21
- const restfulRouter = express.Router(),
22
- jsonBodyParser = bodyParser.json(),
23
- restfulHandler = createRestfulHandler(options, pathResolver);
24
-
25
- restfulRouter.use(jsonBodyParser);
26
-
27
- restfulRouter.post(WILDCARD_PAGE_URI, restfulHandler);
28
-
29
- restfulRouter.use(errorMiddleware);
30
-
31
- return restfulRouter;
32
- }
33
-
34
- function createDefaultRouter(options, pathResolver) {
35
- const defaultRouter = express.Router(),
36
- indexPageHandler = createIndexPageHandler(options, pathResolver);
37
-
38
- defaultRouter.get(INDEX_PAGE_URI, indexPageHandler);
39
-
40
- return defaultRouter;
41
- }
42
-
43
- module.exports = {
44
- createStaticRouter,
45
- createRestfulRouter,
46
- createDefaultRouter
47
- };
package/es6/uris.js DELETED
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- const WILDCARD_PAGE_URI = '*',
4
- INDEX_PAGE_URI = '/',
5
- SAVE_FILES_URI = '/SAVE_FILES',
6
- SAVE_FILE_URI = '/SAVE_FILE',
7
- LOAD_FILE_URI = '/LOAD_FILE',
8
- LOAD_FILES_URI = '/LOAD_FILES',
9
- LOAD_PROJECTS_URI = '/LOAD_PROJECTS',
10
- IMPORT_PROJECT_URI = '/IMPORT_PROJECT',
11
- MOVE_PROJECT_ENTRIES_URI = '/MOVE_PROJECT_ENTRIES',
12
- REMOVE_PROJECT_ENTRIES_URI = '/REMOVE_PROJECT_ENTRIES';
13
-
14
- module.exports = {
15
- WILDCARD_PAGE_URI,
16
- INDEX_PAGE_URI,
17
- SAVE_FILES_URI,
18
- SAVE_FILE_URI,
19
- LOAD_FILE_URI,
20
- LOAD_FILES_URI,
21
- LOAD_PROJECTS_URI,
22
- IMPORT_PROJECT_URI,
23
- MOVE_PROJECT_ENTRIES_URI,
24
- REMOVE_PROJECT_ENTRIES_URI
25
- };
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- function toBoolean(value) {
4
- if (value === 'true') {
5
- return true;
6
- }
7
-
8
- if (value === 'false') {
9
- return false;
10
- }
11
- }
12
-
13
- module.exports = {
14
- toBoolean
15
- };
package/index.js DELETED
@@ -1,3 +0,0 @@
1
- 'use strict';
2
-
3
- module.exports = require('./lib/main'); ///
@@ -1,26 +0,0 @@
1
- 'use strict';
2
-
3
- var filesystem = require('occam-file-system'); ///
4
-
5
- var httpResponse = require('../httpResponse');
6
-
7
- var importProject = filesystem.importProject;
8
-
9
-
10
- function importProjectHandler(request, response, next) {
11
- var query = request.query,
12
- url = query.url;
13
-
14
-
15
- importProject(url, function (project) {
16
- var projectJSON = project.toJSON(),
17
- responseJSON = projectJSON; ///
18
-
19
- httpResponse.json(response, responseJSON);
20
-
21
- next();
22
- });
23
- }
24
-
25
- module.exports = importProjectHandler;
26
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2VzNi9oYW5kbGVyL2ltcG9ydFByb2plY3QuanMiXSwibmFtZXMiOlsiZmlsZXN5c3RlbSIsInJlcXVpcmUiLCJodHRwUmVzcG9uc2UiLCJpbXBvcnRQcm9qZWN0IiwiaW1wb3J0UHJvamVjdEhhbmRsZXIiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJuZXh0IiwicXVlcnkiLCJ1cmwiLCJwcm9qZWN0IiwicHJvamVjdEpTT04iLCJ0b0pTT04iLCJyZXNwb25zZUpTT04iLCJqc29uIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsSUFBTUEsYUFBYUMsUUFBUSxtQkFBUixDQUFuQixDLENBQWtEOztBQUVsRCxJQUFNQyxlQUFlRCxRQUFRLGlCQUFSLENBQXJCOztJQUVRRSxhLEdBQWtCSCxVLENBQWxCRyxhOzs7QUFFUixTQUFTQyxvQkFBVCxDQUE4QkMsT0FBOUIsRUFBdUNDLFFBQXZDLEVBQWlEQyxJQUFqRCxFQUF1RDtBQUMvQyxNQUFFQyxLQUFGLEdBQWFILE9BQWIsQ0FBRUcsS0FBRjtBQUFBLE1BQ0VDLEdBREYsR0FDVUQsS0FEVixDQUNFQyxHQURGOzs7QUFHTk4sZ0JBQWNNLEdBQWQsRUFBbUIsVUFBU0MsT0FBVCxFQUFrQjtBQUNuQyxRQUFNQyxjQUFjRCxRQUFRRSxNQUFSLEVBQXBCO0FBQUEsUUFDTUMsZUFBZUYsV0FEckIsQ0FEbUMsQ0FFRDs7QUFFbENULGlCQUFhWSxJQUFiLENBQWtCUixRQUFsQixFQUE0Qk8sWUFBNUI7O0FBRUFOO0FBQ0QsR0FQRDtBQVFEOztBQUVEUSxPQUFPQyxPQUFQLEdBQWlCWixvQkFBakIiLCJmaWxlIjoiaW1wb3J0UHJvamVjdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuY29uc3QgZmlsZXN5c3RlbSA9IHJlcXVpcmUoJ29jY2FtLWZpbGUtc3lzdGVtJyk7ICAvLy9cblxuY29uc3QgaHR0cFJlc3BvbnNlID0gcmVxdWlyZSgnLi4vaHR0cFJlc3BvbnNlJyk7XG5cbmNvbnN0IHsgaW1wb3J0UHJvamVjdCB9ID0gZmlsZXN5c3RlbTtcblxuZnVuY3Rpb24gaW1wb3J0UHJvamVjdEhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UsIG5leHQpIHtcbiAgY29uc3QgeyBxdWVyeSwgfSA9IHJlcXVlc3QsXG4gICAgICAgIHsgdXJsIH0gPSBxdWVyeTtcblxuICBpbXBvcnRQcm9qZWN0KHVybCwgZnVuY3Rpb24ocHJvamVjdCkge1xuICAgIGNvbnN0IHByb2plY3RKU09OID0gcHJvamVjdC50b0pTT04oKSxcbiAgICAgICAgICByZXNwb25zZUpTT04gPSBwcm9qZWN0SlNPTjsgLy8vXG5cbiAgICBodHRwUmVzcG9uc2UuanNvbihyZXNwb25zZSwgcmVzcG9uc2VKU09OKTtcblxuICAgIG5leHQoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW1wb3J0UHJvamVjdEhhbmRsZXI7XG4iXX0=
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- var filesystem = require('occam-file-system'); ///
4
-
5
- var httpResponse = require('../httpResponse');
6
-
7
- var loadFile = filesystem.loadFile;
8
-
9
-
10
- function loadFileHandler(request, response, next) {
11
- var query = request.query,
12
- body = request.body,
13
- filePath = body.filePath,
14
- projectsDirectoryPath = query.projectsDirectoryPath,
15
- path = filePath; ///
16
-
17
- loadFile(projectsDirectoryPath, path, function (file) {
18
- var fileJSON = file !== null ? ///
19
- file.toJSON() : null,
20
- responseJSON = fileJSON; ///
21
-
22
- httpResponse.json(response, responseJSON);
23
-
24
- next();
25
- });
26
- }
27
-
28
- module.exports = loadFileHandler;
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2VzNi9oYW5kbGVyL2xvYWRGaWxlLmpzIl0sIm5hbWVzIjpbImZpbGVzeXN0ZW0iLCJyZXF1aXJlIiwiaHR0cFJlc3BvbnNlIiwibG9hZEZpbGUiLCJsb2FkRmlsZUhhbmRsZXIiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJuZXh0IiwicXVlcnkiLCJib2R5IiwiZmlsZVBhdGgiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJwYXRoIiwiZmlsZSIsImZpbGVKU09OIiwidG9KU09OIiwicmVzcG9uc2VKU09OIiwianNvbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBLElBQU1BLGFBQWFDLFFBQVEsbUJBQVIsQ0FBbkIsQyxDQUFrRDs7QUFFbEQsSUFBTUMsZUFBZUQsUUFBUSxpQkFBUixDQUFyQjs7SUFFUUUsUSxHQUFhSCxVLENBQWJHLFE7OztBQUVSLFNBQVNDLGVBQVQsQ0FBeUJDLE9BQXpCLEVBQWtDQyxRQUFsQyxFQUE0Q0MsSUFBNUMsRUFBa0Q7QUFBQSxNQUN4Q0MsS0FEd0MsR0FDeEJILE9BRHdCLENBQ3hDRyxLQUR3QztBQUFBLE1BQ2pDQyxJQURpQyxHQUN4QkosT0FEd0IsQ0FDakNJLElBRGlDO0FBQUEsTUFFeENDLFFBRndDLEdBRTNCRCxJQUYyQixDQUV4Q0MsUUFGd0M7QUFBQSxNQUd4Q0MscUJBSHdDLEdBR2RILEtBSGMsQ0FHeENHLHFCQUh3QztBQUFBLE1BSTFDQyxJQUowQyxHQUluQ0YsUUFKbUMsRUFJeEI7O0FBRXhCUCxXQUFTUSxxQkFBVCxFQUFnQ0MsSUFBaEMsRUFBc0MsVUFBU0MsSUFBVCxFQUFlO0FBQ25ELFFBQU1DLFdBQVlELFNBQVMsSUFBVixHQUFtQjtBQUNoQkEsU0FBS0UsTUFBTCxFQURILEdBRUssSUFGdEI7QUFBQSxRQUdNQyxlQUFlRixRQUhyQixDQURtRCxDQUluQjs7QUFFaENaLGlCQUFhZSxJQUFiLENBQWtCWCxRQUFsQixFQUE0QlUsWUFBNUI7O0FBRUFUO0FBQ0QsR0FURDtBQVVEOztBQUVEVyxPQUFPQyxPQUFQLEdBQWlCZixlQUFqQiIsImZpbGUiOiJsb2FkRmlsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuY29uc3QgZmlsZXN5c3RlbSA9IHJlcXVpcmUoJ29jY2FtLWZpbGUtc3lzdGVtJyk7ICAvLy9cblxuY29uc3QgaHR0cFJlc3BvbnNlID0gcmVxdWlyZSgnLi4vaHR0cFJlc3BvbnNlJyk7XG5cbmNvbnN0IHsgbG9hZEZpbGUgfSA9IGZpbGVzeXN0ZW07XG5cbmZ1bmN0aW9uIGxvYWRGaWxlSGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCkge1xuICBjb25zdCB7IHF1ZXJ5LCBib2R5IH0gPSByZXF1ZXN0LFxuICAgICAgICB7IGZpbGVQYXRoIH0gPSBib2R5LFxuICAgICAgICB7IHByb2plY3RzRGlyZWN0b3J5UGF0aCB9ID0gcXVlcnksXG4gICAgICAgIHBhdGggPSBmaWxlUGF0aDsgIC8vL1xuXG4gIGxvYWRGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCwgZnVuY3Rpb24oZmlsZSkge1xuICAgIGNvbnN0IGZpbGVKU09OID0gKGZpbGUgIT09IG51bGwpID8gIC8vL1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS50b0pTT04oKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgcmVzcG9uc2VKU09OID0gZmlsZUpTT047ICAvLy9cblxuICAgIGh0dHBSZXNwb25zZS5qc29uKHJlc3BvbnNlLCByZXNwb25zZUpTT04pO1xuXG4gICAgbmV4dCgpO1xuICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsb2FkRmlsZUhhbmRsZXI7XG4iXX0=
@@ -1,28 +0,0 @@
1
- 'use strict';
2
-
3
- var filesystem = require('occam-file-system'); ///
4
-
5
- var httpResponse = require('../httpResponse');
6
-
7
- var loadFiles = filesystem.loadFiles;
8
-
9
-
10
- function loadFilesHandler(request, response, next) {
11
- var query = request.query,
12
- body = request.body,
13
- filePaths = body.filePaths,
14
- projectsDirectoryPath = query.projectsDirectoryPath,
15
- paths = filePaths; ///
16
-
17
- loadFiles(projectsDirectoryPath, paths, function (files) {
18
- var filesJSON = files.toJSON(),
19
- responseJSON = filesJSON; ///
20
-
21
- httpResponse.json(response, responseJSON);
22
-
23
- next();
24
- });
25
- }
26
-
27
- module.exports = loadFilesHandler;
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2VzNi9oYW5kbGVyL2xvYWRGaWxlcy5qcyJdLCJuYW1lcyI6WyJmaWxlc3lzdGVtIiwicmVxdWlyZSIsImh0dHBSZXNwb25zZSIsImxvYWRGaWxlcyIsImxvYWRGaWxlc0hhbmRsZXIiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJuZXh0IiwicXVlcnkiLCJib2R5IiwiZmlsZVBhdGhzIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwicGF0aHMiLCJmaWxlcyIsImZpbGVzSlNPTiIsInRvSlNPTiIsInJlc3BvbnNlSlNPTiIsImpzb24iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxJQUFNQSxhQUFhQyxRQUFRLG1CQUFSLENBQW5CLEMsQ0FBa0Q7O0FBRWxELElBQU1DLGVBQWVELFFBQVEsaUJBQVIsQ0FBckI7O0lBRVFFLFMsR0FBY0gsVSxDQUFkRyxTOzs7QUFFUixTQUFTQyxnQkFBVCxDQUEwQkMsT0FBMUIsRUFBbUNDLFFBQW5DLEVBQTZDQyxJQUE3QyxFQUFtRDtBQUFBLFVBQ3pDQyxLQUR5QyxHQUN6QkgsT0FEeUIsQ0FDekNHLEtBRHlDO0FBQUEsVUFDbENDLElBRGtDLEdBQ3pCSixPQUR5QixDQUNsQ0ksSUFEa0M7QUFBQSxVQUV6Q0MsU0FGeUMsR0FFM0JELElBRjJCLENBRXpDQyxTQUZ5QztBQUFBLFVBR3pDQyxxQkFIeUMsR0FHZkgsS0FIZSxDQUd6Q0cscUJBSHlDO0FBQUEsVUFJM0NDLEtBSjJDLEdBSW5DRixTQUptQyxFQUl2Qjs7QUFFMUJQLGdCQUFVUSxxQkFBVixFQUFpQ0MsS0FBakMsRUFBd0MsVUFBU0MsS0FBVCxFQUFnQjtBQUN0RCxnQkFBTUMsWUFBWUQsTUFBTUUsTUFBTixFQUFsQjtBQUFBLGdCQUNNQyxlQUFlRixTQURyQixDQURzRCxDQUV0Qjs7QUFFaENaLHlCQUFhZSxJQUFiLENBQWtCWCxRQUFsQixFQUE0QlUsWUFBNUI7O0FBRUFUO0FBQ0QsT0FQRDtBQVFEOztBQUVEVyxPQUFPQyxPQUFQLEdBQWlCZixnQkFBakIiLCJmaWxlIjoibG9hZEZpbGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBmaWxlc3lzdGVtID0gcmVxdWlyZSgnb2NjYW0tZmlsZS1zeXN0ZW0nKTsgIC8vL1xuXG5jb25zdCBodHRwUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9odHRwUmVzcG9uc2UnKTtcblxuY29uc3QgeyBsb2FkRmlsZXMgfSA9IGZpbGVzeXN0ZW07XG5cbmZ1bmN0aW9uIGxvYWRGaWxlc0hhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UsIG5leHQpIHtcbiAgY29uc3QgeyBxdWVyeSwgYm9keSB9ID0gcmVxdWVzdCxcbiAgICAgICAgeyBmaWxlUGF0aHMgfSA9IGJvZHksXG4gICAgICAgIHsgcHJvamVjdHNEaXJlY3RvcnlQYXRoIH0gPSBxdWVyeSxcbiAgICAgICAgcGF0aHMgPSBmaWxlUGF0aHM7ICAvLy9cblxuICBsb2FkRmlsZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRocywgZnVuY3Rpb24oZmlsZXMpIHtcbiAgICBjb25zdCBmaWxlc0pTT04gPSBmaWxlcy50b0pTT04oKSxcbiAgICAgICAgICByZXNwb25zZUpTT04gPSBmaWxlc0pTT047IC8vL1xuXG4gICAgaHR0cFJlc3BvbnNlLmpzb24ocmVzcG9uc2UsIHJlc3BvbnNlSlNPTik7XG5cbiAgICBuZXh0KCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxvYWRGaWxlc0hhbmRsZXI7XG4iXX0=
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- var filesystem = require('occam-file-system'); ///
4
-
5
- var httpResponse = require('../httpResponse'),
6
- queryUtilities = require('../utilities/query');
7
-
8
- var toBoolean = queryUtilities.toBoolean,
9
- loadProjects = filesystem.loadProjects;
10
-
11
-
12
- function loadProjectsHandler(request, response, next) {
13
- var query = request.query,
14
- projectsDirectoryPath = query.projectsDirectoryPath;
15
- var doNotLoadHiddenFilesAndDirectories = query.doNotLoadHiddenFilesAndDirectories;
16
-
17
-
18
- doNotLoadHiddenFilesAndDirectories = toBoolean(doNotLoadHiddenFilesAndDirectories); ///
19
-
20
- loadProjects(projectsDirectoryPath, doNotLoadHiddenFilesAndDirectories, function (projects) {
21
- var projectsJSON = projects.toJSON(),
22
- responseJSON = projectsJSON; ///
23
-
24
- httpResponse.json(response, responseJSON);
25
-
26
- next();
27
- });
28
- }
29
-
30
- module.exports = loadProjectsHandler;
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2VzNi9oYW5kbGVyL2xvYWRQcm9qZWN0cy5qcyJdLCJuYW1lcyI6WyJmaWxlc3lzdGVtIiwicmVxdWlyZSIsImh0dHBSZXNwb25zZSIsInF1ZXJ5VXRpbGl0aWVzIiwidG9Cb29sZWFuIiwibG9hZFByb2plY3RzIiwibG9hZFByb2plY3RzSGFuZGxlciIsInJlcXVlc3QiLCJyZXNwb25zZSIsIm5leHQiLCJxdWVyeSIsInByb2plY3RzRGlyZWN0b3J5UGF0aCIsImRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMiLCJwcm9qZWN0cyIsInByb2plY3RzSlNPTiIsInRvSlNPTiIsInJlc3BvbnNlSlNPTiIsImpzb24iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxJQUFNQSxhQUFhQyxRQUFRLG1CQUFSLENBQW5CLEMsQ0FBa0Q7O0FBRWxELElBQU1DLGVBQWVELFFBQVEsaUJBQVIsQ0FBckI7QUFBQSxJQUNNRSxpQkFBaUJGLFFBQVEsb0JBQVIsQ0FEdkI7O0FBR00sSUFBRUcsU0FBRixHQUFnQkQsY0FBaEIsQ0FBRUMsU0FBRjtBQUFBLElBQ0VDLFlBREYsR0FDbUJMLFVBRG5CLENBQ0VLLFlBREY7OztBQUdOLFNBQVNDLG1CQUFULENBQTZCQyxPQUE3QixFQUFzQ0MsUUFBdEMsRUFBZ0RDLElBQWhELEVBQXNEO0FBQzlDLFVBQUVDLEtBQUYsR0FBWUgsT0FBWixDQUFFRyxLQUFGO0FBQUEsVUFDRUMscUJBREYsR0FDNEJELEtBRDVCLENBQ0VDLHFCQURGO0FBRDhDLFVBSTlDQyxrQ0FKOEMsR0FJUEYsS0FKTyxDQUk5Q0Usa0NBSjhDOzs7QUFNcERBLDJDQUFxQ1IsVUFBVVEsa0NBQVYsQ0FBckMsQ0FOb0QsQ0FNZ0M7O0FBRXBGUCxtQkFBYU0scUJBQWIsRUFBb0NDLGtDQUFwQyxFQUF3RSxVQUFTQyxRQUFULEVBQW1CO0FBQ3pGLGdCQUFNQyxlQUFlRCxTQUFTRSxNQUFULEVBQXJCO0FBQUEsZ0JBQ01DLGVBQWVGLFlBRHJCLENBRHlGLENBRXJEOztBQUVwQ1oseUJBQWFlLElBQWIsQ0FBa0JULFFBQWxCLEVBQTRCUSxZQUE1Qjs7QUFFQVA7QUFDRCxPQVBEO0FBUUQ7O0FBRURTLE9BQU9DLE9BQVAsR0FBaUJiLG1CQUFqQiIsImZpbGUiOiJsb2FkUHJvamVjdHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmNvbnN0IGZpbGVzeXN0ZW0gPSByZXF1aXJlKCdvY2NhbS1maWxlLXN5c3RlbScpOyAgLy8vXG5cbmNvbnN0IGh0dHBSZXNwb25zZSA9IHJlcXVpcmUoJy4uL2h0dHBSZXNwb25zZScpLFxuICAgICAgcXVlcnlVdGlsaXRpZXMgPSByZXF1aXJlKCcuLi91dGlsaXRpZXMvcXVlcnknKTtcblxuY29uc3QgeyB0b0Jvb2xlYW4gfSA9IHF1ZXJ5VXRpbGl0aWVzLFxuICAgICAgeyBsb2FkUHJvamVjdHMgfSA9IGZpbGVzeXN0ZW07XG5cbmZ1bmN0aW9uIGxvYWRQcm9qZWN0c0hhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UsIG5leHQpIHtcbiAgY29uc3QgeyBxdWVyeSB9ID0gcmVxdWVzdCxcbiAgICAgICAgeyBwcm9qZWN0c0RpcmVjdG9yeVBhdGggfSA9IHF1ZXJ5O1xuXG4gIGxldCB7IGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMgfSA9IHF1ZXJ5O1xuXG4gIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMgPSB0b0Jvb2xlYW4oZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcyk7IC8vL1xuXG4gIGxvYWRQcm9qZWN0cyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMsIGZ1bmN0aW9uKHByb2plY3RzKSB7XG4gICAgY29uc3QgcHJvamVjdHNKU09OID0gcHJvamVjdHMudG9KU09OKCksXG4gICAgICAgICAgcmVzcG9uc2VKU09OID0gcHJvamVjdHNKU09OOyAgLy8vXG5cbiAgICBodHRwUmVzcG9uc2UuanNvbihyZXNwb25zZSwgcmVzcG9uc2VKU09OKTtcblxuICAgIG5leHQoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbG9hZFByb2plY3RzSGFuZGxlcjtcbiJdfQ==
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- var filesystem = require('occam-file-system'); ///
4
-
5
- var httpResponse = require('../httpResponse');
6
-
7
- var moveProjectEntries = filesystem.moveProjectEntries;
8
-
9
-
10
- function moveProjectEntriesHandler(request, response, next) {
11
- var query = request.query,
12
- body = request.body,
13
- pathMaps = body.pathMaps,
14
- projectsDirectoryPath = query.projectsDirectoryPath;
15
-
16
-
17
- moveProjectEntries(projectsDirectoryPath, pathMaps, function (targetPaths) {
18
- var targetPathsJSON = targetPaths,
19
- ///
20
- responseJSON = targetPathsJSON; ///
21
-
22
- httpResponse.json(response, responseJSON);
23
-
24
- next();
25
- });
26
- }
27
-
28
- module.exports = moveProjectEntriesHandler;
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2VzNi9oYW5kbGVyL21vdmVQcm9qZWN0RW50cmllcy5qcyJdLCJuYW1lcyI6WyJmaWxlc3lzdGVtIiwicmVxdWlyZSIsImh0dHBSZXNwb25zZSIsIm1vdmVQcm9qZWN0RW50cmllcyIsIm1vdmVQcm9qZWN0RW50cmllc0hhbmRsZXIiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJuZXh0IiwicXVlcnkiLCJib2R5IiwicGF0aE1hcHMiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJ0YXJnZXRQYXRocyIsInRhcmdldFBhdGhzSlNPTiIsInJlc3BvbnNlSlNPTiIsImpzb24iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxJQUFNQSxhQUFhQyxRQUFRLG1CQUFSLENBQW5CLEMsQ0FBa0Q7O0FBRWxELElBQU1DLGVBQWVELFFBQVEsaUJBQVIsQ0FBckI7O0lBRVFFLGtCLEdBQXVCSCxVLENBQXZCRyxrQjs7O0FBRVIsU0FBU0MseUJBQVQsQ0FBbUNDLE9BQW5DLEVBQTRDQyxRQUE1QyxFQUFzREMsSUFBdEQsRUFBNEQ7QUFBQSxVQUNsREMsS0FEa0QsR0FDbENILE9BRGtDLENBQ2xERyxLQURrRDtBQUFBLFVBQzNDQyxJQUQyQyxHQUNsQ0osT0FEa0MsQ0FDM0NJLElBRDJDO0FBQUEsVUFFbERDLFFBRmtELEdBRXJDRCxJQUZxQyxDQUVsREMsUUFGa0Q7QUFBQSxVQUdsREMscUJBSGtELEdBR3hCSCxLQUh3QixDQUdsREcscUJBSGtEOzs7QUFLMURSLHlCQUFtQlEscUJBQW5CLEVBQTBDRCxRQUExQyxFQUFvRCxVQUFTRSxXQUFULEVBQXNCO0FBQ3hFLGdCQUFNQyxrQkFBa0JELFdBQXhCO0FBQUEsZ0JBQXNDO0FBQ2hDRSwyQkFBZUQsZUFEckIsQ0FEd0UsQ0FFakM7O0FBRXZDWCx5QkFBYWEsSUFBYixDQUFrQlQsUUFBbEIsRUFBNEJRLFlBQTVCOztBQUVBUDtBQUNELE9BUEQ7QUFRRDs7QUFFRFMsT0FBT0MsT0FBUCxHQUFpQmIseUJBQWpCIiwiZmlsZSI6Im1vdmVQcm9qZWN0RW50cmllcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuY29uc3QgZmlsZXN5c3RlbSA9IHJlcXVpcmUoJ29jY2FtLWZpbGUtc3lzdGVtJyk7ICAvLy9cblxuY29uc3QgaHR0cFJlc3BvbnNlID0gcmVxdWlyZSgnLi4vaHR0cFJlc3BvbnNlJyk7XG5cbmNvbnN0IHsgbW92ZVByb2plY3RFbnRyaWVzIH0gPSBmaWxlc3lzdGVtO1xuXG5mdW5jdGlvbiBtb3ZlUHJvamVjdEVudHJpZXNIYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlLCBuZXh0KSB7XG4gIGNvbnN0IHsgcXVlcnksIGJvZHkgfSA9IHJlcXVlc3QsXG4gICAgICAgIHsgcGF0aE1hcHMgfSA9IGJvZHksXG4gICAgICAgIHsgcHJvamVjdHNEaXJlY3RvcnlQYXRoIH0gPSBxdWVyeTtcblxuICBtb3ZlUHJvamVjdEVudHJpZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwcywgZnVuY3Rpb24odGFyZ2V0UGF0aHMpIHtcbiAgICBjb25zdCB0YXJnZXRQYXRoc0pTT04gPSB0YXJnZXRQYXRocywgIC8vL1xuICAgICAgICAgIHJlc3BvbnNlSlNPTiA9IHRhcmdldFBhdGhzSlNPTjsgIC8vL1xuXG4gICAgaHR0cFJlc3BvbnNlLmpzb24ocmVzcG9uc2UsIHJlc3BvbnNlSlNPTik7XG5cbiAgICBuZXh0KCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1vdmVQcm9qZWN0RW50cmllc0hhbmRsZXI7XG4iXX0=
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- var filesystem = require('occam-file-system'); ///
4
-
5
- var httpResponse = require('../httpResponse');
6
-
7
- var removeProjectEntries = filesystem.removeProjectEntries;
8
-
9
-
10
- function removeProjectEntriesHandler(request, response, next) {
11
- var query = request.query,
12
- body = request.body,
13
- pathMaps = body.pathMaps,
14
- projectsDirectoryPath = query.projectsDirectoryPath;
15
-
16
-
17
- removeProjectEntries(projectsDirectoryPath, pathMaps, function (targetPaths) {
18
- var targetPathsJSON = targetPaths,
19
- ///
20
- responseJSON = targetPathsJSON; ///
21
-
22
- httpResponse.json(response, responseJSON);
23
-
24
- next();
25
- });
26
- }
27
-
28
- module.exports = removeProjectEntriesHandler;
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2VzNi9oYW5kbGVyL3JlbW92ZVByb2plY3RFbnRyaWVzLmpzIl0sIm5hbWVzIjpbImZpbGVzeXN0ZW0iLCJyZXF1aXJlIiwiaHR0cFJlc3BvbnNlIiwicmVtb3ZlUHJvamVjdEVudHJpZXMiLCJyZW1vdmVQcm9qZWN0RW50cmllc0hhbmRsZXIiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJuZXh0IiwicXVlcnkiLCJib2R5IiwicGF0aE1hcHMiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJ0YXJnZXRQYXRocyIsInRhcmdldFBhdGhzSlNPTiIsInJlc3BvbnNlSlNPTiIsImpzb24iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxJQUFNQSxhQUFhQyxRQUFRLG1CQUFSLENBQW5CLEMsQ0FBa0Q7O0FBRWxELElBQU1DLGVBQWVELFFBQVEsaUJBQVIsQ0FBckI7O0lBRVFFLG9CLEdBQXlCSCxVLENBQXpCRyxvQjs7O0FBRVIsU0FBU0MsMkJBQVQsQ0FBcUNDLE9BQXJDLEVBQThDQyxRQUE5QyxFQUF3REMsSUFBeEQsRUFBOEQ7QUFBQSxVQUNwREMsS0FEb0QsR0FDcENILE9BRG9DLENBQ3BERyxLQURvRDtBQUFBLFVBQzdDQyxJQUQ2QyxHQUNwQ0osT0FEb0MsQ0FDN0NJLElBRDZDO0FBQUEsVUFFcERDLFFBRm9ELEdBRXZDRCxJQUZ1QyxDQUVwREMsUUFGb0Q7QUFBQSxVQUdwREMscUJBSG9ELEdBRzFCSCxLQUgwQixDQUdwREcscUJBSG9EOzs7QUFLNURSLDJCQUFxQlEscUJBQXJCLEVBQTRDRCxRQUE1QyxFQUFzRCxVQUFTRSxXQUFULEVBQXNCO0FBQzFFLGdCQUFNQyxrQkFBa0JELFdBQXhCO0FBQUEsZ0JBQXNDO0FBQ2hDRSwyQkFBZUQsZUFEckIsQ0FEMEUsQ0FFbkM7O0FBRXZDWCx5QkFBYWEsSUFBYixDQUFrQlQsUUFBbEIsRUFBNEJRLFlBQTVCOztBQUVBUDtBQUNELE9BUEQ7QUFRRDs7QUFFRFMsT0FBT0MsT0FBUCxHQUFpQmIsMkJBQWpCIiwiZmlsZSI6InJlbW92ZVByb2plY3RFbnRyaWVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBmaWxlc3lzdGVtID0gcmVxdWlyZSgnb2NjYW0tZmlsZS1zeXN0ZW0nKTsgIC8vL1xuXG5jb25zdCBodHRwUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9odHRwUmVzcG9uc2UnKTtcblxuY29uc3QgeyByZW1vdmVQcm9qZWN0RW50cmllcyB9ID0gZmlsZXN5c3RlbTtcblxuZnVuY3Rpb24gcmVtb3ZlUHJvamVjdEVudHJpZXNIYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlLCBuZXh0KSB7XG4gIGNvbnN0IHsgcXVlcnksIGJvZHkgfSA9IHJlcXVlc3QsXG4gICAgICAgIHsgcGF0aE1hcHMgfSA9IGJvZHksXG4gICAgICAgIHsgcHJvamVjdHNEaXJlY3RvcnlQYXRoIH0gPSBxdWVyeTtcblxuICByZW1vdmVQcm9qZWN0RW50cmllcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXBzLCBmdW5jdGlvbih0YXJnZXRQYXRocykge1xuICAgIGNvbnN0IHRhcmdldFBhdGhzSlNPTiA9IHRhcmdldFBhdGhzLCAgLy8vXG4gICAgICAgICAgcmVzcG9uc2VKU09OID0gdGFyZ2V0UGF0aHNKU09OOyAgLy8vXG5cbiAgICBodHRwUmVzcG9uc2UuanNvbihyZXNwb25zZSwgcmVzcG9uc2VKU09OKTtcblxuICAgIG5leHQoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmVtb3ZlUHJvamVjdEVudHJpZXNIYW5kbGVyO1xuIl19
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- var open = require('occam-open-cli'),
4
- ///
5
- filesystem = require('occam-file-system'); ///
6
-
7
- var httpResponse = require('../httpResponse');
8
-
9
- var File = open.File,
10
- saveFile = filesystem.saveFile;
11
-
12
-
13
- function saveFileHandler(request, response, next) {
14
- var query = request.query,
15
- body = request.body,
16
- projectsDirectoryPath = query.projectsDirectoryPath,
17
- json = body,
18
- file = File.fromJSON(json);
19
-
20
-
21
- saveFile(projectsDirectoryPath, file, function (success) {
22
- var responseJSON = {};
23
-
24
- httpResponse.json(response, responseJSON);
25
-
26
- next();
27
- });
28
- }
29
-
30
- module.exports = saveFileHandler;
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2VzNi9oYW5kbGVyL3NhdmVGaWxlLmpzIl0sIm5hbWVzIjpbIm9wZW4iLCJyZXF1aXJlIiwiZmlsZXN5c3RlbSIsImh0dHBSZXNwb25zZSIsIkZpbGUiLCJzYXZlRmlsZSIsInNhdmVGaWxlSGFuZGxlciIsInJlcXVlc3QiLCJyZXNwb25zZSIsIm5leHQiLCJxdWVyeSIsImJvZHkiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJqc29uIiwiZmlsZSIsImZyb21KU09OIiwic3VjY2VzcyIsInJlc3BvbnNlSlNPTiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBLElBQU1BLE9BQU9DLFFBQVEsZ0JBQVIsQ0FBYjtBQUFBLElBQXdDO0FBQ3JDQyxhQUFhRCxRQUFRLG1CQUFSLENBRGhCLEMsQ0FDK0M7O0FBRS9DLElBQU1FLGVBQWVGLFFBQVEsaUJBQVIsQ0FBckI7O0FBRU0sSUFBRUcsSUFBRixHQUFXSixJQUFYLENBQUVJLElBQUY7QUFBQSxJQUNEQyxRQURDLEdBQ1lILFVBRFosQ0FDREcsUUFEQzs7O0FBR04sU0FBU0MsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLFFBQWxDLEVBQTRDQyxJQUE1QyxFQUFrRDtBQUFBLE1BQ3hDQyxLQUR3QyxHQUN4QkgsT0FEd0IsQ0FDeENHLEtBRHdDO0FBQUEsTUFDakNDLElBRGlDLEdBQ3hCSixPQUR3QixDQUNqQ0ksSUFEaUM7QUFBQSxNQUV4Q0MscUJBRndDLEdBRWRGLEtBRmMsQ0FFeENFLHFCQUZ3QztBQUFBLE1BRzFDQyxJQUgwQyxHQUduQ0YsSUFIbUM7QUFBQSxNQUk1Q0csSUFKNEMsR0FJckNWLEtBQUtXLFFBQUwsQ0FBY0YsSUFBZCxDQUpxQzs7O0FBTWhEUixXQUFTTyxxQkFBVCxFQUFnQ0UsSUFBaEMsRUFBc0MsVUFBU0UsT0FBVCxFQUFrQjtBQUN0RCxRQUFNQyxlQUFlLEVBQXJCOztBQUVBZCxpQkFBYVUsSUFBYixDQUFrQkwsUUFBbEIsRUFBNEJTLFlBQTVCOztBQUVBUjtBQUNELEdBTkQ7QUFPRDs7QUFFRFMsT0FBT0MsT0FBUCxHQUFpQmIsZUFBakIiLCJmaWxlIjoic2F2ZUZpbGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmNvbnN0IG9wZW4gPSByZXF1aXJlKCdvY2NhbS1vcGVuLWNsaScpLCAvLy9cblx0XHRcdGZpbGVzeXN0ZW0gPSByZXF1aXJlKCdvY2NhbS1maWxlLXN5c3RlbScpOyAgLy8vXG5cbmNvbnN0IGh0dHBSZXNwb25zZSA9IHJlcXVpcmUoJy4uL2h0dHBSZXNwb25zZScpO1xuXG5jb25zdCB7IEZpbGUgfSA9IG9wZW4sXG5cdFx0XHR7IHNhdmVGaWxlIH0gPSBmaWxlc3lzdGVtO1xuXG5mdW5jdGlvbiBzYXZlRmlsZUhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UsIG5leHQpIHtcbiAgY29uc3QgeyBxdWVyeSwgYm9keSB9ID0gcmVxdWVzdCxcbiAgICAgICAgeyBwcm9qZWN0c0RpcmVjdG9yeVBhdGggfSA9IHF1ZXJ5LFxuICAgICAgICBqc29uID0gYm9keSwgLy8vXG5cdFx0ICAgIGZpbGUgPSBGaWxlLmZyb21KU09OKGpzb24pO1xuXG4gIHNhdmVGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgZmlsZSwgZnVuY3Rpb24oc3VjY2Vzcykge1xuICAgIGNvbnN0IHJlc3BvbnNlSlNPTiA9IHt9O1xuXG4gICAgaHR0cFJlc3BvbnNlLmpzb24ocmVzcG9uc2UsIHJlc3BvbnNlSlNPTik7XG5cbiAgICBuZXh0KCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNhdmVGaWxlSGFuZGxlcjtcbiJdfQ==
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- var open = require('occam-open-cli'),
4
- ///
5
- filesystem = require('occam-file-system'); ///
6
-
7
- var httpResponse = require('../httpResponse');
8
-
9
- var Files = open.Files,
10
- saveFiles = filesystem.saveFiles;
11
-
12
-
13
- function saveFilesHandler(request, response, next) {
14
- var query = request.query,
15
- body = request.body,
16
- projectsDirectoryPath = query.projectsDirectoryPath,
17
- json = body,
18
- files = Files.fromJSON(json);
19
-
20
-
21
- saveFiles(projectsDirectoryPath, files, function (success) {
22
- var responseJSON = {};
23
-
24
- httpResponse.json(response, responseJSON);
25
-
26
- next();
27
- });
28
- }
29
-
30
- module.exports = saveFilesHandler;
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2VzNi9oYW5kbGVyL3NhdmVGaWxlcy5qcyJdLCJuYW1lcyI6WyJvcGVuIiwicmVxdWlyZSIsImZpbGVzeXN0ZW0iLCJodHRwUmVzcG9uc2UiLCJGaWxlcyIsInNhdmVGaWxlcyIsInNhdmVGaWxlc0hhbmRsZXIiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJuZXh0IiwicXVlcnkiLCJib2R5IiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImZpbGVzIiwiZnJvbUpTT04iLCJzdWNjZXNzIiwicmVzcG9uc2VKU09OIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsSUFBTUEsT0FBT0MsUUFBUSxnQkFBUixDQUFiO0FBQUEsSUFBd0M7QUFDckNDLGFBQWFELFFBQVEsbUJBQVIsQ0FEaEIsQyxDQUMrQzs7QUFFL0MsSUFBTUUsZUFBZUYsUUFBUSxpQkFBUixDQUFyQjs7QUFFTSxJQUFFRyxLQUFGLEdBQVlKLElBQVosQ0FBRUksS0FBRjtBQUFBLElBQ0RDLFNBREMsR0FDYUgsVUFEYixDQUNERyxTQURDOzs7QUFHTixTQUFTQyxnQkFBVCxDQUEwQkMsT0FBMUIsRUFBbUNDLFFBQW5DLEVBQTZDQyxJQUE3QyxFQUFtRDtBQUFBLE1BQ3pDQyxLQUR5QyxHQUN6QkgsT0FEeUIsQ0FDekNHLEtBRHlDO0FBQUEsTUFDbENDLElBRGtDLEdBQ3pCSixPQUR5QixDQUNsQ0ksSUFEa0M7QUFBQSxNQUV6Q0MscUJBRnlDLEdBRWZGLEtBRmUsQ0FFekNFLHFCQUZ5QztBQUFBLE1BRzNDQyxJQUgyQyxHQUdwQ0YsSUFIb0M7QUFBQSxNQUk3Q0csS0FKNkMsR0FJckNWLE1BQU1XLFFBQU4sQ0FBZUYsSUFBZixDQUpxQzs7O0FBTWpEUixZQUFVTyxxQkFBVixFQUFpQ0UsS0FBakMsRUFBd0MsVUFBU0UsT0FBVCxFQUFrQjtBQUN4RCxRQUFNQyxlQUFlLEVBQXJCOztBQUVBZCxpQkFBYVUsSUFBYixDQUFrQkwsUUFBbEIsRUFBNEJTLFlBQTVCOztBQUVBUjtBQUNELEdBTkQ7QUFPRDs7QUFFRFMsT0FBT0MsT0FBUCxHQUFpQmIsZ0JBQWpCIiwiZmlsZSI6InNhdmVGaWxlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuY29uc3Qgb3BlbiA9IHJlcXVpcmUoJ29jY2FtLW9wZW4tY2xpJyksIC8vL1xuXHRcdFx0ZmlsZXN5c3RlbSA9IHJlcXVpcmUoJ29jY2FtLWZpbGUtc3lzdGVtJyk7ICAvLy9cblxuY29uc3QgaHR0cFJlc3BvbnNlID0gcmVxdWlyZSgnLi4vaHR0cFJlc3BvbnNlJyk7XG5cbmNvbnN0IHsgRmlsZXMgfSA9IG9wZW4sXG5cdFx0XHR7IHNhdmVGaWxlcyB9ID0gZmlsZXN5c3RlbTtcblxuZnVuY3Rpb24gc2F2ZUZpbGVzSGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCkge1xuICBjb25zdCB7IHF1ZXJ5LCBib2R5IH0gPSByZXF1ZXN0LFxuICAgICAgICB7IHByb2plY3RzRGlyZWN0b3J5UGF0aCB9ID0gcXVlcnksXG4gICAgICAgIGpzb24gPSBib2R5LCAvLy9cblx0XHQgICAgZmlsZXMgPSBGaWxlcy5mcm9tSlNPTihqc29uKTtcblxuICBzYXZlRmlsZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBmaWxlcywgZnVuY3Rpb24oc3VjY2Vzcykge1xuICAgIGNvbnN0IHJlc3BvbnNlSlNPTiA9IHt9O1xuXG4gICAgaHR0cFJlc3BvbnNlLmpzb24ocmVzcG9uc2UsIHJlc3BvbnNlSlNPTik7XG5cbiAgICBuZXh0KCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNhdmVGaWxlc0hhbmRsZXI7XG4iXX0=
package/lib/handlers.js DELETED
@@ -1,81 +0,0 @@
1
- 'use strict';
2
-
3
- var necessary = require('necessary');
4
-
5
- var uris = require('./uris'),
6
- paths = require('./paths'),
7
- httpResponse = require('./httpResponse'),
8
- saveFilesHandler = require('./handler/saveFiles'),
9
- saveFileHandler = require('./handler/saveFile'),
10
- loadFileHandler = require('./handler/loadFile'),
11
- loadFilesHandler = require('./handler/loadFiles'),
12
- loadProjectsHandler = require('./handler/loadProjects'),
13
- importProjectHandler = require('./handler/importProject'),
14
- moveProjectEntriesHandler = require('./handler/moveProjectEntries'),
15
- removeProjectEntriesHandler = require('./handler/removeProjectEntries');
16
-
17
- var templateUtilities = necessary.templateUtilities,
18
- parseFile = templateUtilities.parseFile,
19
- INDEX_TEMPLATE_PATH = paths.INDEX_TEMPLATE_PATH,
20
- SAVE_FILES_URI = uris.SAVE_FILES_URI,
21
- SAVE_FILE_URI = uris.SAVE_FILE_URI,
22
- LOAD_FILE_URI = uris.LOAD_FILE_URI,
23
- LOAD_FILES_URI = uris.LOAD_FILES_URI,
24
- LOAD_PROJECTS_URI = uris.LOAD_PROJECTS_URI,
25
- IMPORT_PROJECT_URI = uris.IMPORT_PROJECT_URI,
26
- MOVE_PROJECT_ENTRIES_URI = uris.MOVE_PROJECT_ENTRIES_URI,
27
- REMOVE_PROJECT_ENTRIES_URI = uris.REMOVE_PROJECT_ENTRIES_URI;
28
-
29
-
30
- function createRestfulHandler(options, pathResolver) {
31
- return function (request, response, next) {
32
- var path = request.path;
33
-
34
-
35
- try {
36
- switch (path) {
37
- case SAVE_FILES_URI:
38
- saveFilesHandler(request, response, next);break;
39
- case SAVE_FILE_URI:
40
- saveFileHandler(request, response, next);break;
41
- case LOAD_FILE_URI:
42
- loadFileHandler(request, response, next);break;
43
- case LOAD_FILES_URI:
44
- loadFilesHandler(request, response, next);break;
45
- case LOAD_PROJECTS_URI:
46
- loadProjectsHandler(request, response, next);break;
47
- case IMPORT_PROJECT_URI:
48
- importProjectHandler(request, response, next);break;
49
- case MOVE_PROJECT_ENTRIES_URI:
50
- moveProjectEntriesHandler(request, response, next);break;
51
- case REMOVE_PROJECT_ENTRIES_URI:
52
- removeProjectEntriesHandler(request, response, next);break;
53
- }
54
- } catch (error) {
55
- next(error);
56
- }
57
- };
58
- }
59
-
60
- function createIndexPageHandler(options, pathResolver) {
61
- return function (request, response, next) {
62
- var fileSystemHost = options.fileSystemHost,
63
- concurrentLayerProtocolHost = options.concurrentLayerProtocolHost,
64
- templateDirectoryPath = options.templateDirectoryPath,
65
- filePath = pathResolver('' + templateDirectoryPath + INDEX_TEMPLATE_PATH),
66
- args = {
67
- fileSystemHost: fileSystemHost,
68
- concurrentLayerProtocolHost: concurrentLayerProtocolHost
69
- },
70
- html = parseFile(filePath, args);
71
-
72
-
73
- httpResponse.html(response, html);
74
- };
75
- }
76
-
77
- module.exports = {
78
- createRestfulHandler: createRestfulHandler,
79
- createIndexPageHandler: createIndexPageHandler
80
- };
81
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2VzNi9oYW5kbGVycy5qcyJdLCJuYW1lcyI6WyJuZWNlc3NhcnkiLCJyZXF1aXJlIiwidXJpcyIsInBhdGhzIiwiaHR0cFJlc3BvbnNlIiwic2F2ZUZpbGVzSGFuZGxlciIsInNhdmVGaWxlSGFuZGxlciIsImxvYWRGaWxlSGFuZGxlciIsImxvYWRGaWxlc0hhbmRsZXIiLCJsb2FkUHJvamVjdHNIYW5kbGVyIiwiaW1wb3J0UHJvamVjdEhhbmRsZXIiLCJtb3ZlUHJvamVjdEVudHJpZXNIYW5kbGVyIiwicmVtb3ZlUHJvamVjdEVudHJpZXNIYW5kbGVyIiwidGVtcGxhdGVVdGlsaXRpZXMiLCJwYXJzZUZpbGUiLCJJTkRFWF9URU1QTEFURV9QQVRIIiwiU0FWRV9GSUxFU19VUkkiLCJTQVZFX0ZJTEVfVVJJIiwiTE9BRF9GSUxFX1VSSSIsIkxPQURfRklMRVNfVVJJIiwiTE9BRF9QUk9KRUNUU19VUkkiLCJJTVBPUlRfUFJPSkVDVF9VUkkiLCJNT1ZFX1BST0pFQ1RfRU5UUklFU19VUkkiLCJSRU1PVkVfUFJPSkVDVF9FTlRSSUVTX1VSSSIsImNyZWF0ZVJlc3RmdWxIYW5kbGVyIiwib3B0aW9ucyIsInBhdGhSZXNvbHZlciIsInJlcXVlc3QiLCJyZXNwb25zZSIsIm5leHQiLCJwYXRoIiwiZXJyb3IiLCJjcmVhdGVJbmRleFBhZ2VIYW5kbGVyIiwiZmlsZVN5c3RlbUhvc3QiLCJjb25jdXJyZW50TGF5ZXJQcm90b2NvbEhvc3QiLCJ0ZW1wbGF0ZURpcmVjdG9yeVBhdGgiLCJmaWxlUGF0aCIsImFyZ3MiLCJodG1sIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsSUFBTUEsWUFBWUMsUUFBUSxXQUFSLENBQWxCOztBQUVBLElBQU1DLE9BQU9ELFFBQVEsUUFBUixDQUFiO0FBQUEsSUFDR0UsUUFBUUYsUUFBUSxTQUFSLENBRFg7QUFBQSxJQUVHRyxlQUFlSCxRQUFRLGdCQUFSLENBRmxCO0FBQUEsSUFHR0ksbUJBQW1C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TUFFdENDLFFBRnNDLEdBRTNCVixrQkFBZ0JTLHFCQUFoQixHQUF3Q3BCLG1CQUF4QyxDQUYyQjtBQUFBLE1BR3RDc0IsSUFIc0MsR0FHL0I7QUFDTkosbUJBQWdCQSxjQURWO0FBRU5DLGdDQUE2QkE7QUFGdkIsR0FIK0I7QUFBQSxNQU90Q0ksSUFQc0MsR0FPL0J4QixVQUFVc0IsUUFBVixFQUFvQkMsSUFBcEIsQ0FQK0I7OztBQVN6Q2pDLGVBQWFrQyxJQUFiLENBQWtCVixRQUFsQixFQUE0QlUsSUFBNUI7QUFDQSxFQVZEO0FBV0E7O0FBRURDLE9BQU9DLE9BQVAsR0FBaUI7QUFDaEJoQiwyQ0FEZ0I7QUFFaEJRO0FBRmdCLENBQWpCIiwiZmlsZSI6ImhhbmRsZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBuZWNlc3NhcnkgPSByZXF1aXJlKCduZWNlc3NhcnknKTtcblxuY29uc3QgdXJpcyA9IHJlcXVpcmUoJy4vdXJpcycpLFxuXHRcdFx0cGF0aHMgPSByZXF1aXJlKCcuL3BhdGhzJyksXG5cdFx0XHRodHRwUmVzcG9uc2UgPSByZXF1aXJlKCcuL2h0dHBSZXNwb25zZScpLFxuXHRcdFx0c2F2ZUZpbGVzSGFuZGxlciA9IHJlcXVpcmUoJy4vaGFuZGxlci9zYXZlRmlsZXMnKSxcblx0XHRcdHNhdmVGaWxlSGFuZGxlciA9IHJlcXVpcmUoJy4vaGFuZGxlci9zYXZlRmlsZScpLFxuXHRcdFx0bG9hZEZpbGVIYW5kbGVyID0gcmVxdWlyZSgnLi9oYW5kbGVyL2xvYWRGaWxlJyksXG5cdFx0XHRsb2FkRmlsZXNIYW5kbGVyID0gcmVxdWlyZSgnLi9oYW5kbGVyL2xvYWRGaWxlcycpLFxuXHRcdFx0bG9hZFByb2plY3RzSGFuZGxlciA9IHJlcXVpcmUoJy4vaGFuZGxlci9sb2FkUHJvamVjdHMnKSxcblx0XHRcdGltcG9ydFByb2plY3RIYW5kbGVyID0gcmVxdWlyZSgnLi9oYW5kbGVyL2ltcG9ydFByb2plY3QnKSxcblx0XHRcdG1vdmVQcm9qZWN0RW50cmllc0hhbmRsZXIgPSByZXF1aXJlKCcuL2hhbmRsZXIvbW92ZVByb2plY3RFbnRyaWVzJyksXG5cdFx0XHRyZW1vdmVQcm9qZWN0RW50cmllc0hhbmRsZXIgPSByZXF1aXJlKCcuL2hhbmRsZXIvcmVtb3ZlUHJvamVjdEVudHJpZXMnKTtcblxuY29uc3QgeyB0ZW1wbGF0ZVV0aWxpdGllcyB9ID0gbmVjZXNzYXJ5LFxuXHRcdFx0eyBwYXJzZUZpbGUgfSA9IHRlbXBsYXRlVXRpbGl0aWVzLFxuXHRcdFx0eyBJTkRFWF9URU1QTEFURV9QQVRIIH0gPSBwYXRocyxcblx0XHRcdHsgU0FWRV9GSUxFU19VUkksXG5cdFx0XHRcdFNBVkVfRklMRV9VUkksXG5cdFx0XHRcdExPQURfRklMRV9VUkksXG5cdFx0XHRcdExPQURfRklMRVNfVVJJLFxuXHRcdFx0XHRMT0FEX1BST0pFQ1RTX1VSSSxcblx0XHRcdFx0SU1QT1JUX1BST0pFQ1RfVVJJLFxuXHRcdFx0XHRNT1ZFX1BST0pFQ1RfRU5UUklFU19VUkksXG5cdFx0XHRcdFJFTU9WRV9QUk9KRUNUX0VOVFJJRVNfVVJJIH0gPSB1cmlzO1xuXG5mdW5jdGlvbiBjcmVhdGVSZXN0ZnVsSGFuZGxlcihvcHRpb25zLCBwYXRoUmVzb2x2ZXIpIHtcblx0cmV0dXJuIGZ1bmN0aW9uIChyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCkge1xuXHRcdGNvbnN0IHtwYXRofSA9IHJlcXVlc3Q7XG5cblx0XHR0cnkge1xuXHRcdFx0c3dpdGNoIChwYXRoKSB7XG5cdFx0XHRcdGNhc2UgU0FWRV9GSUxFU19VUkk6IHNhdmVGaWxlc0hhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UsIG5leHQpOyBicmVhaztcblx0XHRcdFx0Y2FzZSBTQVZFX0ZJTEVfVVJJOiBzYXZlRmlsZUhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UsIG5leHQpOyBicmVhaztcblx0XHRcdFx0Y2FzZSBMT0FEX0ZJTEVfVVJJOiBsb2FkRmlsZUhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UsIG5leHQpOyBicmVhaztcblx0XHRcdFx0Y2FzZSBMT0FEX0ZJTEVTX1VSSTogbG9hZEZpbGVzSGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCk7IGJyZWFrO1xuXHRcdFx0XHRjYXNlIExPQURfUFJPSkVDVFNfVVJJOiBsb2FkUHJvamVjdHNIYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlLCBuZXh0KTsgYnJlYWs7XG5cdFx0XHRcdGNhc2UgSU1QT1JUX1BST0pFQ1RfVVJJOiBpbXBvcnRQcm9qZWN0SGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCk7IGJyZWFrO1xuXHRcdFx0XHRjYXNlIE1PVkVfUFJPSkVDVF9FTlRSSUVTX1VSSTogbW92ZVByb2plY3RFbnRyaWVzSGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSwgbmV4dCk7IGJyZWFrO1xuXHRcdFx0XHRjYXNlIFJFTU9WRV9QUk9KRUNUX0VOVFJJRVNfVVJJOiByZW1vdmVQcm9qZWN0RW50cmllc0hhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UsIG5leHQpOyBicmVhaztcblx0XHRcdH1cblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0bmV4dChlcnJvcik7XG5cdFx0fVxuXHR9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVJbmRleFBhZ2VIYW5kbGVyKG9wdGlvbnMsIHBhdGhSZXNvbHZlcikge1xuXHRyZXR1cm4gZnVuY3Rpb24gKHJlcXVlc3QsIHJlc3BvbnNlLCBuZXh0KSB7XG5cdFx0Y29uc3QgeyBmaWxlU3lzdGVtSG9zdCwgY29uY3VycmVudExheWVyUHJvdG9jb2xIb3N0LCB0ZW1wbGF0ZURpcmVjdG9yeVBhdGggfSA9IG9wdGlvbnMsXG5cdFx0XHRcdFx0ZmlsZVBhdGggPSBwYXRoUmVzb2x2ZXIoYCR7dGVtcGxhdGVEaXJlY3RvcnlQYXRofSR7SU5ERVhfVEVNUExBVEVfUEFUSH1gKSxcblx0XHRcdFx0XHRhcmdzID0ge1xuXHRcdFx0XHRcdFx0ZmlsZVN5c3RlbUhvc3Q6IGZpbGVTeXN0ZW1Ib3N0LFxuXHRcdFx0XHRcdFx0Y29uY3VycmVudExheWVyUHJvdG9jb2xIb3N0OiBjb25jdXJyZW50TGF5ZXJQcm90b2NvbEhvc3Rcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGh0bWwgPSBwYXJzZUZpbGUoZmlsZVBhdGgsIGFyZ3MpO1xuXG5cdFx0aHR0cFJlc3BvbnNlLmh0bWwocmVzcG9uc2UsIGh0bWwpO1xuXHR9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0Y3JlYXRlUmVzdGZ1bEhhbmRsZXIsXG5cdGNyZWF0ZUluZGV4UGFnZUhhbmRsZXJcbn07XG4iXX0=