build-strap 4.0.0-dev.46 → 4.0.0

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 (129) hide show
  1. package/README.md +3 -34
  2. package/dist/src/ant.d.ts +19 -0
  3. package/dist/src/ant.js +18 -0
  4. package/dist/src/cert.d.ts +12 -0
  5. package/dist/src/cert.js +91 -0
  6. package/dist/src/clean.d.ts +4 -0
  7. package/dist/src/clean.js +11 -0
  8. package/dist/src/copy.d.ts +7 -0
  9. package/dist/src/copy.js +53 -0
  10. package/dist/src/cp.d.ts +17 -0
  11. package/dist/src/cp.js +88 -0
  12. package/dist/src/docker.container.d.ts +73 -0
  13. package/dist/src/docker.container.js +247 -0
  14. package/dist/src/docker.d.ts +68 -0
  15. package/dist/src/docker.js +188 -0
  16. package/dist/src/docker.network.d.ts +42 -0
  17. package/dist/src/docker.network.js +85 -0
  18. package/dist/src/docker.volume.d.ts +26 -0
  19. package/dist/src/docker.volume.js +62 -0
  20. package/dist/src/dockerCleanup.d.ts +38 -0
  21. package/dist/src/dockerCleanup.js +77 -0
  22. package/dist/src/dockerCompose.d.ts +154 -0
  23. package/dist/src/dockerCompose.js +439 -0
  24. package/dist/src/fs.d.ts +5 -0
  25. package/dist/src/fs.js +38 -0
  26. package/dist/src/git.d.ts +9 -0
  27. package/dist/src/git.js +24 -0
  28. package/dist/src/index.d.ts +20 -0
  29. package/dist/src/index.js +20 -0
  30. package/dist/src/maps.d.ts +33 -0
  31. package/dist/src/maps.js +41 -0
  32. package/dist/src/npm.d.ts +35 -0
  33. package/dist/src/npm.js +104 -0
  34. package/dist/src/pkg.d.ts +33 -0
  35. package/dist/src/pkg.js +33 -0
  36. package/dist/src/publish.d.ts +27 -0
  37. package/dist/src/publish.js +57 -0
  38. package/dist/src/run.d.ts +13 -0
  39. package/dist/src/run.js +44 -0
  40. package/dist/src/tgz.d.ts +13 -0
  41. package/dist/src/tgz.js +67 -0
  42. package/dist/src/version.d.ts +34 -0
  43. package/dist/src/version.js +101 -0
  44. package/dist/src/yarn.d.ts +26 -0
  45. package/dist/src/yarn.js +75 -0
  46. package/package.json +74 -20
  47. package/ant.js +0 -43
  48. package/ant.js.flow +0 -42
  49. package/artifactory.js +0 -617
  50. package/artifactory.js.flow +0 -616
  51. package/cert.conf +0 -20
  52. package/cert.js +0 -153
  53. package/cert.js.flow +0 -152
  54. package/clean.js +0 -20
  55. package/clean.js.flow +0 -19
  56. package/copy.js +0 -80
  57. package/copy.js.flow +0 -79
  58. package/cp.js +0 -173
  59. package/cp.js.flow +0 -172
  60. package/docker.container.js +0 -390
  61. package/docker.container.js.flow +0 -389
  62. package/docker.js +0 -365
  63. package/docker.js.flow +0 -364
  64. package/docker.network.js +0 -160
  65. package/docker.network.js.flow +0 -159
  66. package/docker.volume.js +0 -136
  67. package/docker.volume.js.flow +0 -136
  68. package/dockerCleanup.js +0 -152
  69. package/dockerCleanup.js.flow +0 -151
  70. package/dockerCompose.js +0 -766
  71. package/dockerCompose.js.flow +0 -765
  72. package/flow.js +0 -21
  73. package/flow.js.flow +0 -20
  74. package/fs.js +0 -95
  75. package/fs.js.flow +0 -96
  76. package/git.js +0 -35
  77. package/git.js.flow +0 -34
  78. package/hg.js +0 -35
  79. package/hg.js.flow +0 -34
  80. package/index.js +0 -27
  81. package/index.js.flow +0 -26
  82. package/inline-resources.js +0 -158
  83. package/inline-resources.js.flow +0 -157
  84. package/maps.js +0 -112
  85. package/maps.js.flow +0 -111
  86. package/npm.js +0 -145
  87. package/npm.js.flow +0 -144
  88. package/pkg.js +0 -81
  89. package/pkg.js.flow +0 -80
  90. package/publish.js +0 -145
  91. package/publish.js.flow +0 -144
  92. package/run.js +0 -90
  93. package/run.js.flow +0 -89
  94. package/src/ant.js +0 -42
  95. package/src/artifactory.js +0 -616
  96. package/src/cert.conf +0 -20
  97. package/src/cert.js +0 -152
  98. package/src/clean.js +0 -19
  99. package/src/copy.js +0 -79
  100. package/src/cp.js +0 -172
  101. package/src/docker.container.js +0 -389
  102. package/src/docker.js +0 -364
  103. package/src/docker.network.js +0 -159
  104. package/src/docker.volume.js +0 -136
  105. package/src/dockerCleanup.js +0 -151
  106. package/src/dockerCompose.js +0 -765
  107. package/src/flow.js +0 -20
  108. package/src/fs.js +0 -96
  109. package/src/git.js +0 -34
  110. package/src/hg.js +0 -34
  111. package/src/index.js +0 -26
  112. package/src/inline-resources.js +0 -157
  113. package/src/maps.js +0 -111
  114. package/src/npm.js +0 -144
  115. package/src/pkg.js +0 -80
  116. package/src/publish.js +0 -144
  117. package/src/run.js +0 -89
  118. package/src/test.js +0 -55
  119. package/src/tgz.js +0 -101
  120. package/src/version.js +0 -142
  121. package/src/yarn.js +0 -123
  122. package/test.js +0 -56
  123. package/test.js.flow +0 -55
  124. package/tgz.js +0 -102
  125. package/tgz.js.flow +0 -101
  126. package/version.js +0 -143
  127. package/version.js.flow +0 -142
  128. package/yarn.js +0 -124
  129. package/yarn.js.flow +0 -123
package/cert.js DELETED
@@ -1,153 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.generateCert = generateCert;exports.getCertConfig = getCertConfig;exports.getIpAddresses = getIpAddresses;
2
- var _os = _interopRequireDefault(require("os"));
3
- var _requestPromiseNative = _interopRequireDefault(require("request-promise-native"));
4
- var _path = _interopRequireDefault(require("path"));
5
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
6
- var _run = require("./run");
7
- var _fs = require("./fs");
8
- var _cp = require("./cp");
9
- var _pkg = require("./pkg");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
- function getCertConfig() {
22
- return (0, _pkg.getCfg)().cert || {};
23
- }
24
-
25
- function getIpAddresses() {
26
- const iFaces = _os.default.networkInterfaces();
27
- return Object.keys(iFaces).reduce(
28
- (prev, ifName) => [
29
- ...prev,
30
- ...iFaces[ifName].map((iFace) => iFace.address)],
31
-
32
- []);
33
-
34
- }
35
-
36
- // Generate a self-signed certificate (if it doesn't exist)
37
- async function generateCert(
38
- targetDir,
39
- force = process.argv.includes('--force-generateCert'))
40
- {
41
- if (process.argv.includes('--no-generateCert')) {
42
- (0, _run.buildLog)('Skipping due to --no-generateCert');
43
- return;
44
- }
45
- (0, _run.buildLog)(`scanning ${targetDir} for certificates...`);
46
- if (
47
- !force &&
48
- (await (0, _fs.readDir)(`${targetDir}/server.@(crt|key)`)).length === 2)
49
- {
50
- (0, _run.buildLog)('Skipping certificate generation: certificate already exists');
51
- return;
52
- }
53
- (0, _run.buildLog)('Generating self-signed certificate...');
54
- const {
55
- countryName = 'US',
56
- stateOrProvinceName = 'Pennsylvania',
57
- localityName = 'SomeCity',
58
- organizationName = 'Company',
59
- organizationalUnitName = 'Product',
60
- commonName = 'app.company.com',
61
- emailAddress = 'contact@company.com' } =
62
- getCertConfig();
63
- const hostname = _os.default.hostname();
64
- (0, _run.buildLog)(`hostname: ${hostname}`);
65
- const ipAddresses = getIpAddresses();
66
- (0, _run.buildLog)(`ip addresses: ${JSON.stringify(ipAddresses)}`);
67
- const ifconfig = await _requestPromiseNative.default.get('https://ifconfig.co', { json: true });
68
- const externalIp4 = ifconfig.ip;
69
- (0, _run.buildLog)(`external ipv4: ${externalIp4}`);
70
- const dnsName = ifconfig.hostname;
71
- (0, _run.buildLog)(`dnsName: ${dnsName}`);
72
-
73
- await _fsExtra.default.ensureDir(targetDir);
74
- const keyFile = _path.default.resolve(targetDir, 'server.key');
75
- const csrFile = _path.default.resolve(targetDir, 'server.csr');
76
- const crtFile = _path.default.resolve(targetDir, 'server.crt');
77
- const confTemplateFile = _path.default.resolve(__dirname, 'cert.conf');
78
- const confFile = _path.default.resolve(targetDir, 'cert.conf.generated');
79
- const confTemplate = await _fsExtra.default.readFile(confTemplateFile, 'utf8');
80
- await _fsExtra.default.writeFile(
81
- confFile,
82
- confTemplate.
83
- replace('{{countryName}}', countryName).
84
- replace('{{stateOrProvinceName}}', stateOrProvinceName).
85
- replace('{{localityName}}', localityName).
86
- replace('{{organizationName}}', organizationName).
87
- replace('{{organizationalUnitName}}', organizationalUnitName).
88
- replace('{{commonName}}', commonName).
89
- replace('{{emailAddress}}', emailAddress).
90
- replace(
91
- '{{SAN_IP}}',
92
- ipAddresses.reduce((acc, next) => `${acc},IP:${next}`, '')).
93
-
94
- replace('{{SAN_DNS}}', `,DNS:${hostname},DNS:${dnsName}`),
95
- 'utf8');
96
-
97
-
98
- (0, _run.buildLog)('generating key file...');
99
- await (0, _cp.spawn)(
100
- 'openssl',
101
- [
102
- 'genpkey',
103
- '-algorithm',
104
- 'RSA',
105
- '-pkeyopt',
106
- 'rsa_keygen_bits:2048',
107
- '-out',
108
- keyFile],
109
-
110
- { pipeOutput: true });
111
-
112
- (0, _run.buildLog)('generating csr file...');
113
- await (0, _cp.spawn)(
114
- 'openssl',
115
- [
116
- 'req',
117
- '-new',
118
- '-key',
119
- keyFile,
120
- '-out',
121
- csrFile,
122
- '-subj',
123
- `/C=${countryName}/ST=${stateOrProvinceName}/L=${localityName}/O=${organizationName}/OU=${organizationalUnitName}/CN=${commonName}/CN=${externalIp4}/CN=${hostname}/CN=${dnsName}${ipAddresses.reduce(
124
- (acc, next) => `${acc}/CN=${next}`)
125
- }/CN=localhost`,
126
- '-config',
127
- confFile],
128
-
129
- { pipeOutput: true });
130
-
131
- (0, _run.buildLog)('generating cert...');
132
- await (0, _cp.spawn)(
133
- 'openssl',
134
- [
135
- 'x509',
136
- '-req',
137
- '-days',
138
- '365',
139
- '-in',
140
- csrFile,
141
- '-signkey',
142
- keyFile,
143
- '-out',
144
- crtFile,
145
- '-extfile',
146
- confFile,
147
- '-extensions',
148
- 'v3_req'],
149
-
150
- { pipeOutput: true });
151
-
152
- }
153
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jZXJ0LmpzIl0sIm5hbWVzIjpbImdldENlcnRDb25maWciLCJjZXJ0IiwiZ2V0SXBBZGRyZXNzZXMiLCJpRmFjZXMiLCJvcyIsIm5ldHdvcmtJbnRlcmZhY2VzIiwiT2JqZWN0Iiwia2V5cyIsInJlZHVjZSIsInByZXYiLCJpZk5hbWUiLCJtYXAiLCJpRmFjZSIsImFkZHJlc3MiLCJnZW5lcmF0ZUNlcnQiLCJ0YXJnZXREaXIiLCJmb3JjZSIsInByb2Nlc3MiLCJhcmd2IiwiaW5jbHVkZXMiLCJsZW5ndGgiLCJjb3VudHJ5TmFtZSIsInN0YXRlT3JQcm92aW5jZU5hbWUiLCJsb2NhbGl0eU5hbWUiLCJvcmdhbml6YXRpb25OYW1lIiwib3JnYW5pemF0aW9uYWxVbml0TmFtZSIsImNvbW1vbk5hbWUiLCJlbWFpbEFkZHJlc3MiLCJob3N0bmFtZSIsImlwQWRkcmVzc2VzIiwiSlNPTiIsInN0cmluZ2lmeSIsImlmY29uZmlnIiwicnAiLCJnZXQiLCJqc29uIiwiZXh0ZXJuYWxJcDQiLCJpcCIsImRuc05hbWUiLCJmcyIsImVuc3VyZURpciIsImtleUZpbGUiLCJwYXRoIiwicmVzb2x2ZSIsImNzckZpbGUiLCJjcnRGaWxlIiwiY29uZlRlbXBsYXRlRmlsZSIsIl9fZGlybmFtZSIsImNvbmZGaWxlIiwiY29uZlRlbXBsYXRlIiwicmVhZEZpbGUiLCJ3cml0ZUZpbGUiLCJyZXBsYWNlIiwiYWNjIiwibmV4dCIsInBpcGVPdXRwdXQiXSwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCOzs7Ozs7Ozs7Ozs7QUFZTyxTQUFTQSxhQUFULEdBQXFDO0FBQzFDLFNBQU8sbUJBQVNDLElBQVQsSUFBaUIsRUFBeEI7QUFDRDs7QUFFTSxTQUFTQyxjQUFULEdBQW9DO0FBQ3pDLFFBQU1DLE1BQU0sR0FBR0MsWUFBR0MsaUJBQUgsRUFBZjtBQUNBLFNBQU9DLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSixNQUFaLEVB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STs7QUFnQkosSUFBRU8sVUFBVSxFQUFFLElBQWQsRUFoQkksQ0FBTjs7QUFrQkEscUJBQVMsb0JBQVQ7QUFDQSxRQUFNO0FBQ0osV0FESTtBQUVKO0FBQ0UsUUFERjtBQUVFLFFBRkY7QUFHRSxTQUhGO0FBSUUsT0FKRjtBQUtFLE9BTEY7QUFNRVgsRUFBQUEsT0FORjtBQU9FLFlBUEY7QUFRRUgsRUFBQUEsT0FSRjtBQVNFLFFBVEY7QUFVRUksRUFBQUEsT0FWRjtBQVdFLFlBWEY7QUFZRUcsRUFBQUEsUUFaRjtBQWFFLGVBYkY7QUFjRSxVQWRGLENBRkk7O0FBa0JKLElBQUVPLFVBQVUsRUFBRSxJQUFkLEVBbEJJLENBQU47O0FBb0JEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgcnAgZnJvbSAncmVxdWVzdC1wcm9taXNlLW5hdGl2ZSc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBidWlsZExvZyB9IGZyb20gJy4vcnVuJztcbmltcG9ydCB7IHJlYWREaXIgfSBmcm9tICcuL2ZzJztcbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnLi9jcCc7XG5pbXBvcnQgeyBnZXRDZmcgfSBmcm9tICcuL3BrZyc7XG5cbmV4cG9ydCB0eXBlIENlcnRDb25maWcgPSB7XG4gIGNvdW50cnlOYW1lPzogc3RyaW5nLFxuICBzdGF0ZU9yUHJvdmluY2VOYW1lPzogc3RyaW5nLFxuICBsb2NhbGl0eU5hbWU/OiBzdHJpbmcsXG4gIG9yZ2FuaXphdGlvbk5hbWU/OiBzdHJpbmcsXG4gIG9yZ2FuaXphdGlvbmFsVW5pdE5hbWU/OiBzdHJpbmcsXG4gIGNvbW1vbk5hbWU/OiBzdHJpbmcsXG4gIGVtYWlsQWRkcmVzcz86IHN0cmluZyxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDZXJ0Q29uZmlnKCk6IENlcnRDb25maWcge1xuICByZXR1cm4gZ2V0Q2ZnKCkuY2VydCB8fCB7fTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElwQWRkcmVzc2VzKCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgaUZhY2VzID0gb3MubmV0d29ya0ludGVyZmFjZXMoKTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGlGYWNlcykucmVkdWNlKFxuICAgIChwcmV2LCBpZk5hbWUpID0+IFtcbiAgICAgIC4uLnByZXYsXG4gICAgICAuLi5pRmFjZXNbaWZOYW1lXS5tYXAoKGlGYWNlKSA9PiBpRmFjZS5hZGRyZXNzKSxcbiAgICBdLFxuICAgIFtdLFxuICApO1xufVxuXG4vLyBHZW5lcmF0ZSBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlIChpZiBpdCBkb2Vzbid0IGV4aXN0KVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlQ2VydChcbiAgdGFyZ2V0RGlyOiBzdHJpbmcsXG4gIGZvcmNlOiBib29sZWFuID0gcHJvY2Vzcy5hcmd2LmluY2x1ZGVzKCctLWZvcmNlLWdlbmVyYXRlQ2VydCcpLFxuKSB7XG4gIGlmIChwcm9jZXNzLmFyZ3YuaW5jbHVkZXMoJy0tbm8tZ2VuZXJhdGVDZXJ0JykpIHtcbiAgICBidWlsZExvZygnU2tpcHBpbmcgZHVlIHRvIC0tbm8tZ2VuZXJhdGVDZXJ0Jyk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGJ1aWxkTG9nKGBzY2FubmluZyAke3RhcmdldERpcn0gZm9yIGNlcnRpZmljYXRlcy4uLmApO1xuICBpZiAoXG4gICAgIWZvcmNlICYmXG4gICAgKGF3YWl0IHJlYWREaXIoYCR7dGFyZ2V0RGlyfS9zZXJ2ZXIuQChjcnR8a2V5KWApKS5sZW5ndGggPT09IDJcbiAgKSB7XG4gICAgYnVpbGRMb2coJ1NraXBwaW5nIGNlcnRpZmljYXRlIGdlbmVyYXRpb246IGNlcnRpZmljYXRlIGFscmVhZHkgZXhpc3RzJyk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGJ1aWxkTG9nKCdHZW5lcmF0aW5nIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlLi4uJyk7XG4gIGNvbnN0IHtcbiAgICBjb3VudHJ5TmFtZSA9ICdVUycsXG4gICAgc3RhdGVPclByb3ZpbmNlTmFtZSA9ICdQZW5uc3lsdmFuaWEnLFxuICAgIGxvY2FsaXR5TmFtZSA9ICdTb21lQ2l0eScsXG4gICAgb3JnYW5pemF0aW9uTmFtZSA9ICdDb21wYW55JyxcbiAgICBvcmdhbml6YXRpb25hbFVuaXROYW1lID0gJ1Byb2R1Y3QnLFxuICAgIGNvbW1vbk5hbWUgPSAnYXBwLmNvbXBhbnkuY29tJyxcbiAgICBlbWFpbEFkZHJlc3MgPSAnY29udGFjdEBjb21wYW55LmNvbScsXG4gIH0gPSBnZXRDZXJ0Q29uZmlnKCk7XG4gIGNvbnN0IGhvc3RuYW1lID0gb3MuaG9zdG5hbWUoKTtcbiAgYnVpbGRMb2coYGhvc3RuYW1lOiAke2hvc3RuYW1lfWApO1xuICBjb25zdCBpcEFkZHJlc3NlcyA9IGdldElwQWRkcmVzc2VzKCk7XG4gIGJ1aWxkTG9nKGBpcCBhZGRyZXNzZXM6ICR7SlNPTi5zdHJpbmdpZnkoaXBBZGRyZXNzZXMpfWApO1xuICBjb25zdCBpZmNvbmZpZyA9IGF3YWl0IHJwLmdldCgnaHR0cHM6Ly9pZmNvbmZpZy5jbycsIHsganNvbjogdHJ1ZSB9KTtcbiAgY29uc3QgZXh0ZXJuYWxJcDQgPSBpZmNvbmZpZy5pcDtcbiAgYnVpbGRMb2coYGV4dGVybmFsIGlwdjQ6ICR7ZXh0ZXJuYWxJcDR9YCk7XG4gIGNvbnN0IGRuc05hbWUgPSBpZmNvbmZpZy5ob3N0bmFtZTtcbiAgYnVpbGRMb2coYGRuc05hbWU6ICR7ZG5zTmFtZX1gKTtcblxuICBhd2FpdCBmcy5lbnN1cmVEaXIodGFyZ2V0RGlyKTtcbiAgY29uc3Qga2V5RmlsZSA9IHBhdGgucmVzb2x2ZSh0YXJnZXREaXIsICdzZXJ2ZXIua2V5Jyk7XG4gIGNvbnN0IGNzckZpbGUgPSBwYXRoLnJlc29sdmUodGFyZ2V0RGlyLCAnc2VydmVyLmNzcicpO1xuICBjb25zdCBjcnRGaWxlID0gcGF0aC5yZXNvbHZlKHRhcmdldERpciwgJ3NlcnZlci5jcnQnKTtcbiAgY29uc3QgY29uZlRlbXBsYXRlRmlsZSA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdjZXJ0LmNvbmYnKTtcbiAgY29uc3QgY29uZkZpbGUgPSBwYXRoLnJlc29sdmUodGFyZ2V0RGlyLCAnY2VydC5jb25mLmdlbmVyYXRlZCcpO1xuICBjb25zdCBjb25mVGVtcGxhdGUgPSBhd2FpdCBmcy5yZWFkRmlsZShjb25mVGVtcGxhdGVGaWxlLCAndXRmOCcpO1xuICBhd2FpdCBmcy53cml0ZUZpbGUoXG4gICAgY29uZkZpbGUsXG4gICAgY29uZlRlbXBsYXRlXG4gICAgICAucmVwbGFjZSgne3tjb3VudHJ5TmFtZX19JywgY291bnRyeU5hbWUpXG4gICAgICAucmVwbGFjZSgne3tzdGF0ZU9yUHJvdmluY2VOYW1lfX0nLCBzdGF0ZU9yUHJvdmluY2VOYW1lKVxuICAgICAgLnJlcGxhY2UoJ3t7bG9jYWxpdHlOYW1lfX0nLCBsb2NhbGl0eU5hbWUpXG4gICAgICAucmVwbGFjZSgne3tvcmdhbml6YXRpb25OYW1lfX0nLCBvcmdhbml6YXRpb25OYW1lKVxuICAgICAgLnJlcGxhY2UoJ3t7b3JnYW5pemF0aW9uYWxVbml0TmFtZX19Jywgb3JnYW5pemF0aW9uYWxVbml0TmFtZSlcbiAgICAgIC5yZXBsYWNlKCd7e2NvbW1vbk5hbWV9fScsIGNvbW1vbk5hbWUpXG4gICAgICAucmVwbGFjZSgne3tlbWFpbEFkZHJlc3N9fScsIGVtYWlsQWRkcmVzcylcbiAgICAgIC5yZXBsYWNlKFxuICAgICAgICAne3tTQU5fSVB9fScsXG4gICAgICAgIGlwQWRkcmVzc2VzLnJlZHVjZSgoYWNjLCBuZXh0KSA9PiBgJHthY2N9LElQOiR7bmV4dH1gLCAnJyksXG4gICAgICApXG4gICAgICAucmVwbGFjZSgne3tTQU5fRE5TfX0nLCBgLEROUzoke2hvc3RuYW1lfSxETlM6JHtkbnNOYW1lfWApLFxuICAgICd1dGY4JyxcbiAgKTtcblxuICBidWlsZExvZygnZ2VuZXJhdGluZyBrZXkgZmlsZS4uLicpO1xuICBhd2FpdCBzcGF3bihcbiAgICAnb3BlbnNzbCcsXG4gICAgW1xuICAgICAgJ2dlbnBrZXknLFxuICAgICAgJy1hbGdvcml0aG0nLFxuICAgICAgJ1JTQScsXG4gICAgICAnLXBrZXlvcHQnLFxuICAgICAgJ3JzYV9rZXlnZW5fYml0czoyMDQ4JyxcbiAgICAgICctb3V0JyxcbiAgICAgIGtleUZpbGUsXG4gICAgXSxcbiAgICB7IHBpcGVPdXRwdXQ6IHRydWUgfSxcbiAgKTtcbiAgYnVpbGRMb2coJ2dlbmVyYXRpbmcgY3NyIGZpbGUuLi4nKTtcbiAgYXdhaXQgc3Bhd24oXG4gICAgJ29wZW5zc2wnLFxuICAgIFtcbiAgICAgICdyZXEnLFxuICAgICAgJy1uZXcnLFxuICAgICAgJy1rZXknLFxuICAgICAga2V5RmlsZSxcbiAgICAgICctb3V0JyxcbiAgICAgIGNzckZpbGUsXG4gICAgICAnLXN1YmonLFxuICAgICAgYC9DPSR7Y291bnRyeU5hbWV9L1NUPSR7c3RhdGVPclByb3ZpbmNlTmFtZX0vTD0ke2xvY2FsaXR5TmFtZX0vTz0ke29yZ2FuaXphdGlvbk5hbWV9L09VPSR7b3JnYW5pemF0aW9uYWxVbml0TmFtZX0vQ049JHtjb21tb25OYW1lfS9DTj0ke2V4dGVybmFsSXA0fS9DTj0ke2hvc3RuYW1lfS9DTj0ke2Ruc05hbWV9JHtpcEFkZHJlc3Nlcy5yZWR1Y2UoXG4gICAgICAgIChhY2MsIG5leHQpID0+IGAke2FjY30vQ049JHtuZXh0fWAsXG4gICAgICApfS9DTj1sb2NhbGhvc3RgLFxuICAgICAgJy1jb25maWcnLFxuICAgICAgY29uZkZpbGUsXG4gICAgXSxcbiAgICB7IHBpcGVPdXRwdXQ6IHRydWUgfSxcbiAgKTtcbiAgYnVpbGRMb2coJ2dlbmVyYXRpbmcgY2VydC4uLicpO1xuICBhd2FpdCBzcGF3bihcbiAgICAnb3BlbnNzbCcsXG4gICAgW1xuICAgICAgJ3g1MDknLFxuICAgICAgJy1yZXEnLFxuICAgICAgJy1kYXlzJyxcbiAgICAgICczNjUnLFxuICAgICAgJy1pbicsXG4gICAgICBjc3JGaWxlLFxuICAgICAgJy1zaWdua2V5JyxcbiAgICAgIGtleUZpbGUsXG4gICAgICAnLW91dCcsXG4gICAgICBjcnRGaWxlLFxuICAgICAgJy1leHRmaWxlJyxcbiAgICAgIGNvbmZGaWxlLFxuICAgICAgJy1leHRlbnNpb25zJyxcbiAgICAgICd2M19yZXEnLFxuICAgIF0sXG4gICAgeyBwaXBlT3V0cHV0OiB0cnVlIH0sXG4gICk7XG59XG4iXX0=
package/cert.js.flow DELETED
@@ -1,152 +0,0 @@
1
- // @flow
2
- import os from 'os';
3
- import rp from 'request-promise-native';
4
- import path from 'path';
5
- import fs from 'fs-extra';
6
- import { buildLog } from './run';
7
- import { readDir } from './fs';
8
- import { spawn } from './cp';
9
- import { getCfg } from './pkg';
10
-
11
- export type CertConfig = {
12
- countryName?: string,
13
- stateOrProvinceName?: string,
14
- localityName?: string,
15
- organizationName?: string,
16
- organizationalUnitName?: string,
17
- commonName?: string,
18
- emailAddress?: string,
19
- };
20
-
21
- export function getCertConfig(): CertConfig {
22
- return getCfg().cert || {};
23
- }
24
-
25
- export function getIpAddresses(): string[] {
26
- const iFaces = os.networkInterfaces();
27
- return Object.keys(iFaces).reduce(
28
- (prev, ifName) => [
29
- ...prev,
30
- ...iFaces[ifName].map((iFace) => iFace.address),
31
- ],
32
- [],
33
- );
34
- }
35
-
36
- // Generate a self-signed certificate (if it doesn't exist)
37
- export async function generateCert(
38
- targetDir: string,
39
- force: boolean = process.argv.includes('--force-generateCert'),
40
- ) {
41
- if (process.argv.includes('--no-generateCert')) {
42
- buildLog('Skipping due to --no-generateCert');
43
- return;
44
- }
45
- buildLog(`scanning ${targetDir} for certificates...`);
46
- if (
47
- !force &&
48
- (await readDir(`${targetDir}/server.@(crt|key)`)).length === 2
49
- ) {
50
- buildLog('Skipping certificate generation: certificate already exists');
51
- return;
52
- }
53
- buildLog('Generating self-signed certificate...');
54
- const {
55
- countryName = 'US',
56
- stateOrProvinceName = 'Pennsylvania',
57
- localityName = 'SomeCity',
58
- organizationName = 'Company',
59
- organizationalUnitName = 'Product',
60
- commonName = 'app.company.com',
61
- emailAddress = 'contact@company.com',
62
- } = getCertConfig();
63
- const hostname = os.hostname();
64
- buildLog(`hostname: ${hostname}`);
65
- const ipAddresses = getIpAddresses();
66
- buildLog(`ip addresses: ${JSON.stringify(ipAddresses)}`);
67
- const ifconfig = await rp.get('https://ifconfig.co', { json: true });
68
- const externalIp4 = ifconfig.ip;
69
- buildLog(`external ipv4: ${externalIp4}`);
70
- const dnsName = ifconfig.hostname;
71
- buildLog(`dnsName: ${dnsName}`);
72
-
73
- await fs.ensureDir(targetDir);
74
- const keyFile = path.resolve(targetDir, 'server.key');
75
- const csrFile = path.resolve(targetDir, 'server.csr');
76
- const crtFile = path.resolve(targetDir, 'server.crt');
77
- const confTemplateFile = path.resolve(__dirname, 'cert.conf');
78
- const confFile = path.resolve(targetDir, 'cert.conf.generated');
79
- const confTemplate = await fs.readFile(confTemplateFile, 'utf8');
80
- await fs.writeFile(
81
- confFile,
82
- confTemplate
83
- .replace('{{countryName}}', countryName)
84
- .replace('{{stateOrProvinceName}}', stateOrProvinceName)
85
- .replace('{{localityName}}', localityName)
86
- .replace('{{organizationName}}', organizationName)
87
- .replace('{{organizationalUnitName}}', organizationalUnitName)
88
- .replace('{{commonName}}', commonName)
89
- .replace('{{emailAddress}}', emailAddress)
90
- .replace(
91
- '{{SAN_IP}}',
92
- ipAddresses.reduce((acc, next) => `${acc},IP:${next}`, ''),
93
- )
94
- .replace('{{SAN_DNS}}', `,DNS:${hostname},DNS:${dnsName}`),
95
- 'utf8',
96
- );
97
-
98
- buildLog('generating key file...');
99
- await spawn(
100
- 'openssl',
101
- [
102
- 'genpkey',
103
- '-algorithm',
104
- 'RSA',
105
- '-pkeyopt',
106
- 'rsa_keygen_bits:2048',
107
- '-out',
108
- keyFile,
109
- ],
110
- { pipeOutput: true },
111
- );
112
- buildLog('generating csr file...');
113
- await spawn(
114
- 'openssl',
115
- [
116
- 'req',
117
- '-new',
118
- '-key',
119
- keyFile,
120
- '-out',
121
- csrFile,
122
- '-subj',
123
- `/C=${countryName}/ST=${stateOrProvinceName}/L=${localityName}/O=${organizationName}/OU=${organizationalUnitName}/CN=${commonName}/CN=${externalIp4}/CN=${hostname}/CN=${dnsName}${ipAddresses.reduce(
124
- (acc, next) => `${acc}/CN=${next}`,
125
- )}/CN=localhost`,
126
- '-config',
127
- confFile,
128
- ],
129
- { pipeOutput: true },
130
- );
131
- buildLog('generating cert...');
132
- await spawn(
133
- 'openssl',
134
- [
135
- 'x509',
136
- '-req',
137
- '-days',
138
- '365',
139
- '-in',
140
- csrFile,
141
- '-signkey',
142
- keyFile,
143
- '-out',
144
- crtFile,
145
- '-extfile',
146
- confFile,
147
- '-extensions',
148
- 'v3_req',
149
- ],
150
- { pipeOutput: true },
151
- );
152
- }
package/clean.js DELETED
@@ -1,20 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.clean = clean;
2
- var _fs = require("./fs");
3
-
4
- /**
5
- * Cleans up the build output directories.
6
- */
7
- async function clean(
8
- globs = ['dist/*', 'out/*', 'build/*'])
9
- {
10
- await Promise.all(
11
- globs.map((glob) =>
12
- (0, _fs.cleanDir)(glob, {
13
- nosort: true,
14
- dot: true,
15
- ignore: ['.git', '.hg'] })));
16
-
17
-
18
-
19
- }
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGVhbi5qcyJdLCJuYW1lcyI6WyJjbGVhbiIsImdsb2JzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImdsb2IiLCJub3NvcnQiLCJkb3QiLCJpZ25vcmUiXSwibWFwcGluZ3MiOiI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDTyxlQUFlQSxLQUFmO0FBQ0xDLEtBQWUsR0FBRyxDQUFDLFFBQUQsRUFBVyxPQUFYLEVBQW9CLFNBQXBCLENBRGI7QUFFVTtBQUNmLFFBQU1DLE9BQU8sQ0FBQ0MsR0FBUjtBQUNKRixFQUFBQSxLQUFLLENBQUNHLEdBQU4sQ0FBVSxDQUFDQyxJQUFEO0FBQ1Isb0JBQVNBLElBQVQsRUFBZTtBQUNiQyxJQUFBQSxNQUFNLEVBQUUsSUFESztBQUViQyxJQUFBQSxHQUFHLEVBQUUsSUFGUTtBQUdiQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxNQUFELEVBQVMsS0FBVCxDQUhLLEVBQWYsQ0FERixDQURJLENBQU47Ozs7QUFTRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG5pbXBvcnQgeyBjbGVhbkRpciB9IGZyb20gJy4vZnMnO1xuXG4vKipcbiAqIENsZWFucyB1cCB0aGUgYnVpbGQgb3V0cHV0IGRpcmVjdG9yaWVzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xlYW4oXG4gIGdsb2JzOiBzdHJpbmdbXSA9IFsnZGlzdC8qJywgJ291dC8qJywgJ2J1aWxkLyonXSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBnbG9icy5tYXAoKGdsb2IpID0+XG4gICAgICBjbGVhbkRpcihnbG9iLCB7XG4gICAgICAgIG5vc29ydDogdHJ1ZSxcbiAgICAgICAgZG90OiB0cnVlLFxuICAgICAgICBpZ25vcmU6IFsnLmdpdCcsICcuaGcnXSxcbiAgICAgIH0pLFxuICAgICksXG4gICk7XG59XG4iXX0=
package/clean.js.flow DELETED
@@ -1,19 +0,0 @@
1
- // @flow
2
- import { cleanDir } from './fs';
3
-
4
- /**
5
- * Cleans up the build output directories.
6
- */
7
- export async function clean(
8
- globs: string[] = ['dist/*', 'out/*', 'build/*'],
9
- ): Promise<void> {
10
- await Promise.all(
11
- globs.map((glob) =>
12
- cleanDir(glob, {
13
- nosort: true,
14
- dot: true,
15
- ignore: ['.git', '.hg'],
16
- }),
17
- ),
18
- );
19
- }
package/copy.js DELETED
@@ -1,80 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.copySrc = copySrc;
2
- var _path = _interopRequireDefault(require("path"));
3
- var _chokidar = _interopRequireDefault(require("chokidar"));
4
- var _fs = require("./fs");
5
- var _cp = require("./cp");
6
- var _run = require("./run");
7
- var _inlineResources = require("./inline-resources");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
8
-
9
- let timer = null;
10
- async function throttledCallback(cbFn) {
11
- if (!cbFn || typeof cbFn !== 'function') {
12
- return;
13
- }
14
- if (timer) {
15
- clearTimeout(timer);
16
- timer = null;
17
- }
18
- timer = setTimeout(() => {
19
- timer = null;
20
- cbFn();
21
- }, 200);
22
- }
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
- async function copySrc({
32
- from,
33
- to,
34
- watch = process.argv.includes('--watch'),
35
- cbFn } =
36
- {}) {
37
- await (0, _fs.copyDir)(from, to);
38
- if (cbFn) await cbFn();
39
- if (watch) {
40
- const watcher = _chokidar.default.watch([_path.default.join(from, '/**/*')], {
41
- ignoreInitial: true });
42
-
43
-
44
- watcher.on('all', async (event, filePath) => {
45
- const start = new Date();
46
- const src = _path.default.relative(from, filePath);
47
- const dest = _path.default.join(to, src);
48
- switch (event) {
49
- case 'add':
50
- case 'change':
51
- await (0, _fs.makeDir)(_path.default.dirname(dest));
52
- await (0, _fs.copyFile)(filePath, dest);
53
- break;
54
- case 'unlink':
55
- case 'unlinkDir':
56
- (0, _fs.cleanDir)(dest, { nosort: true, dot: true });
57
- break;
58
- default:
59
- return;}
60
-
61
- // Check dependencies
62
- if (_inlineResources.dependencies[dest]) {
63
- await Promise.all(
64
- _inlineResources.dependencies[dest].map(async (dep) => {
65
- const toCopy = _path.default.join(from, _path.default.relative(to, dep));
66
- await (0, _fs.copyFile)(toCopy, dep);
67
- (0, _run.buildLog)(`copied '${dep}' due to changed dependency`);
68
- }));
69
-
70
- }
71
- const end = new Date();
72
- const time = end.getTime() - start.getTime();
73
- (0, _run.buildLog)(`${event} '${dest}' after ${time} ms`, end);
74
- throttledCallback(cbFn);
75
- });
76
-
77
- (0, _cp.onKillSignal)(() => watcher.close());
78
- }
79
- }
80
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3B5LmpzIl0sIm5hbWVzIjpbInRpbWVyIiwidGhyb3R0bGVkQ2FsbGJhY2siLCJjYkZuIiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsImNvcHlTcmMiLCJmcm9tIiwidG8iLCJ3YXRjaCIsInByb2Nlc3MiLCJhcmd2IiwiaW5jbHVkZXMiLCJ3YXRjaGVyIiwiY2hva2lkYXIiLCJwYXRoIiwiam9pbiIsImlnbm9yZUluaXRpYWwiLCJvbiIsImV2ZW50IiwiZmlsZVBhdGgiLCJzdGFydCIsIkRhdGUiLCJzcmMiLCJyZWxhdGl2ZSIsImRlc3QiLCJkaXJuYW1lIiwibm9zb3J0IiwiZG90IiwiZGVwZW5kZW5jaWVzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImRlcCIsInRvQ29weSIsImVuZCIsInRpbWUiLCJnZXRUaW1lIiwiY2xvc2UiXSwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUQ7O0FBRUEsSUFBSUEsS0FBSyxHQUFHLElBQVo7QUFDQSxlQUFlQyxpQkFBZixDQUFpQ0MsSUFBakMsRUFBdUM7QUFDckMsTUFBSSxDQUFDQSxJQUFELElBQVMsT0FBT0EsSUFBUCxLQUFnQixVQUE3QixFQUF5QztBQUN2QztBQUNEO0FBQ0QsTUFBSUYsS0FBSixFQUFXO0FBQ1RHLElBQUFBLFlBQVksQ0FBQ0gsS0FBRCxDQUFaO0FBQ0FBLElBQUFBLEtBQUssR0FBRyxJQUFSO0FBQ0Q7QUFDREEsRUFBQUEsS0FBSyxHQUFHSSxVQUFVLENBQUMsTUFBTTtBQUN2QkosSUFBQUEsS0FBSyxHQUFHLElBQVI7QUFDQUUsSUFBQUEsSUFBSTtBQUNMLEdBSGlCLEVBR2YsR0FIZSxDQUFsQjtBQUlEOzs7Ozs7Ozs7QUFTTSxlQUFlRyxPQUFmLENBQXVCO0FBQzVCQyxFQUFBQSxJQUQ0QjtBQUU1QkMsRUFBQUEsRUFGNEI7QUFHNUJDLEVBQUFBLEtBQUssR0FBR0MsT0FBTyxDQUFDQyxJQUFSLENBQWFDLFFBQWIsQ0FBc0IsU0FBdEIsQ0FIb0I7QUFJNUJULEVBQUFBLElBSjRCO0FBS1YsRUFMYixFQUtnQztBQUNyQyxRQUFNLGlCQUFRSSxJQUFSLEVBQWNDLEVBQWQsQ0FBTjtBQUNBLE1BQUlMLElBQUosRUFBVSxNQUFNQSxJQUFJLEVBQVY7QUFDVixNQUFJTSxLQUFKLEVBQVc7QUFDVCxVQUFNSSxPQUFPLEdBQUdDLGtCQUFTTCxLQUFULENBQWUsQ0FBQ00sY0FBS0MsSUFBTCxDQUFVVCxJQUFWLEVBQWdCLE9BQWhCLENBQUQsQ0FBZixFQUEyQztBQUN6RFUsTUFBQUEsYUFBYSxFQUFFLElBRDBDLEVBQTNDLENBQWhCOzs7QUFJQUosSUFBQUEsT0FBTyxDQUFDSyxFQUFSLENBQVcsS0FBWCxFQUFrQixPQUFPQyxLQUFQLEVBQWNDLFFBQWQsS0FBMkI7QUFDM0MsWUFBTUMsS0FBSyxHQUFHLElBQUlDLElBQUosRUFBZDtBQUNBLFlBQU1DLEdBQUcsR0FBR1IsY0FBS1MsUUFBTCxDQUFjakIsSUFBZCxFQUFvQmEsUUFBcEIsQ0FBWjtBQUNBLFlBQU1LLElBQUksR0FBR1YsY0FBS0MsSUFBTCxDQUFVUixFQUFWLEVBQWNlLEdBQWQsQ0FBYjtBQUNBLGNBQVFKLEtBQVI7QUFDRSxhQUFLLEtBQUw7QUFDQSxhQUFLLFFBQUw7QUFDRSxnQkFBTSxpQkFBUUosY0FBS1csT0FBTCxDQUFhRCxJQUFiLENBQVIsQ0FBTjtBQUNBLGdCQUFNLGtCQUFTTCxRQUFULEVBQW1CSyxJQUFuQixDQUFOO0FBQ0E7QUFDRixhQUFLLFFBQUw7QUFDQSxhQUFLLFdBQUw7QUFDRSw0QkFBU0EsSUFBVCxFQUFlLEVBQUVFLE1BQU0sRUFBRSxJQUFWLEVBQWdCQyxHQUFHLEVBQUUsSUFBckIsRUFBZjtBQUNBO0FBQ0Y7QUFDRSxpQkFYSjs7QUFhQTtBQUNBLFVBQUlDLDhCQUFhSixJQUFiLENBQUosRUFBd0I7QUFDdEIsY0FBTUssT0FBTyxDQUFDQyxHQUFSO0FBQ0pGLHNDQUFhSixJQUFiLEVBQW1CTyxHQUFuQixDQUF1QixPQUFPQyxHQUFQLEtBQWU7QUFDcEMsZ0JBQU1DLE1BQU0sR0FBR25CLGNBQUtDLElBQUwsQ0FBVVQsSUFBVixFQUFnQlEsY0FBS1MsUUFBTCxDQUFjaEIsRUFBZCxFQUFrQnlCLEdBQWxCLENBQWhCLENBQWY7QUFDQSxnQkFBTSxrQkFBU0MsTUFBVCxFQUFpQkQsR0FBakIsQ0FBTjtBQUNBLDZCQUFVLFdBQVVBLEdBQUksNkJBQXhCO0FBQ0QsU0FKRCxDQURJLENBQU47O0FBT0Q7QUFDRCxZQUFNRSxHQUFHLEdBQUcsSUFBSWIsSUFBSixFQUFaO0FBQ0EsWUFBTWMsSUFBSSxHQUFHRCxHQUFHLENBQUNFLE9BQUosS0FBZ0JoQixLQUFLLENBQUNnQixPQUFOLEVBQTdCO0FBQ0EseUJBQVUsR0FBRWxCLEtBQU0sS0FBSU0sSUFBSyxXQUFVVyxJQUFLLEtBQTFDLEVBQWdERCxHQUFoRDtBQUNBakMsTUFBQUEsaUJBQWlCLENBQUNDLElBQUQsQ0FBakI7QUFDRCxLQS9CRDs7QUFpQ0EsMEJBQWEsTUFBTVUsT0FBTyxDQUFDeUIsS0FBUixFQUFuQjtBQUNEO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgY2hva2lkYXIgZnJvbSAnY2hva2lkYXInO1xuaW1wb3J0IHsgY29weUZpbGUsIG1ha2VEaXIsIGNvcHlEaXIsIGNsZWFuRGlyIH0gZnJvbSAnLi9mcyc7XG5pbXBvcnQgeyBvbktpbGxTaWduYWwgfSBmcm9tICcuL2NwJztcbmltcG9ydCB7IGJ1aWxkTG9nIH0gZnJvbSAnLi9ydW4nO1xuaW1wb3J0IHsgZGVwZW5kZW5jaWVzIH0gZnJvbSAnLi9pbmxpbmUtcmVzb3VyY2VzJztcblxubGV0IHRpbWVyID0gbnVsbDtcbmFzeW5jIGZ1bmN0aW9uIHRocm90dGxlZENhbGxiYWNrKGNiRm4pIHtcbiAgaWYgKCFjYkZuIHx8IHR5cGVvZiBjYkZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICh0aW1lcikge1xuICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgdGltZXIgPSBudWxsO1xuICB9XG4gIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgdGltZXIgPSBudWxsO1xuICAgIGNiRm4oKTtcbiAgfSwgMjAwKTtcbn1cblxuZXhwb3J0IHR5cGUgQ29weVNyY09wdGlvbnMgPSB7XG4gIGZyb206IHN0cmluZyxcbiAgdG86IHN0cmluZyxcbiAgd2F0Y2g/OiBib29sZWFuLFxuICBjYkZuPzogKCkgPT4gUHJvbWlzZTxhbnk+IHwgdm9pZCxcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3B5U3JjKHtcbiAgZnJvbSxcbiAgdG8sXG4gIHdhdGNoID0gcHJvY2Vzcy5hcmd2LmluY2x1ZGVzKCctLXdhdGNoJyksXG4gIGNiRm4sXG59OiBDb3B5U3JjT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGNvcHlEaXIoZnJvbSwgdG8pO1xuICBpZiAoY2JGbikgYXdhaXQgY2JGbigpO1xuICBpZiAod2F0Y2gpIHtcbiAgICBjb25zdCB3YXRjaGVyID0gY2hva2lkYXIud2F0Y2goW3BhdGguam9pbihmcm9tLCAnLyoqLyonKV0sIHtcbiAgICAgIGlnbm9yZUluaXRpYWw6IHRydWUsXG4gICAgfSk7XG5cbiAgICB3YXRjaGVyLm9uKCdhbGwnLCBhc3luYyAoZXZlbnQsIGZpbGVQYXRoKSA9PiB7XG4gICAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKCk7XG4gICAgICBjb25zdCBzcmMgPSBwYXRoLnJlbGF0aXZlKGZyb20sIGZpbGVQYXRoKTtcbiAgICAgIGNvbnN0IGRlc3QgPSBwYXRoLmpvaW4odG8sIHNyYyk7XG4gICAgICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgICAgIGNhc2UgJ2FkZCc6XG4gICAgICAgIGNhc2UgJ2NoYW5nZSc6XG4gICAgICAgICAgYXdhaXQgbWFrZURpcihwYXRoLmRpcm5hbWUoZGVzdCkpO1xuICAgICAgICAgIGF3YWl0IGNvcHlGaWxlKGZpbGVQYXRoLCBkZXN0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndW5saW5rJzpcbiAgICAgICAgY2FzZSAndW5saW5rRGlyJzpcbiAgICAgICAgICBjbGVhbkRpcihkZXN0LCB7IG5vc29ydDogdHJ1ZSwgZG90OiB0cnVlIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIENoZWNrIGRlcGVuZGVuY2llc1xuICAgICAgaWYgKGRlcGVuZGVuY2llc1tkZXN0XSkge1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICBkZXBlbmRlbmNpZXNbZGVzdF0ubWFwKGFzeW5jIChkZXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRvQ29weSA9IHBhdGguam9pbihmcm9tLCBwYXRoLnJlbGF0aXZlKHRvLCBkZXApKTtcbiAgICAgICAgICAgIGF3YWl0IGNvcHlGaWxlKHRvQ29weSwgZGVwKTtcbiAgICAgICAgICAgIGJ1aWxkTG9nKGBjb3BpZWQgJyR7ZGVwfScgZHVlIHRvIGNoYW5nZWQgZGVwZW5kZW5jeWApO1xuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgZW5kID0gbmV3IERhdGUoKTtcbiAgICAgIGNvbnN0IHRpbWUgPSBlbmQuZ2V0VGltZSgpIC0gc3RhcnQuZ2V0VGltZSgpO1xuICAgICAgYnVpbGRMb2coYCR7ZXZlbnR9ICcke2Rlc3R9JyBhZnRlciAke3RpbWV9IG1zYCwgZW5kKTtcbiAgICAgIHRocm90dGxlZENhbGxiYWNrKGNiRm4pO1xuICAgIH0pO1xuXG4gICAgb25LaWxsU2lnbmFsKCgpID0+IHdhdGNoZXIuY2xvc2UoKSk7XG4gIH1cbn1cbiJdfQ==
package/copy.js.flow DELETED
@@ -1,79 +0,0 @@
1
- // @flow
2
- import path from 'path';
3
- import chokidar from 'chokidar';
4
- import { copyFile, makeDir, copyDir, cleanDir } from './fs';
5
- import { onKillSignal } from './cp';
6
- import { buildLog } from './run';
7
- import { dependencies } from './inline-resources';
8
-
9
- let timer = null;
10
- async function throttledCallback(cbFn) {
11
- if (!cbFn || typeof cbFn !== 'function') {
12
- return;
13
- }
14
- if (timer) {
15
- clearTimeout(timer);
16
- timer = null;
17
- }
18
- timer = setTimeout(() => {
19
- timer = null;
20
- cbFn();
21
- }, 200);
22
- }
23
-
24
- export type CopySrcOptions = {
25
- from: string,
26
- to: string,
27
- watch?: boolean,
28
- cbFn?: () => Promise<any> | void,
29
- };
30
-
31
- export async function copySrc({
32
- from,
33
- to,
34
- watch = process.argv.includes('--watch'),
35
- cbFn,
36
- }: CopySrcOptions = {}): Promise<void> {
37
- await copyDir(from, to);
38
- if (cbFn) await cbFn();
39
- if (watch) {
40
- const watcher = chokidar.watch([path.join(from, '/**/*')], {
41
- ignoreInitial: true,
42
- });
43
-
44
- watcher.on('all', async (event, filePath) => {
45
- const start = new Date();
46
- const src = path.relative(from, filePath);
47
- const dest = path.join(to, src);
48
- switch (event) {
49
- case 'add':
50
- case 'change':
51
- await makeDir(path.dirname(dest));
52
- await copyFile(filePath, dest);
53
- break;
54
- case 'unlink':
55
- case 'unlinkDir':
56
- cleanDir(dest, { nosort: true, dot: true });
57
- break;
58
- default:
59
- return;
60
- }
61
- // Check dependencies
62
- if (dependencies[dest]) {
63
- await Promise.all(
64
- dependencies[dest].map(async (dep) => {
65
- const toCopy = path.join(from, path.relative(to, dep));
66
- await copyFile(toCopy, dep);
67
- buildLog(`copied '${dep}' due to changed dependency`);
68
- }),
69
- );
70
- }
71
- const end = new Date();
72
- const time = end.getTime() - start.getTime();
73
- buildLog(`${event} '${dest}' after ${time} ms`, end);
74
- throttledCallback(cbFn);
75
- });
76
-
77
- onKillSignal(() => watcher.close());
78
- }
79
- }