@modelprofile.com/flexharness 11.3.0 → 12.0.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 (65) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/classes.flexharness.core.d.ts +4 -0
  3. package/dist_ts/classes.flexharness.core.js +69 -25
  4. package/dist_ts/classes.flexharness.imports.js +4 -3
  5. package/dist_ts/classes.flexharness.reversions.d.ts +7 -1
  6. package/dist_ts/classes.flexharness.reversions.js +43 -29
  7. package/dist_ts/classes.flexharness.sessions.js +2 -6
  8. package/dist_ts/classes.stores.js +20 -18
  9. package/dist_ts/index.d.ts +1 -0
  10. package/dist_ts/index.js +2 -1
  11. package/dist_ts/interfaces.d.ts +24 -2
  12. package/dist_ts/interfaces.flexharness.d.ts +8 -1
  13. package/dist_ts/interfaces.js +1 -1
  14. package/dist_ts/plugins.d.ts +3 -3
  15. package/dist_ts/plugins.js +3 -3
  16. package/dist_ts/utils.projectionchange.d.ts +34 -0
  17. package/dist_ts/utils.projectionchange.js +135 -0
  18. package/dist_ts/utils.storecodecs.d.ts +10 -3
  19. package/dist_ts/utils.storecodecs.js +29 -4
  20. package/dist_ts/utils.storerules.d.ts +1 -1
  21. package/dist_ts/utils.storerules.js +1 -1
  22. package/dist_ts_migration/v3_legacyflexharness.js +6 -5
  23. package/dist_ts_stores_nosqldb/classes.nosqldbstores.d.ts +5 -4
  24. package/dist_ts_stores_nosqldb/classes.nosqldbstores.js +56 -54
  25. package/dist_ts_stores_nosqldb/classes.recordstore.d.ts +176 -19
  26. package/dist_ts_stores_nosqldb/classes.recordstore.js +392 -67
  27. package/dist_ts_stores_nosqldb/index.d.ts +1 -1
  28. package/dist_ts_stores_nosqldb/index.js +2 -2
  29. package/dist_ts_stores_nosqldb/plugins.d.ts +1 -1
  30. package/dist_ts_stores_nosqldb/plugins.js +1 -1
  31. package/dist_ts_stores_testing/contract.d.ts +33 -0
  32. package/dist_ts_stores_testing/contract.js +566 -0
  33. package/dist_ts_stores_testing/fixtures.d.ts +20 -0
  34. package/dist_ts_stores_testing/fixtures.js +112 -0
  35. package/dist_ts_stores_testing/index.d.ts +2 -0
  36. package/dist_ts_stores_testing/index.js +3 -0
  37. package/dist_ts_stores_testing/plugins.d.ts +5 -0
  38. package/dist_ts_stores_testing/plugins.js +7 -0
  39. package/package.json +9 -3
  40. package/readme.md +6 -3
  41. package/ts/00_commitinfo_data.ts +1 -1
  42. package/ts/classes.flexharness.core.ts +74 -24
  43. package/ts/classes.flexharness.imports.ts +3 -2
  44. package/ts/classes.flexharness.reversions.ts +53 -28
  45. package/ts/classes.flexharness.sessions.ts +2 -5
  46. package/ts/classes.stores.ts +40 -37
  47. package/ts/index.ts +5 -0
  48. package/ts/interfaces.flexharness.ts +8 -1
  49. package/ts/interfaces.ts +27 -2
  50. package/ts/plugins.ts +12 -7
  51. package/ts/readme.md +6 -3
  52. package/ts/utils.projectionchange.ts +190 -0
  53. package/ts/utils.storecodecs.ts +42 -7
  54. package/ts/utils.storerules.ts +2 -2
  55. package/ts_migration/v3_legacyflexharness.ts +11 -6
  56. package/ts_stores_nosqldb/classes.nosqldbstores.ts +79 -71
  57. package/ts_stores_nosqldb/classes.recordstore.ts +491 -66
  58. package/ts_stores_nosqldb/index.ts +1 -0
  59. package/ts_stores_nosqldb/plugins.ts +4 -3
  60. package/ts_stores_nosqldb/readme.md +6 -2
  61. package/ts_stores_testing/contract.ts +776 -0
  62. package/ts_stores_testing/fixtures.ts +127 -0
  63. package/ts_stores_testing/index.ts +17 -0
  64. package/ts_stores_testing/plugins.ts +20 -0
  65. package/ts_stores_testing/readme.md +62 -0
@@ -1,2 +1,2 @@
1
1
  export { NoSqlFlexHarnessStores, type INoSqlFlexHarnessPurgeOptions, type INoSqlFlexHarnessStoresOptions, } from './classes.nosqldbstores.js';
2
- export { FLEX_CHUNK_COLLECTION, FLEX_NAMESPACE_COLLECTION, FLEX_RECORD_CHUNK_CODE_UNITS, FLEX_RECORD_COLLECTION, } from './classes.recordstore.js';
2
+ export { FLEX_CHANGE_COLLECTION, FLEX_CHUNK_COLLECTION, FLEX_NAMESPACE_COLLECTION, FLEX_RECORD_CHUNK_CODE_UNITS, FLEX_RECORD_COLLECTION, } from './classes.recordstore.js';
@@ -1,3 +1,3 @@
1
1
  export { NoSqlFlexHarnessStores, } from './classes.nosqldbstores.js';
2
- export { FLEX_CHUNK_COLLECTION, FLEX_NAMESPACE_COLLECTION, FLEX_RECORD_CHUNK_CODE_UNITS, FLEX_RECORD_COLLECTION, } from './classes.recordstore.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19zdG9yZXNfbm9zcWxkYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsc0JBQXNCLEdBR3ZCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLHNCQUFzQixHQUN2QixNQUFNLDBCQUEwQixDQUFDIn0=
2
+ export { FLEX_CHANGE_COLLECTION, FLEX_CHUNK_COLLECTION, FLEX_NAMESPACE_COLLECTION, FLEX_RECORD_CHUNK_CODE_UNITS, FLEX_RECORD_COLLECTION, } from './classes.recordstore.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19zdG9yZXNfbm9zcWxkYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsc0JBQXNCLEdBR3ZCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1QixzQkFBc0IsR0FDdkIsTUFBTSwwQkFBMEIsQ0FBQyJ9
@@ -2,6 +2,6 @@ import * as crypto from 'node:crypto';
2
2
  export { crypto };
3
3
  import { AgentEventStoreConflictError, ToolJobStoreConflictError } from '@modelprofile.com/flexharness-agent';
4
4
  export { AgentEventStoreConflictError, ToolJobStoreConflictError };
5
- export type { IAgentEventArchiveV2, IAgentEventSnapshotV2, IAgentEventStoreV2, IToolJobSnapshot, IToolJobState, IToolJobStore, TAgentEvent, } from '@modelprofile.com/flexharness-agent';
5
+ export type { IAgentEventArchive, IAgentEventChange, IAgentEventSnapshot, IAgentEventStore, IToolJobSnapshot, IToolJobState, IToolJobStore, TAgentEvent, } from '@modelprofile.com/flexharness-agent';
6
6
  import { SmartDataDbDoc, SmartdataDb, SmartdataPersistenceError, SmartdataSession, defineCollectionModel } from '@lossless.org/client/nosqldb';
7
7
  export { SmartDataDbDoc, SmartdataDb, SmartdataPersistenceError, SmartdataSession, defineCollectionModel, };
@@ -7,4 +7,4 @@ export { AgentEventStoreConflictError, ToolJobStoreConflictError };
7
7
  // @lossless.org scope
8
8
  import { SmartDataDbDoc, SmartdataDb, SmartdataPersistenceError, SmartdataSession, defineCollectionModel, } from '@lossless.org/client/nosqldb';
9
9
  export { SmartDataDbDoc, SmartdataDb, SmartdataPersistenceError, SmartdataSession, defineCollectionModel, };
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3N0b3Jlc19ub3NxbGRiL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUVsQiwwQkFBMEI7QUFDMUIsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qix5QkFBeUIsR0FDMUIsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUseUJBQXlCLEVBQUUsQ0FBQztBQVduRSxzQkFBc0I7QUFDdEIsT0FBTyxFQUNMLGNBQWMsRUFDZCxXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUNoQixxQkFBcUIsR0FDdEIsTUFBTSw4QkFBOEIsQ0FBQztBQUV0QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCx5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixHQUN0QixDQUFDIn0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3N0b3Jlc19ub3NxbGRiL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUVsQiwwQkFBMEI7QUFDMUIsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qix5QkFBeUIsR0FDMUIsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUseUJBQXlCLEVBQUUsQ0FBQztBQVluRSxzQkFBc0I7QUFDdEIsT0FBTyxFQUNMLGNBQWMsRUFDZCxXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUNoQixxQkFBcUIsR0FDdEIsTUFBTSw4QkFBOEIsQ0FBQztBQUV0QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCx5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixHQUN0QixDQUFDIn0=
@@ -0,0 +1,33 @@
1
+ import type { IFlexHarnessStores } from '../dist_ts/interfaces.js';
2
+ /** One store bundle over an isolated, initially empty backing store. */
3
+ export interface IFlexStoreContractFixture {
4
+ stores: IFlexHarnessStores;
5
+ /**
6
+ * Opens another bundle over the same backing store, as a second process would. Required when
7
+ * the backend declares `sharedBackingStore`.
8
+ */
9
+ openPeer?(): Promise<IFlexHarnessStores>;
10
+ /** Releases every bundle and removes the backing store. */
11
+ close(): Promise<void>;
12
+ }
13
+ export interface IFlexStoreContractBackend {
14
+ /** Names the backend in every test title. */
15
+ name: string;
16
+ /** Several bundles can open one backing store, as separate processes would. */
17
+ sharedBackingStore: boolean;
18
+ /** The Agent event and tool job providers implement `releaseSession`. */
19
+ releasesSessions: boolean;
20
+ /** The bundle provides `results`. */
21
+ storesResults: boolean;
22
+ open(): Promise<IFlexStoreContractFixture>;
23
+ }
24
+ /** One case of the store contract. It opens and closes its own fixture and throws when it fails. */
25
+ export interface IFlexStoreContractTest {
26
+ title: string;
27
+ run(): Promise<void>;
28
+ }
29
+ /**
30
+ * The behaviour every `IFlexHarnessStores` implementation shares, as test cases for any runner.
31
+ * Each case opens its own fixture, so backends need no cleanup between cases.
32
+ */
33
+ export declare function createFlexStoreContractTests(backend: IFlexStoreContractBackend): IFlexStoreContractTest[];