@marcfargas/odoo-cli 0.1.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/dist/cli.d.ts +27 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +152 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/accounting.d.ts +16 -0
- package/dist/commands/accounting.d.ts.map +1 -0
- package/dist/commands/accounting.js +363 -0
- package/dist/commands/accounting.js.map +1 -0
- package/dist/commands/attendance.d.ts +14 -0
- package/dist/commands/attendance.d.ts.map +1 -0
- package/dist/commands/attendance.js +339 -0
- package/dist/commands/attendance.js.map +1 -0
- package/dist/commands/config.d.ts +12 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +159 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/mail.d.ts +12 -0
- package/dist/commands/mail.d.ts.map +1 -0
- package/dist/commands/mail.js +236 -0
- package/dist/commands/mail.js.map +1 -0
- package/dist/commands/modules.d.ts +14 -0
- package/dist/commands/modules.d.ts.map +1 -0
- package/dist/commands/modules.js +351 -0
- package/dist/commands/modules.js.map +1 -0
- package/dist/commands/records.d.ts +15 -0
- package/dist/commands/records.d.ts.map +1 -0
- package/dist/commands/records.js +591 -0
- package/dist/commands/records.js.map +1 -0
- package/dist/commands/schema.d.ts +16 -0
- package/dist/commands/schema.d.ts.map +1 -0
- package/dist/commands/schema.js +381 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/state.d.ts +14 -0
- package/dist/commands/state.d.ts.map +1 -0
- package/dist/commands/state.js +373 -0
- package/dist/commands/state.js.map +1 -0
- package/dist/commands/timesheets.d.ts +15 -0
- package/dist/commands/timesheets.d.ts.map +1 -0
- package/dist/commands/timesheets.js +453 -0
- package/dist/commands/timesheets.js.map +1 -0
- package/dist/commands/url.d.ts +12 -0
- package/dist/commands/url.d.ts.map +1 -0
- package/dist/commands/url.js +149 -0
- package/dist/commands/url.js.map +1 -0
- package/dist/help/extra-help.d.ts +18 -0
- package/dist/help/extra-help.d.ts.map +1 -0
- package/dist/help/extra-help.js +207 -0
- package/dist/help/extra-help.js.map +1 -0
- package/dist/middleware/auth.d.ts +29 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +68 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/common-params.d.ts +90 -0
- package/dist/middleware/common-params.d.ts.map +1 -0
- package/dist/middleware/common-params.js +169 -0
- package/dist/middleware/common-params.js.map +1 -0
- package/dist/middleware/safety.d.ts +30 -0
- package/dist/middleware/safety.d.ts.map +1 -0
- package/dist/middleware/safety.js +64 -0
- package/dist/middleware/safety.js.map +1 -0
- package/dist/output/errors.d.ts +69 -0
- package/dist/output/errors.d.ts.map +1 -0
- package/dist/output/errors.js +193 -0
- package/dist/output/errors.js.map +1 -0
- package/dist/output/formatter.d.ts +80 -0
- package/dist/output/formatter.d.ts.map +1 -0
- package/dist/output/formatter.js +285 -0
- package/dist/output/formatter.js.map +1 -0
- package/dist/output/stream-writer.d.ts +33 -0
- package/dist/output/stream-writer.d.ts.map +1 -0
- package/dist/output/stream-writer.js +74 -0
- package/dist/output/stream-writer.js.map +1 -0
- package/dist/parsing/domain-parser.d.ts +61 -0
- package/dist/parsing/domain-parser.d.ts.map +1 -0
- package/dist/parsing/domain-parser.js +427 -0
- package/dist/parsing/domain-parser.js.map +1 -0
- package/dist/parsing/json-arg.d.ts +48 -0
- package/dist/parsing/json-arg.d.ts.map +1 -0
- package/dist/parsing/json-arg.js +165 -0
- package/dist/parsing/json-arg.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `odoo state` command group — experimental state management.
|
|
4
|
+
*
|
|
5
|
+
* ALL state commands require --experimental flag (like `kubectl alpha`).
|
|
6
|
+
* This prevents accidental use in production scripts.
|
|
7
|
+
*
|
|
8
|
+
* Commands:
|
|
9
|
+
* state plan <file> Show drift between desired and current [READ]
|
|
10
|
+
* state apply <file> Apply desired state to Odoo [WRITE]
|
|
11
|
+
* state diff <model> Show current state of a model's records [READ]
|
|
12
|
+
*/
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.buildStateCommand = buildStateCommand;
|
|
18
|
+
const commander_1 = require("commander");
|
|
19
|
+
const debug_1 = __importDefault(require("debug"));
|
|
20
|
+
const auth_1 = require("../middleware/auth");
|
|
21
|
+
const safety_1 = require("../middleware/safety");
|
|
22
|
+
const common_params_1 = require("../middleware/common-params");
|
|
23
|
+
const formatter_1 = require("../output/formatter");
|
|
24
|
+
const errors_1 = require("../output/errors");
|
|
25
|
+
const stream_writer_1 = require("../output/stream-writer");
|
|
26
|
+
const fs_1 = require("fs");
|
|
27
|
+
const log = (0, debug_1.default)('odoo-cli:state');
|
|
28
|
+
/**
|
|
29
|
+
* Enforce that --experimental is present.
|
|
30
|
+
* All state commands are gated behind this flag.
|
|
31
|
+
*/
|
|
32
|
+
function requireExperimental(opts) {
|
|
33
|
+
if (!opts.experimental) {
|
|
34
|
+
throw new errors_1.CliUsageError('state commands are experimental and require --experimental', [
|
|
35
|
+
'Add --experimental to proceed',
|
|
36
|
+
'Example: odoo state plan ./config.json --experimental',
|
|
37
|
+
'⚠ Experimental commands may change behavior in future releases',
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function buildStateCommand() {
|
|
42
|
+
const state = new commander_1.Command('state')
|
|
43
|
+
.description('⚠ EXPERIMENTAL — State management for Odoo configuration (requires --experimental)')
|
|
44
|
+
.addHelpText('after', `
|
|
45
|
+
⚠ EXPERIMENTAL: All state commands require --experimental flag.
|
|
46
|
+
|
|
47
|
+
Similar to Terraform: declare desired state, plan changes, apply.
|
|
48
|
+
|
|
49
|
+
Safety:
|
|
50
|
+
READ plan, diff — no mutations (but requires --experimental)
|
|
51
|
+
WRITE apply — requires --confirm AND --experimental
|
|
52
|
+
|
|
53
|
+
Examples:
|
|
54
|
+
odoo state plan ./crm-stages.json --experimental
|
|
55
|
+
odoo state apply ./crm-stages.json --experimental --confirm
|
|
56
|
+
odoo state diff crm.stage --experimental
|
|
57
|
+
`);
|
|
58
|
+
// --experimental required on all state commands
|
|
59
|
+
state.addOption((0, common_params_1.experimentalOption)());
|
|
60
|
+
state.hook('preAction', async (thisCommand) => {
|
|
61
|
+
const opts = thisCommand.opts();
|
|
62
|
+
if (opts.experimental === false || opts.experimental === undefined) {
|
|
63
|
+
// Allow --help without --experimental
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
state.addCommand(buildPlanCommand());
|
|
67
|
+
state.addCommand(buildApplyCommand());
|
|
68
|
+
state.addCommand(buildDiffCommand());
|
|
69
|
+
return state;
|
|
70
|
+
}
|
|
71
|
+
function buildPlanCommand() {
|
|
72
|
+
const cmd = new commander_1.Command('plan')
|
|
73
|
+
.description('Show drift between desired state (file) and current Odoo state [READ + --experimental]')
|
|
74
|
+
.argument('<file>', 'State file (JSON)')
|
|
75
|
+
.addHelpText('after', `
|
|
76
|
+
Example state file (crm-stages.json):
|
|
77
|
+
{
|
|
78
|
+
"model": "crm.stage",
|
|
79
|
+
"match_field": "name",
|
|
80
|
+
"records": [
|
|
81
|
+
{ "name": "New", "sequence": 1 },
|
|
82
|
+
{ "name": "Qualified", "sequence": 20 }
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
Examples:
|
|
87
|
+
odoo state plan ./crm-stages.json --experimental
|
|
88
|
+
`);
|
|
89
|
+
(0, common_params_1.addAuthOptions)(cmd);
|
|
90
|
+
(0, common_params_1.addOutputOptions)(cmd);
|
|
91
|
+
cmd.addOption((0, common_params_1.experimentalOption)());
|
|
92
|
+
cmd.action(async (file) => {
|
|
93
|
+
const opts = cmd.optsWithGlobals();
|
|
94
|
+
try {
|
|
95
|
+
requireExperimental(opts);
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
process.exit((0, errors_1.handleError)(err));
|
|
99
|
+
}
|
|
100
|
+
log('state plan %s', file);
|
|
101
|
+
let stateSpec;
|
|
102
|
+
try {
|
|
103
|
+
const content = (0, fs_1.readFileSync)(file, 'utf8');
|
|
104
|
+
stateSpec = JSON.parse(content);
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
process.stderr.write(`✗ Error: Cannot read state file '${file}': ${err instanceof Error ? err.message : String(err)}\n`);
|
|
108
|
+
process.exit(errors_1.EXIT_CODES.USAGE_ERROR);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (!stateSpec.model || !stateSpec.records) {
|
|
112
|
+
process.stderr.write('✗ Error: State file must have "model" and "records" fields\n');
|
|
113
|
+
process.exit(errors_1.EXIT_CODES.USAGE_ERROR);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
let client;
|
|
117
|
+
try {
|
|
118
|
+
client = await (0, auth_1.createAuthClient)(opts);
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
process.exit((0, errors_1.handleError)(err));
|
|
122
|
+
}
|
|
123
|
+
try {
|
|
124
|
+
const { model, match_field = 'name', records: desired } = stateSpec;
|
|
125
|
+
const format = (0, formatter_1.resolveFormat)(opts.format);
|
|
126
|
+
// Fetch current state
|
|
127
|
+
const fields = [...new Set(['id', match_field, ...Object.keys(desired[0] ?? {})])];
|
|
128
|
+
const current = await client.searchRead(model, [], { fields });
|
|
129
|
+
const currentByKey = new Map();
|
|
130
|
+
for (const rec of current) {
|
|
131
|
+
currentByKey.set(String(rec[match_field]), rec);
|
|
132
|
+
}
|
|
133
|
+
const desiredKeys = new Set();
|
|
134
|
+
const plan = [];
|
|
135
|
+
for (const desiredRec of desired) {
|
|
136
|
+
const key = String(desiredRec[match_field]);
|
|
137
|
+
desiredKeys.add(key);
|
|
138
|
+
const existing = currentByKey.get(key);
|
|
139
|
+
if (!existing) {
|
|
140
|
+
plan.push({ action: 'create', key, changes: desiredRec });
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
const diff = {};
|
|
144
|
+
for (const [k, v] of Object.entries(desiredRec)) {
|
|
145
|
+
if (k === match_field)
|
|
146
|
+
continue;
|
|
147
|
+
if (JSON.stringify(existing[k]) !== JSON.stringify(v)) {
|
|
148
|
+
diff[k] = { from: existing[k], to: v };
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (Object.keys(diff).length > 0) {
|
|
152
|
+
plan.push({ action: 'change', key, changes: diff });
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Deletions (present in Odoo but not in desired state)
|
|
157
|
+
// Only if stateSpec.prune = true
|
|
158
|
+
if (stateSpec.prune) {
|
|
159
|
+
for (const rec of current) {
|
|
160
|
+
const key = String(rec[match_field]);
|
|
161
|
+
if (!desiredKeys.has(key)) {
|
|
162
|
+
plan.push({ action: 'destroy', key, changes: { id: rec.id } });
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (format === 'json' || format === 'ndjson') {
|
|
167
|
+
await (0, stream_writer_1.writeStdout)(JSON.stringify(plan, null, format === 'json' ? 2 : 0) + '\n');
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
if (plan.length === 0) {
|
|
171
|
+
process.stdout.write('No changes. State is up-to-date.\n');
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
for (const entry of plan) {
|
|
175
|
+
const symbol = entry.action === 'create' ? '+' : entry.action === 'destroy' ? '-' : '~';
|
|
176
|
+
process.stdout.write(` ${symbol} ${model} "${entry.key}"\n`);
|
|
177
|
+
for (const [k, v] of Object.entries(entry.changes)) {
|
|
178
|
+
if (entry.action === 'change' && typeof v === 'object' && v !== null && 'from' in v) {
|
|
179
|
+
process.stdout.write(` ${k}: ${JSON.stringify(v.from)} → ${JSON.stringify(v.to)}\n`);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
process.stdout.write(` ${k}: ${JSON.stringify(v)}\n`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
const creates = plan.filter((p) => p.action === 'create').length;
|
|
187
|
+
const changes = plan.filter((p) => p.action === 'change').length;
|
|
188
|
+
const destroys = plan.filter((p) => p.action === 'destroy').length;
|
|
189
|
+
process.stdout.write(`\nPlan: ${creates} to add, ${changes} to change, ${destroys} to destroy.\n`);
|
|
190
|
+
process.stdout.write(`Run 'odoo state apply ${file} --experimental --confirm' to execute.\n`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
catch (err) {
|
|
195
|
+
process.exit((0, errors_1.handleError)(err));
|
|
196
|
+
}
|
|
197
|
+
finally {
|
|
198
|
+
client?.logout();
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
return cmd;
|
|
202
|
+
}
|
|
203
|
+
function buildApplyCommand() {
|
|
204
|
+
const cmd = new commander_1.Command('apply')
|
|
205
|
+
.description('Apply desired state to Odoo [WRITE + --experimental + --confirm]')
|
|
206
|
+
.argument('<file>', 'State file (JSON)')
|
|
207
|
+
.addHelpText('after', `
|
|
208
|
+
Applies changes shown by 'odoo state plan'. Use --dry-run to preview.
|
|
209
|
+
|
|
210
|
+
Examples:
|
|
211
|
+
odoo state apply ./crm-stages.json --experimental --confirm
|
|
212
|
+
odoo state apply ./crm-stages.json --experimental --confirm --auto-approve
|
|
213
|
+
`);
|
|
214
|
+
(0, common_params_1.addAuthOptions)(cmd);
|
|
215
|
+
cmd.addOption((0, common_params_1.confirmOption)());
|
|
216
|
+
cmd.addOption((0, common_params_1.dryRunOption)());
|
|
217
|
+
cmd.addOption((0, common_params_1.experimentalOption)());
|
|
218
|
+
cmd.option('--auto-approve', 'Skip confirmation prompt — treat as --confirm (CI-safe)');
|
|
219
|
+
cmd.action(async (file) => {
|
|
220
|
+
const opts = cmd.optsWithGlobals();
|
|
221
|
+
// --auto-approve is an alias for --confirm (for scripting/CI use)
|
|
222
|
+
if (opts.autoApprove) {
|
|
223
|
+
opts.confirm = true;
|
|
224
|
+
}
|
|
225
|
+
try {
|
|
226
|
+
requireExperimental(opts);
|
|
227
|
+
}
|
|
228
|
+
catch (err) {
|
|
229
|
+
process.exit((0, errors_1.handleError)(err));
|
|
230
|
+
}
|
|
231
|
+
try {
|
|
232
|
+
(0, safety_1.requireConfirm)('WRITE', opts, 'state apply');
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
process.exit((0, errors_1.handleError)(err));
|
|
236
|
+
}
|
|
237
|
+
log('state apply %s dryRun=%s', file, opts.dryRun);
|
|
238
|
+
let stateSpec;
|
|
239
|
+
try {
|
|
240
|
+
const content = (0, fs_1.readFileSync)(file, 'utf8');
|
|
241
|
+
stateSpec = JSON.parse(content);
|
|
242
|
+
}
|
|
243
|
+
catch (err) {
|
|
244
|
+
process.stderr.write(`✗ Error: Cannot read state file '${file}': ${err instanceof Error ? err.message : String(err)}\n`);
|
|
245
|
+
process.exit(errors_1.EXIT_CODES.USAGE_ERROR);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
let client;
|
|
249
|
+
try {
|
|
250
|
+
client = await (0, auth_1.createAuthClient)(opts);
|
|
251
|
+
}
|
|
252
|
+
catch (err) {
|
|
253
|
+
process.exit((0, errors_1.handleError)(err));
|
|
254
|
+
}
|
|
255
|
+
try {
|
|
256
|
+
const { model, match_field = 'name', records: desired, prune = false } = stateSpec;
|
|
257
|
+
const fields = [...new Set(['id', match_field, ...Object.keys(desired[0] ?? {})])];
|
|
258
|
+
const current = await client.searchRead(model, [], { fields });
|
|
259
|
+
const currentByKey = new Map();
|
|
260
|
+
for (const rec of current) {
|
|
261
|
+
currentByKey.set(String(rec[match_field]), rec);
|
|
262
|
+
}
|
|
263
|
+
const desiredKeys = new Set();
|
|
264
|
+
let created = 0;
|
|
265
|
+
let updated = 0;
|
|
266
|
+
for (const desiredRec of desired) {
|
|
267
|
+
const key = String(desiredRec[match_field]);
|
|
268
|
+
desiredKeys.add(key);
|
|
269
|
+
const existing = currentByKey.get(key);
|
|
270
|
+
if (!existing) {
|
|
271
|
+
if (opts.dryRun) {
|
|
272
|
+
process.stderr.write(` + [DRY RUN] Would create ${model} "${key}"\n`);
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
await client.create(model, desiredRec);
|
|
276
|
+
process.stderr.write(` + Created ${model} "${key}"\n`);
|
|
277
|
+
}
|
|
278
|
+
created++;
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
// Compute diff
|
|
282
|
+
const diff = {};
|
|
283
|
+
for (const [k, v] of Object.entries(desiredRec)) {
|
|
284
|
+
if (k === match_field)
|
|
285
|
+
continue;
|
|
286
|
+
if (JSON.stringify(existing[k]) !== JSON.stringify(v)) {
|
|
287
|
+
diff[k] = v;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
if (Object.keys(diff).length > 0) {
|
|
291
|
+
if (opts.dryRun) {
|
|
292
|
+
process.stderr.write(` ~ [DRY RUN] Would update ${model} "${key}"\n`);
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
await client.write(model, [existing.id], diff);
|
|
296
|
+
process.stderr.write(` ~ Updated ${model} "${key}"\n`);
|
|
297
|
+
}
|
|
298
|
+
updated++;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
// TODO: prune=true destroys records not in spec — requires --confirm
|
|
303
|
+
let destroyed = 0;
|
|
304
|
+
if (prune) {
|
|
305
|
+
for (const rec of current) {
|
|
306
|
+
const key = String(rec[match_field]);
|
|
307
|
+
if (!desiredKeys.has(key)) {
|
|
308
|
+
if (opts.dryRun) {
|
|
309
|
+
process.stderr.write(` - [DRY RUN] Would destroy ${model} "${key}" (id=${rec.id})\n`);
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
await client.unlink(model, [rec.id]);
|
|
313
|
+
process.stderr.write(` - Destroyed ${model} "${key}" (id=${rec.id})\n`);
|
|
314
|
+
}
|
|
315
|
+
destroyed++;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
const dryLabel = opts.dryRun ? ' (dry run)' : '';
|
|
320
|
+
(0, errors_1.printSuccess)(`Applied${dryLabel}: ${created} created, ${updated} updated, ${destroyed} destroyed`);
|
|
321
|
+
}
|
|
322
|
+
catch (err) {
|
|
323
|
+
process.exit((0, errors_1.handleError)(err));
|
|
324
|
+
}
|
|
325
|
+
finally {
|
|
326
|
+
client?.logout();
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
return cmd;
|
|
330
|
+
}
|
|
331
|
+
function buildDiffCommand() {
|
|
332
|
+
const cmd = new commander_1.Command('diff')
|
|
333
|
+
.description("Show current state of a model's records [READ + --experimental]")
|
|
334
|
+
.argument('<model>', 'Odoo model name')
|
|
335
|
+
.addHelpText('after', `
|
|
336
|
+
Examples:
|
|
337
|
+
odoo state diff crm.stage --experimental
|
|
338
|
+
odoo state diff crm.stage --experimental --format json > current-stages.json
|
|
339
|
+
`);
|
|
340
|
+
(0, common_params_1.addAuthOptions)(cmd);
|
|
341
|
+
(0, common_params_1.addOutputOptions)(cmd);
|
|
342
|
+
cmd.addOption((0, common_params_1.experimentalOption)());
|
|
343
|
+
cmd.action(async (model) => {
|
|
344
|
+
const opts = cmd.optsWithGlobals();
|
|
345
|
+
try {
|
|
346
|
+
requireExperimental(opts);
|
|
347
|
+
}
|
|
348
|
+
catch (err) {
|
|
349
|
+
process.exit((0, errors_1.handleError)(err));
|
|
350
|
+
}
|
|
351
|
+
log('state diff %s', model);
|
|
352
|
+
let client;
|
|
353
|
+
try {
|
|
354
|
+
client = await (0, auth_1.createAuthClient)(opts);
|
|
355
|
+
}
|
|
356
|
+
catch (err) {
|
|
357
|
+
process.exit((0, errors_1.handleError)(err));
|
|
358
|
+
}
|
|
359
|
+
try {
|
|
360
|
+
const records = await client.searchRead(model, []);
|
|
361
|
+
const format = (0, formatter_1.resolveFormat)(opts.format);
|
|
362
|
+
await (0, formatter_1.render)(records, format);
|
|
363
|
+
}
|
|
364
|
+
catch (err) {
|
|
365
|
+
process.exit((0, errors_1.handleError)(err));
|
|
366
|
+
}
|
|
367
|
+
finally {
|
|
368
|
+
client?.logout();
|
|
369
|
+
}
|
|
370
|
+
});
|
|
371
|
+
return cmd;
|
|
372
|
+
}
|
|
373
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/commands/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `odoo timesheets` command group.
|
|
3
|
+
*
|
|
4
|
+
* Commands:
|
|
5
|
+
* timesheets start Start a timer [WRITE]
|
|
6
|
+
* timesheets stop Stop running timer [WRITE]
|
|
7
|
+
* timesheets running Show running timer [READ]
|
|
8
|
+
* timesheets log Log time retroactively [WRITE]
|
|
9
|
+
* timesheets list List timesheets [READ]
|
|
10
|
+
*
|
|
11
|
+
* Requires hr_timesheet module to be installed.
|
|
12
|
+
*/
|
|
13
|
+
import { Command } from 'commander';
|
|
14
|
+
export declare function buildTimesheetsCommand(): Command;
|
|
15
|
+
//# sourceMappingURL=timesheets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timesheets.d.ts","sourceRoot":"","sources":["../../src/commands/timesheets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,sBAAsB,IAAI,OAAO,CAsChD"}
|