@dbx-tools/appkit-generator 0.9.153 → 0.9.157

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/index.ts +16 -6
  2. package/lib/index.d.ts +16 -6
  3. package/lib/index.js +17 -7
  4. package/lib/src/assets.d.ts +1 -1
  5. package/lib/src/assets.js +4 -4
  6. package/lib/src/config.js +9 -12
  7. package/lib/src/dashboard.d.ts +2 -2
  8. package/lib/src/dashboard.js +6 -6
  9. package/lib/src/data.d.ts +1 -1
  10. package/lib/src/data.js +6 -6
  11. package/lib/src/defaults.d.ts +1 -1
  12. package/lib/src/defaults.js +1 -1
  13. package/lib/src/generate.d.ts +2 -1
  14. package/lib/src/generate.js +5 -4
  15. package/lib/src/genie.d.ts +1 -1
  16. package/lib/src/genie.js +5 -5
  17. package/lib/src/kpi.d.ts +1 -1
  18. package/lib/src/kpi.js +4 -4
  19. package/lib/src/namespace.d.ts +1 -1
  20. package/lib/src/namespace.js +12 -12
  21. package/lib/src/operations.d.ts +1 -3
  22. package/lib/src/operations.js +1 -1
  23. package/lib/src/plan.d.ts +1 -3
  24. package/lib/src/plan.js +2 -2
  25. package/lib/src/plugin.d.ts +8 -8
  26. package/lib/src/plugin.js +8 -12
  27. package/lib/src/research.d.ts +2 -3
  28. package/lib/src/research.js +8 -8
  29. package/lib/src/schema.d.ts +2 -4
  30. package/lib/src/schema.js +3 -4
  31. package/lib/src/structured.js +2 -2
  32. package/lib/src/workflow.js +3 -4
  33. package/package.json +10 -154
  34. package/src/assets.ts +4 -4
  35. package/src/config.ts +10 -21
  36. package/src/dashboard.ts +6 -6
  37. package/src/data.ts +7 -7
  38. package/src/defaults.ts +2 -1
  39. package/src/generate.ts +9 -10
  40. package/src/genie.ts +4 -4
  41. package/src/kpi.ts +3 -3
  42. package/src/namespace.ts +11 -11
  43. package/src/operations.ts +5 -3
  44. package/src/plan.ts +3 -3
  45. package/src/plugin.ts +9 -11
  46. package/src/research.ts +14 -16
  47. package/src/schema.ts +4 -29
  48. package/src/structured.ts +1 -1
  49. package/src/workflow.ts +3 -3
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/appkit-generator";
6
- export const PACKAGE_VERSION = "0.9.153";
6
+ export const PACKAGE_VERSION = "0.9.157";
7
7
  export * as assets from "./src/assets.ts";
8
8
  export * as config from "./src/config.ts";
9
9
  export * as dashboard from "./src/dashboard.ts";
@@ -21,24 +21,34 @@ export * as research from "./src/research.ts";
21
21
  export * as schema from "./src/schema.ts";
22
22
  export * as structured from "./src/structured.ts";
23
23
  export * as workflow from "./src/workflow.ts";
24
+ export { discoverBrandAssets, discoverMobileAppVisuals } from "./src/assets.ts";
24
25
  export type { DiscoveredBrandAssets, DiscoveredMobileAppVisuals } from "./src/assets.ts";
25
- export { DEFAULT_GENERATOR_TIMEOUT_MS, GENERATOR_CONFIG_SCHEMA } from "./src/config.ts";
26
+ export { DEFAULT_GENERATOR_TIMEOUT_MS, GENERATOR_CONFIG_SCHEMA, resolveGeneratorConfig } from "./src/config.ts";
26
27
  export type { GeneratorPluginConfig, ResolvedGeneratorConfig } from "./src/config.ts";
28
+ export { buildGeneratorDashboard, createGeneratorDashboard } from "./src/dashboard.ts";
27
29
  export type { CreateGeneratorDashboardInput } from "./src/dashboard.ts";
28
- export { BRAND_CACHE_TTL_SECONDS, BRAND_CACHE_VERSION, BRAND_GENERATION_ATTEMPTS } from "./src/defaults.ts";
30
+ export { compileGeneratorTableSql, compileMetricValidationSql, executeGeneratorStatement, materializeGeneratorData } from "./src/data.ts";
31
+ export { BRAND_CACHE_TTL_SECONDS, BRAND_CACHE_VERSION, BRAND_GENERATION_ATTEMPTS, brandGenerationSettings } from "./src/defaults.ts";
29
32
  export type { BrandExecuteConfig, BrandExecutionSettings } from "./src/defaults.ts";
30
- export { BRAND_SYNTHESIS_INSTRUCTIONS } from "./src/generate.ts";
33
+ export { BRAND_SYNTHESIS_INSTRUCTIONS, brandSynthesisPrompt, synthesizeBrandProfile, generateBrandPackage } from "./src/generate.ts";
31
34
  export type { BrandSynthesisInput, BrandSynthesizer, GenerateBrandPackageOptions } from "./src/generate.ts";
35
+ export { buildGeneratorGenieSpace, createGeneratorGenieSpace } from "./src/genie.ts";
32
36
  export type { CreateGeneratorGenieInput } from "./src/genie.ts";
37
+ export { kpiResearchQuery, researchKpis } from "./src/kpi.ts";
33
38
  export type { ResearchKpisOptions } from "./src/kpi.ts";
39
+ export { generatorSchemaName, resolveGeneratorIdentity, provisionGeneratorSchema, provisionGeneratorSchemaWithIdentity } from "./src/namespace.ts";
34
40
  export type { ProvisionSchemaInput, GeneratorIdentity } from "./src/namespace.ts";
35
41
  export { GeneratorOperations } from "./src/operations.ts";
36
42
  export type { GeneratorOperationsOptions } from "./src/operations.ts";
43
+ export { colorContrastRatio, normalizeBrandPalette } from "./src/palette.ts";
44
+ export { planGeneratorData } from "./src/plan.ts";
37
45
  export type { PlanGeneratorDataInput } from "./src/plan.ts";
38
46
  export { GeneratorPlugin, generator } from "./src/plugin.ts";
39
- export { DEFAULT_MAX_SOURCES, DEFAULT_SOURCE_MAX_LENGTH, MAX_SOURCES, MAX_SOURCE_MAX_LENGTH, ASSET_HTML_MAX_LENGTH } from "./src/research.ts";
47
+ export { DEFAULT_MAX_SOURCES, DEFAULT_SOURCE_MAX_LENGTH, MAX_SOURCES, MAX_SOURCE_MAX_LENGTH, ASSET_HTML_MAX_LENGTH, brandResearchQuery, researchBrand } from "./src/research.ts";
40
48
  export type { BrandResearchClient, BrandResearchOptions, BrandProgressReporter, BrandResearchSource, BrandResearch, BrandResearchVisualImage, BrandResearchVisualReference } from "./src/research.ts";
41
- export { GENERATE_BRAND_TOOL_DESCRIPTION, GeneratedBrandProfileSchema } from "./src/schema.ts";
49
+ export { brandRequestSubject, GENERATE_BRAND_TOOL_DESCRIPTION, GeneratedBrandProfileSchema } from "./src/schema.ts";
42
50
  export type { GeneratedBrandProfile } from "./src/schema.ts";
51
+ export { generateStructured } from "./src/structured.ts";
43
52
  export type { StructuredGenerationOptions } from "./src/structured.ts";
53
+ export { createGeneratorWorkflow } from "./src/workflow.ts";
44
54
  export type { GeneratorWorkflowOperations, GeneratorWorkflowOptions, GeneratorWorkflow } from "./src/workflow.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-generator";
2
- export declare const PACKAGE_VERSION = "0.9.153";
2
+ export declare const PACKAGE_VERSION = "0.9.157";
3
3
  export * as assets from "./src/assets.ts";
4
4
  export * as config from "./src/config.ts";
5
5
  export * as dashboard from "./src/dashboard.ts";
@@ -17,24 +17,34 @@ export * as research from "./src/research.ts";
17
17
  export * as schema from "./src/schema.ts";
18
18
  export * as structured from "./src/structured.ts";
19
19
  export * as workflow from "./src/workflow.ts";
20
+ export { discoverBrandAssets, discoverMobileAppVisuals } from "./src/assets.ts";
20
21
  export type { DiscoveredBrandAssets, DiscoveredMobileAppVisuals } from "./src/assets.ts";
21
- export { DEFAULT_GENERATOR_TIMEOUT_MS, GENERATOR_CONFIG_SCHEMA } from "./src/config.ts";
22
+ export { DEFAULT_GENERATOR_TIMEOUT_MS, GENERATOR_CONFIG_SCHEMA, resolveGeneratorConfig } from "./src/config.ts";
22
23
  export type { GeneratorPluginConfig, ResolvedGeneratorConfig } from "./src/config.ts";
24
+ export { buildGeneratorDashboard, createGeneratorDashboard } from "./src/dashboard.ts";
23
25
  export type { CreateGeneratorDashboardInput } from "./src/dashboard.ts";
24
- export { BRAND_CACHE_TTL_SECONDS, BRAND_CACHE_VERSION, BRAND_GENERATION_ATTEMPTS } from "./src/defaults.ts";
26
+ export { compileGeneratorTableSql, compileMetricValidationSql, executeGeneratorStatement, materializeGeneratorData } from "./src/data.ts";
27
+ export { BRAND_CACHE_TTL_SECONDS, BRAND_CACHE_VERSION, BRAND_GENERATION_ATTEMPTS, brandGenerationSettings } from "./src/defaults.ts";
25
28
  export type { BrandExecuteConfig, BrandExecutionSettings } from "./src/defaults.ts";
26
- export { BRAND_SYNTHESIS_INSTRUCTIONS } from "./src/generate.ts";
29
+ export { BRAND_SYNTHESIS_INSTRUCTIONS, brandSynthesisPrompt, synthesizeBrandProfile, generateBrandPackage } from "./src/generate.ts";
27
30
  export type { BrandSynthesisInput, BrandSynthesizer, GenerateBrandPackageOptions } from "./src/generate.ts";
31
+ export { buildGeneratorGenieSpace, createGeneratorGenieSpace } from "./src/genie.ts";
28
32
  export type { CreateGeneratorGenieInput } from "./src/genie.ts";
33
+ export { kpiResearchQuery, researchKpis } from "./src/kpi.ts";
29
34
  export type { ResearchKpisOptions } from "./src/kpi.ts";
35
+ export { generatorSchemaName, resolveGeneratorIdentity, provisionGeneratorSchema, provisionGeneratorSchemaWithIdentity } from "./src/namespace.ts";
30
36
  export type { ProvisionSchemaInput, GeneratorIdentity } from "./src/namespace.ts";
31
37
  export { GeneratorOperations } from "./src/operations.ts";
32
38
  export type { GeneratorOperationsOptions } from "./src/operations.ts";
39
+ export { colorContrastRatio, normalizeBrandPalette } from "./src/palette.ts";
40
+ export { planGeneratorData } from "./src/plan.ts";
33
41
  export type { PlanGeneratorDataInput } from "./src/plan.ts";
34
42
  export { GeneratorPlugin, generator } from "./src/plugin.ts";
35
- export { DEFAULT_MAX_SOURCES, DEFAULT_SOURCE_MAX_LENGTH, MAX_SOURCES, MAX_SOURCE_MAX_LENGTH, ASSET_HTML_MAX_LENGTH } from "./src/research.ts";
43
+ export { DEFAULT_MAX_SOURCES, DEFAULT_SOURCE_MAX_LENGTH, MAX_SOURCES, MAX_SOURCE_MAX_LENGTH, ASSET_HTML_MAX_LENGTH, brandResearchQuery, researchBrand } from "./src/research.ts";
36
44
  export type { BrandResearchClient, BrandResearchOptions, BrandProgressReporter, BrandResearchSource, BrandResearch, BrandResearchVisualImage, BrandResearchVisualReference } from "./src/research.ts";
37
- export { GENERATE_BRAND_TOOL_DESCRIPTION, GeneratedBrandProfileSchema } from "./src/schema.ts";
45
+ export { brandRequestSubject, GENERATE_BRAND_TOOL_DESCRIPTION, GeneratedBrandProfileSchema } from "./src/schema.ts";
38
46
  export type { GeneratedBrandProfile } from "./src/schema.ts";
47
+ export { generateStructured } from "./src/structured.ts";
39
48
  export type { StructuredGenerationOptions } from "./src/structured.ts";
49
+ export { createGeneratorWorkflow } from "./src/workflow.ts";
40
50
  export type { GeneratorWorkflowOperations, GeneratorWorkflowOptions, GeneratorWorkflow } from "./src/workflow.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/appkit-generator";
5
- export const PACKAGE_VERSION = "0.9.153";
5
+ export const PACKAGE_VERSION = "0.9.157";
6
6
  export * as assets from "./src/assets.js";
7
7
  export * as config from "./src/config.js";
8
8
  export * as dashboard from "./src/dashboard.js";
@@ -20,11 +20,21 @@ export * as research from "./src/research.js";
20
20
  export * as schema from "./src/schema.js";
21
21
  export * as structured from "./src/structured.js";
22
22
  export * as workflow from "./src/workflow.js";
23
- export { DEFAULT_GENERATOR_TIMEOUT_MS, GENERATOR_CONFIG_SCHEMA } from "./src/config.js";
24
- export { BRAND_CACHE_TTL_SECONDS, BRAND_CACHE_VERSION, BRAND_GENERATION_ATTEMPTS } from "./src/defaults.js";
25
- export { BRAND_SYNTHESIS_INSTRUCTIONS } from "./src/generate.js";
23
+ export { discoverBrandAssets, discoverMobileAppVisuals } from "./src/assets.js";
24
+ export { DEFAULT_GENERATOR_TIMEOUT_MS, GENERATOR_CONFIG_SCHEMA, resolveGeneratorConfig } from "./src/config.js";
25
+ export { buildGeneratorDashboard, createGeneratorDashboard } from "./src/dashboard.js";
26
+ export { compileGeneratorTableSql, compileMetricValidationSql, executeGeneratorStatement, materializeGeneratorData } from "./src/data.js";
27
+ export { BRAND_CACHE_TTL_SECONDS, BRAND_CACHE_VERSION, BRAND_GENERATION_ATTEMPTS, brandGenerationSettings } from "./src/defaults.js";
28
+ export { BRAND_SYNTHESIS_INSTRUCTIONS, brandSynthesisPrompt, synthesizeBrandProfile, generateBrandPackage } from "./src/generate.js";
29
+ export { buildGeneratorGenieSpace, createGeneratorGenieSpace } from "./src/genie.js";
30
+ export { kpiResearchQuery, researchKpis } from "./src/kpi.js";
31
+ export { generatorSchemaName, resolveGeneratorIdentity, provisionGeneratorSchema, provisionGeneratorSchemaWithIdentity } from "./src/namespace.js";
26
32
  export { GeneratorOperations } from "./src/operations.js";
33
+ export { colorContrastRatio, normalizeBrandPalette } from "./src/palette.js";
34
+ export { planGeneratorData } from "./src/plan.js";
27
35
  export { GeneratorPlugin, generator } from "./src/plugin.js";
28
- export { DEFAULT_MAX_SOURCES, DEFAULT_SOURCE_MAX_LENGTH, MAX_SOURCES, MAX_SOURCE_MAX_LENGTH, ASSET_HTML_MAX_LENGTH } from "./src/research.js";
29
- export { GENERATE_BRAND_TOOL_DESCRIPTION, GeneratedBrandProfileSchema } from "./src/schema.js";
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyw2QkFBNkIsQ0FBQztBQUNoRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxHQUFHLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd4RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUtqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx5QkFBeUIsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5SSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0LWdlbmVyYXRvclwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjE1M1wiO1xuZXhwb3J0ICogYXMgYXNzZXRzIGZyb20gXCIuL3NyYy9hc3NldHMudHNcIjtcbmV4cG9ydCAqIGFzIGNvbmZpZyBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgKiBhcyBkYXNoYm9hcmQgZnJvbSBcIi4vc3JjL2Rhc2hib2FyZC50c1wiO1xuZXhwb3J0ICogYXMgZGF0YSBmcm9tIFwiLi9zcmMvZGF0YS50c1wiO1xuZXhwb3J0ICogYXMgZGVmYXVsdHMgZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgKiBhcyBnZW5lcmF0ZSBmcm9tIFwiLi9zcmMvZ2VuZXJhdGUudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllIGZyb20gXCIuL3NyYy9nZW5pZS50c1wiO1xuZXhwb3J0ICogYXMga3BpIGZyb20gXCIuL3NyYy9rcGkudHNcIjtcbmV4cG9ydCAqIGFzIG5hbWVzcGFjZSBmcm9tIFwiLi9zcmMvbmFtZXNwYWNlLnRzXCI7XG5leHBvcnQgKiBhcyBvcGVyYXRpb25zIGZyb20gXCIuL3NyYy9vcGVyYXRpb25zLnRzXCI7XG5leHBvcnQgKiBhcyBwYWxldHRlIGZyb20gXCIuL3NyYy9wYWxldHRlLnRzXCI7XG5leHBvcnQgKiBhcyBwbGFuIGZyb20gXCIuL3NyYy9wbGFuLnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0ICogYXMgcmVzZWFyY2ggZnJvbSBcIi4vc3JjL3Jlc2VhcmNoLnRzXCI7XG5leHBvcnQgKiBhcyBzY2hlbWEgZnJvbSBcIi4vc3JjL3NjaGVtYS50c1wiO1xuZXhwb3J0ICogYXMgc3RydWN0dXJlZCBmcm9tIFwiLi9zcmMvc3RydWN0dXJlZC50c1wiO1xuZXhwb3J0ICogYXMgd29ya2Zsb3cgZnJvbSBcIi4vc3JjL3dvcmtmbG93LnRzXCI7XG5leHBvcnQgdHlwZSB7IERpc2NvdmVyZWRCcmFuZEFzc2V0cywgRGlzY292ZXJlZE1vYmlsZUFwcFZpc3VhbHMgfSBmcm9tIFwiLi9zcmMvYXNzZXRzLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0dFTkVSQVRPUl9USU1FT1VUX01TLCBHRU5FUkFUT1JfQ09ORklHX1NDSEVNQSB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuZXJhdG9yUGx1Z2luQ29uZmlnLCBSZXNvbHZlZEdlbmVyYXRvckNvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ3JlYXRlR2VuZXJhdG9yRGFzaGJvYXJkSW5wdXQgfSBmcm9tIFwiLi9zcmMvZGFzaGJvYXJkLnRzXCI7XG5leHBvcnQgeyBCUkFORF9DQUNIRV9UVExfU0VDT05EUywgQlJBTkRfQ0FDSEVfVkVSU0lPTiwgQlJBTkRfR0VORVJBVElPTl9BVFRFTVBUUyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHR5cGUgeyBCcmFuZEV4ZWN1dGVDb25maWcsIEJyYW5kRXhlY3V0aW9uU2V0dGluZ3MgfSBmcm9tIFwiLi9zcmMvZGVmYXVsdHMudHNcIjtcbmV4cG9ydCB7IEJSQU5EX1NZTlRIRVNJU19JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvZ2VuZXJhdGUudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnJhbmRTeW50aGVzaXNJbnB1dCwgQnJhbmRTeW50aGVzaXplciwgR2VuZXJhdGVCcmFuZFBhY2thZ2VPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2dlbmVyYXRlLnRzXCI7XG5leHBvcnQgdHlwZSB7IENyZWF0ZUdlbmVyYXRvckdlbmllSW5wdXQgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB0eXBlIHsgUmVzZWFyY2hLcGlzT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9rcGkudHNcIjtcbmV4cG9ydCB0eXBlIHsgUHJvdmlzaW9uU2NoZW1hSW5wdXQsIEdlbmVyYXRvcklkZW50aXR5IH0gZnJvbSBcIi4vc3JjL25hbWVzcGFjZS50c1wiO1xuZXhwb3J0IHsgR2VuZXJhdG9yT3BlcmF0aW9ucyB9IGZyb20gXCIuL3NyYy9vcGVyYXRpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdlbmVyYXRvck9wZXJhdGlvbnNPcHRpb25zIH0gZnJvbSBcIi4vc3JjL29wZXJhdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGxhbkdlbmVyYXRvckRhdGFJbnB1dCB9IGZyb20gXCIuL3NyYy9wbGFuLnRzXCI7XG5leHBvcnQgeyBHZW5lcmF0b3JQbHVnaW4sIGdlbmVyYXRvciB9IGZyb20gXCIuL3NyYy9wbHVnaW4udHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfTUFYX1NPVVJDRVMsIERFRkFVTFRfU09VUkNFX01BWF9MRU5HVEgsIE1BWF9TT1VSQ0VTLCBNQVhfU09VUkNFX01BWF9MRU5HVEgsIEFTU0VUX0hUTUxfTUFYX0xFTkdUSCB9IGZyb20gXCIuL3NyYy9yZXNlYXJjaC50c1wiO1xuZXhwb3J0IHR5cGUgeyBCcmFuZFJlc2VhcmNoQ2xpZW50LCBCcmFuZFJlc2VhcmNoT3B0aW9ucywgQnJhbmRQcm9ncmVzc1JlcG9ydGVyLCBCcmFuZFJlc2VhcmNoU291cmNlLCBCcmFuZFJlc2VhcmNoLCBCcmFuZFJlc2VhcmNoVmlzdWFsSW1hZ2UsIEJyYW5kUmVzZWFyY2hWaXN1YWxSZWZlcmVuY2UgfSBmcm9tIFwiLi9zcmMvcmVzZWFyY2gudHNcIjtcbmV4cG9ydCB7IEdFTkVSQVRFX0JSQU5EX1RPT0xfREVTQ1JJUFRJT04sIEdlbmVyYXRlZEJyYW5kUHJvZmlsZVNjaGVtYSB9IGZyb20gXCIuL3NyYy9zY2hlbWEudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuZXJhdGVkQnJhbmRQcm9maWxlIH0gZnJvbSBcIi4vc3JjL3NjaGVtYS50c1wiO1xuZXhwb3J0IHR5cGUgeyBTdHJ1Y3R1cmVkR2VuZXJhdGlvbk9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc3RydWN0dXJlZC50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5lcmF0b3JXb3JrZmxvd09wZXJhdGlvbnMsIEdlbmVyYXRvcldvcmtmbG93T3B0aW9ucywgR2VuZXJhdG9yV29ya2Zsb3cgfSBmcm9tIFwiLi9zcmMvd29ya2Zsb3cudHNcIjtcbiJdfQ==
36
+ export { DEFAULT_MAX_SOURCES, DEFAULT_SOURCE_MAX_LENGTH, MAX_SOURCES, MAX_SOURCE_MAX_LENGTH, ASSET_HTML_MAX_LENGTH, brandResearchQuery, researchBrand } from "./src/research.js";
37
+ export { brandRequestSubject, GENERATE_BRAND_TOOL_DESCRIPTION, GeneratedBrandProfileSchema } from "./src/schema.js";
38
+ export { generateStructured } from "./src/structured.js";
39
+ export { createGeneratorWorkflow } from "./src/workflow.js";
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyw2QkFBNkIsQ0FBQztBQUNoRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxHQUFHLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsMEJBQTBCLEVBQUUseUJBQXlCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUksT0FBTyxFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLHlCQUF5QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckksT0FBTyxFQUFFLDRCQUE0QixFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckksT0FBTyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuSixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpMLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwrQkFBK0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXpELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9hcHBraXQtZ2VuZXJhdG9yXCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuMTU3XCI7XG5leHBvcnQgKiBhcyBhc3NldHMgZnJvbSBcIi4vc3JjL2Fzc2V0cy50c1wiO1xuZXhwb3J0ICogYXMgY29uZmlnIGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCAqIGFzIGRhc2hib2FyZCBmcm9tIFwiLi9zcmMvZGFzaGJvYXJkLnRzXCI7XG5leHBvcnQgKiBhcyBkYXRhIGZyb20gXCIuL3NyYy9kYXRhLnRzXCI7XG5leHBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tIFwiLi9zcmMvZGVmYXVsdHMudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmVyYXRlIGZyb20gXCIuL3NyYy9nZW5lcmF0ZS50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWUgZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgKiBhcyBrcGkgZnJvbSBcIi4vc3JjL2twaS50c1wiO1xuZXhwb3J0ICogYXMgbmFtZXNwYWNlIGZyb20gXCIuL3NyYy9uYW1lc3BhY2UudHNcIjtcbmV4cG9ydCAqIGFzIG9wZXJhdGlvbnMgZnJvbSBcIi4vc3JjL29wZXJhdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIHBhbGV0dGUgZnJvbSBcIi4vc3JjL3BhbGV0dGUudHNcIjtcbmV4cG9ydCAqIGFzIHBsYW4gZnJvbSBcIi4vc3JjL3BsYW4udHNcIjtcbmV4cG9ydCAqIGFzIHBsdWdpbiBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgKiBhcyByZXNlYXJjaCBmcm9tIFwiLi9zcmMvcmVzZWFyY2gudHNcIjtcbmV4cG9ydCAqIGFzIHNjaGVtYSBmcm9tIFwiLi9zcmMvc2NoZW1hLnRzXCI7XG5leHBvcnQgKiBhcyBzdHJ1Y3R1cmVkIGZyb20gXCIuL3NyYy9zdHJ1Y3R1cmVkLnRzXCI7XG5leHBvcnQgKiBhcyB3b3JrZmxvdyBmcm9tIFwiLi9zcmMvd29ya2Zsb3cudHNcIjtcbmV4cG9ydCB7IGRpc2NvdmVyQnJhbmRBc3NldHMsIGRpc2NvdmVyTW9iaWxlQXBwVmlzdWFscyB9IGZyb20gXCIuL3NyYy9hc3NldHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgRGlzY292ZXJlZEJyYW5kQXNzZXRzLCBEaXNjb3ZlcmVkTW9iaWxlQXBwVmlzdWFscyB9IGZyb20gXCIuL3NyYy9hc3NldHMudHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfR0VORVJBVE9SX1RJTUVPVVRfTVMsIEdFTkVSQVRPUl9DT05GSUdfU0NIRU1BLCByZXNvbHZlR2VuZXJhdG9yQ29uZmlnIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5lcmF0b3JQbHVnaW5Db25maWcsIFJlc29sdmVkR2VuZXJhdG9yQ29uZmlnIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHsgYnVpbGRHZW5lcmF0b3JEYXNoYm9hcmQsIGNyZWF0ZUdlbmVyYXRvckRhc2hib2FyZCB9IGZyb20gXCIuL3NyYy9kYXNoYm9hcmQudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ3JlYXRlR2VuZXJhdG9yRGFzaGJvYXJkSW5wdXQgfSBmcm9tIFwiLi9zcmMvZGFzaGJvYXJkLnRzXCI7XG5leHBvcnQgeyBjb21waWxlR2VuZXJhdG9yVGFibGVTcWwsIGNvbXBpbGVNZXRyaWNWYWxpZGF0aW9uU3FsLCBleGVjdXRlR2VuZXJhdG9yU3RhdGVtZW50LCBtYXRlcmlhbGl6ZUdlbmVyYXRvckRhdGEgfSBmcm9tIFwiLi9zcmMvZGF0YS50c1wiO1xuZXhwb3J0IHsgQlJBTkRfQ0FDSEVfVFRMX1NFQ09ORFMsIEJSQU5EX0NBQ0hFX1ZFUlNJT04sIEJSQU5EX0dFTkVSQVRJT05fQVRURU1QVFMsIGJyYW5kR2VuZXJhdGlvblNldHRpbmdzIH0gZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgdHlwZSB7IEJyYW5kRXhlY3V0ZUNvbmZpZywgQnJhbmRFeGVjdXRpb25TZXR0aW5ncyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHsgQlJBTkRfU1lOVEhFU0lTX0lOU1RSVUNUSU9OUywgYnJhbmRTeW50aGVzaXNQcm9tcHQsIHN5bnRoZXNpemVCcmFuZFByb2ZpbGUsIGdlbmVyYXRlQnJhbmRQYWNrYWdlIH0gZnJvbSBcIi4vc3JjL2dlbmVyYXRlLnRzXCI7XG5leHBvcnQgdHlwZSB7IEJyYW5kU3ludGhlc2lzSW5wdXQsIEJyYW5kU3ludGhlc2l6ZXIsIEdlbmVyYXRlQnJhbmRQYWNrYWdlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9nZW5lcmF0ZS50c1wiO1xuZXhwb3J0IHsgYnVpbGRHZW5lcmF0b3JHZW5pZVNwYWNlLCBjcmVhdGVHZW5lcmF0b3JHZW5pZVNwYWNlIH0gZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgdHlwZSB7IENyZWF0ZUdlbmVyYXRvckdlbmllSW5wdXQgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB7IGtwaVJlc2VhcmNoUXVlcnksIHJlc2VhcmNoS3BpcyB9IGZyb20gXCIuL3NyYy9rcGkudHNcIjtcbmV4cG9ydCB0eXBlIHsgUmVzZWFyY2hLcGlzT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9rcGkudHNcIjtcbmV4cG9ydCB7IGdlbmVyYXRvclNjaGVtYU5hbWUsIHJlc29sdmVHZW5lcmF0b3JJZGVudGl0eSwgcHJvdmlzaW9uR2VuZXJhdG9yU2NoZW1hLCBwcm92aXNpb25HZW5lcmF0b3JTY2hlbWFXaXRoSWRlbnRpdHkgfSBmcm9tIFwiLi9zcmMvbmFtZXNwYWNlLnRzXCI7XG5leHBvcnQgdHlwZSB7IFByb3Zpc2lvblNjaGVtYUlucHV0LCBHZW5lcmF0b3JJZGVudGl0eSB9IGZyb20gXCIuL3NyYy9uYW1lc3BhY2UudHNcIjtcbmV4cG9ydCB7IEdlbmVyYXRvck9wZXJhdGlvbnMgfSBmcm9tIFwiLi9zcmMvb3BlcmF0aW9ucy50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5lcmF0b3JPcGVyYXRpb25zT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9vcGVyYXRpb25zLnRzXCI7XG5leHBvcnQgeyBjb2xvckNvbnRyYXN0UmF0aW8sIG5vcm1hbGl6ZUJyYW5kUGFsZXR0ZSB9IGZyb20gXCIuL3NyYy9wYWxldHRlLnRzXCI7XG5leHBvcnQgeyBwbGFuR2VuZXJhdG9yRGF0YSB9IGZyb20gXCIuL3NyYy9wbGFuLnRzXCI7XG5leHBvcnQgdHlwZSB7IFBsYW5HZW5lcmF0b3JEYXRhSW5wdXQgfSBmcm9tIFwiLi9zcmMvcGxhbi50c1wiO1xuZXhwb3J0IHsgR2VuZXJhdG9yUGx1Z2luLCBnZW5lcmF0b3IgfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX01BWF9TT1VSQ0VTLCBERUZBVUxUX1NPVVJDRV9NQVhfTEVOR1RILCBNQVhfU09VUkNFUywgTUFYX1NPVVJDRV9NQVhfTEVOR1RILCBBU1NFVF9IVE1MX01BWF9MRU5HVEgsIGJyYW5kUmVzZWFyY2hRdWVyeSwgcmVzZWFyY2hCcmFuZCB9IGZyb20gXCIuL3NyYy9yZXNlYXJjaC50c1wiO1xuZXhwb3J0IHR5cGUgeyBCcmFuZFJlc2VhcmNoQ2xpZW50LCBCcmFuZFJlc2VhcmNoT3B0aW9ucywgQnJhbmRQcm9ncmVzc1JlcG9ydGVyLCBCcmFuZFJlc2VhcmNoU291cmNlLCBCcmFuZFJlc2VhcmNoLCBCcmFuZFJlc2VhcmNoVmlzdWFsSW1hZ2UsIEJyYW5kUmVzZWFyY2hWaXN1YWxSZWZlcmVuY2UgfSBmcm9tIFwiLi9zcmMvcmVzZWFyY2gudHNcIjtcbmV4cG9ydCB7IGJyYW5kUmVxdWVzdFN1YmplY3QsIEdFTkVSQVRFX0JSQU5EX1RPT0xfREVTQ1JJUFRJT04sIEdlbmVyYXRlZEJyYW5kUHJvZmlsZVNjaGVtYSB9IGZyb20gXCIuL3NyYy9zY2hlbWEudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuZXJhdGVkQnJhbmRQcm9maWxlIH0gZnJvbSBcIi4vc3JjL3NjaGVtYS50c1wiO1xuZXhwb3J0IHsgZ2VuZXJhdGVTdHJ1Y3R1cmVkIH0gZnJvbSBcIi4vc3JjL3N0cnVjdHVyZWQudHNcIjtcbmV4cG9ydCB0eXBlIHsgU3RydWN0dXJlZEdlbmVyYXRpb25PcHRpb25zIH0gZnJvbSBcIi4vc3JjL3N0cnVjdHVyZWQudHNcIjtcbmV4cG9ydCB7IGNyZWF0ZUdlbmVyYXRvcldvcmtmbG93IH0gZnJvbSBcIi4vc3JjL3dvcmtmbG93LnRzXCI7XG5leHBvcnQgdHlwZSB7IEdlbmVyYXRvcldvcmtmbG93T3BlcmF0aW9ucywgR2VuZXJhdG9yV29ya2Zsb3dPcHRpb25zLCBHZW5lcmF0b3JXb3JrZmxvdyB9IGZyb20gXCIuL3NyYy93b3JrZmxvdy50c1wiO1xuIl19
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import type { BrandAssetSet } from "@dbx-tools/shared-core/brand-utils";
6
+ import type { BrandAssetSet } from "@dbx-tools/shared-core";
7
7
  /** Asset references extracted from one official HTML page. */
8
8
  export interface DiscoveredBrandAssets {
9
9
  /** Theme-aware icon reference. */
package/lib/src/assets.js CHANGED
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { object } from "@dbx-tools/shared-core";
6
+ import { isRecord } from "@dbx-tools/shared-core";
7
7
  import { load } from "cheerio";
8
8
  /** Normalize a page-relative asset reference to a public HTTPS URL. */
9
9
  function assetUrl(value, baseUrl) {
@@ -49,7 +49,7 @@ function jsonLdAssetUrls(value, depth = 0, assetContext = false) {
49
49
  if (Array.isArray(value)) {
50
50
  return value.flatMap((entry) => jsonLdAssetUrls(entry, depth + 1, assetContext));
51
51
  }
52
- if (!object.isRecord(value))
52
+ if (!isRecord(value))
53
53
  return [];
54
54
  const direct = assetContext
55
55
  ? [value.url, value.contentUrl].flatMap((entry) => (typeof entry === "string" ? [entry] : []))
@@ -70,7 +70,7 @@ function jsonLdMobileImageUrls(value, depth = 0, imageContext = false) {
70
70
  if (Array.isArray(value)) {
71
71
  return value.flatMap((entry) => jsonLdMobileImageUrls(entry, depth + 1, imageContext));
72
72
  }
73
- if (!object.isRecord(value))
73
+ if (!isRecord(value))
74
74
  return [];
75
75
  const direct = imageContext
76
76
  ? [value.url, value.contentUrl].flatMap((entry) => (typeof entry === "string" ? [entry] : []))
@@ -221,4 +221,4 @@ export function discoverMobileAppVisuals(html, pageUrl) {
221
221
  new URL(pageUrl).hostname;
222
222
  return { appName, imageUrls: images.slice(0, 6) };
223
223
  }
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Fzc2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWhELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFvQi9CLHVFQUF1RTtBQUN2RSxTQUFTLFFBQVEsQ0FBQyxLQUF5QixFQUFFLE9BQWU7SUFDMUQsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNyQyxJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEQsT0FBTyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDMUUsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBRUQscURBQXFEO0FBQ3JELFNBQVMsZUFBZSxDQUFDLFVBQW9CLEVBQUUsS0FBeUIsRUFBRSxPQUFlO0lBQ3ZGLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsSUFBSSxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELHdFQUF3RTtBQUN4RSxTQUFTLG1CQUFtQixDQUFDLEtBQWE7SUFDeEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsSUFBSSwwQkFBMEIsQ0FBQyxJ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LE9BQU8sQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRO1lBQUUsU0FBUztRQUN4QixNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQUUsU0FBUztRQUN2QyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUNYLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hHLE1BQU0sT0FBTyxHQUNYLE9BQU8sQ0FBQyxPQUFPLENBQUMsbURBQW1ELEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFO1FBQy9FLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUM1QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERldGVybWluaXN0aWMgYnJhbmQtYXNzZXQgZGlzY292ZXJ5IGZyb20gYW4gb2ZmaWNpYWwgcGFnZS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgb2JqZWN0IH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRBc3NldFNldCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlL2JyYW5kLXV0aWxzXCI7XG5pbXBvcnQgeyBsb2FkIH0gZnJvbSBcImNoZWVyaW9cIjtcblxuLyoqIEFzc2V0IHJlZmVyZW5jZXMgZXh0cmFjdGVkIGZyb20gb25lIG9mZmljaWFsIEhUTUwgcGFnZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzY292ZXJlZEJyYW5kQXNzZXRzIHtcbiAgLyoqIFRoZW1lLWF3YXJlIGljb24gcmVmZXJlbmNlLiAqL1xuICBpY29uOiBCcmFuZEFzc2V0U2V0O1xuICAvKiogVGhlbWUtYXdhcmUgbG9nbyByZWZlcmVuY2UuICovXG4gIGxvZ286IEJyYW5kQXNzZXRTZXQ7XG4gIC8qKiBCcm93c2VyIGZhdmljb24gcmVmZXJlbmNlLiAqL1xuICBmYXZpY29uOiBzdHJpbmc7XG59XG5cbi8qKiBWaXN1YWwgcmVmZXJlbmNlcyBleHRyYWN0ZWQgZnJvbSBhbiBvZmZpY2lhbCBtb2JpbGUtc3RvcmUgcGFnZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzY292ZXJlZE1vYmlsZUFwcFZpc3VhbHMge1xuICAvKiogU3RvcmUgbGlzdGluZyBhcHBsaWNhdGlvbiBuYW1lLiAqL1xuICBhcHBOYW1lOiBzdHJpbmc7XG4gIC8qKiBBcHAgaWNvbiBhbmQgc2NyZWVuc2hvdCBVUkxzIGluIHBhZ2Ugb3JkZXIuICovXG4gIGltYWdlVXJsczogc3RyaW5nW107XG59XG5cbi8qKiBOb3JtYWxpemUgYSBwYWdlLXJlbGF0aXZlIGFzc2V0IHJlZmVyZW5jZSB0byBhIHB1YmxpYyBIVFRQUyBVUkwuICovXG5mdW5jdGlvbiBhc3NldFVybCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkLCBiYXNlVXJsOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIXZhbHVlPy50cmltKCkpIHJldHVybiB1bmRlZmluZWQ7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBuZXcgVVJMKHZhbHVlLnRyaW0oKSwgYmFzZVVybCk7XG4gICAgcmV0dXJuIHJlc29sdmVkLnByb3RvY29sID09PSBcImh0dHBzOlwiID8gcmVzb2x2ZWQudG9TdHJpbmcoKSA6IHVuZGVmaW5lZDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKiogQWRkIGEgbm9ybWFsaXplZCBVUkwgdG8gYSBjYW5kaWRhdGUgbGlzdCBvbmNlLiAqL1xuZnVuY3Rpb24gYXBwZW5kQ2FuZGlkYXRlKGNhbmRpZGF0ZXM6IHN0cmluZ1tdLCB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkLCBiYXNlVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgcmVzb2x2ZWQgPSBhc3NldFVybCh2YWx1ZSwgYmFzZVVybCk7XG4gIGlmIChyZXNvbHZlZCAmJiAhY2FuZGlkYXRlcy5pbmNsdWRlcyhyZXNvbHZlZCkpIGNhbmRpZGF0ZXMucHVzaChyZXNvbHZlZCk7XG59XG5cbi8qKiBDb2xsYXBzZSBDRE4gc2l6ZSBhbmQgZm9ybWF0IHZhcmlhbnRzIG9mIHRoZSBzYW1lIG1vYmlsZSBhcnR3b3JrLiAqL1xuZnVuY3Rpb24gbW9iaWxlSW1hZ2VJZGVudGl0eSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgdXJsID0gbmV3IFVSTCh2YWx1ZSk7XG4gIGlmICgvZ29vZ2xldXNlcmNvbnRlbnRcXC5jb20kL2kudGVzdCh1cmwuaG9zdG5hbWUpKSB7XG4gICAgcmV0dXJuIGAke3VybC5vcmlnaW59JHt1cmwucGF0aG5hbWUucmVwbGFjZSgvPVteL10rJC8sIFwiXCIpfWA7XG4gIH1cbiAgaWYgKC9tenN0YXRpY1xcLmNvbSQvaS50ZXN0KHVybC5ob3N0bmFtZSkpIHtcbiAgICByZXR1cm4gYCR7dXJsLm9yaWdpbn0ke3VybC5wYXRobmFtZS5yZXBsYWNlKC9cXC9bXi9dKyQvLCBcIlwiKX1gO1xuICB9XG4gIHJldHVybiB1cmwudG9TdHJpbmcoKTtcbn1cblxuLyoqXG4gKiBGaW5kIGxvZ28tbGlrZSBVUkxzIG5lc3RlZCBpbiBKU09OLUxEIG9yZ2FuaXphdGlvbiBtZXRhZGF0YS5cbiAqXG4gKiBKU09OLUxEIHBlcm1pdHMgYGxvZ29gIGFuZCBgaW1hZ2VgIHRvIGJlIGEgVVJMLCBhbiBvYmplY3Qgd2l0aCBhIGB1cmxgIG9yXG4gKiBgY29udGVudFVybGAsIG9yIGFuIGFycmF5LiBUaGUgYm91bmRlZCByZWN1cnNpdmUgd2FsayBhY2NlcHRzIHRob3NlIGZvcm1zXG4gKiB3aXRob3V0IHRyZWF0aW5nIHVucmVsYXRlZCBzdHJpbmdzIGVsc2V3aGVyZSBpbiB0aGUgZG9jdW1lbnQgYXMgYXNzZXRzLlxuICovXG5mdW5jdGlvbiBqc29uTGRBc3NldFVybHModmFsdWU6IHVua25vd24sIGRlcHRoID0gMCwgYXNzZXRDb250ZXh0ID0gZmFsc2UpOiBzdHJpbmdbXSB7XG4gIGlmIChkZXB0aCA+IDggfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFtdO1xuICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXNzZXRDb250ZXh0ID8gW3ZhbHVlXSA6IFtdO1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuZmxhdE1hcCgoZW50cnkpID0+IGpzb25MZEFzc2V0VXJscyhlbnRyeSwgZGVwdGggKyAxLCBhc3NldENvbnRleHQpKTtcbiAgfVxuICBpZiAoIW9iamVjdC5pc1JlY29yZCh2YWx1ZSkpIHJldHVybiBbXTtcblxuICBjb25zdCBkaXJlY3QgPSBhc3NldENvbnRleHRcbiAgICA/IFt2YWx1ZS51cmwsIHZhbHVlLmNvbnRlbnRVcmxdLmZsYXRNYXAoKGVudHJ5KSA9PiAodHlwZW9mIGVudHJ5ID09PSBcInN0cmluZ1wiID8gW2VudHJ5XSA6IFtdKSlcbiAgICA6IFtdO1xuICByZXR1cm4gW1xuICAgIC4uLmRpcmVjdCxcbiAgICAuLi5qc29uTGRBc3NldFVybHModmFsdWUubG9nbywgZGVwdGggKyAxLCB0cnVlKSxcbiAgICAuLi5qc29uTGRBc3NldFVybHModmFsdWUuaW1hZ2UsIGRlcHRoICsgMSwgdHJ1ZSksXG4gICAgLi4uanNvbkxkQXNzZXRVcmxzKHZhbHVlW1wiQGdyYXBoXCJdLCBkZXB0aCArIDEsIGZhbHNlKSxcbiAgXTtcbn1cblxuLyoqIENvbGxlY3QgbW9iaWxlIHNjcmVlbnNob3RzIGFuZCBpbWFnZSBvYmplY3RzIGZyb20gSlNPTi1MRC4gKi9cbmZ1bmN0aW9uIGpzb25MZE1vYmlsZUltYWdlVXJscyh2YWx1ZTogdW5rbm93biwgZGVwdGggPSAwLCBpbWFnZUNvbnRleHQgPSBmYWxzZSk6IHN0cmluZ1tdIHtcbiAgaWYgKGRlcHRoID4gMTAgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFtdO1xuICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSByZXR1cm4gaW1hZ2VDb250ZXh0ID8gW3ZhbHVlXSA6IFtdO1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuZmxhdE1hcCgoZW50cnkpID0+IGpzb25MZE1vYmlsZUltYWdlVXJscyhlbnRyeSwgZGVwdGggKyAxLCBpbWFnZUNvbnRleHQpKTtcbiAgfVxuICBpZiAoIW9iamVjdC5pc1JlY29yZCh2YWx1ZSkpIHJldHVybiBbXTtcbiAgY29uc3QgZGlyZWN0ID0gaW1hZ2VDb250ZXh0XG4gICAgPyBbdmFsdWUudXJsLCB2YWx1ZS5jb250ZW50VXJsXS5mbGF0TWFwKChlbnRyeSkgPT4gKHR5cGVvZiBlbnRyeSA9PT0gXCJzdHJpbmdcIiA/IFtlbnRyeV0gOiBbXSkpXG4gICAgOiBbXTtcbiAgcmV0dXJuIFtcbiAgICAuLi5kaXJlY3QsXG4gICAgLi4uanNvbkxkTW9iaWxlSW1hZ2VVcmxzKHZhbHVlLnNjcmVlbnNob3QsIGRlcHRoICsgMSwgdHJ1ZSksXG4gICAgLi4uanNvbkxkTW9iaWxlSW1hZ2VVcmxzKHZhbHVlLmltYWdlLCBkZXB0aCArIDEsIHRydWUpLFxuICAgIC4uLmpzb25MZE1vYmlsZUltYWdlVXJscyh2YWx1ZS50aHVtYm5haWxVcmwsIGRlcHRoICsgMSwgdHJ1ZSksXG4gICAgLi4uanNvbkxkTW9iaWxlSW1hZ2VVcmxzKHZhbHVlW1wiQGdyYXBoXCJdLCBkZXB0aCArIDEsIGZhbHNlKSxcbiAgXTtcbn1cblxuLyoqXG4gKiBEaXNjb3ZlciBpY29uLCBsb2dvLCBhbmQgZmF2aWNvbiBVUkxzIGZyb20gYW4gb2ZmaWNpYWwgcGFnZS5cbiAqXG4gKiBUaGUgZnVuY3Rpb24gb25seSByZXR1cm5zIFVSTHMgcHJlc2VudCBpbiBwYWdlIG1ldGFkYXRhIG9yIG1hcmt1cC4gV2hlbiB0aGVcbiAqIHBhZ2Ugb21pdHMgYW4gaWNvbiwgaXQgdXNlcyB0aGUgY29udmVudGlvbmFsIGAvZmF2aWNvbi5pY29gIFVSTCBvbiB0aGUgc2FtZVxuICogb3JpZ2luLiBUaGUgbG9nbyBmYWxscyBiYWNrIHRvIHRoYXQgaWNvbiBzbyBhIGdlbmVyYXRlZCBjb250ZXh0IG5ldmVyIHBvaW50c1xuICogYXQgdGhlIGRieC10b29scyBkZWZhdWx0IGFydHdvcmsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaXNjb3ZlckJyYW5kQXNzZXRzKGh0bWw6IHN0cmluZywgcGFnZVVybDogc3RyaW5nKTogRGlzY292ZXJlZEJyYW5kQXNzZXRzIHtcbiAgY29uc3QgJCA9IGxvYWQoaHRtbCk7XG4gIGNvbnN0IGljb25zOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBsb2dvczogc3RyaW5nW10gPSBbXTtcblxuICAkKFwibGlua1tyZWxdXCIpLmVhY2goKF9pbmRleCwgZWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHJlbCA9ICgkKGVsZW1lbnQpLmF0dHIoXCJyZWxcIikgPz8gXCJcIikudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAocmVsLnNwbGl0KC9cXHMrLykuc29tZSgocGFydCkgPT4gcGFydCA9PT0gXCJpY29uXCIgfHwgcGFydCA9PT0gXCJhcHBsZS10b3VjaC1pY29uXCIpKSB7XG4gICAgICBhcHBlbmRDYW5kaWRhdGUoaWNvbnMsICQoZWxlbWVudCkuYXR0cihcImhyZWZcIiksIHBhZ2VVcmwpO1xuICAgIH1cbiAgfSk7XG5cbiAgZm9yIChjb25zdCBzZWxlY3RvciBvZiBbXG4gICAgJ21ldGFbcHJvcGVydHk9XCJvZzppbWFnZVwiXScsXG4gICAgJ21ldGFbcHJvcGVydHk9XCJvZzpsb2dvXCJdJyxcbiAgICAnbWV0YVtuYW1lPVwidHdpdHRlcjppbWFnZVwiXScsXG4gIF0pIHtcbiAgICAkKHNlbGVjdG9yKS5lYWNoKChfaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICAgIGFwcGVuZENhbmRpZGF0ZShsb2dvcywgJChlbGVtZW50KS5hdHRyKFwiY29udGVudFwiKSwgcGFnZVVybCk7XG4gICAgfSk7XG4gIH1cblxuICAkKFwiaW1nXCIpLmVhY2goKF9pbmRleCwgZWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBbXG4gICAgICAkKGVsZW1lbnQpLmF0dHIoXCJhbHRcIiksXG4gICAgICAkKGVsZW1lbnQpLmF0dHIoXCJjbGFzc1wiKSxcbiAgICAgICQoZWxlbWVudCkuYXR0cihcImlkXCIpLFxuICAgICAgJChlbGVtZW50KS5hdHRyKFwiZGF0YS10ZXN0aWRcIiksXG4gICAgXVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLmpvaW4oXCIgXCIpO1xuICAgIGlmICgvXFxiKD86YnJhbmR8bG9nb3x3b3JkbWFyaylcXGIvaS50ZXN0KGRlc2NyaXB0b3IpKSB7XG4gICAgICBhcHBlbmRDYW5kaWRhdGUobG9nb3MsICQoZWxlbWVudCkuYXR0cihcInNyY1wiKSwgcGFnZVVybCk7XG4gICAgfVxuICB9KTtcblxuICAkKCdzY3JpcHRbdHlwZT1cImFwcGxpY2F0aW9uL2xkK2pzb25cIl0nKS5lYWNoKChfaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdmFsdWU6IHVua25vd24gPSBKU09OLnBhcnNlKCQoZWxlbWVudCkudGV4dCgpKTtcbiAgICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGpzb25MZEFzc2V0VXJscyh2YWx1ZSkpIHtcbiAgICAgICAgYXBwZW5kQ2FuZGlkYXRlKGxvZ29zLCBjYW5kaWRhdGUsIHBhZ2VVcmwpO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgZmFsbGJhY2tJY29uID0gbmV3IFVSTChcIi9mYXZpY29uLmljb1wiLCBwYWdlVXJsKS50b1N0cmluZygpO1xuICBjb25zdCBpY29uID0gaWNvbnNbMF0gPz8gbG9nb3NbMF0gPz8gZmFsbGJhY2tJY29uO1xuICBjb25zdCBsb2dvID0gbG9nb3NbMF0gPz8gaWNvbnNbMF0gPz8gZmFsbGJhY2tJY29uO1xuICByZXR1cm4ge1xuICAgIGljb246IHsgbGlnaHQ6IGljb24gfSxcbiAgICBsb2dvOiB7IGxpZ2h0OiBsb2dvIH0sXG4gICAgZmF2aWNvbjogaWNvbixcbiAgfTtcbn1cblxuLyoqIEV4dHJhY3QgYW4gYXBwIG5hbWUgcGx1cyByZXByZXNlbnRhdGl2ZSBzY3JlZW5zaG90cy9pY29ucyBmcm9tIGEgc3RvcmUgcGFnZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaXNjb3Zlck1vYmlsZUFwcFZpc3VhbHMoXG4gIGh0bWw6IHN0cmluZyxcbiAgcGFnZVVybDogc3RyaW5nLFxuKTogRGlzY292ZXJlZE1vYmlsZUFwcFZpc3VhbHMge1xuICBjb25zdCAkID0gbG9hZChodG1sKTtcbiAgY29uc3QgbWV0YWRhdGFJbWFnZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHN0cnVjdHVyZWRJbWFnZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHNjcmVlbnNob3RJbWFnZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IGljb25JbWFnZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IG90aGVyU3RvcmVJbWFnZXM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3Qgc2VsZWN0b3Igb2YgWydtZXRhW3Byb3BlcnR5PVwib2c6aW1hZ2VcIl0nLCAnbWV0YVtuYW1lPVwidHdpdHRlcjppbWFnZVwiXSddKSB7XG4gICAgJChzZWxlY3RvcikuZWFjaCgoX2luZGV4LCBlbGVtZW50KSA9PiB7XG4gICAgICBhcHBlbmRDYW5kaWRhdGUobWV0YWRhdGFJbWFnZXMsICQoZWxlbWVudCkuYXR0cihcImNvbnRlbnRcIiksIHBhZ2VVcmwpO1xuICAgIH0pO1xuICB9XG4gICQoJ3NjcmlwdFt0eXBlPVwiYXBwbGljYXRpb24vbGQranNvblwiXScpLmVhY2goKF9pbmRleCwgZWxlbWVudCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB2YWx1ZTogdW5rbm93biA9IEpTT04ucGFyc2UoJChlbGVtZW50KS50ZXh0KCkpO1xuICAgICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YganNvbkxkTW9iaWxlSW1hZ2VVcmxzKHZhbHVlKSkge1xuICAgICAgICBhcHBlbmRDYW5kaWRhdGUoc3RydWN0dXJlZEltYWdlcywgY2FuZGlkYXRlLCBwYWdlVXJsKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH0pO1xuICAkKFwiaW1nXCIpLmVhY2goKF9pbmRleCwgZWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBbXG4gICAgICAkKGVsZW1lbnQpLmF0dHIoXCJhbHRcIiksXG4gICAgICAkKGVsZW1lbnQpLmF0dHIoXCJjbGFzc1wiKSxcbiAgICAgICQoZWxlbWVudCkuYXR0cihcImFyaWEtbGFiZWxcIiksXG4gICAgXVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLmpvaW4oXCIgXCIpO1xuICAgIGNvbnN0IHNvdXJjZSA9ICQoZWxlbWVudCkuYXR0cihcInNyY1wiKSA/PyAkKGVsZW1lbnQpLmF0dHIoXCJkYXRhLXNyY1wiKTtcbiAgICBjb25zdCBpc1N0b3JlSW1hZ2VIb3N0ID0gLyg/Om16c3RhdGljfGdncGh0fGdvb2dsZXVzZXJjb250ZW50KVxcLi9pLnRlc3Qoc291cmNlID8/IFwiXCIpO1xuICAgIGNvbnN0IHRhcmdldCA9IC9cXGIoPzpwaG9uZXxzY3JlZW58c2NyZWVuc2hvdHx0YWJsZXQpXFxiL2kudGVzdChkZXNjcmlwdG9yKVxuICAgICAgPyBzY3JlZW5zaG90SW1hZ2VzXG4gICAgICA6IC9cXGIoPzphcHB8aWNvbilcXGIvaS50ZXN0KGRlc2NyaXB0b3IpXG4gICAgICAgID8gaWNvbkltYWdlc1xuICAgICAgICA6IGlzU3RvcmVJbWFnZUhvc3RcbiAgICAgICAgICA/IG90aGVyU3RvcmVJbWFnZXNcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGFyZ2V0KSB7XG4gICAgICBhcHBlbmRDYW5kaWRhdGUodGFyZ2V0LCBzb3VyY2UsIHBhZ2VVcmwpO1xuICAgICAgY29uc3Qgc3Jjc2V0ID0gKCQoZWxlbWVudCkuYXR0cihcInNyY3NldFwiKSA/PyAkKGVsZW1lbnQpLmF0dHIoXCJkYXRhLXNyY3NldFwiKSlcbiAgICAgICAgPy5zcGxpdChcIixcIilcbiAgICAgICAgLmF0KC0xKVxuICAgICAgICA/LnRyaW0oKVxuICAgICAgICAuc3BsaXQoL1xccysvKVswXTtcbiAgICAgIGFwcGVuZENhbmRpZGF0ZSh0YXJnZXQsIHNyY3NldCwgcGFnZVVybCk7XG4gICAgfVxuICB9KTtcbiAgJChcInBpY3R1cmUgc291cmNlW3NyY3NldF1cIikuZWFjaCgoX2luZGV4LCBlbGVtZW50KSA9PiB7XG4gICAgY29uc3Qgc3Jjc2V0ID0gJChlbGVtZW50KS5hdHRyKFwic3Jjc2V0XCIpPy5zcGxpdChcIixcIikuYXQoLTEpPy50cmltKCkuc3BsaXQoL1xccysvKVswXTtcbiAgICBhcHBlbmRDYW5kaWRhdGUoc2NyZWVuc2hvdEltYWdlcywgc3Jjc2V0LCBwYWdlVXJsKTtcbiAgfSk7XG4gIGNvbnN0IGltYWdlczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3Qgc2VlbkltYWdlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBbXG4gICAgLi4ubWV0YWRhdGFJbWFnZXMuc2xpY2UoMCwgMSksXG4gICAgLi4uc2NyZWVuc2hvdEltYWdlcyxcbiAgICAuLi5pY29uSW1hZ2VzLFxuICAgIC4uLnN0cnVjdHVyZWRJbWFnZXMsXG4gICAgLi4ub3RoZXJTdG9yZUltYWdlcyxcbiAgXSkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gYXNzZXRVcmwoY2FuZGlkYXRlLCBwYWdlVXJsKTtcbiAgICBpZiAoIXJlc29sdmVkKSBjb250aW51ZTtcbiAgICBjb25zdCBpZGVudGl0eSA9IG1vYmlsZUltYWdlSWRlbnRpdHkocmVzb2x2ZWQpO1xuICAgIGlmIChzZWVuSW1hZ2VzLmhhcyhpZGVudGl0eSkpIGNvbnRpbnVlO1xuICAgIHNlZW5JbWFnZXMuYWRkKGlkZW50aXR5KTtcbiAgICBpbWFnZXMucHVzaChyZXNvbHZlZCk7XG4gIH1cbiAgY29uc3QgcmF3TmFtZSA9XG4gICAgJCgnbWV0YVtwcm9wZXJ0eT1cIm9nOnRpdGxlXCJdJykuYXR0cihcImNvbnRlbnRcIikgPz8gJChcImgxXCIpLmZpcnN0KCkudGV4dCgpID8/ICQoXCJ0aXRsZVwiKS50ZXh0KCk7XG4gIGNvbnN0IGFwcE5hbWUgPVxuICAgIHJhd05hbWUucmVwbGFjZSgvXFxzKyg/Om9uIHRoZSBBcHAgU3RvcmV8LSBBcHBzIG9uIEdvb2dsZSBQbGF5KS4qJC9pLCBcIlwiKS50cmltKCkgfHxcbiAgICBuZXcgVVJMKHBhZ2VVcmwpLmhvc3RuYW1lO1xuICByZXR1cm4geyBhcHBOYW1lLCBpbWFnZVVybHM6IGltYWdlcy5zbGljZSgwLCA2KSB9O1xufVxuIl19
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Fzc2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWxELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFvQi9CLHVFQUF1RTtBQUN2RSxTQUFTLFFBQVEsQ0FBQyxLQUF5QixFQUFFLE9BQWU7SUFDMUQsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNyQyxJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEQsT0FBTyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDMUUsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBRUQscURBQXFEO0FBQ3JELFNBQVMsZUFBZSxDQUFDLFVBQW9CLEVBQUUsS0FBeUIsRUFBRSxPQUFlO0lBQ3ZGLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsSUFBSSxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELHdFQUF3RTtBQUN4RSxTQUFTLG1CQUFtQixDQUFDLEtBQWE7SUFDeEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsSUFBSSwwQkFBMEIsQ0FBQyxJ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QyxJQUFJLENBQUMsUUFBUTtZQUFFLFNBQVM7UUFDeEIsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUFFLFNBQVM7UUFDdkMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FDWCxDQUFDLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoRyxNQUFNLE9BQU8sR0FDWCxPQUFPLENBQUMsT0FBTyxDQUFDLG1EQUFtRCxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRTtRQUMvRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDNUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZXRlcm1pbmlzdGljIGJyYW5kLWFzc2V0IGRpc2NvdmVyeSBmcm9tIGFuIG9mZmljaWFsIHBhZ2UuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGlzUmVjb3JkIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRBc3NldFNldCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBsb2FkIH0gZnJvbSBcImNoZWVyaW9cIjtcblxuLyoqIEFzc2V0IHJlZmVyZW5jZXMgZXh0cmFjdGVkIGZyb20gb25lIG9mZmljaWFsIEhUTUwgcGFnZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzY292ZXJlZEJyYW5kQXNzZXRzIHtcbiAgLyoqIFRoZW1lLWF3YXJlIGljb24gcmVmZXJlbmNlLiAqL1xuICBpY29uOiBCcmFuZEFzc2V0U2V0O1xuICAvKiogVGhlbWUtYXdhcmUgbG9nbyByZWZlcmVuY2UuICovXG4gIGxvZ286IEJyYW5kQXNzZXRTZXQ7XG4gIC8qKiBCcm93c2VyIGZhdmljb24gcmVmZXJlbmNlLiAqL1xuICBmYXZpY29uOiBzdHJpbmc7XG59XG5cbi8qKiBWaXN1YWwgcmVmZXJlbmNlcyBleHRyYWN0ZWQgZnJvbSBhbiBvZmZpY2lhbCBtb2JpbGUtc3RvcmUgcGFnZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzY292ZXJlZE1vYmlsZUFwcFZpc3VhbHMge1xuICAvKiogU3RvcmUgbGlzdGluZyBhcHBsaWNhdGlvbiBuYW1lLiAqL1xuICBhcHBOYW1lOiBzdHJpbmc7XG4gIC8qKiBBcHAgaWNvbiBhbmQgc2NyZWVuc2hvdCBVUkxzIGluIHBhZ2Ugb3JkZXIuICovXG4gIGltYWdlVXJsczogc3RyaW5nW107XG59XG5cbi8qKiBOb3JtYWxpemUgYSBwYWdlLXJlbGF0aXZlIGFzc2V0IHJlZmVyZW5jZSB0byBhIHB1YmxpYyBIVFRQUyBVUkwuICovXG5mdW5jdGlvbiBhc3NldFVybCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkLCBiYXNlVXJsOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIXZhbHVlPy50cmltKCkpIHJldHVybiB1bmRlZmluZWQ7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBuZXcgVVJMKHZhbHVlLnRyaW0oKSwgYmFzZVVybCk7XG4gICAgcmV0dXJuIHJlc29sdmVkLnByb3RvY29sID09PSBcImh0dHBzOlwiID8gcmVzb2x2ZWQudG9TdHJpbmcoKSA6IHVuZGVmaW5lZDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKiogQWRkIGEgbm9ybWFsaXplZCBVUkwgdG8gYSBjYW5kaWRhdGUgbGlzdCBvbmNlLiAqL1xuZnVuY3Rpb24gYXBwZW5kQ2FuZGlkYXRlKGNhbmRpZGF0ZXM6IHN0cmluZ1tdLCB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkLCBiYXNlVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgcmVzb2x2ZWQgPSBhc3NldFVybCh2YWx1ZSwgYmFzZVVybCk7XG4gIGlmIChyZXNvbHZlZCAmJiAhY2FuZGlkYXRlcy5pbmNsdWRlcyhyZXNvbHZlZCkpIGNhbmRpZGF0ZXMucHVzaChyZXNvbHZlZCk7XG59XG5cbi8qKiBDb2xsYXBzZSBDRE4gc2l6ZSBhbmQgZm9ybWF0IHZhcmlhbnRzIG9mIHRoZSBzYW1lIG1vYmlsZSBhcnR3b3JrLiAqL1xuZnVuY3Rpb24gbW9iaWxlSW1hZ2VJZGVudGl0eSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgdXJsID0gbmV3IFVSTCh2YWx1ZSk7XG4gIGlmICgvZ29vZ2xldXNlcmNvbnRlbnRcXC5jb20kL2kudGVzdCh1cmwuaG9zdG5hbWUpKSB7XG4gICAgcmV0dXJuIGAke3VybC5vcmlnaW59JHt1cmwucGF0aG5hbWUucmVwbGFjZSgvPVteL10rJC8sIFwiXCIpfWA7XG4gIH1cbiAgaWYgKC9tenN0YXRpY1xcLmNvbSQvaS50ZXN0KHVybC5ob3N0bmFtZSkpIHtcbiAgICByZXR1cm4gYCR7dXJsLm9yaWdpbn0ke3VybC5wYXRobmFtZS5yZXBsYWNlKC9cXC9bXi9dKyQvLCBcIlwiKX1gO1xuICB9XG4gIHJldHVybiB1cmwudG9TdHJpbmcoKTtcbn1cblxuLyoqXG4gKiBGaW5kIGxvZ28tbGlrZSBVUkxzIG5lc3RlZCBpbiBKU09OLUxEIG9yZ2FuaXphdGlvbiBtZXRhZGF0YS5cbiAqXG4gKiBKU09OLUxEIHBlcm1pdHMgYGxvZ29gIGFuZCBgaW1hZ2VgIHRvIGJlIGEgVVJMLCBhbiBvYmplY3Qgd2l0aCBhIGB1cmxgIG9yXG4gKiBgY29udGVudFVybGAsIG9yIGFuIGFycmF5LiBUaGUgYm91bmRlZCByZWN1cnNpdmUgd2FsayBhY2NlcHRzIHRob3NlIGZvcm1zXG4gKiB3aXRob3V0IHRyZWF0aW5nIHVucmVsYXRlZCBzdHJpbmdzIGVsc2V3aGVyZSBpbiB0aGUgZG9jdW1lbnQgYXMgYXNzZXRzLlxuICovXG5mdW5jdGlvbiBqc29uTGRBc3NldFVybHModmFsdWU6IHVua25vd24sIGRlcHRoID0gMCwgYXNzZXRDb250ZXh0ID0gZmFsc2UpOiBzdHJpbmdbXSB7XG4gIGlmIChkZXB0aCA+IDggfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFtdO1xuICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXNzZXRDb250ZXh0ID8gW3ZhbHVlXSA6IFtdO1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuZmxhdE1hcCgoZW50cnkpID0+IGpzb25MZEFzc2V0VXJscyhlbnRyeSwgZGVwdGggKyAxLCBhc3NldENvbnRleHQpKTtcbiAgfVxuICBpZiAoIWlzUmVjb3JkKHZhbHVlKSkgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IGRpcmVjdCA9IGFzc2V0Q29udGV4dFxuICAgID8gW3ZhbHVlLnVybCwgdmFsdWUuY29udGVudFVybF0uZmxhdE1hcCgoZW50cnkpID0+ICh0eXBlb2YgZW50cnkgPT09IFwic3RyaW5nXCIgPyBbZW50cnldIDogW10pKVxuICAgIDogW107XG4gIHJldHVybiBbXG4gICAgLi4uZGlyZWN0LFxuICAgIC4uLmpzb25MZEFzc2V0VXJscyh2YWx1ZS5sb2dvLCBkZXB0aCArIDEsIHRydWUpLFxuICAgIC4uLmpzb25MZEFzc2V0VXJscyh2YWx1ZS5pbWFnZSwgZGVwdGggKyAxLCB0cnVlKSxcbiAgICAuLi5qc29uTGRBc3NldFVybHModmFsdWVbXCJAZ3JhcGhcIl0sIGRlcHRoICsgMSwgZmFsc2UpLFxuICBdO1xufVxuXG4vKiogQ29sbGVjdCBtb2JpbGUgc2NyZWVuc2hvdHMgYW5kIGltYWdlIG9iamVjdHMgZnJvbSBKU09OLUxELiAqL1xuZnVuY3Rpb24ganNvbkxkTW9iaWxlSW1hZ2VVcmxzKHZhbHVlOiB1bmtub3duLCBkZXB0aCA9IDAsIGltYWdlQ29udGV4dCA9IGZhbHNlKTogc3RyaW5nW10ge1xuICBpZiAoZGVwdGggPiAxMCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gW107XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHJldHVybiBpbWFnZUNvbnRleHQgPyBbdmFsdWVdIDogW107XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5mbGF0TWFwKChlbnRyeSkgPT4ganNvbkxkTW9iaWxlSW1hZ2VVcmxzKGVudHJ5LCBkZXB0aCArIDEsIGltYWdlQ29udGV4dCkpO1xuICB9XG4gIGlmICghaXNSZWNvcmQodmFsdWUpKSByZXR1cm4gW107XG4gIGNvbnN0IGRpcmVjdCA9IGltYWdlQ29udGV4dFxuICAgID8gW3ZhbHVlLnVybCwgdmFsdWUuY29udGVudFVybF0uZmxhdE1hcCgoZW50cnkpID0+ICh0eXBlb2YgZW50cnkgPT09IFwic3RyaW5nXCIgPyBbZW50cnldIDogW10pKVxuICAgIDogW107XG4gIHJldHVybiBbXG4gICAgLi4uZGlyZWN0LFxuICAgIC4uLmpzb25MZE1vYmlsZUltYWdlVXJscyh2YWx1ZS5zY3JlZW5zaG90LCBkZXB0aCArIDEsIHRydWUpLFxuICAgIC4uLmpzb25MZE1vYmlsZUltYWdlVXJscyh2YWx1ZS5pbWFnZSwgZGVwdGggKyAxLCB0cnVlKSxcbiAgICAuLi5qc29uTGRNb2JpbGVJbWFnZVVybHModmFsdWUudGh1bWJuYWlsVXJsLCBkZXB0aCArIDEsIHRydWUpLFxuICAgIC4uLmpzb25MZE1vYmlsZUltYWdlVXJscyh2YWx1ZVtcIkBncmFwaFwiXSwgZGVwdGggKyAxLCBmYWxzZSksXG4gIF07XG59XG5cbi8qKlxuICogRGlzY292ZXIgaWNvbiwgbG9nbywgYW5kIGZhdmljb24gVVJMcyBmcm9tIGFuIG9mZmljaWFsIHBhZ2UuXG4gKlxuICogVGhlIGZ1bmN0aW9uIG9ubHkgcmV0dXJucyBVUkxzIHByZXNlbnQgaW4gcGFnZSBtZXRhZGF0YSBvciBtYXJrdXAuIFdoZW4gdGhlXG4gKiBwYWdlIG9taXRzIGFuIGljb24sIGl0IHVzZXMgdGhlIGNvbnZlbnRpb25hbCBgL2Zhdmljb24uaWNvYCBVUkwgb24gdGhlIHNhbWVcbiAqIG9yaWdpbi4gVGhlIGxvZ28gZmFsbHMgYmFjayB0byB0aGF0IGljb24gc28gYSBnZW5lcmF0ZWQgY29udGV4dCBuZXZlciBwb2ludHNcbiAqIGF0IHRoZSBkYngtdG9vbHMgZGVmYXVsdCBhcnR3b3JrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlzY292ZXJCcmFuZEFzc2V0cyhodG1sOiBzdHJpbmcsIHBhZ2VVcmw6IHN0cmluZyk6IERpc2NvdmVyZWRCcmFuZEFzc2V0cyB7XG4gIGNvbnN0ICQgPSBsb2FkKGh0bWwpO1xuICBjb25zdCBpY29uczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgbG9nb3M6IHN0cmluZ1tdID0gW107XG5cbiAgJChcImxpbmtbcmVsXVwiKS5lYWNoKChfaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICBjb25zdCByZWwgPSAoJChlbGVtZW50KS5hdHRyKFwicmVsXCIpID8/IFwiXCIpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHJlbC5zcGxpdCgvXFxzKy8pLnNvbWUoKHBhcnQpID0+IHBhcnQgPT09IFwiaWNvblwiIHx8IHBhcnQgPT09IFwiYXBwbGUtdG91Y2gtaWNvblwiKSkge1xuICAgICAgYXBwZW5kQ2FuZGlkYXRlKGljb25zLCAkKGVsZW1lbnQpLmF0dHIoXCJocmVmXCIpLCBwYWdlVXJsKTtcbiAgICB9XG4gIH0pO1xuXG4gIGZvciAoY29uc3Qgc2VsZWN0b3Igb2YgW1xuICAgICdtZXRhW3Byb3BlcnR5PVwib2c6aW1hZ2VcIl0nLFxuICAgICdtZXRhW3Byb3BlcnR5PVwib2c6bG9nb1wiXScsXG4gICAgJ21ldGFbbmFtZT1cInR3aXR0ZXI6aW1hZ2VcIl0nLFxuICBdKSB7XG4gICAgJChzZWxlY3RvcikuZWFjaCgoX2luZGV4LCBlbGVtZW50KSA9PiB7XG4gICAgICBhcHBlbmRDYW5kaWRhdGUobG9nb3MsICQoZWxlbWVudCkuYXR0cihcImNvbnRlbnRcIiksIHBhZ2VVcmwpO1xuICAgIH0pO1xuICB9XG5cbiAgJChcImltZ1wiKS5lYWNoKChfaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gW1xuICAgICAgJChlbGVtZW50KS5hdHRyKFwiYWx0XCIpLFxuICAgICAgJChlbGVtZW50KS5hdHRyKFwiY2xhc3NcIiksXG4gICAgICAkKGVsZW1lbnQpLmF0dHIoXCJpZFwiKSxcbiAgICAgICQoZWxlbWVudCkuYXR0cihcImRhdGEtdGVzdGlkXCIpLFxuICAgIF1cbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5qb2luKFwiIFwiKTtcbiAgICBpZiAoL1xcYig/OmJyYW5kfGxvZ298d29yZG1hcmspXFxiL2kudGVzdChkZXNjcmlwdG9yKSkge1xuICAgICAgYXBwZW5kQ2FuZGlkYXRlKGxvZ29zLCAkKGVsZW1lbnQpLmF0dHIoXCJzcmNcIiksIHBhZ2VVcmwpO1xuICAgIH1cbiAgfSk7XG5cbiAgJCgnc2NyaXB0W3R5cGU9XCJhcHBsaWNhdGlvbi9sZCtqc29uXCJdJykuZWFjaCgoX2luZGV4LCBlbGVtZW50KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHZhbHVlOiB1bmtub3duID0gSlNPTi5wYXJzZSgkKGVsZW1lbnQpLnRleHQoKSk7XG4gICAgICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBqc29uTGRBc3NldFVybHModmFsdWUpKSB7XG4gICAgICAgIGFwcGVuZENhbmRpZGF0ZShsb2dvcywgY2FuZGlkYXRlLCBwYWdlVXJsKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGZhbGxiYWNrSWNvbiA9IG5ldyBVUkwoXCIvZmF2aWNvbi5pY29cIiwgcGFnZVVybCkudG9TdHJpbmcoKTtcbiAgY29uc3QgaWNvbiA9IGljb25zWzBdID8/IGxvZ29zWzBdID8/IGZhbGxiYWNrSWNvbjtcbiAgY29uc3QgbG9nbyA9IGxvZ29zWzBdID8/IGljb25zWzBdID8/IGZhbGxiYWNrSWNvbjtcbiAgcmV0dXJuIHtcbiAgICBpY29uOiB7IGxpZ2h0OiBpY29uIH0sXG4gICAgbG9nbzogeyBsaWdodDogbG9nbyB9LFxuICAgIGZhdmljb246IGljb24sXG4gIH07XG59XG5cbi8qKiBFeHRyYWN0IGFuIGFwcCBuYW1lIHBsdXMgcmVwcmVzZW50YXRpdmUgc2NyZWVuc2hvdHMvaWNvbnMgZnJvbSBhIHN0b3JlIHBhZ2UuICovXG5leHBvcnQgZnVuY3Rpb24gZGlzY292ZXJNb2JpbGVBcHBWaXN1YWxzKFxuICBodG1sOiBzdHJpbmcsXG4gIHBhZ2VVcmw6IHN0cmluZyxcbik6IERpc2NvdmVyZWRNb2JpbGVBcHBWaXN1YWxzIHtcbiAgY29uc3QgJCA9IGxvYWQoaHRtbCk7XG4gIGNvbnN0IG1ldGFkYXRhSW1hZ2VzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBzdHJ1Y3R1cmVkSW1hZ2VzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBzY3JlZW5zaG90SW1hZ2VzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBpY29uSW1hZ2VzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBvdGhlclN0b3JlSW1hZ2VzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHNlbGVjdG9yIG9mIFsnbWV0YVtwcm9wZXJ0eT1cIm9nOmltYWdlXCJdJywgJ21ldGFbbmFtZT1cInR3aXR0ZXI6aW1hZ2VcIl0nXSkge1xuICAgICQoc2VsZWN0b3IpLmVhY2goKF9pbmRleCwgZWxlbWVudCkgPT4ge1xuICAgICAgYXBwZW5kQ2FuZGlkYXRlKG1ldGFkYXRhSW1hZ2VzLCAkKGVsZW1lbnQpLmF0dHIoXCJjb250ZW50XCIpLCBwYWdlVXJsKTtcbiAgICB9KTtcbiAgfVxuICAkKCdzY3JpcHRbdHlwZT1cImFwcGxpY2F0aW9uL2xkK2pzb25cIl0nKS5lYWNoKChfaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdmFsdWU6IHVua25vd24gPSBKU09OLnBhcnNlKCQoZWxlbWVudCkudGV4dCgpKTtcbiAgICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGpzb25MZE1vYmlsZUltYWdlVXJscyh2YWx1ZSkpIHtcbiAgICAgICAgYXBwZW5kQ2FuZGlkYXRlKHN0cnVjdHVyZWRJbWFnZXMsIGNhbmRpZGF0ZSwgcGFnZVVybCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9KTtcbiAgJChcImltZ1wiKS5lYWNoKChfaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gW1xuICAgICAgJChlbGVtZW50KS5hdHRyKFwiYWx0XCIpLFxuICAgICAgJChlbGVtZW50KS5hdHRyKFwiY2xhc3NcIiksXG4gICAgICAkKGVsZW1lbnQpLmF0dHIoXCJhcmlhLWxhYmVsXCIpLFxuICAgIF1cbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5qb2luKFwiIFwiKTtcbiAgICBjb25zdCBzb3VyY2UgPSAkKGVsZW1lbnQpLmF0dHIoXCJzcmNcIikgPz8gJChlbGVtZW50KS5hdHRyKFwiZGF0YS1zcmNcIik7XG4gICAgY29uc3QgaXNTdG9yZUltYWdlSG9zdCA9IC8oPzptenN0YXRpY3xnZ3BodHxnb29nbGV1c2VyY29udGVudClcXC4vaS50ZXN0KHNvdXJjZSA/PyBcIlwiKTtcbiAgICBjb25zdCB0YXJnZXQgPSAvXFxiKD86cGhvbmV8c2NyZWVufHNjcmVlbnNob3R8dGFibGV0KVxcYi9pLnRlc3QoZGVzY3JpcHRvcilcbiAgICAgID8gc2NyZWVuc2hvdEltYWdlc1xuICAgICAgOiAvXFxiKD86YXBwfGljb24pXFxiL2kudGVzdChkZXNjcmlwdG9yKVxuICAgICAgICA/IGljb25JbWFnZXNcbiAgICAgICAgOiBpc1N0b3JlSW1hZ2VIb3N0XG4gICAgICAgICAgPyBvdGhlclN0b3JlSW1hZ2VzXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgaWYgKHRhcmdldCkge1xuICAgICAgYXBwZW5kQ2FuZGlkYXRlKHRhcmdldCwgc291cmNlLCBwYWdlVXJsKTtcbiAgICAgIGNvbnN0IHNyY3NldCA9ICgkKGVsZW1lbnQpLmF0dHIoXCJzcmNzZXRcIikgPz8gJChlbGVtZW50KS5hdHRyKFwiZGF0YS1zcmNzZXRcIikpXG4gICAgICAgID8uc3BsaXQoXCIsXCIpXG4gICAgICAgIC5hdCgtMSlcbiAgICAgICAgPy50cmltKClcbiAgICAgICAgLnNwbGl0KC9cXHMrLylbMF07XG4gICAgICBhcHBlbmRDYW5kaWRhdGUodGFyZ2V0LCBzcmNzZXQsIHBhZ2VVcmwpO1xuICAgIH1cbiAgfSk7XG4gICQoXCJwaWN0dXJlIHNvdXJjZVtzcmNzZXRdXCIpLmVhY2goKF9pbmRleCwgZWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHNyY3NldCA9ICQoZWxlbWVudCkuYXR0cihcInNyY3NldFwiKT8uc3BsaXQoXCIsXCIpLmF0KC0xKT8udHJpbSgpLnNwbGl0KC9cXHMrLylbMF07XG4gICAgYXBwZW5kQ2FuZGlkYXRlKHNjcmVlbnNob3RJbWFnZXMsIHNyY3NldCwgcGFnZVVybCk7XG4gIH0pO1xuICBjb25zdCBpbWFnZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHNlZW5JbWFnZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgW1xuICAgIC4uLm1ldGFkYXRhSW1hZ2VzLnNsaWNlKDAsIDEpLFxuICAgIC4uLnNjcmVlbnNob3RJbWFnZXMsXG4gICAgLi4uaWNvbkltYWdlcyxcbiAgICAuLi5zdHJ1Y3R1cmVkSW1hZ2VzLFxuICAgIC4uLm90aGVyU3RvcmVJbWFnZXMsXG4gIF0pIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IGFzc2V0VXJsKGNhbmRpZGF0ZSwgcGFnZVVybCk7XG4gICAgaWYgKCFyZXNvbHZlZCkgY29udGludWU7XG4gICAgY29uc3QgaWRlbnRpdHkgPSBtb2JpbGVJbWFnZUlkZW50aXR5KHJlc29sdmVkKTtcbiAgICBpZiAoc2VlbkltYWdlcy5oYXMoaWRlbnRpdHkpKSBjb250aW51ZTtcbiAgICBzZWVuSW1hZ2VzLmFkZChpZGVudGl0eSk7XG4gICAgaW1hZ2VzLnB1c2gocmVzb2x2ZWQpO1xuICB9XG4gIGNvbnN0IHJhd05hbWUgPVxuICAgICQoJ21ldGFbcHJvcGVydHk9XCJvZzp0aXRsZVwiXScpLmF0dHIoXCJjb250ZW50XCIpID8/ICQoXCJoMVwiKS5maXJzdCgpLnRleHQoKSA/PyAkKFwidGl0bGVcIikudGV4dCgpO1xuICBjb25zdCBhcHBOYW1lID1cbiAgICByYXdOYW1lLnJlcGxhY2UoL1xccysoPzpvbiB0aGUgQXBwIFN0b3JlfC0gQXBwcyBvbiBHb29nbGUgUGxheSkuKiQvaSwgXCJcIikudHJpbSgpIHx8XG4gICAgbmV3IFVSTChwYWdlVXJsKS5ob3N0bmFtZTtcbiAgcmV0dXJuIHsgYXBwTmFtZSwgaW1hZ2VVcmxzOiBpbWFnZXMuc2xpY2UoMCwgNikgfTtcbn1cbiJdfQ==
package/lib/src/config.js CHANGED
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { configUtils } from "@dbx-tools/core";
7
- import { stringUtils } from "@dbx-tools/shared-core";
6
+ import { text, ENV_ONLY, positiveInt } from "@dbx-tools/core";
7
+ import { trimToNull } from "@dbx-tools/shared-core";
8
8
  import manifest from "./manifest.json" with { type: "json" };
9
9
  import { DEFAULT_MAX_SOURCES, DEFAULT_SOURCE_MAX_LENGTH, MAX_SOURCES, MAX_SOURCE_MAX_LENGTH, } from "./research.js";
10
10
  /** Default ceiling for one complete generator operation. */
@@ -13,19 +13,16 @@ export const DEFAULT_GENERATOR_TIMEOUT_MS = 240_000;
13
13
  export const GENERATOR_CONFIG_SCHEMA = manifest.config.schema;
14
14
  /** Resolve explicit plugin values over environment values and defaults. */
15
15
  export function resolveGeneratorConfig(config = {}) {
16
- const model = stringUtils.trimToNull(config.model) ??
17
- configUtils.text("GENERATOR_MODEL", configUtils.ENV_ONLY);
18
- const catalog = stringUtils.trimToNull(config.catalog) ??
19
- configUtils.text("GENERATOR_CATALOG", configUtils.ENV_ONLY);
20
- const warehouseId = stringUtils.trimToNull(config.warehouseId) ??
21
- configUtils.text("DATABRICKS_WAREHOUSE_ID", configUtils.ENV_ONLY);
16
+ const model = trimToNull(config.model) ?? text("GENERATOR_MODEL", ENV_ONLY);
17
+ const catalog = trimToNull(config.catalog) ?? text("GENERATOR_CATALOG", ENV_ONLY);
18
+ const warehouseId = trimToNull(config.warehouseId) ?? text("DATABRICKS_WAREHOUSE_ID", ENV_ONLY);
22
19
  return {
23
20
  ...(model ? { model } : {}),
24
21
  ...(catalog ? { catalog } : {}),
25
22
  ...(warehouseId ? { warehouseId } : {}),
26
- maxSources: Math.min(configUtils.positiveInt(config.maxSources, "GENERATOR_MAX_SOURCES", DEFAULT_MAX_SOURCES, configUtils.ENV_ONLY), MAX_SOURCES),
27
- sourceMaxLength: Math.min(configUtils.positiveInt(config.sourceMaxLength, "GENERATOR_SOURCE_MAX_LENGTH", DEFAULT_SOURCE_MAX_LENGTH, configUtils.ENV_ONLY), MAX_SOURCE_MAX_LENGTH),
28
- timeoutMs: configUtils.positiveInt(config.timeoutMs, "GENERATOR_TIMEOUT_MS", DEFAULT_GENERATOR_TIMEOUT_MS, configUtils.ENV_ONLY),
23
+ maxSources: Math.min(positiveInt(config.maxSources, "GENERATOR_MAX_SOURCES", DEFAULT_MAX_SOURCES, ENV_ONLY), MAX_SOURCES),
24
+ sourceMaxLength: Math.min(positiveInt(config.sourceMaxLength, "GENERATOR_SOURCE_MAX_LENGTH", DEFAULT_SOURCE_MAX_LENGTH, ENV_ONLY), MAX_SOURCE_MAX_LENGTH),
25
+ timeoutMs: positiveInt(config.timeoutMs, "GENERATOR_TIMEOUT_MS", DEFAULT_GENERATOR_TIMEOUT_MS, ENV_ONLY),
29
26
  };
30
27
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBR0gsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixXQUFXLEVBQ1gscUJBQXFCLEdBQ3RCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLDREQUE0RDtBQUM1RCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxPQUFPLENBQUM7QUFrQ3BELDhEQUE4RDtBQUM5RCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUU5RCwyRUFBMkU7QUFDM0UsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxTQUFnQyxFQUFFO0lBRWxDLE1BQU0sS0FBSyxHQUNULFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNwQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1RCxNQUFNLE9BQU8sR0FDWCxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDdEMsV0FBVyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUQsTUFBTSxXQUFXLEdBQ2YsV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzFDLFdBQVcsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BFLE9BQU87UUFDTCxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9CLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsV0FBVyxDQUFDLFdBQVcsQ0FDckIsTUFBTSxDQUFDLFVBQVUsRUFDakIsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQixXQUFXLENBQUMsUUFBUSxDQUNyQixFQUNELFdBQVcsQ0FDWjtRQUNELGVBQWUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUN2QixXQUFXLENBQUMsV0FBVyxDQUNyQixNQUFNLENBQUMsZUFBZSxFQUN0Qiw2QkFBNkIsRUFDN0IseUJBQXlCLEVBQ3pCLFdBQVcsQ0FBQyxRQUFRLENBQ3JCLEVBQ0QscUJBQXFCLENBQ3RCO1FBQ0QsU0FBUyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQ2hDLE1BQU0sQ0FBQyxTQUFTLEVBQ2hCLHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsV0FBVyxDQUFDLFFBQVEsQ0FDckI7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXBwS2l0IGdlbmVyYXRvci1wbHVnaW4gY29uZmlndXJhdGlvbiBhbmQgZW52aXJvbm1lbnQgcmVzb2x1dGlvbi5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBCYXNlUGx1Z2luQ29uZmlnIH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHsgY29uZmlnVXRpbHMgfSBmcm9tIFwiQGRieC10b29scy9jb3JlXCI7XG5pbXBvcnQgeyBzdHJpbmdVdGlscyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgbWFuaWZlc3QgZnJvbSBcIi4vbWFuaWZlc3QuanNvblwiIHdpdGggeyB0eXBlOiBcImpzb25cIiB9O1xuaW1wb3J0IHtcbiAgREVGQVVMVF9NQVhfU09VUkNFUyxcbiAgREVGQVVMVF9TT1VSQ0VfTUFYX0xFTkdUSCxcbiAgTUFYX1NPVVJDRVMsXG4gIE1BWF9TT1VSQ0VfTUFYX0xFTkdUSCxcbn0gZnJvbSBcIi4vcmVzZWFyY2gudHNcIjtcblxuLyoqIERlZmF1bHQgY2VpbGluZyBmb3Igb25lIGNvbXBsZXRlIGdlbmVyYXRvciBvcGVyYXRpb24uICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9HRU5FUkFUT1JfVElNRU9VVF9NUyA9IDI0MF8wMDA7XG5cbi8qKiBBcHBLaXQgY29uZmlndXJhdGlvbiBhY2NlcHRlZCBieSB0aGUgZ2VuZXJhdG9yIHBsdWdpbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdG9yUGx1Z2luQ29uZmlnIGV4dGVuZHMgQmFzZVBsdWdpbkNvbmZpZyB7XG4gIC8qKiBNb2RlbCBlbmRwb2ludCBvciBsb29zZSBtb2RlbCBuYW1lIHVzZWQgZm9yIHN0cnVjdHVyZWQgc3ludGhlc2lzLiAqL1xuICBtb2RlbD86IHN0cmluZztcbiAgLyoqIE1heGltdW0gY2l0ZWQgcGFnZXMgZmV0Y2hlZCBwZXIgcmVzZWFyY2ggb3BlcmF0aW9uLiAqL1xuICBtYXhTb3VyY2VzPzogbnVtYmVyO1xuICAvKiogTWF4aW11bSByZWFkYWJsZSBjaGFyYWN0ZXJzIHJldGFpbmVkIGZyb20gZWFjaCBmZXRjaGVkIHBhZ2UuICovXG4gIHNvdXJjZU1heExlbmd0aD86IG51bWJlcjtcbiAgLyoqIE92ZXJhbGwgb3BlcmF0aW9uIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLiAqL1xuICB0aW1lb3V0TXM/OiBudW1iZXI7XG4gIC8qKiBVbml0eSBDYXRhbG9nIGNvbnRhaW5pbmcgYWxsIGdlbmVyYXRlZCBwZXItdXNlciBzY2hlbWFzLiAqL1xuICBjYXRhbG9nPzogc3RyaW5nO1xuICAvKiogU1FMIHdhcmVob3VzZSB1c2VkIGZvciBkYXRhIGdlbmVyYXRpb24gYW5kIHZhbGlkYXRpb24uICovXG4gIHdhcmVob3VzZUlkPzogc3RyaW5nO1xufVxuXG4vKiogRnVsbHkgcmVzb2x2ZWQgZ2VuZXJhdG9yIGNvbmZpZ3VyYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkR2VuZXJhdG9yQ29uZmlnIHtcbiAgLyoqIE9wdGlvbmFsIHBpbm5lZCBzeW50aGVzaXMgbW9kZWwuICovXG4gIG1vZGVsPzogc3RyaW5nO1xuICAvKiogQm91bmRlZCBjaXRlZC1wYWdlIGNvdW50LiAqL1xuICBtYXhTb3VyY2VzOiBudW1iZXI7XG4gIC8qKiBDaGFyYWN0ZXIgY2FwIHBlciBmZXRjaGVkIHNvdXJjZS4gKi9cbiAgc291cmNlTWF4TGVuZ3RoOiBudW1iZXI7XG4gIC8qKiBPdmVyYWxsIG9wZXJhdGlvbiB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy4gKi9cbiAgdGltZW91dE1zOiBudW1iZXI7XG4gIC8qKiBVbml0eSBDYXRhbG9nIGNvbnRhaW5pbmcgZ2VuZXJhdGVkIHNjaGVtYXMsIHdoZW4gY29uZmlndXJlZC4gKi9cbiAgY2F0YWxvZz86IHN0cmluZztcbiAgLyoqIFNRTCB3YXJlaG91c2UgdXNlZCBmb3IgbXV0YXRpb25zLCB3aGVuIGNvbmZpZ3VyZWQuICovXG4gIHdhcmVob3VzZUlkPzogc3RyaW5nO1xufVxuXG4vKiogSlNPTiBTY2hlbWEgcHVibGlzaGVkIGJ5IHRoZSBnZW5lcmF0b3IgcGx1Z2luIG1hbmlmZXN0LiAqL1xuZXhwb3J0IGNvbnN0IEdFTkVSQVRPUl9DT05GSUdfU0NIRU1BID0gbWFuaWZlc3QuY29uZmlnLnNjaGVtYTtcblxuLyoqIFJlc29sdmUgZXhwbGljaXQgcGx1Z2luIHZhbHVlcyBvdmVyIGVudmlyb25tZW50IHZhbHVlcyBhbmQgZGVmYXVsdHMuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUdlbmVyYXRvckNvbmZpZyhcbiAgY29uZmlnOiBHZW5lcmF0b3JQbHVnaW5Db25maWcgPSB7fSxcbik6IFJlc29sdmVkR2VuZXJhdG9yQ29uZmlnIHtcbiAgY29uc3QgbW9kZWwgPVxuICAgIHN0cmluZ1V0aWxzLnRyaW1Ub051bGwoY29uZmlnLm1vZGVsKSA/P1xuICAgIGNvbmZpZ1V0aWxzLnRleHQoXCJHRU5FUkFUT1JfTU9ERUxcIiwgY29uZmlnVXRpbHMuRU5WX09OTFkpO1xuICBjb25zdCBjYXRhbG9nID1cbiAgICBzdHJpbmdVdGlscy50cmltVG9OdWxsKGNvbmZpZy5jYXRhbG9nKSA/P1xuICAgIGNvbmZpZ1V0aWxzLnRleHQoXCJHRU5FUkFUT1JfQ0FUQUxPR1wiLCBjb25maWdVdGlscy5FTlZfT05MWSk7XG4gIGNvbnN0IHdhcmVob3VzZUlkID1cbiAgICBzdHJpbmdVdGlscy50cmltVG9OdWxsKGNvbmZpZy53YXJlaG91c2VJZCkgPz9cbiAgICBjb25maWdVdGlscy50ZXh0KFwiREFUQUJSSUNLU19XQVJFSE9VU0VfSURcIiwgY29uZmlnVXRpbHMuRU5WX09OTFkpO1xuICByZXR1cm4ge1xuICAgIC4uLihtb2RlbCA/IHsgbW9kZWwgfSA6IHt9KSxcbiAgICAuLi4oY2F0YWxvZyA/IHsgY2F0YWxvZyB9IDoge30pLFxuICAgIC4uLih3YXJlaG91c2VJZCA/IHsgd2FyZWhvdXNlSWQgfSA6IHt9KSxcbiAgICBtYXhTb3VyY2VzOiBNYXRoLm1pbihcbiAgICAgIGNvbmZpZ1V0aWxzLnBvc2l0aXZlSW50KFxuICAgICAgICBjb25maWcubWF4U291cmNlcyxcbiAgICAgICAgXCJHRU5FUkFUT1JfTUFYX1NPVVJDRVNcIixcbiAgICAgICAgREVGQVVMVF9NQVhfU09VUkNFUyxcbiAgICAgICAgY29uZmlnVXRpbHMuRU5WX09OTFksXG4gICAgICApLFxuICAgICAgTUFYX1NPVVJDRVMsXG4gICAgKSxcbiAgICBzb3VyY2VNYXhMZW5ndGg6IE1hdGgubWluKFxuICAgICAgY29uZmlnVXRpbHMucG9zaXRpdmVJbnQoXG4gICAgICAgIGNvbmZpZy5zb3VyY2VNYXhMZW5ndGgsXG4gICAgICAgIFwiR0VORVJBVE9SX1NPVVJDRV9NQVhfTEVOR1RIXCIsXG4gICAgICAgIERFRkFVTFRfU09VUkNFX01BWF9MRU5HVEgsXG4gICAgICAgIGNvbmZpZ1V0aWxzLkVOVl9PTkxZLFxuICAgICAgKSxcbiAgICAgIE1BWF9TT1VSQ0VfTUFYX0xFTkdUSCxcbiAgICApLFxuICAgIHRpbWVvdXRNczogY29uZmlnVXRpbHMucG9zaXRpdmVJbnQoXG4gICAgICBjb25maWcudGltZW91dE1zLFxuICAgICAgXCJHRU5FUkFUT1JfVElNRU9VVF9NU1wiLFxuICAgICAgREVGQVVMVF9HRU5FUkFUT1JfVElNRU9VVF9NUyxcbiAgICAgIGNvbmZpZ1V0aWxzLkVOVl9PTkxZLFxuICAgICksXG4gIH07XG59XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBR0gsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sUUFBUSxNQUFNLGlCQUFpQixDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQzdELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLFdBQVcsRUFDWCxxQkFBcUIsR0FDdEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsNERBQTREO0FBQzVELE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLE9BQU8sQ0FBQztBQWtDcEQsOERBQThEO0FBQzlELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0FBRTlELDJFQUEyRTtBQUMzRSxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLFNBQWdDLEVBQUU7SUFFbEMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUUsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEYsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEcsT0FBTztRQUNMLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzQixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0IsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUNsQixXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLENBQUMsRUFDdEYsV0FBVyxDQUNaO1FBQ0QsZUFBZSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQ3ZCLFdBQVcsQ0FDVCxNQUFNLENBQUMsZUFBZSxFQUN0Qiw2QkFBNkIsRUFDN0IseUJBQXlCLEVBQ3pCLFFBQVEsQ0FDVCxFQUNELHFCQUFxQixDQUN0QjtRQUNELFNBQVMsRUFBRSxXQUFXLENBQ3BCLE1BQU0sQ0FBQyxTQUFTLEVBQ2hCLHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsUUFBUSxDQUNUO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFwcEtpdCBnZW5lcmF0b3ItcGx1Z2luIGNvbmZpZ3VyYXRpb24gYW5kIGVudmlyb25tZW50IHJlc29sdXRpb24uXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB0eXBlIHsgQmFzZVBsdWdpbkNvbmZpZyB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXRcIjtcbmltcG9ydCB7IHRleHQsIEVOVl9PTkxZLCBwb3NpdGl2ZUludCB9IGZyb20gXCJAZGJ4LXRvb2xzL2NvcmVcIjtcbmltcG9ydCB7IHRyaW1Ub051bGwgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IG1hbmlmZXN0IGZyb20gXCIuL21hbmlmZXN0Lmpzb25cIiB3aXRoIHsgdHlwZTogXCJqc29uXCIgfTtcbmltcG9ydCB7XG4gIERFRkFVTFRfTUFYX1NPVVJDRVMsXG4gIERFRkFVTFRfU09VUkNFX01BWF9MRU5HVEgsXG4gIE1BWF9TT1VSQ0VTLFxuICBNQVhfU09VUkNFX01BWF9MRU5HVEgsXG59IGZyb20gXCIuL3Jlc2VhcmNoLnRzXCI7XG5cbi8qKiBEZWZhdWx0IGNlaWxpbmcgZm9yIG9uZSBjb21wbGV0ZSBnZW5lcmF0b3Igb3BlcmF0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfR0VORVJBVE9SX1RJTUVPVVRfTVMgPSAyNDBfMDAwO1xuXG4vKiogQXBwS2l0IGNvbmZpZ3VyYXRpb24gYWNjZXB0ZWQgYnkgdGhlIGdlbmVyYXRvciBwbHVnaW4uICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRvclBsdWdpbkNvbmZpZyBleHRlbmRzIEJhc2VQbHVnaW5Db25maWcge1xuICAvKiogTW9kZWwgZW5kcG9pbnQgb3IgbG9vc2UgbW9kZWwgbmFtZSB1c2VkIGZvciBzdHJ1Y3R1cmVkIHN5bnRoZXNpcy4gKi9cbiAgbW9kZWw/OiBzdHJpbmc7XG4gIC8qKiBNYXhpbXVtIGNpdGVkIHBhZ2VzIGZldGNoZWQgcGVyIHJlc2VhcmNoIG9wZXJhdGlvbi4gKi9cbiAgbWF4U291cmNlcz86IG51bWJlcjtcbiAgLyoqIE1heGltdW0gcmVhZGFibGUgY2hhcmFjdGVycyByZXRhaW5lZCBmcm9tIGVhY2ggZmV0Y2hlZCBwYWdlLiAqL1xuICBzb3VyY2VNYXhMZW5ndGg/OiBudW1iZXI7XG4gIC8qKiBPdmVyYWxsIG9wZXJhdGlvbiB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy4gKi9cbiAgdGltZW91dE1zPzogbnVtYmVyO1xuICAvKiogVW5pdHkgQ2F0YWxvZyBjb250YWluaW5nIGFsbCBnZW5lcmF0ZWQgcGVyLXVzZXIgc2NoZW1hcy4gKi9cbiAgY2F0YWxvZz86IHN0cmluZztcbiAgLyoqIFNRTCB3YXJlaG91c2UgdXNlZCBmb3IgZGF0YSBnZW5lcmF0aW9uIGFuZCB2YWxpZGF0aW9uLiAqL1xuICB3YXJlaG91c2VJZD86IHN0cmluZztcbn1cblxuLyoqIEZ1bGx5IHJlc29sdmVkIGdlbmVyYXRvciBjb25maWd1cmF0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZEdlbmVyYXRvckNvbmZpZyB7XG4gIC8qKiBPcHRpb25hbCBwaW5uZWQgc3ludGhlc2lzIG1vZGVsLiAqL1xuICBtb2RlbD86IHN0cmluZztcbiAgLyoqIEJvdW5kZWQgY2l0ZWQtcGFnZSBjb3VudC4gKi9cbiAgbWF4U291cmNlczogbnVtYmVyO1xuICAvKiogQ2hhcmFjdGVyIGNhcCBwZXIgZmV0Y2hlZCBzb3VyY2UuICovXG4gIHNvdXJjZU1heExlbmd0aDogbnVtYmVyO1xuICAvKiogT3ZlcmFsbCBvcGVyYXRpb24gdGltZW91dCBpbiBtaWxsaXNlY29uZHMuICovXG4gIHRpbWVvdXRNczogbnVtYmVyO1xuICAvKiogVW5pdHkgQ2F0YWxvZyBjb250YWluaW5nIGdlbmVyYXRlZCBzY2hlbWFzLCB3aGVuIGNvbmZpZ3VyZWQuICovXG4gIGNhdGFsb2c/OiBzdHJpbmc7XG4gIC8qKiBTUUwgd2FyZWhvdXNlIHVzZWQgZm9yIG11dGF0aW9ucywgd2hlbiBjb25maWd1cmVkLiAqL1xuICB3YXJlaG91c2VJZD86IHN0cmluZztcbn1cblxuLyoqIEpTT04gU2NoZW1hIHB1Ymxpc2hlZCBieSB0aGUgZ2VuZXJhdG9yIHBsdWdpbiBtYW5pZmVzdC4gKi9cbmV4cG9ydCBjb25zdCBHRU5FUkFUT1JfQ09ORklHX1NDSEVNQSA9IG1hbmlmZXN0LmNvbmZpZy5zY2hlbWE7XG5cbi8qKiBSZXNvbHZlIGV4cGxpY2l0IHBsdWdpbiB2YWx1ZXMgb3ZlciBlbnZpcm9ubWVudCB2YWx1ZXMgYW5kIGRlZmF1bHRzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVHZW5lcmF0b3JDb25maWcoXG4gIGNvbmZpZzogR2VuZXJhdG9yUGx1Z2luQ29uZmlnID0ge30sXG4pOiBSZXNvbHZlZEdlbmVyYXRvckNvbmZpZyB7XG4gIGNvbnN0IG1vZGVsID0gdHJpbVRvTnVsbChjb25maWcubW9kZWwpID8/IHRleHQoXCJHRU5FUkFUT1JfTU9ERUxcIiwgRU5WX09OTFkpO1xuICBjb25zdCBjYXRhbG9nID0gdHJpbVRvTnVsbChjb25maWcuY2F0YWxvZykgPz8gdGV4dChcIkdFTkVSQVRPUl9DQVRBTE9HXCIsIEVOVl9PTkxZKTtcbiAgY29uc3Qgd2FyZWhvdXNlSWQgPSB0cmltVG9OdWxsKGNvbmZpZy53YXJlaG91c2VJZCkgPz8gdGV4dChcIkRBVEFCUklDS1NfV0FSRUhPVVNFX0lEXCIsIEVOVl9PTkxZKTtcbiAgcmV0dXJuIHtcbiAgICAuLi4obW9kZWwgPyB7IG1vZGVsIH0gOiB7fSksXG4gICAgLi4uKGNhdGFsb2cgPyB7IGNhdGFsb2cgfSA6IHt9KSxcbiAgICAuLi4od2FyZWhvdXNlSWQgPyB7IHdhcmVob3VzZUlkIH0gOiB7fSksXG4gICAgbWF4U291cmNlczogTWF0aC5taW4oXG4gICAgICBwb3NpdGl2ZUludChjb25maWcubWF4U291cmNlcywgXCJHRU5FUkFUT1JfTUFYX1NPVVJDRVNcIiwgREVGQVVMVF9NQVhfU09VUkNFUywgRU5WX09OTFkpLFxuICAgICAgTUFYX1NPVVJDRVMsXG4gICAgKSxcbiAgICBzb3VyY2VNYXhMZW5ndGg6IE1hdGgubWluKFxuICAgICAgcG9zaXRpdmVJbnQoXG4gICAgICAgIGNvbmZpZy5zb3VyY2VNYXhMZW5ndGgsXG4gICAgICAgIFwiR0VORVJBVE9SX1NPVVJDRV9NQVhfTEVOR1RIXCIsXG4gICAgICAgIERFRkFVTFRfU09VUkNFX01BWF9MRU5HVEgsXG4gICAgICAgIEVOVl9PTkxZLFxuICAgICAgKSxcbiAgICAgIE1BWF9TT1VSQ0VfTUFYX0xFTkdUSCxcbiAgICApLFxuICAgIHRpbWVvdXRNczogcG9zaXRpdmVJbnQoXG4gICAgICBjb25maWcudGltZW91dE1zLFxuICAgICAgXCJHRU5FUkFUT1JfVElNRU9VVF9NU1wiLFxuICAgICAgREVGQVVMVF9HRU5FUkFUT1JfVElNRU9VVF9NUyxcbiAgICAgIEVOVl9PTkxZLFxuICAgICksXG4gIH07XG59XG4iXX0=
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import type { BrandContext } from "@dbx-tools/shared-core/brand-utils";
7
- import { type GeneratedDashboard, type GeneratedSchema, type GeneratorPlan } from "@dbx-tools/shared-generator/workflow";
6
+ import type { BrandContext } from "@dbx-tools/shared-core";
7
+ import { type GeneratedDashboard, type GeneratedSchema, type GeneratorPlan } from "@dbx-tools/shared-generator";
8
8
  /** Inputs for dashboard assembly and publication. */
9
9
  export interface CreateGeneratorDashboardInput {
10
10
  /** Generated schema containing the fact table. */
@@ -4,9 +4,9 @@
4
4
  * @module
5
5
  */
6
6
  import { ExecutionError } from "@databricks/appkit";
7
- import { databricks } from "@dbx-tools/appkit";
8
- import { hash } from "@dbx-tools/shared-core";
9
- import { GeneratedDashboardSchema, } from "@dbx-tools/shared-generator/workflow";
7
+ import { toContext } from "@dbx-tools/appkit";
8
+ import { id } from "@dbx-tools/shared-core";
9
+ import { GeneratedDashboardSchema, } from "@dbx-tools/shared-generator";
10
10
  import { z } from "zod";
11
11
  import { resolveGeneratorIdentity } from "./namespace.js";
12
12
  const SerializedDashboardSchema = z
@@ -230,11 +230,11 @@ export async function createGeneratorDashboard(input, signal) {
230
230
  }
231
231
  const legacy = identity.userClient.toLegacyWorkspaceClient();
232
232
  const parentPath = `/Workspace/Users/${identity.principal}/.dbx-tools/generator/${input.location.schema}`;
233
- const context = signal ? databricks.toContext(signal) : undefined;
233
+ const context = signal ? toContext(signal) : undefined;
234
234
  await legacy.workspace.mkdirs({ path: parentPath }, context);
235
235
  const created = await legacy.lakeview.create({
236
236
  dashboard: {
237
- display_name: `${input.company} ${input.purpose} ${hash.id(6)}`,
237
+ display_name: `${input.company} ${input.purpose} ${id(6)}`,
238
238
  parent_path: parentPath,
239
239
  warehouse_id: input.warehouseId,
240
240
  serialized_dashboard: JSON.stringify(buildGeneratorDashboard(input)),
@@ -254,4 +254,4 @@ export async function createGeneratorDashboard(input, signal) {
254
254
  companionGenie: "AUTO",
255
255
  });
256
256
  }
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Rhc2hib2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUMsT0FBTyxFQUNMLHdCQUF3QixHQUt6QixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsTUFBTSx5QkFBeUIsR0FBRyxDQUFDO0tBQ2hDLE1BQU0sQ0FBQztJQUNOLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEQsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztDQUM5QyxDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUM7QUFrQlosbUVBQW1FO0FBQ25FLFNBQVMsT0FBTyxDQUFDLE1BQXVCO0lBQ3RDLE1BQU0sVUFBVSxHQUNkLE1BQU0sQ0FBQyxXQUFXLEtBQUssT0FB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MEMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUMzQjtRQUNFLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtRQUNsQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFdBQVc7UUFDL0IsaUJBQWlCLEVBQUUsS0FBSztLQUN6QixFQUNELE9BQU8sQ0FDUixDQUFDO0lBQ0YsT0FBTyx3QkFBd0IsQ0FBQyxLQUFLLENBQUM7UUFDcEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxZQUFZO1FBQ2pDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxjQUFjLEVBQUUsTUFBTTtLQUN2QixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZXRlcm1pbmlzdGljIEFJL0JJIGRhc2hib2FyZCBhc3NlbWJseSBhbmQgT0JPIHB1YmxpY2F0aW9uLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBFeGVjdXRpb25FcnJvciB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXRcIjtcbmltcG9ydCB7IGRhdGFicmlja3MgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXRcIjtcbmltcG9ydCB7IGhhc2ggfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBCcmFuZENvbnRleHQgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZS9icmFuZC11dGlsc1wiO1xuaW1wb3J0IHtcbiAgR2VuZXJhdGVkRGFzaGJvYXJkU2NoZW1hLFxuICB0eXBlIEdlbmVyYXRlZERhc2hib2FyZCxcbiAgdHlwZSBHZW5lcmF0ZWRNZXRyaWMsXG4gIHR5cGUgR2VuZXJhdGVkU2NoZW1hLFxuICB0eXBlIEdlbmVyYXRvclBsYW4sXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5lcmF0b3Ivd29ya2Zsb3dcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyByZXNvbHZlR2VuZXJhdG9ySWRlbnRpdHkgfSBmcm9tIFwiLi9uYW1lc3BhY2UudHNcIjtcblxuY29uc3QgU2VyaWFsaXplZERhc2hib2FyZFNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgZGF0YXNldHM6IHouYXJyYXkoei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpKS5taW4oMSksXG4gICAgcGFnZXM6IHouYXJyYXkoei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpKS5taW4oMSksXG4gICAgdWlTZXR0aW5nczogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLFxuICB9KVxuICAuc3RyaWN0KCk7XG5cbi8qKiBJbnB1dHMgZm9yIGRhc2hib2FyZCBhc3NlbWJseSBhbmQgcHVibGljYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUdlbmVyYXRvckRhc2hib2FyZElucHV0IHtcbiAgLyoqIEdlbmVyYXRlZCBzY2hlbWEgY29udGFpbmluZyB0aGUgZmFjdCB0YWJsZS4gKi9cbiAgbG9jYXRpb246IEdlbmVyYXRlZFNjaGVtYTtcbiAgLyoqIFZhbGlkYXRlZCBkYXRhIGFuZCBtZXRyaWMgcGxhbi4gKi9cbiAgcGxhbjogR2VuZXJhdG9yUGxhbjtcbiAgLyoqIEJyYW5kIGFwcGxpZWQgdG8gdGhlIGRhc2hib2FyZCB0aGVtZS4gKi9cbiAgYnJhbmQ6IEJyYW5kQ29udGV4dDtcbiAgLyoqIFNRTCB3YXJlaG91c2UgdXNlZCBieSB0aGUgZGFzaGJvYXJkLiAqL1xuICB3YXJlaG91c2VJZDogc3RyaW5nO1xuICAvKiogQ29tcGFueSBkaXNwbGF5IG5hbWUuICovXG4gIGNvbXBhbnk6IHN0cmluZztcbiAgLyoqIERlbW8gcHVycG9zZS4gKi9cbiAgcHVycG9zZTogc3RyaW5nO1xufVxuXG4vKiogQ29tcGlsZSBvbmUgbWV0cmljIGludG8gYSByZXVzYWJsZSBMYWtldmlldyBkYXRhc2V0IG1lYXN1cmUuICovXG5mdW5jdGlvbiBtZWFzdXJlKG1ldHJpYzogR2VuZXJhdGVkTWV0cmljKSB7XG4gIGNvbnN0IGV4cHJlc3Npb24gPVxuICAgIG1ldHJpYy5hZ2dyZWdhdGlvbiA9PT0gXCJjb3VudFwiXG4gICAgICA/IFwiQ09VTlQoYCpgKVwiXG4gICAgICA6IGAke21ldHJpYy5hZ2dyZWdhdGlvbiA9PT0gXCJzdW1cIiA/IFwiU1VNXCIgOiBcIkFWR1wifShcXGAke21ldHJpYy5jb2x1bW59XFxgKWA7XG4gIHJldHVybiB7XG4gICAgZGlzcGxheU5hbWU6IG1ldHJpYy5sYWJlbCxcbiAgICBkZXNjcmlwdGlvbjogbWV0cmljLmRlZmluaXRpb24sXG4gICAgZXhwcmVzc2lvbixcbiAgfTtcbn1cblxuLyoqIENvdW50ZXIgd2lkZ2V0IGJvdW5kIHRvIG9uZSBkYXRhc2V0IG1lYXN1cmUuICovXG5mdW5jdGlvbiBjb3VudGVyV2lkZ2V0KG1ldHJpYzogR2VuZXJhdGVkTWV0cmljLCBpbmRleDogbnVtYmVyKSB7XG4gIGNvbnN0IGZpZWxkTmFtZSA9IGBtZWFzdXJlKCR7bWV0cmljLmxhYmVsfSlgO1xuICByZXR1cm4ge1xuICAgIHdpZGdldDoge1xuICAgICAgbmFtZTogYGtwaV8ke21ldHJpYy5uYW1lfWAsXG4gICAgICBxdWVyaWVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIm1haW5fcXVlcnlcIixcbiAgICAgICAgICBxdWVyeToge1xuICAgICAgICAgICAgZGF0YXNldE5hbWU6IFwiZ2VuZXJhdGVkX2ZhY3RzXCIsXG4gICAgICAgICAgICBmaWVsZHM6IFt7IG5hbWU6IGZpZWxkTmFtZSwgZXhwcmVzc2lvbjogYE1FQVNVUkUoXFxgJHttZXRyaWMubGFiZWx9XFxgKWAgfV0sXG4gICAgICAgICAgICBkaXNhZ2dyZWdhdGVkOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgdmVyc2lvbjogMixcbiAgICAgICAgd2lkZ2V0VHlwZTogXCJjb3VudGVyXCIsXG4gICAgICAgIGVuY29kaW5nczoge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogbWV0cmljLmxhYmVsLFxuICAgICAgICAgICAgLi4uKG1ldHJpYy51bml0ID09PSBcInBlcmNlbnRcIlxuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIGZvcm1hdDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm51bWJlci1wZXJjZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIGRlY2ltYWxQbGFjZXM6IHsgdHlwZTogXCJtYXhcIiwgcGxhY2VzOiAyIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZnJhbWU6IHsgc2hvd1RpdGxlOiB0cnVlLCB0aXRsZTogbWV0cmljLmxhYmVsIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgcG9zaXRpb246IHtcbiAgICAgIHg6IChpbmRleCAlIDMpICogNCxcbiAgICAgIHk6IDIgKyBNYXRoLmZsb29yKGluZGV4IC8gMykgKiAzLFxuICAgICAgd2lkdGg6IDQsXG4gICAgICBoZWlnaHQ6IDMsXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqIEJ1aWxkIG9uZSBjb21wbGV0ZSBkYXNoYm9hcmQgd2l0aCBhdXRvbWF0aWMgY29tcGFuaW9uIEdlbmllIGVuYWJsZWQuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRHZW5lcmF0b3JEYXNoYm9hcmQoaW5wdXQ6IENyZWF0ZUdlbmVyYXRvckRhc2hib2FyZElucHV0KSB7XG4gIGNvbnN0IGZ1bGxUYWJsZSA9IGAke2lucHV0LmxvY2F0aW9uLmNhdGFsb2d9LiR7aW5wdXQubG9jYXRpb24uc2NoZW1hfS4ke2lucHV0LnBsYW4udGFibGV9YDtcbiAgY29uc3QgZGF0ZUNvbHVtbiA9IGlucHV0LnBsYW4uY29sdW1ucy5maW5kKCh7IGdlbmVyYXRvciB9KSA9PiBnZW5lcmF0b3IgPT09IFwiZGF0ZVwiKT8ubmFtZTtcbiAgY29uc3QgY2F0ZWdvcnlDb2x1bW4gPSBpbnB1dC5wbGFuLmNvbHVtbnMuZmluZCgoeyBnZW5lcmF0b3IgfSkgPT4gZ2VuZXJhdG9yID09PSBcImNhdGVnb3J5XCIpPy5uYW1lO1xuICBjb25zdCBtZXRyaWMgPSBpbnB1dC5wbGFuLm1ldHJpY3NbMF0hO1xuICBjb25zdCBtZXRyaWNGaWVsZCA9IGBtZWFzdXJlKCR7bWV0cmljLmxhYmVsfSlgO1xuICBjb25zdCBrcGlSb3dzID0gTWF0aC5jZWlsKGlucHV0LnBsYW4ubWV0cmljcy5sZW5ndGggLyAzKTtcbiAgY29uc3QgY2hhcnRZID0gMiArIGtwaVJvd3MgKiAzO1xuICBjb25zdCBsYXlvdXQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gPSBbXG4gICAge1xuICAgICAgd2lkZ2V0OiB7XG4gICAgICAgIG5hbWU6IFwiaGVhZGVyXCIsXG4gICAgICAgIG11bHRpbGluZVRleHRib3hTcGVjOiB7XG4gICAgICAgICAgbGluZXM6IFtgIyAke2lucHV0LmNvbXBhbnl9OiAke2lucHV0LnB1cnBvc2V9XFxuYCwgYFxcbmAsIGlucHV0LnBsYW4uc3RvcnldLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHBvc2l0aW9uOiB7IHg6IDAsIHk6IDAsIHdpZHRoOiAxMiwgaGVpZ2h0OiAyIH0sXG4gICAgfSxcbiAgICAuLi5pbnB1dC5wbGFuLm1ldHJpY3MubWFwKGNvdW50ZXJXaWRnZXQpLFxuICBdO1xuICBpZiAoZGF0ZUNvbHVtbikge1xuICAgIGxheW91dC5wdXNoKHtcbiAgICAgIHdpZGdldDoge1xuICAgICAgICBuYW1lOiBcIm1ldHJpY190cmVuZFwiLFxuICAgICAgICBxdWVyaWVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJtYWluX3F1ZXJ5XCIsXG4gICAgICAgICAgICBxdWVyeToge1xuICAgICAgICAgICAgICBkYXRhc2V0TmFtZTogXCJnZW5lcmF0ZWRfZmFjdHNcIixcbiAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogYGRhaWx5KCR7ZGF0ZUNvbHVtbn0pYCxcbiAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IGBEQVRFX1RSVU5DKFwiREFZXCIsIFxcYCR7ZGF0ZUNvbHVtbn1cXGApYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHsgbmFtZTogbWV0cmljRmllbGQsIGV4cHJlc3Npb246IGBNRUFTVVJFKFxcYCR7bWV0cmljLmxhYmVsfVxcYClgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIGRpc2FnZ3JlZ2F0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBzcGVjOiB7XG4gICAgICAgICAgdmVyc2lvbjogMyxcbiAgICAgICAgICB3aWRnZXRUeXBlOiBcImxpbmVcIixcbiAgICAgICAgICBlbmNvZGluZ3M6IHtcbiAgICAgICAgICAgIHg6IHtcbiAgICAgICAgICAgICAgZmllbGROYW1lOiBgZGFpbHkoJHtkYXRlQ29sdW1ufSlgLFxuICAgICAgICAgICAgICBzY2FsZTogeyB0eXBlOiBcInRlbXBvcmFsXCIgfSxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IFwiRGF0ZVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHk6IHtcbiAgICAgICAgICAgICAgZmllbGROYW1lOiBtZXRyaWNGaWVsZCxcbiAgICAgICAgICAgICAgc2NhbGU6IHsgdHlwZTogXCJxdWFudGl0YXRpdmVcIiB9LFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogbWV0cmljLmxhYmVsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZyYW1lOiB7IHNob3dUaXRsZTogdHJ1ZSwgdGl0bGU6IGAke21ldHJpYy5sYWJlbH0gdHJlbmRgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcG9zaXRpb246IHsgeDogMCwgeTogY2hhcnRZLCB3aWR0aDogNywgaGVpZ2h0OiA2IH0sXG4gICAgfSk7XG4gIH1cbiAgaWYgKGNhdGVnb3J5Q29sdW1uKSB7XG4gICAgbGF5b3V0LnB1c2goe1xuICAgICAgd2lkZ2V0OiB7XG4gICAgICAgIG5hbWU6IFwibWV0cmljX2J5X2NhdGVnb3J5XCIsXG4gICAgICAgIHF1ZXJpZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIm1haW5fcXVlcnlcIixcbiAgICAgICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgICAgIGRhdGFzZXROYW1lOiBcImdlbmVyYXRlZF9mYWN0c1wiLFxuICAgICAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICAgICB7IG5hbWU6IGNhdGVnb3J5Q29sdW1uLCBleHByZXNzaW9uOiBgXFxgJHtjYXRlZ29yeUNvbHVtbn1cXGBgIH0sXG4gICAgICAgICAgICAgICAgeyBuYW1lOiBtZXRyaWNGaWVsZCwgZXhwcmVzc2lvbjogYE1FQVNVUkUoXFxgJHttZXRyaWMubGFiZWx9XFxgKWAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgZGlzYWdncmVnYXRlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHNwZWM6IHtcbiAgICAgICAgICB2ZXJzaW9uOiAzLFxuICAgICAgICAgIHdpZGdldFR5cGU6IFwiYmFyXCIsXG4gICAgICAgICAgZW5jb2RpbmdzOiB7XG4gICAgICAgICAgICB4OiB7XG4gICAgICAgICAgICAgIGZpZWxkTmFtZTogY2F0ZWdvcnlDb2x1bW4sXG4gICAgICAgICAgICAgIHNjYWxlOiB7IHR5cGU6IFwiY2F0ZWdvcmljYWxcIiB9LFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogY2F0ZWdvcnlDb2x1bW4sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeToge1xuICAgICAgICAgICAgICBmaWVsZE5hbWU6IG1ldHJpY0ZpZWxkLFxuICAgICAgICAgICAgICBzY2FsZTogeyB0eXBlOiBcInF1YW50aXRhdGl2ZVwiIH0sXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBtZXRyaWMubGFiZWwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZnJhbWU6IHsgc2hvd1RpdGxlOiB0cnVlLCB0aXRsZTogYCR7bWV0cmljLmxhYmVsfSBieSAke2NhdGVnb3J5Q29sdW1ufWAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBwb3NpdGlvbjogeyB4OiA3LCB5OiBjaGFydFksIHdpZHRoOiA1LCBoZWlnaHQ6IDYgfSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gU2VyaWFsaXplZERhc2hib2FyZFNjaGVtYS5wYXJzZSh7XG4gICAgZGF0YXNldHM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJnZW5lcmF0ZWRfZmFjdHNcIixcbiAgICAgICAgZGlzcGxheU5hbWU6IGlucHV0LnBsYW4udGFibGUsXG4gICAgICAgIGFzc2V0X25hbWU6IGZ1bGxUYWJsZSxcbiAgICAgICAgY29sdW1uczogaW5wdXQucGxhbi5tZXRyaWNzLm1hcChtZWFzdXJlKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBwYWdlczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcIm92ZXJ2aWV3XCIsXG4gICAgICAgIGRpc3BsYXlOYW1lOiBcIk92ZXJ2aWV3XCIsXG4gICAgICAgIHBhZ2VUeXBlOiBcIlBBR0VfVFlQRV9DQU5WQVNcIixcbiAgICAgICAgbGF5b3V0VmVyc2lvbjogXCJHUklEX1YxXCIsXG4gICAgICAgIGxheW91dCxcbiAgICAgIH0sXG4gICAgXSxcbiAgICB1aVNldHRpbmdzOiB7XG4gICAgICB0aGVtZToge1xuICAgICAgICBjYW52YXNCYWNrZ3JvdW5kQ29sb3I6IHtcbiAgICAgICAgICBsaWdodDogaW5wdXQuYnJhbmQuY29sb3JzLmJhY2tncm91bmQsXG4gICAgICAgICAgZGFyazogaW5wdXQuYnJhbmQuY29sb3JzLmZvcmVncm91bmQsXG4gICAgICAgIH0sXG4gICAgICAgIHdpZGdldEJhY2tncm91bmRDb2xvcjoge1xuICAgICAgICAgIGxpZ2h0OiBpbnB1dC5icmFuZC5jb2xvcnMuc3VyZmFjZSxcbiAgICAgICAgICBkYXJrOiBpbnB1dC5icmFuZC5jb2xvcnMucHJpbWFyeSxcbiAgICAgICAgfSxcbiAgICAgICAgZm9udENvbG9yOiB7XG4gICAgICAgICAgbGlnaHQ6IGlucHV0LmJyYW5kLmNvbG9ycy5mb3JlZ3JvdW5kLFxuICAgICAgICAgIGRhcms6IGlucHV0LmJyYW5kLmNvbG9ycy5iYWNrZ3JvdW5kLFxuICAgICAgICB9LFxuICAgICAgICBzZWxlY3Rpb25Db2xvcjoge1xuICAgICAgICAgIGxpZ2h0OiBpbnB1dC5icmFuZC5jb2xvcnMucHJpbWFyeSxcbiAgICAgICAgICBkYXJrOiBpbnB1dC5icmFuZC5jb2xvcnMuYWNjZW50LFxuICAgICAgICB9LFxuICAgICAgICB2aXN1YWxpemF0aW9uQ29sb3JzOiBbXG4gICAgICAgICAgaW5wdXQuYnJhbmQuY29sb3JzLnByaW1hcnksXG4gICAgICAgICAgaW5wdXQuYnJhbmQuY29sb3JzLmFjY2VudCxcbiAgICAgICAgICBpbnB1dC5icmFuZC5jb2xvcnMucHJpbWFyeUhvdmVyLFxuICAgICAgICAgIGlucHV0LmJyYW5kLmNvbG9ycy5tdXRlZCxcbiAgICAgICAgXSxcbiAgICAgICAgd2lkZ2V0SGVhZGVyQWxpZ25tZW50OiBcIkxFRlRcIixcbiAgICAgIH0sXG4gICAgICBnZW5pZVNwYWNlOiB7XG4gICAgICAgIGlzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgZW5hYmxlbWVudE1vZGU6IFwiQVVUT1wiLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqIENyZWF0ZSBhbmQgcHVibGlzaCBhIGRhc2hib2FyZCBhcyB0aGUgYWN0aXZlIE9CTyB1c2VyLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUdlbmVyYXRvckRhc2hib2FyZChcbiAgaW5wdXQ6IENyZWF0ZUdlbmVyYXRvckRhc2hib2FyZElucHV0LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8R2VuZXJhdGVkRGFzaGJvYXJkPiB7XG4gIGNvbnN0IGlkZW50aXR5ID0gYXdhaXQgcmVzb2x2ZUdlbmVyYXRvcklkZW50aXR5KCk7XG4gIGlmIChpZGVudGl0eS5wcmluY2lwYWwgIT09IGlucHV0LmxvY2F0aW9uLnByaW5jaXBhbCkge1xuICAgIHRocm93IG5ldyBFeGVjdXRpb25FcnJvcihcIkRhc2hib2FyZCBwcmluY2lwYWwgZG9lcyBub3QgbWF0Y2ggdGhlIGFjdGl2ZSBPQk8gdXNlclwiKTtcbiAgfVxuICBjb25zdCBsZWdhY3kgPSBpZGVudGl0eS51c2VyQ2xpZW50LnRvTGVnYWN5V29ya3NwYWNlQ2xpZW50KCk7XG4gIGNvbnN0IHBhcmVudFBhdGggPSBgL1dvcmtzcGFjZS9Vc2Vycy8ke2lkZW50aXR5LnByaW5jaXBhbH0vLmRieC10b29scy9nZW5lcmF0b3IvJHtpbnB1dC5sb2NhdGlvbi5zY2hlbWF9YDtcbiAgY29uc3QgY29udGV4dCA9IHNpZ25hbCA/IGRhdGFicmlja3MudG9Db250ZXh0KHNpZ25hbCkgOiB1bmRlZmluZWQ7XG4gIGF3YWl0IGxlZ2FjeS53b3Jrc3BhY2UubWtkaXJzKHsgcGF0aDogcGFyZW50UGF0aCB9LCBjb250ZXh0KTtcbiAgY29uc3QgY3JlYXRlZCA9IGF3YWl0IGxlZ2FjeS5sYWtldmlldy5jcmVhdGUoXG4gICAge1xuICAgICAgZGFzaGJvYXJkOiB7XG4gICAgICAgIGRpc3BsYXlfbmFtZTogYCR7aW5wdXQuY29tcGFueX0gJHtpbnB1dC5wdXJwb3NlfSAke2hhc2guaWQoNil9YCxcbiAgICAgICAgcGFyZW50X3BhdGg6IHBhcmVudFBhdGgsXG4gICAgICAgIHdhcmVob3VzZV9pZDogaW5wdXQud2FyZWhvdXNlSWQsXG4gICAgICAgIHNlcmlhbGl6ZWRfZGFzaGJvYXJkOiBKU09OLnN0cmluZ2lmeShidWlsZEdlbmVyYXRvckRhc2hib2FyZChpbnB1dCkpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbnRleHQsXG4gICk7XG4gIGlmICghY3JlYXRlZC5kYXNoYm9hcmRfaWQpIHtcbiAgICB0aHJvdyBuZXcgRXhlY3V0aW9uRXJyb3IoXCJMYWtldmlldyBjcmVhdGUgcmV0dXJuZWQgbm8gZGFzaGJvYXJkIGlkXCIpO1xuICB9XG4gIGF3YWl0IGxlZ2FjeS5sYWtldmlldy5wdWJsaXNoKFxuICAgIHtcbiAgICAgIGRhc2hib2FyZF9pZDogY3JlYXRlZC5kYXNoYm9hcmRfaWQsXG4gICAgICB3YXJlaG91c2VfaWQ6IGlucHV0LndhcmVob3VzZUlkLFxuICAgICAgZW1iZWRfY3JlZGVudGlhbHM6IGZhbHNlLFxuICAgIH0sXG4gICAgY29udGV4dCxcbiAgKTtcbiAgcmV0dXJuIEdlbmVyYXRlZERhc2hib2FyZFNjaGVtYS5wYXJzZSh7XG4gICAgZGFzaGJvYXJkSWQ6IGNyZWF0ZWQuZGFzaGJvYXJkX2lkLFxuICAgIC4uLihjcmVhdGVkLnBhdGggPyB7IHBhdGg6IGNyZWF0ZWQucGF0aCB9IDoge30pLFxuICAgIGNvbXBhbmlvbkdlbmllOiBcIkFVVE9cIixcbiAgfSk7XG59XG4iXX0=
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Rhc2hib2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUMsT0FBTyxFQUNMLHdCQUF3QixHQUt6QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsTUFBTSx5QkFBeUIsR0FBRyxDQUFDO0tBQ2hDLE1BQU0sQ0FBQztJQUNOLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEQsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztDQUM5QyxDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUM7QUFrQlosbUVBQW1FO0FBQ25FLFNBQVMsT0FBTyxDQUFDLE1BQXVCO0lBQ3RDLE1BQU0sVUFBVSxHQUNkLE1BQU0sQ0FBQyxXQUFXLEtBQUssT0FB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QUFDO0lBQ0QsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDM0I7UUFDRSxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7UUFDbEMsWUFBWSxFQUFFLEtBQUssQ0FBQyxXQUFXO1FBQy9CLGlCQUFpQixFQUFFLEtBQUs7S0FDekIsRUFDRCxPQUFPLENBQ1IsQ0FBQztJQUNGLE9BQU8sd0JBQXdCLENBQUMsS0FBSyxDQUFDO1FBQ3BDLFdBQVcsRUFBRSxPQUFPLENBQUMsWUFBWTtRQUNqQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0MsY0FBYyxFQUFFLE1BQU07S0FDdkIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGV0ZXJtaW5pc3RpYyBBSS9CSSBkYXNoYm9hcmQgYXNzZW1ibHkgYW5kIE9CTyBwdWJsaWNhdGlvbi5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgRXhlY3V0aW9uRXJyb3IgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyB0b0NvbnRleHQgfSBmcm9tIFwiQGRieC10b29scy9hcHBraXRcIjtcbmltcG9ydCB7IGlkIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRDb250ZXh0IH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIEdlbmVyYXRlZERhc2hib2FyZFNjaGVtYSxcbiAgdHlwZSBHZW5lcmF0ZWREYXNoYm9hcmQsXG4gIHR5cGUgR2VuZXJhdGVkTWV0cmljLFxuICB0eXBlIEdlbmVyYXRlZFNjaGVtYSxcbiAgdHlwZSBHZW5lcmF0b3JQbGFuLFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgcmVzb2x2ZUdlbmVyYXRvcklkZW50aXR5IH0gZnJvbSBcIi4vbmFtZXNwYWNlLnRzXCI7XG5cbmNvbnN0IFNlcmlhbGl6ZWREYXNoYm9hcmRTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGRhdGFzZXRzOiB6LmFycmF5KHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKSkubWluKDEpLFxuICAgIHBhZ2VzOiB6LmFycmF5KHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKSkubWluKDEpLFxuICAgIHVpU2V0dGluZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKSxcbiAgfSlcbiAgLnN0cmljdCgpO1xuXG4vKiogSW5wdXRzIGZvciBkYXNoYm9hcmQgYXNzZW1ibHkgYW5kIHB1YmxpY2F0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVHZW5lcmF0b3JEYXNoYm9hcmRJbnB1dCB7XG4gIC8qKiBHZW5lcmF0ZWQgc2NoZW1hIGNvbnRhaW5pbmcgdGhlIGZhY3QgdGFibGUuICovXG4gIGxvY2F0aW9uOiBHZW5lcmF0ZWRTY2hlbWE7XG4gIC8qKiBWYWxpZGF0ZWQgZGF0YSBhbmQgbWV0cmljIHBsYW4uICovXG4gIHBsYW46IEdlbmVyYXRvclBsYW47XG4gIC8qKiBCcmFuZCBhcHBsaWVkIHRvIHRoZSBkYXNoYm9hcmQgdGhlbWUuICovXG4gIGJyYW5kOiBCcmFuZENvbnRleHQ7XG4gIC8qKiBTUUwgd2FyZWhvdXNlIHVzZWQgYnkgdGhlIGRhc2hib2FyZC4gKi9cbiAgd2FyZWhvdXNlSWQ6IHN0cmluZztcbiAgLyoqIENvbXBhbnkgZGlzcGxheSBuYW1lLiAqL1xuICBjb21wYW55OiBzdHJpbmc7XG4gIC8qKiBEZW1vIHB1cnBvc2UuICovXG4gIHB1cnBvc2U6IHN0cmluZztcbn1cblxuLyoqIENvbXBpbGUgb25lIG1ldHJpYyBpbnRvIGEgcmV1c2FibGUgTGFrZXZpZXcgZGF0YXNldCBtZWFzdXJlLiAqL1xuZnVuY3Rpb24gbWVhc3VyZShtZXRyaWM6IEdlbmVyYXRlZE1ldHJpYykge1xuICBjb25zdCBleHByZXNzaW9uID1cbiAgICBtZXRyaWMuYWdncmVnYXRpb24gPT09IFwiY291bnRcIlxuICAgICAgPyBcIkNPVU5UKGAqYClcIlxuICAgICAgOiBgJHttZXRyaWMuYWdncmVnYXRpb24gPT09IFwic3VtXCIgPyBcIlNVTVwiIDogXCJBVkdcIn0oXFxgJHttZXRyaWMuY29sdW1ufVxcYClgO1xuICByZXR1cm4ge1xuICAgIGRpc3BsYXlOYW1lOiBtZXRyaWMubGFiZWwsXG4gICAgZGVzY3JpcHRpb246IG1ldHJpYy5kZWZpbml0aW9uLFxuICAgIGV4cHJlc3Npb24sXG4gIH07XG59XG5cbi8qKiBDb3VudGVyIHdpZGdldCBib3VuZCB0byBvbmUgZGF0YXNldCBtZWFzdXJlLiAqL1xuZnVuY3Rpb24gY291bnRlcldpZGdldChtZXRyaWM6IEdlbmVyYXRlZE1ldHJpYywgaW5kZXg6IG51bWJlcikge1xuICBjb25zdCBmaWVsZE5hbWUgPSBgbWVhc3VyZSgke21ldHJpYy5sYWJlbH0pYDtcbiAgcmV0dXJuIHtcbiAgICB3aWRnZXQ6IHtcbiAgICAgIG5hbWU6IGBrcGlfJHttZXRyaWMubmFtZX1gLFxuICAgICAgcXVlcmllczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJtYWluX3F1ZXJ5XCIsXG4gICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgIGRhdGFzZXROYW1lOiBcImdlbmVyYXRlZF9mYWN0c1wiLFxuICAgICAgICAgICAgZmllbGRzOiBbeyBuYW1lOiBmaWVsZE5hbWUsIGV4cHJlc3Npb246IGBNRUFTVVJFKFxcYCR7bWV0cmljLmxhYmVsfVxcYClgIH1dLFxuICAgICAgICAgICAgZGlzYWdncmVnYXRlZDogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzcGVjOiB7XG4gICAgICAgIHZlcnNpb246IDIsXG4gICAgICAgIHdpZGdldFR5cGU6IFwiY291bnRlclwiLFxuICAgICAgICBlbmNvZGluZ3M6IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgZmllbGROYW1lLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6IG1ldHJpYy5sYWJlbCxcbiAgICAgICAgICAgIC4uLihtZXRyaWMudW5pdCA9PT0gXCJwZXJjZW50XCJcbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBmb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJudW1iZXItcGVyY2VudFwiLFxuICAgICAgICAgICAgICAgICAgICBkZWNpbWFsUGxhY2VzOiB7IHR5cGU6IFwibWF4XCIsIHBsYWNlczogMiB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGZyYW1lOiB7IHNob3dUaXRsZTogdHJ1ZSwgdGl0bGU6IG1ldHJpYy5sYWJlbCB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHBvc2l0aW9uOiB7XG4gICAgICB4OiAoaW5kZXggJSAzKSAqIDQsXG4gICAgICB5OiAyICsgTWF0aC5mbG9vcihpbmRleCAvIDMpICogMyxcbiAgICAgIHdpZHRoOiA0LFxuICAgICAgaGVpZ2h0OiAzLFxuICAgIH0sXG4gIH07XG59XG5cbi8qKiBCdWlsZCBvbmUgY29tcGxldGUgZGFzaGJvYXJkIHdpdGggYXV0b21hdGljIGNvbXBhbmlvbiBHZW5pZSBlbmFibGVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkR2VuZXJhdG9yRGFzaGJvYXJkKGlucHV0OiBDcmVhdGVHZW5lcmF0b3JEYXNoYm9hcmRJbnB1dCkge1xuICBjb25zdCBmdWxsVGFibGUgPSBgJHtpbnB1dC5sb2NhdGlvbi5jYXRhbG9nfS4ke2lucHV0LmxvY2F0aW9uLnNjaGVtYX0uJHtpbnB1dC5wbGFuLnRhYmxlfWA7XG4gIGNvbnN0IGRhdGVDb2x1bW4gPSBpbnB1dC5wbGFuLmNvbHVtbnMuZmluZCgoeyBnZW5lcmF0b3IgfSkgPT4gZ2VuZXJhdG9yID09PSBcImRhdGVcIik/Lm5hbWU7XG4gIGNvbnN0IGNhdGVnb3J5Q29sdW1uID0gaW5wdXQucGxhbi5jb2x1bW5zLmZpbmQoKHsgZ2VuZXJhdG9yIH0pID0+IGdlbmVyYXRvciA9PT0gXCJjYXRlZ29yeVwiKT8ubmFtZTtcbiAgY29uc3QgbWV0cmljID0gaW5wdXQucGxhbi5tZXRyaWNzWzBdITtcbiAgY29uc3QgbWV0cmljRmllbGQgPSBgbWVhc3VyZSgke21ldHJpYy5sYWJlbH0pYDtcbiAgY29uc3Qga3BpUm93cyA9IE1hdGguY2VpbChpbnB1dC5wbGFuLm1ldHJpY3MubGVuZ3RoIC8gMyk7XG4gIGNvbnN0IGNoYXJ0WSA9IDIgKyBrcGlSb3dzICogMztcbiAgY29uc3QgbGF5b3V0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdID0gW1xuICAgIHtcbiAgICAgIHdpZGdldDoge1xuICAgICAgICBuYW1lOiBcImhlYWRlclwiLFxuICAgICAgICBtdWx0aWxpbmVUZXh0Ym94U3BlYzoge1xuICAgICAgICAgIGxpbmVzOiBbYCMgJHtpbnB1dC5jb21wYW55fTogJHtpbnB1dC5wdXJwb3NlfVxcbmAsIGBcXG5gLCBpbnB1dC5wbGFuLnN0b3J5XSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBwb3NpdGlvbjogeyB4OiAwLCB5OiAwLCB3aWR0aDogMTIsIGhlaWdodDogMiB9LFxuICAgIH0sXG4gICAgLi4uaW5wdXQucGxhbi5tZXRyaWNzLm1hcChjb3VudGVyV2lkZ2V0KSxcbiAgXTtcbiAgaWYgKGRhdGVDb2x1bW4pIHtcbiAgICBsYXlvdXQucHVzaCh7XG4gICAgICB3aWRnZXQ6IHtcbiAgICAgICAgbmFtZTogXCJtZXRyaWNfdHJlbmRcIixcbiAgICAgICAgcXVlcmllczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwibWFpbl9xdWVyeVwiLFxuICAgICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgICAgZGF0YXNldE5hbWU6IFwiZ2VuZXJhdGVkX2ZhY3RzXCIsXG4gICAgICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGBkYWlseSgke2RhdGVDb2x1bW59KWAsXG4gICAgICAgICAgICAgICAgICBleHByZXNzaW9uOiBgREFURV9UUlVOQyhcIkRBWVwiLCBcXGAke2RhdGVDb2x1bW59XFxgKWAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IG5hbWU6IG1ldHJpY0ZpZWxkLCBleHByZXNzaW9uOiBgTUVBU1VSRShcXGAke21ldHJpYy5sYWJlbH1cXGApYCB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBkaXNhZ2dyZWdhdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgc3BlYzoge1xuICAgICAgICAgIHZlcnNpb246IDMsXG4gICAgICAgICAgd2lkZ2V0VHlwZTogXCJsaW5lXCIsXG4gICAgICAgICAgZW5jb2RpbmdzOiB7XG4gICAgICAgICAgICB4OiB7XG4gICAgICAgICAgICAgIGZpZWxkTmFtZTogYGRhaWx5KCR7ZGF0ZUNvbHVtbn0pYCxcbiAgICAgICAgICAgICAgc2NhbGU6IHsgdHlwZTogXCJ0ZW1wb3JhbFwiIH0sXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBcIkRhdGVcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5OiB7XG4gICAgICAgICAgICAgIGZpZWxkTmFtZTogbWV0cmljRmllbGQsXG4gICAgICAgICAgICAgIHNjYWxlOiB7IHR5cGU6IFwicXVhbnRpdGF0aXZlXCIgfSxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IG1ldHJpYy5sYWJlbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmcmFtZTogeyBzaG93VGl0bGU6IHRydWUsIHRpdGxlOiBgJHttZXRyaWMubGFiZWx9IHRyZW5kYCB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHBvc2l0aW9uOiB7IHg6IDAsIHk6IGNoYXJ0WSwgd2lkdGg6IDcsIGhlaWdodDogNiB9LFxuICAgIH0pO1xuICB9XG4gIGlmIChjYXRlZ29yeUNvbHVtbikge1xuICAgIGxheW91dC5wdXNoKHtcbiAgICAgIHdpZGdldDoge1xuICAgICAgICBuYW1lOiBcIm1ldHJpY19ieV9jYXRlZ29yeVwiLFxuICAgICAgICBxdWVyaWVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJtYWluX3F1ZXJ5XCIsXG4gICAgICAgICAgICBxdWVyeToge1xuICAgICAgICAgICAgICBkYXRhc2V0TmFtZTogXCJnZW5lcmF0ZWRfZmFjdHNcIixcbiAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgeyBuYW1lOiBjYXRlZ29yeUNvbHVtbiwgZXhwcmVzc2lvbjogYFxcYCR7Y2F0ZWdvcnlDb2x1bW59XFxgYCB9LFxuICAgICAgICAgICAgICAgIHsgbmFtZTogbWV0cmljRmllbGQsIGV4cHJlc3Npb246IGBNRUFTVVJFKFxcYCR7bWV0cmljLmxhYmVsfVxcYClgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIGRpc2FnZ3JlZ2F0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBzcGVjOiB7XG4gICAgICAgICAgdmVyc2lvbjogMyxcbiAgICAgICAgICB3aWRnZXRUeXBlOiBcImJhclwiLFxuICAgICAgICAgIGVuY29kaW5nczoge1xuICAgICAgICAgICAgeDoge1xuICAgICAgICAgICAgICBmaWVsZE5hbWU6IGNhdGVnb3J5Q29sdW1uLFxuICAgICAgICAgICAgICBzY2FsZTogeyB0eXBlOiBcImNhdGVnb3JpY2FsXCIgfSxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IGNhdGVnb3J5Q29sdW1uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHk6IHtcbiAgICAgICAgICAgICAgZmllbGROYW1lOiBtZXRyaWNGaWVsZCxcbiAgICAgICAgICAgICAgc2NhbGU6IHsgdHlwZTogXCJxdWFudGl0YXRpdmVcIiB9LFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogbWV0cmljLmxhYmVsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZyYW1lOiB7IHNob3dUaXRsZTogdHJ1ZSwgdGl0bGU6IGAke21ldHJpYy5sYWJlbH0gYnkgJHtjYXRlZ29yeUNvbHVtbn1gIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcG9zaXRpb246IHsgeDogNywgeTogY2hhcnRZLCB3aWR0aDogNSwgaGVpZ2h0OiA2IH0sXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIFNlcmlhbGl6ZWREYXNoYm9hcmRTY2hlbWEucGFyc2Uoe1xuICAgIGRhdGFzZXRzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiZ2VuZXJhdGVkX2ZhY3RzXCIsXG4gICAgICAgIGRpc3BsYXlOYW1lOiBpbnB1dC5wbGFuLnRhYmxlLFxuICAgICAgICBhc3NldF9uYW1lOiBmdWxsVGFibGUsXG4gICAgICAgIGNvbHVtbnM6IGlucHV0LnBsYW4ubWV0cmljcy5tYXAobWVhc3VyZSksXG4gICAgICB9LFxuICAgIF0sXG4gICAgcGFnZXM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJvdmVydmlld1wiLFxuICAgICAgICBkaXNwbGF5TmFtZTogXCJPdmVydmlld1wiLFxuICAgICAgICBwYWdlVHlwZTogXCJQQUdFX1RZUEVfQ0FOVkFTXCIsXG4gICAgICAgIGxheW91dFZlcnNpb246IFwiR1JJRF9WMVwiLFxuICAgICAgICBsYXlvdXQsXG4gICAgICB9LFxuICAgIF0sXG4gICAgdWlTZXR0aW5nczoge1xuICAgICAgdGhlbWU6IHtcbiAgICAgICAgY2FudmFzQmFja2dyb3VuZENvbG9yOiB7XG4gICAgICAgICAgbGlnaHQ6IGlucHV0LmJyYW5kLmNvbG9ycy5iYWNrZ3JvdW5kLFxuICAgICAgICAgIGRhcms6IGlucHV0LmJyYW5kLmNvbG9ycy5mb3JlZ3JvdW5kLFxuICAgICAgICB9LFxuICAgICAgICB3aWRnZXRCYWNrZ3JvdW5kQ29sb3I6IHtcbiAgICAgICAgICBsaWdodDogaW5wdXQuYnJhbmQuY29sb3JzLnN1cmZhY2UsXG4gICAgICAgICAgZGFyazogaW5wdXQuYnJhbmQuY29sb3JzLnByaW1hcnksXG4gICAgICAgIH0sXG4gICAgICAgIGZvbnRDb2xvcjoge1xuICAgICAgICAgIGxpZ2h0OiBpbnB1dC5icmFuZC5jb2xvcnMuZm9yZWdyb3VuZCxcbiAgICAgICAgICBkYXJrOiBpbnB1dC5icmFuZC5jb2xvcnMuYmFja2dyb3VuZCxcbiAgICAgICAgfSxcbiAgICAgICAgc2VsZWN0aW9uQ29sb3I6IHtcbiAgICAgICAgICBsaWdodDogaW5wdXQuYnJhbmQuY29sb3JzLnByaW1hcnksXG4gICAgICAgICAgZGFyazogaW5wdXQuYnJhbmQuY29sb3JzLmFjY2VudCxcbiAgICAgICAgfSxcbiAgICAgICAgdmlzdWFsaXphdGlvbkNvbG9yczogW1xuICAgICAgICAgIGlucHV0LmJyYW5kLmNvbG9ycy5wcmltYXJ5LFxuICAgICAgICAgIGlucHV0LmJyYW5kLmNvbG9ycy5hY2NlbnQsXG4gICAgICAgICAgaW5wdXQuYnJhbmQuY29sb3JzLnByaW1hcnlIb3ZlcixcbiAgICAgICAgICBpbnB1dC5icmFuZC5jb2xvcnMubXV0ZWQsXG4gICAgICAgIF0sXG4gICAgICAgIHdpZGdldEhlYWRlckFsaWdubWVudDogXCJMRUZUXCIsXG4gICAgICB9LFxuICAgICAgZ2VuaWVTcGFjZToge1xuICAgICAgICBpc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIGVuYWJsZW1lbnRNb2RlOiBcIkFVVE9cIixcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKiBDcmVhdGUgYW5kIHB1Ymxpc2ggYSBkYXNoYm9hcmQgYXMgdGhlIGFjdGl2ZSBPQk8gdXNlci4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVHZW5lcmF0b3JEYXNoYm9hcmQoXG4gIGlucHV0OiBDcmVhdGVHZW5lcmF0b3JEYXNoYm9hcmRJbnB1dCxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPEdlbmVyYXRlZERhc2hib2FyZD4ge1xuICBjb25zdCBpZGVudGl0eSA9IGF3YWl0IHJlc29sdmVHZW5lcmF0b3JJZGVudGl0eSgpO1xuICBpZiAoaWRlbnRpdHkucHJpbmNpcGFsICE9PSBpbnB1dC5sb2NhdGlvbi5wcmluY2lwYWwpIHtcbiAgICB0aHJvdyBuZXcgRXhlY3V0aW9uRXJyb3IoXCJEYXNoYm9hcmQgcHJpbmNpcGFsIGRvZXMgbm90IG1hdGNoIHRoZSBhY3RpdmUgT0JPIHVzZXJcIik7XG4gIH1cbiAgY29uc3QgbGVnYWN5ID0gaWRlbnRpdHkudXNlckNsaWVudC50b0xlZ2FjeVdvcmtzcGFjZUNsaWVudCgpO1xuICBjb25zdCBwYXJlbnRQYXRoID0gYC9Xb3Jrc3BhY2UvVXNlcnMvJHtpZGVudGl0eS5wcmluY2lwYWx9Ly5kYngtdG9vbHMvZ2VuZXJhdG9yLyR7aW5wdXQubG9jYXRpb24uc2NoZW1hfWA7XG4gIGNvbnN0IGNvbnRleHQgPSBzaWduYWwgPyB0b0NvbnRleHQoc2lnbmFsKSA6IHVuZGVmaW5lZDtcbiAgYXdhaXQgbGVnYWN5LndvcmtzcGFjZS5ta2RpcnMoeyBwYXRoOiBwYXJlbnRQYXRoIH0sIGNvbnRleHQpO1xuICBjb25zdCBjcmVhdGVkID0gYXdhaXQgbGVnYWN5Lmxha2V2aWV3LmNyZWF0ZShcbiAgICB7XG4gICAgICBkYXNoYm9hcmQ6IHtcbiAgICAgICAgZGlzcGxheV9uYW1lOiBgJHtpbnB1dC5jb21wYW55fSAke2lucHV0LnB1cnBvc2V9ICR7aWQoNil9YCxcbiAgICAgICAgcGFyZW50X3BhdGg6IHBhcmVudFBhdGgsXG4gICAgICAgIHdhcmVob3VzZV9pZDogaW5wdXQud2FyZWhvdXNlSWQsXG4gICAgICAgIHNlcmlhbGl6ZWRfZGFzaGJvYXJkOiBKU09OLnN0cmluZ2lmeShidWlsZEdlbmVyYXRvckRhc2hib2FyZChpbnB1dCkpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbnRleHQsXG4gICk7XG4gIGlmICghY3JlYXRlZC5kYXNoYm9hcmRfaWQpIHtcbiAgICB0aHJvdyBuZXcgRXhlY3V0aW9uRXJyb3IoXCJMYWtldmlldyBjcmVhdGUgcmV0dXJuZWQgbm8gZGFzaGJvYXJkIGlkXCIpO1xuICB9XG4gIGF3YWl0IGxlZ2FjeS5sYWtldmlldy5wdWJsaXNoKFxuICAgIHtcbiAgICAgIGRhc2hib2FyZF9pZDogY3JlYXRlZC5kYXNoYm9hcmRfaWQsXG4gICAgICB3YXJlaG91c2VfaWQ6IGlucHV0LndhcmVob3VzZUlkLFxuICAgICAgZW1iZWRfY3JlZGVudGlhbHM6IGZhbHNlLFxuICAgIH0sXG4gICAgY29udGV4dCxcbiAgKTtcbiAgcmV0dXJuIEdlbmVyYXRlZERhc2hib2FyZFNjaGVtYS5wYXJzZSh7XG4gICAgZGFzaGJvYXJkSWQ6IGNyZWF0ZWQuZGFzaGJvYXJkX2lkLFxuICAgIC4uLihjcmVhdGVkLnBhdGggPyB7IHBhdGg6IGNyZWF0ZWQucGF0aCB9IDoge30pLFxuICAgIGNvbXBhbmlvbkdlbmllOiBcIkFVVE9cIixcbiAgfSk7XG59XG4iXX0=
package/lib/src/data.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * @module
5
5
  */
6
6
  import { type WorkspaceClient } from "@databricks/appkit";
7
- import type { GeneratedMetric, GeneratedSchema, GeneratorPlan, MaterializedGeneratorData } from "@dbx-tools/shared-generator/workflow";
7
+ import type { GeneratedMetric, GeneratedSchema, GeneratorPlan, MaterializedGeneratorData } from "@dbx-tools/shared-generator";
8
8
  type StatementResponse = Awaited<ReturnType<WorkspaceClient["statementExecution"]["getStatement"]>>;
9
9
  /** Compile the generated table statement without accepting model-authored SQL. */
10
10
  export declare function compileGeneratorTableSql(location: GeneratedSchema, plan: GeneratorPlan): string;