@vertesia/cli 0.42.2

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 (126) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -0
  3. package/bin/app.js +3 -0
  4. package/lib/client.d.ts +4 -0
  5. package/lib/client.d.ts.map +1 -0
  6. package/lib/client.js +21 -0
  7. package/lib/client.js.map +1 -0
  8. package/lib/codegen/CodeBuilder.d.ts +16 -0
  9. package/lib/codegen/CodeBuilder.d.ts.map +1 -0
  10. package/lib/codegen/CodeBuilder.js +115 -0
  11. package/lib/codegen/CodeBuilder.js.map +1 -0
  12. package/lib/codegen/InteractionVersion.d.ts +29 -0
  13. package/lib/codegen/InteractionVersion.d.ts.map +1 -0
  14. package/lib/codegen/InteractionVersion.js +94 -0
  15. package/lib/codegen/InteractionVersion.js.map +1 -0
  16. package/lib/codegen/index.d.ts +3 -0
  17. package/lib/codegen/index.d.ts.map +1 -0
  18. package/lib/codegen/index.js +24 -0
  19. package/lib/codegen/index.js.map +1 -0
  20. package/lib/codegen/template.d.ts +3 -0
  21. package/lib/codegen/template.d.ts.map +1 -0
  22. package/lib/codegen/template.js +28 -0
  23. package/lib/codegen/template.js.map +1 -0
  24. package/lib/codegen/utils.d.ts +2 -0
  25. package/lib/codegen/utils.d.ts.map +1 -0
  26. package/lib/codegen/utils.js +4 -0
  27. package/lib/codegen/utils.js.map +1 -0
  28. package/lib/datagen/index.d.ts +3 -0
  29. package/lib/datagen/index.d.ts.map +1 -0
  30. package/lib/datagen/index.js +47 -0
  31. package/lib/datagen/index.js.map +1 -0
  32. package/lib/envs/index.d.ts +3 -0
  33. package/lib/envs/index.d.ts.map +1 -0
  34. package/lib/envs/index.js +24 -0
  35. package/lib/envs/index.js.map +1 -0
  36. package/lib/index.d.ts +2 -0
  37. package/lib/index.d.ts.map +1 -0
  38. package/lib/index.js +169 -0
  39. package/lib/index.js.map +1 -0
  40. package/lib/interactions/index.d.ts +3 -0
  41. package/lib/interactions/index.d.ts.map +1 -0
  42. package/lib/interactions/index.js +37 -0
  43. package/lib/interactions/index.js.map +1 -0
  44. package/lib/memory/index.d.ts +3 -0
  45. package/lib/memory/index.d.ts.map +1 -0
  46. package/lib/memory/index.js +16 -0
  47. package/lib/memory/index.js.map +1 -0
  48. package/lib/objects/commands.d.ts +14 -0
  49. package/lib/objects/commands.d.ts.map +1 -0
  50. package/lib/objects/commands.js +240 -0
  51. package/lib/objects/commands.js.map +1 -0
  52. package/lib/objects/index.d.ts +3 -0
  53. package/lib/objects/index.d.ts.map +1 -0
  54. package/lib/objects/index.js +37 -0
  55. package/lib/objects/index.js.map +1 -0
  56. package/lib/package.d.ts +8 -0
  57. package/lib/package.d.ts.map +1 -0
  58. package/lib/package.js +54 -0
  59. package/lib/package.js.map +1 -0
  60. package/lib/profiles/commands.d.ts +10 -0
  61. package/lib/profiles/commands.d.ts.map +1 -0
  62. package/lib/profiles/commands.js +167 -0
  63. package/lib/profiles/commands.js.map +1 -0
  64. package/lib/profiles/index.d.ts +57 -0
  65. package/lib/profiles/index.d.ts.map +1 -0
  66. package/lib/profiles/index.js +255 -0
  67. package/lib/profiles/index.js.map +1 -0
  68. package/lib/profiles/server/cors.d.ts +3 -0
  69. package/lib/profiles/server/cors.d.ts.map +1 -0
  70. package/lib/profiles/server/cors.js +18 -0
  71. package/lib/profiles/server/cors.js.map +1 -0
  72. package/lib/profiles/server/index.d.ts +12 -0
  73. package/lib/profiles/server/index.d.ts.map +1 -0
  74. package/lib/profiles/server/index.js +73 -0
  75. package/lib/profiles/server/index.js.map +1 -0
  76. package/lib/profiles/server/server.d.ts +4 -0
  77. package/lib/profiles/server/server.d.ts.map +1 -0
  78. package/lib/profiles/server/server.js +32 -0
  79. package/lib/profiles/server/server.js.map +1 -0
  80. package/lib/projects/index.d.ts +3 -0
  81. package/lib/projects/index.d.ts.map +1 -0
  82. package/lib/projects/index.js +13 -0
  83. package/lib/projects/index.js.map +1 -0
  84. package/lib/run/executor.d.ts +20 -0
  85. package/lib/run/executor.d.ts.map +1 -0
  86. package/lib/run/executor.js +101 -0
  87. package/lib/run/executor.js.map +1 -0
  88. package/lib/run/index.d.ts +3 -0
  89. package/lib/run/index.d.ts.map +1 -0
  90. package/lib/run/index.js +139 -0
  91. package/lib/run/index.js.map +1 -0
  92. package/lib/runs/index.d.ts +3 -0
  93. package/lib/runs/index.d.ts.map +1 -0
  94. package/lib/runs/index.js +48 -0
  95. package/lib/runs/index.js.map +1 -0
  96. package/lib/utils/console.d.ts +38 -0
  97. package/lib/utils/console.d.ts.map +1 -0
  98. package/lib/utils/console.js +191 -0
  99. package/lib/utils/console.js.map +1 -0
  100. package/lib/utils/stdio.d.ts +7 -0
  101. package/lib/utils/stdio.d.ts.map +1 -0
  102. package/lib/utils/stdio.js +35 -0
  103. package/lib/utils/stdio.js.map +1 -0
  104. package/lib/workflows/commands.d.ts +14 -0
  105. package/lib/workflows/commands.d.ts.map +1 -0
  106. package/lib/workflows/commands.js +193 -0
  107. package/lib/workflows/commands.js.map +1 -0
  108. package/lib/workflows/index.d.ts +3 -0
  109. package/lib/workflows/index.d.ts.map +1 -0
  110. package/lib/workflows/index.js +88 -0
  111. package/lib/workflows/index.js.map +1 -0
  112. package/lib/workflows/json-loader.d.ts +3 -0
  113. package/lib/workflows/json-loader.d.ts.map +1 -0
  114. package/lib/workflows/json-loader.js +16 -0
  115. package/lib/workflows/json-loader.js.map +1 -0
  116. package/lib/workflows/ts-loader.d.ts +3 -0
  117. package/lib/workflows/ts-loader.d.ts.map +1 -0
  118. package/lib/workflows/ts-loader.js +94 -0
  119. package/lib/workflows/ts-loader.js.map +1 -0
  120. package/lib/workflows/validation.d.ts +6 -0
  121. package/lib/workflows/validation.d.ts.map +1 -0
  122. package/lib/workflows/validation.js +22 -0
  123. package/lib/workflows/validation.js.map +1 -0
  124. package/package.json +57 -0
  125. package/templates/index.tpl +4 -0
  126. package/templates/interaction.tpl +16 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Bogdan Stefanescu
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,32 @@
1
+ # Composable Prompts CLI
2
+
3
+ # Composite Prompts CLI
4
+
5
+ This is a command line application that can be used to access your composable prompts projects.
6
+ It was designed to fulfil the following main use cases:
7
+
8
+ * List and switch between your Composable Prompts projects
9
+ * List the existing interactions and execution environments
10
+ * Run interactions once or multiple times over a set of different data inputs.
11
+ * Generate data inputs to run the interactions against.
12
+ * Search through the history of runs to inspect detailed results.
13
+
14
+ ## Requirements
15
+
16
+ A TTY terminal and Node.js version 18 or higher is required.
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ npm -g install @becomposable/cli
22
+ ```
23
+
24
+ ## Basic Usage
25
+
26
+ ```bash
27
+ composable help
28
+ ```
29
+
30
+ ## Documentation
31
+
32
+ See https://docs.becomposable.com/cli
package/bin/app.js ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+
3
+ import '../lib/index.js'
@@ -0,0 +1,4 @@
1
+ import { ComposableClient } from "@vertesia/client";
2
+ import { Command } from "commander";
3
+ export declare function getClient(program: Command): ComposableClient;
4
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,oBAKzC"}
package/lib/client.js ADDED
@@ -0,0 +1,21 @@
1
+ import { ComposableClient } from "@vertesia/client";
2
+ import { config } from "./profiles/index.js";
3
+ let _client;
4
+ export function getClient(program) {
5
+ if (!_client) {
6
+ _client = createClient(program);
7
+ }
8
+ return _client;
9
+ }
10
+ function createClient(_program) {
11
+ const profile = config.current;
12
+ const env = {
13
+ apikey: profile?.apikey || process.env.COMPOSABLE_PROMPTS_APIKEY,
14
+ serverUrl: profile?.studio_server_url || process.env.COMPOSABLE_PROMPTS_SERVER_URL,
15
+ storeUrl: profile?.zeno_server_url || process.env.ZENO_SERVER_URL,
16
+ projectId: profile?.project || process.env.COMPOSABLE_PROMPTS_PROJECT_ID || undefined,
17
+ sessionTags: profile?.session_tags ? profile.session_tags.split(/\s*,\s*/) : 'cli',
18
+ };
19
+ return new ComposableClient(env);
20
+ }
21
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,IAAI,OAAqC,CAAC;AAC1C,MAAM,UAAU,SAAS,CAAC,OAAgB;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,QAAiB;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE/B,MAAM,GAAG,GAAG;QACR,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB;QAChE,SAAS,EAAE,OAAO,EAAE,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,6BAA8B;QACnF,QAAQ,EAAE,OAAO,EAAE,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,eAAgB;QAClE,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,SAAS;QACrF,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;KACrF,CAAA;IAED,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAA;AAEpC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { InteractionRefWithSchema } from "@vertesia/common";
2
+ import { InteractionVersion, InteractionsExportOptions } from "./InteractionVersion.js";
3
+ export declare class InteractionBucket {
4
+ name: string;
5
+ versions: InteractionVersion[];
6
+ constructor(name: string);
7
+ add(version: InteractionVersion): this;
8
+ writeIndex(dir: string, opts: InteractionsExportOptions): void;
9
+ build(dir: string, opts: InteractionsExportOptions): void;
10
+ }
11
+ export declare class CodeBuilder {
12
+ buckets: Record<string, InteractionBucket>;
13
+ add(interaction: InteractionRefWithSchema): void;
14
+ build(interactions: InteractionRefWithSchema[], opts: InteractionsExportOptions): void;
15
+ }
16
+ //# sourceMappingURL=CodeBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBuilder.d.ts","sourceRoot":"","sources":["../../src/codegen/CodeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAIxF,qBAAa,iBAAiB;IAIP,IAAI,EAAE,MAAM;IAF/B,QAAQ,EAAE,kBAAkB,EAAE,CAAM;gBAEjB,IAAI,EAAE,MAAM;IAG/B,GAAG,CAAC,OAAO,EAAE,kBAAkB;IAK/B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB;IAyCvD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB;CASrD;AAED,qBAAa,WAAW;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAM;IAEhD,GAAG,CAAC,WAAW,EAAE,wBAAwB;IAWzC,KAAK,CAAC,YAAY,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,yBAAyB;CAoBlF"}
@@ -0,0 +1,115 @@
1
+ import { join, resolve } from "path";
2
+ import { makeDir, writeFile } from "../utils/stdio.js";
3
+ import { InteractionVersion } from "./InteractionVersion.js";
4
+ import { processTemplate } from "./template.js";
5
+ export class InteractionBucket {
6
+ constructor(name) {
7
+ Object.defineProperty(this, "name", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: name
12
+ });
13
+ Object.defineProperty(this, "versions", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: []
18
+ });
19
+ }
20
+ add(version) {
21
+ this.versions.push(version);
22
+ return this;
23
+ }
24
+ writeIndex(dir, opts) {
25
+ let version;
26
+ const exportVersion = opts.exportVersion ? parseInt(opts.exportVersion) : undefined;
27
+ if (exportVersion) {
28
+ version = this.versions.find(version => exportVersion === version.interaction.version);
29
+ if (!version) {
30
+ console.error(`No export version ${exportVersion} found for interaction ${this.name}. Using default export version`);
31
+ }
32
+ }
33
+ if (!version) {
34
+ // default index export the default
35
+ let draft;
36
+ let latest;
37
+ let latestFallback;
38
+ for (const version of this.versions) {
39
+ if (version.isDraft) {
40
+ draft = version;
41
+ }
42
+ else if (version.isLatest) {
43
+ latest = version;
44
+ }
45
+ else {
46
+ if (latestFallback) {
47
+ if (latestFallback.interaction.version < version.interaction.version) {
48
+ latestFallback = version;
49
+ }
50
+ }
51
+ else {
52
+ latestFallback = version;
53
+ }
54
+ }
55
+ }
56
+ version = latest || latestFallback || draft;
57
+ }
58
+ if (version) {
59
+ const file = join(dir, 'index.ts');
60
+ writeFile(file, processTemplate('index', {
61
+ versionName: version.versionName
62
+ }));
63
+ }
64
+ else {
65
+ console.error('No default version found for interaction', this.name);
66
+ }
67
+ }
68
+ build(dir, opts) {
69
+ console.log('Generating interaction', this.name);
70
+ dir = join(dir, this.name);
71
+ makeDir(dir);
72
+ for (const version of this.versions) {
73
+ version.build(dir, opts);
74
+ }
75
+ this.writeIndex(dir, opts);
76
+ }
77
+ }
78
+ export class CodeBuilder {
79
+ constructor() {
80
+ Object.defineProperty(this, "buckets", {
81
+ enumerable: true,
82
+ configurable: true,
83
+ writable: true,
84
+ value: {}
85
+ });
86
+ }
87
+ add(interaction) {
88
+ const version = new InteractionVersion(interaction);
89
+ const name = version.className;
90
+ const bucket = this.buckets[name];
91
+ if (bucket) {
92
+ bucket.add(version);
93
+ }
94
+ else {
95
+ this.buckets[name] = new InteractionBucket(name).add(version);
96
+ }
97
+ }
98
+ build(interactions, opts) {
99
+ if (interactions.length === 0) {
100
+ console.log("Nothing to export");
101
+ return;
102
+ }
103
+ const dir = resolve(opts.dir);
104
+ // create dir if not exists
105
+ makeDir(dir);
106
+ for (const interaction of interactions) {
107
+ this.add(interaction);
108
+ }
109
+ console.log("Generating code in", dir);
110
+ for (const bucket of Object.values(this.buckets)) {
111
+ bucket.build(dir, opts);
112
+ }
113
+ }
114
+ }
115
+ //# sourceMappingURL=CodeBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBuilder.js","sourceRoot":"","sources":["../../src/codegen/CodeBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { InteractionRefWithSchema } from "@vertesia/common";
2
+ export interface InteractionsExportOptions {
3
+ dir: string;
4
+ project: string;
5
+ exportVersion?: string;
6
+ }
7
+ export interface InteractionTemplateVars extends Record<string, string> {
8
+ id: string;
9
+ doc: string;
10
+ className: string;
11
+ projectId: string;
12
+ inputType: string;
13
+ outputType: string;
14
+ types: string;
15
+ date: string;
16
+ }
17
+ export declare function processInteractionTemplate(vars: InteractionTemplateVars): string;
18
+ export declare class InteractionVersion {
19
+ interaction: InteractionRefWithSchema;
20
+ isDraft: boolean;
21
+ className: string;
22
+ constructor(interaction: InteractionRefWithSchema);
23
+ get isLatest(): boolean;
24
+ get versionName(): string;
25
+ get fileName(): string;
26
+ build(dir: string, opts: InteractionsExportOptions): Promise<string>;
27
+ genCode(opts: InteractionsExportOptions): Promise<string>;
28
+ }
29
+ //# sourceMappingURL=InteractionVersion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractionVersion.d.ts","sourceRoot":"","sources":["../../src/codegen/InteractionVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAyC,MAAM,kBAAkB,CAAC;AAOnG,MAAM,WAAW,yBAAyB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,uBAAuB,UAEvE;AAED,qBAAa,kBAAkB;IAKR,WAAW,EAAE,wBAAwB;IAHxD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;gBAEC,WAAW,EAAE,wBAAwB;IAKxD,IAAI,QAAQ,YAIX;IAED,IAAI,WAAW,WAEd;IACD,IAAI,QAAQ,WAEX;IAEK,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB;IAMlD,OAAO,CAAC,IAAI,EAAE,yBAAyB;CA8ChD"}
@@ -0,0 +1,94 @@
1
+ import { InteractionStatus, mergePromptsSchema } from "@vertesia/common";
2
+ import { compile as compileSchema } from 'json-schema-to-typescript';
3
+ import { join } from 'path';
4
+ import { writeFile } from "../utils/stdio.js";
5
+ import { processTemplate } from "./template.js";
6
+ import { textToPascalCase } from "./utils.js";
7
+ export function processInteractionTemplate(vars) {
8
+ return processTemplate('interaction', { ...vars, date: new Date().toISOString() });
9
+ }
10
+ export class InteractionVersion {
11
+ constructor(interaction) {
12
+ Object.defineProperty(this, "interaction", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: interaction
17
+ });
18
+ Object.defineProperty(this, "isDraft", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: void 0
23
+ });
24
+ Object.defineProperty(this, "className", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: void 0
29
+ });
30
+ this.isDraft = interaction.status === InteractionStatus.draft;
31
+ this.className = textToPascalCase(interaction.name || '__Unknown');
32
+ }
33
+ get isLatest() {
34
+ //TODO we no more support the latest version
35
+ return false;
36
+ //return this.interaction.latest;
37
+ }
38
+ get versionName() {
39
+ return this.isDraft ? 'draft' : `v${this.interaction.version}`;
40
+ }
41
+ get fileName() {
42
+ return `${this.versionName}.ts`;
43
+ }
44
+ async build(dir, opts) {
45
+ const file = join(dir, this.fileName);
46
+ writeFile(file, await this.genCode(opts));
47
+ return file;
48
+ }
49
+ async genCode(opts) {
50
+ const interaction = this.interaction;
51
+ const className = this.className;
52
+ const inputSchema = mergePromptsSchema(interaction);
53
+ const outputSchema = interaction.result_schema;
54
+ const out = [];
55
+ const types = [];
56
+ let inputTypeName = "any";
57
+ let outputTypeName = "any";
58
+ if (inputSchema) {
59
+ inputTypeName = className + 'Props';
60
+ const schemaType = await compileSchema(inputSchema, inputTypeName, {
61
+ bannerComment: '',
62
+ style: {
63
+ tabWidth: 4,
64
+ },
65
+ additionalProperties: false
66
+ });
67
+ types.push(`/**\n * ${interaction.name} input type\n */`, schemaType);
68
+ }
69
+ if (outputSchema) {
70
+ outputTypeName = className + 'Result';
71
+ const schemaType = await compileSchema(outputSchema, outputTypeName, {
72
+ bannerComment: '',
73
+ style: {
74
+ tabWidth: 4,
75
+ },
76
+ additionalProperties: false
77
+ });
78
+ types.push(`/**\n * ${interaction.name} result type\n */`, schemaType);
79
+ }
80
+ const vars = {
81
+ className: className,
82
+ id: interaction.id,
83
+ projectId: opts.project,
84
+ inputType: inputTypeName,
85
+ outputType: outputTypeName,
86
+ doc: interaction.description ? `${interaction.name}\n${interaction.description}` : interaction.name,
87
+ date: new Date().toISOString(),
88
+ types: types.join('\n')
89
+ };
90
+ out.push(processInteractionTemplate(vars));
91
+ return out.join('\n');
92
+ }
93
+ }
94
+ //# sourceMappingURL=InteractionVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractionVersion.js","sourceRoot":"","sources":["../../src/codegen/InteractionVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAmB9C,MAAM,UAAU,0BAA0B,CAAC,IAA6B;IACpE,OAAO,eAAe,CAAC,aAAa,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,OAAO,kBAAkB;IAK3B,YAAmB,WAAqC;QAA5C;;;;mBAAO,WAAW;WAA0B;QAHxD;;;;;WAAiB;QACjB;;;;;WAAkB;QAGd,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,KAAK,iBAAiB,CAAC,KAAK,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,QAAQ;QACR,4CAA4C;QAC5C,OAAO,KAAK,CAAC;QACb,iCAAiC;IACrC,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC;IACD,IAAI,QAAQ;QACR,OAAO,GAAG,IAAI,CAAC,WAAW,KAAK,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,IAA+B;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,SAAS,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAA+B;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC;QAE/C,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,WAAW,EAAE,CAAC;YACd,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;YACpC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,aAAa,EAAE;gBAC/D,aAAa,EAAE,EAAE;gBACjB,KAAK,EAAE;oBACH,QAAQ,EAAE,CAAC;iBACd;gBACD,oBAAoB,EAAE,KAAK;aAC9B,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,IAAI,kBAAkB,EAAE,UAAU,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACf,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAC;YACtC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,cAAc,EAAE;gBACjE,aAAa,EAAE,EAAE;gBACjB,KAAK,EAAE;oBACH,QAAQ,EAAE,CAAC;iBACd;gBACD,oBAAoB,EAAE,KAAK;aAC9B,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,IAAI,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,IAAI,GAA4B;YAClC,SAAS,EAAE,SAAS;YACpB,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,SAAS,EAAE,IAAI,CAAC,OAAO;YACvB,SAAS,EAAE,aAAa;YACxB,UAAU,EAAE,cAAc;YAC1B,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI;YACnG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC9B,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1B,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3C,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export default function runExport(program: Command, interactionName: string | undefined, options: Record<string, any>): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAuBpH"}
@@ -0,0 +1,24 @@
1
+ import { getClient } from "../client.js";
2
+ import { CodeBuilder } from "./CodeBuilder.js";
3
+ export default function runExport(program, interactionName, options) {
4
+ const client = getClient(program);
5
+ if (!client.project) {
6
+ console.error('No project id specified');
7
+ process.exit(1);
8
+ }
9
+ const tags = options.tags ? options.tags.split(/\s*,\s*/) : undefined;
10
+ const versions = options.versions ? options.versions.split(/\s*,\s*/) : ["draft", "latest"];
11
+ const payload = {
12
+ name: interactionName,
13
+ tags: tags,
14
+ versions: options.all ? [] : versions,
15
+ };
16
+ client.interactions.export(payload).then((interactions) => {
17
+ new CodeBuilder().build(interactions, {
18
+ dir: options.dir,
19
+ project: client.project,
20
+ exportVersion: options.export || undefined,
21
+ });
22
+ });
23
+ }
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,OAAgB,EAAE,eAAmC,EAAE,OAA4B;IACjH,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE5F,MAAM,OAAO,GAAG;QACZ,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;KACxC,CAAA;IACD,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACtD,IAAI,WAAW,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE;YAClC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO,EAAE,MAAM,CAAC,OAAQ;YACxB,aAAa,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;SAC7C,CAAC,CAAC;IACP,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function expandVariables(template: string, vars: Record<string, string>): string;
2
+ export declare function processTemplate(name: string, vars: Record<string, string>): string;
3
+ //# sourceMappingURL=template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/codegen/template.ts"],"names":[],"mappings":"AAOA,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAS7E;AAWD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAGzE"}
@@ -0,0 +1,28 @@
1
+ import { readFileSync } from 'fs';
2
+ import { packageDir } from '../package.js';
3
+ const EXPR_RX = /\{\{\s*[a-zA-Z_][a-zA-Z_0-9]*\s*\}\}/g;
4
+ const TEMPLATES = {};
5
+ export function expandVariables(template, vars) {
6
+ return template.replace(EXPR_RX, (match) => {
7
+ const key = match.substring(2, match.length - 2).trim();
8
+ if (key in vars) {
9
+ return vars[key] || '';
10
+ }
11
+ else {
12
+ return match;
13
+ }
14
+ });
15
+ }
16
+ function loadTemplate(name) {
17
+ let content = TEMPLATES[name];
18
+ if (!content) {
19
+ content = readFileSync(`${packageDir}/templates/${name}.tpl`, 'utf8');
20
+ TEMPLATES[name] = content;
21
+ }
22
+ return content;
23
+ }
24
+ export function processTemplate(name, vars) {
25
+ const content = loadTemplate(name);
26
+ return expandVariables(content, vars);
27
+ }
28
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/codegen/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,OAAO,GAAG,uCAAuC,CAAA;AAEvD,MAAM,SAAS,GAA2B,EAAE,CAAC;AAE7C,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,IAA4B;IAC1E,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACvD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC1B,CAAC;aAAM,CAAC;YACJ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAC9B,IAAI,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,GAAG,YAAY,CAAC,GAAG,UAAU,cAAc,IAAI,MAAM,EAAE,MAAM,CAAC,CAAA;QACrE,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAC9B,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAA4B;IACtE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function textToPascalCase(text: string): string;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/codegen/utils.ts"],"names":[],"mappings":"AACA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,UAE5C"}
@@ -0,0 +1,4 @@
1
+ export function textToPascalCase(text) {
2
+ return text.trim().split(/\W/).map(w => w ? w[0].toUpperCase() + w.substring(1) : '').join('');
3
+ }
4
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/codegen/utils.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,gBAAgB,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClG,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function genTestData(program: Command, interactionId: string, options: Record<string, any>): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/datagen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAoChG"}
@@ -0,0 +1,47 @@
1
+ import { resolve } from "path";
2
+ import { getClient } from "../client.js";
3
+ import { Spinner, restoreCursotOnExit } from "../utils/console.js";
4
+ import { writeJsonFile } from "../utils/stdio.js";
5
+ import { ConfigModes } from "@vertesia/common";
6
+ function convertConfigMode(raw_config_mode) {
7
+ const configStr = typeof raw_config_mode === 'string' ? raw_config_mode.toUpperCase() : "";
8
+ return Object.values(ConfigModes).includes(configStr) ? configStr : undefined;
9
+ }
10
+ export function genTestData(program, interactionId, options) {
11
+ const count = options.count ? parseInt(options.count) : 1;
12
+ const message = options.message || undefined;
13
+ const output = options.output || undefined;
14
+ const spinner = new Spinner('dots');
15
+ spinner.prefix = "Generating data. Please be patient ";
16
+ spinner.start();
17
+ getClient(program).interactions.generateTestData(interactionId, {
18
+ count,
19
+ message,
20
+ config: {
21
+ environment: options.env,
22
+ model: options.model || undefined,
23
+ temperature: typeof options.temperature === 'string' ? parseFloat(options.temperature) : undefined,
24
+ max_tokens: typeof options.maxTokens === 'string' ? parseInt(options.maxTokens) : undefined,
25
+ top_p: typeof options.topP === 'string' ? parseFloat(options.topP) : undefined,
26
+ top_k: typeof options.topK === 'string' ? parseInt(options.topK) : undefined,
27
+ presence_penalty: typeof options.presencePenalty === 'string' ? parseFloat(options.presencePenalty) : undefined,
28
+ frequency_penalty: typeof options.frequencyPenalty === 'string' ? parseFloat(options.frequencyPenalty) : undefined,
29
+ stop_sequence: options.stopSequences ? options.stopSequences.trim().split(/\s*,\s*/) : undefined,
30
+ configMode: convertConfigMode(options.configMode),
31
+ }
32
+ }).then((result) => {
33
+ spinner.done();
34
+ if (output) {
35
+ const file = resolve(output);
36
+ writeJsonFile(file, result);
37
+ console.log('Data saved in: ', output);
38
+ }
39
+ console.log();
40
+ console.log(result);
41
+ }).catch(err => {
42
+ spinner.done(false);
43
+ console.log('Failed to generate data:', err.message);
44
+ });
45
+ }
46
+ restoreCursotOnExit();
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/datagen/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function listEnvirnments(program: Command, envId: string | undefined, options: Record<string, any>): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/envs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAYxG"}
@@ -0,0 +1,24 @@
1
+ import { getClient } from "../client.js";
2
+ import colors from "ansi-colors";
3
+ export function listEnvirnments(program, envId, options) {
4
+ if (envId) {
5
+ getClient(program).environments.retrieve(envId).then((env) => {
6
+ printEnv(env, options);
7
+ });
8
+ }
9
+ else {
10
+ getClient(program).environments.list().then((environments) => {
11
+ environments.map(env => {
12
+ console.log(env.name + ` [${env.id}]`);
13
+ });
14
+ });
15
+ }
16
+ }
17
+ function printEnv(env, _options) {
18
+ console.log(colors.bold(env.name) + " [" + env.id + "]");
19
+ console.log(colors.bold("Provider:"), env.provider);
20
+ console.log(colors.bold("Description:"), env.description || 'n/a');
21
+ console.log(colors.bold("Default Model:"), env.default_model);
22
+ console.log(colors.bold("Enabled Models:"), env.enabled_models && env.enabled_models.length > 0 ? env.enabled_models.map(model => model.name).join(", ") : "n/a");
23
+ }
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/envs/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,KAAyB,EAAE,OAA4B;IACrG,IAAI,KAAK,EAAE,CAAC;QACR,SAAS,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACzD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACJ,SAAS,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;YACzD,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;AACL,CAAC;AAGD,SAAS,QAAQ,CAAC,GAAyB,EAAE,QAA6B;IACtE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAA;IACxD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACtK,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}