@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.
- package/LICENSE +21 -0
- package/README.md +32 -0
- package/bin/app.js +3 -0
- package/lib/client.d.ts +4 -0
- package/lib/client.d.ts.map +1 -0
- package/lib/client.js +21 -0
- package/lib/client.js.map +1 -0
- package/lib/codegen/CodeBuilder.d.ts +16 -0
- package/lib/codegen/CodeBuilder.d.ts.map +1 -0
- package/lib/codegen/CodeBuilder.js +115 -0
- package/lib/codegen/CodeBuilder.js.map +1 -0
- package/lib/codegen/InteractionVersion.d.ts +29 -0
- package/lib/codegen/InteractionVersion.d.ts.map +1 -0
- package/lib/codegen/InteractionVersion.js +94 -0
- package/lib/codegen/InteractionVersion.js.map +1 -0
- package/lib/codegen/index.d.ts +3 -0
- package/lib/codegen/index.d.ts.map +1 -0
- package/lib/codegen/index.js +24 -0
- package/lib/codegen/index.js.map +1 -0
- package/lib/codegen/template.d.ts +3 -0
- package/lib/codegen/template.d.ts.map +1 -0
- package/lib/codegen/template.js +28 -0
- package/lib/codegen/template.js.map +1 -0
- package/lib/codegen/utils.d.ts +2 -0
- package/lib/codegen/utils.d.ts.map +1 -0
- package/lib/codegen/utils.js +4 -0
- package/lib/codegen/utils.js.map +1 -0
- package/lib/datagen/index.d.ts +3 -0
- package/lib/datagen/index.d.ts.map +1 -0
- package/lib/datagen/index.js +47 -0
- package/lib/datagen/index.js.map +1 -0
- package/lib/envs/index.d.ts +3 -0
- package/lib/envs/index.d.ts.map +1 -0
- package/lib/envs/index.js +24 -0
- package/lib/envs/index.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +169 -0
- package/lib/index.js.map +1 -0
- package/lib/interactions/index.d.ts +3 -0
- package/lib/interactions/index.d.ts.map +1 -0
- package/lib/interactions/index.js +37 -0
- package/lib/interactions/index.js.map +1 -0
- package/lib/memory/index.d.ts +3 -0
- package/lib/memory/index.d.ts.map +1 -0
- package/lib/memory/index.js +16 -0
- package/lib/memory/index.js.map +1 -0
- package/lib/objects/commands.d.ts +14 -0
- package/lib/objects/commands.d.ts.map +1 -0
- package/lib/objects/commands.js +240 -0
- package/lib/objects/commands.js.map +1 -0
- package/lib/objects/index.d.ts +3 -0
- package/lib/objects/index.d.ts.map +1 -0
- package/lib/objects/index.js +37 -0
- package/lib/objects/index.js.map +1 -0
- package/lib/package.d.ts +8 -0
- package/lib/package.d.ts.map +1 -0
- package/lib/package.js +54 -0
- package/lib/package.js.map +1 -0
- package/lib/profiles/commands.d.ts +10 -0
- package/lib/profiles/commands.d.ts.map +1 -0
- package/lib/profiles/commands.js +167 -0
- package/lib/profiles/commands.js.map +1 -0
- package/lib/profiles/index.d.ts +57 -0
- package/lib/profiles/index.d.ts.map +1 -0
- package/lib/profiles/index.js +255 -0
- package/lib/profiles/index.js.map +1 -0
- package/lib/profiles/server/cors.d.ts +3 -0
- package/lib/profiles/server/cors.d.ts.map +1 -0
- package/lib/profiles/server/cors.js +18 -0
- package/lib/profiles/server/cors.js.map +1 -0
- package/lib/profiles/server/index.d.ts +12 -0
- package/lib/profiles/server/index.d.ts.map +1 -0
- package/lib/profiles/server/index.js +73 -0
- package/lib/profiles/server/index.js.map +1 -0
- package/lib/profiles/server/server.d.ts +4 -0
- package/lib/profiles/server/server.d.ts.map +1 -0
- package/lib/profiles/server/server.js +32 -0
- package/lib/profiles/server/server.js.map +1 -0
- package/lib/projects/index.d.ts +3 -0
- package/lib/projects/index.d.ts.map +1 -0
- package/lib/projects/index.js +13 -0
- package/lib/projects/index.js.map +1 -0
- package/lib/run/executor.d.ts +20 -0
- package/lib/run/executor.d.ts.map +1 -0
- package/lib/run/executor.js +101 -0
- package/lib/run/executor.js.map +1 -0
- package/lib/run/index.d.ts +3 -0
- package/lib/run/index.d.ts.map +1 -0
- package/lib/run/index.js +139 -0
- package/lib/run/index.js.map +1 -0
- package/lib/runs/index.d.ts +3 -0
- package/lib/runs/index.d.ts.map +1 -0
- package/lib/runs/index.js +48 -0
- package/lib/runs/index.js.map +1 -0
- package/lib/utils/console.d.ts +38 -0
- package/lib/utils/console.d.ts.map +1 -0
- package/lib/utils/console.js +191 -0
- package/lib/utils/console.js.map +1 -0
- package/lib/utils/stdio.d.ts +7 -0
- package/lib/utils/stdio.d.ts.map +1 -0
- package/lib/utils/stdio.js +35 -0
- package/lib/utils/stdio.js.map +1 -0
- package/lib/workflows/commands.d.ts +14 -0
- package/lib/workflows/commands.d.ts.map +1 -0
- package/lib/workflows/commands.js +193 -0
- package/lib/workflows/commands.js.map +1 -0
- package/lib/workflows/index.d.ts +3 -0
- package/lib/workflows/index.d.ts.map +1 -0
- package/lib/workflows/index.js +88 -0
- package/lib/workflows/index.js.map +1 -0
- package/lib/workflows/json-loader.d.ts +3 -0
- package/lib/workflows/json-loader.d.ts.map +1 -0
- package/lib/workflows/json-loader.js +16 -0
- package/lib/workflows/json-loader.js.map +1 -0
- package/lib/workflows/ts-loader.d.ts +3 -0
- package/lib/workflows/ts-loader.d.ts.map +1 -0
- package/lib/workflows/ts-loader.js +94 -0
- package/lib/workflows/ts-loader.js.map +1 -0
- package/lib/workflows/validation.d.ts +6 -0
- package/lib/workflows/validation.d.ts.map +1 -0
- package/lib/workflows/validation.js +22 -0
- package/lib/workflows/validation.js.map +1 -0
- package/package.json +57 -0
- package/templates/index.tpl +4 -0
- 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
package/lib/client.d.ts
ADDED
|
@@ -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":"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"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|