@nlabs/reaktor 1.12.0 → 1.13.0
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/docs/GENERATION.md
CHANGED
|
@@ -196,3 +196,20 @@ input remains supported by the TypeScript action.
|
|
|
196
196
|
|
|
197
197
|
Protocol references: [WebSocket mode](https://developers.openai.com/api/docs/guides/websocket-mode)
|
|
198
198
|
and [mid-turn steering](https://developers.openai.com/api/docs/guides/steering).
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
### Gemini text output controls (1.13.0)
|
|
202
|
+
|
|
203
|
+
The TypeScript action accepts `responseFormat: {type: 'json_object'}` for Gemini
|
|
204
|
+
JSON output and `{type: 'text'}` for explicit plain text. These map to
|
|
205
|
+
`generationConfig.responseMimeType`. Optional `temperature` is accepted for Gemini
|
|
206
|
+
text generation in the range 0–2, including zero. Unspecified options are omitted;
|
|
207
|
+
callers own model-specific defaults. Existing prompt/system handling, token budgets,
|
|
208
|
+
timeouts, and completion validation are unchanged. Requests still use one submission.
|
|
209
|
+
|
|
210
|
+
Gemini JSON schemas, image-generation output controls, and temperature on other
|
|
211
|
+
providers are rejected before submission, rather than silently discarded. Messages
|
|
212
|
+
and reasoning effort remain OpenAI-only. This addition is generic provider transport;
|
|
213
|
+
it contains no application prompts, reviewer choices, or writing policies.
|
|
214
|
+
|
|
215
|
+
Reference: [Gemini generation configuration](https://ai.google.dev/api/generate-content#v1beta.GenerationConfig).
|
|
@@ -36,8 +36,8 @@ const validMessageContent = (message)=>{
|
|
|
36
36
|
} else if (typeof input.prompt !== 'string' || !input.prompt.trim()) {
|
|
37
37
|
throw new ContentGenerationRejectedError('A non-empty prompt is required.');
|
|
38
38
|
}
|
|
39
|
-
if (input.provider !== 'openai' && (input.messages !== undefined || input.reasoningEffort !== undefined || input.responseFormat !== undefined)) {
|
|
40
|
-
throw new ContentGenerationRejectedError('Messages
|
|
39
|
+
if (input.provider !== 'openai' && (input.messages !== undefined || input.reasoningEffort !== undefined || input.provider === 'claude' && input.responseFormat !== undefined)) {
|
|
40
|
+
throw new ContentGenerationRejectedError('Messages and reasoning effort require OpenAI; Claude does not support response format options.');
|
|
41
41
|
}
|
|
42
42
|
if (input.timeoutMs !== undefined && (!Number.isInteger(input.timeoutMs) || input.timeoutMs < 1 || input.timeoutMs > 2_147_483_647)) {
|
|
43
43
|
throw new ContentGenerationRejectedError('timeoutMs must be a positive 32-bit integer.');
|
|
@@ -61,6 +61,12 @@ const validMessageContent = (message)=>{
|
|
|
61
61
|
].includes(format.type) || format.type === 'json_schema' && (typeof format.name !== 'string' || !/^[a-zA-Z0-9_-]{1,64}$/.test(format.name) || !format.schema || typeof format.schema !== 'object' || Array.isArray(format.schema) || format.strict !== undefined && typeof format.strict !== 'boolean'))) {
|
|
62
62
|
throw new ContentGenerationRejectedError('Invalid response format. JSON schemas require a name and schema object.');
|
|
63
63
|
}
|
|
64
|
+
if (input.provider === 'gemini' && format !== undefined && (format.type === 'json_schema' || input.modality === 'image')) {
|
|
65
|
+
throw new ContentGenerationRejectedError('Gemini response format supports text or json_object for text generation only.');
|
|
66
|
+
}
|
|
67
|
+
if (input.temperature !== undefined && (input.provider !== 'gemini' || input.modality === 'image' || !Number.isFinite(input.temperature) || input.temperature < 0 || input.temperature > 2)) {
|
|
68
|
+
throw new ContentGenerationRejectedError('temperature must be between 0 and 2 for Gemini text generation.');
|
|
69
|
+
}
|
|
64
70
|
if (input.maxTokens !== undefined && (!Number.isInteger(input.maxTokens) || input.maxTokens < 1)) {
|
|
65
71
|
throw new ContentGenerationRejectedError('maxTokens must be a positive integer.');
|
|
66
72
|
}
|
|
@@ -218,7 +224,13 @@ const validMessageContent = (message)=>{
|
|
|
218
224
|
'IMAGE'
|
|
219
225
|
]
|
|
220
226
|
} : {
|
|
221
|
-
maxOutputTokens: input.maxTokens ?? 4096
|
|
227
|
+
maxOutputTokens: input.maxTokens ?? 4096,
|
|
228
|
+
...format ? {
|
|
229
|
+
responseMimeType: format.type === 'json_object' ? 'application/json' : 'text/plain'
|
|
230
|
+
} : {},
|
|
231
|
+
...input.temperature !== undefined ? {
|
|
232
|
+
temperature: input.temperature
|
|
233
|
+
} : {}
|
|
222
234
|
},
|
|
223
235
|
...input.search ? {
|
|
224
236
|
tools: [
|
|
@@ -290,4 +302,4 @@ const validMessageContent = (message)=>{
|
|
|
290
302
|
};
|
|
291
303
|
};
|
|
292
304
|
|
|
293
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvYWN0aW9ucy9jb250ZW50R2VuZXJhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Bvc3R9IGZyb20gJ0BubGFicy9yaXAtaHVudGVyJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudEdlbmVyYXRpb25Db25maWcge1xuICBjbGF1ZGVLZXk/OiBzdHJpbmc7XG4gIGNsYXVkZU1vZGVsPzogc3RyaW5nO1xuICBnZW1pbmlJbWFnZU1vZGVsPzogc3RyaW5nO1xuICBnZW1pbmlLZXk/OiBzdHJpbmc7XG4gIGdlbWluaU1vZGVsPzogc3RyaW5nO1xuICBvcGVuYWlLZXk/OiBzdHJpbmc7XG4gIG9wZW5haU1vZGVsPzogc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgQ29udGVudEdlbmVyYXRpb25QYXJ0ID0ge3RleHQ6IHN0cmluZzsgdHlwZTogJ3RleHQnfSB8IHtcbiAgZGV0YWlsPzogJ2F1dG8nIHwgJ2hpZ2gnIHwgJ2xvdyc7XG4gIHR5cGU6ICdpbWFnZSc7XG4gIHVybDogc3RyaW5nO1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudEdlbmVyYXRpb25NZXNzYWdlIHtcbiAgY29udGVudDogc3RyaW5nIHwgQ29udGVudEdlbmVyYXRpb25QYXJ0W107XG4gIHJvbGU6ICdhc3Npc3RhbnQnIHwgJ2RldmVsb3BlcicgfCAnc3lzdGVtJyB8ICd1c2VyJztcbn1cbmV4cG9ydCB0eXBlIENvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VGb3JtYXQgPSB7dHlwZTogJ2pzb25fb2JqZWN0JyB8ICd0ZXh0J30gfCB7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNjaGVtYTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHN0cmljdD86IGJvb2xlYW47XG4gIHR5cGU6ICdqc29uX3NjaGVtYSc7XG59O1xuZXhwb3J0IHR5cGUgQ29udGVudEdlbmVyYXRpb25SZWFzb25pbmdFZmZvcnQgPSAnbm9uZScgfCAnbWluaW1hbCcgfCAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnIHwgJ3hoaWdoJyB8ICdtYXgnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRHZW5lcmF0aW9uSW5wdXQge1xuICBhc3BlY3RSYXRpbz86IHN0cmluZztcbiAgaW1hZ2VzPzoge2J5dGVzOiBCdWZmZXI7IG1pbWU6IHN0cmluZ31bXTtcbiAgbWF4VG9rZW5zPzogbnVtYmVyO1xuICBtZXNzYWdlcz86IENvbnRlbnRHZW5lcmF0aW9uTWVzc2FnZVtdO1xuICBtb2RhbGl0eT86ICdpbWFnZScgfCAndGV4dCc7XG4gIG1vZGVsPzogc3RyaW5nO1xuICBwcm9tcHQ/OiBzdHJpbmc7XG4gIHByb3ZpZGVyOiAnY2xhdWRlJyB8ICdnZW1pbmknIHwgJ29wZW5haSc7XG4gIHJlYXNvbmluZ0VmZm9ydD86IENvbnRlbnRHZW5lcmF0aW9uUmVhc29uaW5nRWZmb3J0O1xuICByZXNwb25zZUZvcm1hdD86IENvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VGb3JtYXQ7XG4gIHNlYXJjaD86IGJvb2xlYW47XG4gIHN5c3RlbT86IHN0cmluZztcbiAgdGltZW91dE1zPzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZWRDb250ZW50IHtcbiAgaW1hZ2U/OiB7Ynl0ZXM6IEJ1ZmZlcjsgbWltZTogJ2ltYWdlL2pwZWcnIHwgJ2ltYWdlL3BuZyd9O1xuICBzZWFyY2hTdWdnZXN0aW9uc0h0bWw/OiBzdHJpbmc7XG4gIHNvdXJjZXM6IHt0aXRsZTogc3RyaW5nOyB1cmw6IHN0cmluZ31bXTtcbiAgdGV4dDogc3RyaW5nO1xufVxuLyoqIEEgY29uZmlybWVkIHJlamVjdGlvbiBpcyBkaXN0aW5jdCBmcm9tIGFuIHVua25vd24gcGFpZCBzdWJtaXNzaW9uIG91dGNvbWUuICovXG5leHBvcnQgY2xhc3MgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yIGV4dGVuZHMgRXJyb3Ige31cbi8qKiBBbiBhY2NlcHRlZCBnZW5lcmF0aW9uIGRpZCBub3QgcHJvZHVjZSB1c2FibGUgb3V0cHV0OyBkbyBub3QgYXV0b21hdGljYWxseSByZXN1Ym1pdCBpdC4gKi9cbmV4cG9ydCBjbGFzcyBDb250ZW50R2VuZXJhdGlvblJlc3BvbnNlRXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuXG5pbnRlcmZhY2UgR2VtaW5pUGFydCB7aW5saW5lRGF0YT86IHtkYXRhOiBzdHJpbmc7IG1pbWVUeXBlOiBzdHJpbmd9OyB0ZXh0Pzogc3RyaW5nOyB0aG91Z2h0PzogYm9vbGVhbn1cbmludGVyZmFjZSBHZW1pbmlSZXNwb25zZSB7XG4gIGNhbmRpZGF0ZXM/OiB7XG4gICAgY29udGVudD86IHtwYXJ0cz86IEdlbWluaVBhcnRbXX07XG4gICAgZmluaXNoUmVhc29uPzogc3RyaW5nO1xuICAgIGdyb3VuZGluZ01ldGFkYXRhPzoge1xuICAgICAgZ3JvdW5kaW5nQ2h1bmtzPzoge3dlYj86IHt0aXRsZT86IHN0cmluZzsgdXJpPzogc3RyaW5nfX1bXTtcbiAgICAgIHNlYXJjaEVudHJ5UG9pbnQ/OiB7cmVuZGVyZWRDb250ZW50Pzogc3RyaW5nfTtcbiAgICB9O1xuICB9W107XG4gIGVycm9yPzoge2NvZGU/OiBudW1iZXJ9O1xuICBwcm9tcHRGZWVkYmFjaz86IHtibG9ja1JlYXNvbj86IHN0cmluZ307XG59XG5cbmNvbnN0IHZhbGlkTWVzc2FnZUNvbnRlbnQgPSAobWVzc2FnZTogQ29udGVudEdlbmVyYXRpb25NZXNzYWdlKTogYm9vbGVhbiA9PiB7XG4gIGlmKHR5cGVvZiBtZXNzYWdlLmNvbnRlbnQgPT09ICdzdHJpbmcnKSByZXR1cm4gISFtZXNzYWdlLmNvbnRlbnQudHJpbSgpO1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShtZXNzYWdlLmNvbnRlbnQpICYmIG1lc3NhZ2UuY29udGVudC5sZW5ndGggPiAwICYmIG1lc3NhZ2UuY29udGVudC5ldmVyeSgocGFydCkgPT4ge1xuICAgIGlmKCFwYXJ0KSByZXR1cm4gZmFsc2U7XG4gICAgaWYocGFydC50eXBlID09PSAndGV4dCcpIHJldHVybiB0eXBlb2YgcGFydC50ZXh0ID09PSAnc3RyaW5nJyAmJiAhIXBhcnQudGV4dC50cmltKCk7XG4gICAgcmV0dXJuIHBhcnQudHlwZSA9PT0gJ2ltYWdlJyAmJiBtZXNzYWdlLnJvbGUgPT09ICd1c2VyJyAmJiB0eXBlb2YgcGFydC51cmwgPT09ICdzdHJpbmcnXG4gICAgICAmJiAvXihodHRwcz86XFwvXFwvW15cXHNdK3xkYXRhOmltYWdlXFwvKHBuZ3xqcGVnfHdlYnB8Z2lmKTtiYXNlNjQsW0EtWmEtejAtOSsvXSs9ezAsMn0pJC8udGVzdChwYXJ0LnVybClcbiAgICAgICYmIChwYXJ0LmRldGFpbCA9PT0gdW5kZWZpbmVkIHx8IFsnYXV0bycsICdoaWdoJywgJ2xvdyddLmluY2x1ZGVzKHBhcnQuZGV0YWlsKSk7XG4gIH0pO1xufTtcblxuLyoqIFNpbmdsZSBzdWJtaXNzaW9uIHRocm91Z2ggUmlwLUh1bnRlcjsgY2FsbGVycyBvd24gZHVyYWJsZSBqb2JzIGFuZCByZWNvbmNpbGlhdGlvbi4gKi9cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUNvbnRlbnQgPSBhc3luYyAoXG4gIGlucHV0OiBDb250ZW50R2VuZXJhdGlvbklucHV0LFxuICBjb25maWc6IENvbnRlbnRHZW5lcmF0aW9uQ29uZmlnID0gQ29uZmlnLmdldDxDb250ZW50R2VuZXJhdGlvbkNvbmZpZz4oJ2NvbnRlbnRHZW5lcmF0aW9uJykgfHwge31cbik6IFByb21pc2U8R2VuZXJhdGVkQ29udGVudD4gPT4ge1xuICBpZighWydjbGF1ZGUnLCAnZ2VtaW5pJywgJ29wZW5haSddLmluY2x1ZGVzKGlucHV0LnByb3ZpZGVyKSkge1xuICAgIHRocm93IG5ldyBDb250ZW50R2VuZXJhdGlvblJlamVjdGVkRXJyb3IoJ0Egc3VwcG9ydGVkIHByb3ZpZGVyIGlzIHJlcXVpcmVkLicpO1xuICB9XG4gIGlmKGlucHV0Lm1lc3NhZ2VzICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZihpbnB1dC5wcm9tcHQgIT09IHVuZGVmaW5lZCB8fCAhQXJyYXkuaXNBcnJheShpbnB1dC5tZXNzYWdlcykgfHwgIWlucHV0Lm1lc3NhZ2VzLmxlbmd0aCB8fCBpbnB1dC5tZXNzYWdlcy5zb21lKChtZXNzYWdlKSA9PlxuICAgICAgIW1lc3NhZ2UgfHwgIVsnYXNzaXN0YW50JywgJ2RldmVsb3BlcicsICdzeXN0ZW0nLCAndXNlciddLmluY2x1ZGVzKG1lc3NhZ2Uucm9sZSkgfHwgIXZhbGlkTWVzc2FnZUNvbnRlbnQobWVzc2FnZSkpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdTdXBwbHkgZWl0aGVyIGEgbm9uLWVtcHR5IHByb21wdCBvciBub24tZW1wdHkgdGV4dCBtZXNzYWdlcyB3aXRoIHN1cHBvcnRlZCByb2xlcy4nKTtcbiAgICB9XG4gIH0gZWxzZSBpZih0eXBlb2YgaW5wdXQucHJvbXB0ICE9PSAnc3RyaW5nJyB8fCAhaW5wdXQucHJvbXB0LnRyaW0oKSkge1xuICAgIHRocm93IG5ldyBDb250ZW50R2VuZXJhdGlvblJlamVjdGVkRXJyb3IoJ0Egbm9uLWVtcHR5IHByb21wdCBpcyByZXF1aXJlZC4nKTtcbiAgfVxuICBpZihpbnB1dC5wcm92aWRlciAhPT0gJ29wZW5haScgJiYgKGlucHV0Lm1lc3NhZ2VzICE9PSB1bmRlZmluZWQgfHwgaW5wdXQucmVhc29uaW5nRWZmb3J0ICE9PSB1bmRlZmluZWQgfHwgaW5wdXQucmVzcG9uc2VGb3JtYXQgIT09IHVuZGVmaW5lZCkpIHtcbiAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdNZXNzYWdlcywgcmVhc29uaW5nIGVmZm9ydCwgYW5kIHJlc3BvbnNlIGZvcm1hdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBvbmx5IGJ5IE9wZW5BSS4nKTtcbiAgfVxuICBpZihpbnB1dC50aW1lb3V0TXMgIT09IHVuZGVmaW5lZCAmJiAoIU51bWJlci5pc0ludGVnZXIoaW5wdXQudGltZW91dE1zKSB8fCBpbnB1dC50aW1lb3V0TXMgPCAxIHx8IGlucHV0LnRpbWVvdXRNcyA+IDJfMTQ3XzQ4M182NDcpKSB7XG4gICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVqZWN0ZWRFcnJvcigndGltZW91dE1zIG11c3QgYmUgYSBwb3NpdGl2ZSAzMi1iaXQgaW50ZWdlci4nKTtcbiAgfVxuICBpZihpbnB1dC5yZWFzb25pbmdFZmZvcnQgIT09IHVuZGVmaW5lZCAmJiAhWydub25lJywgJ21pbmltYWwnLCAnbG93JywgJ21lZGl1bScsICdoaWdoJywgJ3hoaWdoJywgJ21heCddLmluY2x1ZGVzKGlucHV0LnJlYXNvbmluZ0VmZm9ydCkpIHtcbiAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdVbnN1cHBvcnRlZCByZWFzb25pbmcgZWZmb3J0LicpO1xuICB9XG4gIGNvbnN0IGZvcm1hdCA9IGlucHV0LnJlc3BvbnNlRm9ybWF0O1xuICBpZihmb3JtYXQgIT09IHVuZGVmaW5lZCAmJiAoIWZvcm1hdCB8fCAhWyd0ZXh0JywgJ2pzb25fb2JqZWN0JywgJ2pzb25fc2NoZW1hJ10uaW5jbHVkZXMoZm9ybWF0LnR5cGUpIHx8IChmb3JtYXQudHlwZSA9PT0gJ2pzb25fc2NoZW1hJyAmJiAoXG4gICAgdHlwZW9mIGZvcm1hdC5uYW1lICE9PSAnc3RyaW5nJyB8fCAhL15bYS16QS1aMC05Xy1dezEsNjR9JC8udGVzdChmb3JtYXQubmFtZSkgfHwgIWZvcm1hdC5zY2hlbWEgfHwgdHlwZW9mIGZvcm1hdC5zY2hlbWEgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZm9ybWF0LnNjaGVtYSlcbiAgICB8fCAoZm9ybWF0LnN0cmljdCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBmb3JtYXQuc3RyaWN0ICE9PSAnYm9vbGVhbicpXG4gICkpKSkge1xuICAgIHRocm93IG5ldyBDb250ZW50R2VuZXJhdGlvblJlamVjdGVkRXJyb3IoJ0ludmFsaWQgcmVzcG9uc2UgZm9ybWF0LiBKU09OIHNjaGVtYXMgcmVxdWlyZSBhIG5hbWUgYW5kIHNjaGVtYSBvYmplY3QuJyk7XG4gIH1cbiAgaWYoaW5wdXQubWF4VG9rZW5zICE9PSB1bmRlZmluZWQgJiYgKCFOdW1iZXIuaXNJbnRlZ2VyKGlucHV0Lm1heFRva2VucykgfHwgaW5wdXQubWF4VG9rZW5zIDwgMSkpIHtcbiAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdtYXhUb2tlbnMgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuJyk7XG4gIH1cbiAgaWYoaW5wdXQucHJvdmlkZXIgIT09ICdnZW1pbmknICYmIChpbnB1dC5pbWFnZXM/Lmxlbmd0aCB8fCBpbnB1dC5tb2RhbGl0eSA9PT0gJ2ltYWdlJyB8fCBpbnB1dC5zZWFyY2gpKSB7XG4gICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVqZWN0ZWRFcnJvcignVGhpcyBwcm92aWRlciBvcGVyYXRpb24gc3VwcG9ydHMgdGV4dCBpbnB1dCBhbmQgb3V0cHV0IG9ubHkuJyk7XG4gIH1cbiAgY29uc3Qge3Byb21wdCwgaW1hZ2VzID0gW119ID0gaW5wdXQ7XG4gIGlmKGlucHV0LnByb3ZpZGVyID09PSAnY2xhdWRlJykge1xuICAgIGlmKCFjb25maWcuY2xhdWRlS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdDbGF1ZGUgaXMgbm90IGNvbmZpZ3VyZWQgb24gdGhpcyBzZXJ2ZXIuJyk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdCgnaHR0cHM6Ly9hcGkuYW50aHJvcGljLmNvbS92MS9tZXNzYWdlcycsIHtcbiAgICAgIG1heF90b2tlbnM6IGlucHV0Lm1heFRva2VucyA/PyA0MDk2LFxuICAgICAgbWVzc2FnZXM6IFt7Y29udGVudDogcHJvbXB0LCByb2xlOiAndXNlcid9XSxcbiAgICAgIG1vZGVsOiBpbnB1dC5tb2RlbCB8fCBjb25maWcuY2xhdWRlTW9kZWwgfHwgJ2NsYXVkZS1zb25uZXQtNScsXG4gICAgICBzeXN0ZW06IGlucHV0LnN5c3RlbVxuICAgIH0sIHtjYWNoZTogZmFsc2UsIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHsnYW50aHJvcGljLXZlcnNpb24nOiAnMjAyMy0wNi0wMScsICd4LWFwaS1rZXknOiBjb25maWcuY2xhdWRlS2V5fSksIHRpbWVvdXQ6IGlucHV0LnRpbWVvdXRNcyA/PyAxMjBfMDAwfSkgYXMge1xuICAgICAgY29udGVudD86IHt0ZXh0Pzogc3RyaW5nOyB0eXBlPzogc3RyaW5nfVtdO1xuICAgICAgZXJyb3I/OiB7dHlwZT86IHN0cmluZ307XG4gICAgICBzdG9wX3JlYXNvbj86IHN0cmluZztcbiAgICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBpZihyZXNwb25zZS5lcnJvciAmJiBbJ2F1dGhlbnRpY2F0aW9uX2Vycm9yJywgJ2ludmFsaWRfcmVxdWVzdF9lcnJvcicsICdub3RfZm91bmRfZXJyb3InLCAncGVybWlzc2lvbl9lcnJvciddLmluY2x1ZGVzKHJlc3BvbnNlLmVycm9yLnR5cGUgfHwgJycpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdDbGF1ZGUgcmVqZWN0ZWQgdGhlIHJlcXVlc3QuIENoZWNrIHRoZSBtb2RlbCBhbmQgYWNjb3VudCBhY2Nlc3MuJyk7XG4gICAgfVxuICAgIGNvbnN0IHRleHQgPSByZXNwb25zZS5jb250ZW50Py5maWx0ZXIoKHBhcnQpID0+IHBhcnQudHlwZSA9PT0gJ3RleHQnKS5tYXAoKHBhcnQpID0+IHBhcnQudGV4dCB8fCAnJykuam9pbignXFxuJykudHJpbSgpO1xuICAgIGlmKHJlc3BvbnNlLmVycm9yIHx8IHJlc3BvbnNlLnR5cGUgIT09ICdtZXNzYWdlJyB8fCByZXNwb25zZS5zdG9wX3JlYXNvbiAhPT0gJ2VuZF90dXJuJyB8fCAhdGV4dCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VFcnJvcignQ2xhdWRlIHJlc3BvbnNlIGNvdWxkIG5vdCBiZSBjb25maXJtZWQuJyk7XG4gICAgfVxuICAgIHJldHVybiB7c291cmNlczogW10sIHRleHR9O1xuICB9XG4gIGlmKGlucHV0LnByb3ZpZGVyID09PSAnb3BlbmFpJykge1xuICAgIGlmKCFjb25maWcub3BlbmFpS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdPcGVuQUkgaXMgbm90IGNvbmZpZ3VyZWQgb24gdGhpcyBzZXJ2ZXIuJyk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdCgnaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9yZXNwb25zZXMnLCB7XG4gICAgICBpbnB1dDogaW5wdXQubWVzc2FnZXM/Lm1hcCgobWVzc2FnZSkgPT4gKHtjb250ZW50OiB0eXBlb2YgbWVzc2FnZS5jb250ZW50ID09PSAnc3RyaW5nJyA/IG1lc3NhZ2UuY29udGVudCA6IG1lc3NhZ2UuY29udGVudC5tYXAoKHBhcnQpID0+IHBhcnQudHlwZSA9PT0gJ3RleHQnXG4gICAgICAgID8ge3RleHQ6IHBhcnQudGV4dCwgdHlwZTogJ2lucHV0X3RleHQnfSA6IHtkZXRhaWw6IHBhcnQuZGV0YWlsID8/ICdhdXRvJywgaW1hZ2VfdXJsOiBwYXJ0LnVybCwgdHlwZTogJ2lucHV0X2ltYWdlJ30pLCByb2xlOiBtZXNzYWdlLnJvbGUgPT09ICdzeXN0ZW0nID8gJ2RldmVsb3BlcicgOiBtZXNzYWdlLnJvbGV9KSkgPz8gcHJvbXB0LFxuICAgICAgaW5zdHJ1Y3Rpb25zOiBpbnB1dC5zeXN0ZW0sXG4gICAgICBtYXhfb3V0cHV0X3Rva2VuczogaW5wdXQubWF4VG9rZW5zID8/IDQwOTYsXG4gICAgICBtb2RlbDogaW5wdXQubW9kZWwgfHwgY29uZmlnLm9wZW5haU1vZGVsIHx8ICdncHQtNi1hc3RyYScsXG4gICAgICAuLi4oaW5wdXQucmVhc29uaW5nRWZmb3J0ID8ge3JlYXNvbmluZzoge2VmZm9ydDogaW5wdXQucmVhc29uaW5nRWZmb3J0fX0gOiB7fSksXG4gICAgICBzdG9yZTogZmFsc2UsXG4gICAgICAuLi4oZm9ybWF0ID8ge3RleHQ6IHtmb3JtYXR9fSA6IHt9KSxcbiAgICAgIHRydW5jYXRpb246ICdkaXNhYmxlZCdcbiAgICB9LCB7Y2FjaGU6IGZhbHNlLCBoZWFkZXJzOiBuZXcgSGVhZGVycyh7QXV0aG9yaXphdGlvbjogYEJlYXJlciAke2NvbmZpZy5vcGVuYWlLZXl9YH0pLCB0aW1lb3V0OiBpbnB1dC50aW1lb3V0TXMgPz8gMTIwXzAwMH0pIGFzIHtcbiAgICAgIGVycm9yPzoge2NvZGU/OiBzdHJpbmc7IHR5cGU/OiBzdHJpbmd9O1xuICAgICAgb3V0cHV0Pzoge2NvbnRlbnQ/OiB7dGV4dD86IHN0cmluZzsgdHlwZT86IHN0cmluZ31bXTsgc3RhdHVzPzogc3RyaW5nOyB0eXBlPzogc3RyaW5nfVtdO1xuICAgICAgc3RhdHVzPzogc3RyaW5nO1xuICAgIH07XG4gICAgaWYocmVzcG9uc2UuZXJyb3IgJiYgWydpbnZhbGlkX3JlcXVlc3RfZXJyb3InLCAnYXV0aGVudGljYXRpb25fZXJyb3InLCAncGVybWlzc2lvbl9lcnJvciddLmluY2x1ZGVzKHJlc3BvbnNlLmVycm9yLnR5cGUgfHwgJycpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdPcGVuQUkgcmVqZWN0ZWQgdGhlIHJlcXVlc3QuIENoZWNrIHRoZSBtb2RlbCBhbmQgYWNjb3VudCBhY2Nlc3MuJyk7XG4gICAgfVxuICAgIGlmKHJlc3BvbnNlLmVycm9yIHx8IHJlc3BvbnNlLnN0YXR1cyAhPT0gJ2NvbXBsZXRlZCcgfHwgcmVzcG9uc2Uub3V0cHV0Py5zb21lKChpdGVtKSA9PiBpdGVtLnN0YXR1cyA9PT0gJ2luY29tcGxldGUnKSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VFcnJvcignT3BlbkFJIHJlc3BvbnNlIGNvdWxkIG5vdCBiZSBjb25maXJtZWQ6IGdlbmVyYXRpb24gZGlkIG5vdCBjb21wbGV0ZS4nKTtcbiAgICB9XG4gICAgaWYocmVzcG9uc2Uub3V0cHV0Py5zb21lKChpdGVtKSA9PiBpdGVtLmNvbnRlbnQ/LnNvbWUoKHBhcnQpID0+IHBhcnQudHlwZSA9PT0gJ3JlZnVzYWwnKSkpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZW50R2VuZXJhdGlvblJlc3BvbnNlRXJyb3IoJ09wZW5BSSBkZWNsaW5lZCB0aGUgcmVxdWVzdC4nKTtcbiAgICB9XG4gICAgaWYocmVzcG9uc2Uub3V0cHV0Py5zb21lKChpdGVtKSA9PiBpdGVtLnR5cGUgJiYgIVsnbWVzc2FnZScsICdyZWFzb25pbmcnXS5pbmNsdWRlcyhpdGVtLnR5cGUpKSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VFcnJvcignT3BlbkFJIHJldHVybmVkIGFuIHVuc3VwcG9ydGVkIG91dHB1dCBpdGVtLicpO1xuICAgIH1cbiAgICBjb25zdCB0ZXh0ID0gcmVzcG9uc2Uub3V0cHV0Py5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udHlwZSA9PT0gJ21lc3NhZ2UnKS5mbGF0TWFwKChpdGVtKSA9PiBpdGVtLmNvbnRlbnQgfHwgW10pXG4gICAgICAuZmlsdGVyKChwYXJ0KSA9PiBwYXJ0LnR5cGUgPT09ICdvdXRwdXRfdGV4dCcpLm1hcCgocGFydCkgPT4gcGFydC50ZXh0IHx8ICcnKS5qb2luKCcnKS50cmltKCk7XG4gICAgaWYoIXRleHQpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZW50R2VuZXJhdGlvblJlc3BvbnNlRXJyb3IoJ09wZW5BSSByZXR1cm5lZCBlbXB0eSBvdXRwdXQuJyk7XG4gICAgfVxuICAgIHJldHVybiB7c291cmNlczogW10sIHRleHR9O1xuICB9XG4gIGlmKCFjb25maWcuZ2VtaW5pS2V5KSB7XG4gICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVqZWN0ZWRFcnJvcignR2VtaW5pIGlzIG5vdCBjb25maWd1cmVkIG9uIHRoaXMgc2VydmVyLicpO1xuICB9XG4gIGNvbnN0IHBhcnRzOiB1bmtub3duW10gPSBbe3RleHQ6IHByb21wdH0sIC4uLmltYWdlcy5tYXAoKGltYWdlKSA9PiAoe2lubGluZURhdGE6IHtkYXRhOiBpbWFnZS5ieXRlcy50b1N0cmluZygnYmFzZTY0JyksIG1pbWVUeXBlOiBpbWFnZS5taW1lfX0pKV07XG4gIGNvbnN0IG1vZGVsID0gaW5wdXQubW9kZWwgfHwgKGlucHV0Lm1vZGFsaXR5ID09PSAnaW1hZ2UnID8gY29uZmlnLmdlbWluaUltYWdlTW9kZWwgfHwgJ2dlbWluaS0zLjEtZmxhc2gtaW1hZ2UnIDogY29uZmlnLmdlbWluaU1vZGVsIHx8ICdnZW1pbmktMy44LWZsYXNoJyk7XG4gIGlmKCEvXlthLXpBLVowLTkuXy1dKyQvLnRlc3QobW9kZWwpKSB7XG4gICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVqZWN0ZWRFcnJvcignSW52YWxpZCBHZW1pbmkgbW9kZWwgY29uZmlndXJhdGlvbi4nKTtcbiAgfVxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHBvc3QoYGh0dHBzOi8vZ2VuZXJhdGl2ZWxhbmd1YWdlLmdvb2dsZWFwaXMuY29tL3YxYmV0YS9tb2RlbHMvJHttb2RlbH06Z2VuZXJhdGVDb250ZW50YCwge1xuICAgIGNvbnRlbnRzOiBbe3BhcnRzLCByb2xlOiAndXNlcid9XSxcbiAgICAuLi4oaW5wdXQuc3lzdGVtID8ge3N5c3RlbUluc3RydWN0aW9uOiB7cGFydHM6IFt7dGV4dDogaW5wdXQuc3lzdGVtfV19fSA6IHt9KSxcbiAgICBnZW5lcmF0aW9uQ29uZmlnOiBpbnB1dC5tb2RhbGl0eSA9PT0gJ2ltYWdlJyA/IHsuLi4oaW5wdXQuYXNwZWN0UmF0aW8gPyB7aW1hZ2VDb25maWc6IHthc3BlY3RSYXRpbzogaW5wdXQuYXNwZWN0UmF0aW99fSA6IHt9KSwgcmVzcG9uc2VNb2RhbGl0aWVzOiBbJ1RFWFQnLCAnSU1BR0UnXX0gOiB7bWF4T3V0cHV0VG9rZW5zOiBpbnB1dC5tYXhUb2tlbnMgPz8gNDA5Nn0sXG4gICAgLi4uKGlucHV0LnNlYXJjaCA/IHt0b29sczogW3tnb29nbGVTZWFyY2g6IHt9fV19IDoge30pXG4gIH0sIHtjYWNoZTogZmFsc2UsIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHsneC1nb29nLWFwaS1rZXknOiBjb25maWcuZ2VtaW5pS2V5fSksIHRpbWVvdXQ6IGlucHV0LnRpbWVvdXRNcyA/PyAxMjBfMDAwfSkgYXMgR2VtaW5pUmVzcG9uc2U7XG4gIGlmKHJlc3BvbnNlLmVycm9yICYmIFs0MDAsIDQwMSwgNDAzLCA0MDRdLmluY2x1ZGVzKHJlc3BvbnNlLmVycm9yLmNvZGUgfHwgMCkpIHtcbiAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdHZW1pbmkgcmVqZWN0ZWQgdGhlIHJlcXVlc3QuIENoZWNrIHRoZSByZWZlcmVuY2UgZm9ybWF0IGFuZCBtb2RlbCBhY2Nlc3MuJyk7XG4gIH1cbiAgaWYocmVzcG9uc2UucHJvbXB0RmVlZGJhY2s/LmJsb2NrUmVhc29uIHx8IHJlc3BvbnNlLmVycm9yIHx8ICFyZXNwb25zZS5jYW5kaWRhdGVzPy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZXNwb25zZUVycm9yKCdHZW1pbmkgcmVzcG9uc2UgY291bGQgbm90IGJlIGNvbmZpcm1lZC4nKTtcbiAgfVxuICBjb25zdCBjYW5kaWRhdGUgPSByZXNwb25zZS5jYW5kaWRhdGVzWzBdITtcbiAgaWYoY2FuZGlkYXRlLmZpbmlzaFJlYXNvbiAhPT0gJ1NUT1AnKSB7XG4gICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VFcnJvcignR2VtaW5pIHJlc3BvbnNlIGNvdWxkIG5vdCBiZSBjb25maXJtZWQ6IGdlbmVyYXRpb24gZGlkIG5vdCBjb21wbGV0ZS4nKTtcbiAgfVxuICBjb25zdCBvdXRwdXQgPSAoY2FuZGlkYXRlLmNvbnRlbnQ/LnBhcnRzIHx8IFtdKS5maWx0ZXIoKHBhcnQpID0+ICFwYXJ0LnRob3VnaHQpO1xuICBjb25zdCBpbmxpbmUgPSBvdXRwdXQuZmluZCgocGFydCkgPT4gcGFydC5pbmxpbmVEYXRhKT8uaW5saW5lRGF0YTtcbiAgbGV0IGltYWdlOiBHZW5lcmF0ZWRDb250ZW50WydpbWFnZSddO1xuICBpZihpbmxpbmUgJiYgWydpbWFnZS9wbmcnLCAnaW1hZ2UvanBlZyddLmluY2x1ZGVzKGlubGluZS5taW1lVHlwZSkpIHtcbiAgICBjb25zdCBieXRlcyA9IEJ1ZmZlci5mcm9tKGlubGluZS5kYXRhLCAnYmFzZTY0Jyk7XG4gICAgaWYoIWJ5dGVzLmxlbmd0aCB8fCBieXRlcy5sZW5ndGggPiAyMCAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZXNwb25zZUVycm9yKCdJbnZhbGlkIGltYWdlIG91dHB1dC4nKTtcbiAgICB9XG4gICAgaW1hZ2UgPSB7Ynl0ZXMsIG1pbWU6IGlubGluZS5taW1lVHlwZSBhcyAnaW1hZ2UvcG5nJyB8ICdpbWFnZS9qcGVnJ307XG4gIH1cbiAgY29uc3QgdGV4dCA9IG91dHB1dC5tYXAoKHBhcnQpID0+IHBhcnQudGV4dCB8fCAnJykuam9pbignXFxuJykudHJpbSgpO1xuICBpZihpbnB1dC5tb2RhbGl0eSA9PT0gJ2ltYWdlJyA/ICFpbWFnZSA6ICF0ZXh0KSB7XG4gICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VFcnJvcignVGhlIHJlcXVlc3RlZCBvdXRwdXQgd2FzIG5vdCByZXR1cm5lZC4nKTtcbiAgfVxuICBjb25zdCBzb3VyY2VzID0gKGNhbmRpZGF0ZS5ncm91bmRpbmdNZXRhZGF0YT8uZ3JvdW5kaW5nQ2h1bmtzIHx8IFtdKS5mbGF0TWFwKCh7d2VifSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdlYj8udXJpIHx8ICcnKTtcbiAgICAgIHJldHVybiB1cmwucHJvdG9jb2wgPT09ICdodHRwczonID8gW3t0aXRsZTogd2ViPy50aXRsZSB8fCB1cmwuaG9zdG5hbWUsIHVybDogdXJsLmhyZWZ9XSA6IFtdO1xuICAgIH0gY2F0Y2h7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBpbWFnZSwgc2VhcmNoU3VnZ2VzdGlvbnNIdG1sOiBjYW5kaWRhdGUuZ3JvdW5kaW5nTWV0YWRhdGE/LnNlYXJjaEVudHJ5UG9pbnQ/LnJlbmRlcmVkQ29udGVudCwgc291cmNlcywgdGV4dFxuICB9O1xufTtcbiJdLCJuYW1lcyI6WyJwb3N0IiwiQ29uZmlnIiwiQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yIiwiRXJyb3IiLCJDb250ZW50R2VuZXJhdGlvblJlc3BvbnNlRXJyb3IiLCJ2YWxpZE1lc3NhZ2VDb250ZW50IiwibWVzc2FnZSIsImNvbnRlbnQiLCJ0cmltIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiZXZlcnkiLCJwYXJ0IiwidHlwZSIsInRleHQiLCJyb2xlIiwidXJsIiwidGVzdCIsImRldGFpbCIsInVuZGVmaW5lZCIsImluY2x1ZGVzIiwiZ2VuZXJhdGVDb250ZW50IiwiaW5wdXQiLCJjb25maWciLCJnZXQiLCJwcm92aWRlciIsIm1lc3NhZ2VzIiwicHJvbXB0Iiwic29tZSIsInJlYXNvbmluZ0VmZm9ydCIsInJlc3BvbnNlRm9ybWF0IiwidGltZW91dE1zIiwiTnVtYmVyIiwiaXNJbnRlZ2VyIiwiZm9ybWF0IiwibmFtZSIsInNjaGVtYSIsInN0cmljdCIsIm1heFRva2VucyIsImltYWdlcyIsIm1vZGFsaXR5Iiwic2VhcmNoIiwiY2xhdWRlS2V5IiwicmVzcG9uc2UiLCJtYXhfdG9rZW5zIiwibW9kZWwiLCJjbGF1ZGVNb2RlbCIsInN5c3RlbSIsImNhY2hlIiwiaGVhZGVycyIsIkhlYWRlcnMiLCJ0aW1lb3V0IiwiZXJyb3IiLCJmaWx0ZXIiLCJtYXAiLCJqb2luIiwic3RvcF9yZWFzb24iLCJzb3VyY2VzIiwib3BlbmFpS2V5IiwiaW1hZ2VfdXJsIiwiaW5zdHJ1Y3Rpb25zIiwibWF4X291dHB1dF90b2tlbnMiLCJvcGVuYWlNb2RlbCIsInJlYXNvbmluZyIsImVmZm9ydCIsInN0b3JlIiwidHJ1bmNhdGlvbiIsIkF1dGhvcml6YXRpb24iLCJzdGF0dXMiLCJvdXRwdXQiLCJpdGVtIiwiZmxhdE1hcCIsImdlbWluaUtleSIsInBhcnRzIiwiaW1hZ2UiLCJpbmxpbmVEYXRhIiwiZGF0YSIsImJ5dGVzIiwidG9TdHJpbmciLCJtaW1lVHlwZSIsIm1pbWUiLCJnZW1pbmlJbWFnZU1vZGVsIiwiZ2VtaW5pTW9kZWwiLCJjb250ZW50cyIsInN5c3RlbUluc3RydWN0aW9uIiwiZ2VuZXJhdGlvbkNvbmZpZyIsImFzcGVjdFJhdGlvIiwiaW1hZ2VDb25maWciLCJyZXNwb25zZU1vZGFsaXRpZXMiLCJtYXhPdXRwdXRUb2tlbnMiLCJ0b29scyIsImdvb2dsZVNlYXJjaCIsImNvZGUiLCJwcm9tcHRGZWVkYmFjayIsImJsb2NrUmVhc29uIiwiY2FuZGlkYXRlcyIsImNhbmRpZGF0ZSIsImZpbmlzaFJlYXNvbiIsInRob3VnaHQiLCJpbmxpbmUiLCJmaW5kIiwiQnVmZmVyIiwiZnJvbSIsImdyb3VuZGluZ01ldGFkYXRhIiwiZ3JvdW5kaW5nQ2h1bmtzIiwid2ViIiwiVVJMIiwidXJpIiwicHJvdG9jb2wiLCJ0aXRsZSIsImhvc3RuYW1lIiwiaHJlZiIsInNlYXJjaFN1Z2dlc3Rpb25zSHRtbCIsInNlYXJjaEVudHJ5UG9pbnQiLCJyZW5kZXJlZENvbnRlbnQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLElBQUksUUFBTyxvQkFBb0I7QUFFdkMsU0FBUUMsTUFBTSxRQUFPLGVBQWU7QUFrRHBDLCtFQUErRSxHQUMvRSxPQUFPLE1BQU1DLHVDQUF1Q0M7QUFBTztBQUMzRCw0RkFBNEYsR0FD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
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvYWN0aW9ucy9jb250ZW50R2VuZXJhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Bvc3R9IGZyb20gJ0BubGFicy9yaXAtaHVudGVyJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudEdlbmVyYXRpb25Db25maWcge1xuICBjbGF1ZGVLZXk/OiBzdHJpbmc7XG4gIGNsYXVkZU1vZGVsPzogc3RyaW5nO1xuICBnZW1pbmlJbWFnZU1vZGVsPzogc3RyaW5nO1xuICBnZW1pbmlLZXk/OiBzdHJpbmc7XG4gIGdlbWluaU1vZGVsPzogc3RyaW5nO1xuICBvcGVuYWlLZXk/OiBzdHJpbmc7XG4gIG9wZW5haU1vZGVsPzogc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgQ29udGVudEdlbmVyYXRpb25QYXJ0ID0ge3RleHQ6IHN0cmluZzsgdHlwZTogJ3RleHQnfSB8IHtcbiAgZGV0YWlsPzogJ2F1dG8nIHwgJ2hpZ2gnIHwgJ2xvdyc7XG4gIHR5cGU6ICdpbWFnZSc7XG4gIHVybDogc3RyaW5nO1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudEdlbmVyYXRpb25NZXNzYWdlIHtcbiAgY29udGVudDogc3RyaW5nIHwgQ29udGVudEdlbmVyYXRpb25QYXJ0W107XG4gIHJvbGU6ICdhc3Npc3RhbnQnIHwgJ2RldmVsb3BlcicgfCAnc3lzdGVtJyB8ICd1c2VyJztcbn1cbmV4cG9ydCB0eXBlIENvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VGb3JtYXQgPSB7dHlwZTogJ2pzb25fb2JqZWN0JyB8ICd0ZXh0J30gfCB7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNjaGVtYTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHN0cmljdD86IGJvb2xlYW47XG4gIHR5cGU6ICdqc29uX3NjaGVtYSc7XG59O1xuZXhwb3J0IHR5cGUgQ29udGVudEdlbmVyYXRpb25SZWFzb25pbmdFZmZvcnQgPSAnbm9uZScgfCAnbWluaW1hbCcgfCAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnIHwgJ3hoaWdoJyB8ICdtYXgnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRHZW5lcmF0aW9uSW5wdXQge1xuICBhc3BlY3RSYXRpbz86IHN0cmluZztcbiAgaW1hZ2VzPzoge2J5dGVzOiBCdWZmZXI7IG1pbWU6IHN0cmluZ31bXTtcbiAgbWF4VG9rZW5zPzogbnVtYmVyO1xuICBtZXNzYWdlcz86IENvbnRlbnRHZW5lcmF0aW9uTWVzc2FnZVtdO1xuICBtb2RhbGl0eT86ICdpbWFnZScgfCAndGV4dCc7XG4gIG1vZGVsPzogc3RyaW5nO1xuICBwcm9tcHQ/OiBzdHJpbmc7XG4gIHByb3ZpZGVyOiAnY2xhdWRlJyB8ICdnZW1pbmknIHwgJ29wZW5haSc7XG4gIHJlYXNvbmluZ0VmZm9ydD86IENvbnRlbnRHZW5lcmF0aW9uUmVhc29uaW5nRWZmb3J0O1xuICByZXNwb25zZUZvcm1hdD86IENvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VGb3JtYXQ7XG4gIHNlYXJjaD86IGJvb2xlYW47XG4gIHN5c3RlbT86IHN0cmluZztcbiAgdGVtcGVyYXR1cmU/OiBudW1iZXI7XG4gIHRpbWVvdXRNcz86IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVkQ29udGVudCB7XG4gIGltYWdlPzoge2J5dGVzOiBCdWZmZXI7IG1pbWU6ICdpbWFnZS9qcGVnJyB8ICdpbWFnZS9wbmcnfTtcbiAgc2VhcmNoU3VnZ2VzdGlvbnNIdG1sPzogc3RyaW5nO1xuICBzb3VyY2VzOiB7dGl0bGU6IHN0cmluZzsgdXJsOiBzdHJpbmd9W107XG4gIHRleHQ6IHN0cmluZztcbn1cbi8qKiBBIGNvbmZpcm1lZCByZWplY3Rpb24gaXMgZGlzdGluY3QgZnJvbSBhbiB1bmtub3duIHBhaWQgc3VibWlzc2lvbiBvdXRjb21lLiAqL1xuZXhwb3J0IGNsYXNzIENvbnRlbnRHZW5lcmF0aW9uUmVqZWN0ZWRFcnJvciBleHRlbmRzIEVycm9yIHt9XG4vKiogQW4gYWNjZXB0ZWQgZ2VuZXJhdGlvbiBkaWQgbm90IHByb2R1Y2UgdXNhYmxlIG91dHB1dDsgZG8gbm90IGF1dG9tYXRpY2FsbHkgcmVzdWJtaXQgaXQuICovXG5leHBvcnQgY2xhc3MgQ29udGVudEdlbmVyYXRpb25SZXNwb25zZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cblxuaW50ZXJmYWNlIEdlbWluaVBhcnQge2lubGluZURhdGE/OiB7ZGF0YTogc3RyaW5nOyBtaW1lVHlwZTogc3RyaW5nfTsgdGV4dD86IHN0cmluZzsgdGhvdWdodD86IGJvb2xlYW59XG5pbnRlcmZhY2UgR2VtaW5pUmVzcG9uc2Uge1xuICBjYW5kaWRhdGVzPzoge1xuICAgIGNvbnRlbnQ/OiB7cGFydHM/OiBHZW1pbmlQYXJ0W119O1xuICAgIGZpbmlzaFJlYXNvbj86IHN0cmluZztcbiAgICBncm91bmRpbmdNZXRhZGF0YT86IHtcbiAgICAgIGdyb3VuZGluZ0NodW5rcz86IHt3ZWI/OiB7dGl0bGU/OiBzdHJpbmc7IHVyaT86IHN0cmluZ319W107XG4gICAgICBzZWFyY2hFbnRyeVBvaW50Pzoge3JlbmRlcmVkQ29udGVudD86IHN0cmluZ307XG4gICAgfTtcbiAgfVtdO1xuICBlcnJvcj86IHtjb2RlPzogbnVtYmVyfTtcbiAgcHJvbXB0RmVlZGJhY2s/OiB7YmxvY2tSZWFzb24/OiBzdHJpbmd9O1xufVxuXG5jb25zdCB2YWxpZE1lc3NhZ2VDb250ZW50ID0gKG1lc3NhZ2U6IENvbnRlbnRHZW5lcmF0aW9uTWVzc2FnZSk6IGJvb2xlYW4gPT4ge1xuICBpZih0eXBlb2YgbWVzc2FnZS5jb250ZW50ID09PSAnc3RyaW5nJykgcmV0dXJuICEhbWVzc2FnZS5jb250ZW50LnRyaW0oKTtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkobWVzc2FnZS5jb250ZW50KSAmJiBtZXNzYWdlLmNvbnRlbnQubGVuZ3RoID4gMCAmJiBtZXNzYWdlLmNvbnRlbnQuZXZlcnkoKHBhcnQpID0+IHtcbiAgICBpZighcGFydCkgcmV0dXJuIGZhbHNlO1xuICAgIGlmKHBhcnQudHlwZSA9PT0gJ3RleHQnKSByZXR1cm4gdHlwZW9mIHBhcnQudGV4dCA9PT0gJ3N0cmluZycgJiYgISFwYXJ0LnRleHQudHJpbSgpO1xuICAgIHJldHVybiBwYXJ0LnR5cGUgPT09ICdpbWFnZScgJiYgbWVzc2FnZS5yb2xlID09PSAndXNlcicgJiYgdHlwZW9mIHBhcnQudXJsID09PSAnc3RyaW5nJ1xuICAgICAgJiYgL14oaHR0cHM/OlxcL1xcL1teXFxzXSt8ZGF0YTppbWFnZVxcLyhwbmd8anBlZ3x3ZWJwfGdpZik7YmFzZTY0LFtBLVphLXowLTkrL10rPXswLDJ9KSQvLnRlc3QocGFydC51cmwpXG4gICAgICAmJiAocGFydC5kZXRhaWwgPT09IHVuZGVmaW5lZCB8fCBbJ2F1dG8nLCAnaGlnaCcsICdsb3cnXS5pbmNsdWRlcyhwYXJ0LmRldGFpbCkpO1xuICB9KTtcbn07XG5cbi8qKiBTaW5nbGUgc3VibWlzc2lvbiB0aHJvdWdoIFJpcC1IdW50ZXI7IGNhbGxlcnMgb3duIGR1cmFibGUgam9icyBhbmQgcmVjb25jaWxpYXRpb24uICovXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVDb250ZW50ID0gYXN5bmMgKFxuICBpbnB1dDogQ29udGVudEdlbmVyYXRpb25JbnB1dCxcbiAgY29uZmlnOiBDb250ZW50R2VuZXJhdGlvbkNvbmZpZyA9IENvbmZpZy5nZXQ8Q29udGVudEdlbmVyYXRpb25Db25maWc+KCdjb250ZW50R2VuZXJhdGlvbicpIHx8IHt9XG4pOiBQcm9taXNlPEdlbmVyYXRlZENvbnRlbnQ+ID0+IHtcbiAgaWYoIVsnY2xhdWRlJywgJ2dlbWluaScsICdvcGVuYWknXS5pbmNsdWRlcyhpbnB1dC5wcm92aWRlcikpIHtcbiAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdBIHN1cHBvcnRlZCBwcm92aWRlciBpcyByZXF1aXJlZC4nKTtcbiAgfVxuICBpZihpbnB1dC5tZXNzYWdlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYoaW5wdXQucHJvbXB0ICE9PSB1bmRlZmluZWQgfHwgIUFycmF5LmlzQXJyYXkoaW5wdXQubWVzc2FnZXMpIHx8ICFpbnB1dC5tZXNzYWdlcy5sZW5ndGggfHwgaW5wdXQubWVzc2FnZXMuc29tZSgobWVzc2FnZSkgPT5cbiAgICAgICFtZXNzYWdlIHx8ICFbJ2Fzc2lzdGFudCcsICdkZXZlbG9wZXInLCAnc3lzdGVtJywgJ3VzZXInXS5pbmNsdWRlcyhtZXNzYWdlLnJvbGUpIHx8ICF2YWxpZE1lc3NhZ2VDb250ZW50KG1lc3NhZ2UpKSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVqZWN0ZWRFcnJvcignU3VwcGx5IGVpdGhlciBhIG5vbi1lbXB0eSBwcm9tcHQgb3Igbm9uLWVtcHR5IHRleHQgbWVzc2FnZXMgd2l0aCBzdXBwb3J0ZWQgcm9sZXMuJyk7XG4gICAgfVxuICB9IGVsc2UgaWYodHlwZW9mIGlucHV0LnByb21wdCAhPT0gJ3N0cmluZycgfHwgIWlucHV0LnByb21wdC50cmltKCkpIHtcbiAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdBIG5vbi1lbXB0eSBwcm9tcHQgaXMgcmVxdWlyZWQuJyk7XG4gIH1cbiAgaWYoaW5wdXQucHJvdmlkZXIgIT09ICdvcGVuYWknICYmIChpbnB1dC5tZXNzYWdlcyAhPT0gdW5kZWZpbmVkIHx8IGlucHV0LnJlYXNvbmluZ0VmZm9ydCAhPT0gdW5kZWZpbmVkIHx8IChpbnB1dC5wcm92aWRlciA9PT0gJ2NsYXVkZScgJiYgaW5wdXQucmVzcG9uc2VGb3JtYXQgIT09IHVuZGVmaW5lZCkpKSB7XG4gICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVqZWN0ZWRFcnJvcignTWVzc2FnZXMgYW5kIHJlYXNvbmluZyBlZmZvcnQgcmVxdWlyZSBPcGVuQUk7IENsYXVkZSBkb2VzIG5vdCBzdXBwb3J0IHJlc3BvbnNlIGZvcm1hdCBvcHRpb25zLicpO1xuICB9XG4gIGlmKGlucHV0LnRpbWVvdXRNcyAhPT0gdW5kZWZpbmVkICYmICghTnVtYmVyLmlzSW50ZWdlcihpbnB1dC50aW1lb3V0TXMpIHx8IGlucHV0LnRpbWVvdXRNcyA8IDEgfHwgaW5wdXQudGltZW91dE1zID4gMl8xNDdfNDgzXzY0NykpIHtcbiAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCd0aW1lb3V0TXMgbXVzdCBiZSBhIHBvc2l0aXZlIDMyLWJpdCBpbnRlZ2VyLicpO1xuICB9XG4gIGlmKGlucHV0LnJlYXNvbmluZ0VmZm9ydCAhPT0gdW5kZWZpbmVkICYmICFbJ25vbmUnLCAnbWluaW1hbCcsICdsb3cnLCAnbWVkaXVtJywgJ2hpZ2gnLCAneGhpZ2gnLCAnbWF4J10uaW5jbHVkZXMoaW5wdXQucmVhc29uaW5nRWZmb3J0KSkge1xuICAgIHRocm93IG5ldyBDb250ZW50R2VuZXJhdGlvblJlamVjdGVkRXJyb3IoJ1Vuc3VwcG9ydGVkIHJlYXNvbmluZyBlZmZvcnQuJyk7XG4gIH1cbiAgY29uc3QgZm9ybWF0ID0gaW5wdXQucmVzcG9uc2VGb3JtYXQ7XG4gIGlmKGZvcm1hdCAhPT0gdW5kZWZpbmVkICYmICghZm9ybWF0IHx8ICFbJ3RleHQnLCAnanNvbl9vYmplY3QnLCAnanNvbl9zY2hlbWEnXS5pbmNsdWRlcyhmb3JtYXQudHlwZSkgfHwgKGZvcm1hdC50eXBlID09PSAnanNvbl9zY2hlbWEnICYmIChcbiAgICB0eXBlb2YgZm9ybWF0Lm5hbWUgIT09ICdzdHJpbmcnIHx8ICEvXlthLXpBLVowLTlfLV17MSw2NH0kLy50ZXN0KGZvcm1hdC5uYW1lKSB8fCAhZm9ybWF0LnNjaGVtYSB8fCB0eXBlb2YgZm9ybWF0LnNjaGVtYSAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShmb3JtYXQuc2NoZW1hKVxuICAgIHx8IChmb3JtYXQuc3RyaWN0ICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGZvcm1hdC5zdHJpY3QgIT09ICdib29sZWFuJylcbiAgKSkpKSB7XG4gICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVqZWN0ZWRFcnJvcignSW52YWxpZCByZXNwb25zZSBmb3JtYXQuIEpTT04gc2NoZW1hcyByZXF1aXJlIGEgbmFtZSBhbmQgc2NoZW1hIG9iamVjdC4nKTtcbiAgfVxuICBpZihpbnB1dC5wcm92aWRlciA9PT0gJ2dlbWluaScgJiYgZm9ybWF0ICE9PSB1bmRlZmluZWQgJiYgKGZvcm1hdC50eXBlID09PSAnanNvbl9zY2hlbWEnIHx8IGlucHV0Lm1vZGFsaXR5ID09PSAnaW1hZ2UnKSkge1xuICAgIHRocm93IG5ldyBDb250ZW50R2VuZXJhdGlvblJlamVjdGVkRXJyb3IoJ0dlbWluaSByZXNwb25zZSBmb3JtYXQgc3VwcG9ydHMgdGV4dCBvciBqc29uX29iamVjdCBmb3IgdGV4dCBnZW5lcmF0aW9uIG9ubHkuJyk7XG4gIH1cbiAgaWYoaW5wdXQudGVtcGVyYXR1cmUgIT09IHVuZGVmaW5lZCAmJiAoaW5wdXQucHJvdmlkZXIgIT09ICdnZW1pbmknIHx8IGlucHV0Lm1vZGFsaXR5ID09PSAnaW1hZ2UnIHx8ICFOdW1iZXIuaXNGaW5pdGUoaW5wdXQudGVtcGVyYXR1cmUpIHx8IGlucHV0LnRlbXBlcmF0dXJlIDwgMCB8fCBpbnB1dC50ZW1wZXJhdHVyZSA+IDIpKSB7XG4gICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVqZWN0ZWRFcnJvcigndGVtcGVyYXR1cmUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIgZm9yIEdlbWluaSB0ZXh0IGdlbmVyYXRpb24uJyk7XG4gIH1cbiAgaWYoaW5wdXQubWF4VG9rZW5zICE9PSB1bmRlZmluZWQgJiYgKCFOdW1iZXIuaXNJbnRlZ2VyKGlucHV0Lm1heFRva2VucykgfHwgaW5wdXQubWF4VG9rZW5zIDwgMSkpIHtcbiAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdtYXhUb2tlbnMgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuJyk7XG4gIH1cbiAgaWYoaW5wdXQucHJvdmlkZXIgIT09ICdnZW1pbmknICYmIChpbnB1dC5pbWFnZXM/Lmxlbmd0aCB8fCBpbnB1dC5tb2RhbGl0eSA9PT0gJ2ltYWdlJyB8fCBpbnB1dC5zZWFyY2gpKSB7XG4gICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVqZWN0ZWRFcnJvcignVGhpcyBwcm92aWRlciBvcGVyYXRpb24gc3VwcG9ydHMgdGV4dCBpbnB1dCBhbmQgb3V0cHV0IG9ubHkuJyk7XG4gIH1cbiAgY29uc3Qge3Byb21wdCwgaW1hZ2VzID0gW119ID0gaW5wdXQ7XG4gIGlmKGlucHV0LnByb3ZpZGVyID09PSAnY2xhdWRlJykge1xuICAgIGlmKCFjb25maWcuY2xhdWRlS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdDbGF1ZGUgaXMgbm90IGNvbmZpZ3VyZWQgb24gdGhpcyBzZXJ2ZXIuJyk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdCgnaHR0cHM6Ly9hcGkuYW50aHJvcGljLmNvbS92MS9tZXNzYWdlcycsIHtcbiAgICAgIG1heF90b2tlbnM6IGlucHV0Lm1heFRva2VucyA/PyA0MDk2LFxuICAgICAgbWVzc2FnZXM6IFt7Y29udGVudDogcHJvbXB0LCByb2xlOiAndXNlcid9XSxcbiAgICAgIG1vZGVsOiBpbnB1dC5tb2RlbCB8fCBjb25maWcuY2xhdWRlTW9kZWwgfHwgJ2NsYXVkZS1zb25uZXQtNScsXG4gICAgICBzeXN0ZW06IGlucHV0LnN5c3RlbVxuICAgIH0sIHtjYWNoZTogZmFsc2UsIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHsnYW50aHJvcGljLXZlcnNpb24nOiAnMjAyMy0wNi0wMScsICd4LWFwaS1rZXknOiBjb25maWcuY2xhdWRlS2V5fSksIHRpbWVvdXQ6IGlucHV0LnRpbWVvdXRNcyA/PyAxMjBfMDAwfSkgYXMge1xuICAgICAgY29udGVudD86IHt0ZXh0Pzogc3RyaW5nOyB0eXBlPzogc3RyaW5nfVtdO1xuICAgICAgZXJyb3I/OiB7dHlwZT86IHN0cmluZ307XG4gICAgICBzdG9wX3JlYXNvbj86IHN0cmluZztcbiAgICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBpZihyZXNwb25zZS5lcnJvciAmJiBbJ2F1dGhlbnRpY2F0aW9uX2Vycm9yJywgJ2ludmFsaWRfcmVxdWVzdF9lcnJvcicsICdub3RfZm91bmRfZXJyb3InLCAncGVybWlzc2lvbl9lcnJvciddLmluY2x1ZGVzKHJlc3BvbnNlLmVycm9yLnR5cGUgfHwgJycpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdDbGF1ZGUgcmVqZWN0ZWQgdGhlIHJlcXVlc3QuIENoZWNrIHRoZSBtb2RlbCBhbmQgYWNjb3VudCBhY2Nlc3MuJyk7XG4gICAgfVxuICAgIGNvbnN0IHRleHQgPSByZXNwb25zZS5jb250ZW50Py5maWx0ZXIoKHBhcnQpID0+IHBhcnQudHlwZSA9PT0gJ3RleHQnKS5tYXAoKHBhcnQpID0+IHBhcnQudGV4dCB8fCAnJykuam9pbignXFxuJykudHJpbSgpO1xuICAgIGlmKHJlc3BvbnNlLmVycm9yIHx8IHJlc3BvbnNlLnR5cGUgIT09ICdtZXNzYWdlJyB8fCByZXNwb25zZS5zdG9wX3JlYXNvbiAhPT0gJ2VuZF90dXJuJyB8fCAhdGV4dCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VFcnJvcignQ2xhdWRlIHJlc3BvbnNlIGNvdWxkIG5vdCBiZSBjb25maXJtZWQuJyk7XG4gICAgfVxuICAgIHJldHVybiB7c291cmNlczogW10sIHRleHR9O1xuICB9XG4gIGlmKGlucHV0LnByb3ZpZGVyID09PSAnb3BlbmFpJykge1xuICAgIGlmKCFjb25maWcub3BlbmFpS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdPcGVuQUkgaXMgbm90IGNvbmZpZ3VyZWQgb24gdGhpcyBzZXJ2ZXIuJyk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcG9zdCgnaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9yZXNwb25zZXMnLCB7XG4gICAgICBpbnB1dDogaW5wdXQubWVzc2FnZXM/Lm1hcCgobWVzc2FnZSkgPT4gKHtjb250ZW50OiB0eXBlb2YgbWVzc2FnZS5jb250ZW50ID09PSAnc3RyaW5nJyA/IG1lc3NhZ2UuY29udGVudCA6IG1lc3NhZ2UuY29udGVudC5tYXAoKHBhcnQpID0+IHBhcnQudHlwZSA9PT0gJ3RleHQnXG4gICAgICAgID8ge3RleHQ6IHBhcnQudGV4dCwgdHlwZTogJ2lucHV0X3RleHQnfSA6IHtkZXRhaWw6IHBhcnQuZGV0YWlsID8/ICdhdXRvJywgaW1hZ2VfdXJsOiBwYXJ0LnVybCwgdHlwZTogJ2lucHV0X2ltYWdlJ30pLCByb2xlOiBtZXNzYWdlLnJvbGUgPT09ICdzeXN0ZW0nID8gJ2RldmVsb3BlcicgOiBtZXNzYWdlLnJvbGV9KSkgPz8gcHJvbXB0LFxuICAgICAgaW5zdHJ1Y3Rpb25zOiBpbnB1dC5zeXN0ZW0sXG4gICAgICBtYXhfb3V0cHV0X3Rva2VuczogaW5wdXQubWF4VG9rZW5zID8/IDQwOTYsXG4gICAgICBtb2RlbDogaW5wdXQubW9kZWwgfHwgY29uZmlnLm9wZW5haU1vZGVsIHx8ICdncHQtNi1hc3RyYScsXG4gICAgICAuLi4oaW5wdXQucmVhc29uaW5nRWZmb3J0ID8ge3JlYXNvbmluZzoge2VmZm9ydDogaW5wdXQucmVhc29uaW5nRWZmb3J0fX0gOiB7fSksXG4gICAgICBzdG9yZTogZmFsc2UsXG4gICAgICAuLi4oZm9ybWF0ID8ge3RleHQ6IHtmb3JtYXR9fSA6IHt9KSxcbiAgICAgIHRydW5jYXRpb246ICdkaXNhYmxlZCdcbiAgICB9LCB7Y2FjaGU6IGZhbHNlLCBoZWFkZXJzOiBuZXcgSGVhZGVycyh7QXV0aG9yaXphdGlvbjogYEJlYXJlciAke2NvbmZpZy5vcGVuYWlLZXl9YH0pLCB0aW1lb3V0OiBpbnB1dC50aW1lb3V0TXMgPz8gMTIwXzAwMH0pIGFzIHtcbiAgICAgIGVycm9yPzoge2NvZGU/OiBzdHJpbmc7IHR5cGU/OiBzdHJpbmd9O1xuICAgICAgb3V0cHV0Pzoge2NvbnRlbnQ/OiB7dGV4dD86IHN0cmluZzsgdHlwZT86IHN0cmluZ31bXTsgc3RhdHVzPzogc3RyaW5nOyB0eXBlPzogc3RyaW5nfVtdO1xuICAgICAgc3RhdHVzPzogc3RyaW5nO1xuICAgIH07XG4gICAgaWYocmVzcG9uc2UuZXJyb3IgJiYgWydpbnZhbGlkX3JlcXVlc3RfZXJyb3InLCAnYXV0aGVudGljYXRpb25fZXJyb3InLCAncGVybWlzc2lvbl9lcnJvciddLmluY2x1ZGVzKHJlc3BvbnNlLmVycm9yLnR5cGUgfHwgJycpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZWplY3RlZEVycm9yKCdPcGVuQUkgcmVqZWN0ZWQgdGhlIHJlcXVlc3QuIENoZWNrIHRoZSBtb2RlbCBhbmQgYWNjb3VudCBhY2Nlc3MuJyk7XG4gICAgfVxuICAgIGlmKHJlc3BvbnNlLmVycm9yIHx8IHJlc3BvbnNlLnN0YXR1cyAhPT0gJ2NvbXBsZXRlZCcgfHwgcmVzcG9uc2Uub3V0cHV0Py5zb21lKChpdGVtKSA9PiBpdGVtLnN0YXR1cyA9PT0gJ2luY29tcGxldGUnKSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VFcnJvcignT3BlbkFJIHJlc3BvbnNlIGNvdWxkIG5vdCBiZSBjb25maXJtZWQ6IGdlbmVyYXRpb24gZGlkIG5vdCBjb21wbGV0ZS4nKTtcbiAgICB9XG4gICAgaWYocmVzcG9uc2Uub3V0cHV0Py5zb21lKChpdGVtKSA9PiBpdGVtLmNvbnRlbnQ/LnNvbWUoKHBhcnQpID0+IHBhcnQudHlwZSA9PT0gJ3JlZnVzYWwnKSkpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZW50R2VuZXJhdGlvblJlc3BvbnNlRXJyb3IoJ09wZW5BSSBkZWNsaW5lZCB0aGUgcmVxdWVzdC4nKTtcbiAgICB9XG4gICAgaWYocmVzcG9uc2Uub3V0cHV0Py5zb21lKChpdGVtKSA9PiBpdGVtLnR5cGUgJiYgIVsnbWVzc2FnZScsICdyZWFzb25pbmcnXS5pbmNsdWRlcyhpdGVtLnR5cGUpKSkge1xuICAgICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VFcnJvcignT3BlbkFJIHJldHVybmVkIGFuIHVuc3VwcG9ydGVkIG91dHB1dCBpdGVtLicpO1xuICAgIH1cbiAgICBjb25zdCB0ZXh0ID0gcmVzcG9uc2Uub3V0cHV0Py5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udHlwZSA9PT0gJ21lc3NhZ2UnKS5mbGF0TWFwKChpdGVtKSA9PiBpdGVtLmNvbnRlbnQgfHwgW10pXG4gICAgICAuZmlsdGVyKChwYXJ0KSA9PiBwYXJ0LnR5cGUgPT09ICdvdXRwdXRfdGV4dCcpLm1hcCgocGFydCkgPT4gcGFydC50ZXh0IHx8ICcnKS5qb2luKCcnKS50cmltKCk7XG4gICAgaWYoIXRleHQpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZW50R2VuZXJhdGlvblJlc3BvbnNlRXJyb3IoJ09wZW5BSSByZXR1cm5lZCBlbXB0eSBvdXRwdXQuJyk7XG4gICAgfVxuICAgIHJldHVybiB7c291cmNlczogW10sIHRleHR9O1xuICB9XG4gIGlmKCFjb25maWcuZ2VtaW5pS2V5KSB7XG4gICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVqZWN0ZWRFcnJvcignR2VtaW5pIGlzIG5vdCBjb25maWd1cmVkIG9uIHRoaXMgc2VydmVyLicpO1xuICB9XG4gIGNvbnN0IHBhcnRzOiB1bmtub3duW10gPSBbe3RleHQ6IHByb21wdH0sIC4uLmltYWdlcy5tYXAoKGltYWdlKSA9PiAoe2lubGluZURhdGE6IHtkYXRhOiBpbWFnZS5ieXRlcy50b1N0cmluZygnYmFzZTY0JyksIG1pbWVUeXBlOiBpbWFnZS5taW1lfX0pKV07XG4gIGNvbnN0IG1vZGVsID0gaW5wdXQubW9kZWwgfHwgKGlucHV0Lm1vZGFsaXR5ID09PSAnaW1hZ2UnID8gY29uZmlnLmdlbWluaUltYWdlTW9kZWwgfHwgJ2dlbWluaS0zLjEtZmxhc2gtaW1hZ2UnIDogY29uZmlnLmdlbWluaU1vZGVsIHx8ICdnZW1pbmktMy44LWZsYXNoJyk7XG4gIGlmKCEvXlthLXpBLVowLTkuXy1dKyQvLnRlc3QobW9kZWwpKSB7XG4gICAgdGhyb3cgbmV3IENvbnRlbnRHZW5lcmF0aW9uUmVqZWN0ZWRFcnJvcignSW52YWxpZCBHZW1pbmkgbW9kZWwgY29uZmlndXJhdGlvbi4nKTtcbiAgfVxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHBvc3QoYGh0dHBzOi8vZ2VuZXJhdGl2ZWxhbmd1YWdlLmdvb2dsZWFwaXMuY29tL3YxYmV0YS9tb2RlbHMvJHttb2RlbH06Z2VuZXJhdGVDb250ZW50YCwge1xuICAgIGNvbnRlbnRzOiBbe3BhcnRzLCByb2xlOiAndXNlcid9XSxcbiAgICAuLi4oaW5wdXQuc3lzdGVtID8ge3N5c3RlbUluc3RydWN0aW9uOiB7cGFydHM6IFt7dGV4dDogaW5wdXQuc3lzdGVtfV19fSA6IHt9KSxcbiAgICBnZW5lcmF0aW9uQ29uZmlnOiBpbnB1dC5tb2RhbGl0eSA9PT0gJ2ltYWdlJyA/IHsuLi4oaW5wdXQuYXNwZWN0UmF0aW8gPyB7aW1hZ2VDb25maWc6IHthc3BlY3RSYXRpbzogaW5wdXQuYXNwZWN0UmF0aW99fSA6IHt9KSwgcmVzcG9uc2VNb2RhbGl0aWVzOiBbJ1RFWFQnLCAnSU1BR0UnXX0gOiB7XG4gICAgICBtYXhPdXRwdXRUb2tlbnM6IGlucHV0Lm1heFRva2VucyA/PyA0MDk2LFxuICAgICAgLi4uKGZvcm1hdCA/IHtyZXNwb25zZU1pbWVUeXBlOiBmb3JtYXQudHlwZSA9PT0gJ2pzb25fb2JqZWN0JyA/ICdhcHBsaWNhdGlvbi9qc29uJyA6ICd0ZXh0L3BsYWluJ30gOiB7fSksXG4gICAgICAuLi4oaW5wdXQudGVtcGVyYXR1cmUgIT09IHVuZGVmaW5lZCA/IHt0ZW1wZXJhdHVyZTogaW5wdXQudGVtcGVyYXR1cmV9IDoge30pXG4gICAgfSxcbiAgICAuLi4oaW5wdXQuc2VhcmNoID8ge3Rvb2xzOiBbe2dvb2dsZVNlYXJjaDoge319XX0gOiB7fSlcbiAgfSwge2NhY2hlOiBmYWxzZSwgaGVhZGVyczogbmV3IEhlYWRlcnMoeyd4LWdvb2ctYXBpLWtleSc6IGNvbmZpZy5nZW1pbmlLZXl9KSwgdGltZW91dDogaW5wdXQudGltZW91dE1zID8/IDEyMF8wMDB9KSBhcyBHZW1pbmlSZXNwb25zZTtcbiAgaWYocmVzcG9uc2UuZXJyb3IgJiYgWzQwMCwgNDAxLCA0MDMsIDQwNF0uaW5jbHVkZXMocmVzcG9uc2UuZXJyb3IuY29kZSB8fCAwKSkge1xuICAgIHRocm93IG5ldyBDb250ZW50R2VuZXJhdGlvblJlamVjdGVkRXJyb3IoJ0dlbWluaSByZWplY3RlZCB0aGUgcmVxdWVzdC4gQ2hlY2sgdGhlIHJlZmVyZW5jZSBmb3JtYXQgYW5kIG1vZGVsIGFjY2Vzcy4nKTtcbiAgfVxuICBpZihyZXNwb25zZS5wcm9tcHRGZWVkYmFjaz8uYmxvY2tSZWFzb24gfHwgcmVzcG9uc2UuZXJyb3IgfHwgIXJlc3BvbnNlLmNhbmRpZGF0ZXM/Lmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBDb250ZW50R2VuZXJhdGlvblJlc3BvbnNlRXJyb3IoJ0dlbWluaSByZXNwb25zZSBjb3VsZCBub3QgYmUgY29uZmlybWVkLicpO1xuICB9XG4gIGNvbnN0IGNhbmRpZGF0ZSA9IHJlc3BvbnNlLmNhbmRpZGF0ZXNbMF0hO1xuICBpZihjYW5kaWRhdGUuZmluaXNoUmVhc29uICE9PSAnU1RPUCcpIHtcbiAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZXNwb25zZUVycm9yKCdHZW1pbmkgcmVzcG9uc2UgY291bGQgbm90IGJlIGNvbmZpcm1lZDogZ2VuZXJhdGlvbiBkaWQgbm90IGNvbXBsZXRlLicpO1xuICB9XG4gIGNvbnN0IG91dHB1dCA9IChjYW5kaWRhdGUuY29udGVudD8ucGFydHMgfHwgW10pLmZpbHRlcigocGFydCkgPT4gIXBhcnQudGhvdWdodCk7XG4gIGNvbnN0IGlubGluZSA9IG91dHB1dC5maW5kKChwYXJ0KSA9PiBwYXJ0LmlubGluZURhdGEpPy5pbmxpbmVEYXRhO1xuICBsZXQgaW1hZ2U6IEdlbmVyYXRlZENvbnRlbnRbJ2ltYWdlJ107XG4gIGlmKGlubGluZSAmJiBbJ2ltYWdlL3BuZycsICdpbWFnZS9qcGVnJ10uaW5jbHVkZXMoaW5saW5lLm1pbWVUeXBlKSkge1xuICAgIGNvbnN0IGJ5dGVzID0gQnVmZmVyLmZyb20oaW5saW5lLmRhdGEsICdiYXNlNjQnKTtcbiAgICBpZighYnl0ZXMubGVuZ3RoIHx8IGJ5dGVzLmxlbmd0aCA+IDIwICogMTAyNCAqIDEwMjQpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZW50R2VuZXJhdGlvblJlc3BvbnNlRXJyb3IoJ0ludmFsaWQgaW1hZ2Ugb3V0cHV0LicpO1xuICAgIH1cbiAgICBpbWFnZSA9IHtieXRlcywgbWltZTogaW5saW5lLm1pbWVUeXBlIGFzICdpbWFnZS9wbmcnIHwgJ2ltYWdlL2pwZWcnfTtcbiAgfVxuICBjb25zdCB0ZXh0ID0gb3V0cHV0Lm1hcCgocGFydCkgPT4gcGFydC50ZXh0IHx8ICcnKS5qb2luKCdcXG4nKS50cmltKCk7XG4gIGlmKGlucHV0Lm1vZGFsaXR5ID09PSAnaW1hZ2UnID8gIWltYWdlIDogIXRleHQpIHtcbiAgICB0aHJvdyBuZXcgQ29udGVudEdlbmVyYXRpb25SZXNwb25zZUVycm9yKCdUaGUgcmVxdWVzdGVkIG91dHB1dCB3YXMgbm90IHJldHVybmVkLicpO1xuICB9XG4gIGNvbnN0IHNvdXJjZXMgPSAoY2FuZGlkYXRlLmdyb3VuZGluZ01ldGFkYXRhPy5ncm91bmRpbmdDaHVua3MgfHwgW10pLmZsYXRNYXAoKHt3ZWJ9KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwod2ViPy51cmkgfHwgJycpO1xuICAgICAgcmV0dXJuIHVybC5wcm90b2NvbCA9PT0gJ2h0dHBzOicgPyBbe3RpdGxlOiB3ZWI/LnRpdGxlIHx8IHVybC5ob3N0bmFtZSwgdXJsOiB1cmwuaHJlZn1dIDogW107XG4gICAgfSBjYXRjaHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGltYWdlLCBzZWFyY2hTdWdnZXN0aW9uc0h0bWw6IGNhbmRpZGF0ZS5ncm91bmRpbmdNZXRhZGF0YT8uc2VhcmNoRW50cnlQb2ludD8ucmVuZGVyZWRDb250ZW50LCBzb3VyY2VzLCB0ZXh0XG4gIH07XG59O1xuIl0sIm5hbWVzIjpbInBvc3QiLCJDb25maWciLCJDb250ZW50R2VuZXJhdGlvblJlamVjdGVkRXJyb3IiLCJFcnJvciIsIkNvbnRlbnRHZW5lcmF0aW9uUmVzcG9uc2VFcnJvciIsInZhbGlkTWVzc2FnZUNvbnRlbnQiLCJtZXNzYWdlIiwiY29udGVudCIsInRyaW0iLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJldmVyeSIsInBhcnQiLCJ0eXBlIiwidGV4dCIsInJvbGUiLCJ1cmwiLCJ0ZXN0IiwiZGV0YWlsIiwidW5kZWZpbmVkIiwiaW5jbHVkZXMiLCJnZW5lcmF0ZUNvbnRlbnQiLCJpbnB1dCIsImNvbmZpZyIsImdldCIsInByb3ZpZGVyIiwibWVzc2FnZXMiLCJwcm9tcHQiLCJzb21lIiwicmVhc29uaW5nRWZmb3J0IiwicmVzcG9uc2VGb3JtYXQiLCJ0aW1lb3V0TXMiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJmb3JtYXQiLCJuYW1lIiwic2NoZW1hIiwic3RyaWN0IiwibW9kYWxpdHkiLCJ0ZW1wZXJhdHVyZSIsImlzRmluaXRlIiwibWF4VG9rZW5zIiwiaW1hZ2VzIiwic2VhcmNoIiwiY2xhdWRlS2V5IiwicmVzcG9uc2UiLCJtYXhfdG9rZW5zIiwibW9kZWwiLCJjbGF1ZGVNb2RlbCIsInN5c3RlbSIsImNhY2hlIiwiaGVhZGVycyIsIkhlYWRlcnMiLCJ0aW1lb3V0IiwiZXJyb3IiLCJmaWx0ZXIiLCJtYXAiLCJqb2luIiwic3RvcF9yZWFzb24iLCJzb3VyY2VzIiwib3BlbmFpS2V5IiwiaW1hZ2VfdXJsIiwiaW5zdHJ1Y3Rpb25zIiwibWF4X291dHB1dF90b2tlbnMiLCJvcGVuYWlNb2RlbCIsInJlYXNvbmluZyIsImVmZm9ydCIsInN0b3JlIiwidHJ1bmNhdGlvbiIsIkF1dGhvcml6YXRpb24iLCJzdGF0dXMiLCJvdXRwdXQiLCJpdGVtIiwiZmxhdE1hcCIsImdlbWluaUtleSIsInBhcnRzIiwiaW1hZ2UiLCJpbmxpbmVEYXRhIiwiZGF0YSIsImJ5dGVzIiwidG9TdHJpbmciLCJtaW1lVHlwZSIsIm1pbWUiLCJnZW1pbmlJbWFnZU1vZGVsIiwiZ2VtaW5pTW9kZWwiLCJjb250ZW50cyIsInN5c3RlbUluc3RydWN0aW9uIiwiZ2VuZXJhdGlvbkNvbmZpZyIsImFzcGVjdFJhdGlvIiwiaW1hZ2VDb25maWciLCJyZXNwb25zZU1vZGFsaXRpZXMiLCJtYXhPdXRwdXRUb2tlbnMiLCJyZXNwb25zZU1pbWVUeXBlIiwidG9vbHMiLCJnb29nbGVTZWFyY2giLCJjb2RlIiwicHJvbXB0RmVlZGJhY2siLCJibG9ja1JlYXNvbiIsImNhbmRpZGF0ZXMiLCJjYW5kaWRhdGUiLCJmaW5pc2hSZWFzb24iLCJ0aG91Z2h0IiwiaW5saW5lIiwiZmluZCIsIkJ1ZmZlciIsImZyb20iLCJncm91bmRpbmdNZXRhZGF0YSIsImdyb3VuZGluZ0NodW5rcyIsIndlYiIsIlVSTCIsInVyaSIsInByb3RvY29sIiwidGl0bGUiLCJob3N0bmFtZSIsImhyZWYiLCJzZWFyY2hTdWdnZXN0aW9uc0h0bWwiLCJzZWFyY2hFbnRyeVBvaW50IiwicmVuZGVyZWRDb250ZW50Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxJQUFJLFFBQU8sb0JBQW9CO0FBRXZDLFNBQVFDLE1BQU0sUUFBTyxlQUFlO0FBbURwQywrRUFBK0UsR0FDL0UsT0FBTyxNQUFNQyx1Q0FBdUNDO0FBQU87QUFDM0QsNEZBQTRGLEdBQzVGLE9BQU8s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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nlabs/reaktor",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.13.0",
|
|
4
4
|
"description": "GraphQL and ArangoDB application platform for typed actions, authentication, billing, media, messaging, and realtime services.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"type": "module",
|