agent-media-cli 1.15.0 → 1.15.1
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/dist/index.js +0 -0
- package/dist/lib/skill-update.d.ts.map +1 -1
- package/dist/lib/skill-update.js +0 -2
- package/dist/lib/skill-update.js.map +1 -1
- package/dist/v2/commands/selfie.d.ts.map +1 -1
- package/dist/v2/commands/selfie.js +1 -7
- package/dist/v2/commands/selfie.js.map +1 -1
- package/package.json +11 -10
- package/dist/tests/commands.test.js +0 -245
package/dist/index.js
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-update.d.ts","sourceRoot":"","sources":["../../src/lib/skill-update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill-update.d.ts","sourceRoot":"","sources":["../../src/lib/skill-update.ts"],"names":[],"mappings":"AAoLA;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsC3D;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBpD;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAyBpD"}
|
package/dist/lib/skill-update.js
CHANGED
|
@@ -40,8 +40,6 @@ const REMOTE_URL = `${REMOTE_BASE}/SKILL.md`;
|
|
|
40
40
|
const SKILL_TREE = [
|
|
41
41
|
'SKILL.md',
|
|
42
42
|
'reference/conversation-flow.md',
|
|
43
|
-
'reference/presets.md',
|
|
44
|
-
'reference/vibes.md',
|
|
45
43
|
'reference/subtitle-styles.md',
|
|
46
44
|
'reference/realism-rubric.md',
|
|
47
45
|
'reference/errors.md',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-update.js","sourceRoot":"","sources":["../../src/lib/skill-update.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,GAAG,gBAAgB,CAAC;AACpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACnE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAC;AAE3E,MAAM,WAAW,GACf,8DAA8D,CAAC;AACjE,MAAM,UAAU,GAAG,GAAG,WAAW,WAAW,CAAC;AAE7C,oEAAoE;AACpE,kEAAkE;AAClE,kEAAkE;AAClE,qEAAqE;AACrE,mEAAmE;AACnE,MAAM,UAAU,GAAG;IACjB,UAAU;IACV,gCAAgC;IAChC,
|
|
1
|
+
{"version":3,"file":"skill-update.js","sourceRoot":"","sources":["../../src/lib/skill-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selfie.d.ts","sourceRoot":"","sources":["../../../src/v2/commands/selfie.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"selfie.d.ts","sourceRoot":"","sources":["../../../src/v2/commands/selfie.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8J5D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright 2026 agent-media contributors. Apache-2.0 license.
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { readFileSync } from 'node:fs';
|
|
4
|
-
import { V2_GENERATORS
|
|
4
|
+
import { V2_GENERATORS } from '@agentmedia/schema/v2';
|
|
5
5
|
import { AgentMediaAPI } from '../../lib/api.js';
|
|
6
6
|
import { getApiKey, resolveProfileName } from '../../lib/credentials.js';
|
|
7
7
|
import { CLIError, handleError } from '../../lib/errors.js';
|
|
@@ -19,8 +19,6 @@ export function registerSelfieCommand(program) {
|
|
|
19
19
|
.option('--script <text|@file>', 'What the character says. Prefix with @ to read from a file. Optional — pair with --scene-action for non-speech clips.')
|
|
20
20
|
.option('--scene-action <text>', 'What the character is DOING (overrides the default "talking to camera" template). e.g. "dancing freestyle to upbeat music".')
|
|
21
21
|
.option('--background-music [text]', 'Add background music. Pass a string for direction ("lo-fi jazz") or use the flag alone for the default ("soft upbeat music, no dialogue").')
|
|
22
|
-
.option('--preset <name>', `Shot preset (one of: ${V2_SHOT_PRESETS.join(', ')})`, 'bedroom-morning-ritual')
|
|
23
|
-
.option('--vibe <name>', `Vibe (${V2_VIBES.join(' | ')})`, 'excited')
|
|
24
22
|
.option('--duration <seconds>', 'Clip duration: 5 | 10 | 15', (v) => {
|
|
25
23
|
const n = Number(v);
|
|
26
24
|
if (![5, 10, 15].includes(n)) {
|
|
@@ -28,7 +26,6 @@ export function registerSelfieCommand(program) {
|
|
|
28
26
|
}
|
|
29
27
|
return n;
|
|
30
28
|
}, 10)
|
|
31
|
-
.option('--voice-brief <text>', 'One-line voice direction (auto-inferred when omitted).')
|
|
32
29
|
.option('--subtitles <bool>', 'Burn Hormozi-style subs', (v) => v !== 'false', true)
|
|
33
30
|
.option('--profile <name>', 'Credentials profile.')
|
|
34
31
|
.action(async (opts, cmd) => {
|
|
@@ -99,10 +96,7 @@ export function registerSelfieCommand(program) {
|
|
|
99
96
|
...(script ? { script } : {}),
|
|
100
97
|
...(sceneAction ? { scene_action: sceneAction } : {}),
|
|
101
98
|
...(backgroundMusic !== undefined ? { background_music: backgroundMusic } : {}),
|
|
102
|
-
preset: opts.preset,
|
|
103
|
-
vibe: opts.vibe,
|
|
104
99
|
duration,
|
|
105
|
-
...(opts.voiceBrief ? { voice_brief: opts.voiceBrief } : {}),
|
|
106
100
|
subtitles: opts.subtitles,
|
|
107
101
|
};
|
|
108
102
|
const { status, data } = await postJSON(api, def.rest.path, body);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selfie.js","sourceRoot":"","sources":["../../../src/v2/commands/selfie.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAa/D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"selfie.js","sourceRoot":"","sources":["../../../src/v2/commands/selfie.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-media-cli",
|
|
3
|
-
"version": "1.15.
|
|
3
|
+
"version": "1.15.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -39,8 +39,16 @@
|
|
|
39
39
|
"README.md",
|
|
40
40
|
"LICENSE"
|
|
41
41
|
],
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "tsc",
|
|
44
|
+
"typecheck": "tsc --noEmit",
|
|
45
|
+
"lint": "eslint src/",
|
|
46
|
+
"pretest": "tsc -p tsconfig.test.json",
|
|
47
|
+
"test": "node --test test-out/commands.test.js",
|
|
48
|
+
"prepublishOnly": "npm run build"
|
|
49
|
+
},
|
|
42
50
|
"dependencies": {
|
|
43
|
-
"@agentmedia/schema": "^0.5.
|
|
51
|
+
"@agentmedia/schema": "^0.5.1",
|
|
44
52
|
"chalk": "^5.4.1",
|
|
45
53
|
"commander": "^13.1.0",
|
|
46
54
|
"open": "^10.1.0",
|
|
@@ -49,12 +57,5 @@
|
|
|
49
57
|
"devDependencies": {
|
|
50
58
|
"@types/node": "^22.13.4",
|
|
51
59
|
"typescript": "^5.7.3"
|
|
52
|
-
},
|
|
53
|
-
"scripts": {
|
|
54
|
-
"build": "tsc",
|
|
55
|
-
"typecheck": "tsc --noEmit",
|
|
56
|
-
"lint": "eslint src/",
|
|
57
|
-
"pretest": "tsc -p tsconfig.test.json",
|
|
58
|
-
"test": "node --test test-out/commands.test.js"
|
|
59
60
|
}
|
|
60
|
-
}
|
|
61
|
+
}
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 agent-media contributors. Apache-2.0 license.
|
|
2
|
-
/**
|
|
3
|
-
* CLI integration tests using node:test.
|
|
4
|
-
*
|
|
5
|
-
* Tests cover command parsing, output formatting, and error handling
|
|
6
|
-
* for the agent-media CLI. Commands that require API calls are tested
|
|
7
|
-
* with mocked fetch responses.
|
|
8
|
-
*
|
|
9
|
-
* Run with: node --test --loader ts-node/esm apps/cli/tests/commands.test.ts
|
|
10
|
-
* Or after build: node --test apps/cli/tests/commands.test.js
|
|
11
|
-
*/
|
|
12
|
-
import { describe, it, afterEach } from 'node:test';
|
|
13
|
-
import assert from 'node:assert/strict';
|
|
14
|
-
import { execSync } from 'node:child_process';
|
|
15
|
-
import { resolve, dirname } from 'node:path';
|
|
16
|
-
import { fileURLToPath } from 'node:url';
|
|
17
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
18
|
-
const CLI_ENTRY = resolve(__dirname, '../dist/index.js');
|
|
19
|
-
/** Common exec options for running the CLI. */
|
|
20
|
-
const EXEC_OPTS = {
|
|
21
|
-
encoding: 'utf-8',
|
|
22
|
-
timeout: 10_000,
|
|
23
|
-
env: {
|
|
24
|
-
...process.env,
|
|
25
|
-
// Prevent credential lookups during testing
|
|
26
|
-
AGENT_MEDIA_CONFIG_DIR: '/tmp/agent-media-test-config',
|
|
27
|
-
// Suppress colors for predictable output matching
|
|
28
|
-
NO_COLOR: '1',
|
|
29
|
-
FORCE_COLOR: '0',
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Execute the CLI with arguments and return stdout.
|
|
34
|
-
* Throws on non-zero exit.
|
|
35
|
-
*/
|
|
36
|
-
function run(args) {
|
|
37
|
-
return execSync(`node ${CLI_ENTRY} ${args}`, EXEC_OPTS).trim();
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Execute the CLI expecting a failure. Returns { stdout, stderr, exitCode }.
|
|
41
|
-
*/
|
|
42
|
-
function runExpectFail(args) {
|
|
43
|
-
try {
|
|
44
|
-
const stdout = execSync(`node ${CLI_ENTRY} ${args}`, {
|
|
45
|
-
...EXEC_OPTS,
|
|
46
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
47
|
-
}).toString();
|
|
48
|
-
return { stdout, stderr: '' };
|
|
49
|
-
}
|
|
50
|
-
catch (error) {
|
|
51
|
-
const e = error;
|
|
52
|
-
return {
|
|
53
|
-
stdout: String(e.stdout ?? ''),
|
|
54
|
-
stderr: String(e.stderr ?? ''),
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
// =============================================================================
|
|
59
|
-
// version command
|
|
60
|
-
// =============================================================================
|
|
61
|
-
describe('agent-media version', () => {
|
|
62
|
-
it('prints version string in human mode', () => {
|
|
63
|
-
const output = run('version');
|
|
64
|
-
assert.match(output, /agent-media v\d+\.\d+\.\d+/);
|
|
65
|
-
});
|
|
66
|
-
it('prints version in JSON mode', () => {
|
|
67
|
-
const output = run('--json version');
|
|
68
|
-
const json = JSON.parse(output);
|
|
69
|
-
assert.ok(typeof json.version === 'string');
|
|
70
|
-
assert.match(json.version, /^\d+\.\d+\.\d+$/);
|
|
71
|
-
});
|
|
72
|
-
it('prints version in quiet mode', () => {
|
|
73
|
-
const output = run('--quiet version');
|
|
74
|
-
assert.match(output, /^\d+\.\d+\.\d+$/);
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
// =============================================================================
|
|
78
|
-
// help command
|
|
79
|
-
// =============================================================================
|
|
80
|
-
describe('agent-media --help', () => {
|
|
81
|
-
it('shows help with usage and commands', () => {
|
|
82
|
-
const output = run('--help');
|
|
83
|
-
assert.ok(output.includes('Usage:'));
|
|
84
|
-
assert.ok(output.includes('agent-media'));
|
|
85
|
-
assert.ok(output.includes('Commands:'));
|
|
86
|
-
});
|
|
87
|
-
it('lists registered commands in help', () => {
|
|
88
|
-
const output = run('--help');
|
|
89
|
-
// Check for several key commands
|
|
90
|
-
assert.ok(output.includes('generate'), 'help includes generate');
|
|
91
|
-
assert.ok(output.includes('models'), 'help includes models');
|
|
92
|
-
assert.ok(output.includes('credits'), 'help includes credits');
|
|
93
|
-
assert.ok(output.includes('login'), 'help includes login');
|
|
94
|
-
assert.ok(output.includes('update'), 'help includes update');
|
|
95
|
-
assert.ok(output.includes('completions'), 'help includes completions');
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
// =============================================================================
|
|
99
|
-
// models command (requires network - test error when offline)
|
|
100
|
-
// =============================================================================
|
|
101
|
-
describe('agent-media models', () => {
|
|
102
|
-
it('models command is registered and shows in help', () => {
|
|
103
|
-
const output = run('models --help');
|
|
104
|
-
assert.ok(output.includes('List all available models'));
|
|
105
|
-
assert.ok(output.includes('--type'));
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
// =============================================================================
|
|
109
|
-
// credits command (auth required)
|
|
110
|
-
// =============================================================================
|
|
111
|
-
describe('agent-media credits', () => {
|
|
112
|
-
it('credits command shows help with subcommands', () => {
|
|
113
|
-
const output = run('credits --help');
|
|
114
|
-
assert.ok(output.includes('Show credit balance'));
|
|
115
|
-
assert.ok(output.includes('estimate'));
|
|
116
|
-
assert.ok(output.includes('history'));
|
|
117
|
-
assert.ok(output.includes('topup'));
|
|
118
|
-
});
|
|
119
|
-
it('credits command fails without auth', () => {
|
|
120
|
-
const { stderr } = runExpectFail('credits');
|
|
121
|
-
assert.ok(stderr.includes('Not logged in') || stderr.includes('NOT_AUTHENTICATED'), 'should indicate authentication is required');
|
|
122
|
-
});
|
|
123
|
-
it('credits history accepts --limit and --type flags', () => {
|
|
124
|
-
const output = run('credits history --help');
|
|
125
|
-
assert.ok(output.includes('--limit'));
|
|
126
|
-
assert.ok(output.includes('--type'));
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
// =============================================================================
|
|
130
|
-
// config command
|
|
131
|
-
// =============================================================================
|
|
132
|
-
describe('agent-media config', () => {
|
|
133
|
-
const tmpDir = `/tmp/agent-media-test-config-${Date.now()}`;
|
|
134
|
-
const configExecOpts = {
|
|
135
|
-
...EXEC_OPTS,
|
|
136
|
-
env: {
|
|
137
|
-
...EXEC_OPTS.env,
|
|
138
|
-
AGENT_MEDIA_CONFIG_DIR: tmpDir,
|
|
139
|
-
},
|
|
140
|
-
};
|
|
141
|
-
function runConfig(args) {
|
|
142
|
-
return execSync(`node ${CLI_ENTRY} ${args}`, configExecOpts).toString().trim();
|
|
143
|
-
}
|
|
144
|
-
it('config list shows valid keys', () => {
|
|
145
|
-
const output = runConfig('config list');
|
|
146
|
-
assert.ok(output.includes('api_url') || output.includes('output_format'));
|
|
147
|
-
});
|
|
148
|
-
it('config set and get round-trips a value', () => {
|
|
149
|
-
runConfig('config set output_format json');
|
|
150
|
-
const output = runConfig('config get output_format');
|
|
151
|
-
assert.ok(output.includes('json'));
|
|
152
|
-
});
|
|
153
|
-
it('config set rejects unknown keys', () => {
|
|
154
|
-
const { stderr } = runExpectFail('config set unknown_key foo');
|
|
155
|
-
assert.ok(stderr.includes('Unknown config key') || stderr.includes('INVALID_CONFIG_KEY'), 'should reject unknown config keys');
|
|
156
|
-
});
|
|
157
|
-
afterEach(() => {
|
|
158
|
-
try {
|
|
159
|
-
execSync(`rm -rf ${tmpDir}`, { encoding: 'utf-8' });
|
|
160
|
-
}
|
|
161
|
-
catch {
|
|
162
|
-
// cleanup is best-effort
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
// =============================================================================
|
|
167
|
-
// completions command
|
|
168
|
-
// =============================================================================
|
|
169
|
-
describe('agent-media completions', () => {
|
|
170
|
-
it('generates bash completions', () => {
|
|
171
|
-
const output = run('completions bash');
|
|
172
|
-
assert.ok(output.includes('_agent_media_completions'));
|
|
173
|
-
assert.ok(output.includes('complete -F'));
|
|
174
|
-
});
|
|
175
|
-
it('generates zsh completions', () => {
|
|
176
|
-
const output = run('completions zsh');
|
|
177
|
-
assert.ok(output.includes('#compdef agent-media'));
|
|
178
|
-
assert.ok(output.includes('_agent-media'));
|
|
179
|
-
});
|
|
180
|
-
it('generates fish completions', () => {
|
|
181
|
-
const output = run('completions fish');
|
|
182
|
-
assert.ok(output.includes('complete -c agent-media'));
|
|
183
|
-
assert.ok(output.includes('__fish_use_subcommand'));
|
|
184
|
-
});
|
|
185
|
-
it('rejects unsupported shell', () => {
|
|
186
|
-
const { stderr } = runExpectFail('completions powershell');
|
|
187
|
-
assert.ok(stderr.includes('Unsupported shell') || stderr.includes('UNSUPPORTED_SHELL'), 'should reject unsupported shell');
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
// =============================================================================
|
|
191
|
-
// update command
|
|
192
|
-
// =============================================================================
|
|
193
|
-
describe('agent-media update', () => {
|
|
194
|
-
it('update command is registered and shows in help', () => {
|
|
195
|
-
const output = run('update --help');
|
|
196
|
-
assert.ok(output.includes('Check for and install CLI updates'));
|
|
197
|
-
assert.ok(output.includes('--check'));
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
// =============================================================================
|
|
201
|
-
// doctor command
|
|
202
|
-
// =============================================================================
|
|
203
|
-
describe('agent-media doctor', () => {
|
|
204
|
-
it('doctor command is registered and shows in help', () => {
|
|
205
|
-
const output = run('doctor --help');
|
|
206
|
-
assert.ok(output.includes('Run diagnostic checks'));
|
|
207
|
-
assert.ok(output.includes('--fix'));
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
// =============================================================================
|
|
211
|
-
// Output mode flags
|
|
212
|
-
// =============================================================================
|
|
213
|
-
describe('output mode flags', () => {
|
|
214
|
-
it('--version flag prints version', () => {
|
|
215
|
-
const output = run('--version');
|
|
216
|
-
assert.match(output, /\d+\.\d+\.\d+/);
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
// =============================================================================
|
|
220
|
-
// Error handling: unknown command
|
|
221
|
-
// =============================================================================
|
|
222
|
-
describe('unknown commands', () => {
|
|
223
|
-
it('shows error for unknown command', () => {
|
|
224
|
-
const { stderr } = runExpectFail('nonexistent-command-xyz');
|
|
225
|
-
assert.ok(stderr.includes('unknown command') || stderr.includes('error'), 'should report unknown command');
|
|
226
|
-
});
|
|
227
|
-
});
|
|
228
|
-
// =============================================================================
|
|
229
|
-
// Command registration integrity
|
|
230
|
-
// =============================================================================
|
|
231
|
-
describe('command registration', () => {
|
|
232
|
-
it('all expected commands are registered', () => {
|
|
233
|
-
const output = run('--help');
|
|
234
|
-
const expectedCommands = [
|
|
235
|
-
'version', 'models', 'login', 'logout', 'whoami', 'credits',
|
|
236
|
-
'plan', 'config', 'generate', 'pricing', 'status', 'download',
|
|
237
|
-
'list', 'profile', 'doctor', 'retry', 'inspect', 'text',
|
|
238
|
-
'delete', 'cancel', 'apikey', 'usage', 'subscribe', 'debug',
|
|
239
|
-
'alias', 'update', 'completions',
|
|
240
|
-
];
|
|
241
|
-
for (const cmd of expectedCommands) {
|
|
242
|
-
assert.ok(output.includes(cmd), `help output should include '${cmd}' command`);
|
|
243
|
-
}
|
|
244
|
-
});
|
|
245
|
-
});
|