@dbx-tools/cli 0.9.139 → 0.9.140
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/README.md +23 -14
- package/index.ts +2 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +3 -2
- package/lib/src/brand/cli.js +4 -2
- package/lib/src/brand/export.d.ts +2 -0
- package/lib/src/brand/export.js +8 -1
- package/lib/src/brand/index.d.ts +1 -0
- package/lib/src/brand/index.js +2 -1
- package/lib/src/brand/options.d.ts +2 -1
- package/lib/src/brand/options.js +7 -3
- package/lib/src/brand/run.js +22 -3
- package/lib/src/brand/showcase.d.ts +8 -0
- package/lib/src/brand/showcase.js +333 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +22 -22
- package/src/brand/cli.ts +3 -1
- package/src/brand/export.ts +9 -0
- package/src/brand/index.ts +1 -0
- package/src/brand/options.ts +8 -2
- package/src/brand/run.ts +23 -1
- package/src/brand/showcase.ts +344 -0
package/README.md
CHANGED
|
@@ -24,16 +24,23 @@ The command researches the broader web for brand facts and design direction,
|
|
|
24
24
|
then visits matching iOS App Store and Google Play pages for supplemental
|
|
25
25
|
visual references. It uses the downloaded icons and screenshots during
|
|
26
26
|
multimodal synthesis without treating the mobile designs as the full brand.
|
|
27
|
+
Plain status lines report web searches, store-page reads, image review, source
|
|
28
|
+
fetches, and synthesis as they happen.
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
By default, the command creates a unique operating-system temporary directory
|
|
31
|
+
and prints its paths when generation completes. The directory contains:
|
|
29
32
|
|
|
30
33
|
- `brand.yaml`, compatible with the shared dbx-tools brand context.
|
|
31
34
|
- `brand-package.json`, with source provenance and visual-reference metadata.
|
|
35
|
+
- `showcase.html`, a self-contained responsive brand presentation with desktop
|
|
36
|
+
and mobile website mockups.
|
|
32
37
|
- `references/ios/` and `references/android/`, with the mobile images used for
|
|
33
38
|
visual research.
|
|
34
39
|
|
|
35
|
-
Use `--name` or `--website` to disambiguate the prompt
|
|
36
|
-
|
|
40
|
+
Use `--name` or `--website` to disambiguate the prompt. Pass `--output` to keep
|
|
41
|
+
the package at a stable path, and `--force` to replace an existing package.
|
|
42
|
+
The showcase is enabled by default; pass `--no-showcase` to export only the
|
|
43
|
+
portable package and research files:
|
|
37
44
|
|
|
38
45
|
```sh
|
|
39
46
|
dbx brand "Retail analytics for store operators" \
|
|
@@ -352,17 +359,19 @@ dbx brand [options] <prompt>
|
|
|
352
359
|
|
|
353
360
|
#### Options
|
|
354
361
|
|
|
355
|
-
| Option
|
|
356
|
-
|
|
|
357
|
-
| `-p, --profile <value>`
|
|
358
|
-
| `-n, --name <value>`
|
|
359
|
-
| `-w, --website <value>`
|
|
360
|
-
| `-o, --output <value>`
|
|
361
|
-
| `--model <value>`
|
|
362
|
-
| `--max-sources <value>`
|
|
363
|
-
|
|
|
364
|
-
|
|
|
365
|
-
| `--no-
|
|
362
|
+
| Option | Description |
|
|
363
|
+
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
364
|
+
| `-p, --profile <value>` | Databricks CLI profile. (env: DATABRICKS_CONFIG_PROFILE) |
|
|
365
|
+
| `-n, --name <value>` | Known canonical brand name. (env: NAME) |
|
|
366
|
+
| `-w, --website <value>` | Known official HTTPS website. (env: WEBSITE) |
|
|
367
|
+
| `-o, --output <value>` | Persistent output directory for brand.yaml, showcase, provenance, and visual references. Omit for a temporary directory. (env: OUTPUT) |
|
|
368
|
+
| `--model <value>` | Optional Databricks model preference for brand synthesis. (env: MODEL) |
|
|
369
|
+
| `--max-sources <value>` | Maximum general web sources to read. (default: 4, env: MAX_SOURCES) |
|
|
370
|
+
| `--source-max-length <value>` | Maximum characters retained from each source page. (default: 8000, env: SOURCE_MAX_LENGTH) |
|
|
371
|
+
| `--showcase` | Responsive HTML brand presentation and website mockups. (default: true, env: SHOWCASE) |
|
|
372
|
+
| `--no-showcase` | Disable responsive html brand presentation and website mockups. |
|
|
373
|
+
| `-f, --force` | Replace files in an existing output directory. (default: false, env: FORCE) |
|
|
374
|
+
| `--no-force` | Disable replace files in an existing output directory. |
|
|
366
375
|
|
|
367
376
|
### `dbx tunnel`
|
|
368
377
|
|
package/index.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
|
|
5
5
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/cli";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.140";
|
|
7
7
|
export * as appkitCli from "./src/appkit/cli.ts";
|
|
8
8
|
export * as appkitEnvExport from "./src/appkit/env-export.ts";
|
|
9
9
|
export * as authCli from "./src/auth/cli.ts";
|
|
@@ -13,6 +13,7 @@ export * as brandCli from "./src/brand/cli.ts";
|
|
|
13
13
|
export * as brandExport from "./src/brand/export.ts";
|
|
14
14
|
export * as brandOptions from "./src/brand/options.ts";
|
|
15
15
|
export * as brandRun from "./src/brand/run.ts";
|
|
16
|
+
export * as brandShowcase from "./src/brand/showcase.ts";
|
|
16
17
|
export * as bun from "./src/bun.ts";
|
|
17
18
|
export * as cli from "./src/cli.ts";
|
|
18
19
|
export * as genieCodeCli from "./src/genie-code/cli.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/cli";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.140";
|
|
3
3
|
export * as appkitCli from "./src/appkit/cli.ts";
|
|
4
4
|
export * as appkitEnvExport from "./src/appkit/env-export.ts";
|
|
5
5
|
export * as authCli from "./src/auth/cli.ts";
|
|
@@ -9,6 +9,7 @@ export * as brandCli from "./src/brand/cli.ts";
|
|
|
9
9
|
export * as brandExport from "./src/brand/export.ts";
|
|
10
10
|
export * as brandOptions from "./src/brand/options.ts";
|
|
11
11
|
export * as brandRun from "./src/brand/run.ts";
|
|
12
|
+
export * as brandShowcase from "./src/brand/showcase.ts";
|
|
12
13
|
export * as bun from "./src/bun.ts";
|
|
13
14
|
export * as cli from "./src/cli.ts";
|
|
14
15
|
export * as genieCodeCli from "./src/genie-code/cli.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Regenerated from the exporting modules in ./src.
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/cli";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.140";
|
|
6
6
|
export * as appkitCli from "./src/appkit/cli.js";
|
|
7
7
|
export * as appkitEnvExport from "./src/appkit/env-export.js";
|
|
8
8
|
export * as authCli from "./src/auth/cli.js";
|
|
@@ -12,6 +12,7 @@ export * as brandCli from "./src/brand/cli.js";
|
|
|
12
12
|
export * as brandExport from "./src/brand/export.js";
|
|
13
13
|
export * as brandOptions from "./src/brand/options.js";
|
|
14
14
|
export * as brandRun from "./src/brand/run.js";
|
|
15
|
+
export * as brandShowcase from "./src/brand/showcase.js";
|
|
15
16
|
export * as bun from "./src/bun.js";
|
|
16
17
|
export * as cli from "./src/cli.js";
|
|
17
18
|
export * as genieCodeCli from "./src/genie-code/cli.js";
|
|
@@ -47,4 +48,4 @@ export { SSL_REQUEST, CANCEL_REQUEST, PROTOCOL_3, PostgresProtocolError } from "
|
|
|
47
48
|
export { LakebaseProxy } from "./src/lakebase-proxy/proxy.js";
|
|
48
49
|
export { workspaceRoot } from "./src/root.js";
|
|
49
50
|
export { TunnelOptionsSchema } from "./src/tunnel/options.js";
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLGVBQWUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxXQUFXLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssUUFBUSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxXQUFXLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxLQUFLLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssUUFBUSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxhQUFhLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxLQUFLLFlBQVksTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEtBQUssZUFBZSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLGVBQWUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssZUFBZSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sS0FBSyx5QkFBeUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRixPQUFPLEtBQUssZ0JBQWdCLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLG9CQUFvQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sS0FBSyxxQkFBcUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEtBQUssa0JBQWtCLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxLQUFLLGVBQWUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssa0JBQWtCLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxLQUFLLElBQUksTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxLQUFLLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssU0FBUyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxhQUFhLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUl4RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSw2QkFBNkIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSw4QkFBOEIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNQLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWxILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9jbGlcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xNDBcIjtcbmV4cG9ydCAqIGFzIGFwcGtpdENsaSBmcm9tIFwiLi9zcmMvYXBwa2l0L2NsaS50c1wiO1xuZXhwb3J0ICogYXMgYXBwa2l0RW52RXhwb3J0IGZyb20gXCIuL3NyYy9hcHBraXQvZW52LWV4cG9ydC50c1wiO1xuZXhwb3J0ICogYXMgYXV0aENsaSBmcm9tIFwiLi9zcmMvYXV0aC9jbGkudHNcIjtcbmV4cG9ydCAqIGFzIGF1dGhPcHRpb25zIGZyb20gXCIuL3NyYy9hdXRoL29wdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIGJvb3RzdHJhcCBmcm9tIFwiLi9zcmMvYm9vdHN0cmFwLnRzXCI7XG5leHBvcnQgKiBhcyBicmFuZENsaSBmcm9tIFwiLi9zcmMvYnJhbmQvY2xpLnRzXCI7XG5leHBvcnQgKiBhcyBicmFuZEV4cG9ydCBmcm9tIFwiLi9zcmMvYnJhbmQvZXhwb3J0LnRzXCI7XG5leHBvcnQgKiBhcyBicmFuZE9wdGlvbnMgZnJvbSBcIi4vc3JjL2JyYW5kL29wdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIGJyYW5kUnVuIGZyb20gXCIuL3NyYy9icmFuZC9ydW4udHNcIjtcbmV4cG9ydCAqIGFzIGJyYW5kU2hvd2Nhc2UgZnJvbSBcIi4vc3JjL2JyYW5kL3Nob3djYXNlLnRzXCI7XG5leHBvcnQgKiBhcyBidW4gZnJvbSBcIi4vc3JjL2J1bi50c1wiO1xuZXhwb3J0ICogYXMgY2xpIGZyb20gXCIuL3NyYy9jbGkudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllQ29kZUNsaSBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9jbGkudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllQ29kZUNvbmZpZyBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9jb25maWcudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllQ29kZUluc3RhbGwgZnJvbSBcIi4vc3JjL2dlbmllLWNvZGUvaW5zdGFsbC50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWVDb2RlT3B0aW9ucyBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9vcHRpb25zLnRzXCI7XG5leHBvcnQgKiBhcyBnZW5pZUNvZGVSdW5uZXIgZnJvbSBcIi4vc3JjL2dlbmllLWNvZGUvcnVubmVyLnRzXCI7XG5leHBvcnQgKiBhcyBnZW5pZUNvZGVSdW50aW1lIGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL3J1bnRpbWUudHNcIjtcbmV4cG9ydCAqIGFzIGdyYXBoaXRpQ2xpIGZyb20gXCIuL3NyYy9ncmFwaGl0aS9jbGkudHNcIjtcbmV4cG9ydCAqIGFzIGdyYXBoaXRpT3B0aW9ucyBmcm9tIFwiLi9zcmMvZ3JhcGhpdGkvb3B0aW9ucy50c1wiO1xuZXhwb3J0ICogYXMgbGFrZWJhc2VQcm94eUNhbmNlbGxhdGlvbiBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcHJveHkvY2FuY2VsbGF0aW9uLnRzXCI7XG5leHBvcnQgKiBhcyBsYWtlYmFzZVByb3h5Q2xpIGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9jbGkudHNcIjtcbmV4cG9ydCAqIGFzIGxha2ViYXNlUHJveHlPcHRpb25zIGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9vcHRpb25zLnRzXCI7XG5leHBvcnQgKiBhcyBsYWtlYmFzZVByb3h5UHJvdG9jb2wgZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L3Byb3RvY29sLnRzXCI7XG5leHBvcnQgKiBhcyBsYWtlYmFzZVByb3h5UHJveHkgZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L3Byb3h5LnRzXCI7XG5leHBvcnQgKiBhcyBtb2RlbEdhdGV3YXlDbGkgZnJvbSBcIi4vc3JjL21vZGVsLWdhdGV3YXkvY2xpLnRzXCI7XG5leHBvcnQgKiBhcyBtb2RlbEdhdGV3YXlTZXJ2ZXIgZnJvbSBcIi4vc3JjL21vZGVsLWdhdGV3YXkvc2VydmVyLnRzXCI7XG5leHBvcnQgKiBhcyByb290IGZyb20gXCIuL3NyYy9yb290LnRzXCI7XG5leHBvcnQgKiBhcyB0dW5uZWxBcHAgZnJvbSBcIi4vc3JjL3R1bm5lbC9hcHAudHNcIjtcbmV4cG9ydCAqIGFzIHR1bm5lbENsaSBmcm9tIFwiLi9zcmMvdHVubmVsL2NsaS50c1wiO1xuZXhwb3J0ICogYXMgdHVubmVsT3B0aW9ucyBmcm9tIFwiLi9zcmMvdHVubmVsL29wdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIHR1bm5lbFByb3h5IGZyb20gXCIuL3NyYy90dW5uZWwvcHJveHkudHNcIjtcbmV4cG9ydCB7IEVudkV4cG9ydEZvcm1hdFNjaGVtYSwgRW52Q29tbWFuZE9wdGlvbnNTY2hlbWEgfSBmcm9tIFwiLi9zcmMvYXBwa2l0L2Vudi1leHBvcnQudHNcIjtcbmV4cG9ydCB0eXBlIHsgRW52RXhwb3J0Rm9ybWF0LCBFbnZDb21tYW5kT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9hcHBraXQvZW52LWV4cG9ydC50c1wiO1xuZXhwb3J0IHsgQXV0aENsaU9wdGlvbnNTY2hlbWEsIFRva2VuQ29tbWFuZE9wdGlvbnNTY2hlbWEgfSBmcm9tIFwiLi9zcmMvYXV0aC9vcHRpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IEF1dGhDbGlPcHRpb25zLCBUb2tlbkNvbW1hbmRPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2F1dGgvb3B0aW9ucy50c1wiO1xuZXhwb3J0IHR5cGUgeyBCcmFuZENsaURlcGVuZGVuY2llcyB9IGZyb20gXCIuL3NyYy9icmFuZC9jbGkudHNcIjtcbmV4cG9ydCB0eXBlIHsgV3JpdGVCcmFuZFBhY2thZ2VPcHRpb25zLCBXcml0dGVuQnJhbmRQYWNrYWdlIH0gZnJvbSBcIi4vc3JjL2JyYW5kL2V4cG9ydC50c1wiO1xuZXhwb3J0IHsgQnJhbmRFeHBvcnRPcHRpb25zU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2JyYW5kL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnJhbmRFeHBvcnRPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2JyYW5kL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnJhbmRFeHBvcnRDYWxsYmFja3MgfSBmcm9tIFwiLi9zcmMvYnJhbmQvcnVuLnRzXCI7XG5leHBvcnQgeyByZXNvbHZlQnVuQXJndiB9IGZyb20gXCIuL3NyYy9idW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVDb2RlQ2xpRGVwZW5kZW5jaWVzIH0gZnJvbSBcIi4vc3JjL2dlbmllLWNvZGUvY2xpLnRzXCI7XG5leHBvcnQgeyBHRU5JRV9DT0RFX0dBVEVXQVlfUFJPVklERVIgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgV3JpdGVHZW5pZUNvZGVDb25maWdPcHRpb25zLCBHZW5pZUNvZGVQcm9maWxlSG9tZSwgR2VuaWVDb2RlSG9tZSB9IGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBJbnN0YWxsR2VuaWVDb2RlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL2luc3RhbGwudHNcIjtcbmV4cG9ydCB7IFJVTk5FUl9PUFRJT05TX0VOViB9IGZyb20gXCIuL3NyYy9nZW5pZS1jb2RlL3J1bm5lci50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5pZUNvZGVSdW50aW1lRGVwZW5kZW5jaWVzLCBSdW5HZW5pZUNvZGVPcHRpb25zLCBQcmVwYXJlZEdlbmllQ29kZVJ1bnRpbWUgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtY29kZS9ydW50aW1lLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdyYXBoaXRpQ2xpRGVwZW5kZW5jaWVzLCBHcmFwaGl0aVNlcnZpY2VPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2dyYXBoaXRpL2NsaS50c1wiO1xuZXhwb3J0IHsgR1JBUEhJVElfREVGQVVMVFMsIEdyYXBoaXRpQ2xpT3B0aW9uc1NjaGVtYSwgR3JhcGhpdGlPcHRpb25zU2NoZW1hLCBSZXNvbHZlZEdyYXBoaXRpT3B0aW9uc1NjaGVtYSwgZ3JhcGhpdGlPcHRpb25PdmVycmlkZXMsIGdyYXBoaXRpT3B0aW9uc0Vudmlyb25tZW50LCBncmFwaGl0aU9wdGlvbnNGcm9tRW52aXJvbm1lbnQsIHJlc29sdmVHcmFwaGl0aU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZ3JhcGhpdGkvb3B0aW9ucy50c1wiO1xuZXhwb3J0IHR5cGUgeyBHcmFwaGl0aU9wdGlvbnMsIFJlc29sdmVkR3JhcGhpdGlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2dyYXBoaXRpL29wdGlvbnMudHNcIjtcbmV4cG9ydCB7IENhbmNlbGxhdGlvblJlZ2lzdHJ5IH0gZnJvbSBcIi4vc3JjL2xha2ViYXNlLXByb3h5L2NhbmNlbGxhdGlvbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBDYW5jZWxsYXRpb25UYXJnZXQsIENhbmNlbGxhdGlvbkZvcndhcmRlciB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9jYW5jZWxsYXRpb24udHNcIjtcbmV4cG9ydCB0eXBlIHsgTGFrZWJhc2VQcm94eUNsaURlcGVuZGVuY2llcyB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9jbGkudHNcIjtcbmV4cG9ydCB7IExha2ViYXNlUHJveHlPcHRpb25zU2NoZW1hLCBMYWtlYmFzZVByb3h5VXJsT3B0aW9uc1NjaGVtYSB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9vcHRpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IExha2ViYXNlUHJveHlPcHRpb25zLCBSZXNvbHZlZExha2ViYXNlUHJveHlPcHRpb25zLCBMYWtlYmFzZVByb3h5VXJsT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9vcHRpb25zLnRzXCI7XG5leHBvcnQgeyBTU0xfUkVRVUVTVCwgQ0FOQ0VMX1JFUVVFU1QsIFBST1RPQ09MXzMsIFBvc3RncmVzUHJvdG9jb2xFcnJvciB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS1wcm94eS9wcm90b2NvbC50c1wiO1xuZXhwb3J0IHR5cGUgeyBTdGFydHVwTWVzc2FnZSwgQ2FuY2VsTWVzc2FnZSwgSW5pdGlhbE1lc3NhZ2UgfSBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcHJveHkvcHJvdG9jb2wudHNcIjtcbmV4cG9ydCB7IExha2ViYXNlUHJveHkgfSBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcHJveHkvcHJveHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxHYXRld2F5Q2xpRGVwZW5kZW5jaWVzIH0gZnJvbSBcIi4vc3JjL21vZGVsLWdhdGV3YXkvY2xpLnRzXCI7XG5leHBvcnQgeyB3b3Jrc3BhY2VSb290IH0gZnJvbSBcIi4vc3JjL3Jvb3QudHNcIjtcbmV4cG9ydCB7IFR1bm5lbE9wdGlvbnNTY2hlbWEgfSBmcm9tIFwiLi9zcmMvdHVubmVsL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgVHVubmVsT3B0aW9ucywgUmVzb2x2ZWRUdW5uZWxPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3R1bm5lbC9vcHRpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IFByb3h5T3B0aW9ucyB9IGZyb20gXCIuL3NyYy90dW5uZWwvcHJveHkudHNcIjtcbiJdfQ==
|
package/lib/src/brand/cli.js
CHANGED
|
@@ -22,15 +22,17 @@ export function buildProgram(name = "dbx brand", dependencies = {}) {
|
|
|
22
22
|
const options = parseArgs(program, BrandExportOptionsSchema);
|
|
23
23
|
const result = await runExport(prompt, options, {
|
|
24
24
|
onProgress(event) {
|
|
25
|
-
writeProgress(
|
|
25
|
+
writeProgress(event.message);
|
|
26
26
|
},
|
|
27
27
|
});
|
|
28
28
|
writeResult({
|
|
29
|
+
root: result.outputDirectory,
|
|
29
30
|
brand: result.brandYamlPath,
|
|
30
31
|
manifest: result.manifestPath,
|
|
32
|
+
...(result.showcasePath ? { showcase: result.showcasePath } : {}),
|
|
31
33
|
references: result.referenceCount,
|
|
32
34
|
});
|
|
33
35
|
});
|
|
34
36
|
return program;
|
|
35
37
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JyYW5kL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFTakQsbURBQW1EO0FBQ25ELE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBSSxHQUFHLFdBQVcsRUFBRSxlQUFxQyxFQUFFO0lBQ3RGLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsSUFBSSxxQkFBcUIsQ0FBQztJQUM5RSxNQUFNLGFBQWEsR0FDakIsWUFBWSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RixNQUFNLFdBQVcsR0FDZixZQUFZLENBQUMsV0FBVztRQUN4QixDQUFDLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQ3JCLElBQUksT0FBTyxFQUFFO1NBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNWLFdBQVcsQ0FDVixvRkFBb0YsQ0FDckYsRUFDSCx3QkFBd0IsQ0FDekIsQ0FBQztJQUNGLE9BQU87U0FDSixRQUFRLENBQUMsVUFBVSxFQUFFLHNEQUFzRCxDQUFDO1NBQzVFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBYyxFQUFFLEVBQUU7UUFDL0IsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQzdELE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUU7WUFDOUMsVUFBVSxDQUFDLEtBQUs7Z0JBQ2QsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1lBQzVCLEtBQUssRUFBRSxNQUFNLENBQUMsYUFBYTtZQUMzQixRQUFRLEVBQUUsTUFBTSxDQUFDLFlBQVk7WUFDN0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pFLFVBQVUsRUFBRSxNQUFNLENBQUMsY0FBYztTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGBkYnggYnJhbmRgIHJlc2VhcmNoZWQgYnJhbmQtcGFja2FnZSBleHBvcnQuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGFkZEFyZ3MsIHBhcnNlQXJncyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NsaS1hcmdzXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuXG5pbXBvcnQgeyBCcmFuZEV4cG9ydE9wdGlvbnNTY2hlbWEgfSBmcm9tIFwiLi9vcHRpb25zLnRzXCI7XG5pbXBvcnQgeyBleHBvcnRCcmFuZEZyb21Qcm9tcHQgfSBmcm9tIFwiLi9ydW4udHNcIjtcblxuLyoqIFJlcGxhY2VhYmxlIGNvbW1hbmQgYm91bmRhcmllcyB1c2VkIGJ5IHRlc3RzIGFuZCBlbWJlZGRlcnMuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5kQ2xpRGVwZW5kZW5jaWVzIHtcbiAgcmVhZG9ubHkgZXhwb3J0QnJhbmRGcm9tUHJvbXB0PzogdHlwZW9mIGV4cG9ydEJyYW5kRnJvbVByb21wdDtcbiAgcmVhZG9ubHkgd3JpdGVQcm9ncmVzcz86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICByZWFkb25seSB3cml0ZVJlc3VsdD86ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZDtcbn1cblxuLyoqIEJ1aWxkIHRoZSBsYXppbHkgbG9hZGVkIGBkYnggYnJhbmRgIGNvbW1hbmQuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9ncmFtKG5hbWUgPSBcImRieCBicmFuZFwiLCBkZXBlbmRlbmNpZXM6IEJyYW5kQ2xpRGVwZW5kZW5jaWVzID0ge30pOiBDb21tYW5kIHtcbiAgY29uc3QgcnVuRXhwb3J0ID0gZGVwZW5kZW5jaWVzLmV4cG9ydEJyYW5kRnJvbVByb21wdCA/PyBleHBvcnRCcmFuZEZyb21Qcm9tcHQ7XG4gIGNvbnN0IHdyaXRlUHJvZ3Jlc3MgPVxuICAgIGRlcGVuZGVuY2llcy53cml0ZVByb2dyZXNzID8/ICgodmFsdWU6IHN0cmluZykgPT4gcHJvY2Vzcy5zdGRlcnIud3JpdGUoYCR7dmFsdWV9XFxuYCkpO1xuICBjb25zdCB3cml0ZVJlc3VsdCA9XG4gICAgZGVwZW5kZW5jaWVzLndyaXRlUmVzdWx0ID8/XG4gICAgKCh2YWx1ZTogdW5rbm93bikgPT4gcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCR7SlNPTi5zdHJpbmdpZnkodmFsdWUsIG51bGwsIDIpfVxcbmApKTtcbiAgY29uc3QgcHJvZ3JhbSA9IGFkZEFyZ3MoXG4gICAgbmV3IENvbW1hbmQoKVxuICAgICAgLm5hbWUobmFtZSlcbiAgICAgIC5kZXNjcmlwdGlvbihcbiAgICAgICAgXCJSZXNlYXJjaCBhIGJyYW5kIGJyaWVmIGFuZCBleHBvcnQgYnJhbmQueWFtbCB3aXRoIHdlYiBhbmQgbW9iaWxlIHZpc3VhbCByZWZlcmVuY2VzXCIsXG4gICAgICApLFxuICAgIEJyYW5kRXhwb3J0T3B0aW9uc1NjaGVtYSxcbiAgKTtcbiAgcHJvZ3JhbVxuICAgIC5hcmd1bWVudChcIjxwcm9tcHQ+XCIsIFwiYnJhbmQsIGNvbXBhbnksIHByb2R1Y3QsIG9yIGRlc2lnbiBicmllZiB0byByZXNlYXJjaFwiKVxuICAgIC5hY3Rpb24oYXN5bmMgKHByb21wdDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zID0gcGFyc2VBcmdzKHByb2dyYW0sIEJyYW5kRXhwb3J0T3B0aW9uc1NjaGVtYSk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBydW5FeHBvcnQocHJvbXB0LCBvcHRpb25zLCB7XG4gICAgICAgIG9uUHJvZ3Jlc3MoZXZlbnQpIHtcbiAgICAgICAgICB3cml0ZVByb2dyZXNzKGV2ZW50Lm1lc3NhZ2UpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB3cml0ZVJlc3VsdCh7XG4gICAgICAgIHJvb3Q6IHJlc3VsdC5vdXRwdXREaXJlY3RvcnksXG4gICAgICAgIGJyYW5kOiByZXN1bHQuYnJhbmRZYW1sUGF0aCxcbiAgICAgICAgbWFuaWZlc3Q6IHJlc3VsdC5tYW5pZmVzdFBhdGgsXG4gICAgICAgIC4uLihyZXN1bHQuc2hvd2Nhc2VQYXRoID8geyBzaG93Y2FzZTogcmVzdWx0LnNob3djYXNlUGF0aCB9IDoge30pLFxuICAgICAgICByZWZlcmVuY2VzOiByZXN1bHQucmVmZXJlbmNlQ291bnQsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgcmV0dXJuIHByb2dyYW07XG59XG4iXX0=
|
|
@@ -11,6 +11,7 @@ export interface WriteBrandPackageOptions {
|
|
|
11
11
|
readonly prompt: string;
|
|
12
12
|
readonly brandPackage: BrandPackage;
|
|
13
13
|
readonly research: BrandResearch;
|
|
14
|
+
readonly showcase?: boolean;
|
|
14
15
|
readonly force?: boolean;
|
|
15
16
|
}
|
|
16
17
|
/** Files written for a generated brand package. */
|
|
@@ -18,6 +19,7 @@ export interface WrittenBrandPackage {
|
|
|
18
19
|
readonly outputDirectory: string;
|
|
19
20
|
readonly brandYamlPath: string;
|
|
20
21
|
readonly manifestPath: string;
|
|
22
|
+
readonly showcasePath?: string;
|
|
21
23
|
readonly referenceCount: number;
|
|
22
24
|
}
|
|
23
25
|
/**
|
package/lib/src/brand/export.js
CHANGED
|
@@ -7,6 +7,7 @@ import { access, mkdir, rename, rm, writeFile } from "node:fs/promises";
|
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import { BrandPackageSchema } from "@dbx-tools/shared-generator";
|
|
9
9
|
import { stringify } from "yaml";
|
|
10
|
+
import { renderBrandShowcase } from "./showcase.js";
|
|
10
11
|
function imageExtension(contentType) {
|
|
11
12
|
if (!contentType)
|
|
12
13
|
return ".img";
|
|
@@ -59,12 +60,14 @@ async function fileExists(filePath) {
|
|
|
59
60
|
export async function writeBrandPackage(options) {
|
|
60
61
|
const outputDirectory = path.resolve(options.outputDirectory);
|
|
61
62
|
const brandYamlPath = path.join(outputDirectory, "brand.yaml");
|
|
63
|
+
const showcasePath = path.join(outputDirectory, "showcase.html");
|
|
62
64
|
const packageExists = await fileExists(brandYamlPath);
|
|
63
65
|
if (packageExists && !options.force) {
|
|
64
66
|
throw new Error(`Brand package already exists at ${brandYamlPath}; pass --force to replace it`);
|
|
65
67
|
}
|
|
66
68
|
if (options.force) {
|
|
67
69
|
await rm(path.join(outputDirectory, "references"), { recursive: true, force: true });
|
|
70
|
+
await rm(showcasePath, { force: true });
|
|
68
71
|
}
|
|
69
72
|
const visualReferences = structuredClone(options.brandPackage.visualReferences);
|
|
70
73
|
let referenceCount = 0;
|
|
@@ -96,11 +99,15 @@ export async function writeBrandPackage(options) {
|
|
|
96
99
|
generatedAt: new Date().toISOString(),
|
|
97
100
|
...brandPackage,
|
|
98
101
|
}, null, 2)}\n`);
|
|
102
|
+
if (options.showcase) {
|
|
103
|
+
await writeAtomic(showcasePath, renderBrandShowcase(brandPackage));
|
|
104
|
+
}
|
|
99
105
|
return {
|
|
100
106
|
outputDirectory,
|
|
101
107
|
brandYamlPath,
|
|
102
108
|
manifestPath,
|
|
109
|
+
...(options.showcase ? { showcasePath } : {}),
|
|
103
110
|
referenceCount,
|
|
104
111
|
};
|
|
105
112
|
}
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JyYW5kL2V4cG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFHN0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQW1CakMsU0FBUyxjQUFjLENBQUMsV0FBb0I7SUFDMUMsSUFBSSxDQUFDLFdBQVc7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUNoQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyRSxRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLEtBQUssWUFBWTtZQUNmLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLEtBQUssV0FBVztZQUNkLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLEtBQUssWUFBWTtZQUNmLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLEtBQUssV0FBVztZQUNkLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLEtBQUssZUFBZTtZQUNsQixPQUFPLE1BQU0sQ0FBQztRQUNoQixLQUFLLFlBQVk7WUFDZixPQUFPLE9BQU8sQ0FBQztRQUNqQjtZQUNFLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsS0FBYTtJQUM3QixPQUFPLENBQ0wsS0FBSztTQUNGLFNBQVMsQ0FBQyxNQUFNLENBQUM7U0FDakIsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUs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UUFDZixhQUFhO1FBQ2IsWUFBWTtRQUNaLGNBQWM7S0FDZixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJhbmQgcGFja2FnZSBmaWxlc3lzdGVtIGV4cG9ydC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgYWNjZXNzLCBta2RpciwgcmVuYW1lLCBybSwgd3JpdGVGaWxlIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRSZXNlYXJjaCB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC1nZW5lcmF0b3JcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRQYWNrYWdlIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvclwiO1xuaW1wb3J0IHsgQnJhbmRQYWNrYWdlU2NoZW1hIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvclwiO1xuaW1wb3J0IHsgc3RyaW5naWZ5IH0gZnJvbSBcInlhbWxcIjtcblxuLyoqIElucHV0cyByZXF1aXJlZCB0byB3cml0ZSBhIGdlbmVyYXRlZCBicmFuZCBwYWNrYWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBXcml0ZUJyYW5kUGFja2FnZU9wdGlvbnMge1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvbXB0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJyYW5kUGFja2FnZTogQnJhbmRQYWNrYWdlO1xuICByZWFkb25seSByZXNlYXJjaDogQnJhbmRSZXNlYXJjaDtcbiAgcmVhZG9ubHkgZm9yY2U/OiBib29sZWFuO1xufVxuXG4vKiogRmlsZXMgd3JpdHRlbiBmb3IgYSBnZW5lcmF0ZWQgYnJhbmQgcGFja2FnZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV3JpdHRlbkJyYW5kUGFja2FnZSB7XG4gIHJlYWRvbmx5IG91dHB1dERpcmVjdG9yeTogc3RyaW5nO1xuICByZWFkb25seSBicmFuZFlhbWxQYXRoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1hbmlmZXN0UGF0aDogc3RyaW5nO1xuICByZWFkb25seSByZWZlcmVuY2VDb3VudDogbnVtYmVyO1xufVxuXG5mdW5jdGlvbiBpbWFnZUV4dGVuc2lvbihjb250ZW50VHlwZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghY29udGVudFR5cGUpIHJldHVybiBcIi5pbWdcIjtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IGNvbnRlbnRUeXBlLnNwbGl0KFwiO1wiLCAxKVswXS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgc3dpdGNoIChub3JtYWxpemVkKSB7XG4gICAgY2FzZSBcImltYWdlL2F2aWZcIjpcbiAgICAgIHJldHVybiBcIi5hdmlmXCI7XG4gICAgY2FzZSBcImltYWdlL2dpZlwiOlxuICAgICAgcmV0dXJuIFwiLmdpZlwiO1xuICAgIGNhc2UgXCJpbWFnZS9qcGVnXCI6XG4gICAgICByZXR1cm4gXCIuanBnXCI7XG4gICAgY2FzZSBcImltYWdlL3BuZ1wiOlxuICAgICAgcmV0dXJuIFwiLnBuZ1wiO1xuICAgIGNhc2UgXCJpbWFnZS9zdmcreG1sXCI6XG4gICAgICByZXR1cm4gXCIuc3ZnXCI7XG4gICAgY2FzZSBcImltYWdlL3dlYnBcIjpcbiAgICAgIHJldHVybiBcIi53ZWJwXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBcIi5pbWdcIjtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaWxlU2x1Zyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIChcbiAgICB2YWx1ZVxuICAgICAgLm5vcm1hbGl6ZShcIk5GS0RcIilcbiAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKVxuICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgIC5yZXBsYWNlKC9bXmEtejAtOV0rL2csIFwiLVwiKVxuICAgICAgLnJlcGxhY2UoL14tK3wtKyQvZywgXCJcIilcbiAgICAgIC5zbGljZSgwLCA2MCkgfHwgXCJyZWZlcmVuY2VcIlxuICApO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3cml0ZUF0b21pYyhmaWxlUGF0aDogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcgfCBVaW50OEFycmF5KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IG1rZGlyKHBhdGguZGlybmFtZShmaWxlUGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBjb25zdCB0ZW1wb3JhcnlQYXRoID0gYCR7ZmlsZVBhdGh9LiR7cHJvY2Vzcy5waWR9LiR7Y3J5cHRvLnJhbmRvbVVVSUQoKX0udG1wYDtcbiAgYXdhaXQgd3JpdGVGaWxlKHRlbXBvcmFyeVBhdGgsIGNvbnRlbnQpO1xuICBhd2FpdCByZW5hbWUodGVtcG9yYXJ5UGF0aCwgZmlsZVBhdGgpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmaWxlRXhpc3RzKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBhY2Nlc3MoZmlsZVBhdGgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBXcml0ZSBhIG5vcm1hbCBgYnJhbmQueWFtbGAgcGx1cyByZXNlYXJjaCBwcm92ZW5hbmNlIGFuZCBkb3dubG9hZGVkIHZpc3VhbFxuICogcmVmZXJlbmNlcy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlQnJhbmRQYWNrYWdlKFxuICBvcHRpb25zOiBXcml0ZUJyYW5kUGFja2FnZU9wdGlvbnMsXG4pOiBQcm9taXNlPFdyaXR0ZW5CcmFuZFBhY2thZ2U+IHtcbiAgY29uc3Qgb3V0cHV0RGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMub3V0cHV0RGlyZWN0b3J5KTtcbiAgY29uc3QgYnJhbmRZYW1sUGF0aCA9IHBhdGguam9pbihvdXRwdXREaXJlY3RvcnksIFwiYnJhbmQueWFtbFwiKTtcbiAgY29uc3QgcGFja2FnZUV4aXN0cyA9IGF3YWl0IGZpbGVFeGlzdHMoYnJhbmRZYW1sUGF0aCk7XG4gIGlmIChwYWNrYWdlRXhpc3RzICYmICFvcHRpb25zLmZvcmNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBCcmFuZCBwYWNrYWdlIGFscmVhZHkgZXhpc3RzIGF0ICR7YnJhbmRZYW1sUGF0aH07IHBhc3MgLS1mb3JjZSB0byByZXBsYWNlIGl0YCk7XG4gIH1cbiAgaWYgKG9wdGlvbnMuZm9yY2UpIHtcbiAgICBhd2FpdCBybShwYXRoLmpvaW4ob3V0cHV0RGlyZWN0b3J5LCBcInJlZmVyZW5jZXNcIiksIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIGNvbnN0IHZpc3VhbFJlZmVyZW5jZXMgPSBzdHJ1Y3R1cmVkQ2xvbmUob3B0aW9ucy5icmFuZFBhY2thZ2UudmlzdWFsUmVmZXJlbmNlcyk7XG4gIGxldCByZWZlcmVuY2VDb3VudCA9IDA7XG4gIGZvciAoXG4gICAgbGV0IHJlZmVyZW5jZUluZGV4ID0gMDtcbiAgICByZWZlcmVuY2VJbmRleCA8IG9wdGlvbnMucmVzZWFyY2gudmlzdWFsUmVmZXJlbmNlcy5sZW5ndGg7XG4gICAgcmVmZXJlbmNlSW5kZXggKz0gMVxuICApIHtcbiAgICBjb25zdCByZXNlYXJjaFJlZmVyZW5jZSA9IG9wdGlvbnMucmVzZWFyY2gudmlzdWFsUmVmZXJlbmNlc1tyZWZlcmVuY2VJbmRleF07XG4gICAgY29uc3QgZXhwb3J0ZWRSZWZlcmVuY2UgPSB2aXN1YWxSZWZlcmVuY2VzW3JlZmVyZW5jZUluZGV4XTtcbiAgICBpZiAoIWV4cG9ydGVkUmVmZXJlbmNlKSBjb250aW51ZTtcbiAgICBmb3IgKGxldCBpbWFnZUluZGV4ID0gMDsgaW1hZ2VJbmRleCA8IHJlc2VhcmNoUmVmZXJlbmNlLmltYWdlcy5sZW5ndGg7IGltYWdlSW5kZXggKz0gMSkge1xuICAgICAgY29uc3QgcmVzZWFyY2hJbWFnZSA9IHJlc2VhcmNoUmVmZXJlbmNlLmltYWdlc1tpbWFnZUluZGV4XTtcbiAgICAgIGNvbnN0IGV4cG9ydGVkSW1hZ2UgPSBleHBvcnRlZFJlZmVyZW5jZS5pbWFnZXNbaW1hZ2VJbmRleF07XG4gICAgICBpZiAoIWV4cG9ydGVkSW1hZ2UgfHwgIXJlc2VhcmNoSW1hZ2UuZGF0YSkgY29udGludWU7XG4gICAgICBjb25zdCBmaWxlTmFtZSA9IGAke2ZpbGVTbHVnKHJlc2VhcmNoUmVmZXJlbmNlLmFwcE5hbWUpfS0ke2ltYWdlSW5kZXggKyAxfSR7aW1hZ2VFeHRlbnNpb24ocmVzZWFyY2hJbWFnZS5jb250ZW50VHlwZSl9YDtcbiAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGgucG9zaXguam9pbihcInJlZmVyZW5jZXNcIiwgcmVzZWFyY2hSZWZlcmVuY2UucGxhdGZvcm0sIGZpbGVOYW1lKTtcbiAgICAgIGF3YWl0IHdyaXRlQXRvbWljKHBhdGguam9pbihvdXRwdXREaXJlY3RvcnksIHJlbGF0aXZlUGF0aCksIHJlc2VhcmNoSW1hZ2UuZGF0YSk7XG4gICAgICBleHBvcnRlZEltYWdlLmxvY2FsUGF0aCA9IGAuLyR7cmVsYXRpdmVQYXRofWA7XG4gICAgICByZWZlcmVuY2VDb3VudCArPSAxO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGJyYW5kUGFja2FnZSA9IEJyYW5kUGFja2FnZVNjaGVtYS5wYXJzZSh7XG4gICAgLi4ub3B0aW9ucy5icmFuZFBhY2thZ2UsXG4gICAgdmlzdWFsUmVmZXJlbmNlcyxcbiAgfSk7XG4gIGNvbnN0IG1hbmlmZXN0UGF0aCA9IHBhdGguam9pbihvdXRwdXREaXJlY3RvcnksIFwiYnJhbmQtcGFja2FnZS5qc29uXCIpO1xuICBhd2FpdCB3cml0ZUF0b21pYyhicmFuZFlhbWxQYXRoLCBzdHJpbmdpZnkoYnJhbmRQYWNrYWdlLmJyYW5kLCB7IGluZGVudDogMiB9KSk7XG4gIGF3YWl0IHdyaXRlQXRvbWljKFxuICAgIG1hbmlmZXN0UGF0aCxcbiAgICBgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgcHJvbXB0OiBvcHRpb25zLnByb21wdCxcbiAgICAgICAgZ2VuZXJhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgLi4uYnJhbmRQYWNrYWdlLFxuICAgICAgfSxcbiAgICAgIG51bGwsXG4gICAgICAyLFxuICAgICl9XFxuYCxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIG91dHB1dERpcmVjdG9yeSxcbiAgICBicmFuZFlhbWxQYXRoLFxuICAgIG1hbmlmZXN0UGF0aCxcbiAgICByZWZlcmVuY2VDb3VudCxcbiAgfTtcbn1cbiJdfQ==
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JyYW5kL2V4cG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFHN0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFxQnBELFNBQVMsY0FBYyxDQUFDLFdBQW9CO0lBQzFDLElBQUksQ0FBQyxXQUFXO1FBQUUsT0FBTyxNQUFNLENBQUM7SUFDaEMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckUsUUFBUSxVQUFVLEVBQUUsQ0FBQztRQUNuQixLQUFLLFlBQVk7WUFDZixPQUFPLE9BQU8sQ0FBQztRQUNqQixLQUFLLFdBQVc7WUFDZCxPQUFPLE1BQU0sQ0FBQztRQUNoQixLQUFLLFlBQVk7WUFDZixPQUFPLE1BQU0sQ0FBQztRQUNoQixLQUFLLFdBQVc7WUFDZCxPQUFPLE1BQU0sQ0FBQztRQUNoQixLQUFLLGVBQWU7WUFDbEIsT0FBTyxNQUFNLENBQUM7UUFDaEIsS0FBSyxZQUFZO1lBQ2YsT0FBTyxPQUFPLENBQUM7UUFDakI7WUFDRSxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLEtBQWE7SUFDN0IsT0FBTyxDQUNMLEtBQUs7U0FDRixTQUFTLENBQUMs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SSxDQUFDLFNBQVMsQ0FDZjtRQUNFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN0QixXQUFXLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7UUFDckMsR0FBRyxZQUFZO0tBQ2hCLEVBQ0QsSUFBSSxFQUNKLENBQUMsQ0FDRixJQUFJLENBQ04sQ0FBQztJQUNGLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sV0FBVyxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxPQUFPO1FBQ0wsZUFBZTtRQUNmLGFBQWE7UUFDYixZQUFZO1FBQ1osR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3QyxjQUFjO0tBQ2YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJyYW5kIHBhY2thZ2UgZmlsZXN5c3RlbSBleHBvcnQuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGFjY2VzcywgbWtkaXIsIHJlbmFtZSwgcm0sIHdyaXRlRmlsZSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IEJyYW5kUmVzZWFyY2ggfSBmcm9tIFwiQGRieC10b29scy9hcHBraXQtZ2VuZXJhdG9yXCI7XG5pbXBvcnQgdHlwZSB7IEJyYW5kUGFja2FnZSB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IEJyYW5kUGFja2FnZVNjaGVtYSB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IHN0cmluZ2lmeSB9IGZyb20gXCJ5YW1sXCI7XG5pbXBvcnQgeyByZW5kZXJCcmFuZFNob3djYXNlIH0gZnJvbSBcIi4vc2hvd2Nhc2UudHNcIjtcblxuLyoqIElucHV0cyByZXF1aXJlZCB0byB3cml0ZSBhIGdlbmVyYXRlZCBicmFuZCBwYWNrYWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBXcml0ZUJyYW5kUGFja2FnZU9wdGlvbnMge1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvbXB0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJyYW5kUGFja2FnZTogQnJhbmRQYWNrYWdlO1xuICByZWFkb25seSByZXNlYXJjaDogQnJhbmRSZXNlYXJjaDtcbiAgcmVhZG9ubHkgc2hvd2Nhc2U/OiBib29sZWFuO1xuICByZWFkb25seSBmb3JjZT86IGJvb2xlYW47XG59XG5cbi8qKiBGaWxlcyB3cml0dGVuIGZvciBhIGdlbmVyYXRlZCBicmFuZCBwYWNrYWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBXcml0dGVuQnJhbmRQYWNrYWdlIHtcbiAgcmVhZG9ubHkgb3V0cHV0RGlyZWN0b3J5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJyYW5kWWFtbFBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgbWFuaWZlc3RQYXRoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNob3djYXNlUGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgcmVmZXJlbmNlQ291bnQ6IG51bWJlcjtcbn1cblxuZnVuY3Rpb24gaW1hZ2VFeHRlbnNpb24oY29udGVudFR5cGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWNvbnRlbnRUeXBlKSByZXR1cm4gXCIuaW1nXCI7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBjb250ZW50VHlwZS5zcGxpdChcIjtcIiwgMSlbMF0udHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIHN3aXRjaCAobm9ybWFsaXplZCkge1xuICAgIGNhc2UgXCJpbWFnZS9hdmlmXCI6XG4gICAgICByZXR1cm4gXCIuYXZpZlwiO1xuICAgIGNhc2UgXCJpbWFnZS9naWZcIjpcbiAgICAgIHJldHVybiBcIi5naWZcIjtcbiAgICBjYXNlIFwiaW1hZ2UvanBlZ1wiOlxuICAgICAgcmV0dXJuIFwiLmpwZ1wiO1xuICAgIGNhc2UgXCJpbWFnZS9wbmdcIjpcbiAgICAgIHJldHVybiBcIi5wbmdcIjtcbiAgICBjYXNlIFwiaW1hZ2Uvc3ZnK3htbFwiOlxuICAgICAgcmV0dXJuIFwiLnN2Z1wiO1xuICAgIGNhc2UgXCJpbWFnZS93ZWJwXCI6XG4gICAgICByZXR1cm4gXCIud2VicFwiO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gXCIuaW1nXCI7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmlsZVNsdWcodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiAoXG4gICAgdmFsdWVcbiAgICAgIC5ub3JtYWxpemUoXCJORktEXCIpXG4gICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIilcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAucmVwbGFjZSgvW15hLXowLTldKy9nLCBcIi1cIilcbiAgICAgIC5yZXBsYWNlKC9eLSt8LSskL2csIFwiXCIpXG4gICAgICAuc2xpY2UoMCwgNjApIHx8IFwicmVmZXJlbmNlXCJcbiAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd3JpdGVBdG9taWMoZmlsZVBhdGg6IHN0cmluZywgY29udGVudDogc3RyaW5nIHwgVWludDhBcnJheSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBta2RpcihwYXRoLmRpcm5hbWUoZmlsZVBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgY29uc3QgdGVtcG9yYXJ5UGF0aCA9IGAke2ZpbGVQYXRofS4ke3Byb2Nlc3MucGlkfS4ke2NyeXB0by5yYW5kb21VVUlEKCl9LnRtcGA7XG4gIGF3YWl0IHdyaXRlRmlsZSh0ZW1wb3JhcnlQYXRoLCBjb250ZW50KTtcbiAgYXdhaXQgcmVuYW1lKHRlbXBvcmFyeVBhdGgsIGZpbGVQYXRoKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmlsZUV4aXN0cyhmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYWNjZXNzKGZpbGVQYXRoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogV3JpdGUgYSBub3JtYWwgYGJyYW5kLnlhbWxgIHBsdXMgcmVzZWFyY2ggcHJvdmVuYW5jZSBhbmQgZG93bmxvYWRlZCB2aXN1YWxcbiAqIHJlZmVyZW5jZXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZUJyYW5kUGFja2FnZShcbiAgb3B0aW9uczogV3JpdGVCcmFuZFBhY2thZ2VPcHRpb25zLFxuKTogUHJvbWlzZTxXcml0dGVuQnJhbmRQYWNrYWdlPiB7XG4gIGNvbnN0IG91dHB1dERpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShvcHRpb25zLm91dHB1dERpcmVjdG9yeSk7XG4gIGNvbnN0IGJyYW5kWWFtbFBhdGggPSBwYXRoLmpvaW4ob3V0cHV0RGlyZWN0b3J5LCBcImJyYW5kLnlhbWxcIik7XG4gIGNvbnN0IHNob3djYXNlUGF0aCA9IHBhdGguam9pbihvdXRwdXREaXJlY3RvcnksIFwic2hvd2Nhc2UuaHRtbFwiKTtcbiAgY29uc3QgcGFja2FnZUV4aXN0cyA9IGF3YWl0IGZpbGVFeGlzdHMoYnJhbmRZYW1sUGF0aCk7XG4gIGlmIChwYWNrYWdlRXhpc3RzICYmICFvcHRpb25zLmZvcmNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBCcmFuZCBwYWNrYWdlIGFscmVhZHkgZXhpc3RzIGF0ICR7YnJhbmRZYW1sUGF0aH07IHBhc3MgLS1mb3JjZSB0byByZXBsYWNlIGl0YCk7XG4gIH1cbiAgaWYgKG9wdGlvbnMuZm9yY2UpIHtcbiAgICBhd2FpdCBybShwYXRoLmpvaW4ob3V0cHV0RGlyZWN0b3J5LCBcInJlZmVyZW5jZXNcIiksIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICBhd2FpdCBybShzaG93Y2FzZVBhdGgsIHsgZm9yY2U6IHRydWUgfSk7XG4gIH1cblxuICBjb25zdCB2aXN1YWxSZWZlcmVuY2VzID0gc3RydWN0dXJlZENsb25lKG9wdGlvbnMuYnJhbmRQYWNrYWdlLnZpc3VhbFJlZmVyZW5jZXMpO1xuICBsZXQgcmVmZXJlbmNlQ291bnQgPSAwO1xuICBmb3IgKFxuICAgIGxldCByZWZlcmVuY2VJbmRleCA9IDA7XG4gICAgcmVmZXJlbmNlSW5kZXggPCBvcHRpb25zLnJlc2VhcmNoLnZpc3VhbFJlZmVyZW5jZXMubGVuZ3RoO1xuICAgIHJlZmVyZW5jZUluZGV4ICs9IDFcbiAgKSB7XG4gICAgY29uc3QgcmVzZWFyY2hSZWZlcmVuY2UgPSBvcHRpb25zLnJlc2VhcmNoLnZpc3VhbFJlZmVyZW5jZXNbcmVmZXJlbmNlSW5kZXhdO1xuICAgIGNvbnN0IGV4cG9ydGVkUmVmZXJlbmNlID0gdmlzdWFsUmVmZXJlbmNlc1tyZWZlcmVuY2VJbmRleF07XG4gICAgaWYgKCFleHBvcnRlZFJlZmVyZW5jZSkgY29udGludWU7XG4gICAgZm9yIChsZXQgaW1hZ2VJbmRleCA9IDA7IGltYWdlSW5kZXggPCByZXNlYXJjaFJlZmVyZW5jZS5pbWFnZXMubGVuZ3RoOyBpbWFnZUluZGV4ICs9IDEpIHtcbiAgICAgIGNvbnN0IHJlc2VhcmNoSW1hZ2UgPSByZXNlYXJjaFJlZmVyZW5jZS5pbWFnZXNbaW1hZ2VJbmRleF07XG4gICAgICBjb25zdCBleHBvcnRlZEltYWdlID0gZXhwb3J0ZWRSZWZlcmVuY2UuaW1hZ2VzW2ltYWdlSW5kZXhdO1xuICAgICAgaWYgKCFleHBvcnRlZEltYWdlIHx8ICFyZXNlYXJjaEltYWdlLmRhdGEpIGNvbnRpbnVlO1xuICAgICAgY29uc3QgZmlsZU5hbWUgPSBgJHtmaWxlU2x1ZyhyZXNlYXJjaFJlZmVyZW5jZS5hcHBOYW1lKX0tJHtpbWFnZUluZGV4ICsgMX0ke2ltYWdlRXh0ZW5zaW9uKHJlc2VhcmNoSW1hZ2UuY29udGVudFR5cGUpfWA7XG4gICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoLnBvc2l4LmpvaW4oXCJyZWZlcmVuY2VzXCIsIHJlc2VhcmNoUmVmZXJlbmNlLnBsYXRmb3JtLCBmaWxlTmFtZSk7XG4gICAgICBhd2FpdCB3cml0ZUF0b21pYyhwYXRoLmpvaW4ob3V0cHV0RGlyZWN0b3J5LCByZWxhdGl2ZVBhdGgpLCByZXNlYXJjaEltYWdlLmRhdGEpO1xuICAgICAgZXhwb3J0ZWRJbWFnZS5sb2NhbFBhdGggPSBgLi8ke3JlbGF0aXZlUGF0aH1gO1xuICAgICAgcmVmZXJlbmNlQ291bnQgKz0gMTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBicmFuZFBhY2thZ2UgPSBCcmFuZFBhY2thZ2VTY2hlbWEucGFyc2Uoe1xuICAgIC4uLm9wdGlvbnMuYnJhbmRQYWNrYWdlLFxuICAgIHZpc3VhbFJlZmVyZW5jZXMsXG4gIH0pO1xuICBjb25zdCBtYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4ob3V0cHV0RGlyZWN0b3J5LCBcImJyYW5kLXBhY2thZ2UuanNvblwiKTtcbiAgYXdhaXQgd3JpdGVBdG9taWMoYnJhbmRZYW1sUGF0aCwgc3RyaW5naWZ5KGJyYW5kUGFja2FnZS5icmFuZCwgeyBpbmRlbnQ6IDIgfSkpO1xuICBhd2FpdCB3cml0ZUF0b21pYyhcbiAgICBtYW5pZmVzdFBhdGgsXG4gICAgYCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICB7XG4gICAgICAgIHByb21wdDogb3B0aW9ucy5wcm9tcHQsXG4gICAgICAgIGdlbmVyYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIC4uLmJyYW5kUGFja2FnZSxcbiAgICAgIH0sXG4gICAgICBudWxsLFxuICAgICAgMixcbiAgICApfVxcbmAsXG4gICk7XG4gIGlmIChvcHRpb25zLnNob3djYXNlKSB7XG4gICAgYXdhaXQgd3JpdGVBdG9taWMoc2hvd2Nhc2VQYXRoLCByZW5kZXJCcmFuZFNob3djYXNlKGJyYW5kUGFja2FnZSkpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBvdXRwdXREaXJlY3RvcnksXG4gICAgYnJhbmRZYW1sUGF0aCxcbiAgICBtYW5pZmVzdFBhdGgsXG4gICAgLi4uKG9wdGlvbnMuc2hvd2Nhc2UgPyB7IHNob3djYXNlUGF0aCB9IDoge30pLFxuICAgIHJlZmVyZW5jZUNvdW50LFxuICB9O1xufVxuIl19
|
package/lib/src/brand/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * as cli from "./cli.ts";
|
|
|
2
2
|
export * as exportModule from "./export.ts";
|
|
3
3
|
export * as options from "./options.ts";
|
|
4
4
|
export * as run from "./run.ts";
|
|
5
|
+
export * as showcase from "./showcase.ts";
|
|
5
6
|
export type { BrandCliDependencies } from "./cli.ts";
|
|
6
7
|
export type { WriteBrandPackageOptions, WrittenBrandPackage } from "./export.ts";
|
|
7
8
|
export { BrandExportOptionsSchema } from "./options.ts";
|
package/lib/src/brand/index.js
CHANGED
|
@@ -5,5 +5,6 @@ export * as cli from "./cli.js";
|
|
|
5
5
|
export * as exportModule from "./export.js";
|
|
6
6
|
export * as options from "./options.js";
|
|
7
7
|
export * as run from "./run.js";
|
|
8
|
+
export * as showcase from "./showcase.js";
|
|
8
9
|
export { BrandExportOptionsSchema } from "./options.js";
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnJhbmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLG1EQUFtRDtBQUNuRCx3RUFBd0U7QUFFeEUsT0FBTyxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxLQUFLLFlBQVksTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFHMUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0ICogYXMgY2xpIGZyb20gXCIuL2NsaS50c1wiO1xuZXhwb3J0ICogYXMgZXhwb3J0TW9kdWxlIGZyb20gXCIuL2V4cG9ydC50c1wiO1xuZXhwb3J0ICogYXMgb3B0aW9ucyBmcm9tIFwiLi9vcHRpb25zLnRzXCI7XG5leHBvcnQgKiBhcyBydW4gZnJvbSBcIi4vcnVuLnRzXCI7XG5leHBvcnQgKiBhcyBzaG93Y2FzZSBmcm9tIFwiLi9zaG93Y2FzZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBCcmFuZENsaURlcGVuZGVuY2llcyB9IGZyb20gXCIuL2NsaS50c1wiO1xuZXhwb3J0IHR5cGUgeyBXcml0ZUJyYW5kUGFja2FnZU9wdGlvbnMsIFdyaXR0ZW5CcmFuZFBhY2thZ2UgfSBmcm9tIFwiLi9leHBvcnQudHNcIjtcbmV4cG9ydCB7IEJyYW5kRXhwb3J0T3B0aW9uc1NjaGVtYSB9IGZyb20gXCIuL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnJhbmRFeHBvcnRPcHRpb25zIH0gZnJvbSBcIi4vb3B0aW9ucy50c1wiO1xuZXhwb3J0IHR5cGUgeyBCcmFuZEV4cG9ydENhbGxiYWNrcyB9IGZyb20gXCIuL3J1bi50c1wiO1xuIl19
|
|
@@ -9,10 +9,11 @@ export declare const BrandExportOptionsSchema: z.ZodObject<{
|
|
|
9
9
|
profile: z.ZodOptional<z.ZodString>;
|
|
10
10
|
name: z.ZodOptional<z.ZodString>;
|
|
11
11
|
website: z.ZodOptional<z.ZodString>;
|
|
12
|
-
output: z.
|
|
12
|
+
output: z.ZodOptional<z.ZodString>;
|
|
13
13
|
model: z.ZodOptional<z.ZodString>;
|
|
14
14
|
maxSources: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
15
15
|
sourceMaxLength: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
16
|
+
showcase: z.ZodDefault<z.ZodBoolean>;
|
|
16
17
|
force: z.ZodDefault<z.ZodBoolean>;
|
|
17
18
|
}, z.core.$strict>;
|
|
18
19
|
/** Resolved brand export options. */
|
package/lib/src/brand/options.js
CHANGED
|
@@ -15,8 +15,8 @@ export const BrandExportOptionsSchema = z
|
|
|
15
15
|
.string()
|
|
16
16
|
.trim()
|
|
17
17
|
.min(1)
|
|
18
|
-
.
|
|
19
|
-
.describe("
|
|
18
|
+
.optional()
|
|
19
|
+
.describe("Persistent output directory for brand.yaml, showcase, provenance, and visual references. Omit for a temporary directory."),
|
|
20
20
|
model: z
|
|
21
21
|
.string()
|
|
22
22
|
.trim()
|
|
@@ -37,8 +37,12 @@ export const BrandExportOptionsSchema = z
|
|
|
37
37
|
.max(20_000)
|
|
38
38
|
.default(8_000)
|
|
39
39
|
.describe("Maximum characters retained from each source page."),
|
|
40
|
+
showcase: z
|
|
41
|
+
.boolean()
|
|
42
|
+
.default(true)
|
|
43
|
+
.describe("Responsive HTML brand presentation and website mockups."),
|
|
40
44
|
force: z.boolean().default(false).describe("Replace files in an existing output directory."),
|
|
41
45
|
})
|
|
42
46
|
.strict()
|
|
43
47
|
.describe("Options for exporting a researched brand package.");
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9icmFuZC9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLDBEQUEwRDtBQUMxRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDO0tBQ3RDLE1BQU0sQ0FBQztJQUNOLE9BQU8sRUFBRSwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsT0FBTztJQUNsRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUM7SUFDakYsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsK0JBQStCLENBQUM7SUFDOUUsTUFBTSxFQUFFLENBQUM7U0FDTixNQUFNLEVBQUU7U0FDUixJQUFJLEVBQUU7U0FDTixHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ04sUUFBUSxFQUFFO1NBQ1YsUUFBUSxDQUNQLDBIQUEwSCxDQUMzSDtJQUNILEtBQUssRUFBRSxDQUFDO1NBQ0wsTUFBTSxFQUFFO1NBQ1IsSUFBSSxFQUFFO1NBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNOLFFBQVEsRUFBRTtTQUNWLFFBQVEsQ0FBQywyREFBMkQsQ0FBQztJQUN4RSxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU07U0FDakIsTUFBTSxFQUFFO1NBQ1IsR0FBRyxFQUFFO1NBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDTixPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ1YsUUFBUSxDQUFDLHNDQUFzQyxDQUFDO0lBQ25ELGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTTtTQUN0QixNQUFNLEVBQUU7U0FDUixHQUFHLEVBQUU7U0FDTCxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQ1YsR0FBRyxDQUFDLE1BQU0sQ0FBQztTQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDZCxRQUFRLENBQUMsb0RBQW9ELENBQUM7SUFDakUsUUFBUSxFQUFFLENBQUM7U0FDUixPQUFPLEVBQUU7U0FDVCxPQUFPLENBQUMsSUFBSSxDQUFDO1NBQ2IsUUFBUSxDQUFDLHlEQUF5RCxDQUFDO0lBQ3RFLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnREFBZ0QsQ0FBQztDQUM3RixDQUFDO0tBQ0QsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLG1EQUFtRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGBkYnggYnJhbmRgIG9wdGlvbiBjb250cmFjdHMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IERhdGFicmlja3NBdXRoT3B0aW9uc1NjaGVtYSB9IGZyb20gXCJAZGJ4LXRvb2xzL2F1dGgvY29uZmlnXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG4vKiogT3B0aW9ucyBmb3IgZXhwb3J0aW5nIG9uZSByZXNlYXJjaGVkIGJyYW5kIHBhY2thZ2UuICovXG5leHBvcnQgY29uc3QgQnJhbmRFeHBvcnRPcHRpb25zU2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBwcm9maWxlOiBEYXRhYnJpY2tzQXV0aE9wdGlvbnNTY2hlbWEuc2hhcGUucHJvZmlsZSxcbiAgICBuYW1lOiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkub3B0aW9uYWwoKS5kZXNjcmliZShcIktub3duIGNhbm9uaWNhbCBicmFuZCBuYW1lLlwiKSxcbiAgICB3ZWJzaXRlOiB6LnN0cmluZygpLnVybCgpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJLbm93biBvZmZpY2lhbCBIVFRQUyB3ZWJzaXRlLlwiKSxcbiAgICBvdXRwdXQ6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgICAgLm1pbigxKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcbiAgICAgICAgXCJQZXJzaXN0ZW50IG91dHB1dCBkaXJlY3RvcnkgZm9yIGJyYW5kLnlhbWwsIHNob3djYXNlLCBwcm92ZW5hbmNlLCBhbmQgdmlzdWFsIHJlZmVyZW5jZXMuIE9taXQgZm9yIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeS5cIixcbiAgICAgICksXG4gICAgbW9kZWw6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgICAgLm1pbigxKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIk9wdGlvbmFsIERhdGFicmlja3MgbW9kZWwgcHJlZmVyZW5jZSBmb3IgYnJhbmQgc3ludGhlc2lzLlwiKSxcbiAgICBtYXhTb3VyY2VzOiB6LmNvZXJjZVxuICAgICAgLm51bWJlcigpXG4gICAgICAuaW50KClcbiAgICAgIC5taW4oMSlcbiAgICAgIC5tYXgoOClcbiAgICAgIC5kZWZhdWx0KDQpXG4gICAgICAuZGVzY3JpYmUoXCJNYXhpbXVtIGdlbmVyYWwgd2ViIHNvdXJjZXMgdG8gcmVhZC5cIiksXG4gICAgc291cmNlTWF4TGVuZ3RoOiB6LmNvZXJjZVxuICAgICAgLm51bWJlcigpXG4gICAgICAuaW50KClcbiAgICAgIC5taW4oMV8wMDApXG4gICAgICAubWF4KDIwXzAwMClcbiAgICAgIC5kZWZhdWx0KDhfMDAwKVxuICAgICAgLmRlc2NyaWJlKFwiTWF4aW11bSBjaGFyYWN0ZXJzIHJldGFpbmVkIGZyb20gZWFjaCBzb3VyY2UgcGFnZS5cIiksXG4gICAgc2hvd2Nhc2U6IHpcbiAgICAgIC5ib29sZWFuKClcbiAgICAgIC5kZWZhdWx0KHRydWUpXG4gICAgICAuZGVzY3JpYmUoXCJSZXNwb25zaXZlIEhUTUwgYnJhbmQgcHJlc2VudGF0aW9uIGFuZCB3ZWJzaXRlIG1vY2t1cHMuXCIpLFxuICAgIGZvcmNlOiB6LmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKS5kZXNjcmliZShcIlJlcGxhY2UgZmlsZXMgaW4gYW4gZXhpc3Rpbmcgb3V0cHV0IGRpcmVjdG9yeS5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJPcHRpb25zIGZvciBleHBvcnRpbmcgYSByZXNlYXJjaGVkIGJyYW5kIHBhY2thZ2UuXCIpO1xuXG4vKiogUmVzb2x2ZWQgYnJhbmQgZXhwb3J0IG9wdGlvbnMuICovXG5leHBvcnQgdHlwZSBCcmFuZEV4cG9ydE9wdGlvbnMgPSB6Lm91dHB1dDx0eXBlb2YgQnJhbmRFeHBvcnRPcHRpb25zU2NoZW1hPjtcbiJdfQ==
|
package/lib/src/brand/run.js
CHANGED
|
@@ -3,11 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
+
import { mkdtemp } from "node:fs/promises";
|
|
7
|
+
import { tmpdir } from "node:os";
|
|
8
|
+
import path from "node:path";
|
|
6
9
|
import { generateBrandPackage } from "@dbx-tools/appkit-generator/generate";
|
|
7
10
|
import { runWebAssetPageFetch, runWebFetch, runWebImageFetch, } from "@dbx-tools/appkit-web-search/fetch";
|
|
8
11
|
import { createWebSearchRuntime } from "@dbx-tools/appkit-web-search/runtime";
|
|
9
12
|
import { runWebSearch } from "@dbx-tools/appkit-web-search/search";
|
|
10
13
|
import { createWorkspaceClient } from "@dbx-tools/databricks/workspace-client";
|
|
14
|
+
import { object } from "@dbx-tools/shared-core";
|
|
11
15
|
import { writeBrandPackage } from "./export.js";
|
|
12
16
|
/**
|
|
13
17
|
* Research a freeform brand brief, synthesize a portable context, and export
|
|
@@ -32,7 +36,20 @@ export async function exportBrandFromPrompt(prompt, options, callbacks = {}) {
|
|
|
32
36
|
client: workspaceClient,
|
|
33
37
|
host,
|
|
34
38
|
...(options.profile ? { cacheIdentity: `profile:${options.profile}` } : {}),
|
|
35
|
-
}, signal)
|
|
39
|
+
}, signal, async (event) => {
|
|
40
|
+
if (!object.isRecord(event))
|
|
41
|
+
return;
|
|
42
|
+
const status = typeof event.status === "string" ? event.status : undefined;
|
|
43
|
+
const eventMessage = typeof event.message === "string" ? event.message.trim() : undefined;
|
|
44
|
+
const detail = typeof event.detail === "string" ? event.detail.trim() : undefined;
|
|
45
|
+
await callbacks.onProgress?.({
|
|
46
|
+
type: "progress",
|
|
47
|
+
stage: "search",
|
|
48
|
+
message: status === "search" && eventMessage
|
|
49
|
+
? `Web search: ${eventMessage}`
|
|
50
|
+
: `Web search complete${detail ? `: ${detail}` : ""}`,
|
|
51
|
+
});
|
|
52
|
+
}),
|
|
36
53
|
fetch: (request, signal) => runWebFetch(request, runtime, signal),
|
|
37
54
|
fetchAssetPage: (request, signal) => runWebAssetPageFetch(request, runtime, signal),
|
|
38
55
|
fetchImage: (request, signal) => runWebImageFetch(request, runtime, signal),
|
|
@@ -48,12 +65,14 @@ export async function exportBrandFromPrompt(prompt, options, callbacks = {}) {
|
|
|
48
65
|
});
|
|
49
66
|
if (!research)
|
|
50
67
|
throw new Error("Brand generation completed without research provenance");
|
|
68
|
+
const outputDirectory = options.output ?? (await mkdtemp(path.join(tmpdir(), "dbx-tools-brand-")));
|
|
51
69
|
return writeBrandPackage({
|
|
52
|
-
outputDirectory
|
|
70
|
+
outputDirectory,
|
|
53
71
|
prompt,
|
|
54
72
|
brandPackage,
|
|
55
73
|
research,
|
|
74
|
+
showcase: options.showcase,
|
|
56
75
|
force: options.force,
|
|
57
76
|
});
|
|
58
77
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JyYW5kL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHaEQsT0FBTyxFQUFFLGlCQUFpQixFQUE0QixNQUFNLGFBQWEsQ0FBQztBQVExRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxNQUFjLEVBQ2QsT0FBMkIsRUFDM0IsWUFBa0MsRUFBRTtJQUVwQyxNQUFNLGVBQWUsR0FBRyxNQUFNLHFCQUFxQixDQUFDO1FBQ2xELEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUN6RCxDQUFDLENBQUM7SUFDSCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lB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QyxFQUFFLENBQUM7UUFDbEQsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQzlCLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZTtRQUN4QyxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckUsVUFBVSxDQUFDLEtBQUs7WUFDZCxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ25CLENBQUM7S0FDRixDQUNGLENBQUM7SUFDRixJQUFJLENBQUMsUUFBUTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztJQUN6RixNQUFNLGVBQWUsR0FDbkIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTyxpQkFBaUIsQ0FBQztRQUN2QixlQUFlO1FBQ2YsTUFBTTtRQUNOLFlBQVk7UUFDWixRQUFRO1FBQ1IsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1FBQzFCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztLQUNyQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGFuZGFsb25lIHJlc2VhcmNoZWQgYnJhbmQgZ2VuZXJhdGlvbiBmb3IgdGhlIGNvbnNvbGlkYXRlZCBDTEkuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IG1rZHRlbXAgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSBcIm5vZGU6b3NcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRSZXNlYXJjaCB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IGdlbmVyYXRlQnJhbmRQYWNrYWdlIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LWdlbmVyYXRvci9nZW5lcmF0ZVwiO1xuaW1wb3J0IHtcbiAgcnVuV2ViQXNzZXRQYWdlRmV0Y2gsXG4gIHJ1bldlYkZldGNoLFxuICBydW5XZWJJbWFnZUZldGNoLFxufSBmcm9tIFwiQGRieC10b29scy9hcHBraXQtd2ViLXNlYXJjaC9mZXRjaFwiO1xuaW1wb3J0IHsgY3JlYXRlV2ViU2VhcmNoUnVudGltZSB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC13ZWItc2VhcmNoL3J1bnRpbWVcIjtcbmltcG9ydCB7IHJ1bldlYlNlYXJjaCB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdC13ZWItc2VhcmNoL3NlYXJjaFwiO1xuaW1wb3J0IHsgY3JlYXRlV29ya3NwYWNlQ2xpZW50IH0gZnJvbSBcIkBkYngtdG9vbHMvZGF0YWJyaWNrcy93b3Jrc3BhY2UtY2xpZW50XCI7XG5pbXBvcnQgeyBvYmplY3QgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBCcmFuZEdlbmVyYXRpb25Qcm9ncmVzc0V2ZW50IH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvclwiO1xuXG5pbXBvcnQgeyB3cml0ZUJyYW5kUGFja2FnZSwgdHlwZSBXcml0dGVuQnJhbmRQYWNrYWdlIH0gZnJvbSBcIi4vZXhwb3J0LnRzXCI7XG5pbXBvcnQgdHlwZSB7IEJyYW5kRXhwb3J0T3B0aW9ucyB9IGZyb20gXCIuL29wdGlvbnMudHNcIjtcblxuLyoqIE9wdGlvbmFsIG9ic2VydmVycyBmb3Igb25lIENMSSBicmFuZCBnZW5lcmF0aW9uIHJ1bi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRFeHBvcnRDYWxsYmFja3Mge1xuICByZWFkb25seSBvblByb2dyZXNzPzogKGV2ZW50OiBCcmFuZEdlbmVyYXRpb25Qcm9ncmVzc0V2ZW50KSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBSZXNlYXJjaCBhIGZyZWVmb3JtIGJyYW5kIGJyaWVmLCBzeW50aGVzaXplIGEgcG9ydGFibGUgY29udGV4dCwgYW5kIGV4cG9ydFxuICogdGhlIHBhY2thZ2UgdG8gZGlzay5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4cG9ydEJyYW5kRnJvbVByb21wdChcbiAgcHJvbXB0OiBzdHJpbmcsXG4gIG9wdGlvbnM6IEJyYW5kRXhwb3J0T3B0aW9ucyxcbiAgY2FsbGJhY2tzOiBCcmFuZEV4cG9ydENhbGxiYWNrcyA9IHt9LFxuKTogUHJvbWlzZTxXcml0dGVuQnJhbmRQYWNrYWdlPiB7XG4gIGNvbnN0IHdvcmtzcGFjZUNsaWVudCA9IGF3YWl0IGNyZWF0ZVdvcmtzcGFjZUNsaWVudCh7XG4gICAgLi4uKG9wdGlvbnMucHJvZmlsZSA/IHsgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlIH0gOiB7fSksXG4gIH0pO1xuICBjb25zdCBob3N0ID0gKGF3YWl0IHdvcmtzcGFjZUNsaWVudC5jb25maWcuZ2V0SG9zdCgpKS50b1N0cmluZygpO1xuICBjb25zdCBydW50aW1lID0gY3JlYXRlV2ViU2VhcmNoUnVudGltZSh7XG4gICAgLi4uKG9wdGlvbnMubW9kZWwgPyB7IG1vZGVsOiBvcHRpb25zLm1vZGVsIH0gOiB7fSksXG4gIH0pO1xuICBsZXQgcmVzZWFyY2g6IEJyYW5kUmVzZWFyY2ggfCB1bmRlZmluZWQ7XG4gIGNvbnN0IGJyYW5kUGFja2FnZSA9IGF3YWl0IGdlbmVyYXRlQnJhbmRQYWNrYWdlKFxuICAgIHtcbiAgICAgIHByb21wdCxcbiAgICAgIC4uLihvcHRpb25zLm5hbWUgPyB7IG5hbWU6IG9wdGlvbnMubmFtZSB9IDoge30pLFxuICAgICAgLi4uKG9wdGlvbnMud2Vic2l0ZSA/IHsgd2Vic2l0ZTogb3B0aW9ucy53ZWJzaXRlIH0gOiB7fSksXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGllbnQ6IHtcbiAgICAgICAgc2VhcmNoOiAocmVxdWVzdCwgc2lnbmFsKSA9PlxuICAgICAgICAgIHJ1bldlYlNlYXJjaChcbiAgICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgICAgICBydW50aW1lLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGllbnQ6IHdvcmtzcGFjZUNsaWVudCxcbiAgICAgICAgICAgICAgaG9zdCxcbiAgICAgICAgICAgICAgLi4uKG9wdGlvbnMucHJvZmlsZSA/IHsgY2FjaGVJZGVudGl0eTogYHByb2ZpbGU6JHtvcHRpb25zLnByb2ZpbGV9YCB9IDoge30pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNpZ25hbCxcbiAgICAgICAgICAgIGFzeW5jIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIW9iamVjdC5pc1JlY29yZChldmVudCkpIHJldHVybjtcbiAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gdHlwZW9mIGV2ZW50LnN0YXR1cyA9PT0gXCJzdHJpbmdcIiA/IGV2ZW50LnN0YXR1cyA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgY29uc3QgZXZlbnRNZXNzYWdlID1cbiAgICAgICAgICAgICAgICB0eXBlb2YgZXZlbnQubWVzc2FnZSA9PT0gXCJzdHJpbmdcIiA/IGV2ZW50Lm1lc3NhZ2UudHJpbSgpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICBjb25zdCBkZXRhaWwgPSB0eXBlb2YgZXZlbnQuZGV0YWlsID09PSBcInN0cmluZ1wiID8gZXZlbnQuZGV0YWlsLnRyaW0oKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgYXdhaXQgY2FsbGJhY2tzLm9uUHJvZ3Jlc3M/Lih7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgICAgICAgICAgICAgIHN0YWdlOiBcInNlYXJjaFwiLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICAgICAgICBzdGF0dXMgPT09IFwic2VhcmNoXCIgJiYgZXZlbnRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgID8gYFdlYiBzZWFyY2g6ICR7ZXZlbnRNZXNzYWdlfWBcbiAgICAgICAgICAgICAgICAgICAgOiBgV2ViIHNlYXJjaCBjb21wbGV0ZSR7ZGV0YWlsID8gYDogJHtkZXRhaWx9YCA6IFwiXCJ9YCxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICksXG4gICAgICAgIGZldGNoOiAocmVxdWVzdCwgc2lnbmFsKSA9PiBydW5XZWJGZXRjaChyZXF1ZXN0LCBydW50aW1lLCBzaWduYWwpLFxuICAgICAgICBmZXRjaEFzc2V0UGFnZTogKHJlcXVlc3QsIHNpZ25hbCkgPT4gcnVuV2ViQXNzZXRQYWdlRmV0Y2gocmVxdWVzdCwgcnVudGltZSwgc2lnbmFsKSxcbiAgICAgICAgZmV0Y2hJbWFnZTogKHJlcXVlc3QsIHNpZ25hbCkgPT4gcnVuV2ViSW1hZ2VGZXRjaChyZXF1ZXN0LCBydW50aW1lLCBzaWduYWwpLFxuICAgICAgfSxcbiAgICAgIHdvcmtzcGFjZUNsaWVudCxcbiAgICAgIC4uLihvcHRpb25zLm1vZGVsID8geyBtb2RlbDogb3B0aW9ucy5tb2RlbCB9IDoge30pLFxuICAgICAgbWF4U291cmNlczogb3B0aW9ucy5tYXhTb3VyY2VzLFxuICAgICAgc291cmNlTWF4TGVuZ3RoOiBvcHRpb25zLnNvdXJjZU1heExlbmd0aCxcbiAgICAgIC4uLihjYWxsYmFja3Mub25Qcm9ncmVzcyA/IHsgb25Qcm9ncmVzczogY2FsbGJhY2tzLm9uUHJvZ3Jlc3MgfSA6IHt9KSxcbiAgICAgIG9uUmVzZWFyY2godmFsdWUpIHtcbiAgICAgICAgcmVzZWFyY2ggPSB2YWx1ZTtcbiAgICAgIH0sXG4gICAgfSxcbiAgKTtcbiAgaWYgKCFyZXNlYXJjaCkgdGhyb3cgbmV3IEVycm9yKFwiQnJhbmQgZ2VuZXJhdGlvbiBjb21wbGV0ZWQgd2l0aG91dCByZXNlYXJjaCBwcm92ZW5hbmNlXCIpO1xuICBjb25zdCBvdXRwdXREaXJlY3RvcnkgPVxuICAgIG9wdGlvbnMub3V0cHV0ID8/IChhd2FpdCBta2R0ZW1wKHBhdGguam9pbih0bXBkaXIoKSwgXCJkYngtdG9vbHMtYnJhbmQtXCIpKSk7XG4gIHJldHVybiB3cml0ZUJyYW5kUGFja2FnZSh7XG4gICAgb3V0cHV0RGlyZWN0b3J5LFxuICAgIHByb21wdCxcbiAgICBicmFuZFBhY2thZ2UsXG4gICAgcmVzZWFyY2gsXG4gICAgc2hvd2Nhc2U6IG9wdGlvbnMuc2hvd2Nhc2UsXG4gICAgZm9yY2U6IG9wdGlvbnMuZm9yY2UsXG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Self-contained HTML presentation for an exported brand package.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import type { BrandPackage } from "@dbx-tools/shared-generator";
|
|
7
|
+
/** Render one responsive brand presentation with desktop and mobile mockups. */
|
|
8
|
+
export declare function renderBrandShowcase(brandPackage: BrandPackage): string;
|