@nikovirtala/projen-bundle-lambda-function-code 0.0.14 → 0.0.15
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.
- package/.projenrc.ts +1 -2
- package/lib/bundler.d.ts +189 -0
- package/lib/bundler.js +162 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/lambda-function-code.d.ts +7 -3
- package/lib/lambda-function-code.js +21 -38
- package/lib/{internal.d.ts → utils.d.ts} +1 -0
- package/lib/utils.js +23 -0
- package/package.json +1 -6
- package/lib/internal.js +0 -12
package/.projenrc.ts
CHANGED
|
@@ -2,12 +2,11 @@ import { typescript, javascript } from "projen";
|
|
|
2
2
|
const project = new typescript.TypeScriptProject({
|
|
3
3
|
copyrightOwner: "Niko Virtala",
|
|
4
4
|
defaultReleaseBranch: "main",
|
|
5
|
-
deps: ["case", "projen"
|
|
5
|
+
deps: ["case", "projen"],
|
|
6
6
|
jest: false,
|
|
7
7
|
license: "MIT",
|
|
8
8
|
name: "@nikovirtala/projen-bundle-lambda-function-code",
|
|
9
9
|
npmAccess: javascript.NpmAccess.PUBLIC,
|
|
10
|
-
peerDeps: ["aws-cdk-lib@^2.51.0"],
|
|
11
10
|
prettier: true,
|
|
12
11
|
projenrcTs: true,
|
|
13
12
|
releaseToNpm: true,
|
package/lib/bundler.d.ts
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { Component, Project, Task } from "projen";
|
|
2
|
+
/**
|
|
3
|
+
* Options for `Bundler`.
|
|
4
|
+
*/
|
|
5
|
+
export interface BundlerOptions {
|
|
6
|
+
/**
|
|
7
|
+
* The semantic version requirement for `esbuild`.
|
|
8
|
+
*
|
|
9
|
+
* @default - no specific version (implies latest)
|
|
10
|
+
*/
|
|
11
|
+
readonly esbuildVersion?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Output directory for all bundles.
|
|
14
|
+
* @default "assets"
|
|
15
|
+
*/
|
|
16
|
+
readonly assetsDir?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Install the `bundle` command as a pre-compile phase.
|
|
19
|
+
*
|
|
20
|
+
* @default true
|
|
21
|
+
*/
|
|
22
|
+
readonly addToPreCompile?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Map of file extensions (without dot) and loaders to use for this file type.
|
|
25
|
+
* Loaders are appended to the esbuild command by `--loader:.extension=loader`
|
|
26
|
+
*/
|
|
27
|
+
readonly loaders?: {
|
|
28
|
+
[key: string]: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Adds support for bundling JavaScript applications and dependencies into a
|
|
33
|
+
* single file. In the future, this will also supports bundling websites.
|
|
34
|
+
*/
|
|
35
|
+
export declare class Bundler extends Component {
|
|
36
|
+
/**
|
|
37
|
+
* Returns the `Bundler` instance associated with a project or `undefined` if
|
|
38
|
+
* there is no Bundler.
|
|
39
|
+
* @param project The project
|
|
40
|
+
* @returns A bundler
|
|
41
|
+
*/
|
|
42
|
+
static of(project: Project): Bundler | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* The semantic version requirement for `esbuild` (if defined).
|
|
45
|
+
*/
|
|
46
|
+
readonly esbuildVersion: string | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* Root bundle directory.
|
|
49
|
+
*/
|
|
50
|
+
readonly bundledir: string;
|
|
51
|
+
private _task;
|
|
52
|
+
private readonly addToPreCompile;
|
|
53
|
+
private readonly loaders?;
|
|
54
|
+
/**
|
|
55
|
+
* Creates a `Bundler`.
|
|
56
|
+
*/
|
|
57
|
+
constructor(project: Project, options?: BundlerOptions);
|
|
58
|
+
/**
|
|
59
|
+
* Gets or creates the singleton "bundle" task of the project.
|
|
60
|
+
*
|
|
61
|
+
* If the project doesn't have a "bundle" task, it will be created and spawned
|
|
62
|
+
* during the pre-compile phase.
|
|
63
|
+
*/
|
|
64
|
+
get bundleTask(): Task;
|
|
65
|
+
/**
|
|
66
|
+
* Adds a task to the project which bundles a specific entrypoint and all of
|
|
67
|
+
* its dependencies into a single javascript output file.
|
|
68
|
+
*
|
|
69
|
+
* @param entrypoint The relative path of the artifact within the project
|
|
70
|
+
* @param options Bundling options
|
|
71
|
+
*/
|
|
72
|
+
addBundle(entrypoint: string, options: BundlingOptions): Bundle;
|
|
73
|
+
/**
|
|
74
|
+
* Add bundling support to a project. This is called implicitly when
|
|
75
|
+
* `bundleTask` is referenced first. It adds the dependency on `esbuild`,
|
|
76
|
+
* gitignore/npmignore, etc.
|
|
77
|
+
*/
|
|
78
|
+
private addBundlingSupport;
|
|
79
|
+
}
|
|
80
|
+
export interface Bundle {
|
|
81
|
+
/**
|
|
82
|
+
* The task that produces this bundle.
|
|
83
|
+
*/
|
|
84
|
+
readonly bundleTask: Task;
|
|
85
|
+
/**
|
|
86
|
+
* Location of the output file (relative to project root).
|
|
87
|
+
*/
|
|
88
|
+
readonly outfile: string;
|
|
89
|
+
/**
|
|
90
|
+
* Base directory containing the output file (relative to project root).
|
|
91
|
+
*/
|
|
92
|
+
readonly outdir: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Options for bundling.
|
|
96
|
+
*/
|
|
97
|
+
export interface BundlingOptions {
|
|
98
|
+
/**
|
|
99
|
+
* You can mark a file or a package as external to exclude it from your build.
|
|
100
|
+
* Instead of being bundled, the import will be preserved (using require for
|
|
101
|
+
* the iife and cjs formats and using import for the esm format) and will be
|
|
102
|
+
* evaluated at run time instead.
|
|
103
|
+
*
|
|
104
|
+
* This has several uses. First of all, it can be used to trim unnecessary
|
|
105
|
+
* code from your bundle for a code path that you know will never be executed.
|
|
106
|
+
* For example, a package may contain code that only runs in node but you will
|
|
107
|
+
* only be using that package in the browser. It can also be used to import
|
|
108
|
+
* code in node at run time from a package that cannot be bundled. For
|
|
109
|
+
* example, the fsevents package contains a native extension, which esbuild
|
|
110
|
+
* doesn't support.
|
|
111
|
+
*
|
|
112
|
+
* @default []
|
|
113
|
+
*/
|
|
114
|
+
readonly externals?: string[];
|
|
115
|
+
/**
|
|
116
|
+
* Include a source map in the bundle.
|
|
117
|
+
*
|
|
118
|
+
* @default true
|
|
119
|
+
*/
|
|
120
|
+
readonly sourcemap?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* esbuild target.
|
|
123
|
+
*
|
|
124
|
+
* @default "esnext"
|
|
125
|
+
*/
|
|
126
|
+
readonly target?: string;
|
|
127
|
+
/**
|
|
128
|
+
* esbuild platform.
|
|
129
|
+
*
|
|
130
|
+
* @default "node"
|
|
131
|
+
*/
|
|
132
|
+
readonly platform?: string;
|
|
133
|
+
/**
|
|
134
|
+
* Bundler output path relative to the asset's output directory.
|
|
135
|
+
* @default "index.mjs"
|
|
136
|
+
*/
|
|
137
|
+
readonly outfile?: string;
|
|
138
|
+
/**
|
|
139
|
+
* The path of the tsconfig.json file to use for bundling
|
|
140
|
+
* @default "tsconfig.json"
|
|
141
|
+
*/
|
|
142
|
+
readonly tsconfigPath?: string;
|
|
143
|
+
/**
|
|
144
|
+
* Map of file extensions (without dot) and loaders to use for this file type.
|
|
145
|
+
* Loaders are appended to the esbuild command by `--loader:.extension=loader`
|
|
146
|
+
*/
|
|
147
|
+
readonly loaders?: {
|
|
148
|
+
[key: string]: string;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Output format for the generated JavaScript files. There are currently three possible values that can be configured: `"iife"`, `"cjs"`, and `"esm"`.
|
|
152
|
+
*
|
|
153
|
+
* If not set (`undefined`), esbuild picks an output format for you based on `platform`:
|
|
154
|
+
* - `"cjs"` if `platform` is `"node"`
|
|
155
|
+
* - `"iife"` if `platform` is `"browser"`
|
|
156
|
+
* - `"esm"` if `platform` is `"neutral"`
|
|
157
|
+
*
|
|
158
|
+
* Note: If making a bundle to run under node with ESM, set `format` to `"esm"` instead of setting `platform` to `"neutral"`.
|
|
159
|
+
*
|
|
160
|
+
* @default undefined
|
|
161
|
+
*
|
|
162
|
+
* @see https://esbuild.github.io/api/#format
|
|
163
|
+
*/
|
|
164
|
+
readonly format?: string;
|
|
165
|
+
/**
|
|
166
|
+
*
|
|
167
|
+
*
|
|
168
|
+
* @default true
|
|
169
|
+
*/
|
|
170
|
+
readonly minify?: boolean;
|
|
171
|
+
/**
|
|
172
|
+
*
|
|
173
|
+
*
|
|
174
|
+
* @default false
|
|
175
|
+
*/
|
|
176
|
+
readonly sourcesContent?: boolean;
|
|
177
|
+
/**
|
|
178
|
+
*
|
|
179
|
+
*
|
|
180
|
+
* @default "module,main"
|
|
181
|
+
*/
|
|
182
|
+
readonly mainFields?: string;
|
|
183
|
+
/**
|
|
184
|
+
*
|
|
185
|
+
*
|
|
186
|
+
* @default ":js='import { createRequire as topLevelCreateRequire } from 'module';const require = topLevelCreateRequire(import.meta.url)'"
|
|
187
|
+
*/
|
|
188
|
+
readonly banner?: string;
|
|
189
|
+
}
|
package/lib/bundler.js
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Bundler = void 0;
|
|
27
|
+
const path = __importStar(require("path"));
|
|
28
|
+
const projen_1 = require("projen");
|
|
29
|
+
const utils_1 = require("./utils");
|
|
30
|
+
/**
|
|
31
|
+
* Adds support for bundling JavaScript applications and dependencies into a
|
|
32
|
+
* single file. In the future, this will also supports bundling websites.
|
|
33
|
+
*/
|
|
34
|
+
class Bundler extends projen_1.Component {
|
|
35
|
+
/**
|
|
36
|
+
* Returns the `Bundler` instance associated with a project or `undefined` if
|
|
37
|
+
* there is no Bundler.
|
|
38
|
+
* @param project The project
|
|
39
|
+
* @returns A bundler
|
|
40
|
+
*/
|
|
41
|
+
static of(project) {
|
|
42
|
+
const isBundler = (o) => o instanceof Bundler;
|
|
43
|
+
return project.components.find(isBundler);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Creates a `Bundler`.
|
|
47
|
+
*/
|
|
48
|
+
constructor(project, options = {}) {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
super(project);
|
|
51
|
+
this.esbuildVersion = options.esbuildVersion;
|
|
52
|
+
this.bundledir = (_a = options.assetsDir) !== null && _a !== void 0 ? _a : "assets";
|
|
53
|
+
this.addToPreCompile = (_b = options.addToPreCompile) !== null && _b !== void 0 ? _b : true;
|
|
54
|
+
this.loaders = options.loaders;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Gets or creates the singleton "bundle" task of the project.
|
|
58
|
+
*
|
|
59
|
+
* If the project doesn't have a "bundle" task, it will be created and spawned
|
|
60
|
+
* during the pre-compile phase.
|
|
61
|
+
*/
|
|
62
|
+
get bundleTask() {
|
|
63
|
+
if (!this._task) {
|
|
64
|
+
this.addBundlingSupport();
|
|
65
|
+
this._task = this.project.tasks.addTask("bundle", {
|
|
66
|
+
description: "Prepare assets",
|
|
67
|
+
});
|
|
68
|
+
// install the bundle task into the pre-compile phase.
|
|
69
|
+
if (this.addToPreCompile) {
|
|
70
|
+
this.project.preCompileTask.spawn(this._task);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return this._task;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Adds a task to the project which bundles a specific entrypoint and all of
|
|
77
|
+
* its dependencies into a single javascript output file.
|
|
78
|
+
*
|
|
79
|
+
* @param entrypoint The relative path of the artifact within the project
|
|
80
|
+
* @param options Bundling options
|
|
81
|
+
*/
|
|
82
|
+
addBundle(entrypoint, options) {
|
|
83
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
84
|
+
const name = (0, utils_1.renderBundleName)(entrypoint);
|
|
85
|
+
const outdir = path.posix.join(this.bundledir, name);
|
|
86
|
+
const outfile = path.posix.join(outdir, (_a = options.outfile) !== null && _a !== void 0 ? _a : "index.mjs");
|
|
87
|
+
const target = (_b = options.target) !== null && _b !== void 0 ? _b : "esnext";
|
|
88
|
+
const platform = (_c = options.platform) !== null && _c !== void 0 ? _c : "node";
|
|
89
|
+
const format = (_d = options.format) !== null && _d !== void 0 ? _d : "esm";
|
|
90
|
+
const sourcemap = (_e = options.sourcemap) !== null && _e !== void 0 ? _e : true;
|
|
91
|
+
const sourcesContent = (_f = options.sourcesContent) !== null && _f !== void 0 ? _f : false;
|
|
92
|
+
const minify = (_g = options.minify) !== null && _g !== void 0 ? _g : true;
|
|
93
|
+
const mainFields = (_h = options.mainFields) !== null && _h !== void 0 ? _h : "module,main";
|
|
94
|
+
const banner = (_j = options.banner) !== null && _j !== void 0 ? _j : ":js=import { createRequire as topLevelCreateRequire } from 'module';const require = topLevelCreateRequire(import.meta.url)";
|
|
95
|
+
const args = [
|
|
96
|
+
"esbuild",
|
|
97
|
+
"--bundle",
|
|
98
|
+
entrypoint,
|
|
99
|
+
`--target="${target}"`,
|
|
100
|
+
`--platform="${platform}"`,
|
|
101
|
+
`--outfile="${outfile}"`,
|
|
102
|
+
];
|
|
103
|
+
const tsconfig = (_k = options.tsconfigPath) !== null && _k !== void 0 ? _k : false;
|
|
104
|
+
if (tsconfig) {
|
|
105
|
+
args.push(`--tsconfig="${tsconfig}"`);
|
|
106
|
+
}
|
|
107
|
+
for (const x of (_l = options.externals) !== null && _l !== void 0 ? _l : []) {
|
|
108
|
+
args.push(`--external:${x}`);
|
|
109
|
+
}
|
|
110
|
+
if (sourcemap) {
|
|
111
|
+
args.push("--sourcemap");
|
|
112
|
+
}
|
|
113
|
+
if (sourcesContent) {
|
|
114
|
+
args.push(`--sources-content=${sourcesContent}`);
|
|
115
|
+
}
|
|
116
|
+
if (minify) {
|
|
117
|
+
args.push("--minify");
|
|
118
|
+
}
|
|
119
|
+
if (format) {
|
|
120
|
+
args.push(`--format=${format}`);
|
|
121
|
+
}
|
|
122
|
+
if (mainFields) {
|
|
123
|
+
args.push(`--main-fields=${mainFields}`);
|
|
124
|
+
}
|
|
125
|
+
if (banner) {
|
|
126
|
+
args.push(`--banner${banner}`);
|
|
127
|
+
}
|
|
128
|
+
const loaders = ((_m = options.loaders) !== null && _m !== void 0 ? _m : false) ? options.loaders : (_o = this.loaders) !== null && _o !== void 0 ? _o : false;
|
|
129
|
+
if (loaders) {
|
|
130
|
+
for (let [extension, loader] of Object.entries(loaders)) {
|
|
131
|
+
args.push(`--loader:.${extension}=${loader}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
console.log({ args: args });
|
|
135
|
+
const bundleTask = this.project.addTask(`bundle:${name}`, {
|
|
136
|
+
description: `Create a JavaScript bundle from ${entrypoint}`,
|
|
137
|
+
exec: args.join(" "),
|
|
138
|
+
});
|
|
139
|
+
this.bundleTask.spawn(bundleTask);
|
|
140
|
+
return {
|
|
141
|
+
bundleTask: bundleTask,
|
|
142
|
+
outdir: outdir,
|
|
143
|
+
outfile: outfile,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Add bundling support to a project. This is called implicitly when
|
|
148
|
+
* `bundleTask` is referenced first. It adds the dependency on `esbuild`,
|
|
149
|
+
* gitignore/npmignore, etc.
|
|
150
|
+
*/
|
|
151
|
+
addBundlingSupport() {
|
|
152
|
+
const ignoreEntry = `/${this.bundledir}/`;
|
|
153
|
+
this.project.addGitIgnore(ignoreEntry);
|
|
154
|
+
this.project.addPackageIgnore(`!${ignoreEntry}`); // include in tarball
|
|
155
|
+
const dep = this.esbuildVersion
|
|
156
|
+
? `esbuild@${this.esbuildVersion}`
|
|
157
|
+
: "esbuild";
|
|
158
|
+
this.project.deps.addDependency(dep, projen_1.DependencyType.BUILD);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
exports.Bundler = Bundler;
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9idW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTZCO0FBQzdCLG1DQUFrRTtBQUNsRSxtQ0FBMkM7QUFpQzNDOzs7R0FHRztBQUNILE1BQWEsT0FBUSxTQUFRLGtCQUFTO0lBQ3BDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVksRUFBZ0IsRUFBRSxDQUFDLENBQUMsWUFBWSxPQUFPLENBQUM7UUFDdkUsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBZ0JEOztPQUVHO0lBQ0gsWUFBWSxPQUFnQixFQUFFLFVBQTBCLEVBQUU7O1FBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQUEsT0FBTyxDQUFDLFNBQVMsbUNBQUksUUFBUSxDQUFDO1FBQy9DLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBQSxPQUFPLENBQUMsZUFBZSxtQ0FBSSxJQUFJLENBQUM7UUFDdkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsVUFBVTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDaEQsV0FBVyxFQUFFLGdCQUFnQjthQUM5QixD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QUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7UUFDdkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWM7WUFDN0IsQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNsQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSx1QkFBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRjtBQW5LRCwwQkFtS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIERlcGVuZGVuY3lUeXBlLCBQcm9qZWN0LCBUYXNrIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgcmVuZGVyQnVuZGxlTmFtZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYEJ1bmRsZXJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBzZW1hbnRpYyB2ZXJzaW9uIHJlcXVpcmVtZW50IGZvciBgZXNidWlsZGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3BlY2lmaWMgdmVyc2lvbiAoaW1wbGllcyBsYXRlc3QpXG4gICAqL1xuICByZWFkb25seSBlc2J1aWxkVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogT3V0cHV0IGRpcmVjdG9yeSBmb3IgYWxsIGJ1bmRsZXMuXG4gICAqIEBkZWZhdWx0IFwiYXNzZXRzXCJcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0c0Rpcj86IHN0cmluZztcblxuICAvKipcbiAgICogSW5zdGFsbCB0aGUgYGJ1bmRsZWAgY29tbWFuZCBhcyBhIHByZS1jb21waWxlIHBoYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhZGRUb1ByZUNvbXBpbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXAgb2YgZmlsZSBleHRlbnNpb25zICh3aXRob3V0IGRvdCkgYW5kIGxvYWRlcnMgdG8gdXNlIGZvciB0aGlzIGZpbGUgdHlwZS5cbiAgICogTG9hZGVycyBhcmUgYXBwZW5kZWQgdG8gdGhlIGVzYnVpbGQgY29tbWFuZCBieSBgLS1sb2FkZXI6LmV4dGVuc2lvbj1sb2FkZXJgXG4gICAqL1xuICByZWFkb25seSBsb2FkZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBBZGRzIHN1cHBvcnQgZm9yIGJ1bmRsaW5nIEphdmFTY3JpcHQgYXBwbGljYXRpb25zIGFuZCBkZXBlbmRlbmNpZXMgaW50byBhXG4gKiBzaW5nbGUgZmlsZS4gSW4gdGhlIGZ1dHVyZSwgdGhpcyB3aWxsIGFsc28gc3VwcG9ydHMgYnVuZGxpbmcgd2Vic2l0ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBCdW5kbGVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBCdW5kbGVyYCBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggYSBwcm9qZWN0IG9yIGB1bmRlZmluZWRgIGlmXG4gICAqIHRoZXJlIGlzIG5vIEJ1bmRsZXIuXG4gICAqIEBwYXJhbSBwcm9qZWN0IFRoZSBwcm9qZWN0XG4gICAqIEByZXR1cm5zIEEgYnVuZGxlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBQcm9qZWN0KTogQnVuZGxlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNCdW5kbGVyID0gKG86IENvbXBvbmVudCk6IG8gaXMgQnVuZGxlciA9PiBvIGluc3RhbmNlb2YgQnVuZGxlcjtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNCdW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc2VtYW50aWMgdmVyc2lvbiByZXF1aXJlbWVudCBmb3IgYGVzYnVpbGRgIChpZiBkZWZpbmVkKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlc2J1aWxkVmVyc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBSb290IGJ1bmRsZSBkaXJlY3RvcnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVuZGxlZGlyOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfdGFzazogVGFzayB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBhZGRUb1ByZUNvbXBpbGU6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZGVycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBgQnVuZGxlcmAuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBCdW5kbGVyT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmVzYnVpbGRWZXJzaW9uID0gb3B0aW9ucy5lc2J1aWxkVmVyc2lvbjtcbiAgICB0aGlzLmJ1bmRsZWRpciA9IG9wdGlvbnMuYXNzZXRzRGlyID8/IFwiYXNzZXRzXCI7XG4gICAgdGhpcy5hZGRUb1ByZUNvbXBpbGUgPSBvcHRpb25zLmFkZFRvUHJlQ29tcGlsZSA/PyB0cnVlO1xuICAgIHRoaXMubG9hZGVycyA9IG9wdGlvbnMubG9hZGVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIG9yIGNyZWF0ZXMgdGhlIHNpbmdsZXRvbiBcImJ1bmRsZVwiIHRhc2sgb2YgdGhlIHByb2plY3QuXG4gICAqXG4gICAqIElmIHRoZSBwcm9qZWN0IGRvZXNuJ3QgaGF2ZSBhIFwiYnVuZGxlXCIgdGFzaywgaXQgd2lsbCBiZSBjcmVhdGVkIGFuZCBzcGF3bmVkXG4gICAqIGR1cmluZyB0aGUgcHJlLWNvbXBpbGUgcGhhc2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGJ1bmRsZVRhc2soKTogVGFzayB7XG4gICAgaWYgKCF0aGlzLl90YXNrKSB7XG4gICAgICB0aGlzLmFkZEJ1bmRsaW5nU3VwcG9ydCgpO1xuICAgICAgdGhpcy5fdGFzayA9IHRoaXMucHJvamVjdC50YXNrcy5hZGRUYXNrKFwiYnVuZGxlXCIsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IFwiUHJlcGFyZSBhc3NldHNcIixcbiAgICAgIH0pO1xuXG4gICAgICAvLyBpbnN0YWxsIHRoZSBidW5kbGUgdGFzayBpbnRvIHRoZSBwcmUtY29tcGlsZSBwaGFzZS5cbiAgICAgIGlmICh0aGlzLmFkZFRvUHJlQ29tcGlsZSkge1xuICAgICAgICB0aGlzLnByb2plY3QucHJlQ29tcGlsZVRhc2suc3Bhd24odGhpcy5fdGFzayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3Rhc2s7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHRhc2sgdG8gdGhlIHByb2plY3Qgd2hpY2ggYnVuZGxlcyBhIHNwZWNpZmljIGVudHJ5cG9pbnQgYW5kIGFsbCBvZlxuICAgKiBpdHMgZGVwZW5kZW5jaWVzIGludG8gYSBzaW5nbGUgamF2YXNjcmlwdCBvdXRwdXQgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGVudHJ5cG9pbnQgVGhlIHJlbGF0aXZlIHBhdGggb2YgdGhlIGFydGlmYWN0IHdpdGhpbiB0aGUgcHJvamVjdFxuICAgKiBAcGFyYW0gb3B0aW9ucyBCdW5kbGluZyBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgYWRkQnVuZGxlKGVudHJ5cG9pbnQ6IHN0cmluZywgb3B0aW9uczogQnVuZGxpbmdPcHRpb25zKTogQnVuZGxlIHtcbiAgICBjb25zdCBuYW1lID0gcmVuZGVyQnVuZGxlTmFtZShlbnRyeXBvaW50KTtcblxuICAgIGNvbnN0IG91dGRpciA9IHBhdGgucG9zaXguam9pbih0aGlzLmJ1bmRsZWRpciwgbmFtZSk7XG4gICAgY29uc3Qgb3V0ZmlsZSA9IHBhdGgucG9zaXguam9pbihvdXRkaXIsIG9wdGlvbnMub3V0ZmlsZSA/PyBcImluZGV4Lm1qc1wiKTtcbiAgICBjb25zdCB0YXJnZXQgPSBvcHRpb25zLnRhcmdldCA/PyBcImVzbmV4dFwiO1xuICAgIGNvbnN0IHBsYXRmb3JtID0gb3B0aW9ucy5wbGF0Zm9ybSA/PyBcIm5vZGVcIjtcbiAgICBjb25zdCBmb3JtYXQgPSBvcHRpb25zLmZvcm1hdCA/PyBcImVzbVwiO1xuICAgIGNvbnN0IHNvdXJjZW1hcCA9IG9wdGlvbnMuc291cmNlbWFwID8/IHRydWU7XG4gICAgY29uc3Qgc291cmNlc0NvbnRlbnQgPSBvcHRpb25zLnNvdXJjZXNDb250ZW50ID8/IGZhbHNlO1xuICAgIGNvbnN0IG1pbmlmeSA9IG9wdGlvbnMubWluaWZ5ID8/IHRydWU7XG4gICAgY29uc3QgbWFpbkZpZWxkcyA9IG9wdGlvbnMubWFpbkZpZWxkcyA/PyBcIm1vZHVsZSxtYWluXCI7XG4gICAgY29uc3QgYmFubmVyID1cbiAgICAgIG9wdGlvbnMuYmFubmVyID8/XG4gICAgICBcIjpqcz1pbXBvcnQgeyBjcmVhdGVSZXF1aXJlIGFzIHRvcExldmVsQ3JlYXRlUmVxdWlyZSB9IGZyb20gJ21vZHVsZSc7Y29uc3QgcmVxdWlyZSA9IHRvcExldmVsQ3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpXCI7XG5cbiAgICBjb25zdCBhcmdzID0gW1xuICAgICAgXCJlc2J1aWxkXCIsXG4gICAgICBcIi0tYnVuZGxlXCIsXG4gICAgICBlbnRyeXBvaW50LFxuICAgICAgYC0tdGFyZ2V0PVwiJHt0YXJnZXR9XCJgLFxuICAgICAgYC0tcGxhdGZvcm09XCIke3BsYXRmb3JtfVwiYCxcbiAgICAgIGAtLW91dGZpbGU9XCIke291dGZpbGV9XCJgLFxuICAgIF07XG5cbiAgICBjb25zdCB0c2NvbmZpZyA9IG9wdGlvbnMudHNjb25maWdQYXRoID8/IGZhbHNlO1xuICAgIGlmICh0c2NvbmZpZykge1xuICAgICAgYXJncy5wdXNoKGAtLXRzY29uZmlnPVwiJHt0c2NvbmZpZ31cImApO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgeCBvZiBvcHRpb25zLmV4dGVybmFscyA/PyBbXSkge1xuICAgICAgYXJncy5wdXNoKGAtLWV4dGVybmFsOiR7eH1gKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlbWFwKSB7XG4gICAgICBhcmdzLnB1c2goXCItLXNvdXJjZW1hcFwiKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlc0NvbnRlbnQpIHtcbiAgICAgIGFyZ3MucHVzaChgLS1zb3VyY2VzLWNvbnRlbnQ9JHtzb3VyY2VzQ29udGVudH1gKTtcbiAgICB9XG5cbiAgICBpZiAobWluaWZ5KSB7XG4gICAgICBhcmdzLnB1c2goXCItLW1pbmlmeVwiKTtcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0KSB7XG4gICAgICBhcmdzLnB1c2goYC0tZm9ybWF0PSR7Zm9ybWF0fWApO1xuICAgIH1cblxuICAgIGlmIChtYWluRmllbGRzKSB7XG4gICAgICBhcmdzLnB1c2goYC0tbWFpbi1maWVsZHM9JHttYWluRmllbGRzfWApO1xuICAgIH1cblxuICAgIGlmIChiYW5uZXIpIHtcbiAgICAgIGFyZ3MucHVzaChgLS1iYW5uZXIke2Jhbm5lcn1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2FkZXJzID1cbiAgICAgIG9wdGlvbnMubG9hZGVycyA/PyBmYWxzZSA/IG9wdGlvbnMubG9hZGVycyA6IHRoaXMubG9hZGVycyA/PyBmYWxzZTtcbiAgICBpZiAobG9hZGVycykge1xuICAgICAgZm9yIChsZXQgW2V4dGVuc2lvbiwgbG9hZGVyXSBvZiBPYmplY3QuZW50cmllcyhsb2FkZXJzKSkge1xuICAgICAgICBhcmdzLnB1c2goYC0tbG9hZGVyOi4ke2V4dGVuc2lvbn09JHtsb2FkZXJ9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coeyBhcmdzOiBhcmdzIH0pO1xuXG4gICAgY29uc3QgYnVuZGxlVGFzayA9IHRoaXMucHJvamVjdC5hZGRUYXNrKGBidW5kbGU6JHtuYW1lfWAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgQ3JlYXRlIGEgSmF2YVNjcmlwdCBidW5kbGUgZnJvbSAke2VudHJ5cG9pbnR9YCxcbiAgICAgIGV4ZWM6IGFyZ3Muam9pbihcIiBcIiksXG4gICAgfSk7XG5cbiAgICB0aGlzLmJ1bmRsZVRhc2suc3Bhd24oYnVuZGxlVGFzayk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYnVuZGxlVGFzazogYnVuZGxlVGFzayxcbiAgICAgIG91dGRpcjogb3V0ZGlyLFxuICAgICAgb3V0ZmlsZTogb3V0ZmlsZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBidW5kbGluZyBzdXBwb3J0IHRvIGEgcHJvamVjdC4gVGhpcyBpcyBjYWxsZWQgaW1wbGljaXRseSB3aGVuXG4gICAqIGBidW5kbGVUYXNrYCBpcyByZWZlcmVuY2VkIGZpcnN0LiBJdCBhZGRzIHRoZSBkZXBlbmRlbmN5IG9uIGBlc2J1aWxkYCxcbiAgICogZ2l0aWdub3JlL25wbWlnbm9yZSwgZXRjLlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRCdW5kbGluZ1N1cHBvcnQoKSB7XG4gICAgY29uc3QgaWdub3JlRW50cnkgPSBgLyR7dGhpcy5idW5kbGVkaXJ9L2A7XG4gICAgdGhpcy5wcm9qZWN0LmFkZEdpdElnbm9yZShpZ25vcmVFbnRyeSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYCEke2lnbm9yZUVudHJ5fWApOyAvLyBpbmNsdWRlIGluIHRhcmJhbGxcbiAgICBjb25zdCBkZXAgPSB0aGlzLmVzYnVpbGRWZXJzaW9uXG4gICAgICA/IGBlc2J1aWxkQCR7dGhpcy5lc2J1aWxkVmVyc2lvbn1gXG4gICAgICA6IFwiZXNidWlsZFwiO1xuICAgIHRoaXMucHJvamVjdC5kZXBzLmFkZERlcGVuZGVuY3koZGVwLCBEZXBlbmRlbmN5VHlwZS5CVUlMRCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdW5kbGUge1xuICAvKipcbiAgICogVGhlIHRhc2sgdGhhdCBwcm9kdWNlcyB0aGlzIGJ1bmRsZS5cbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsZVRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIExvY2F0aW9uIG9mIHRoZSBvdXRwdXQgZmlsZSAocmVsYXRpdmUgdG8gcHJvamVjdCByb290KS5cbiAgICovXG4gIHJlYWRvbmx5IG91dGZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogQmFzZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgb3V0cHV0IGZpbGUgKHJlbGF0aXZlIHRvIHByb2plY3Qgcm9vdCkuXG4gICAqL1xuICByZWFkb25seSBvdXRkaXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBidW5kbGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdW5kbGluZ09wdGlvbnMge1xuICAvKipcbiAgICogWW91IGNhbiBtYXJrIGEgZmlsZSBvciBhIHBhY2thZ2UgYXMgZXh0ZXJuYWwgdG8gZXhjbHVkZSBpdCBmcm9tIHlvdXIgYnVpbGQuXG4gICAqIEluc3RlYWQgb2YgYmVpbmcgYnVuZGxlZCwgdGhlIGltcG9ydCB3aWxsIGJlIHByZXNlcnZlZCAodXNpbmcgcmVxdWlyZSBmb3JcbiAgICogdGhlIGlpZmUgYW5kIGNqcyBmb3JtYXRzIGFuZCB1c2luZyBpbXBvcnQgZm9yIHRoZSBlc20gZm9ybWF0KSBhbmQgd2lsbCBiZVxuICAgKiBldmFsdWF0ZWQgYXQgcnVuIHRpbWUgaW5zdGVhZC5cbiAgICpcbiAgICogVGhpcyBoYXMgc2V2ZXJhbCB1c2VzLiBGaXJzdCBvZiBhbGwsIGl0IGNhbiBiZSB1c2VkIHRvIHRyaW0gdW5uZWNlc3NhcnlcbiAgICogY29kZSBmcm9tIHlvdXIgYnVuZGxlIGZvciBhIGNvZGUgcGF0aCB0aGF0IHlvdSBrbm93IHdpbGwgbmV2ZXIgYmUgZXhlY3V0ZWQuXG4gICAqIEZvciBleGFtcGxlLCBhIHBhY2thZ2UgbWF5IGNvbnRhaW4gY29kZSB0aGF0IG9ubHkgcnVucyBpbiBub2RlIGJ1dCB5b3Ugd2lsbFxuICAgKiBvbmx5IGJlIHVzaW5nIHRoYXQgcGFja2FnZSBpbiB0aGUgYnJvd3Nlci4gSXQgY2FuIGFsc28gYmUgdXNlZCB0byBpbXBvcnRcbiAgICogY29kZSBpbiBub2RlIGF0IHJ1biB0aW1lIGZyb20gYSBwYWNrYWdlIHRoYXQgY2Fubm90IGJlIGJ1bmRsZWQuIEZvclxuICAgKiBleGFtcGxlLCB0aGUgZnNldmVudHMgcGFja2FnZSBjb250YWlucyBhIG5hdGl2ZSBleHRlbnNpb24sIHdoaWNoIGVzYnVpbGRcbiAgICogZG9lc24ndCBzdXBwb3J0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZXJuYWxzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEluY2x1ZGUgYSBzb3VyY2UgbWFwIGluIHRoZSBidW5kbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZW1hcD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGVzYnVpbGQgdGFyZ2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImVzbmV4dFwiXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGVzYnVpbGQgcGxhdGZvcm0uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibm9kZVwiXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybT86IHN0cmluZztcblxuICAvKipcbiAgICogQnVuZGxlciBvdXRwdXQgcGF0aCByZWxhdGl2ZSB0byB0aGUgYXNzZXQncyBvdXRwdXQgZGlyZWN0b3J5LlxuICAgKiBAZGVmYXVsdCBcImluZGV4Lm1qc1wiXG4gICAqL1xuICByZWFkb25seSBvdXRmaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvZiB0aGUgdHNjb25maWcuanNvbiBmaWxlIHRvIHVzZSBmb3IgYnVuZGxpbmdcbiAgICogQGRlZmF1bHQgXCJ0c2NvbmZpZy5qc29uXCJcbiAgICovXG4gIHJlYWRvbmx5IHRzY29uZmlnUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogTWFwIG9mIGZpbGUgZXh0ZW5zaW9ucyAod2l0aG91dCBkb3QpIGFuZCBsb2FkZXJzIHRvIHVzZSBmb3IgdGhpcyBmaWxlIHR5cGUuXG4gICAqIExvYWRlcnMgYXJlIGFwcGVuZGVkIHRvIHRoZSBlc2J1aWxkIGNvbW1hbmQgYnkgYC0tbG9hZGVyOi5leHRlbnNpb249bG9hZGVyYFxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZGVycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIE91dHB1dCBmb3JtYXQgZm9yIHRoZSBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBmaWxlcy4gVGhlcmUgYXJlIGN1cnJlbnRseSB0aHJlZSBwb3NzaWJsZSB2YWx1ZXMgdGhhdCBjYW4gYmUgY29uZmlndXJlZDogYFwiaWlmZVwiYCwgYFwiY2pzXCJgLCBhbmQgYFwiZXNtXCJgLlxuICAgKlxuICAgKiBJZiBub3Qgc2V0IChgdW5kZWZpbmVkYCksIGVzYnVpbGQgcGlja3MgYW4gb3V0cHV0IGZvcm1hdCBmb3IgeW91IGJhc2VkIG9uIGBwbGF0Zm9ybWA6XG4gICAqIC0gYFwiY2pzXCJgIGlmIGBwbGF0Zm9ybWAgaXMgYFwibm9kZVwiYFxuICAgKiAtIGBcImlpZmVcImAgaWYgYHBsYXRmb3JtYCBpcyBgXCJicm93c2VyXCJgXG4gICAqIC0gYFwiZXNtXCJgIGlmIGBwbGF0Zm9ybWAgaXMgYFwibmV1dHJhbFwiYFxuICAgKlxuICAgKiBOb3RlOiBJZiBtYWtpbmcgYSBidW5kbGUgdG8gcnVuIHVuZGVyIG5vZGUgd2l0aCBFU00sIHNldCBgZm9ybWF0YCB0byBgXCJlc21cImAgaW5zdGVhZCBvZiBzZXR0aW5nIGBwbGF0Zm9ybWAgdG8gYFwibmV1dHJhbFwiYC5cbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2Zvcm1hdFxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBtaW5pZnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlc0NvbnRlbnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIm1vZHVsZSxtYWluXCJcbiAgICovXG4gIHJlYWRvbmx5IG1haW5GaWVsZHM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiOmpzPSdpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIGFzIHRvcExldmVsQ3JlYXRlUmVxdWlyZSB9IGZyb20gJ21vZHVsZSc7Y29uc3QgcmVxdWlyZSA9IHRvcExldmVsQ3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpJ1wiXG4gICAqL1xuICByZWFkb25seSBiYW5uZXI/OiBzdHJpbmc7XG59XG4iXX0=
|
package/lib/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export interface LambdaFunctionCodeBundlerOptions {
|
|
|
17
17
|
/**
|
|
18
18
|
* Options for AWS Lambda Function bundling.
|
|
19
19
|
*/
|
|
20
|
-
readonly
|
|
20
|
+
readonly bundleOptions?: LambdaFunctionCodeBundleOptions;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Creates Lambda Function code bundles from entrypoints discovered in the project's source tree.
|
package/lib/index.js
CHANGED
|
@@ -16,10 +16,10 @@ class LambdaFunctionCodeBundler extends projen_1.cdk.AutoDiscoverBase {
|
|
|
16
16
|
new lambda_function_code_1.LambdaFunctionCodeBundle(this.project, {
|
|
17
17
|
entrypoint: entrypoint,
|
|
18
18
|
extension: options.extension,
|
|
19
|
-
...options.
|
|
19
|
+
...options.bundleOptions,
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
exports.LambdaFunctionCodeBundler = LambdaFunctionCodeBundler;
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXNDO0FBQ3RDLGlFQUdnQztBQXdCaEM7O0dBRUc7QUFDSCxNQUFhLHlCQUEwQixTQUFRLFlBQUcsQ0FBQyxnQkFBZ0I7SUFDakUsWUFBWSxPQUFnQixFQUFFLE9BQXlDO1FBQ3JFLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDYixVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDMUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1NBQzdCLENBQUMsQ0FBQztRQUVILEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFDLElBQUksK0NBQXdCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDekMsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztnQkFDNUIsR0FBRyxPQUFPLENBQUMsYUFBYTthQUN6QixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBZkQsOERBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9qZWN0LCBjZGsgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQge1xuICBMYW1iZGFGdW5jdGlvbkNvZGVCdW5kbGUsXG4gIExhbWJkYUZ1bmN0aW9uQ29kZUJ1bmRsZU9wdGlvbnMsXG59IGZyb20gXCIuL2xhbWJkYS1mdW5jdGlvbi1jb2RlXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYExhbWJkYUZ1bmN0aW9uQ29kZUJ1bmRsZXJgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25Db2RlQnVuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogTG9jYXRlIGZpbGVzIHdpdGggdGhlIGdpdmVuIGV4dGVuc2lvbi5cbiAgICpcbiAgICogQGV4YW1wbGUgXCIubGFtYmRhLnRzXCJcbiAgICovXG4gIHJlYWRvbmx5IGV4dGVuc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm9qZWN0IHNvdXJjZSB0cmVlIChyZWxhdGl2ZSB0byBwcm9qZWN0IG91dHB1dCBkaXJlY3RvcnkpLlxuICAgKi9cbiAgcmVhZG9ubHkgc3JjZGlyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIEFXUyBMYW1iZGEgRnVuY3Rpb24gYnVuZGxpbmcuXG4gICAqL1xuICByZWFkb25seSBidW5kbGVPcHRpb25zPzogTGFtYmRhRnVuY3Rpb25Db2RlQnVuZGxlT3B0aW9ucztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIExhbWJkYSBGdW5jdGlvbiBjb2RlIGJ1bmRsZXMgZnJvbSBlbnRyeXBvaW50cyBkaXNjb3ZlcmVkIGluIHRoZSBwcm9qZWN0J3Mgc291cmNlIHRyZWUuXG4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFGdW5jdGlvbkNvZGVCdW5kbGVyIGV4dGVuZHMgY2RrLkF1dG9EaXNjb3ZlckJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBMYW1iZGFGdW5jdGlvbkNvZGVCdW5kbGVyT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QsIHtcbiAgICAgIHByb2plY3RkaXI6IG9wdGlvbnMuc3JjZGlyLFxuICAgICAgZXh0ZW5zaW9uOiBvcHRpb25zLmV4dGVuc2lvbixcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgZW50cnlwb2ludCBvZiB0aGlzLmVudHJ5cG9pbnRzKSB7XG4gICAgICBuZXcgTGFtYmRhRnVuY3Rpb25Db2RlQnVuZGxlKHRoaXMucHJvamVjdCwge1xuICAgICAgICBlbnRyeXBvaW50OiBlbnRyeXBvaW50LFxuICAgICAgICBleHRlbnNpb246IG9wdGlvbnMuZXh0ZW5zaW9uLFxuICAgICAgICAuLi5vcHRpb25zLmJ1bmRsZU9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { BuildOptions } from "@mrgrain/cdk-esbuild";
|
|
2
1
|
import { Component, Project } from "projen";
|
|
2
|
+
import { BundlingOptions } from "./bundler";
|
|
3
3
|
/**
|
|
4
|
-
* Options for `
|
|
4
|
+
* Options for `LambdaFunctionCodeBundle`.
|
|
5
5
|
*/
|
|
6
6
|
export interface LambdaFunctionCodeBundleOptions {
|
|
7
7
|
/**
|
|
@@ -35,10 +35,14 @@ export interface LambdaFunctionCodeBundleOptions {
|
|
|
35
35
|
*/
|
|
36
36
|
readonly constructName?: string;
|
|
37
37
|
/**
|
|
38
|
+
* Bundling options for this AWS Lambda Function.
|
|
38
39
|
*
|
|
40
|
+
* If not specified the default bundling options specified for the project
|
|
41
|
+
* `Bundler` instance will be used.
|
|
39
42
|
*
|
|
43
|
+
* @default - defaults
|
|
40
44
|
*/
|
|
41
|
-
readonly
|
|
45
|
+
readonly bundlingOptions?: BundlingOptions;
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
44
48
|
* Generates a pre-bundled AWS Lambda Function code bundle construct from handler code.
|
|
@@ -25,10 +25,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.LambdaFunctionCodeBundle = void 0;
|
|
27
27
|
const path = __importStar(require("path"));
|
|
28
|
-
const cdk_esbuild_1 = require("@mrgrain/cdk-esbuild");
|
|
29
28
|
const case_1 = require("case");
|
|
30
29
|
const projen_1 = require("projen");
|
|
31
|
-
const
|
|
30
|
+
const bundler_1 = require("./bundler");
|
|
31
|
+
const utils_1 = require("./utils");
|
|
32
32
|
/**
|
|
33
33
|
* Generates a pre-bundled AWS Lambda Function code bundle construct from handler code.
|
|
34
34
|
*
|
|
@@ -59,55 +59,37 @@ class LambdaFunctionCodeBundle extends projen_1.Component {
|
|
|
59
59
|
constructor(project, options) {
|
|
60
60
|
var _a, _b, _c, _d;
|
|
61
61
|
super(project);
|
|
62
|
+
const bundler = bundler_1.Bundler.of(project);
|
|
63
|
+
if (!bundler) {
|
|
64
|
+
throw new Error("No bundler found. Please add a Bundler component to your project.");
|
|
65
|
+
}
|
|
66
|
+
// allow Lambda handler code to import dev-deps since they are only needed
|
|
67
|
+
// during bundling
|
|
68
|
+
const eslint = projen_1.javascript.Eslint.of(project);
|
|
69
|
+
eslint === null || eslint === void 0 ? void 0 : eslint.allowDevDeps(options.entrypoint);
|
|
62
70
|
const entrypoint = options.entrypoint;
|
|
63
71
|
const extension = (_a = options.extension) !== null && _a !== void 0 ? _a : ".lambda.ts";
|
|
64
|
-
const dirname = path.dirname(entrypoint);
|
|
65
|
-
const basename = path.basename(entrypoint, extension);
|
|
66
72
|
if (!entrypoint.endsWith(extension)) {
|
|
67
73
|
throw new Error(`${entrypoint} must have a ${extension} extension`);
|
|
68
74
|
}
|
|
69
|
-
const
|
|
70
|
-
const
|
|
71
|
-
const buildOptions = {
|
|
72
|
-
banner: {
|
|
73
|
-
":js": "import { createRequire as topLevelCreateRequire } from 'module';const require = topLevelCreateRequire(import.meta.url)",
|
|
74
|
-
":ts": "import { createRequire as topLevelCreateRequire } from 'module';const require = topLevelCreateRequire(import.meta.url)",
|
|
75
|
-
},
|
|
76
|
-
bundle: true,
|
|
77
|
-
drop: ["debugger"],
|
|
78
|
-
external: [],
|
|
79
|
-
format: "esm",
|
|
80
|
-
legalComments: "none",
|
|
81
|
-
minify: true,
|
|
82
|
-
outExtension: { ".js": ".mjs", ".ts": ".mjs" },
|
|
83
|
-
outdir: "bundled",
|
|
84
|
-
platform: "node",
|
|
85
|
-
sourcemap: "linked",
|
|
86
|
-
sourcesContent: false,
|
|
87
|
-
target: "esnext",
|
|
88
|
-
treeShaking: true,
|
|
89
|
-
tsconfig: (_b = project === null || project === void 0 ? void 0 : project.tsconfigDev) === null || _b === void 0 ? void 0 : _b.fileName,
|
|
90
|
-
...options.buildOptions,
|
|
91
|
-
};
|
|
92
|
-
new cdk_esbuild_1.EsbuildBundler(entrypoint, {
|
|
93
|
-
buildOptions: {
|
|
94
|
-
...buildOptions,
|
|
95
|
-
},
|
|
96
|
-
});
|
|
97
|
-
const basePath = path.posix.join(dirname, basename);
|
|
98
|
-
const constructFile = (_c = options.constructFile) !== null && _c !== void 0 ? _c : `${basePath}-code.ts`;
|
|
75
|
+
const basePath = path.posix.join(path.dirname(entrypoint), path.basename(entrypoint, extension));
|
|
76
|
+
const constructFile = (_b = options.constructFile) !== null && _b !== void 0 ? _b : `${basePath}-code.ts`;
|
|
99
77
|
if (path.extname(constructFile) !== ".ts") {
|
|
100
78
|
throw new Error(`Construct file name "${constructFile}" must have a .ts extension`);
|
|
101
79
|
}
|
|
102
80
|
// type names
|
|
103
|
-
const constructName = (
|
|
81
|
+
const constructName = (_c = options.constructName) !== null && _c !== void 0 ? _c : (0, case_1.pascal)(path.basename(basePath)) + "FunctionCode";
|
|
82
|
+
const bundle = bundler.addBundle(entrypoint, {
|
|
83
|
+
...options.bundlingOptions,
|
|
84
|
+
tsconfigPath: (_d = project === null || project === void 0 ? void 0 : project.tsconfigDev) === null || _d === void 0 ? void 0 : _d.fileName,
|
|
85
|
+
});
|
|
104
86
|
// calculate the relative path between the directory containing the
|
|
105
87
|
// generated construct source file to the directory containing the bundle
|
|
106
88
|
// index.js by resolving them as absolute paths first.
|
|
107
89
|
// e.g:
|
|
108
90
|
// - outfileAbs => `/project-outdir/assets/foo/bar/baz/foo-function/index.js`
|
|
109
91
|
// - constructAbs => `/project-outdir/src/foo/bar/baz/foo-function.ts`
|
|
110
|
-
const outfileAbs = path.join(outdir, outfile);
|
|
92
|
+
const outfileAbs = path.join(project.outdir, bundle.outfile);
|
|
111
93
|
const constructAbs = path.join(project.outdir, constructFile);
|
|
112
94
|
const relativeOutfile = path.relative(path.dirname(constructAbs), path.dirname(outfileAbs));
|
|
113
95
|
const src = new projen_1.SourceCode(project, constructFile);
|
|
@@ -118,10 +100,11 @@ class LambdaFunctionCodeBundle extends projen_1.Component {
|
|
|
118
100
|
src.line("import { aws_lambda } from 'aws-cdk-lib';");
|
|
119
101
|
src.line();
|
|
120
102
|
src.open(`export const ${constructName} = aws_lambda.Code.fromAsset(`);
|
|
121
|
-
src.line(`path.join(__dirname, '${(0,
|
|
103
|
+
src.line(`path.join(__dirname, '${(0, utils_1.convertToPosixPath)(relativeOutfile)}'),`);
|
|
122
104
|
src.close(");");
|
|
123
105
|
this.project.logger.verbose(`${basePath}: construct "${constructName}" generated under "${constructFile}"`);
|
|
106
|
+
this.project.logger.verbose(`${basePath}: bundle task "${bundle.bundleTask.name}"`);
|
|
124
107
|
}
|
|
125
108
|
}
|
|
126
109
|
exports.LambdaFunctionCodeBundle = LambdaFunctionCodeBundle;
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWZ1bmN0aW9uLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbGFtYmRhLWZ1bmN0aW9uLWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0Isc0RBQW9FO0FBQ3BFLCtCQUE4QjtBQUM5QixtQ0FBb0U7QUFDcEUseUNBQWdEO0FBK0NoRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsa0JBQVM7SUFDckQ7Ozs7O09BS0c7SUFDSCxZQUFZLE9BQWdCLEVBQUUsT0FBd0M7O1FBQ3BFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQUcsTUFBQSxPQUFPLENBQUMsU0FBUyxtQ0FBSSxZQUFZLENBQUM7UUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxVQUFVLGdCQUFnQixTQUFTLFlBQVksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLFNBQVMsQ0FBQztRQUMxQyxNQUFNLE9BQU8sR0FBRyxHQUFHLFFBQVEsTUFBTSxDQUFDO1FBRWxDLE1BQU0sWUFBWSxHQUFpQjtZQUNqQyxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUNILHdIQUF3SDtnQkFDMUgsS0FBSyxFQUNILHdIQUF3SDthQUMzSDtZQUNELE1BQU0sRUFBRSxJ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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBCdWlsZE9wdGlvbnMsIEVzYnVpbGRCdW5kbGVyIH0gZnJvbSBcIkBtcmdyYWluL2Nkay1lc2J1aWxkXCI7XG5pbXBvcnQgeyBwYXNjYWwgfSBmcm9tIFwiY2FzZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9qZWN0LCBTb3VyY2VDb2RlLCB0eXBlc2NyaXB0IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgY29udmVydFRvUG9zaXhQYXRoIH0gZnJvbSBcIi4vaW50ZXJuYWxcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgRnVuY3Rpb25gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUZ1bmN0aW9uQ29kZUJ1bmRsZU9wdGlvbnMge1xuICAvKipcbiAgICogQSBwYXRoIGZyb20gdGhlIHByb2plY3Qgcm9vdCBkaXJlY3RvcnkgdG8gYSBUeXBlU2NyaXB0IGZpbGUgd2hpY2ggY29udGFpbnNcbiAgICogdGhlIEFXUyBMYW1iZGEgaGFuZGxlciBlbnRyeXBvaW50IChleHBvcnRzIGEgYGhhbmRsZXJgIGZ1bmN0aW9uKS5cbiAgICpcbiAgICogVGhpcyBpcyByZWxhdGl2ZSB0byB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuXG4gICAqXG4gICAqIEBleGFtcGxlIFwic3JjL3N1YmRpci9mb28ubGFtYmRhLnRzXCJcbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5cG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogU3VmZml4IGZvciBBV1MgTGFtYmRhIGhhbmRsZXJzLlxuICAgKlxuICAgKiBAZXhhbXBsZSBcIi5sYW1iZGEudHNcIlxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZS4gVGhpcyBmaWxlIHNob3VsZCBhbHNvIGJlXG4gICAqIHVuZGVyIHRoZSBzb3VyY2UgdHJlZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgbmFtZSBvZiB0aGUgZW50cnlwb2ludCBmaWxlLCB3aXRoIHRoZSBgLWZ1bmN0aW9uLnRzYCBzdWZmaXhcbiAgICogaW5zdGVhZCBvZiBgLmxhbWJkYS50c2AuXG4gICAqL1xuICByZWFkb25seSBjb25zdHJ1Y3RGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGBsYW1iZGEuRnVuY3Rpb25gIHN1YmNsYXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgcGFzY2FsIGNhc2VkIHZlcnNpb24gb2YgdGhlIG5hbWUgb2YgdGhlIGVudHJ5cG9pbnQgZmlsZSwgd2l0aFxuICAgKiB0aGUgZXh0ZW5zaW9uIGBGdW5jdGlvbmAgKGUuZy4gYFJlc2l6ZUltYWdlRnVuY3Rpb25gKS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqXG4gICAqXG4gICAqL1xuICByZWFkb25seSBidWlsZE9wdGlvbnM/OiBCdWlsZE9wdGlvbnM7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgcHJlLWJ1bmRsZWQgQVdTIExhbWJkYSBGdW5jdGlvbiBjb2RlIGJ1bmRsZSBjb25zdHJ1Y3QgZnJvbSBoYW5kbGVyIGNvZGUuXG4gKlxuICogVG8gdXNlIHRoaXMsIGNyZWF0ZSBhbiBBV1MgTGFtYmRhIGhhbmRsZXIgZmlsZSB1bmRlciB5b3VyIHNvdXJjZSB0cmVlIHdpdGhcbiAqIHRoZSBgLmxhbWJkYS50c2AgZXh0ZW5zaW9uIGFuZCBhZGQgYSBgTGFtYmRhRnVuY3Rpb25Db2RlQnVuZGxlYCBjb21wb25lbnQgdG8geW91clxuICogdHlwZXNjcmlwdCBwcm9qZWN0IHBvaW50aW5nIHRvIHRoaXMgZW50cnlwb2ludC5cbiAqXG4gKiBUaGlzIHdpbGwgYWRkIGEgdGFzayB0byB5b3VyIFwiY29tcGlsZVwiIHN0ZXAgd2hpY2ggd2lsbCB1c2UgYGVzYnVpbGRgIHRvXG4gKiBidW5kbGUgdGhlIGhhbmRsZXIgY29kZSBpbnRvIHRoZSBidWlsZCBkaXJlY3RvcnkuIEl0IHdpbGwgYWxzbyBnZW5lcmF0ZSBhXG4gKiBmaWxlIGBzcmMvZm9vLWZ1bmN0aW9uLnRzYCB3aXRoIGEgY3VzdG9tIEFXUyBjb25zdHJ1Y3QgY2FsbGVkIGBGb29GdW5jdGlvbmBcbiAqIHdoaWNoIGV4dGVuZHMgYEBhd3MtY2RrL2F3cy1sYW1iZGEuRnVuY3Rpb25gIHdoaWNoIGlzIGJvdW5kIHRvIHRoZSBidW5kbGVkXG4gKiBoYW5kbGUgdGhyb3VnaCBhbiBhc3NldC5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIG5ldyBMYW1iZGFGdW5jdGlvbkNvZGVCdW5kbGUobXlQcm9qZWN0LCB7XG4gKiAgIHNyY2RpcjogbXlQcm9qZWN0LnNyY2RpcixcbiAqICAgZW50cnlwb2ludDogJ3NyYy9mb28ubGFtYmRhLnRzJyxcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgTGFtYmRhRnVuY3Rpb25Db2RlQnVuZGxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIERlZmluZXMgYSBwcmUtYnVuZGxlZCBBV1MgTGFtYmRhIEZ1bmN0aW9uIGNvbnN0cnVjdCBmcm9tIGhhbmRsZXIgY29kZS5cbiAgICpcbiAgICogQHBhcmFtIHByb2plY3QgVGhlIHByb2plY3QgdG8gdXNlXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IExhbWJkYUZ1bmN0aW9uQ29kZUJ1bmRsZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIGNvbnN0IGVudHJ5cG9pbnQgPSBvcHRpb25zLmVudHJ5cG9pbnQ7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gb3B0aW9ucy5leHRlbnNpb24gPz8gXCIubGFtYmRhLnRzXCI7XG4gICAgY29uc3QgZGlybmFtZSA9IHBhdGguZGlybmFtZShlbnRyeXBvaW50KTtcbiAgICBjb25zdCBiYXNlbmFtZSA9IHBhdGguYmFzZW5hbWUoZW50cnlwb2ludCwgZXh0ZW5zaW9uKTtcblxuICAgIGlmICghZW50cnlwb2ludC5lbmRzV2l0aChleHRlbnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7ZW50cnlwb2ludH0gbXVzdCBoYXZlIGEgJHtleHRlbnNpb259IGV4dGVuc2lvbmApO1xuICAgIH1cblxuICAgIGNvbnN0IG91dGRpciA9IGAke3Byb2plY3Qub3V0ZGlyfS9hc3NldHNgO1xuICAgIGNvbnN0IG91dGZpbGUgPSBgJHtiYXNlbmFtZX0ubWpzYDtcblxuICAgIGNvbnN0IGJ1aWxkT3B0aW9uczogQnVpbGRPcHRpb25zID0ge1xuICAgICAgYmFubmVyOiB7XG4gICAgICAgIFwiOmpzXCI6XG4gICAgICAgICAgXCJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIGFzIHRvcExldmVsQ3JlYXRlUmVxdWlyZSB9IGZyb20gJ21vZHVsZSc7Y29uc3QgcmVxdWlyZSA9IHRvcExldmVsQ3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpXCIsXG4gICAgICAgIFwiOnRzXCI6XG4gICAgICAgICAgXCJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIGFzIHRvcExldmVsQ3JlYXRlUmVxdWlyZSB9IGZyb20gJ21vZHVsZSc7Y29uc3QgcmVxdWlyZSA9IHRvcExldmVsQ3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpXCIsXG4gICAgICB9LFxuICAgICAgYnVuZGxlOiB0cnVlLFxuICAgICAgZHJvcDogW1wiZGVidWdnZXJcIl0sXG4gICAgICBleHRlcm5hbDogW10sXG4gICAgICBmb3JtYXQ6IFwiZXNtXCIsXG4gICAgICBsZWdhbENvbW1lbnRzOiBcIm5vbmVcIixcbiAgICAgIG1pbmlmeTogdHJ1ZSxcbiAgICAgIG91dEV4dGVuc2lvbjogeyBcIi5qc1wiOiBcIi5tanNcIiwgXCIudHNcIjogXCIubWpzXCIgfSxcbiAgICAgIG91dGRpcjogXCJidW5kbGVkXCIsXG4gICAgICBwbGF0Zm9ybTogXCJub2RlXCIsXG4gICAgICBzb3VyY2VtYXA6IFwibGlua2VkXCIsXG4gICAgICBzb3VyY2VzQ29udGVudDogZmFsc2UsXG4gICAgICB0YXJnZXQ6IFwiZXNuZXh0XCIsXG4gICAgICB0cmVlU2hha2luZzogdHJ1ZSxcbiAgICAgIHRzY29uZmlnOiAocHJvamVjdCBhcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0KT8udHNjb25maWdEZXZcbiAgICAgICAgPy5maWxlTmFtZSxcbiAgICAgIC4uLm9wdGlvbnMuYnVpbGRPcHRpb25zLFxuICAgIH07XG5cbiAgICBuZXcgRXNidWlsZEJ1bmRsZXIoZW50cnlwb2ludCwge1xuICAgICAgYnVpbGRPcHRpb25zOiB7XG4gICAgICAgIC4uLmJ1aWxkT3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBiYXNlUGF0aCA9IHBhdGgucG9zaXguam9pbihkaXJuYW1lLCBiYXNlbmFtZSk7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RGaWxlID0gb3B0aW9ucy5jb25zdHJ1Y3RGaWxlID8/IGAke2Jhc2VQYXRofS1jb2RlLnRzYDtcblxuICAgIGlmIChwYXRoLmV4dG5hbWUoY29uc3RydWN0RmlsZSkgIT09IFwiLnRzXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENvbnN0cnVjdCBmaWxlIG5hbWUgXCIke2NvbnN0cnVjdEZpbGV9XCIgbXVzdCBoYXZlIGEgLnRzIGV4dGVuc2lvbmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIHR5cGUgbmFtZXNcbiAgICBjb25zdCBjb25zdHJ1Y3ROYW1lID1cbiAgICAgIG9wdGlvbnMuY29uc3RydWN0TmFtZSA/PyBwYXNjYWwocGF0aC5iYXNlbmFtZShiYXNlUGF0aCkpICsgXCJGdW5jdGlvbkNvZGVcIjtcblxuICAgIC8vIGNhbGN1bGF0ZSB0aGUgcmVsYXRpdmUgcGF0aCBiZXR3ZWVuIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGVcbiAgICAvLyBnZW5lcmF0ZWQgY29uc3RydWN0IHNvdXJjZSBmaWxlIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgYnVuZGxlXG4gICAgLy8gaW5kZXguanMgYnkgcmVzb2x2aW5nIHRoZW0gYXMgYWJzb2x1dGUgcGF0aHMgZmlyc3QuXG4gICAgLy8gZS5nOlxuICAgIC8vICAtIG91dGZpbGVBYnMgPT4gYC9wcm9qZWN0LW91dGRpci9hc3NldHMvZm9vL2Jhci9iYXovZm9vLWZ1bmN0aW9uL2luZGV4LmpzYFxuICAgIC8vICAtIGNvbnN0cnVjdEFicyA9PiBgL3Byb2plY3Qtb3V0ZGlyL3NyYy9mb28vYmFyL2Jhei9mb28tZnVuY3Rpb24udHNgXG4gICAgY29uc3Qgb3V0ZmlsZUFicyA9IHBhdGguam9pbihvdXRkaXIsIG91dGZpbGUpO1xuICAgIGNvbnN0IGNvbnN0cnVjdEFicyA9IHBhdGguam9pbihwcm9qZWN0Lm91dGRpciwgY29uc3RydWN0RmlsZSk7XG4gICAgY29uc3QgcmVsYXRpdmVPdXRmaWxlID0gcGF0aC5yZWxhdGl2ZShcbiAgICAgIHBhdGguZGlybmFtZShjb25zdHJ1Y3RBYnMpLFxuICAgICAgcGF0aC5kaXJuYW1lKG91dGZpbGVBYnMpLFxuICAgICk7XG5cbiAgICBjb25zdCBzcmMgPSBuZXcgU291cmNlQ29kZShwcm9qZWN0LCBjb25zdHJ1Y3RGaWxlKTtcbiAgICBpZiAoc3JjLm1hcmtlcikge1xuICAgICAgc3JjLmxpbmUoYC8vICR7c3JjLm1hcmtlcn1gKTtcbiAgICB9XG4gICAgc3JjLmxpbmUoXCJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1wiKTtcbiAgICBzcmMubGluZShcImltcG9ydCB7IGF3c19sYW1iZGEgfSBmcm9tICdhd3MtY2RrLWxpYic7XCIpO1xuICAgIHNyYy5saW5lKCk7XG4gICAgc3JjLm9wZW4oYGV4cG9ydCBjb25zdCAke2NvbnN0cnVjdE5hbWV9ID0gYXdzX2xhbWJkYS5Db2RlLmZyb21Bc3NldChgKTtcbiAgICBzcmMubGluZShgcGF0aC5qb2luKF9fZGlybmFtZSwgJyR7Y29udmVydFRvUG9zaXhQYXRoKHJlbGF0aXZlT3V0ZmlsZSl9JyksYCk7XG4gICAgc3JjLmNsb3NlKFwiKTtcIik7XG5cbiAgICB0aGlzLnByb2plY3QubG9nZ2VyLnZlcmJvc2UoXG4gICAgICBgJHtiYXNlUGF0aH06IGNvbnN0cnVjdCBcIiR7Y29uc3RydWN0TmFtZX1cIiBnZW5lcmF0ZWQgdW5kZXIgXCIke2NvbnN0cnVjdEZpbGV9XCJgLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWZ1bmN0aW9uLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbGFtYmRhLWZ1bmN0aW9uLWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsK0JBQThCO0FBQzlCLG1DQUFnRjtBQUNoRix1Q0FBcUQ7QUFDckQsbUNBQTZDO0FBbUQ3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsa0JBQVM7SUFDckQ7Ozs7O09BS0c7SUFDSCxZQUFZLE9BQWdCLEVBQUUsT0FBd0M7O1FBQ3BFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sT0FBTyxHQUFHLGlCQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUVBQW1FLENBQ3BFLENBQUM7UUFDSixDQUFDO1FBRUQsMEVBQTBFO1FBQzFFLGtCQUFrQjtRQUNsQixNQUFNLE1BQU0sR0FBRyxtQkFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUV0QyxNQUFNLFNBQVMsR0FBRyxNQUFBLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLFlBQVksQ0FBQztRQUVwRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxVQUFVLGdCQUFnQixTQUFTLFlBQVksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQ3JDLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRyxNQUFBLE9BQU8sQ0FBQyxhQUFhLG1DQUFJLEdBQUcsUUFBUSxVQUFVLENBQUM7UUFFckUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQ2Isd0JBQXdCLGFBQWEsNkJBQTZCLENBQ25FLENBQUM7UUFDSixDQUFDO1FBRUQsYUFBYTtRQUNiLE1BQU0sYUFBYSxHQUNqQixNQUFBLE9BQU8sQ0FBQyxhQUFhLG1DQUFJLElBQUEsYUFBTSxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUM7UUFFNUUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUU7WUFDM0MsR0FBRyxPQUFPLENBQUMsZUFBZTtZQUMxQixZQUFZLEVBQUUsTUFBQyxPQUF3QyxhQUF4QyxPQUFPLHVCQUFQLE9BQU8sQ0FBbUMsV0FBVywwQ0FDaEUsUUFBUTtTQUNiLENBQUMsQ0FBQztRQUVILG1FQUFtRTtRQUNuRSx5RUFBeUU7UUFDekUsc0RBQXNEO1FBQ3RELE9BQU87UUFDUCw4RUFBOEU7UUFDOUUsdUVBQXVFO1FBQ3ZFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzlELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQ3pCLENBQUM7UUFFRixNQUFNLEdBQUcsR0FBRyxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ25ELElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2YsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDMUMsR0FBRyxDQUFDLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQ3RELEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNYLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLGFBQWEsK0JBQStCLENBQUMsQ0FBQztRQUN2RSxHQUFHLENBQUMsSUFBSSxDQUFDLHlCQUF5QixJQUFBLDBCQUFrQixFQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDekIsR0FBRyxRQUFRLGdCQUFnQixhQUFhLHNCQUFzQixhQUFhLEdBQUcsQ0FDL0UsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDekIsR0FBRyxRQUFRLGtCQUFrQixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUN2RCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbkZELDREQW1GQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IHBhc2NhbCB9IGZyb20gXCJjYXNlXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIFByb2plY3QsIFNvdXJjZUNvZGUsIGphdmFzY3JpcHQsIHR5cGVzY3JpcHQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBCdW5kbGVyLCBCdW5kbGluZ09wdGlvbnMgfSBmcm9tIFwiLi9idW5kbGVyXCI7XG5pbXBvcnQgeyBjb252ZXJ0VG9Qb3NpeFBhdGggfSBmcm9tIFwiLi91dGlsc1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBMYW1iZGFGdW5jdGlvbkNvZGVCdW5kbGVgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUZ1bmN0aW9uQ29kZUJ1bmRsZU9wdGlvbnMge1xuICAvKipcbiAgICogQSBwYXRoIGZyb20gdGhlIHByb2plY3Qgcm9vdCBkaXJlY3RvcnkgdG8gYSBUeXBlU2NyaXB0IGZpbGUgd2hpY2ggY29udGFpbnNcbiAgICogdGhlIEFXUyBMYW1iZGEgaGFuZGxlciBlbnRyeXBvaW50IChleHBvcnRzIGEgYGhhbmRsZXJgIGZ1bmN0aW9uKS5cbiAgICpcbiAgICogVGhpcyBpcyByZWxhdGl2ZSB0byB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuXG4gICAqXG4gICAqIEBleGFtcGxlIFwic3JjL3N1YmRpci9mb28ubGFtYmRhLnRzXCJcbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5cG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogU3VmZml4IGZvciBBV1MgTGFtYmRhIGhhbmRsZXJzLlxuICAgKlxuICAgKiBAZXhhbXBsZSBcIi5sYW1iZGEudHNcIlxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZS4gVGhpcyBmaWxlIHNob3VsZCBhbHNvIGJlXG4gICAqIHVuZGVyIHRoZSBzb3VyY2UgdHJlZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgbmFtZSBvZiB0aGUgZW50cnlwb2ludCBmaWxlLCB3aXRoIHRoZSBgLWZ1bmN0aW9uLnRzYCBzdWZmaXhcbiAgICogaW5zdGVhZCBvZiBgLmxhbWJkYS50c2AuXG4gICAqL1xuICByZWFkb25seSBjb25zdHJ1Y3RGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGBsYW1iZGEuRnVuY3Rpb25gIHN1YmNsYXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgcGFzY2FsIGNhc2VkIHZlcnNpb24gb2YgdGhlIG5hbWUgb2YgdGhlIGVudHJ5cG9pbnQgZmlsZSwgd2l0aFxuICAgKiB0aGUgZXh0ZW5zaW9uIGBGdW5jdGlvbmAgKGUuZy4gYFJlc2l6ZUltYWdlRnVuY3Rpb25gKS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1bmRsaW5nIG9wdGlvbnMgZm9yIHRoaXMgQVdTIExhbWJkYSBGdW5jdGlvbi5cbiAgICpcbiAgICogSWYgbm90IHNwZWNpZmllZCB0aGUgZGVmYXVsdCBidW5kbGluZyBvcHRpb25zIHNwZWNpZmllZCBmb3IgdGhlIHByb2plY3RcbiAgICogYEJ1bmRsZXJgIGluc3RhbmNlIHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0c1xuICAgKi9cbiAgcmVhZG9ubHkgYnVuZGxpbmdPcHRpb25zPzogQnVuZGxpbmdPcHRpb25zO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIHByZS1idW5kbGVkIEFXUyBMYW1iZGEgRnVuY3Rpb24gY29kZSBidW5kbGUgY29uc3RydWN0IGZyb20gaGFuZGxlciBjb2RlLlxuICpcbiAqIFRvIHVzZSB0aGlzLCBjcmVhdGUgYW4gQVdTIExhbWJkYSBoYW5kbGVyIGZpbGUgdW5kZXIgeW91ciBzb3VyY2UgdHJlZSB3aXRoXG4gKiB0aGUgYC5sYW1iZGEudHNgIGV4dGVuc2lvbiBhbmQgYWRkIGEgYExhbWJkYUZ1bmN0aW9uQ29kZUJ1bmRsZWAgY29tcG9uZW50IHRvIHlvdXJcbiAqIHR5cGVzY3JpcHQgcHJvamVjdCBwb2ludGluZyB0byB0aGlzIGVudHJ5cG9pbnQuXG4gKlxuICogVGhpcyB3aWxsIGFkZCBhIHRhc2sgdG8geW91ciBcImNvbXBpbGVcIiBzdGVwIHdoaWNoIHdpbGwgdXNlIGBlc2J1aWxkYCB0b1xuICogYnVuZGxlIHRoZSBoYW5kbGVyIGNvZGUgaW50byB0aGUgYnVpbGQgZGlyZWN0b3J5LiBJdCB3aWxsIGFsc28gZ2VuZXJhdGUgYVxuICogZmlsZSBgc3JjL2Zvby1mdW5jdGlvbi50c2Agd2l0aCBhIGN1c3RvbSBBV1MgY29uc3RydWN0IGNhbGxlZCBgRm9vRnVuY3Rpb25gXG4gKiB3aGljaCBleHRlbmRzIGBAYXdzLWNkay9hd3MtbGFtYmRhLkZ1bmN0aW9uYCB3aGljaCBpcyBib3VuZCB0byB0aGUgYnVuZGxlZFxuICogaGFuZGxlIHRocm91Z2ggYW4gYXNzZXQuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBuZXcgTGFtYmRhRnVuY3Rpb25Db2RlQnVuZGxlKG15UHJvamVjdCwge1xuICogICBzcmNkaXI6IG15UHJvamVjdC5zcmNkaXIsXG4gKiAgIGVudHJ5cG9pbnQ6ICdzcmMvZm9vLmxhbWJkYS50cycsXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIExhbWJkYUZ1bmN0aW9uQ29kZUJ1bmRsZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgcHJlLWJ1bmRsZWQgQVdTIExhbWJkYSBGdW5jdGlvbiBjb25zdHJ1Y3QgZnJvbSBoYW5kbGVyIGNvZGUuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9qZWN0IFRoZSBwcm9qZWN0IHRvIHVzZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBMYW1iZGFGdW5jdGlvbkNvZGVCdW5kbGVPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBjb25zdCBidW5kbGVyID0gQnVuZGxlci5vZihwcm9qZWN0KTtcbiAgICBpZiAoIWJ1bmRsZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJObyBidW5kbGVyIGZvdW5kLiBQbGVhc2UgYWRkIGEgQnVuZGxlciBjb21wb25lbnQgdG8geW91ciBwcm9qZWN0LlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBhbGxvdyBMYW1iZGEgaGFuZGxlciBjb2RlIHRvIGltcG9ydCBkZXYtZGVwcyBzaW5jZSB0aGV5IGFyZSBvbmx5IG5lZWRlZFxuICAgIC8vIGR1cmluZyBidW5kbGluZ1xuICAgIGNvbnN0IGVzbGludCA9IGphdmFzY3JpcHQuRXNsaW50Lm9mKHByb2plY3QpO1xuICAgIGVzbGludD8uYWxsb3dEZXZEZXBzKG9wdGlvbnMuZW50cnlwb2ludCk7XG5cbiAgICBjb25zdCBlbnRyeXBvaW50ID0gb3B0aW9ucy5lbnRyeXBvaW50O1xuXG4gICAgY29uc3QgZXh0ZW5zaW9uID0gb3B0aW9ucy5leHRlbnNpb24gPz8gXCIubGFtYmRhLnRzXCI7XG5cbiAgICBpZiAoIWVudHJ5cG9pbnQuZW5kc1dpdGgoZXh0ZW5zaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2VudHJ5cG9pbnR9IG11c3QgaGF2ZSBhICR7ZXh0ZW5zaW9ufSBleHRlbnNpb25gKTtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlUGF0aCA9IHBhdGgucG9zaXguam9pbihcbiAgICAgIHBhdGguZGlybmFtZShlbnRyeXBvaW50KSxcbiAgICAgIHBhdGguYmFzZW5hbWUoZW50cnlwb2ludCwgZXh0ZW5zaW9uKSxcbiAgICApO1xuICAgIGNvbnN0IGNvbnN0cnVjdEZpbGUgPSBvcHRpb25zLmNvbnN0cnVjdEZpbGUgPz8gYCR7YmFzZVBhdGh9LWNvZGUudHNgO1xuXG4gICAgaWYgKHBhdGguZXh0bmFtZShjb25zdHJ1Y3RGaWxlKSAhPT0gXCIudHNcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ29uc3RydWN0IGZpbGUgbmFtZSBcIiR7Y29uc3RydWN0RmlsZX1cIiBtdXN0IGhhdmUgYSAudHMgZXh0ZW5zaW9uYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gdHlwZSBuYW1lc1xuICAgIGNvbnN0IGNvbnN0cnVjdE5hbWUgPVxuICAgICAgb3B0aW9ucy5jb25zdHJ1Y3ROYW1lID8/IHBhc2NhbChwYXRoLmJhc2VuYW1lKGJhc2VQYXRoKSkgKyBcIkZ1bmN0aW9uQ29kZVwiO1xuXG4gICAgY29uc3QgYnVuZGxlID0gYnVuZGxlci5hZGRCdW5kbGUoZW50cnlwb2ludCwge1xuICAgICAgLi4ub3B0aW9ucy5idW5kbGluZ09wdGlvbnMsXG4gICAgICB0c2NvbmZpZ1BhdGg6IChwcm9qZWN0IGFzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3QpPy50c2NvbmZpZ0RldlxuICAgICAgICA/LmZpbGVOYW1lLFxuICAgIH0pO1xuXG4gICAgLy8gY2FsY3VsYXRlIHRoZSByZWxhdGl2ZSBwYXRoIGJldHdlZW4gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZVxuICAgIC8vIGdlbmVyYXRlZCBjb25zdHJ1Y3Qgc291cmNlIGZpbGUgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBidW5kbGVcbiAgICAvLyBpbmRleC5qcyBieSByZXNvbHZpbmcgdGhlbSBhcyBhYnNvbHV0ZSBwYXRocyBmaXJzdC5cbiAgICAvLyBlLmc6XG4gICAgLy8gIC0gb3V0ZmlsZUFicyA9PiBgL3Byb2plY3Qtb3V0ZGlyL2Fzc2V0cy9mb28vYmFyL2Jhei9mb28tZnVuY3Rpb24vaW5kZXguanNgXG4gICAgLy8gIC0gY29uc3RydWN0QWJzID0+IGAvcHJvamVjdC1vdXRkaXIvc3JjL2Zvby9iYXIvYmF6L2Zvby1mdW5jdGlvbi50c2BcbiAgICBjb25zdCBvdXRmaWxlQWJzID0gcGF0aC5qb2luKHByb2plY3Qub3V0ZGlyLCBidW5kbGUub3V0ZmlsZSk7XG4gICAgY29uc3QgY29uc3RydWN0QWJzID0gcGF0aC5qb2luKHByb2plY3Qub3V0ZGlyLCBjb25zdHJ1Y3RGaWxlKTtcbiAgICBjb25zdCByZWxhdGl2ZU91dGZpbGUgPSBwYXRoLnJlbGF0aXZlKFxuICAgICAgcGF0aC5kaXJuYW1lKGNvbnN0cnVjdEFicyksXG4gICAgICBwYXRoLmRpcm5hbWUob3V0ZmlsZUFicyksXG4gICAgKTtcblxuICAgIGNvbnN0IHNyYyA9IG5ldyBTb3VyY2VDb2RlKHByb2plY3QsIGNvbnN0cnVjdEZpbGUpO1xuICAgIGlmIChzcmMubWFya2VyKSB7XG4gICAgICBzcmMubGluZShgLy8gJHtzcmMubWFya2VyfWApO1xuICAgIH1cbiAgICBzcmMubGluZShcImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XCIpO1xuICAgIHNyYy5saW5lKFwiaW1wb3J0IHsgYXdzX2xhbWJkYSB9IGZyb20gJ2F3cy1jZGstbGliJztcIik7XG4gICAgc3JjLmxpbmUoKTtcbiAgICBzcmMub3BlbihgZXhwb3J0IGNvbnN0ICR7Y29uc3RydWN0TmFtZX0gPSBhd3NfbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGApO1xuICAgIHNyYy5saW5lKGBwYXRoLmpvaW4oX19kaXJuYW1lLCAnJHtjb252ZXJ0VG9Qb3NpeFBhdGgocmVsYXRpdmVPdXRmaWxlKX0nKSxgKTtcbiAgICBzcmMuY2xvc2UoXCIpO1wiKTtcblxuICAgIHRoaXMucHJvamVjdC5sb2dnZXIudmVyYm9zZShcbiAgICAgIGAke2Jhc2VQYXRofTogY29uc3RydWN0IFwiJHtjb25zdHJ1Y3ROYW1lfVwiIGdlbmVyYXRlZCB1bmRlciBcIiR7Y29uc3RydWN0RmlsZX1cImAsXG4gICAgKTtcbiAgICB0aGlzLnByb2plY3QubG9nZ2VyLnZlcmJvc2UoXG4gICAgICBgJHtiYXNlUGF0aH06IGJ1bmRsZSB0YXNrIFwiJHtidW5kbGUuYnVuZGxlVGFzay5uYW1lfVwiYCxcbiAgICApO1xuICB9XG59XG4iXX0=
|
package/lib/utils.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertToPosixPath = exports.renderBundleName = void 0;
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
function renderBundleName(entrypoint) {
|
|
6
|
+
const parts = (0, path_1.join)(entrypoint).split(path_1.sep);
|
|
7
|
+
if (parts[0] === "src") {
|
|
8
|
+
parts.shift(); // just remove 'src' if its the first element for ergonomics
|
|
9
|
+
}
|
|
10
|
+
const p = parts.join(path_1.sep);
|
|
11
|
+
const dir = (0, path_1.dirname)(p);
|
|
12
|
+
const base = (0, path_1.basename)(p, (0, path_1.extname)(p));
|
|
13
|
+
return (0, path_1.join)(dir, base);
|
|
14
|
+
}
|
|
15
|
+
exports.renderBundleName = renderBundleName;
|
|
16
|
+
/**
|
|
17
|
+
* Converts the given path string to posix if it wasn't already.
|
|
18
|
+
*/
|
|
19
|
+
function convertToPosixPath(p) {
|
|
20
|
+
return p.split(path_1.sep).join(path_1.posix.sep);
|
|
21
|
+
}
|
|
22
|
+
exports.convertToPosixPath = convertToPosixPath;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQW9FO0FBRXBFLFNBQWdCLGdCQUFnQixDQUFDLFVBQWtCO0lBQ2pELE1BQU0sS0FBSyxHQUFHLElBQUEsV0FBSSxFQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFHLENBQUMsQ0FBQztJQUMxQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyw0REFBNEQ7SUFDN0UsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBRyxDQUFDLENBQUM7SUFDMUIsTUFBTSxHQUFHLEdBQUcsSUFBQSxjQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsTUFBTSxJQUFJLEdBQUcsSUFBQSxlQUFRLEVBQUMsQ0FBQyxFQUFFLElBQUEsY0FBTyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsT0FBTyxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekIsQ0FBQztBQVZELDRDQVVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxDQUFTO0lBQzFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFGRCxnREFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhc2VuYW1lLCBkaXJuYW1lLCBleHRuYW1lLCBqb2luLCBwb3NpeCwgc2VwIH0gZnJvbSBcInBhdGhcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckJ1bmRsZU5hbWUoZW50cnlwb2ludDogc3RyaW5nKSB7XG4gIGNvbnN0IHBhcnRzID0gam9pbihlbnRyeXBvaW50KS5zcGxpdChzZXApO1xuICBpZiAocGFydHNbMF0gPT09IFwic3JjXCIpIHtcbiAgICBwYXJ0cy5zaGlmdCgpOyAvLyBqdXN0IHJlbW92ZSAnc3JjJyBpZiBpdHMgdGhlIGZpcnN0IGVsZW1lbnQgZm9yIGVyZ29ub21pY3NcbiAgfVxuXG4gIGNvbnN0IHAgPSBwYXJ0cy5qb2luKHNlcCk7XG4gIGNvbnN0IGRpciA9IGRpcm5hbWUocCk7XG4gIGNvbnN0IGJhc2UgPSBiYXNlbmFtZShwLCBleHRuYW1lKHApKTtcbiAgcmV0dXJuIGpvaW4oZGlyLCBiYXNlKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyB0aGUgZ2l2ZW4gcGF0aCBzdHJpbmcgdG8gcG9zaXggaWYgaXQgd2Fzbid0IGFscmVhZHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9Qb3NpeFBhdGgocDogc3RyaW5nKSB7XG4gIHJldHVybiBwLnNwbGl0KHNlcCkuam9pbihwb3NpeC5zZXApO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
"@types/node": "^18",
|
|
24
24
|
"@typescript-eslint/eslint-plugin": "^6",
|
|
25
25
|
"@typescript-eslint/parser": "^6",
|
|
26
|
-
"aws-cdk-lib": "2.51.0",
|
|
27
26
|
"constructs": "^10.0.0",
|
|
28
27
|
"eslint": "^8",
|
|
29
28
|
"eslint-config-prettier": "^9.0.0",
|
|
@@ -37,11 +36,7 @@
|
|
|
37
36
|
"ts-node": "^10.9.1",
|
|
38
37
|
"typescript": "^5.3.2"
|
|
39
38
|
},
|
|
40
|
-
"peerDependencies": {
|
|
41
|
-
"aws-cdk-lib": "^2.51.0"
|
|
42
|
-
},
|
|
43
39
|
"dependencies": {
|
|
44
|
-
"@mrgrain/cdk-esbuild": "^5.0.5",
|
|
45
40
|
"case": "^1.6.3",
|
|
46
41
|
"projen": "^0.77.1"
|
|
47
42
|
},
|
|
@@ -50,7 +45,7 @@
|
|
|
50
45
|
"publishConfig": {
|
|
51
46
|
"access": "public"
|
|
52
47
|
},
|
|
53
|
-
"version": "0.0.
|
|
48
|
+
"version": "0.0.15",
|
|
54
49
|
"types": "lib/index.d.ts",
|
|
55
50
|
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
|
|
56
51
|
}
|
package/lib/internal.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.convertToPosixPath = void 0;
|
|
4
|
-
const path_1 = require("path");
|
|
5
|
-
/**
|
|
6
|
-
* Converts the given path string to posix if it wasn't already.
|
|
7
|
-
*/
|
|
8
|
-
function convertToPosixPath(p) {
|
|
9
|
-
return p.split(path_1.sep).join(path_1.posix.sep);
|
|
10
|
-
}
|
|
11
|
-
exports.convertToPosixPath = convertToPosixPath;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW50ZXJuYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQWtDO0FBRWxDOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsQ0FBUztJQUMxQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRkQsZ0RBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZXAsIHBvc2l4IH0gZnJvbSBcInBhdGhcIjtcblxuLyoqXG4gKiBDb252ZXJ0cyB0aGUgZ2l2ZW4gcGF0aCBzdHJpbmcgdG8gcG9zaXggaWYgaXQgd2Fzbid0IGFscmVhZHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9Qb3NpeFBhdGgocDogc3RyaW5nKSB7XG4gIHJldHVybiBwLnNwbGl0KHNlcCkuam9pbihwb3NpeC5zZXApO1xufVxuIl19
|