@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,381 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `odoo schema` command group — model and field introspection.
|
|
4
|
+
*
|
|
5
|
+
* Wraps @marcfargas/odoo-introspection.
|
|
6
|
+
*
|
|
7
|
+
* Commands:
|
|
8
|
+
* schema models List all models [READ]
|
|
9
|
+
* schema fields <model> List fields for a model [READ]
|
|
10
|
+
* schema describe <model> Human-readable model summary [READ]
|
|
11
|
+
* schema codegen <model> Generate TypeScript interface [READ]
|
|
12
|
+
*
|
|
13
|
+
* All commands are READ — no mutations.
|
|
14
|
+
*/
|
|
15
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
18
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
19
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
20
|
+
}
|
|
21
|
+
Object.defineProperty(o, k2, desc);
|
|
22
|
+
}) : (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
o[k2] = m[k];
|
|
25
|
+
}));
|
|
26
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
27
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
28
|
+
}) : function(o, v) {
|
|
29
|
+
o["default"] = v;
|
|
30
|
+
});
|
|
31
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
32
|
+
var ownKeys = function(o) {
|
|
33
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
34
|
+
var ar = [];
|
|
35
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
36
|
+
return ar;
|
|
37
|
+
};
|
|
38
|
+
return ownKeys(o);
|
|
39
|
+
};
|
|
40
|
+
return function (mod) {
|
|
41
|
+
if (mod && mod.__esModule) return mod;
|
|
42
|
+
var result = {};
|
|
43
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
44
|
+
__setModuleDefault(result, mod);
|
|
45
|
+
return result;
|
|
46
|
+
};
|
|
47
|
+
})();
|
|
48
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
49
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
50
|
+
};
|
|
51
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
+
exports.buildSchemaCommand = buildSchemaCommand;
|
|
53
|
+
const commander_1 = require("commander");
|
|
54
|
+
const debug_1 = __importDefault(require("debug"));
|
|
55
|
+
const odoo_introspection_1 = require("@marcfargas/odoo-introspection");
|
|
56
|
+
const auth_1 = require("../middleware/auth");
|
|
57
|
+
const common_params_1 = require("../middleware/common-params");
|
|
58
|
+
const formatter_1 = require("../output/formatter");
|
|
59
|
+
const errors_1 = require("../output/errors");
|
|
60
|
+
const stream_writer_1 = require("../output/stream-writer");
|
|
61
|
+
const extra_help_1 = require("../help/extra-help");
|
|
62
|
+
const log = (0, debug_1.default)('odoo-cli:schema');
|
|
63
|
+
function buildSchemaCommand() {
|
|
64
|
+
const schema = new commander_1.Command('schema')
|
|
65
|
+
.description('Model and field introspection — discover Odoo schema at runtime')
|
|
66
|
+
.addHelpText('after', `
|
|
67
|
+
Safety: READ — no confirmation required.
|
|
68
|
+
Wraps @marcfargas/odoo-introspection.
|
|
69
|
+
|
|
70
|
+
Examples:
|
|
71
|
+
odoo schema models --search sale
|
|
72
|
+
odoo schema fields crm.lead --type many2one
|
|
73
|
+
odoo schema describe res.partner
|
|
74
|
+
odoo schema codegen sale.order --out ./types/sale-order.ts
|
|
75
|
+
`);
|
|
76
|
+
// --help-extra
|
|
77
|
+
schema.option('--help-extra', 'Show extended skill documentation for schema');
|
|
78
|
+
schema.hook('preAction', async (thisCommand) => {
|
|
79
|
+
const opts = thisCommand.opts();
|
|
80
|
+
if (opts.helpExtra) {
|
|
81
|
+
await (0, extra_help_1.showHelpExtra)('schema');
|
|
82
|
+
process.exit(0);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
schema.addCommand(buildModelsCommand());
|
|
86
|
+
schema.addCommand(buildFieldsCommand());
|
|
87
|
+
schema.addCommand(buildDescribeCommand());
|
|
88
|
+
schema.addCommand(buildCodegenCommand());
|
|
89
|
+
return schema;
|
|
90
|
+
}
|
|
91
|
+
function buildModelsCommand() {
|
|
92
|
+
const cmd = new commander_1.Command('models').description('List all Odoo models [READ]').addHelpText('after', `
|
|
93
|
+
Examples:
|
|
94
|
+
odoo schema models
|
|
95
|
+
odoo schema models --search sale
|
|
96
|
+
odoo schema models --format json | jq '.[].model'
|
|
97
|
+
`);
|
|
98
|
+
(0, common_params_1.addAuthOptions)(cmd);
|
|
99
|
+
(0, common_params_1.addOutputOptions)(cmd);
|
|
100
|
+
cmd.option('--search <text>', 'Substring filter on model name or description');
|
|
101
|
+
cmd.option('--installed', 'Only models from installed modules (default: all)');
|
|
102
|
+
cmd.action(async () => {
|
|
103
|
+
const opts = cmd.optsWithGlobals();
|
|
104
|
+
log('schema models search=%s', opts.search);
|
|
105
|
+
let client;
|
|
106
|
+
try {
|
|
107
|
+
client = await (0, auth_1.createAuthClient)(opts);
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
process.exit((0, errors_1.handleError)(err));
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
const introspector = new odoo_introspection_1.Introspector(client);
|
|
114
|
+
let models = await introspector.getModels();
|
|
115
|
+
if (opts.search) {
|
|
116
|
+
const q = opts.search.toLowerCase();
|
|
117
|
+
models = models.filter((m) => m.model.toLowerCase().includes(q) || (m.name ?? '').toLowerCase().includes(q));
|
|
118
|
+
}
|
|
119
|
+
const format = (0, formatter_1.resolveFormat)(opts.format);
|
|
120
|
+
const rows = models.map((m) => ({
|
|
121
|
+
model: m.model,
|
|
122
|
+
description: m.name ?? '',
|
|
123
|
+
modules: m.modules ?? '',
|
|
124
|
+
transient: m.transient ? 'yes' : 'no',
|
|
125
|
+
}));
|
|
126
|
+
await (0, formatter_1.render)(rows, format);
|
|
127
|
+
}
|
|
128
|
+
catch (err) {
|
|
129
|
+
process.exit((0, errors_1.handleError)(err));
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
client?.logout();
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
return cmd;
|
|
136
|
+
}
|
|
137
|
+
function buildFieldsCommand() {
|
|
138
|
+
const cmd = new commander_1.Command('fields')
|
|
139
|
+
.description('List fields for a model [READ]')
|
|
140
|
+
.argument('<model>', 'Odoo model name (e.g., crm.lead)')
|
|
141
|
+
.addHelpText('after', `
|
|
142
|
+
Examples:
|
|
143
|
+
odoo schema fields crm.lead
|
|
144
|
+
odoo schema fields crm.lead --type many2one
|
|
145
|
+
odoo schema fields res.partner --required --format csv
|
|
146
|
+
`);
|
|
147
|
+
(0, common_params_1.addAuthOptions)(cmd);
|
|
148
|
+
(0, common_params_1.addOutputOptions)(cmd);
|
|
149
|
+
cmd.option('--search <text>', 'Filter by field name substring');
|
|
150
|
+
cmd.option('--type <type>', 'Filter by field type (char, many2one, integer, etc.)');
|
|
151
|
+
cmd.option('--required', 'Show only required fields');
|
|
152
|
+
cmd.action(async (model) => {
|
|
153
|
+
const opts = cmd.optsWithGlobals();
|
|
154
|
+
log('schema fields %s type=%s required=%s', model, opts.type, opts.required);
|
|
155
|
+
let client;
|
|
156
|
+
try {
|
|
157
|
+
client = await (0, auth_1.createAuthClient)(opts);
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
process.exit((0, errors_1.handleError)(err));
|
|
161
|
+
}
|
|
162
|
+
try {
|
|
163
|
+
const introspector = new odoo_introspection_1.Introspector(client);
|
|
164
|
+
let fields = await introspector.getFields(model);
|
|
165
|
+
if (opts.search) {
|
|
166
|
+
const q = opts.search.toLowerCase();
|
|
167
|
+
fields = fields.filter((f) => f.name.toLowerCase().includes(q));
|
|
168
|
+
}
|
|
169
|
+
if (opts.type) {
|
|
170
|
+
fields = fields.filter((f) => f.ttype === opts.type);
|
|
171
|
+
}
|
|
172
|
+
if (opts.required) {
|
|
173
|
+
fields = fields.filter((f) => f.required);
|
|
174
|
+
}
|
|
175
|
+
const format = (0, formatter_1.resolveFormat)(opts.format);
|
|
176
|
+
const rows = fields.map((f) => ({
|
|
177
|
+
field: f.name,
|
|
178
|
+
type: f.ttype,
|
|
179
|
+
string: f.field_description ?? '',
|
|
180
|
+
required: f.required ? 'yes' : 'no',
|
|
181
|
+
readonly: f.readonly ? 'yes' : 'no',
|
|
182
|
+
relation: f.relation ?? '',
|
|
183
|
+
}));
|
|
184
|
+
await (0, formatter_1.render)(rows, format);
|
|
185
|
+
}
|
|
186
|
+
catch (err) {
|
|
187
|
+
if (err instanceof Error && err.message.includes('not found')) {
|
|
188
|
+
process.stderr.write(`✗ Error: Model '${model}' not found\n → Run: odoo schema models --search ${model.split('.')[0]}\n`);
|
|
189
|
+
process.exit(errors_1.EXIT_CODES.NOT_FOUND);
|
|
190
|
+
}
|
|
191
|
+
process.exit((0, errors_1.handleError)(err));
|
|
192
|
+
}
|
|
193
|
+
finally {
|
|
194
|
+
client?.logout();
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
return cmd;
|
|
198
|
+
}
|
|
199
|
+
function buildDescribeCommand() {
|
|
200
|
+
const cmd = new commander_1.Command('describe')
|
|
201
|
+
.description('Human-readable model summary [READ]')
|
|
202
|
+
.argument('<model>', 'Odoo model name')
|
|
203
|
+
.addHelpText('after', `
|
|
204
|
+
Examples:
|
|
205
|
+
odoo schema describe res.partner
|
|
206
|
+
odoo schema describe crm.lead
|
|
207
|
+
`);
|
|
208
|
+
(0, common_params_1.addAuthOptions)(cmd);
|
|
209
|
+
cmd.addOption((0, common_params_1.formatOption)());
|
|
210
|
+
cmd.action(async (model) => {
|
|
211
|
+
const opts = cmd.optsWithGlobals();
|
|
212
|
+
log('schema describe %s', model);
|
|
213
|
+
let client;
|
|
214
|
+
try {
|
|
215
|
+
client = await (0, auth_1.createAuthClient)(opts);
|
|
216
|
+
}
|
|
217
|
+
catch (err) {
|
|
218
|
+
process.exit((0, errors_1.handleError)(err));
|
|
219
|
+
}
|
|
220
|
+
try {
|
|
221
|
+
const introspector = new odoo_introspection_1.Introspector(client);
|
|
222
|
+
const metadata = await introspector.getModelMetadata(model);
|
|
223
|
+
const format = (0, formatter_1.resolveFormat)(opts.format);
|
|
224
|
+
// Build field type summary
|
|
225
|
+
const typeCounts = {};
|
|
226
|
+
for (const f of metadata.fields) {
|
|
227
|
+
typeCounts[f.ttype] = (typeCounts[f.ttype] ?? 0) + 1;
|
|
228
|
+
}
|
|
229
|
+
const requiredCount = metadata.fields.filter((f) => f.required).length;
|
|
230
|
+
const readonlyCount = metadata.fields.filter((f) => f.readonly).length;
|
|
231
|
+
const relationalCount = metadata.fields.filter((f) => ['many2one', 'one2many', 'many2many'].includes(f.ttype)).length;
|
|
232
|
+
if (format === 'json' || format === 'ndjson') {
|
|
233
|
+
const out = {
|
|
234
|
+
model: metadata.model.model,
|
|
235
|
+
name: metadata.model.name,
|
|
236
|
+
modules: metadata.model.modules,
|
|
237
|
+
info: metadata.model.info,
|
|
238
|
+
field_count: metadata.fields.length,
|
|
239
|
+
required_count: requiredCount,
|
|
240
|
+
readonly_count: readonlyCount,
|
|
241
|
+
relational_count: relationalCount,
|
|
242
|
+
field_types: typeCounts,
|
|
243
|
+
};
|
|
244
|
+
await (0, stream_writer_1.writeStdout)(JSON.stringify(out, null, format === 'json' ? 2 : 0) + '\n');
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
process.stdout.write(`\n${metadata.model.name} (${model})\n`);
|
|
248
|
+
process.stdout.write(`${'─'.repeat(60)}\n`);
|
|
249
|
+
if (metadata.model.info) {
|
|
250
|
+
process.stdout.write(`${metadata.model.info}\n\n`);
|
|
251
|
+
}
|
|
252
|
+
process.stdout.write(`Total fields: ${metadata.fields.length}\n`);
|
|
253
|
+
process.stdout.write(`Required: ${requiredCount}\n`);
|
|
254
|
+
process.stdout.write(`Readonly/computed: ${readonlyCount}\n`);
|
|
255
|
+
process.stdout.write(`Relational: ${relationalCount}\n`);
|
|
256
|
+
process.stdout.write(`Modules: ${metadata.model.modules ?? ''}\n`);
|
|
257
|
+
process.stdout.write(`\nField types:\n`);
|
|
258
|
+
for (const [type, count] of Object.entries(typeCounts).sort(([, a], [, b]) => b - a)) {
|
|
259
|
+
process.stdout.write(` ${type.padEnd(12)} ${count}\n`);
|
|
260
|
+
}
|
|
261
|
+
process.stdout.write(`\nRun 'odoo schema fields ${model}' to see all fields.\n`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
catch (err) {
|
|
265
|
+
if (err instanceof Error && err.message.includes('not found')) {
|
|
266
|
+
process.stderr.write(`✗ Error: Model '${model}' not found\n`);
|
|
267
|
+
process.exit(errors_1.EXIT_CODES.NOT_FOUND);
|
|
268
|
+
}
|
|
269
|
+
process.exit((0, errors_1.handleError)(err));
|
|
270
|
+
}
|
|
271
|
+
finally {
|
|
272
|
+
client?.logout();
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
return cmd;
|
|
276
|
+
}
|
|
277
|
+
function buildCodegenCommand() {
|
|
278
|
+
const cmd = new commander_1.Command('codegen')
|
|
279
|
+
.description('Generate TypeScript interface from live schema [READ]')
|
|
280
|
+
.argument('<model>', 'Odoo model name')
|
|
281
|
+
.addHelpText('after', `
|
|
282
|
+
Generates a TypeScript interface from the live Odoo schema.
|
|
283
|
+
|
|
284
|
+
Examples:
|
|
285
|
+
odoo schema codegen sale.order
|
|
286
|
+
odoo schema codegen sale.order --out ./types/sale-order.ts
|
|
287
|
+
odoo schema codegen crm.lead --readonly
|
|
288
|
+
`);
|
|
289
|
+
(0, common_params_1.addAuthOptions)(cmd);
|
|
290
|
+
cmd.option('--out <file>', 'Write to file (default: stdout)');
|
|
291
|
+
cmd.option('--readonly', 'Mark computed/readonly fields as readonly in TypeScript');
|
|
292
|
+
cmd.action(async (model) => {
|
|
293
|
+
const opts = cmd.optsWithGlobals();
|
|
294
|
+
log('schema codegen %s', model);
|
|
295
|
+
let client;
|
|
296
|
+
try {
|
|
297
|
+
client = await (0, auth_1.createAuthClient)(opts);
|
|
298
|
+
}
|
|
299
|
+
catch (err) {
|
|
300
|
+
process.exit((0, errors_1.handleError)(err));
|
|
301
|
+
}
|
|
302
|
+
try {
|
|
303
|
+
const introspector = new odoo_introspection_1.Introspector(client);
|
|
304
|
+
const metadata = await introspector.getModelMetadata(model);
|
|
305
|
+
// Generate TypeScript interface
|
|
306
|
+
const lines = [];
|
|
307
|
+
const interfaceName = modelToInterfaceName(model);
|
|
308
|
+
lines.push(`/**`);
|
|
309
|
+
lines.push(` * TypeScript interface for Odoo model: ${model}`);
|
|
310
|
+
lines.push(` * Generated from live schema by odoo-cli schema codegen`);
|
|
311
|
+
lines.push(` * Name: ${metadata.model.name}`);
|
|
312
|
+
lines.push(` */`);
|
|
313
|
+
lines.push(`export interface ${interfaceName} {`);
|
|
314
|
+
for (const field of metadata.fields) {
|
|
315
|
+
const tsType = mapFieldType(field.ttype, field.relation);
|
|
316
|
+
const readonlyMod = opts.readonly && field.readonly ? 'readonly ' : '';
|
|
317
|
+
const optionalMod = field.required ? '' : '?';
|
|
318
|
+
const comment = field.field_description ?? field.name;
|
|
319
|
+
lines.push(` /** ${comment}${field.help ? ` — ${field.help}` : ''} */`);
|
|
320
|
+
lines.push(` ${readonlyMod}${field.name}${optionalMod}: ${tsType};`);
|
|
321
|
+
}
|
|
322
|
+
lines.push(`}`);
|
|
323
|
+
lines.push(``);
|
|
324
|
+
const output = lines.join('\n');
|
|
325
|
+
if (opts.out) {
|
|
326
|
+
const { writeFileSync } = await Promise.resolve().then(() => __importStar(require('fs')));
|
|
327
|
+
writeFileSync(opts.out, output, 'utf8');
|
|
328
|
+
process.stderr.write(`✓ Written to ${opts.out}\n`);
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
await (0, stream_writer_1.writeStdout)(output);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
catch (err) {
|
|
335
|
+
if (err instanceof Error && err.message.includes('not found')) {
|
|
336
|
+
process.stderr.write(`✗ Error: Model '${model}' not found\n`);
|
|
337
|
+
process.exit(errors_1.EXIT_CODES.NOT_FOUND);
|
|
338
|
+
}
|
|
339
|
+
process.exit((0, errors_1.handleError)(err));
|
|
340
|
+
}
|
|
341
|
+
finally {
|
|
342
|
+
client?.logout();
|
|
343
|
+
}
|
|
344
|
+
});
|
|
345
|
+
return cmd;
|
|
346
|
+
}
|
|
347
|
+
// ── Helpers ──────────────────────────────────────────────────────────
|
|
348
|
+
function modelToInterfaceName(model) {
|
|
349
|
+
return model
|
|
350
|
+
.split('.')
|
|
351
|
+
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
|
|
352
|
+
.join('');
|
|
353
|
+
}
|
|
354
|
+
function mapFieldType(ttype, _relation) {
|
|
355
|
+
switch (ttype) {
|
|
356
|
+
case 'char':
|
|
357
|
+
case 'text':
|
|
358
|
+
case 'html':
|
|
359
|
+
case 'date':
|
|
360
|
+
case 'datetime':
|
|
361
|
+
case 'selection':
|
|
362
|
+
case 'binary':
|
|
363
|
+
case 'reference':
|
|
364
|
+
return 'string';
|
|
365
|
+
case 'integer':
|
|
366
|
+
return 'number';
|
|
367
|
+
case 'float':
|
|
368
|
+
case 'monetary':
|
|
369
|
+
return 'number';
|
|
370
|
+
case 'boolean':
|
|
371
|
+
return 'boolean';
|
|
372
|
+
case 'many2one':
|
|
373
|
+
return '[number, string] | false';
|
|
374
|
+
case 'one2many':
|
|
375
|
+
case 'many2many':
|
|
376
|
+
return 'number[]';
|
|
377
|
+
default:
|
|
378
|
+
return 'unknown';
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `odoo state` command group — experimental state management.
|
|
3
|
+
*
|
|
4
|
+
* ALL state commands require --experimental flag (like `kubectl alpha`).
|
|
5
|
+
* This prevents accidental use in production scripts.
|
|
6
|
+
*
|
|
7
|
+
* Commands:
|
|
8
|
+
* state plan <file> Show drift between desired and current [READ]
|
|
9
|
+
* state apply <file> Apply desired state to Odoo [WRITE]
|
|
10
|
+
* state diff <model> Show current state of a model's records [READ]
|
|
11
|
+
*/
|
|
12
|
+
import { Command } from 'commander';
|
|
13
|
+
export declare function buildStateCommand(): Command;
|
|
14
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/commands/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC,wBAAgB,iBAAiB,IAAI,OAAO,CAsC3C"}
|