@dbx-tools/shared-model 0.9.40 → 0.9.46
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/exports.ts +21 -20
- package/index.ts +2 -2
- package/lib/exports.d.ts +1 -2
- package/lib/exports.js +2 -3
- package/lib/index.d.ts +2 -2
- package/lib/index.js +3 -3
- package/lib/src/contracts.d.ts +279 -184
- package/lib/src/contracts.js +243 -2
- package/lib/src/model.d.ts +4 -218
- package/lib/src/model.js +5 -41
- package/lib/src/openai-chat.d.ts +54 -62
- package/lib/src/openai-chat.js +70 -10
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -3
- package/src/contracts.ts +300 -198
- package/src/model.ts +4 -123
- package/src/openai-chat.ts +90 -69
- package/lib/src/generated/_schemas.d.ts +0 -168
- package/lib/src/generated/_schemas.js +0 -111
- package/src/generated/_schemas.ts +0 -127
package/lib/src/openai-chat.d.ts
CHANGED
|
@@ -8,55 +8,57 @@
|
|
|
8
8
|
* whereas the wire payload itself is the stable contract every caller in this
|
|
9
9
|
* repo actually codes against.
|
|
10
10
|
*
|
|
11
|
-
* Pure types plus one text-flattening helper - no zod, no runtime deps - so a
|
|
12
|
-
* browser client, a Node proxy, and an AppKit plugin can all agree on the shape
|
|
13
|
-
* without any of them pulling in the others' dependencies.
|
|
14
|
-
*
|
|
15
11
|
* @module
|
|
16
12
|
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
export
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
13
|
+
import { z } from "zod";
|
|
14
|
+
export declare const ChatRoleSchema: z.ZodEnum<{
|
|
15
|
+
system: "system";
|
|
16
|
+
developer: "developer";
|
|
17
|
+
user: "user";
|
|
18
|
+
assistant: "assistant";
|
|
19
|
+
tool: "tool";
|
|
20
|
+
}>;
|
|
21
|
+
export type ChatRole = z.infer<typeof ChatRoleSchema>;
|
|
22
|
+
export declare const ChatContentPartSchema: z.ZodObject<{
|
|
23
|
+
type: z.ZodOptional<z.ZodString>;
|
|
24
|
+
text: z.ZodOptional<z.ZodString>;
|
|
25
|
+
}, z.core.$catchall<z.ZodUnknown>>;
|
|
26
|
+
export type ChatContentPart = z.infer<typeof ChatContentPartSchema>;
|
|
27
|
+
export declare const ChatToolCallFunctionSchema: z.ZodObject<{
|
|
28
|
+
name: z.ZodString;
|
|
29
|
+
arguments: z.ZodString;
|
|
30
|
+
}, z.core.$strip>;
|
|
31
|
+
export type ChatToolCallFunction = z.infer<typeof ChatToolCallFunctionSchema>;
|
|
32
|
+
export declare const ChatToolCallSchema: z.ZodObject<{
|
|
33
|
+
id: z.ZodString;
|
|
34
|
+
type: z.ZodString;
|
|
35
|
+
function: z.ZodObject<{
|
|
36
|
+
name: z.ZodString;
|
|
37
|
+
arguments: z.ZodString;
|
|
38
|
+
}, z.core.$strip>;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
export type ChatToolCall = z.infer<typeof ChatToolCallSchema>;
|
|
41
|
+
export declare const ChatMessageSchema: z.ZodObject<{
|
|
42
|
+
role: z.ZodString;
|
|
43
|
+
content: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
44
|
+
type: z.ZodOptional<z.ZodString>;
|
|
45
|
+
text: z.ZodOptional<z.ZodString>;
|
|
46
|
+
}, z.core.$catchall<z.ZodUnknown>>, z.ZodArray<z.ZodObject<{
|
|
47
|
+
type: z.ZodOptional<z.ZodString>;
|
|
48
|
+
text: z.ZodOptional<z.ZodString>;
|
|
49
|
+
}, z.core.$catchall<z.ZodUnknown>>>]>>>;
|
|
50
|
+
tool_calls: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
51
|
+
id: z.ZodString;
|
|
52
|
+
type: z.ZodString;
|
|
53
|
+
function: z.ZodObject<{
|
|
54
|
+
name: z.ZodString;
|
|
55
|
+
arguments: z.ZodString;
|
|
56
|
+
}, z.core.$strip>;
|
|
57
|
+
}, z.core.$strip>>>;
|
|
58
|
+
tool_call_id: z.ZodOptional<z.ZodString>;
|
|
59
|
+
name: z.ZodOptional<z.ZodString>;
|
|
60
|
+
}, z.core.$strip>;
|
|
61
|
+
export type ChatMessage = z.infer<typeof ChatMessageSchema>;
|
|
60
62
|
/**
|
|
61
63
|
* Top-level request fields an OpenAI client may send that Databricks Model
|
|
62
64
|
* Serving rejects outright, failing the whole turn rather than ignoring them.
|
|
@@ -83,21 +85,11 @@ export declare const UNSUPPORTED_CHAT_FIELDS: readonly string[];
|
|
|
83
85
|
* that rejects something not yet in {@link UNSUPPORTED_CHAT_FIELDS}.
|
|
84
86
|
*/
|
|
85
87
|
export declare function stripUnsupportedChatFields(body: Record<string, unknown>, extra?: readonly string[]): string[];
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
* paragraphs that a human will read.
|
|
92
|
-
*/
|
|
93
|
-
separator?: string;
|
|
94
|
-
/**
|
|
95
|
-
* Restrict to these `type` values. Defaults to accepting any part carrying
|
|
96
|
-
* `text`, which covers the `input_text` / `output_text` / `text` spellings
|
|
97
|
-
* different APIs use for the same thing.
|
|
98
|
-
*/
|
|
99
|
-
types?: readonly string[];
|
|
100
|
-
}
|
|
88
|
+
export declare const ChatContentToTextOptionsSchema: z.ZodObject<{
|
|
89
|
+
separator: z.ZodOptional<z.ZodString>;
|
|
90
|
+
types: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
91
|
+
}, z.core.$strip>;
|
|
92
|
+
export type ChatContentToTextOptions = z.infer<typeof ChatContentToTextOptionsSchema>;
|
|
101
93
|
/**
|
|
102
94
|
* Normalize structured chat content to an array. Providers usually emit a
|
|
103
95
|
* parts array, but some compatibility layers collapse a one-part array to the
|
package/lib/src/openai-chat.js
CHANGED
|
@@ -8,12 +8,60 @@
|
|
|
8
8
|
* whereas the wire payload itself is the stable contract every caller in this
|
|
9
9
|
* repo actually codes against.
|
|
10
10
|
*
|
|
11
|
-
* Pure types plus one text-flattening helper - no zod, no runtime deps - so a
|
|
12
|
-
* browser client, a Node proxy, and an AppKit plugin can all agree on the shape
|
|
13
|
-
* without any of them pulling in the others' dependencies.
|
|
14
|
-
*
|
|
15
11
|
* @module
|
|
16
12
|
*/
|
|
13
|
+
import { z } from "zod";
|
|
14
|
+
export const ChatRoleSchema = z
|
|
15
|
+
.enum(["system", "developer", "user", "assistant", "tool"])
|
|
16
|
+
.describe("Standard OpenAI chat roles. Message.role stays a plain string because providers add values such as reasoning.");
|
|
17
|
+
export const ChatContentPartSchema = z
|
|
18
|
+
.object({
|
|
19
|
+
type: z
|
|
20
|
+
.string()
|
|
21
|
+
.optional()
|
|
22
|
+
.describe("Part discriminator, such as text, input_text, or output_text."),
|
|
23
|
+
text: z.string().optional().describe("Plain-text payload carried by this part when present."),
|
|
24
|
+
})
|
|
25
|
+
.catchall(z.unknown())
|
|
26
|
+
.describe("One entry of a structured content array. Extra provider keys round-trip through the catch-all.");
|
|
27
|
+
export const ChatToolCallFunctionSchema = z
|
|
28
|
+
.object({
|
|
29
|
+
name: z.string().describe("Function name the model wants to invoke."),
|
|
30
|
+
arguments: z
|
|
31
|
+
.string()
|
|
32
|
+
.describe("JSON-encoded argument object. Streamed in fragments, so assemble before parsing."),
|
|
33
|
+
})
|
|
34
|
+
.describe("The function a tool call invokes, with its arguments as a JSON string.");
|
|
35
|
+
export const ChatToolCallSchema = z
|
|
36
|
+
.object({
|
|
37
|
+
id: z.string().describe("Tool-call identifier echoed on the matching tool message."),
|
|
38
|
+
type: z
|
|
39
|
+
.string()
|
|
40
|
+
.describe("Tool type. function in practice; widened so unrecognized values round-trip."),
|
|
41
|
+
function: ChatToolCallFunctionSchema.describe("Function name and JSON arguments for this call."),
|
|
42
|
+
})
|
|
43
|
+
.describe("One tool call attached to an assistant turn.");
|
|
44
|
+
export const ChatMessageSchema = z
|
|
45
|
+
.object({
|
|
46
|
+
role: z
|
|
47
|
+
.string()
|
|
48
|
+
.describe("Message author. See ChatRole for the standard values; widened for provider extensions."),
|
|
49
|
+
content: z
|
|
50
|
+
.union([z.string(), ChatContentPartSchema, z.array(ChatContentPartSchema)])
|
|
51
|
+
.nullable()
|
|
52
|
+
.optional()
|
|
53
|
+
.describe("Message body. Null when an assistant turn only calls tools."),
|
|
54
|
+
tool_calls: z
|
|
55
|
+
.array(ChatToolCallSchema)
|
|
56
|
+
.optional()
|
|
57
|
+
.describe("Tool calls attached to an assistant turn."),
|
|
58
|
+
tool_call_id: z
|
|
59
|
+
.string()
|
|
60
|
+
.optional()
|
|
61
|
+
.describe("Set on a tool turn, keying it back to the call it answers."),
|
|
62
|
+
name: z.string().optional().describe("Optional speaker or function name."),
|
|
63
|
+
})
|
|
64
|
+
.describe("A single chat message in an OpenAI Chat Completions request or response.");
|
|
17
65
|
/**
|
|
18
66
|
* Top-level request fields an OpenAI client may send that Databricks Model
|
|
19
67
|
* Serving rejects outright, failing the whole turn rather than ignoring them.
|
|
@@ -31,10 +79,7 @@
|
|
|
31
79
|
* paths that forward a client body largely as-is.
|
|
32
80
|
*/
|
|
33
81
|
export const UNSUPPORTED_CHAT_FIELDS = [
|
|
34
|
-
// Tool-calling concurrency hint. Databricks rejects it; the upstream provider
|
|
35
|
-
// decides parallelism itself.
|
|
36
82
|
"parallel_tool_calls",
|
|
37
|
-
// Response-persistence and bookkeeping fields for OpenAI's own platform.
|
|
38
83
|
"store",
|
|
39
84
|
"metadata",
|
|
40
85
|
"service_tier",
|
|
@@ -59,6 +104,18 @@ export function stripUnsupportedChatFields(body, extra = []) {
|
|
|
59
104
|
}
|
|
60
105
|
return dropped;
|
|
61
106
|
}
|
|
107
|
+
export const ChatContentToTextOptionsSchema = z
|
|
108
|
+
.object({
|
|
109
|
+
separator: z
|
|
110
|
+
.string()
|
|
111
|
+
.optional()
|
|
112
|
+
.describe("Placed between parts. Defaults to empty, which reassembles transport-split text."),
|
|
113
|
+
types: z
|
|
114
|
+
.array(z.string())
|
|
115
|
+
.optional()
|
|
116
|
+
.describe("Restrict flattening to these part type values when set."),
|
|
117
|
+
})
|
|
118
|
+
.describe("Options for flattening structured chat content to plain text.");
|
|
62
119
|
/**
|
|
63
120
|
* Normalize structured chat content to an array. Providers usually emit a
|
|
64
121
|
* parts array, but some compatibility layers collapse a one-part array to the
|
|
@@ -73,7 +130,10 @@ export function chatContentParts(content) {
|
|
|
73
130
|
: undefined;
|
|
74
131
|
if (!values)
|
|
75
132
|
return undefined;
|
|
76
|
-
return values.
|
|
133
|
+
return values.flatMap((part) => {
|
|
134
|
+
const parsed = ChatContentPartSchema.safeParse(part);
|
|
135
|
+
return parsed.success ? [parsed.data] : [];
|
|
136
|
+
});
|
|
77
137
|
}
|
|
78
138
|
/**
|
|
79
139
|
* Flatten a message `content` value to plain text. Accepts the string form and
|
|
@@ -88,7 +148,7 @@ export function chatContentToText(content, options = {}) {
|
|
|
88
148
|
const normalized = chatContentParts(content);
|
|
89
149
|
if (!normalized)
|
|
90
150
|
return "";
|
|
91
|
-
const { separator = "", types } = options;
|
|
151
|
+
const { separator = "", types } = ChatContentToTextOptionsSchema.parse(options);
|
|
92
152
|
const parts = [];
|
|
93
153
|
for (const part of normalized) {
|
|
94
154
|
if (types && (typeof part.type !== "string" || !types.includes(part.type)))
|
|
@@ -98,4 +158,4 @@ export function chatContentToText(content, options = {}) {
|
|
|
98
158
|
}
|
|
99
159
|
return parts.join(separator);
|
|
100
160
|
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLWNoYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3BlbmFpLWNoYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBa0RIOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFzQjtJQUN4RCw4RUFBOEU7SUFDOUUsOEJBQThCO0lBQzlCLHFCQUFxQjtJQUNyQix5RUFBeUU7SUFDekUsT0FBTztJQUNQLFVBQVU7SUFDVixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLG1CQUFtQjtDQUNwQixDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FDeEMsSUFBNkIsRUFDN0IsUUFBMkIsRUFBRTtJQUU3QixNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDN0IsS0FBSyxNQUFNLEtBQUssSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUM7WUFBRSxTQUFTO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFrQkQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBZ0I7SUFDL0MsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDbkMsQ0FBQyxDQUFDLE9BQU87UUFDVCxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVE7WUFDdEMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzlCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBMkIsRUFBRSxDQUNyRCxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUMxQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsT0FBZ0IsRUFDaEIsVUFBb0MsRUFBRTtJQUV0QyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVE7UUFBRSxPQUFPLE9BQU8sQ0FBQztJQUNoRCxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsVUFBVTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzNCLE1BQU0sRUFBRSxTQUFTLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUMxQyxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFDM0IsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLEtBQUssSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUFFLFNBQVM7UUFDckYsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogT3BlbkFJIENoYXQgQ29tcGxldGlvbnMgd2lyZSBzaGFwZXMsIGFzIERhdGFicmlja3MgTW9kZWwgU2VydmluZyBzcGVha3MgdGhlbS5cbiAqXG4gKiBUaGVzZSBhcmUgdGhlIHJlcXVlc3QvcmVwbHkgcGF5bG9hZCB0eXBlcyBmb3IgYC9jaGF0L2NvbXBsZXRpb25zYCBhbmQgYVxuICogc2VydmluZyBlbmRwb2ludCdzIGBpbnZvY2F0aW9uc2AgVVJMLiBUaGV5IGFyZSBkZWxpYmVyYXRlbHkgZGVjbGFyZWQgaGVyZVxuICogcmF0aGVyIHRoYW4gaW1wb3J0ZWQgZnJvbSB0aGUgT3BlbkFJIG9yIEFJIFNESyBwYWNrYWdlczogYm90aCBrZWVwIHRoZXNlXG4gKiBmaWVsZHMgdW5kZXIgaW50ZXJuYWwgbmFtZXNwYWNlcyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGVpciBwdWJsaWMgQVBJLFxuICogd2hlcmVhcyB0aGUgd2lyZSBwYXlsb2FkIGl0c2VsZiBpcyB0aGUgc3RhYmxlIGNvbnRyYWN0IGV2ZXJ5IGNhbGxlciBpbiB0aGlzXG4gKiByZXBvIGFjdHVhbGx5IGNvZGVzIGFnYWluc3QuXG4gKlxuICogUHVyZSB0eXBlcyBwbHVzIG9uZSB0ZXh0LWZsYXR0ZW5pbmcgaGVscGVyIC0gbm8gem9kLCBubyBydW50aW1lIGRlcHMgLSBzbyBhXG4gKiBicm93c2VyIGNsaWVudCwgYSBOb2RlIHByb3h5LCBhbmQgYW4gQXBwS2l0IHBsdWdpbiBjYW4gYWxsIGFncmVlIG9uIHRoZSBzaGFwZVxuICogd2l0aG91dCBhbnkgb2YgdGhlbSBwdWxsaW5nIGluIHRoZSBvdGhlcnMnIGRlcGVuZGVuY2llcy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuLyoqXG4gKiBUaGUgcm9sZXMgT3BlbkFJIGRlZmluZXMgZm9yIGEgY2hhdCB0dXJuLiB7QGxpbmsgQ2hhdE1lc3NhZ2Uucm9sZX0gaXMgdHlwZWQgYXNcbiAqIGEgcGxhaW4gc3RyaW5nIHJhdGhlciB0aGFuIHRoaXMgdW5pb24sIGJlY2F1c2UgcHJvdmlkZXJzIGFkZCB0aGVpciBvd24gKGZvclxuICogZXhhbXBsZSBEYXRhYnJpY2tzLWhvc3RlZCBDbGF1ZGUgcmVwbGF5cyBhIGBcInJlYXNvbmluZ1wiYCB0dXJuKTsgdXNlIHRoaXMgd2hlblxuICogeW91IHdhbnQgdGhlIHN0YW5kYXJkIHNldCBuYW1lZC5cbiAqL1xuZXhwb3J0IHR5cGUgQ2hhdFJvbGUgPSBcInN5c3RlbVwiIHwgXCJkZXZlbG9wZXJcIiB8IFwidXNlclwiIHwgXCJhc3Npc3RhbnRcIiB8IFwidG9vbFwiO1xuXG4vKipcbiAqIE9uZSBlbnRyeSBvZiBhIHN0cnVjdHVyZWQgYGNvbnRlbnRgIGFycmF5LiBPbmx5IGB0eXBlYCBhbmQgYHRleHRgIGFyZSByZWFkXG4gKiBoZXJlOyB0aGUgaW5kZXggc2lnbmF0dXJlIGtlZXBzIHByb3ZpZGVyLXNwZWNpZmljIHBhcnRzIChpbWFnZXMsIHRoaW5raW5nXG4gKiBibG9ja3MsIGNhY2hlIG1hcmtlcnMpIGludGFjdCB0aHJvdWdoIGEgcGFyc2Uvc2VyaWFsaXplIHJvdW5kIHRyaXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdENvbnRlbnRQYXJ0IHtcbiAgdHlwZT86IHN0cmluZztcbiAgdGV4dD86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLyoqIFRoZSBmdW5jdGlvbiBhIHRvb2wgY2FsbCBpbnZva2VzLCB3aXRoIGl0cyBhcmd1bWVudHMgYXMgYSBKU09OIHN0cmluZy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFRvb2xDYWxsRnVuY3Rpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBKU09OLWVuY29kZWQgYXJndW1lbnQgb2JqZWN0LiBTdHJlYW1lZCBpbiBmcmFnbWVudHMsIHNvIGFzc2VtYmxlIGJlZm9yZSBwYXJzaW5nLiAqL1xuICBhcmd1bWVudHM6IHN0cmluZztcbn1cblxuLyoqIE9uZSB0b29sIGNhbGwgYXR0YWNoZWQgdG8gYW4gYXNzaXN0YW50IHR1cm4uICovXG5leHBvcnQgaW50ZXJmYWNlIENoYXRUb29sQ2FsbCB7XG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBgXCJmdW5jdGlvblwiYCBpbiBwcmFjdGljZTsgd2lkZW5lZCBzbyBhbiB1bnJlY29nbml6ZWQgdHlwZSByb3VuZC10cmlwcy4gKi9cbiAgdHlwZTogc3RyaW5nO1xuICBmdW5jdGlvbjogQ2hhdFRvb2xDYWxsRnVuY3Rpb247XG59XG5cbi8qKlxuICogQSBzaW5nbGUgY2hhdCBtZXNzYWdlLiBgY29udGVudGAgaXMgbnVsbGFibGUgYmVjYXVzZSBhbiBhc3Npc3RhbnQgdHVybiB0aGF0XG4gKiBvbmx5IGNhbGxzIHRvb2xzIGNhcnJpZXMgYGNvbnRlbnQ6IG51bGxgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYXRNZXNzYWdlIHtcbiAgLyoqIFNlZSB7QGxpbmsgQ2hhdFJvbGV9IGZvciB0aGUgc3RhbmRhcmQgdmFsdWVzOyB3aWRlbmVkIGZvciBwcm92aWRlciBleHRlbnNpb25zLiAqL1xuICByb2xlOiBzdHJpbmc7XG4gIGNvbnRlbnQ/OiBzdHJpbmcgfCBDaGF0Q29udGVudFBhcnQgfCBDaGF0Q29udGVudFBhcnRbXSB8IG51bGw7XG4gIHRvb2xfY2FsbHM/OiBDaGF0VG9vbENhbGxbXTtcbiAgLyoqIFNldCBvbiBhIGB0b29sYCB0dXJuLCBrZXlpbmcgaXQgYmFjayB0byB0aGUgY2FsbCBpdCBhbnN3ZXJzLiAqL1xuICB0b29sX2NhbGxfaWQ/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVG9wLWxldmVsIHJlcXVlc3QgZmllbGRzIGFuIE9wZW5BSSBjbGllbnQgbWF5IHNlbmQgdGhhdCBEYXRhYnJpY2tzIE1vZGVsXG4gKiBTZXJ2aW5nIHJlamVjdHMgb3V0cmlnaHQsIGZhaWxpbmcgdGhlIHdob2xlIHR1cm4gcmF0aGVyIHRoYW4gaWdub3JpbmcgdGhlbS5cbiAqXG4gKiBEYXRhYnJpY2tzIHZhbGlkYXRlcyB0aGUgY2hhdCBib2R5IHN0cmljdGx5LCBzbyBhbiB1bnJlY29nbml6ZWQga2V5IGNvbWVzXG4gKiBiYWNrIGFzIGBwYXJhbGxlbF90b29sX2NhbGxzOiBFeHRyYSBpbnB1dHMgYXJlIG5vdCBwZXJtaXR0ZWRgICh0aGVcbiAqIGdhdGV3YXkncyBweWRhbnRpYyB2YWxpZGF0aW9uKSBvciBganNvbjogdW5rbm93biBmaWVsZCBcInBhcmFsbGVsX3Rvb2xfY2FsbHNcImBcbiAqIChpdHMgc3RyaWN0IEpTT04gZGVjb2RlKSwgZGVwZW5kaW5nIG9uIHRoZSBlbmRwb2ludC4gRXZlcnl0aGluZyBsaXN0ZWQgaGVyZVxuICogaXMgZWl0aGVyIE9wZW5BSS1wbGF0Zm9ybSBib29ra2VlcGluZyB3aXRoIG5vIGJlYXJpbmcgb24gdGhlIGNvbXBsZXRpb24sIG9yIC1cbiAqIGluIHRoZSBjYXNlIG9mIGBwYXJhbGxlbF90b29sX2NhbGxzYCAtIGEgcmVhbCBzZXR0aW5nIERhdGFicmlja3MgaGFzIG5vIHdheVxuICogdG8gYWNjZXB0LCBzbyBkcm9wcGluZyBpdCBpcyB0aGUgb25seSB3YXkgdGhlIHJlcXVlc3QgY2FuIHN1Y2NlZWQgYXQgYWxsLlxuICpcbiAqIENhbGxlcnMgdGhhdCB0cmFuc2xhdGUgYSByZXF1ZXN0IGZpZWxkLWJ5LWZpZWxkIHRocm91Z2ggYW4gYWxsb3dsaXN0IG5ldmVyXG4gKiBuZWVkIHRoaXM7IGl0IGV4aXN0cyBmb3IgdGhlXG4gKiBwYXRocyB0aGF0IGZvcndhcmQgYSBjbGllbnQgYm9keSBsYXJnZWx5IGFzLWlzLlxuICovXG5leHBvcnQgY29uc3QgVU5TVVBQT1JURURfQ0hBVF9GSUVMRFM6IHJlYWRvbmx5IHN0cmluZ1tdID0gW1xuICAvLyBUb29sLWNhbGxpbmcgY29uY3VycmVuY3kgaGludC4gRGF0YWJyaWNrcyByZWplY3RzIGl0OyB0aGUgdXBzdHJlYW0gcHJvdmlkZXJcbiAgLy8gZGVjaWRlcyBwYXJhbGxlbGlzbSBpdHNlbGYuXG4gIFwicGFyYWxsZWxfdG9vbF9jYWxsc1wiLFxuICAvLyBSZXNwb25zZS1wZXJzaXN0ZW5jZSBhbmQgYm9va2tlZXBpbmcgZmllbGRzIGZvciBPcGVuQUkncyBvd24gcGxhdGZvcm0uXG4gIFwic3RvcmVcIixcbiAgXCJtZXRhZGF0YVwiLFxuICBcInNlcnZpY2VfdGllclwiLFxuICBcInByb21wdF9jYWNoZV9rZXlcIixcbiAgXCJzYWZldHlfaWRlbnRpZmllclwiLFxuXTtcblxuLyoqXG4gKiBEZWxldGUgdGhlIGZpZWxkcyBEYXRhYnJpY2tzIHJlamVjdHMgZnJvbSBhIGNoYXQgcmVxdWVzdCBib2R5LCBpbiBwbGFjZS5cbiAqIFJldHVybnMgdGhlIG5hbWVzIGFjdHVhbGx5IHJlbW92ZWQgc28gYSBjYWxsZXIgY2FuIGxvZyB3aGF0IGl0IGRyb3BwZWQuXG4gKlxuICogQHBhcmFtIGJvZHkgLSBQYXJzZWQgY2hhdCByZXF1ZXN0IGJvZHkuIE11dGF0ZWQuXG4gKiBAcGFyYW0gZXh0cmEgLSBBZGRpdGlvbmFsIGZpZWxkIG5hbWVzIHRvIGRyb3AsIGZvciBhIHdvcmtzcGFjZSBvciBlbmRwb2ludFxuICogICB0aGF0IHJlamVjdHMgc29tZXRoaW5nIG5vdCB5ZXQgaW4ge0BsaW5rIFVOU1VQUE9SVEVEX0NIQVRfRklFTERTfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwVW5zdXBwb3J0ZWRDaGF0RmllbGRzKFxuICBib2R5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgZXh0cmE6IHJlYWRvbmx5IHN0cmluZ1tdID0gW10sXG4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGRyb3BwZWQ6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgZmllbGQgb2YgWy4uLlVOU1VQUE9SVEVEX0NIQVRfRklFTERTLCAuLi5leHRyYV0pIHtcbiAgICBpZiAoIShmaWVsZCBpbiBib2R5KSkgY29udGludWU7XG4gICAgZGVsZXRlIGJvZHlbZmllbGRdO1xuICAgIGRyb3BwZWQucHVzaChmaWVsZCk7XG4gIH1cbiAgcmV0dXJuIGRyb3BwZWQ7XG59XG5cbi8qKiBPcHRpb25zIGZvciB7QGxpbmsgY2hhdENvbnRlbnRUb1RleHR9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGF0Q29udGVudFRvVGV4dE9wdGlvbnMge1xuICAvKipcbiAgICogUGxhY2VkIGJldHdlZW4gcGFydHMuIERlZmF1bHRzIHRvIGBcIlwiYCwgd2hpY2ggcmVhc3NlbWJsZXMgYSBtZXNzYWdlIHRoYXQgd2FzXG4gICAqIHNwbGl0IHB1cmVseSBmb3IgdHJhbnNwb3J0OyBwYXNzIGBcIlxcblxcblwiYCB3aGVuIHRoZSBwYXJ0cyBhcmUgc2VwYXJhdGVcbiAgICogcGFyYWdyYXBocyB0aGF0IGEgaHVtYW4gd2lsbCByZWFkLlxuICAgKi9cbiAgc2VwYXJhdG9yPzogc3RyaW5nO1xuICAvKipcbiAgICogUmVzdHJpY3QgdG8gdGhlc2UgYHR5cGVgIHZhbHVlcy4gRGVmYXVsdHMgdG8gYWNjZXB0aW5nIGFueSBwYXJ0IGNhcnJ5aW5nXG4gICAqIGB0ZXh0YCwgd2hpY2ggY292ZXJzIHRoZSBgaW5wdXRfdGV4dGAgLyBgb3V0cHV0X3RleHRgIC8gYHRleHRgIHNwZWxsaW5nc1xuICAgKiBkaWZmZXJlbnQgQVBJcyB1c2UgZm9yIHRoZSBzYW1lIHRoaW5nLlxuICAgKi9cbiAgdHlwZXM/OiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgc3RydWN0dXJlZCBjaGF0IGNvbnRlbnQgdG8gYW4gYXJyYXkuIFByb3ZpZGVycyB1c3VhbGx5IGVtaXQgYVxuICogcGFydHMgYXJyYXksIGJ1dCBzb21lIGNvbXBhdGliaWxpdHkgbGF5ZXJzIGNvbGxhcHNlIGEgb25lLXBhcnQgYXJyYXkgdG8gdGhlXG4gKiBvYmplY3QgaXRzZWxmLiBSZXR1cm5zIGB1bmRlZmluZWRgIGZvciBzdHJpbmdzLCBudWxscywgYW5kIG90aGVyIHNjYWxhclxuICogdmFsdWVzIHNvIGNhbGxlcnMgY2FuIGRpc3Rpbmd1aXNoIHN0cnVjdHVyZWQgY29udGVudCBmcm9tIHBsYWluIHRleHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGF0Q29udGVudFBhcnRzKGNvbnRlbnQ6IHVua25vd24pOiBDaGF0Q29udGVudFBhcnRbXSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkoY29udGVudClcbiAgICA/IGNvbnRlbnRcbiAgICA6IGNvbnRlbnQgJiYgdHlwZW9mIGNvbnRlbnQgPT09IFwib2JqZWN0XCJcbiAgICAgID8gW2NvbnRlbnRdXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgaWYgKCF2YWx1ZXMpIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiB2YWx1ZXMuZmlsdGVyKChwYXJ0KTogcGFydCBpcyBDaGF0Q29udGVudFBhcnQgPT5cbiAgICBCb29sZWFuKHBhcnQgJiYgdHlwZW9mIHBhcnQgPT09IFwib2JqZWN0XCIpLFxuICApO1xufVxuXG4vKipcbiAqIEZsYXR0ZW4gYSBtZXNzYWdlIGBjb250ZW50YCB2YWx1ZSB0byBwbGFpbiB0ZXh0LiBBY2NlcHRzIHRoZSBzdHJpbmcgZm9ybSBhbmRcbiAqIHN0cnVjdHVyZWQgY29udGVudCBhcyBlaXRoZXIgb25lIHtAbGluayBDaGF0Q29udGVudFBhcnR9IG9yIGFuIGFycmF5LCBhbmRcbiAqIHlpZWxkcyBgXCJcImAgZm9yIGFueXRoaW5nIGVsc2UgKG51bGwsIGEgbG9uZSBpbWFnZSBwYXJ0LCBhIG1hbGZvcm1lZCBwYXlsb2FkKS5cbiAqIFR5cGVkIGFzIGB1bmtub3duYCBiZWNhdXNlIG1vc3QgY2FsbGVycyBhcmUgcmVhZGluZyBhIGp1c3QtcGFyc2VkIEpTT04gYm9keSxcbiAqIGFuZCB0aGUgcG9pbnQgb2YgdGhpcyBoZWxwZXIgaXMgdGhhdCB0aGV5IGRvIG5vdCBoYXZlIHRvIHByZS1jaGVjayBpdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoYXRDb250ZW50VG9UZXh0KFxuICBjb250ZW50OiB1bmtub3duLFxuICBvcHRpb25zOiBDaGF0Q29udGVudFRvVGV4dE9wdGlvbnMgPSB7fSxcbik6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIGNvbnRlbnQ7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBjaGF0Q29udGVudFBhcnRzKGNvbnRlbnQpO1xuICBpZiAoIW5vcm1hbGl6ZWQpIHJldHVybiBcIlwiO1xuICBjb25zdCB7IHNlcGFyYXRvciA9IFwiXCIsIHR5cGVzIH0gPSBvcHRpb25zO1xuICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBwYXJ0IG9mIG5vcm1hbGl6ZWQpIHtcbiAgICBpZiAodHlwZXMgJiYgKHR5cGVvZiBwYXJ0LnR5cGUgIT09IFwic3RyaW5nXCIgfHwgIXR5cGVzLmluY2x1ZGVzKHBhcnQudHlwZSkpKSBjb250aW51ZTtcbiAgICBpZiAodHlwZW9mIHBhcnQudGV4dCA9PT0gXCJzdHJpbmdcIikgcGFydHMucHVzaChwYXJ0LnRleHQpO1xuICB9XG4gIHJldHVybiBwYXJ0cy5qb2luKHNlcGFyYXRvcik7XG59XG4iXX0=
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLWNoYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3BlbmFpLWNoYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDO0tBQzVCLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUMxRCxRQUFRLENBQ1AsK0dBQStHLENBQ2hILENBQUM7QUFJSixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDO0tBQ25DLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDO1NBQ0osTUFBTSxFQUFFO1NBQ1IsUUFBUSxFQUFFO1NBQ1YsUUFBUSxDQUFDLCtEQUErRCxDQUFDO0lBQzVFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLHVEQUF1RCxDQUFDO0NBQzlGLENBQUM7S0FDRCxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQ3JCLFFBQVEsQ0FDUCxnR0FBZ0csQ0FDakcsQ0FBQztBQUlKLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUM7S0FDeEMsTUFBTSxDQUFDO0lBQ04sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsMENBQTBDLENBQUM7SUFDckUsU0FBUyxFQUFFLENBQUM7U0FDVCxNQUFNLEVBQUU7U0FDUixRQUFRLENBQUMsa0ZBQWtGLENBQUM7Q0FDaEcsQ0FBQztLQUNELFFBQVEsQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO0FBSXRGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUM7S0FDaEMsTUFBTSxDQUFDO0lBQ04sRUFBRSxF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bnQiOlsiLyoqXG4gKiBPcGVuQUkgQ2hhdCBDb21wbGV0aW9ucyB3aXJlIHNoYXBlcywgYXMgRGF0YWJyaWNrcyBNb2RlbCBTZXJ2aW5nIHNwZWFrcyB0aGVtLlxuICpcbiAqIFRoZXNlIGFyZSB0aGUgcmVxdWVzdC9yZXBseSBwYXlsb2FkIHR5cGVzIGZvciBgL2NoYXQvY29tcGxldGlvbnNgIGFuZCBhXG4gKiBzZXJ2aW5nIGVuZHBvaW50J3MgYGludm9jYXRpb25zYCBVUkwuIFRoZXkgYXJlIGRlbGliZXJhdGVseSBkZWNsYXJlZCBoZXJlXG4gKiByYXRoZXIgdGhhbiBpbXBvcnRlZCBmcm9tIHRoZSBPcGVuQUkgb3IgQUkgU0RLIHBhY2thZ2VzOiBib3RoIGtlZXAgdGhlc2VcbiAqIGZpZWxkcyB1bmRlciBpbnRlcm5hbCBuYW1lc3BhY2VzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZWlyIHB1YmxpYyBBUEksXG4gKiB3aGVyZWFzIHRoZSB3aXJlIHBheWxvYWQgaXRzZWxmIGlzIHRoZSBzdGFibGUgY29udHJhY3QgZXZlcnkgY2FsbGVyIGluIHRoaXNcbiAqIHJlcG8gYWN0dWFsbHkgY29kZXMgYWdhaW5zdC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGNvbnN0IENoYXRSb2xlU2NoZW1hID0gelxuICAuZW51bShbXCJzeXN0ZW1cIiwgXCJkZXZlbG9wZXJcIiwgXCJ1c2VyXCIsIFwiYXNzaXN0YW50XCIsIFwidG9vbFwiXSlcbiAgLmRlc2NyaWJlKFxuICAgIFwiU3RhbmRhcmQgT3BlbkFJIGNoYXQgcm9sZXMuIE1lc3NhZ2Uucm9sZSBzdGF5cyBhIHBsYWluIHN0cmluZyBiZWNhdXNlIHByb3ZpZGVycyBhZGQgdmFsdWVzIHN1Y2ggYXMgcmVhc29uaW5nLlwiLFxuICApO1xuXG5leHBvcnQgdHlwZSBDaGF0Um9sZSA9IHouaW5mZXI8dHlwZW9mIENoYXRSb2xlU2NoZW1hPjtcblxuZXhwb3J0IGNvbnN0IENoYXRDb250ZW50UGFydFNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgdHlwZTogelxuICAgICAgLnN0cmluZygpXG4gICAgICAub3B0aW9uYWwoKVxuICAgICAgLmRlc2NyaWJlKFwiUGFydCBkaXNjcmltaW5hdG9yLCBzdWNoIGFzIHRleHQsIGlucHV0X3RleHQsIG9yIG91dHB1dF90ZXh0LlwiKSxcbiAgICB0ZXh0OiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJQbGFpbi10ZXh0IHBheWxvYWQgY2FycmllZCBieSB0aGlzIHBhcnQgd2hlbiBwcmVzZW50LlwiKSxcbiAgfSlcbiAgLmNhdGNoYWxsKHoudW5rbm93bigpKVxuICAuZGVzY3JpYmUoXG4gICAgXCJPbmUgZW50cnkgb2YgYSBzdHJ1Y3R1cmVkIGNvbnRlbnQgYXJyYXkuIEV4dHJhIHByb3ZpZGVyIGtleXMgcm91bmQtdHJpcCB0aHJvdWdoIHRoZSBjYXRjaC1hbGwuXCIsXG4gICk7XG5cbmV4cG9ydCB0eXBlIENoYXRDb250ZW50UGFydCA9IHouaW5mZXI8dHlwZW9mIENoYXRDb250ZW50UGFydFNjaGVtYT47XG5cbmV4cG9ydCBjb25zdCBDaGF0VG9vbENhbGxGdW5jdGlvblNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgbmFtZTogei5zdHJpbmcoKS5kZXNjcmliZShcIkZ1bmN0aW9uIG5hbWUgdGhlIG1vZGVsIHdhbnRzIHRvIGludm9rZS5cIiksXG4gICAgYXJndW1lbnRzOiB6XG4gICAgICAuc3RyaW5nKClcbiAgICAgIC5kZXNjcmliZShcIkpTT04tZW5jb2RlZCBhcmd1bWVudCBvYmplY3QuIFN0cmVhbWVkIGluIGZyYWdtZW50cywgc28gYXNzZW1ibGUgYmVmb3JlIHBhcnNpbmcuXCIpLFxuICB9KVxuICAuZGVzY3JpYmUoXCJUaGUgZnVuY3Rpb24gYSB0b29sIGNhbGwgaW52b2tlcywgd2l0aCBpdHMgYXJndW1lbnRzIGFzIGEgSlNPTiBzdHJpbmcuXCIpO1xuXG5leHBvcnQgdHlwZSBDaGF0VG9vbENhbGxGdW5jdGlvbiA9IHouaW5mZXI8dHlwZW9mIENoYXRUb29sQ2FsbEZ1bmN0aW9uU2NoZW1hPjtcblxuZXhwb3J0IGNvbnN0IENoYXRUb29sQ2FsbFNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUb29sLWNhbGwgaWRlbnRpZmllciBlY2hvZWQgb24gdGhlIG1hdGNoaW5nIHRvb2wgbWVzc2FnZS5cIiksXG4gICAgdHlwZTogelxuICAgICAgLnN0cmluZygpXG4gICAgICAuZGVzY3JpYmUoXCJUb29sIHR5cGUuIGZ1bmN0aW9uIGluIHByYWN0aWNlOyB3aWRlbmVkIHNvIHVucmVjb2duaXplZCB2YWx1ZXMgcm91bmQtdHJpcC5cIiksXG4gICAgZnVuY3Rpb246IENoYXRUb29sQ2FsbEZ1bmN0aW9uU2NoZW1hLmRlc2NyaWJlKFxuICAgICAgXCJGdW5jdGlvbiBuYW1lIGFuZCBKU09OIGFyZ3VtZW50cyBmb3IgdGhpcyBjYWxsLlwiLFxuICAgICksXG4gIH0pXG4gIC5kZXNjcmliZShcIk9uZSB0b29sIGNhbGwgYXR0YWNoZWQgdG8gYW4gYXNzaXN0YW50IHR1cm4uXCIpO1xuXG5leHBvcnQgdHlwZSBDaGF0VG9vbENhbGwgPSB6LmluZmVyPHR5cGVvZiBDaGF0VG9vbENhbGxTY2hlbWE+O1xuXG5leHBvcnQgY29uc3QgQ2hhdE1lc3NhZ2VTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHJvbGU6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIk1lc3NhZ2UgYXV0aG9yLiBTZWUgQ2hhdFJvbGUgZm9yIHRoZSBzdGFuZGFyZCB2YWx1ZXM7IHdpZGVuZWQgZm9yIHByb3ZpZGVyIGV4dGVuc2lvbnMuXCIsXG4gICAgICApLFxuICAgIGNvbnRlbnQ6IHpcbiAgICAgIC51bmlvbihbei5zdHJpbmcoKSwgQ2hhdENvbnRlbnRQYXJ0U2NoZW1hLCB6LmFycmF5KENoYXRDb250ZW50UGFydFNjaGVtYSldKVxuICAgICAgLm51bGxhYmxlKClcbiAgICAgIC5vcHRpb25hbCgpXG4gICAgICAuZGVzY3JpYmUoXCJNZXNzYWdlIGJvZHkuIE51bGwgd2hlbiBhbiBhc3Npc3RhbnQgdHVybiBvbmx5IGNhbGxzIHRvb2xzLlwiKSxcbiAgICB0b29sX2NhbGxzOiB6XG4gICAgICAuYXJyYXkoQ2hhdFRvb2xDYWxsU2NoZW1hKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIlRvb2wgY2FsbHMgYXR0YWNoZWQgdG8gYW4gYXNzaXN0YW50IHR1cm4uXCIpLFxuICAgIHRvb2xfY2FsbF9pZDogelxuICAgICAgLnN0cmluZygpXG4gICAgICAub3B0aW9uYWwoKVxuICAgICAgLmRlc2NyaWJlKFwiU2V0IG9uIGEgdG9vbCB0dXJuLCBrZXlpbmcgaXQgYmFjayB0byB0aGUgY2FsbCBpdCBhbnN3ZXJzLlwiKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJPcHRpb25hbCBzcGVha2VyIG9yIGZ1bmN0aW9uIG5hbWUuXCIpLFxuICB9KVxuICAuZGVzY3JpYmUoXCJBIHNpbmdsZSBjaGF0IG1lc3NhZ2UgaW4gYW4gT3BlbkFJIENoYXQgQ29tcGxldGlvbnMgcmVxdWVzdCBvciByZXNwb25zZS5cIik7XG5cbmV4cG9ydCB0eXBlIENoYXRNZXNzYWdlID0gei5pbmZlcjx0eXBlb2YgQ2hhdE1lc3NhZ2VTY2hlbWE+O1xuXG4vKipcbiAqIFRvcC1sZXZlbCByZXF1ZXN0IGZpZWxkcyBhbiBPcGVuQUkgY2xpZW50IG1heSBzZW5kIHRoYXQgRGF0YWJyaWNrcyBNb2RlbFxuICogU2VydmluZyByZWplY3RzIG91dHJpZ2h0LCBmYWlsaW5nIHRoZSB3aG9sZSB0dXJuIHJhdGhlciB0aGFuIGlnbm9yaW5nIHRoZW0uXG4gKlxuICogRGF0YWJyaWNrcyB2YWxpZGF0ZXMgdGhlIGNoYXQgYm9keSBzdHJpY3RseSwgc28gYW4gdW5yZWNvZ25pemVkIGtleSBjb21lc1xuICogYmFjayBhcyBgcGFyYWxsZWxfdG9vbF9jYWxsczogRXh0cmEgaW5wdXRzIGFyZSBub3QgcGVybWl0dGVkYCAodGhlXG4gKiBnYXRld2F5J3MgcHlkYW50aWMgdmFsaWRhdGlvbikgb3IgYGpzb246IHVua25vd24gZmllbGQgXCJwYXJhbGxlbF90b29sX2NhbGxzXCJgXG4gKiAoaXRzIHN0cmljdCBKU09OIGRlY29kZSksIGRlcGVuZGluZyBvbiB0aGUgZW5kcG9pbnQuIEV2ZXJ5dGhpbmcgbGlzdGVkIGhlcmVcbiAqIGlzIGVpdGhlciBPcGVuQUktcGxhdGZvcm0gYm9va2tlZXBpbmcgd2l0aCBubyBiZWFyaW5nIG9uIHRoZSBjb21wbGV0aW9uLCBvciAtXG4gKiBpbiB0aGUgY2FzZSBvZiBgcGFyYWxsZWxfdG9vbF9jYWxsc2AgLSBhIHJlYWwgc2V0dGluZyBEYXRhYnJpY2tzIGhhcyBubyB3YXlcbiAqIHRvIGFjY2VwdCwgc28gZHJvcHBpbmcgaXQgaXMgdGhlIG9ubHkgd2F5IHRoZSByZXF1ZXN0IGNhbiBzdWNjZWVkIGF0IGFsbC5cbiAqXG4gKiBDYWxsZXJzIHRoYXQgdHJhbnNsYXRlIGEgcmVxdWVzdCBmaWVsZC1ieS1maWVsZCB0aHJvdWdoIGFuIGFsbG93bGlzdCBuZXZlclxuICogbmVlZCB0aGlzOyBpdCBleGlzdHMgZm9yIHRoZVxuICogcGF0aHMgdGhhdCBmb3J3YXJkIGEgY2xpZW50IGJvZHkgbGFyZ2VseSBhcy1pcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFVOU1VQUE9SVEVEX0NIQVRfRklFTERTOiByZWFkb25seSBzdHJpbmdbXSA9IFtcbiAgXCJwYXJhbGxlbF90b29sX2NhbGxzXCIsXG4gIFwic3RvcmVcIixcbiAgXCJtZXRhZGF0YVwiLFxuICBcInNlcnZpY2VfdGllclwiLFxuICBcInByb21wdF9jYWNoZV9rZXlcIixcbiAgXCJzYWZldHlfaWRlbnRpZmllclwiLFxuXTtcblxuLyoqXG4gKiBEZWxldGUgdGhlIGZpZWxkcyBEYXRhYnJpY2tzIHJlamVjdHMgZnJvbSBhIGNoYXQgcmVxdWVzdCBib2R5LCBpbiBwbGFjZS5cbiAqIFJldHVybnMgdGhlIG5hbWVzIGFjdHVhbGx5IHJlbW92ZWQgc28gYSBjYWxsZXIgY2FuIGxvZyB3aGF0IGl0IGRyb3BwZWQuXG4gKlxuICogQHBhcmFtIGJvZHkgLSBQYXJzZWQgY2hhdCByZXF1ZXN0IGJvZHkuIE11dGF0ZWQuXG4gKiBAcGFyYW0gZXh0cmEgLSBBZGRpdGlvbmFsIGZpZWxkIG5hbWVzIHRvIGRyb3AsIGZvciBhIHdvcmtzcGFjZSBvciBlbmRwb2ludFxuICogICB0aGF0IHJlamVjdHMgc29tZXRoaW5nIG5vdCB5ZXQgaW4ge0BsaW5rIFVOU1VQUE9SVEVEX0NIQVRfRklFTERTfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwVW5zdXBwb3J0ZWRDaGF0RmllbGRzKFxuICBib2R5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgZXh0cmE6IHJlYWRvbmx5IHN0cmluZ1tdID0gW10sXG4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGRyb3BwZWQ6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgZmllbGQgb2YgWy4uLlVOU1VQUE9SVEVEX0NIQVRfRklFTERTLCAuLi5leHRyYV0pIHtcbiAgICBpZiAoIShmaWVsZCBpbiBib2R5KSkgY29udGludWU7XG4gICAgZGVsZXRlIGJvZHlbZmllbGRdO1xuICAgIGRyb3BwZWQucHVzaChmaWVsZCk7XG4gIH1cbiAgcmV0dXJuIGRyb3BwZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBDaGF0Q29udGVudFRvVGV4dE9wdGlvbnNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHNlcGFyYXRvcjogelxuICAgICAgLnN0cmluZygpXG4gICAgICAub3B0aW9uYWwoKVxuICAgICAgLmRlc2NyaWJlKFwiUGxhY2VkIGJldHdlZW4gcGFydHMuIERlZmF1bHRzIHRvIGVtcHR5LCB3aGljaCByZWFzc2VtYmxlcyB0cmFuc3BvcnQtc3BsaXQgdGV4dC5cIiksXG4gICAgdHlwZXM6IHpcbiAgICAgIC5hcnJheSh6LnN0cmluZygpKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIlJlc3RyaWN0IGZsYXR0ZW5pbmcgdG8gdGhlc2UgcGFydCB0eXBlIHZhbHVlcyB3aGVuIHNldC5cIiksXG4gIH0pXG4gIC5kZXNjcmliZShcIk9wdGlvbnMgZm9yIGZsYXR0ZW5pbmcgc3RydWN0dXJlZCBjaGF0IGNvbnRlbnQgdG8gcGxhaW4gdGV4dC5cIik7XG5cbmV4cG9ydCB0eXBlIENoYXRDb250ZW50VG9UZXh0T3B0aW9ucyA9IHouaW5mZXI8dHlwZW9mIENoYXRDb250ZW50VG9UZXh0T3B0aW9uc1NjaGVtYT47XG5cbi8qKlxuICogTm9ybWFsaXplIHN0cnVjdHVyZWQgY2hhdCBjb250ZW50IHRvIGFuIGFycmF5LiBQcm92aWRlcnMgdXN1YWxseSBlbWl0IGFcbiAqIHBhcnRzIGFycmF5LCBidXQgc29tZSBjb21wYXRpYmlsaXR5IGxheWVycyBjb2xsYXBzZSBhIG9uZS1wYXJ0IGFycmF5IHRvIHRoZVxuICogb2JqZWN0IGl0c2VsZi4gUmV0dXJucyBgdW5kZWZpbmVkYCBmb3Igc3RyaW5ncywgbnVsbHMsIGFuZCBvdGhlciBzY2FsYXJcbiAqIHZhbHVlcyBzbyBjYWxsZXJzIGNhbiBkaXN0aW5ndWlzaCBzdHJ1Y3R1cmVkIGNvbnRlbnQgZnJvbSBwbGFpbiB0ZXh0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhdENvbnRlbnRQYXJ0cyhjb250ZW50OiB1bmtub3duKTogQ2hhdENvbnRlbnRQYXJ0W10gfCB1bmRlZmluZWQge1xuICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KGNvbnRlbnQpXG4gICAgPyBjb250ZW50XG4gICAgOiBjb250ZW50ICYmIHR5cGVvZiBjb250ZW50ID09PSBcIm9iamVjdFwiXG4gICAgICA/IFtjb250ZW50XVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIGlmICghdmFsdWVzKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gdmFsdWVzLmZsYXRNYXAoKHBhcnQpID0+IHtcbiAgICBjb25zdCBwYXJzZWQgPSBDaGF0Q29udGVudFBhcnRTY2hlbWEuc2FmZVBhcnNlKHBhcnQpO1xuICAgIHJldHVybiBwYXJzZWQuc3VjY2VzcyA/IFtwYXJzZWQuZGF0YV0gOiBbXTtcbiAgfSk7XG59XG5cbi8qKlxuICogRmxhdHRlbiBhIG1lc3NhZ2UgYGNvbnRlbnRgIHZhbHVlIHRvIHBsYWluIHRleHQuIEFjY2VwdHMgdGhlIHN0cmluZyBmb3JtIGFuZFxuICogc3RydWN0dXJlZCBjb250ZW50IGFzIGVpdGhlciBvbmUge0BsaW5rIENoYXRDb250ZW50UGFydH0gb3IgYW4gYXJyYXksIGFuZFxuICogeWllbGRzIGBcIlwiYCBmb3IgYW55dGhpbmcgZWxzZSAobnVsbCwgYSBsb25lIGltYWdlIHBhcnQsIGEgbWFsZm9ybWVkIHBheWxvYWQpLlxuICogVHlwZWQgYXMgYHVua25vd25gIGJlY2F1c2UgbW9zdCBjYWxsZXJzIGFyZSByZWFkaW5nIGEganVzdC1wYXJzZWQgSlNPTiBib2R5LFxuICogYW5kIHRoZSBwb2ludCBvZiB0aGlzIGhlbHBlciBpcyB0aGF0IHRoZXkgZG8gbm90IGhhdmUgdG8gcHJlLWNoZWNrIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhdENvbnRlbnRUb1RleHQoXG4gIGNvbnRlbnQ6IHVua25vd24sXG4gIG9wdGlvbnM6IENoYXRDb250ZW50VG9UZXh0T3B0aW9ucyA9IHt9LFxuKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBjb250ZW50ID09PSBcInN0cmluZ1wiKSByZXR1cm4gY29udGVudDtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IGNoYXRDb250ZW50UGFydHMoY29udGVudCk7XG4gIGlmICghbm9ybWFsaXplZCkgcmV0dXJuIFwiXCI7XG4gIGNvbnN0IHsgc2VwYXJhdG9yID0gXCJcIiwgdHlwZXMgfSA9IENoYXRDb250ZW50VG9UZXh0T3B0aW9uc1NjaGVtYS5wYXJzZShvcHRpb25zKTtcbiAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgcGFydCBvZiBub3JtYWxpemVkKSB7XG4gICAgaWYgKHR5cGVzICYmICh0eXBlb2YgcGFydC50eXBlICE9PSBcInN0cmluZ1wiIHx8ICF0eXBlcy5pbmNsdWRlcyhwYXJ0LnR5cGUpKSkgY29udGludWU7XG4gICAgaWYgKHR5cGVvZiBwYXJ0LnRleHQgPT09IFwic3RyaW5nXCIpIHBhcnRzLnB1c2gocGFydC50ZXh0KTtcbiAgfVxuICByZXR1cm4gcGFydHMuam9pbihzZXBhcmF0b3IpO1xufVxuIl19
|
package/lib/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/contracts.ts","../src/display.ts","../src/model.ts","../src/openai-chat.ts","../
|
|
1
|
+
{"root":["../src/contracts.ts","../src/display.ts","../src/model.ts","../src/openai-chat.ts","../index.ts"],"version":"5.9.3"}
|
package/package.json
CHANGED
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
"scripts": {
|
|
10
10
|
"build": "projen build",
|
|
11
11
|
"compile": "projen compile",
|
|
12
|
-
"contracts": "projen contracts",
|
|
13
12
|
"default": "projen default",
|
|
14
13
|
"package": "projen package",
|
|
15
14
|
"post-compile": "projen post-compile",
|
|
@@ -23,7 +22,7 @@
|
|
|
23
22
|
"typescript": "^5.9.3"
|
|
24
23
|
},
|
|
25
24
|
"dependencies": {
|
|
26
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
25
|
+
"@dbx-tools/shared-core": "^0.9.46",
|
|
27
26
|
"zod": "4.3.6"
|
|
28
27
|
},
|
|
29
28
|
"main": "./lib/index.js",
|
|
@@ -56,7 +55,7 @@
|
|
|
56
55
|
"./package.json": "./package.json"
|
|
57
56
|
}
|
|
58
57
|
},
|
|
59
|
-
"version": "0.9.
|
|
58
|
+
"version": "0.9.46",
|
|
60
59
|
"types": "./lib/index.d.ts",
|
|
61
60
|
"dbxToolsConfig": {
|
|
62
61
|
"tags": [
|