@webda/core 4.0.0-beta.7 → 4.0.0-beta.9

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 (76) hide show
  1. package/lib/application/application.d.ts +19 -0
  2. package/lib/application/application.d.ts.map +1 -1
  3. package/lib/application/application.js +52 -9
  4. package/lib/application/application.js.map +1 -1
  5. package/lib/application/model-types.d.ts +63 -0
  6. package/lib/application/model-types.d.ts.map +1 -0
  7. package/lib/application/model-types.js +59 -0
  8. package/lib/application/model-types.js.map +1 -0
  9. package/lib/application/unpackedapplication.d.ts.map +1 -1
  10. package/lib/application/unpackedapplication.js +5 -4
  11. package/lib/application/unpackedapplication.js.map +1 -1
  12. package/lib/bin/cli.d.ts +18 -0
  13. package/lib/bin/cli.d.ts.map +1 -1
  14. package/lib/bin/cli.js +38 -3
  15. package/lib/bin/cli.js.map +1 -1
  16. package/lib/core/operations.d.ts +17 -0
  17. package/lib/core/operations.d.ts.map +1 -1
  18. package/lib/core/operations.js +1 -1
  19. package/lib/core/operations.js.map +1 -1
  20. package/lib/index.d.ts +5 -2
  21. package/lib/index.d.ts.map +1 -1
  22. package/lib/index.js +4 -1
  23. package/lib/index.js.map +1 -1
  24. package/lib/models/decorator.d.ts +21 -0
  25. package/lib/models/decorator.d.ts.map +1 -1
  26. package/lib/models/decorator.js +18 -0
  27. package/lib/models/decorator.js.map +1 -1
  28. package/lib/rest/restoperationstransport.service.d.ts +6 -0
  29. package/lib/rest/restoperationstransport.service.d.ts.map +1 -1
  30. package/lib/rest/restoperationstransport.service.js +31 -2
  31. package/lib/rest/restoperationstransport.service.js.map +1 -1
  32. package/lib/rest/router.service.d.ts.map +1 -1
  33. package/lib/rest/router.service.js +5 -2
  34. package/lib/rest/router.service.js.map +1 -1
  35. package/lib/services/binary.service.d.ts +1 -1
  36. package/lib/services/binary.service.d.ts.map +1 -1
  37. package/lib/services/binary.service.js.map +1 -1
  38. package/lib/services/httpserver.service.d.ts.map +1 -1
  39. package/lib/services/httpserver.service.js +5 -0
  40. package/lib/services/httpserver.service.js.map +1 -1
  41. package/lib/services/service.d.ts.map +1 -1
  42. package/lib/services/service.js +4 -1
  43. package/lib/services/service.js.map +1 -1
  44. package/lib/services/servicecommands.d.ts.map +1 -1
  45. package/lib/services/servicecommands.js +14 -1
  46. package/lib/services/servicecommands.js.map +1 -1
  47. package/lib/stores/capability.d.ts +16 -0
  48. package/lib/stores/capability.d.ts.map +1 -0
  49. package/lib/stores/capability.js +5 -0
  50. package/lib/stores/capability.js.map +1 -0
  51. package/lib/stores/memory.service.d.ts +30 -1
  52. package/lib/stores/memory.service.d.ts.map +1 -1
  53. package/lib/stores/memory.service.js +47 -1
  54. package/lib/stores/memory.service.js.map +1 -1
  55. package/lib/stores/migration.d.ts +306 -0
  56. package/lib/stores/migration.d.ts.map +1 -0
  57. package/lib/stores/migration.js +280 -0
  58. package/lib/stores/migration.js.map +1 -0
  59. package/lib/stores/store.d.ts +151 -17
  60. package/lib/stores/store.d.ts.map +1 -1
  61. package/lib/stores/store.js +421 -21
  62. package/lib/stores/store.js.map +1 -1
  63. package/lib/test/index.d.ts +2 -0
  64. package/lib/test/index.d.ts.map +1 -1
  65. package/lib/test/index.js +3 -0
  66. package/lib/test/index.js.map +1 -1
  67. package/lib/test/legacy-types.d.ts +146 -0
  68. package/lib/test/legacy-types.d.ts.map +1 -0
  69. package/lib/test/legacy-types.fixture.model.d.ts +38 -0
  70. package/lib/test/legacy-types.fixture.model.d.ts.map +1 -0
  71. package/lib/test/legacy-types.fixture.model.js +38 -0
  72. package/lib/test/legacy-types.fixture.model.js.map +1 -0
  73. package/lib/test/legacy-types.js +481 -0
  74. package/lib/test/legacy-types.js.map +1 -0
  75. package/package.json +11 -11
  76. package/webda.module.json +48 -22
@@ -4,8 +4,12 @@ import { registerRepository } from "@webda/models";
4
4
  import { ServiceParameters } from "../services/serviceparameters.js";
5
5
  import { Service } from "../services/service.js";
6
6
  import { useApplication, useModel, useModelId } from "../application/hooks.js";
7
- import { useLog } from "../loggers/hooks.js";
7
+ import { useLog, useOutput } from "../loggers/hooks.js";
8
8
  import { useCore, useModelMetadata } from "../core/hooks.js";
9
+ import { randomUUID } from "node:crypto";
10
+ import { classifyStoredType, UNREADABLE, UNTYPED } from "../application/model-types.js";
11
+ import { useRegistry } from "../models/registry.model.js";
12
+ import { DEFAULT_MIGRATION_BATCH, DEFAULT_TYPE_CHECK_ROWS, DEFAULT_MIGRATION_LEASE, emptyProgress, emptyTableReport, formatMigrationReport, incrementCount, MigrationAlreadyRunning, migrationTotals, scanRawRows, summarizeStoredTypes, MigrationUnsupported, toMigrationProgress } from "./migration.js";
9
13
  /** Error thrown when an item is not found in a store */
10
14
  export class StoreNotFoundError extends WebdaError.CodeError {
11
15
  /** Create a new StoreNotFoundError
@@ -49,19 +53,6 @@ export class StoreParameters extends ServiceParameters {
49
53
  * @default false
50
54
  */
51
55
  strict;
52
- /**
53
- * When __type model not found, use the model
54
- * If strict is setup this parameter is not used
55
- *
56
- * @default true
57
- */
58
- defaultModel;
59
- /**
60
- * If set, Store will ignore the __type
61
- *
62
- * @default false
63
- */
64
- forceModel;
65
56
  /**
66
57
  * Slow query threshold
67
58
  *
@@ -83,15 +74,15 @@ export class StoreParameters extends ServiceParameters {
83
74
  */
84
75
  maxGroups;
85
76
  /**
86
- * Model Aliases to allow easier rename of Model
77
+ * Startup check of the stored types: one WARN listing the legacy, untyped and unknown types found
87
78
  */
88
- modelAliases;
79
+ typeCheck;
89
80
  /**
90
81
  * Disable default memory cache
91
82
  */
92
83
  noCache;
93
84
  /**
94
- * Load store parameters with defaults for model type, strict mode, and aliases
85
+ * Load store parameters with defaults for models, strict mode and the startup type check
95
86
  * @param params - the service parameters
96
87
  * @returns the result
97
88
  */
@@ -129,10 +120,8 @@ export class StoreParameters extends ServiceParameters {
129
120
  // or `parameters.additionalModels` keeps working. In the legacy-input branch
130
121
  // `super.load(params)` already set both via Object.assign, so the `??=` is a no-op.
131
122
  this.strict ??= false;
132
- this.defaultModel ??= true;
133
- this.forceModel ??= false;
134
123
  this.slowQueryThreshold ??= 30000;
135
- this.modelAliases ??= {};
124
+ this.typeCheck = { enabled: true, maxRows: 10000, ...(this.typeCheck ?? {}) };
136
125
  return this;
137
126
  }
138
127
  }
@@ -308,7 +297,15 @@ class Store extends Service {
308
297
  */
309
298
  async init() {
310
299
  Store.computeStores();
311
- return super.init();
300
+ await super.init();
301
+ try {
302
+ await this.checkStoredTypes();
303
+ }
304
+ catch (err) {
305
+ // The check informs, it never fails startup
306
+ this.log("WARN", `Cannot check the stored types of ${this.getName()}: ${err?.message ?? err}`);
307
+ }
308
+ return this;
312
309
  }
313
310
  /**
314
311
  * @override
@@ -344,6 +341,409 @@ class Store extends Service {
344
341
  getModels() {
345
342
  return this._models;
346
343
  }
344
+ /**
345
+ * Tables of this store for raw access, each with the model owning its untyped rows
346
+ *
347
+ * Stores without raw access return undefined: `webda migrate` and the startup type check skip them.
348
+ * @returns the tables, or undefined when the store has no raw access
349
+ */
350
+ getRawTables() {
351
+ return undefined;
352
+ }
353
+ /**
354
+ * Read a page of raw rows of a table: no type filter, no hydration
355
+ * @param _table - table name, from {@link getRawTables}
356
+ * @param _batchSize - rows per page
357
+ * @param _token - token of the previous page
358
+ * @returns the page
359
+ */
360
+ async rawPages(_table, _batchSize, _token) {
361
+ throw new MigrationUnsupported(this.getName());
362
+ }
363
+ /**
364
+ * Set top-level fields of a raw row: no type filter, no hydration, no event
365
+ * @param _table - table name, from {@link getRawTables}
366
+ * @param _key - storage key of the row
367
+ * @param _patch - fields to set
368
+ */
369
+ async rawPatch(_table, _key, _patch) {
370
+ throw new MigrationUnsupported(this.getName());
371
+ }
372
+ /**
373
+ * Model owning the untyped rows of a single-table store: the first model of `models`
374
+ * @returns the model, undefined when unknown
375
+ */
376
+ getTableRoot() {
377
+ if (this._models[0])
378
+ return this._models[0];
379
+ const identifier = this.parameters?.models?.[0];
380
+ if (!identifier)
381
+ return undefined;
382
+ try {
383
+ return useModel(identifier);
384
+ }
385
+ catch {
386
+ return undefined;
387
+ }
388
+ }
389
+ /**
390
+ * Refuse a table that is not the single table of this store
391
+ * @param table - the requested table
392
+ */
393
+ checkSingleTable(table) {
394
+ if (table !== this.getName()) {
395
+ throw new Error(`Unknown table ${table} in store ${this.getName()}`);
396
+ }
397
+ }
398
+ /**
399
+ * @param name - migration name
400
+ * @returns the Registry entry of the migration
401
+ */
402
+ migrationId(name) {
403
+ return `storeMigration.${this.getName()}.${name}`;
404
+ }
405
+ /**
406
+ * @param name - migration name
407
+ * @returns the stored progress, undefined when the migration never ran
408
+ */
409
+ async getMigrationProgress(name) {
410
+ const id = this.migrationId(name);
411
+ if (!(await useRegistry().exists(id))) {
412
+ return undefined;
413
+ }
414
+ return toMigrationProgress(await useRegistry().get(id));
415
+ }
416
+ /**
417
+ * Forget the progress of a migration: the next run starts over
418
+ * @param name - migration name
419
+ */
420
+ async deleteMigrationProgress(name) {
421
+ const id = this.migrationId(name);
422
+ if (await useRegistry().exists(id)) {
423
+ await useRegistry().delete(id);
424
+ }
425
+ }
426
+ /**
427
+ * Take the lease of a migration: free, or expired (a crashed runner)
428
+ * @param name - migration name
429
+ * @param leaseDuration - lease duration in ms
430
+ * @returns the lease
431
+ * @throws MigrationAlreadyRunning when another runner holds a live lease
432
+ */
433
+ async acquireMigrationLease(name, leaseDuration = DEFAULT_MIGRATION_LEASE) {
434
+ const registry = useRegistry();
435
+ const id = this.migrationId(name);
436
+ const owner = randomUUID();
437
+ if (!(await registry.exists(id))) {
438
+ try {
439
+ await registry.create({ uuid: id, ...emptyProgress() });
440
+ }
441
+ catch {
442
+ // Another runner created it first: the conditional patch below decides
443
+ }
444
+ }
445
+ const entry = await registry.get(id);
446
+ const current = Number(entry.leaseUntil ?? 0);
447
+ const now = Date.now();
448
+ if (current > now) {
449
+ throw new MigrationAlreadyRunning(id, entry.owner, current);
450
+ }
451
+ const leaseUntil = now + leaseDuration;
452
+ try {
453
+ await registry.patch(id, { leaseUntil, owner }, "leaseUntil", entry.leaseUntil);
454
+ }
455
+ catch (err) {
456
+ const competitor = await this.competingMigrationLease(id, entry.owner, Number(entry.leaseUntil ?? 0), owner);
457
+ if (competitor)
458
+ throw new MigrationAlreadyRunning(id, competitor.owner, competitor.leaseUntil);
459
+ throw err;
460
+ }
461
+ return { id, owner, leaseUntil, leaseDuration, progress: toMigrationProgress(entry) };
462
+ }
463
+ /**
464
+ * After a failed conditional patch, tell a competing runner from any other Registry failure
465
+ * @param id - Registry entry of the migration
466
+ * @param owner - lease owner the patch expected
467
+ * @param leaseUntil - lease end the patch expected
468
+ * @param self - owner of this runner: a lease it holds is not a competitor's
469
+ * @returns the lease of another runner when the lease changed under the patch, undefined otherwise (the entry is
470
+ * unchanged, held by this runner, or cannot be read)
471
+ */
472
+ async competingMigrationLease(id, owner, leaseUntil, self) {
473
+ let latest;
474
+ try {
475
+ latest = await useRegistry().get(id);
476
+ }
477
+ catch {
478
+ return undefined;
479
+ }
480
+ const latestUntil = Number(latest?.leaseUntil ?? 0);
481
+ if (latest?.owner === self || (latest?.owner === owner && latestUntil === leaseUntil)) {
482
+ return undefined;
483
+ }
484
+ return { owner: latest?.owner, leaseUntil: latestUntil };
485
+ }
486
+ /**
487
+ * Save the progress and renew the lease, conditionally on the lease this runner holds
488
+ * @param lease - the lease
489
+ * @param update - progress fields to set
490
+ * @throws MigrationAlreadyRunning when the lease was taken over, the Registry error otherwise
491
+ */
492
+ async saveMigrationProgress(lease, update) {
493
+ // Always a new value: a runner that lost its lease fails the condition
494
+ const leaseUntil = Math.max(Date.now() + lease.leaseDuration, lease.leaseUntil + 1);
495
+ const progress = {
496
+ ...lease.progress,
497
+ ...update,
498
+ updatedAt: Date.now(),
499
+ leaseUntil,
500
+ owner: lease.owner
501
+ };
502
+ try {
503
+ await useRegistry().patch(lease.id, progress, "leaseUntil", lease.leaseUntil);
504
+ }
505
+ catch (err) {
506
+ const competitor = await this.competingMigrationLease(lease.id, lease.owner, lease.leaseUntil, lease.owner);
507
+ if (competitor)
508
+ throw new MigrationAlreadyRunning(lease.id, competitor.owner, competitor.leaseUntil);
509
+ throw err;
510
+ }
511
+ lease.leaseUntil = leaseUntil;
512
+ lease.progress = progress;
513
+ }
514
+ /**
515
+ * Renew the lease before writing a page
516
+ * @param lease - the lease
517
+ */
518
+ async renewMigrationLease(lease) {
519
+ await this.saveMigrationProgress(lease, {});
520
+ }
521
+ /**
522
+ * Release the lease, saving the last progress; a lease lost meanwhile is left to its new owner
523
+ * @param lease - the lease
524
+ * @param update - progress fields to set
525
+ * @throws the Registry error when the release failed while the lease was still this runner's
526
+ */
527
+ async releaseMigrationLease(lease, update = {}) {
528
+ const progress = {
529
+ ...lease.progress,
530
+ ...update,
531
+ updatedAt: Date.now(),
532
+ leaseUntil: 0,
533
+ owner: lease.owner
534
+ };
535
+ try {
536
+ await useRegistry().patch(lease.id, progress, "leaseUntil", lease.leaseUntil);
537
+ lease.progress = progress;
538
+ lease.leaseUntil = 0;
539
+ }
540
+ catch (err) {
541
+ if (!(await this.competingMigrationLease(lease.id, lease.owner, lease.leaseUntil, lease.owner)))
542
+ throw err;
543
+ this.log("WARN", `Migration ${lease.id}: lease lost before release, the other runner owns the progress`);
544
+ }
545
+ }
546
+ /**
547
+ * Run a migration on every raw row of every table of the store, the rows the type filter excludes included
548
+ *
549
+ * Resumable: the progress is saved in the Registry after each page and an interrupted run continues from it.
550
+ * Exclusive: a lease (renewed every page) makes a second runner fail fast with {@link MigrationAlreadyRunning}.
551
+ * Idempotent: patchers return undefined for migrated rows, and a finished migration scans again on the next run.
552
+ * @param name - migration name
553
+ * @param patcher - computes the patch of a row
554
+ * @param options - batch size, dry run, lease duration
555
+ * @returns the report
556
+ */
557
+ async migration(name, patcher, options = {}) {
558
+ const tables = this.getRawTables();
559
+ if (!tables) {
560
+ throw new MigrationUnsupported(this.getName());
561
+ }
562
+ const batchSize = Math.max(1, Math.floor(Number(options.batchSize ?? DEFAULT_MIGRATION_BATCH))) || DEFAULT_MIGRATION_BATCH;
563
+ const dryRun = !!options.dryRun;
564
+ const report = { store: this.getName(), name, tables: {}, resumed: false, dryRun };
565
+ let lease;
566
+ if (!dryRun) {
567
+ lease = await this.acquireMigrationLease(name, options.leaseDuration);
568
+ }
569
+ let resumeTable;
570
+ let resumeToken;
571
+ if (lease) {
572
+ const previous = lease.progress;
573
+ if (!previous.done && previous.table !== undefined && tables.some(table => table.name === previous.table)) {
574
+ report.resumed = true;
575
+ report.tables = structuredClone(previous.tables);
576
+ resumeTable = previous.table;
577
+ resumeToken = previous.continuationToken;
578
+ }
579
+ else {
580
+ lease.progress = emptyProgress();
581
+ }
582
+ }
583
+ try {
584
+ let reached = resumeTable === undefined;
585
+ for (const table of tables) {
586
+ let token;
587
+ if (!reached) {
588
+ if (table.name !== resumeTable)
589
+ continue;
590
+ reached = true;
591
+ // Progress is saved after each page: no token means this table was finished
592
+ if (resumeToken === undefined)
593
+ continue;
594
+ token = resumeToken;
595
+ }
596
+ const tableReport = (report.tables[table.name] ??= emptyTableReport());
597
+ const context = {
598
+ change: (from, to) => incrementCount(tableReport.byChange, `${from} → ${to}`),
599
+ unknown: type => incrementCount(tableReport.unknown, type)
600
+ };
601
+ do {
602
+ const page = await this.rawPages(table.name, batchSize, token);
603
+ const patches = [];
604
+ for (const row of page.rows) {
605
+ tableReport.scanned++;
606
+ const patch = await patcher(row, context);
607
+ if (patch !== undefined) {
608
+ tableReport.updated++;
609
+ patches.push({ key: row.key, patch });
610
+ }
611
+ }
612
+ if (lease && patches.length) {
613
+ // A runner that lost its lease stops here, before writing
614
+ await this.renewMigrationLease(lease);
615
+ for (const { key, patch } of patches) {
616
+ await this.rawPatch(table.name, key, patch);
617
+ }
618
+ }
619
+ token = page.continuationToken;
620
+ if (lease) {
621
+ await this.saveMigrationProgress(lease, {
622
+ table: table.name,
623
+ continuationToken: token,
624
+ ...migrationTotals(report)
625
+ });
626
+ }
627
+ } while (token);
628
+ }
629
+ }
630
+ catch (err) {
631
+ if (lease) {
632
+ // The failure of the run wins over a failure to release
633
+ await this.releaseMigrationLease(lease).catch(releaseError => this.log("ERROR", `Migration ${lease.id}: cannot release the lease`, releaseError));
634
+ }
635
+ throw err;
636
+ }
637
+ if (lease)
638
+ await this.releaseMigrationLease(lease, { done: true, ...migrationTotals(report) });
639
+ const totals = migrationTotals(report);
640
+ this.log("INFO", `Migration ${name}${dryRun ? " (dry run)" : ""}: ${totals.scanned} rows scanned, ${totals.updated} ${dryRun ? "to update" : "updated"}, ${totals.unknown} left untouched`);
641
+ return report;
642
+ }
643
+ /**
644
+ * Patcher of the built-in `types` migration: untyped rows get the table root identifier, legacy types their
645
+ * current identifier; unknown, ambiguous and unreadable rows are counted and left as they are
646
+ * @returns the patcher
647
+ */
648
+ typesPatcher() {
649
+ const roots = new Map((this.getRawTables() ?? []).map(table => [table.name, table.root]));
650
+ return (row, context) => {
651
+ if (row.unreadable) {
652
+ context.unknown(UNREADABLE);
653
+ return undefined;
654
+ }
655
+ const type = classifyStoredType(row.data.__type, roots.get(row.table));
656
+ switch (type.kind) {
657
+ case "legacy":
658
+ case "untyped":
659
+ if (!type.to)
660
+ return undefined;
661
+ context.change(type.from, type.to);
662
+ return { __type: type.to };
663
+ case "unknown":
664
+ case "ambiguous":
665
+ context.unknown(type.from);
666
+ return undefined;
667
+ default:
668
+ return undefined;
669
+ }
670
+ };
671
+ }
672
+ /**
673
+ * Rewrite the Webda 3 types of every row to the current identifiers (the built-in `types` migration)
674
+ *
675
+ * Stores with a native bulk update override this method and return the same report.
676
+ * @param options - batch size, dry run, lease duration
677
+ * @returns the report
678
+ */
679
+ async migrateTypes(options = {}) {
680
+ return this.migration("types", this.typesPatcher(), options);
681
+ }
682
+ /**
683
+ * Count the rows by stored `__type`, scanning at most `maxRows` rows
684
+ *
685
+ * Stores able to `GROUP BY` override it with an exact count.
686
+ * @param maxRows - scan limit
687
+ * @returns the counts
688
+ */
689
+ async countStoredTypes(maxRows) {
690
+ const tables = this.getRawTables() ?? [];
691
+ const result = { tables: {}, truncated: false };
692
+ for (const table of tables)
693
+ result.tables[table.name] = {};
694
+ result.truncated = await scanRawRows((table, size, token) => this.rawPages(table, size, token), tables, maxRows, row => {
695
+ const key = row.unreadable
696
+ ? UNREADABLE
697
+ : typeof row.data.__type === "string" && row.data.__type !== ""
698
+ ? row.data.__type
699
+ : UNTYPED;
700
+ incrementCount(result.tables[row.table], key);
701
+ });
702
+ return result;
703
+ }
704
+ /**
705
+ * Startup type check: one WARN when rows hold legacy, untyped or unknown types
706
+ * @returns the summary, undefined when disabled or the store has no raw access
707
+ */
708
+ async checkStoredTypes() {
709
+ const tables = this.getRawTables();
710
+ const options = this.parameters.typeCheck;
711
+ if (!tables || options?.enabled === false) {
712
+ return undefined;
713
+ }
714
+ const maxRows = options?.maxRows ?? DEFAULT_TYPE_CHECK_ROWS;
715
+ const counts = await this.countStoredTypes(maxRows);
716
+ const summary = summarizeStoredTypes(this.getName(), counts, new Map(tables.map(table => [table.name, table.root])), maxRows);
717
+ if (summary.message) {
718
+ this.log("WARN", summary.message);
719
+ }
720
+ return summary;
721
+ }
722
+ /**
723
+ * Body of the `migrate` command of the stores: run the `types` migration and print its report
724
+ *
725
+ * Stores declare `@Command("migrate", { phase: "initialized" }) migrate(dryRun = false, batch = 500,
726
+ * allowUnknown = false)` calling this method: composable commands pass their arguments by position.
727
+ * @param dryRun - count, write nothing
728
+ * @param batch - rows per page
729
+ * @param allowUnknown - exit with 0 even when rows keep an unknown or ambiguous type
730
+ * @returns the exit code
731
+ */
732
+ async migrateCommand(dryRun = false, batch = DEFAULT_MIGRATION_BATCH, allowUnknown = false) {
733
+ if (!this.getRawTables()) {
734
+ this.log("WARN", `Store ${this.getName()} cannot run migrations yet: skipped`);
735
+ return 0;
736
+ }
737
+ const report = await this.migrateTypes({ dryRun: !!dryRun, batchSize: Number(batch) || DEFAULT_MIGRATION_BATCH });
738
+ useOutput(formatMigrationReport(report));
739
+ const unknown = migrationTotals(report).unknown;
740
+ if (unknown > 0 && !allowUnknown) {
741
+ this.log("ERROR", `${unknown} rows of ${this.getName()} keep an unknown or ambiguous type: declare a @WebdaAlias on the ` +
742
+ "model they belong to, or pass --allow-unknown");
743
+ return 1;
744
+ }
745
+ return 0;
746
+ }
347
747
  /**
348
748
  * Return if a model is handled by the store
349
749
  * @param model - the model to use
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/stores/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/stores/store.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,6 @@ export * from "./application.js";
4
4
  export * from "./internal.js";
5
5
  export * from "./objects.js";
6
6
  export * from "@webda/models/lib/repositories/conformance.js";
7
+ export * from "./legacy-types.js";
8
+ export * from "./legacy-types.fixture.model.js";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAE7B,cAAc,+CAA+C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAE7B,cAAc,+CAA+C,CAAC;AAG9D,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC"}
package/lib/test/index.js CHANGED
@@ -5,4 +5,7 @@ export * from "./internal.js";
5
5
  export * from "./objects.js";
6
6
  // Shared repository conformance checks, reused by the store packages
7
7
  export * from "@webda/models/lib/repositories/conformance.js";
8
+ // Shared legacy types conformance suite, reused by the store packages
9
+ export * from "./legacy-types.js";
10
+ export * from "./legacy-types.fixture.model.js";
8
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,qEAAqE;AACrE,cAAc,+CAA+C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,qEAAqE;AACrE,cAAc,+CAA+C,CAAC;AAE9D,sEAAsE;AACtE,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC"}