@x12i/memorix-descriptors 1.0.0 → 1.2.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.
Files changed (74) hide show
  1. package/README.md +19 -23
  2. package/dist/admin/create-admin.d.ts +5 -2
  3. package/dist/admin/create-admin.d.ts.map +1 -1
  4. package/dist/admin/create-admin.js +17 -3
  5. package/dist/admin/create-admin.js.map +1 -1
  6. package/dist/audit/log.d.ts +17 -0
  7. package/dist/audit/log.d.ts.map +1 -0
  8. package/dist/audit/log.js +12 -0
  9. package/dist/audit/log.js.map +1 -0
  10. package/dist/catalog/ensure-catalogs.d.ts +3 -0
  11. package/dist/catalog/ensure-catalogs.d.ts.map +1 -0
  12. package/dist/catalog/ensure-catalogs.js +32 -0
  13. package/dist/catalog/ensure-catalogs.js.map +1 -0
  14. package/dist/catalox/client.d.ts.map +1 -1
  15. package/dist/catalox/client.js +8 -0
  16. package/dist/catalox/client.js.map +1 -1
  17. package/dist/catalox/version.d.ts +8 -0
  18. package/dist/catalox/version.d.ts.map +1 -0
  19. package/dist/catalox/version.js +33 -0
  20. package/dist/catalox/version.js.map +1 -0
  21. package/dist/cli/index.js +319 -89
  22. package/dist/cli/index.js.map +1 -1
  23. package/dist/collections/mongo-create.d.ts +6 -0
  24. package/dist/collections/mongo-create.d.ts.map +1 -0
  25. package/dist/collections/mongo-create.js +20 -0
  26. package/dist/collections/mongo-create.js.map +1 -0
  27. package/dist/collections/resolve.d.ts +1 -2
  28. package/dist/collections/resolve.d.ts.map +1 -1
  29. package/dist/collections/resolve.js +24 -19
  30. package/dist/collections/resolve.js.map +1 -1
  31. package/dist/index.d.ts +6 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +6 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/mutations/common.d.ts +4 -1
  36. package/dist/mutations/common.d.ts.map +1 -1
  37. package/dist/mutations/common.js +5 -2
  38. package/dist/mutations/common.js.map +1 -1
  39. package/dist/mutations/content-type.d.ts.map +1 -1
  40. package/dist/mutations/content-type.js +24 -17
  41. package/dist/mutations/content-type.js.map +1 -1
  42. package/dist/mutations/entity.d.ts.map +1 -1
  43. package/dist/mutations/entity.js +30 -30
  44. package/dist/mutations/entity.js.map +1 -1
  45. package/dist/mutations/execute.d.ts +19 -0
  46. package/dist/mutations/execute.d.ts.map +1 -0
  47. package/dist/mutations/execute.js +131 -0
  48. package/dist/mutations/execute.js.map +1 -0
  49. package/dist/mutations/item.d.ts.map +1 -1
  50. package/dist/mutations/item.js +23 -17
  51. package/dist/mutations/item.js.map +1 -1
  52. package/dist/mutations/list.d.ts.map +1 -1
  53. package/dist/mutations/list.js +23 -17
  54. package/dist/mutations/list.js.map +1 -1
  55. package/dist/mutations/mapping.d.ts.map +1 -1
  56. package/dist/mutations/mapping.js +23 -17
  57. package/dist/mutations/mapping.js.map +1 -1
  58. package/dist/mutations/property.d.ts.map +1 -1
  59. package/dist/mutations/property.js +25 -36
  60. package/dist/mutations/property.js.map +1 -1
  61. package/dist/mutations/relation.d.ts.map +1 -1
  62. package/dist/mutations/relation.js +23 -26
  63. package/dist/mutations/relation.js.map +1 -1
  64. package/dist/mutations/rename-entity.d.ts +11 -0
  65. package/dist/mutations/rename-entity.d.ts.map +1 -0
  66. package/dist/mutations/rename-entity.js +181 -0
  67. package/dist/mutations/rename-entity.js.map +1 -0
  68. package/dist/reconcile/index.d.ts +8 -0
  69. package/dist/reconcile/index.d.ts.map +1 -1
  70. package/dist/reconcile/index.js +67 -2
  71. package/dist/reconcile/index.js.map +1 -1
  72. package/dist/types/index.d.ts +2 -0
  73. package/dist/types/index.d.ts.map +1 -1
  74. package/package.json +4 -2
package/dist/cli/index.js CHANGED
@@ -7,10 +7,9 @@ async function main() {
7
7
  printHelp();
8
8
  return;
9
9
  }
10
+ const flags = parseFlags(args);
10
11
  const admin = await createMemorixDescriptorAdminFromEnv();
11
- const dryRun = args.includes("--dry-run");
12
- const formatIdx = args.indexOf("--format");
13
- const format = formatIdx >= 0 ? args[formatIdx + 1] : undefined;
12
+ const mutationOptions = baseMutationOptions(flags);
14
13
  switch (command) {
15
14
  case "validate": {
16
15
  const report = await admin.validateMemorixDescriptors();
@@ -19,13 +18,17 @@ async function main() {
19
18
  break;
20
19
  }
21
20
  case "reconcile": {
22
- const result = await admin.reconcileDescriptorsWithMongo();
21
+ const result = await admin.reconcileDescriptorsWithMongo({
22
+ autoRegisterOrphans: flags.autoRegisterOrphans,
23
+ allowCreateCollection: flags.allowCreateCollection,
24
+ skipMongo: flags.skipMongo,
25
+ });
23
26
  console.log(JSON.stringify(result, null, 2));
24
27
  break;
25
28
  }
26
29
  case "graph": {
27
30
  const graph = await admin.getDescriptorGraph();
28
- if (format === "mermaid") {
31
+ if (flags.format === "mermaid") {
29
32
  console.log(descriptorGraphToMermaid(graph));
30
33
  }
31
34
  else {
@@ -33,117 +36,258 @@ async function main() {
33
36
  }
34
37
  break;
35
38
  }
36
- case "entity": {
37
- await handleEntityCommand(admin, args, dryRun);
39
+ case "entity":
40
+ await runMutation(admin, () => handleEntityCommand(admin, flags, mutationOptions));
38
41
  break;
39
- }
40
- case "content-type": {
41
- await handleContentTypeCommand(admin, args, dryRun);
42
+ case "content-type":
43
+ await runMutation(admin, () => handleContentTypeCommand(admin, flags, mutationOptions));
42
44
  break;
43
- }
44
- case "list": {
45
- await handleListCommand(admin, args, dryRun);
45
+ case "property":
46
+ await runMutation(admin, () => handlePropertyCommand(admin, flags, mutationOptions));
46
47
  break;
47
- }
48
- case "item": {
49
- await handleItemCommand(admin, args, dryRun);
48
+ case "list":
49
+ await runMutation(admin, () => handleListCommand(admin, flags, mutationOptions));
50
50
  break;
51
- }
52
- case "mapping": {
53
- await handleMappingCommand(admin, args, dryRun);
51
+ case "item":
52
+ await runMutation(admin, () => handleItemCommand(admin, flags, mutationOptions));
54
53
  break;
55
- }
56
- case "seed": {
57
- await handleSeedCommand(admin, args, dryRun);
54
+ case "relation":
55
+ await runMutation(admin, () => handleRelationCommand(admin, flags, mutationOptions));
56
+ break;
57
+ case "mapping":
58
+ await runMutation(admin, () => handleMappingCommand(admin, flags, mutationOptions));
59
+ break;
60
+ case "seed":
61
+ await handleSeedCommand(admin, flags);
58
62
  break;
59
- }
60
63
  default:
61
64
  console.error(`Unknown command: ${command}`);
62
65
  printHelp();
63
66
  process.exitCode = 1;
64
67
  }
65
68
  }
66
- async function handleEntityCommand(admin, args, dryRun) {
67
- const [sub, ...rest] = args;
69
+ async function runMutation(_admin, fn) {
70
+ const result = await fn();
71
+ if (result && "ok" in result) {
72
+ process.exitCode = result.ok ? 0 : 1;
73
+ }
74
+ }
75
+ async function handleEntityCommand(admin, flags, options) {
76
+ const sub = flags.positional[0];
68
77
  if (sub === "register") {
69
- const file = readFlag(rest, "--file");
70
- if (!file)
71
- throw new Error("entity register requires --file");
72
- const input = JSON.parse(await readFile(file, "utf8"));
73
- const result = await admin.registerEntityDescriptor(input, { dryRun });
78
+ const input = await readJsonFile(flags.file, "entity register requires --file");
79
+ const result = await admin.registerEntityDescriptor(input, options);
74
80
  console.log(JSON.stringify(result, null, 2));
75
- process.exitCode = result.ok ? 0 : 1;
76
- return;
81
+ return result;
82
+ }
83
+ if (sub === "update") {
84
+ const entityName = flags.positional[1];
85
+ if (!entityName)
86
+ throw new Error("entity update requires <entityName>");
87
+ const patch = await readJsonFile(flags.file, "entity update requires --file");
88
+ const result = await admin.updateEntityDescriptor(entityName, patch, options);
89
+ console.log(JSON.stringify(result, null, 2));
90
+ return result;
91
+ }
92
+ if (sub === "remove") {
93
+ const entityName = flags.positional[1];
94
+ if (!entityName)
95
+ throw new Error("entity remove requires <entityName>");
96
+ const result = await admin.removeEntityDescriptor(entityName, options);
97
+ console.log(JSON.stringify(result, null, 2));
98
+ return result;
99
+ }
100
+ if (sub === "rename") {
101
+ const from = flags.positional[1];
102
+ const to = flags.positional[2];
103
+ if (!from || !to)
104
+ throw new Error("entity rename requires <from> <to>");
105
+ const result = await admin.renameEntityDescriptor(from, to, {
106
+ ...options,
107
+ keepDeprecatedSource: flags.keepDeprecated,
108
+ });
109
+ console.log(JSON.stringify(result, null, 2));
110
+ return result;
77
111
  }
78
112
  throw new Error(`Unknown entity subcommand: ${sub ?? "(none)"}`);
79
113
  }
80
- async function handleContentTypeCommand(admin, args, dryRun) {
81
- const [sub, entityName, key, ...rest] = args;
114
+ async function handleContentTypeCommand(admin, flags, options) {
115
+ const sub = flags.positional[0];
116
+ const entityName = flags.positional[1];
117
+ const key = flags.positional[2];
82
118
  if (sub === "add") {
83
- const postfix = readFlag(rest, "--postfix") ?? key;
84
- const result = await admin.addContentType(entityName, { key, postfix }, { dryRun });
119
+ if (!entityName || !key)
120
+ throw new Error("content-type add requires <entity> <key>");
121
+ const result = await admin.addContentType(entityName, { key, postfix: flags.postfix ?? key }, options);
85
122
  console.log(JSON.stringify(result, null, 2));
86
- process.exitCode = result.ok ? 0 : 1;
87
- return;
123
+ return result;
124
+ }
125
+ if (sub === "update") {
126
+ if (!entityName || !key)
127
+ throw new Error("content-type update requires <entity> <key> --file");
128
+ const patch = await readJsonFile(flags.file, "content-type update requires --file");
129
+ const result = await admin.updateContentType(entityName, key, patch, options);
130
+ console.log(JSON.stringify(result, null, 2));
131
+ return result;
132
+ }
133
+ if (sub === "remove") {
134
+ if (!entityName || !key)
135
+ throw new Error("content-type remove requires <entity> <key>");
136
+ const result = await admin.removeContentType(entityName, key, options);
137
+ console.log(JSON.stringify(result, null, 2));
138
+ return result;
88
139
  }
89
140
  throw new Error(`Unknown content-type subcommand: ${sub ?? "(none)"}`);
90
141
  }
91
- async function handleListCommand(admin, args, dryRun) {
92
- const [sub, ...rest] = args;
142
+ async function handlePropertyCommand(admin, flags, options) {
143
+ const sub = flags.positional[0];
144
+ const entityName = flags.positional[1];
145
+ const key = flags.positional[2];
146
+ if (sub === "add") {
147
+ if (!entityName || !key)
148
+ throw new Error("property add requires <entity> <key> --file");
149
+ const property = await readJsonFile(flags.file, "property add requires --file");
150
+ const result = await admin.addProperty(entityName, key, property, {
151
+ ...options,
152
+ addToDefaultList: flags.addToDefaultList,
153
+ addToDefaultItem: flags.addToDefaultItem,
154
+ });
155
+ console.log(JSON.stringify(result, null, 2));
156
+ return result;
157
+ }
158
+ if (sub === "update") {
159
+ if (!entityName || !key)
160
+ throw new Error("property update requires <entity> <key> --file");
161
+ const patch = await readJsonFile(flags.file, "property update requires --file");
162
+ const result = await admin.updateProperty(entityName, key, patch, options);
163
+ console.log(JSON.stringify(result, null, 2));
164
+ return result;
165
+ }
166
+ if (sub === "remove") {
167
+ if (!entityName || !key)
168
+ throw new Error("property remove requires <entity> <key>");
169
+ const result = await admin.removeProperty(entityName, key, options);
170
+ console.log(JSON.stringify(result, null, 2));
171
+ return result;
172
+ }
173
+ throw new Error(`Unknown property subcommand: ${sub ?? "(none)"}`);
174
+ }
175
+ async function handleListCommand(admin, flags, options) {
176
+ const sub = flags.positional[0];
93
177
  if (sub === "create") {
94
- const file = readFlag(rest, "--file");
95
- if (!file)
96
- throw new Error("list create requires --file");
97
- const input = JSON.parse(await readFile(file, "utf8"));
98
- const result = await admin.createListDescriptor(input, { dryRun });
178
+ const input = await readJsonFile(flags.file, "list create requires --file");
179
+ const result = await admin.createListDescriptor(input, options);
99
180
  console.log(JSON.stringify(result, null, 2));
100
- process.exitCode = result.ok ? 0 : 1;
101
- return;
181
+ return result;
102
182
  }
103
183
  if (sub === "update") {
104
- const [id, ...tail] = rest;
105
- const file = readFlag(tail, "--file");
106
- if (!id || !file)
184
+ const id = flags.positional[1];
185
+ if (!id)
107
186
  throw new Error("list update requires <id> --file");
108
- const patch = JSON.parse(await readFile(file, "utf8"));
109
- const result = await admin.updateListDescriptor(id, patch, { dryRun });
187
+ const patch = await readJsonFile(flags.file, "list update requires --file");
188
+ const result = await admin.updateListDescriptor(id, patch, options);
110
189
  console.log(JSON.stringify(result, null, 2));
111
- process.exitCode = result.ok ? 0 : 1;
112
- return;
190
+ return result;
191
+ }
192
+ if (sub === "remove") {
193
+ const id = flags.positional[1];
194
+ if (!id)
195
+ throw new Error("list remove requires <id>");
196
+ const result = await admin.removeListDescriptor(id, options);
197
+ console.log(JSON.stringify(result, null, 2));
198
+ return result;
113
199
  }
114
200
  throw new Error(`Unknown list subcommand: ${sub ?? "(none)"}`);
115
201
  }
116
- async function handleItemCommand(admin, args, dryRun) {
117
- const [sub, ...rest] = args;
202
+ async function handleItemCommand(admin, flags, options) {
203
+ const sub = flags.positional[0];
204
+ if (sub === "create") {
205
+ const input = await readJsonFile(flags.file, "item create requires --file");
206
+ const result = await admin.createItemDescriptor(input, options);
207
+ console.log(JSON.stringify(result, null, 2));
208
+ return result;
209
+ }
118
210
  if (sub === "update") {
119
- const [id, ...tail] = rest;
120
- const file = readFlag(tail, "--file");
121
- if (!id || !file)
211
+ const id = flags.positional[1];
212
+ if (!id)
122
213
  throw new Error("item update requires <id> --file");
123
- const patch = JSON.parse(await readFile(file, "utf8"));
124
- const result = await admin.updateItemDescriptor(id, patch, { dryRun });
214
+ const patch = await readJsonFile(flags.file, "item update requires --file");
215
+ const result = await admin.updateItemDescriptor(id, patch, options);
125
216
  console.log(JSON.stringify(result, null, 2));
126
- process.exitCode = result.ok ? 0 : 1;
127
- return;
217
+ return result;
218
+ }
219
+ if (sub === "remove") {
220
+ const id = flags.positional[1];
221
+ if (!id)
222
+ throw new Error("item remove requires <id>");
223
+ const result = await admin.removeItemDescriptor(id, options);
224
+ console.log(JSON.stringify(result, null, 2));
225
+ return result;
128
226
  }
129
227
  throw new Error(`Unknown item subcommand: ${sub ?? "(none)"}`);
130
228
  }
131
- async function handleMappingCommand(admin, args, dryRun) {
132
- const [sub, ...rest] = args;
229
+ async function handleRelationCommand(admin, flags, options) {
230
+ const sub = flags.positional[0];
231
+ const sourceEntity = flags.positional[1];
232
+ const relationKey = flags.positional[2];
233
+ if (sub === "add") {
234
+ if (!sourceEntity || !relationKey) {
235
+ throw new Error("relation add requires <sourceEntity> <relationKey> --file");
236
+ }
237
+ const descriptor = await readJsonFile(flags.file, "relation add requires --file");
238
+ const result = await admin.addRelation(sourceEntity, relationKey, descriptor, options);
239
+ console.log(JSON.stringify(result, null, 2));
240
+ return result;
241
+ }
242
+ if (sub === "update") {
243
+ if (!sourceEntity || !relationKey) {
244
+ throw new Error("relation update requires <sourceEntity> <relationKey> --file");
245
+ }
246
+ const patch = await readJsonFile(flags.file, "relation update requires --file");
247
+ const result = await admin.updateRelation(sourceEntity, relationKey, patch, options);
248
+ console.log(JSON.stringify(result, null, 2));
249
+ return result;
250
+ }
251
+ if (sub === "remove") {
252
+ if (!sourceEntity || !relationKey) {
253
+ throw new Error("relation remove requires <sourceEntity> <relationKey>");
254
+ }
255
+ const result = await admin.removeRelation(sourceEntity, relationKey, options);
256
+ console.log(JSON.stringify(result, null, 2));
257
+ return result;
258
+ }
259
+ throw new Error(`Unknown relation subcommand: ${sub ?? "(none)"}`);
260
+ }
261
+ async function handleMappingCommand(admin, flags, options) {
262
+ const sub = flags.positional[0];
133
263
  if (sub === "register") {
134
- const file = readFlag(rest, "--file");
135
- if (!file)
136
- throw new Error("mapping register requires --file");
137
- const input = JSON.parse(await readFile(file, "utf8"));
138
- const result = await admin.registerMapping(input, { dryRun });
264
+ const input = await readJsonFile(flags.file, "mapping register requires --file");
265
+ const result = await admin.registerMapping(input, options);
139
266
  console.log(JSON.stringify(result, null, 2));
140
- process.exitCode = result.ok ? 0 : 1;
141
- return;
267
+ return result;
268
+ }
269
+ if (sub === "update") {
270
+ const id = flags.positional[1];
271
+ if (!id)
272
+ throw new Error("mapping update requires <id> --file");
273
+ const patch = await readJsonFile(flags.file, "mapping update requires --file");
274
+ const result = await admin.updateMapping(id, patch, options);
275
+ console.log(JSON.stringify(result, null, 2));
276
+ return result;
277
+ }
278
+ if (sub === "remove") {
279
+ const id = flags.positional[1];
280
+ if (!id)
281
+ throw new Error("mapping remove requires <id>");
282
+ const result = await admin.removeMapping(id, options);
283
+ console.log(JSON.stringify(result, null, 2));
284
+ return result;
142
285
  }
143
286
  throw new Error(`Unknown mapping subcommand: ${sub ?? "(none)"}`);
144
287
  }
145
- async function handleSeedCommand(admin, args, dryRun) {
146
- const [sub, dir] = args;
288
+ async function handleSeedCommand(admin, flags) {
289
+ const sub = flags.positional[0];
290
+ const dir = flags.positional[1];
147
291
  if (sub === "export") {
148
292
  if (!dir)
149
293
  throw new Error("seed export requires <dir>");
@@ -154,34 +298,120 @@ async function handleSeedCommand(admin, args, dryRun) {
154
298
  if (sub === "import") {
155
299
  if (!dir)
156
300
  throw new Error("seed import requires <dir>");
157
- const result = await admin.importDescriptorSeedInputs(dir, { dryRun });
301
+ const result = await admin.importDescriptorSeedInputs(dir, { dryRun: flags.dryRun });
158
302
  console.log(JSON.stringify(result, null, 2));
159
303
  process.exitCode = result.ok ? 0 : 1;
160
304
  return;
161
305
  }
162
306
  throw new Error(`Unknown seed subcommand: ${sub ?? "(none)"}`);
163
307
  }
164
- function readFlag(args, flag) {
165
- const idx = args.indexOf(flag);
166
- if (idx < 0)
167
- return undefined;
168
- return args[idx + 1];
308
+ function parseFlags(args) {
309
+ const positional = [];
310
+ const flags = {
311
+ positional,
312
+ dryRun: false,
313
+ force: false,
314
+ skipMongo: false,
315
+ autoRegisterOrphans: false,
316
+ allowCreateCollection: false,
317
+ keepDeprecated: false,
318
+ addToDefaultList: false,
319
+ addToDefaultItem: false,
320
+ cascade: true,
321
+ };
322
+ for (let i = 0; i < args.length; i++) {
323
+ const arg = args[i];
324
+ if (arg === "--dry-run")
325
+ flags.dryRun = true;
326
+ else if (arg === "--force")
327
+ flags.force = true;
328
+ else if (arg === "--skip-mongo")
329
+ flags.skipMongo = true;
330
+ else if (arg === "--auto-register-orphans")
331
+ flags.autoRegisterOrphans = true;
332
+ else if (arg === "--allow-create-collection")
333
+ flags.allowCreateCollection = true;
334
+ else if (arg === "--keep-deprecated")
335
+ flags.keepDeprecated = true;
336
+ else if (arg === "--add-to-default-list")
337
+ flags.addToDefaultList = true;
338
+ else if (arg === "--add-to-default-item")
339
+ flags.addToDefaultItem = true;
340
+ else if (arg === "--no-cascade")
341
+ flags.cascade = false;
342
+ else if (arg === "--file")
343
+ flags.file = args[++i];
344
+ else if (arg === "--reason")
345
+ flags.reason = args[++i];
346
+ else if (arg === "--expected-version")
347
+ flags.expectedVersion = args[++i];
348
+ else if (arg === "--format")
349
+ flags.format = args[++i];
350
+ else if (arg === "--postfix")
351
+ flags.postfix = args[++i];
352
+ else if (!arg.startsWith("-"))
353
+ positional.push(arg);
354
+ else
355
+ throw new Error(`Unknown flag: ${arg}`);
356
+ }
357
+ return flags;
358
+ }
359
+ function baseMutationOptions(flags) {
360
+ return {
361
+ dryRun: flags.dryRun,
362
+ force: flags.force,
363
+ reason: flags.reason,
364
+ expectedVersion: flags.expectedVersion,
365
+ allowCreateCollection: flags.allowCreateCollection,
366
+ cascade: flags.cascade,
367
+ };
368
+ }
369
+ async function readJsonFile(path, message) {
370
+ if (!path)
371
+ throw new Error(message);
372
+ return JSON.parse(await readFile(path, "utf8"));
169
373
  }
170
374
  function printHelp() {
171
375
  console.log(`memorix-descriptors — Memorix descriptor management in Catalox
172
376
 
173
377
  Usage:
174
378
  memorix-descriptors validate
175
- memorix-descriptors reconcile
379
+ memorix-descriptors reconcile [--auto-register-orphans] [--allow-create-collection] [--skip-mongo]
176
380
  memorix-descriptors graph [--format mermaid]
177
- memorix-descriptors entity register --file ./new-entity.json [--dry-run]
178
- memorix-descriptors content-type add <entity> <key> --postfix <postfix> [--dry-run]
179
- memorix-descriptors list create --file ./list.json [--dry-run]
180
- memorix-descriptors list update <id> --file ./patch.json [--dry-run]
181
- memorix-descriptors item update <id> --file ./patch.json [--dry-run]
182
- memorix-descriptors mapping register --file ./mapping.json [--dry-run]
183
- memorix-descriptors seed export ./catalox-seeds/inputs
184
- memorix-descriptors seed import ./catalox-seeds/inputs [--dry-run]
381
+
382
+ memorix-descriptors entity register --file <json> [--dry-run] [--reason <text>]
383
+ memorix-descriptors entity update <entity> --file <json> [--dry-run]
384
+ memorix-descriptors entity remove <entity> [--dry-run] [--force]
385
+ memorix-descriptors entity rename <from> <to> [--dry-run] [--keep-deprecated]
386
+
387
+ memorix-descriptors content-type add <entity> <key> [--postfix <postfix>] [--dry-run]
388
+ memorix-descriptors content-type update <entity> <key> --file <json> [--dry-run]
389
+ memorix-descriptors content-type remove <entity> <key> [--dry-run] [--force]
390
+
391
+ memorix-descriptors property add <entity> <key> --file <json> [--add-to-default-list] [--dry-run]
392
+ memorix-descriptors property update <entity> <key> --file <json> [--dry-run]
393
+ memorix-descriptors property remove <entity> <key> [--dry-run] [--force]
394
+
395
+ memorix-descriptors list create --file <json> [--dry-run]
396
+ memorix-descriptors list update <id> --file <json> [--dry-run]
397
+ memorix-descriptors list remove <id> [--dry-run] [--force]
398
+
399
+ memorix-descriptors item create --file <json> [--dry-run]
400
+ memorix-descriptors item update <id> --file <json> [--dry-run]
401
+ memorix-descriptors item remove <id> [--dry-run] [--force]
402
+
403
+ memorix-descriptors relation add <entity> <key> --file <json> [--dry-run] [--no-cascade]
404
+ memorix-descriptors relation update <entity> <key> --file <json> [--dry-run]
405
+ memorix-descriptors relation remove <entity> <key> [--dry-run] [--no-cascade]
406
+
407
+ memorix-descriptors mapping register --file <json> [--dry-run]
408
+ memorix-descriptors mapping update <id> --file <json> [--dry-run]
409
+ memorix-descriptors mapping remove <id> [--dry-run]
410
+
411
+ memorix-descriptors seed export <dir>
412
+ memorix-descriptors seed import <dir> [--dry-run]
413
+
414
+ Global flags: --dry-run --force --reason <text> --expected-version <n>
185
415
  `);
186
416
  }
187
417
  main().catch((err) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function createMongoCollectionIfMissing(database: string, collection: string, env?: NodeJS.ProcessEnv): Promise<{
2
+ action: "create" | "exists";
3
+ database: string;
4
+ collection: string;
5
+ }>;
6
+ //# sourceMappingURL=mongo-create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo-create.d.ts","sourceRoot":"","sources":["../../src/collections/mongo-create.ts"],"names":[],"mappings":"AAGA,wBAAsB,8BAA8B,CAClD,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC;IAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAehF"}
@@ -0,0 +1,20 @@
1
+ import { MongoClient } from "mongodb";
2
+ import { resolveMongoUri } from "@x12i/memorix-retrieval";
3
+ export async function createMongoCollectionIfMissing(database, collection, env = process.env) {
4
+ const uri = resolveMongoUri(env);
5
+ const client = new MongoClient(uri);
6
+ try {
7
+ await client.connect();
8
+ const db = client.db(database);
9
+ const existing = await db.listCollections({ name: collection }).toArray();
10
+ if (existing.length > 0) {
11
+ return { action: "exists", database, collection };
12
+ }
13
+ await db.createCollection(collection);
14
+ return { action: "create", database, collection };
15
+ }
16
+ finally {
17
+ await client.close();
18
+ }
19
+ }
20
+ //# sourceMappingURL=mongo-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo-create.js","sourceRoot":"","sources":["../../src/collections/mongo-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,QAAgB,EAChB,UAAkB,EAClB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACpD,CAAC;QACD,MAAM,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACpD,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -1,9 +1,8 @@
1
1
  import type { MemorixEntityDescriptor } from "@x12i/memorix-retrieval";
2
- import { type XronoxLike } from "@x12i/memorix-retrieval";
3
2
  import type { MemorixTarget } from "../types/index.js";
4
3
  export declare function resolveCollectionForEntity(entity: MemorixEntityDescriptor, contentTypeKey: string, env: NodeJS.ProcessEnv): string;
5
4
  export declare function resolveDatabaseForTarget(target: MemorixTarget, env: NodeJS.ProcessEnv): string;
6
- export declare function ensureMongoCollection(xronox: XronoxLike | undefined, database: string, collection: string, allowCreate: boolean): Promise<{
5
+ export declare function ensureMongoCollection(xronox: import("@x12i/memorix-retrieval").XronoxLike | undefined, database: string, collection: string, allowCreate: boolean, env?: NodeJS.ProcessEnv): Promise<{
7
6
  action: string;
8
7
  database: string;
9
8
  collection: string;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/collections/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,uBAAuB,EAC/B,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,MAAM,CAER;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,MAAM,CAER;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAyB1E;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM,EACzB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,oBAAoB,CAgBtB"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/collections/resolve.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,uBAAuB,EAC/B,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,MAAM,CAER;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,MAAM,CAER;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,OAAO,yBAAyB,EAAE,UAAU,GAAG,SAAS,EAChE,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,OAAO,EACpB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CA2B1E;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM,EACzB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,oBAAoB,CAgBtB"}