@git.zone/tsbundle 2.0.9

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 (60) hide show
  1. package/assets/tsconfig.json +11 -0
  2. package/cli.js +4 -0
  3. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  4. package/dist_ts/00_commitinfo_data.js +9 -0
  5. package/dist_ts/index.d.ts +5 -0
  6. package/dist_ts/index.js +12 -0
  7. package/dist_ts/interfaces/index.d.ts +13 -0
  8. package/dist_ts/interfaces/index.js +2 -0
  9. package/dist_ts/mod_esbuild/index.child.d.ts +11 -0
  10. package/dist_ts/mod_esbuild/index.child.js +62 -0
  11. package/dist_ts/mod_esbuild/plugins.d.ts +3 -0
  12. package/dist_ts/mod_esbuild/plugins.js +4 -0
  13. package/dist_ts/mod_html/index.d.ts +10 -0
  14. package/dist_ts/mod_html/index.js +43 -0
  15. package/dist_ts/mod_html/plugins.d.ts +3 -0
  16. package/dist_ts/mod_html/plugins.js +4 -0
  17. package/dist_ts/mod_parcel/index.child.d.ts +11 -0
  18. package/dist_ts/mod_parcel/index.child.js +42 -0
  19. package/dist_ts/mod_parcel/plugins.d.ts +3 -0
  20. package/dist_ts/mod_parcel/plugins.js +4 -0
  21. package/dist_ts/mod_rollup/htmlhandler.d.ts +7 -0
  22. package/dist_ts/mod_rollup/htmlhandler.js +37 -0
  23. package/dist_ts/mod_rollup/index.child.d.ts +18 -0
  24. package/dist_ts/mod_rollup/index.child.js +128 -0
  25. package/dist_ts/mod_rollup/plugins.d.ts +10 -0
  26. package/dist_ts/mod_rollup/plugins.js +12 -0
  27. package/dist_ts/paths.d.ts +6 -0
  28. package/dist_ts/paths.js +8 -0
  29. package/dist_ts/plugins.d.ts +10 -0
  30. package/dist_ts/plugins.js +13 -0
  31. package/dist_ts/tsbundle.class.tsbundle.d.ts +4 -0
  32. package/dist_ts/tsbundle.class.tsbundle.js +36 -0
  33. package/dist_ts/tsbundle.class.tsbundleprocess.d.ts +18 -0
  34. package/dist_ts/tsbundle.class.tsbundleprocess.js +135 -0
  35. package/dist_ts/tsbundle.cli.d.ts +1 -0
  36. package/dist_ts/tsbundle.cli.js +36 -0
  37. package/dist_ts/tsbundle.htmlhandler.d.ts +7 -0
  38. package/dist_ts/tsbundle.htmlhandler.js +37 -0
  39. package/dist_ts/tsbundle.logging.d.ts +2 -0
  40. package/dist_ts/tsbundle.logging.js +14 -0
  41. package/dist_ts/tsbundle.paths.d.ts +5 -0
  42. package/dist_ts/tsbundle.paths.js +7 -0
  43. package/dist_ts/tsbundle.plugins.d.ts +21 -0
  44. package/dist_ts/tsbundle.plugins.js +25 -0
  45. package/license +19 -0
  46. package/npmextra.json +18 -0
  47. package/package.json +54 -0
  48. package/readme.md +78 -0
  49. package/ts/00_commitinfo_data.ts +8 -0
  50. package/ts/index.ts +13 -0
  51. package/ts/interfaces/index.ts +14 -0
  52. package/ts/mod_esbuild/index.child.ts +82 -0
  53. package/ts/mod_esbuild/plugins.ts +7 -0
  54. package/ts/mod_html/index.ts +47 -0
  55. package/ts/mod_html/plugins.ts +7 -0
  56. package/ts/paths.ts +11 -0
  57. package/ts/plugins.ts +23 -0
  58. package/ts/tsbundle.class.tsbundle.ts +49 -0
  59. package/ts/tsbundle.cli.ts +55 -0
  60. package/ts/tsbundle.logging.ts +15 -0
@@ -0,0 +1,11 @@
1
+ {
2
+ "compilerOptions": {
3
+ "experimentalDecorators": true,
4
+ "target": "ES2020",
5
+ "module": "ES2020",
6
+ "moduleResolution": "node12",
7
+ "useDefineForClassFields": false,
8
+ "preserveValueImports": true,
9
+ "esModuleInterop": true
10
+ }
11
+ }
package/cli.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ process.env.CLI_CALL = 'true';
3
+ const cliTool = await import('./dist_ts/index.js');
4
+ cliTool.runCli();
@@ -0,0 +1,8 @@
1
+ /**
2
+ * autocreated commitinfo by @pushrocks/commitinfo
3
+ */
4
+ export declare const commitinfo: {
5
+ name: string;
6
+ version: string;
7
+ description: string;
8
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * autocreated commitinfo by @pushrocks/commitinfo
3
+ */
4
+ export const commitinfo = {
5
+ name: '@git.zone/tsbundle',
6
+ version: '2.0.9',
7
+ description: 'a bundler using rollup for painless bundling of web projects'
8
+ };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxvQkFBb0I7SUFDMUIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLDhEQUE4RDtDQUM1RSxDQUFBIn0=
@@ -0,0 +1,5 @@
1
+ import './plugins.js';
2
+ import { runCli } from './tsbundle.cli.js';
3
+ export * from './tsbundle.class.tsbundle.js';
4
+ export * from './mod_html/index.js';
5
+ export { runCli };
@@ -0,0 +1,12 @@
1
+ import * as early from '@push.rocks/early';
2
+ early.start('tsbundle');
3
+ // lets import all plugins beforehand
4
+ import './plugins.js';
5
+ import { logger } from './tsbundle.logging.js';
6
+ import { runCli } from './tsbundle.cli.js';
7
+ early.stop();
8
+ // lets make this usable programmatically
9
+ export * from './tsbundle.class.tsbundle.js';
10
+ export * from './mod_html/index.js';
11
+ export { runCli };
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDeEIscUNBQXFDO0FBQ3JDLE9BQU8sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0FBRWIseUNBQXlDO0FBQ3pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMifQ==
@@ -0,0 +1,13 @@
1
+ export interface ICliOptions {
2
+ commonjs?: boolean;
3
+ skiplibcheck?: boolean;
4
+ production?: boolean;
5
+ bundler: 'parcel' | 'esbuild' | 'rollup';
6
+ }
7
+ export interface IEnvTransportOptions {
8
+ cwd: string;
9
+ from: string;
10
+ to: string;
11
+ mode: 'test' | 'production';
12
+ argv: ICliOptions;
13
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,11 @@
1
+ export declare class TsBundleProcess {
2
+ constructor();
3
+ /**
4
+ * creates a bundle for the test enviroment
5
+ */
6
+ buildTest(fromArg: string, toArg: string, argvArg: any): Promise<void>;
7
+ /**
8
+ * creates a bundle for the production environment
9
+ */
10
+ buildProduction(fromArg: string, toArg: string, argvArg: any): Promise<void>;
11
+ }
@@ -0,0 +1,62 @@
1
+ import * as plugins from './plugins.js';
2
+ import * as paths from '../paths.js';
3
+ import * as interfaces from '../interfaces/index.js';
4
+ import { logger } from '../tsbundle.logging.js';
5
+ export class TsBundleProcess {
6
+ constructor() {
7
+ // Nothing here
8
+ }
9
+ /**
10
+ * creates a bundle for the test enviroment
11
+ */
12
+ async buildTest(fromArg, toArg, argvArg) {
13
+ // create a bundle
14
+ const esbuild = await plugins.esbuild.build({
15
+ entryPoints: [fromArg],
16
+ bundle: true,
17
+ sourcemap: true,
18
+ format: 'esm',
19
+ target: 'es2020',
20
+ outfile: toArg,
21
+ tsconfig: paths.tsconfigPath
22
+ });
23
+ }
24
+ /**
25
+ * creates a bundle for the production environment
26
+ */
27
+ async buildProduction(fromArg, toArg, argvArg) {
28
+ // create a bundle
29
+ console.log('esbuild specific:');
30
+ console.log(`from: ${fromArg}`);
31
+ console.log((`to: ${toArg}`));
32
+ const esbuild = await plugins.esbuild.build({
33
+ entryPoints: [fromArg],
34
+ bundle: true,
35
+ sourcemap: true,
36
+ format: 'esm',
37
+ target: 'es2020',
38
+ minify: true,
39
+ outfile: toArg,
40
+ tsconfig: paths.tsconfigPath
41
+ });
42
+ }
43
+ }
44
+ const run = async () => {
45
+ console.log('running spawned compilation process');
46
+ const transportOptions = JSON.parse(process.env.transportOptions);
47
+ console.log('=======> ESBUILD');
48
+ console.log(transportOptions);
49
+ process.chdir(transportOptions.cwd);
50
+ console.log(`switched to ${process.cwd()}`);
51
+ const tsbundleProcessInstance = new TsBundleProcess();
52
+ if (transportOptions.mode === 'test') {
53
+ console.log('building for test:');
54
+ tsbundleProcessInstance.buildTest(plugins.smartpath.transform.makeAbsolute(transportOptions.from, process.cwd()), plugins.smartpath.transform.makeAbsolute(transportOptions.to, process.cwd()), transportOptions.argv);
55
+ }
56
+ else {
57
+ console.log('building for production:');
58
+ tsbundleProcessInstance.buildProduction(plugins.smartpath.transform.makeAbsolute(transportOptions.from, process.cwd()), plugins.smartpath.transform.makeAbsolute(transportOptions.to, process.cwd()), transportOptions.argv);
59
+ }
60
+ };
61
+ run();
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2hpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfZXNidWlsZC9pbmRleC5jaGlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sZUFBZTtJQUUxQjtRQUNFLGVBQWU7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFNBQVMsQ0FDcEIsT0FBZSxFQUNmLEtBQWEsRUFDYixPQUFZO1FBRVosa0JBQWtCO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDMUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxJQUFJO1lBQ1osU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsS0FBSztZQUNiLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLEtBQUssQ0FBQyxZQUFZO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxlQUFlLENBQzFCLE9BQWUsRUFDZixLQUFhLEVBQ2IsT0FBWTtRQUVaLGtCQUFrQjtRQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDMUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxJQUFJO1lBQ1osU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsS0FBSztZQUNiLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLE1BQU0sRUFBRSxJQUFJO1lBQ1osT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsS0FBSyxDQUFDLFlBQVk7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sZ0JBQWdCLEdBQW9DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25HLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNoQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1QyxNQUFNLHVCQUF1QixHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFDdEQsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1FBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUNqQyx1QkFBdUIsQ0FBQyxTQUFTLENBQy9CLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQzlFLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQzVFLGdCQUFnQixDQUFDLElBQUksQ0FDdEIsQ0FBQztLQUNIO1NBQU07UUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFDdkMsdUJBQXVCLENBQUMsZUFBZSxDQUNyQyxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUM5RSxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUM1RSxnQkFBZ0IsQ0FBQyxJQUFJLENBQ3RCLENBQUM7S0FDSDtBQUNILENBQUMsQ0FBQztBQUVGLEdBQUcsRUFBRSxDQUFDIn0=
@@ -0,0 +1,3 @@
1
+ export * from '../plugins.js';
2
+ import esbuild from 'esbuild';
3
+ export { esbuild };
@@ -0,0 +1,4 @@
1
+ export * from '../plugins.js';
2
+ import esbuild from 'esbuild';
3
+ export { esbuild };
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9lc2J1aWxkL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFFOUIsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBRTlCLE9BQU8sRUFDTCxPQUFPLEVBQ1IsQ0FBQSJ9
@@ -0,0 +1,10 @@
1
+ export declare class HtmlHandler {
2
+ defaultFromPath: string;
3
+ defaultToPath: string;
4
+ checkIfExists(): Promise<boolean>;
5
+ processHtml(optionsArg: {
6
+ from?: string;
7
+ to?: string;
8
+ minify?: boolean;
9
+ }): Promise<void>;
10
+ }
@@ -0,0 +1,43 @@
1
+ import * as plugins from './plugins.js';
2
+ import * as paths from '../paths.js';
3
+ export class HtmlHandler {
4
+ constructor() {
5
+ this.defaultFromPath = plugins.path.join(paths.htmlDir, 'index.html');
6
+ this.defaultToPath = plugins.path.join(paths.distServeDir, 'index.html');
7
+ }
8
+ async checkIfExists() {
9
+ return plugins.smartfile.fs.fileExists(this.defaultFromPath);
10
+ }
11
+ // copies the html
12
+ async processHtml(optionsArg) {
13
+ optionsArg = {
14
+ ...{
15
+ from: this.defaultFromPath,
16
+ to: this.defaultToPath,
17
+ minify: false,
18
+ },
19
+ ...optionsArg
20
+ };
21
+ if (await this.checkIfExists()) {
22
+ console.log(`${optionsArg.from} replaces file at ${optionsArg.to}`);
23
+ }
24
+ optionsArg.from = plugins.smartpath.transform.toAbsolute(optionsArg.from, paths.cwd);
25
+ optionsArg.to = plugins.smartpath.transform.toAbsolute(optionsArg.to, paths.cwd);
26
+ let fileString = plugins.smartfile.fs.toStringSync(optionsArg.from);
27
+ if (optionsArg.minify) {
28
+ fileString = plugins.htmlMinifier.minify(fileString, {
29
+ minifyCSS: true,
30
+ minifyJS: true,
31
+ sortAttributes: true,
32
+ sortClassName: true,
33
+ removeAttributeQuotes: true,
34
+ collapseWhitespace: true,
35
+ collapseInlineTagWhitespace: true,
36
+ removeComments: true,
37
+ });
38
+ }
39
+ await plugins.smartfile.memory.toFs(fileString, optionsArg.to);
40
+ console.log(`html processing succeeded!`);
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfaHRtbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUVyQyxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUNTLG9CQUFlLEdBQVcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN6RSxrQkFBYSxHQUFXLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7SUF5Q3JGLENBQUM7SUF2Q1EsS0FBSyxDQUFDLGFBQWE7UUFDeEIsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxrQkFBa0I7SUFDWCxLQUFLLENBQUMsV0FBVyxDQUFDLFVBSXhCO1FBQ0MsVUFBVSxHQUFHO1lBQ1gsR0FBSTtnQkFDRixJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQzFCLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDdEIsTUFBTSxFQUFFLEtBQUs7YUFDZDtZQUNELEdBQUcsVUFBVTtTQUNkLENBQUE7UUFDRCxJQUFJLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxxQkFBcUIsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDckU7UUFDRCxVQUFVLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQVcsQ0FBQztRQUMvRixVQUFVLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQVcsQ0FBQztRQUMzRixJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUNyQixVQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUNuRCxTQUFTLEVBQUUsSUFBSTtnQkFDZixRQUFRLEVBQUUsSUFBSTtnQkFDZCxjQUFjLEVBQUUsSUFBSTtnQkFDcEIsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLHFCQUFxQixFQUFFLElBQUk7Z0JBQzNCLGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLDJCQUEyQixFQUFFLElBQUk7Z0JBQ2pDLGNBQWMsRUFBRSxJQUFJO2FBQ3JCLENBQUMsQ0FBQztTQUNKO1FBQ0QsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGIn0=
@@ -0,0 +1,3 @@
1
+ export * from '../plugins.js';
2
+ import * as htmlMinifier from 'html-minifier';
3
+ export { htmlMinifier };
@@ -0,0 +1,4 @@
1
+ export * from '../plugins.js';
2
+ import * as htmlMinifier from 'html-minifier';
3
+ export { htmlMinifier };
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9odG1sL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFFOUIsT0FBTyxLQUFLLFlBQVksTUFBTSxlQUFlLENBQUM7QUFFOUMsT0FBTyxFQUNMLFlBQVksRUFDYixDQUFBIn0=
@@ -0,0 +1,11 @@
1
+ export declare class TsBundleProcess {
2
+ constructor();
3
+ /**
4
+ * creates a bundle for the test enviroment
5
+ */
6
+ buildTest(fromArg: string, toArg: string, argvArg: any): Promise<void>;
7
+ /**
8
+ * creates a bundle for the production environment
9
+ */
10
+ buildProduction(fromArg: string, toArg: string, argvArg: any): Promise<void>;
11
+ }
@@ -0,0 +1,42 @@
1
+ import * as plugins from './plugins.js';
2
+ import '../interfaces/index.js';
3
+ import '../tsbundle.logging.js';
4
+ export class TsBundleProcess {
5
+ constructor() {
6
+ // Nothing here
7
+ }
8
+ /**
9
+ * creates a bundle for the test enviroment
10
+ */
11
+ async buildTest(fromArg, toArg, argvArg) {
12
+ const parsedPath = plugins.path.parse(toArg);
13
+ const parcelInstance = new plugins.smartparcel.Parcel(fromArg, parsedPath.dir, parsedPath.base);
14
+ await parcelInstance.build();
15
+ }
16
+ /**
17
+ * creates a bundle for the production environment
18
+ */
19
+ async buildProduction(fromArg, toArg, argvArg) {
20
+ // create a bundle
21
+ const parsedPath = plugins.path.parse(toArg);
22
+ const parcelInstance = new plugins.smartparcel.Parcel(fromArg, parsedPath.dir, parsedPath.base);
23
+ await parcelInstance.build();
24
+ }
25
+ }
26
+ const run = async () => {
27
+ console.log('running spawned compilation process');
28
+ const transportOptions = JSON.parse(process.env.transportOptions);
29
+ console.log('bundling with parcel:');
30
+ console.log(transportOptions);
31
+ process.chdir(transportOptions.cwd);
32
+ console.log(`switched to ${process.cwd()}`);
33
+ const tsbundleProcessInstance = new TsBundleProcess();
34
+ if (transportOptions.mode === 'test') {
35
+ tsbundleProcessInstance.buildTest(transportOptions.from, transportOptions.to, transportOptions.argv);
36
+ }
37
+ else {
38
+ tsbundleProcessInstance.buildProduction(transportOptions.from, transportOptions.to, transportOptions.argv);
39
+ }
40
+ };
41
+ run();
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2hpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfcGFyY2VsL2luZGV4LmNoaWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQTRCLHdCQUF3QixDQUFDO0FBQ3JELE9BQXVCLHdCQUF3QixDQUFDO0FBRWhELE1BQU0sT0FBTyxlQUFlO0lBRTFCO1FBQ0UsZUFBZTtJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsU0FBUyxDQUNwQixPQUFlLEVBQ2YsS0FBYSxFQUNiLE9BQVk7UUFFWixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxNQUFNLGNBQWMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUNuRCxPQUFPLEVBQ1AsVUFBVSxDQUFDLEdBQUcsRUFDZCxVQUFVLENBQUMsSUFBSSxDQUNoQixDQUFDO1FBQ0YsTUFBTSxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGVBQWUsQ0FDMUIsT0FBZSxFQUNmLEtBQWEsRUFDYixPQUFZO1FBRVosa0JBQWtCO1FBQ2xCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE1BQU0sY0FBYyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQ25ELE9BQU8sRUFDUCxVQUFVLENBQUMsR0FBRyxFQUNkLFVBQVUsQ0FBQyxJQUFJLENBQ2hCLENBQUM7UUFDRixNQUFNLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDbkQsTUFBTSxnQkFBZ0IsR0FBb0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkcsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUN0RCxJQUFJLGdCQUFnQixDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7UUFDcEMsdUJBQXVCLENBQUMsU0FBUyxDQUMvQixnQkFBZ0IsQ0FBQyxJQUFJLEVBQ3JCLGdCQUFnQixDQUFDLEVBQUUsRUFDbkIsZ0JBQWdCLENBQUMsSUFBSSxDQUN0QixDQUFDO0tBQ0g7U0FBTTtRQUNMLHVCQUF1QixDQUFDLGVBQWUsQ0FDckMsZ0JBQWdCLENBQUMsSUFBSSxFQUNyQixnQkFBZ0IsQ0FBQyxFQUFFLEVBQ25CLGdCQUFnQixDQUFDLElBQUksQ0FDdEIsQ0FBQztLQUNIO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsR0FBRyxFQUFFLENBQUMifQ==
@@ -0,0 +1,3 @@
1
+ export * from '../plugins.js';
2
+ import * as smartparcel from '@pushrocks/smartparcel';
3
+ export { smartparcel };
@@ -0,0 +1,4 @@
1
+ export * from '../plugins.js';
2
+ import * as smartparcel from '@pushrocks/smartparcel';
3
+ export { smartparcel };
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9wYXJjZWwvcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQTtBQUU3QixPQUFPLEtBQUssV0FBVyxNQUFNLHdCQUF3QixDQUFDO0FBRXRELE9BQU8sRUFDTCxXQUFXLEVBQ1osQ0FBQSJ9
@@ -0,0 +1,7 @@
1
+ export declare class HtmlHandler {
2
+ sourceFilePath: string;
3
+ targetFilePath: string;
4
+ checkIfExists(): Promise<boolean>;
5
+ copyHtml(targetPathArg?: string): Promise<void>;
6
+ minifyHtml(targetPathArg?: string): Promise<void>;
7
+ }
@@ -0,0 +1,37 @@
1
+ import * as plugins from './plugins.js';
2
+ import * as paths from '../paths.js';
3
+ export class HtmlHandler {
4
+ constructor() {
5
+ this.sourceFilePath = plugins.path.join(paths.htmlDir, 'index.html');
6
+ this.targetFilePath = plugins.path.join(paths.distServeDir, 'index.html');
7
+ }
8
+ async checkIfExists() {
9
+ return plugins.smartfile.fs.fileExists(this.sourceFilePath);
10
+ }
11
+ // copies the html
12
+ async copyHtml(targetPathArg = this.targetFilePath) {
13
+ if (!(await this.checkIfExists())) {
14
+ return;
15
+ }
16
+ await plugins.smartfile.fs.copy(this.sourceFilePath, targetPathArg);
17
+ }
18
+ // copies and minifies the html
19
+ async minifyHtml(targetPathArg = this.targetFilePath) {
20
+ if (!(await this.checkIfExists())) {
21
+ return;
22
+ }
23
+ const fileString = plugins.smartfile.fs.toStringSync(this.sourceFilePath);
24
+ const minifiedHtml = plugins.htmlMinifier.minify(fileString, {
25
+ minifyCSS: true,
26
+ minifyJS: true,
27
+ sortAttributes: true,
28
+ sortClassName: true,
29
+ removeAttributeQuotes: true,
30
+ collapseWhitespace: true,
31
+ collapseInlineTagWhitespace: true,
32
+ removeComments: true,
33
+ });
34
+ plugins.smartfile.memory.toFsSync(minifiedHtml, targetPathArg);
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbGhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2Rfcm9sbHVwL2h0bWxoYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE1BQU0sT0FBTyxXQUFXO0lBQXhCO1FBQ1MsbUJBQWMsR0FBVyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3hFLG1CQUFjLEdBQVcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztJQWdDdEYsQ0FBQztJQTlCUSxLQUFLLENBQUMsYUFBYTtRQUN4QixPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGtCQUFrQjtJQUNYLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjO1FBQ3ZELElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUU7WUFDakMsT0FBTztTQUNSO1FBQ0QsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsK0JBQStCO0lBQ3hCLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjO1FBQ3pELElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUU7WUFDakMsT0FBTztTQUNSO1FBQ0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7WUFDM0QsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsSUFBSTtZQUNkLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLHFCQUFxQixFQUFFLElBQUk7WUFDM0Isa0JBQWtCLEVBQUUsSUFBSTtZQUN4QiwyQkFBMkIsRUFBRSxJQUFJO1lBQ2pDLGNBQWMsRUFBRSxJQUFJO1NBQ3JCLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGIn0=
@@ -0,0 +1,18 @@
1
+ import * as plugins from './plugins.js';
2
+ export declare class TsBundleProcess {
3
+ /**
4
+ * the basic default options for rollup
5
+ */
6
+ getBaseOptions(fromArg: string, toArg: string, argvArg: any): plugins.rollup.RollupOptions;
7
+ getOptionsTest(fromArg: string, toArg: string, argvArg: any): plugins.rollup.RollupOptions;
8
+ getOptionsProduction(fromArg: string, toArg: string, argvArg: any): plugins.rollup.RollupOptions;
9
+ constructor();
10
+ /**
11
+ * creates a bundle for the test enviroment
12
+ */
13
+ buildTest(fromArg: string, toArg: string, argvArg: any): Promise<void>;
14
+ /**
15
+ * creates a bundle for the production environment
16
+ */
17
+ buildProduction(fromArg: string, toArg: string, argvArg: any): Promise<void>;
18
+ }
@@ -0,0 +1,128 @@
1
+ import * as plugins from './plugins.js';
2
+ import '../interfaces/index.js';
3
+ import { logger } from '../tsbundle.logging.js';
4
+ export class TsBundleProcess {
5
+ /**
6
+ * the basic default options for rollup
7
+ */
8
+ getBaseOptions(fromArg = `ts_web/index.ts`, toArg = 'dist_bundle/bundle.js', argvArg) {
9
+ logger.log('info', `from: ${fromArg}`);
10
+ logger.log('info', `to: ${toArg}`);
11
+ const baseOptions = {
12
+ input: fromArg,
13
+ output: {
14
+ name: 'tsbundle',
15
+ file: toArg,
16
+ format: 'iife',
17
+ sourcemap: true,
18
+ },
19
+ // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash')
20
+ external: [],
21
+ watch: {
22
+ include: ['src/**'],
23
+ },
24
+ plugins: [
25
+ // Compile TypeScript files
26
+ plugins.rollupTypescript({
27
+ include: plugins.path.parse(fromArg).dir
28
+ ? plugins.path.parse(fromArg).dir + '/**/*.ts'
29
+ : '**/*.ts',
30
+ declaration: false,
31
+ emitDecoratorMetadata: true,
32
+ experimentalDecorators: true,
33
+ inlineSourceMap: true,
34
+ noEmitOnError: true,
35
+ lib: ['dom'],
36
+ noImplicitAny: false,
37
+ target: 'es2020',
38
+ module: 'es2020',
39
+ moduleResolution: 'node12',
40
+ allowSyntheticDefaultImports: true,
41
+ importsNotUsedAsValues: 'preserve',
42
+ ...(argvArg && argvArg.skiplibcheck
43
+ ? {
44
+ skipLibCheck: true,
45
+ }
46
+ : {}),
47
+ ...(argvArg && argvArg.allowimplicitany
48
+ ? {
49
+ noImplicitAny: false,
50
+ }
51
+ : {}),
52
+ ...(argvArg && argvArg.commonjs
53
+ ? {
54
+ module: 'commonjs',
55
+ moduleResolution: 'node',
56
+ }
57
+ : {}),
58
+ }),
59
+ plugins.rollupJson(),
60
+ // Allow node_modules resolution, so you can use 'external' to control
61
+ // which external modules to include in the bundle
62
+ // https://github.com/rollup/rollup-plugin-node-resolve#usage
63
+ plugins.rollupResolve(),
64
+ plugins.rollupCommonjs({}),
65
+ // Resolve source maps to the original source
66
+ plugins.rollupSourceMaps(),
67
+ ],
68
+ };
69
+ return baseOptions;
70
+ }
71
+ getOptionsTest(fromArg, toArg, argvArg) {
72
+ return this.getBaseOptions(fromArg, toArg, argvArg);
73
+ }
74
+ getOptionsProduction(fromArg, toArg, argvArg) {
75
+ const productionOptions = this.getBaseOptions(fromArg, toArg, argvArg);
76
+ productionOptions.plugins.push(plugins.rollupTerser({
77
+ compress: true,
78
+ mangle: true,
79
+ }));
80
+ return productionOptions;
81
+ }
82
+ constructor() {
83
+ // Nothing here
84
+ }
85
+ /**
86
+ * creates a bundle for the test enviroment
87
+ */
88
+ async buildTest(fromArg, toArg, argvArg) {
89
+ // create a bundle
90
+ logger.log('info', `bundling for TEST!`);
91
+ const buildOptions = this.getOptionsTest(fromArg, toArg, argvArg);
92
+ const bundle = await plugins.rollup.rollup(buildOptions);
93
+ bundle.generate(buildOptions.output);
94
+ await bundle.write(buildOptions.output);
95
+ logger.log('ok', `Successfully bundled files!`);
96
+ process.exit(0);
97
+ }
98
+ /**
99
+ * creates a bundle for the production environment
100
+ */
101
+ async buildProduction(fromArg, toArg, argvArg) {
102
+ // create a bundle
103
+ logger.log('info', `bundling for PRODUCTION!`);
104
+ const buildOptions = this.getOptionsProduction(fromArg, toArg, argvArg);
105
+ const bundle = await plugins.rollup.rollup(buildOptions);
106
+ bundle.generate(buildOptions.output);
107
+ await bundle.write(buildOptions.output);
108
+ logger.log('ok', `Successfully bundled files!`);
109
+ process.exit(0);
110
+ }
111
+ }
112
+ const run = async () => {
113
+ console.log('running spawned compilation process');
114
+ const transportOptions = JSON.parse(process.env.transportOptions);
115
+ console.log('bundling with rollup:');
116
+ console.log(transportOptions);
117
+ process.chdir(transportOptions.cwd);
118
+ console.log(`switched to ${process.cwd()}`);
119
+ const tsbundleProcessInstance = new TsBundleProcess();
120
+ if (transportOptions.mode === 'test') {
121
+ tsbundleProcessInstance.buildTest(transportOptions.from, transportOptions.to, transportOptions.argv);
122
+ }
123
+ else {
124
+ tsbundleProcessInstance.buildProduction(transportOptions.from, transportOptions.to, transportOptions.argv);
125
+ }
126
+ };
127
+ run();
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2hpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2Rfcm9sbHVwL2luZGV4LmNoaWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQTRCLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sZUFBZTtJQUMxQjs7T0FFRztJQUNJLGNBQWMsQ0FDbkIsVUFBa0IsaUJBQWlCLEVBQ25DLFFBQWdCLHVCQUF1QixFQUN2QyxPQUFZO1FBRVosTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVuQyxNQUFNLFdBQVcsR0FBaUM7WUFDaEQsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxLQUFLO2dCQUNYLE1BQU0sRUFBRSxNQUFNO2dCQUNkLFNBQVMsRUFBRSxJQUFJO2FBQ2hCO1lBQ0QseUZBQXlGO1lBQ3pGLFFBQVEsRUFBRSxFQUFFO1lBQ1osS0FBSyxFQUFFO2dCQUNMLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNwQjtZQUNELE9BQU8sRUFBRTtnQkFDUCwyQkFBMkI7Z0JBQzFCLE9BQU8sQ0FBQyxnQkFBd0IsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUc7d0JBQ3RDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEdBQUcsVUFBVTt3QkFDOUMsQ0FBQyxDQUFDLFNBQVM7b0JB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
@@ -0,0 +1,10 @@
1
+ export * from '../plugins.js';
2
+ import * as rollup from 'rollup';
3
+ import rollupBabel from 'rollup-plugin-babel';
4
+ import rollupCommonjs from '@rollup/plugin-commonjs';
5
+ import rollupJson from '@rollup/plugin-json';
6
+ import rollupResolve from '@rollup/plugin-node-resolve';
7
+ import rollupSourceMaps from 'rollup-plugin-sourcemaps';
8
+ import { terser as rollupTerser } from 'rollup-plugin-terser';
9
+ import rollupTypescript from '@rollup/plugin-typescript';
10
+ export { rollup, rollupBabel, rollupCommonjs, rollupJson, rollupResolve, rollupSourceMaps, rollupTerser, rollupTypescript, };
@@ -0,0 +1,12 @@
1
+ export * from '../plugins.js';
2
+ // third party scope
3
+ import * as rollup from 'rollup';
4
+ import rollupBabel from 'rollup-plugin-babel';
5
+ import rollupCommonjs from '@rollup/plugin-commonjs';
6
+ import rollupJson from '@rollup/plugin-json';
7
+ import rollupResolve from '@rollup/plugin-node-resolve';
8
+ import rollupSourceMaps from 'rollup-plugin-sourcemaps';
9
+ import { terser as rollupTerser } from 'rollup-plugin-terser';
10
+ import rollupTypescript from '@rollup/plugin-typescript';
11
+ export { rollup, rollupBabel, rollupCommonjs, rollupJson, rollupResolve, rollupSourceMaps, rollupTerser, rollupTypescript, };
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9yb2xsdXAvcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUU5QixvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxXQUFXLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxjQUFjLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxVQUFVLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxhQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxnQkFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxJQUFJLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sZ0JBQWdCLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsY0FBYyxFQUNkLFVBQVUsRUFDVixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixnQkFBZ0IsR0FDakIsQ0FBQyJ9
@@ -0,0 +1,6 @@
1
+ export declare const cwd: string;
2
+ export declare const packageDir: string;
3
+ export declare const htmlDir: string;
4
+ export declare const distServeDir: string;
5
+ export declare const assetsDir: string;
6
+ export declare const tsconfigPath: string;
@@ -0,0 +1,8 @@
1
+ import * as plugins from './plugins.js';
2
+ export const cwd = process.cwd();
3
+ export const packageDir = plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../');
4
+ export const htmlDir = plugins.path.join(cwd, './html');
5
+ export const distServeDir = plugins.path.join(cwd, './dist_serve');
6
+ export const assetsDir = plugins.path.join(packageDir, 'assets');
7
+ export const tsconfigPath = plugins.path.join(assetsDir, './tsconfig.json');
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9wYXRocy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDekMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFDL0QsS0FBSyxDQUNOLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLENBQUMifQ==
@@ -0,0 +1,10 @@
1
+ import * as path from 'path';
2
+ export { path };
3
+ import * as smartcli from '@push.rocks/smartcli';
4
+ import * as smartfile from '@push.rocks/smartfile';
5
+ import * as smartlog from '@push.rocks/smartlog';
6
+ import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-local';
7
+ import * as smartpath from '@push.rocks/smartpath';
8
+ import * as smartpromise from '@push.rocks/smartpromise';
9
+ import * as smartspawn from '@push.rocks/smartspawn';
10
+ export { smartcli, smartfile, smartlog, smartlogDestinationLocal, smartpath, smartpromise, smartspawn, };
@@ -0,0 +1,13 @@
1
+ // node native
2
+ import * as path from 'path';
3
+ export { path };
4
+ // pushrocks scope
5
+ import * as smartcli from '@push.rocks/smartcli';
6
+ import * as smartfile from '@push.rocks/smartfile';
7
+ import * as smartlog from '@push.rocks/smartlog';
8
+ import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-local';
9
+ import * as smartpath from '@push.rocks/smartpath';
10
+ import * as smartpromise from '@push.rocks/smartpromise';
11
+ import * as smartspawn from '@push.rocks/smartspawn';
12
+ export { smartcli, smartfile, smartlog, smartlogDestinationLocal, smartpath, smartpromise, smartspawn, };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVoQixrQkFBa0I7QUFDbEIsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxLQUFLLHdCQUF3QixNQUFNLHdDQUF3QyxDQUFDO0FBQ25GLE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEdBQ1gsQ0FBQyJ9
@@ -0,0 +1,4 @@
1
+ import * as interfaces from './interfaces/index.js';
2
+ export declare class TsBundle {
3
+ build(cwdArg: string, fromArg: string, toArg: string, argvArg: interfaces.ICliOptions): Promise<void>;
4
+ }
@@ -0,0 +1,36 @@
1
+ import * as plugins from './plugins.js';
2
+ import * as interfaces from './interfaces/index.js';
3
+ import { logger } from './tsbundle.logging.js';
4
+ export class TsBundle {
5
+ async build(cwdArg, fromArg = './ts_web/index.ts', toArg = './dist_bundle/bundle.js', argvArg) {
6
+ const done = plugins.smartpromise.defer();
7
+ const getBundlerPath = () => {
8
+ if (argvArg.bundler === 'esbuild') {
9
+ return './mod_esbuild/index.child.js';
10
+ }
11
+ return './mod_esbuild/index.child.js';
12
+ };
13
+ const transportOptions = {
14
+ cwd: cwdArg,
15
+ from: fromArg,
16
+ to: toArg,
17
+ mode: argvArg && argvArg.production ? 'production' : 'test',
18
+ argv: {
19
+ bundler: 'esbuild',
20
+ ...argvArg
21
+ }
22
+ };
23
+ const threadsimple = new plugins.smartspawn.ThreadSimple(plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), getBundlerPath()), [], {
24
+ env: {
25
+ ...process.env,
26
+ transportOptions: JSON.stringify(transportOptions),
27
+ },
28
+ });
29
+ const childProcess = await threadsimple.start();
30
+ childProcess.on('exit', (status) => {
31
+ done.resolve();
32
+ });
33
+ await done.promise;
34
+ }
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNidW5kbGUuY2xhc3MudHNidW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy90c2J1bmRsZS5jbGFzcy50c2J1bmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxNQUFNLE9BQU8sUUFBUTtJQUVaLEtBQUssQ0FBQyxLQUFLLENBQ2hCLE1BQWMsRUFDZCxVQUFrQixtQkFBbUIsRUFDckMsUUFBZ0IseUJBQXlCLEVBQ3pDLE9BQStCO1FBRS9CLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO1lBQzFCLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQ2pDLE9BQU8sOEJBQThCLENBQUE7YUFDdEM7WUFDRCxPQUFPLDhCQUE4QixDQUFBO1FBQ3ZDLENBQUMsQ0FBQTtRQUNELE1BQU0sZ0JBQWdCLEdBQW9DO1lBQ3hELEdBQUcsRUFBRSxNQUFNO1lBQ1gsSUFBSSxFQUFFLE9BQU87WUFDYixFQUFFLEVBQUUsS0FBSztZQUNULElBQUksRUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNO1lBQzNELElBQUksRUFBRztnQkFDTCxPQUFPLEVBQUUsU0FBUztnQkFDbEIsR0FBRyxPQUFPO2FBQ1g7U0FDRixDQUFBO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FDdEQsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFDL0QsY0FBYyxFQUFFLENBQ2pCLEVBQ0QsRUFBRSxFQUNGO1lBQ0UsR0FBRyxFQUFFO2dCQUNILEdBQUcsT0FBTyxDQUFDLEdBQUc7Z0JBQ2QsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQzthQUNuRDtTQUNGLENBQ0YsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLE1BQU0sWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hELFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3JCLENBQUM7Q0FDRiJ9