@declaro/data 2.0.0-beta.12 → 2.0.0-beta.121

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 (130) hide show
  1. package/{LICENSE → LICENSE.md} +1 -1
  2. package/README.md +0 -0
  3. package/dist/browser/index.js +26 -0
  4. package/dist/browser/index.js.map +93 -0
  5. package/dist/node/index.cjs +13226 -0
  6. package/dist/node/index.cjs.map +93 -0
  7. package/dist/node/index.js +13205 -0
  8. package/dist/node/index.js.map +93 -0
  9. package/dist/ts/application/model-controller.d.ts +50 -0
  10. package/dist/ts/application/model-controller.d.ts.map +1 -0
  11. package/dist/ts/application/model-controller.test.d.ts +2 -0
  12. package/dist/ts/application/model-controller.test.d.ts.map +1 -0
  13. package/dist/ts/application/read-only-model-controller.d.ts +20 -0
  14. package/dist/ts/application/read-only-model-controller.d.ts.map +1 -0
  15. package/dist/ts/application/read-only-model-controller.test.d.ts +2 -0
  16. package/dist/ts/application/read-only-model-controller.test.d.ts.map +1 -0
  17. package/dist/ts/domain/events/domain-event.d.ts +41 -0
  18. package/dist/ts/domain/events/domain-event.d.ts.map +1 -0
  19. package/dist/ts/domain/events/domain-event.test.d.ts +2 -0
  20. package/dist/ts/domain/events/domain-event.test.d.ts.map +1 -0
  21. package/dist/ts/domain/events/event-types.d.ts +34 -0
  22. package/dist/ts/domain/events/event-types.d.ts.map +1 -0
  23. package/dist/ts/domain/events/mutation-event.d.ts +6 -0
  24. package/dist/ts/domain/events/mutation-event.d.ts.map +1 -0
  25. package/dist/ts/domain/events/mutation-event.test.d.ts +2 -0
  26. package/dist/ts/domain/events/mutation-event.test.d.ts.map +1 -0
  27. package/dist/ts/domain/events/query-event.d.ts +6 -0
  28. package/dist/ts/domain/events/query-event.d.ts.map +1 -0
  29. package/dist/ts/domain/events/query-event.test.d.ts +2 -0
  30. package/dist/ts/domain/events/query-event.test.d.ts.map +1 -0
  31. package/dist/ts/domain/events/request-event.d.ts +11 -0
  32. package/dist/ts/domain/events/request-event.d.ts.map +1 -0
  33. package/dist/ts/domain/events/request-event.test.d.ts +2 -0
  34. package/dist/ts/domain/events/request-event.test.d.ts.map +1 -0
  35. package/dist/ts/domain/interfaces/repository.d.ts +110 -0
  36. package/dist/ts/domain/interfaces/repository.d.ts.map +1 -0
  37. package/dist/ts/domain/models/pagination.d.ts +28 -0
  38. package/dist/ts/domain/models/pagination.d.ts.map +1 -0
  39. package/dist/ts/domain/services/base-model-service.d.ts +23 -0
  40. package/dist/ts/domain/services/base-model-service.d.ts.map +1 -0
  41. package/dist/ts/domain/services/model-service-args.d.ts +9 -0
  42. package/dist/ts/domain/services/model-service-args.d.ts.map +1 -0
  43. package/dist/ts/domain/services/model-service.d.ts +72 -0
  44. package/dist/ts/domain/services/model-service.d.ts.map +1 -0
  45. package/dist/ts/domain/services/model-service.normalization.test.d.ts +2 -0
  46. package/dist/ts/domain/services/model-service.normalization.test.d.ts.map +1 -0
  47. package/dist/ts/domain/services/model-service.test.d.ts +2 -0
  48. package/dist/ts/domain/services/model-service.test.d.ts.map +1 -0
  49. package/dist/ts/domain/services/read-only-model-service.d.ts +76 -0
  50. package/dist/ts/domain/services/read-only-model-service.d.ts.map +1 -0
  51. package/dist/ts/domain/services/read-only-model-service.test.d.ts +2 -0
  52. package/dist/ts/domain/services/read-only-model-service.test.d.ts.map +1 -0
  53. package/dist/ts/index.d.ts +18 -0
  54. package/dist/ts/index.d.ts.map +1 -0
  55. package/dist/ts/shared/utils/schema-inference.d.ts +23 -0
  56. package/dist/ts/shared/utils/schema-inference.d.ts.map +1 -0
  57. package/dist/ts/shared/utils/schema-inheritance.d.ts +24 -0
  58. package/dist/ts/shared/utils/schema-inheritance.d.ts.map +1 -0
  59. package/dist/ts/test/mock/models/mock-book-models.d.ts +42 -0
  60. package/dist/ts/test/mock/models/mock-book-models.d.ts.map +1 -0
  61. package/dist/ts/test/mock/repositories/mock-memory-repository.assign.test.d.ts +2 -0
  62. package/dist/ts/test/mock/repositories/mock-memory-repository.assign.test.d.ts.map +1 -0
  63. package/dist/ts/test/mock/repositories/mock-memory-repository.basic.test.d.ts +2 -0
  64. package/dist/ts/test/mock/repositories/mock-memory-repository.basic.test.d.ts.map +1 -0
  65. package/dist/ts/test/mock/repositories/mock-memory-repository.bulk-upsert.test.d.ts +2 -0
  66. package/dist/ts/test/mock/repositories/mock-memory-repository.bulk-upsert.test.d.ts.map +1 -0
  67. package/dist/ts/test/mock/repositories/mock-memory-repository.count.test.d.ts +2 -0
  68. package/dist/ts/test/mock/repositories/mock-memory-repository.count.test.d.ts.map +1 -0
  69. package/dist/ts/test/mock/repositories/mock-memory-repository.custom-lookup.test.d.ts +1 -0
  70. package/dist/ts/test/mock/repositories/mock-memory-repository.custom-lookup.test.d.ts.map +1 -0
  71. package/dist/ts/test/mock/repositories/mock-memory-repository.d.ts +62 -0
  72. package/dist/ts/test/mock/repositories/mock-memory-repository.d.ts.map +1 -0
  73. package/dist/ts/test/mock/repositories/mock-memory-repository.search.test.d.ts +2 -0
  74. package/dist/ts/test/mock/repositories/mock-memory-repository.search.test.d.ts.map +1 -0
  75. package/dist/ts/test/mock/repositories/mock-memory-repository.trash.test.d.ts +2 -0
  76. package/dist/ts/test/mock/repositories/mock-memory-repository.trash.test.d.ts.map +1 -0
  77. package/dist/ts/test/mock/repositories/mock-memory-repository.upsert.test.d.ts +2 -0
  78. package/dist/ts/test/mock/repositories/mock-memory-repository.upsert.test.d.ts.map +1 -0
  79. package/package.json +45 -42
  80. package/src/application/model-controller.test.ts +694 -0
  81. package/src/application/model-controller.ts +135 -0
  82. package/src/application/read-only-model-controller.test.ts +335 -0
  83. package/src/application/read-only-model-controller.ts +61 -0
  84. package/src/domain/events/domain-event.test.ts +82 -0
  85. package/src/domain/events/domain-event.ts +69 -0
  86. package/src/domain/events/event-types.ts +34 -0
  87. package/src/domain/events/mutation-event.test.ts +38 -0
  88. package/src/domain/events/mutation-event.ts +8 -0
  89. package/src/domain/events/query-event.test.ts +28 -0
  90. package/src/domain/events/query-event.ts +8 -0
  91. package/src/domain/events/request-event.test.ts +38 -0
  92. package/src/domain/events/request-event.ts +32 -0
  93. package/src/domain/interfaces/repository.ts +136 -0
  94. package/src/domain/models/pagination.ts +28 -0
  95. package/src/domain/services/base-model-service.ts +54 -0
  96. package/src/domain/services/model-service-args.ts +9 -0
  97. package/src/domain/services/model-service.normalization.test.ts +704 -0
  98. package/src/domain/services/model-service.test.ts +940 -0
  99. package/src/domain/services/model-service.ts +432 -0
  100. package/src/domain/services/read-only-model-service.test.ts +828 -0
  101. package/src/domain/services/read-only-model-service.ts +178 -0
  102. package/src/index.ts +17 -4
  103. package/src/shared/utils/schema-inference.ts +26 -0
  104. package/src/shared/utils/schema-inheritance.ts +28 -0
  105. package/src/test/mock/models/mock-book-models.ts +78 -0
  106. package/src/test/mock/repositories/mock-memory-repository.assign.test.ts +215 -0
  107. package/src/test/mock/repositories/mock-memory-repository.basic.test.ts +129 -0
  108. package/src/test/mock/repositories/mock-memory-repository.bulk-upsert.test.ts +159 -0
  109. package/src/test/mock/repositories/mock-memory-repository.count.test.ts +98 -0
  110. package/src/test/mock/repositories/mock-memory-repository.custom-lookup.test.ts +0 -0
  111. package/src/test/mock/repositories/mock-memory-repository.search.test.ts +265 -0
  112. package/src/test/mock/repositories/mock-memory-repository.trash.test.ts +736 -0
  113. package/src/test/mock/repositories/mock-memory-repository.ts +401 -0
  114. package/src/test/mock/repositories/mock-memory-repository.upsert.test.ts +108 -0
  115. package/dist/databaseConnection.d.ts +0 -24
  116. package/dist/datastoreAbstract.d.ts +0 -37
  117. package/dist/declaro-data.cjs +0 -1
  118. package/dist/declaro-data.mjs +0 -250
  119. package/dist/hydrateEntity.d.ts +0 -8
  120. package/dist/index.d.ts +0 -4
  121. package/dist/serverConnection.d.ts +0 -15
  122. package/dist/trackedStatus.d.ts +0 -15
  123. package/src/databaseConnection.ts +0 -137
  124. package/src/datastoreAbstract.ts +0 -190
  125. package/src/hydrateEntity.ts +0 -36
  126. package/src/placeholder.test.ts +0 -7
  127. package/src/serverConnection.ts +0 -74
  128. package/src/trackedStatus.ts +0 -35
  129. package/tsconfig.json +0 -10
  130. package/vite.config.ts +0 -23
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-only-model-service.d.ts","sourceRoot":"","sources":["../../../../src/domain/services/read-only-model-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,eAAe,CAAA;AAC1D,OAAO,KAAK,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,SAAS,EACZ,MAAM,qCAAqC,CAAA;AAG5C,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE5D;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,cAAc;IAChD;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CAC3B;AACD,MAAM,WAAW,cAAc,CAAC,OAAO,SAAS,cAAc,CAAE,SAAQ,cAAc;IAClF,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,IAAI,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,qBAAa,oBAAoB,CAAC,OAAO,SAAS,cAAc,CAAE,SAAQ,gBAAgB,CAAC,OAAO,CAAC;IAC/F;;;;;;OAMG;IACG,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAIlF;;;;;;;OAOG;IACG,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAIpF;;;;;OAKG;IACG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAqB/F;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IAqBxG;;;;;OAKG;IACG,MAAM,CACR,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAClC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAyBvC;;;;OAIG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAqBlG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=read-only-model-service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-only-model-service.test.d.ts","sourceRoot":"","sources":["../../../../src/domain/services/read-only-model-service.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ export * from './application/model-controller';
2
+ export * from './application/read-only-model-controller';
3
+ export * from './domain/events/domain-event';
4
+ export * from './domain/events/event-types';
5
+ export * from './domain/events/mutation-event';
6
+ export * from './domain/events/query-event';
7
+ export * from './domain/events/request-event';
8
+ export * from './domain/interfaces/repository';
9
+ export * from './domain/models/pagination';
10
+ export * from './domain/services/base-model-service';
11
+ export * from './domain/services/model-service';
12
+ export * from './domain/services/model-service-args';
13
+ export * from './domain/services/read-only-model-service';
14
+ export * from './shared/utils/schema-inference';
15
+ export * from './shared/utils/schema-inheritance';
16
+ export * from './test/mock/models/mock-book-models';
17
+ export * from './test/mock/repositories/mock-memory-repository';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0CAA0C,CAAA;AACxD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sCAAsC,CAAA;AACpD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sCAAsC,CAAA;AACpD,cAAc,2CAA2C,CAAA;AACzD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,mCAAmC,CAAA;AACjD,cAAc,qCAAqC,CAAA;AACnD,cAAc,iDAAiD,CAAA"}
@@ -0,0 +1,23 @@
1
+ import type { AnyModelSchema, InferModelInput, InferModelOutput } from '@declaro/core';
2
+ import type { IPagination } from '../../domain/models/pagination';
3
+ export interface ISearchResults<T> {
4
+ results: T[];
5
+ pagination: IPagination;
6
+ }
7
+ export type InferLookup<TSchema extends AnyModelSchema> = InferModelInput<TSchema['definition']['lookup']>;
8
+ export type InferDetail<TSchema extends AnyModelSchema> = InferModelOutput<TSchema['definition']['detail']>;
9
+ export type InferFilters<TSchema extends AnyModelSchema> = InferModelInput<TSchema['definition']['filters']>;
10
+ export type InferSummary<TSchema extends AnyModelSchema> = InferModelOutput<TSchema['definition']['summary']>;
11
+ export type InferSort<TSchema extends AnyModelSchema> = InferModelInput<TSchema['definition']['sort']>;
12
+ export type InferInput<TSchema extends AnyModelSchema> = InferModelInput<TSchema['definition']['input']>;
13
+ export type InferSearchResults<TSchema extends AnyModelSchema> = ISearchResults<InferSummary<TSchema>>;
14
+ export type InferEntityMetadata<TSchema extends AnyModelSchema> = ReturnType<TSchema['getEntityMetadata']>;
15
+ export type InferPrimaryKeyType<TSchema extends AnyModelSchema> = InferLookup<TSchema>[InferEntityMetadata<TSchema>['primaryKey']];
16
+ export type InferSummarySchema<TSchema extends AnyModelSchema> = TSchema['definition']['summary']['schema'];
17
+ export type InferDetailSchema<TSchema extends AnyModelSchema> = TSchema['definition']['detail']['schema'];
18
+ export type InferLookupSchema<TSchema extends AnyModelSchema> = TSchema['definition']['lookup']['schema'];
19
+ export type InferInputSchema<TSchema extends AnyModelSchema> = TSchema['definition']['input']['schema'];
20
+ export type InferFiltersSchema<TSchema extends AnyModelSchema> = TSchema['definition']['filters']['schema'];
21
+ export type InferSortSchema<TSchema extends AnyModelSchema> = TSchema['definition']['sort']['schema'];
22
+ export type InferSearchResultsSchema<TSchema extends AnyModelSchema> = TSchema['definition']['search']['schema'];
23
+ //# sourceMappingURL=schema-inference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-inference.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/schema-inference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAEjE,MAAM,WAAW,cAAc,CAAC,CAAC;IAC7B,OAAO,EAAE,CAAC,EAAE,CAAA;IACZ,UAAU,EAAE,WAAW,CAAA;CAC1B;AAED,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,cAAc,IAAI,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC1G,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,cAAc,IAAI,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC3G,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,cAAc,IAAI,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;AAC5G,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,cAAc,IAAI,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;AAC7G,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,cAAc,IAAI,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AACtG,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,cAAc,IAAI,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AACxG,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,cAAc,IAAI,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;AACtG,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,cAAc,IAAI,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAA;AAC1G,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,cAAc,IAC1D,WAAW,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA;AAEpE,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAA;AAC3G,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;AACzG,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;AACzG,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAA;AACvG,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAA;AAC3G,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAA;AACrG,MAAM,MAAM,wBAAwB,CAAC,OAAO,SAAS,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA"}
@@ -0,0 +1,24 @@
1
+ import type { AnyModelSchema, Model, ModelSchema } from '@declaro/core';
2
+ import type { InferEntityMetadata } from './schema-inference';
3
+ /**
4
+ * Represents a child schema that inherits from a parent schema.
5
+ * This is useful for creating schemas that extend the functionality of an existing schema.
6
+ * It replaces the schema name and all model names with a string type.
7
+ *
8
+ * @warning This type is intended for use in generic types. In most cases, you should use concrete schemas for inheritance for best type inference.
9
+ *
10
+ * @template TSchema - The parent schema type.
11
+ * @example
12
+ * ```ts
13
+ * import { ModelSchema, ChildSchema } from '@declaro/core';
14
+ *
15
+ * export class ParentService<TSchema extends ChildSchema<typeof ParentSchema>> extends ModelService<TSchema> {
16
+ * constructor(args: IModelServiceArgs<TSchema>) {
17
+ * super(args);
18
+ * }
19
+ * }
20
+ */
21
+ export type ChildSchema<TSchema extends AnyModelSchema> = ModelSchema<string, {
22
+ [K in keyof TSchema['definition']]: Model<string, TSchema['definition'][K]['schema']>;
23
+ }, InferEntityMetadata<TSchema>>;
24
+ //# sourceMappingURL=schema-inheritance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-inheritance.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/schema-inheritance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,cAAc,IAAI,WAAW,CACjE,MAAM,EACN;KACK,CAAC,IAAI,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CACxF,EACD,mBAAmB,CAAC,OAAO,CAAC,CAC/B,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { ModelSchema } from '@declaro/core';
2
+ import { ZodModel } from '@declaro/zod';
3
+ import { z } from 'zod/v4';
4
+ import type { InferFilters, InferLookup, InferDetail, InferSummary, InferSort, InferInput, InferSearchResults, InferEntityMetadata } from '../../../shared/utils/schema-inference';
5
+ export declare const MockBookSchema: ModelSchema<"Book", {
6
+ lookup: ZodModel<"BookLookup", z.ZodObject<{
7
+ id: z.ZodNumber;
8
+ }, z.core.$strip>>;
9
+ detail: ZodModel<"BookDetail", z.ZodObject<{
10
+ id: z.ZodNumber;
11
+ title: z.ZodString;
12
+ author: z.ZodString;
13
+ publishedDate: z.ZodCoercedDate<unknown>;
14
+ }, z.core.$strip>>;
15
+ filters: ZodModel<"BookFilters", z.ZodObject<{
16
+ text: z.ZodOptional<z.ZodString>;
17
+ }, z.core.$strip>>;
18
+ summary: ZodModel<"BookSummary", z.ZodObject<{
19
+ id: z.ZodNumber;
20
+ title: z.ZodString;
21
+ author: z.ZodString;
22
+ publishedDate: z.ZodCoercedDate<unknown>;
23
+ }, z.core.$strip>>;
24
+ sort: ZodModel<"BookSort", z.ZodArray<z.ZodObject<import("@declaro/zod").SortObjectShape<"title" | "author">, z.core.$strip>>>;
25
+ input: ZodModel<"BookInput", z.ZodObject<{
26
+ id: z.ZodOptional<z.ZodNumber>;
27
+ title: z.ZodString;
28
+ author: z.ZodString;
29
+ publishedDate: z.ZodCoercedDate<unknown>;
30
+ }, z.core.$strip>>;
31
+ }, {
32
+ primaryKey: "id";
33
+ }>;
34
+ export type MockBookFilters = InferFilters<typeof MockBookSchema>;
35
+ export type MockBookLookup = InferLookup<typeof MockBookSchema>;
36
+ export type MockBookDetail = InferDetail<typeof MockBookSchema>;
37
+ export type MockBookSummary = InferSummary<typeof MockBookSchema>;
38
+ export type MockBookSort = InferSort<typeof MockBookSchema>;
39
+ export type MockBookInput = InferInput<typeof MockBookSchema>;
40
+ export type MockBookSearchResults = InferSearchResults<typeof MockBookSchema>;
41
+ export type MockBookEntityMetadata = InferEntityMetadata<typeof MockBookSchema>;
42
+ //# sourceMappingURL=mock-book-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-book-models.d.ts","sourceRoot":"","sources":["../../../../../src/test/mock/models/mock-book-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,KAAK,EACR,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACtB,MAAM,wCAAwC,CAAA;AAE/C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDrB,CAAA;AAEN,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAA;AACjE,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,cAAc,CAAC,CAAA;AAC/D,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,cAAc,CAAC,CAAA;AAC/D,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAA;AACjE,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,cAAc,CAAC,CAAA;AAC3D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAC7D,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,OAAO,cAAc,CAAC,CAAA;AAC7E,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,OAAO,cAAc,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mock-memory-repository.assign.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-memory-repository.assign.test.d.ts","sourceRoot":"","sources":["../../../../../src/test/mock/repositories/mock-memory-repository.assign.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mock-memory-repository.basic.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-memory-repository.basic.test.d.ts","sourceRoot":"","sources":["../../../../../src/test/mock/repositories/mock-memory-repository.basic.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mock-memory-repository.bulk-upsert.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-memory-repository.bulk-upsert.test.d.ts","sourceRoot":"","sources":["../../../../../src/test/mock/repositories/mock-memory-repository.bulk-upsert.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mock-memory-repository.count.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-memory-repository.count.test.d.ts","sourceRoot":"","sources":["../../../../../src/test/mock/repositories/mock-memory-repository.count.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=mock-memory-repository.custom-lookup.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-memory-repository.custom-lookup.test.d.ts","sourceRoot":"","sources":["../../../../../src/test/mock/repositories/mock-memory-repository.custom-lookup.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,62 @@
1
+ import type { AnyModelSchema, IModelEntityMetadata } from '@declaro/core';
2
+ import type { IRepository } from '../../../domain/interfaces/repository';
3
+ import type { InferDetail, InferFilters, InferInput, InferLookup, InferSearchResults, InferSummary } from '../../../shared/utils/schema-inference';
4
+ import type { ILoadOptions, ISearchOptions } from '../../../domain/services/read-only-model-service';
5
+ import type { ICreateOptions, IUpdateOptions } from '../../../domain/services/model-service';
6
+ export interface IMockMemoryRepositoryArgs<TSchema extends AnyModelSchema> {
7
+ schema: TSchema;
8
+ lookup?: (data: InferDetail<TSchema>, lookup: InferLookup<TSchema>) => boolean;
9
+ filter?: (data: InferSummary<TSchema>, filters: InferFilters<TSchema>) => boolean;
10
+ assign?: (data: InferDetail<TSchema>, input: InferInput<TSchema>) => InferDetail<TSchema>;
11
+ }
12
+ export declare class MockMemoryRepository<TSchema extends AnyModelSchema> implements IRepository<TSchema> {
13
+ protected args: IMockMemoryRepositoryArgs<TSchema>;
14
+ protected data: Map<string, InferDetail<TSchema>>;
15
+ protected trash: Map<string, InferDetail<TSchema>>;
16
+ protected entityMetadata: IModelEntityMetadata;
17
+ protected nextId: number;
18
+ constructor(args: IMockMemoryRepositoryArgs<TSchema>);
19
+ private findOne;
20
+ /**
21
+ * Find an item and return both the item and its key
22
+ * @param lookup - The lookup criteria
23
+ * @param map - The map to search in
24
+ * @returns Object containing the item and its key, or undefined if not found
25
+ */
26
+ private findOneWithKey;
27
+ /**
28
+ * Loads a single item by lookup criteria.
29
+ * @param input - The lookup criteria.
30
+ * @param options - Optional load options including removedOnly and includeRemoved.
31
+ * @returns The found item or null if not found.
32
+ */
33
+ load(input: InferLookup<TSchema>, options?: ILoadOptions): Promise<InferDetail<TSchema> | null>;
34
+ loadMany(inputs: InferLookup<TSchema>[]): Promise<InferDetail<TSchema>[]>;
35
+ search(input: InferFilters<TSchema>, options?: ISearchOptions<TSchema>): Promise<InferSearchResults<TSchema>>;
36
+ remove(lookup: InferLookup<TSchema>): Promise<InferSummary<TSchema>>;
37
+ restore(lookup: InferLookup<TSchema>): Promise<InferSummary<TSchema>>;
38
+ create(input: InferInput<TSchema>): Promise<InferDetail<TSchema>>;
39
+ update(lookup: InferLookup<TSchema>, input: InferInput<TSchema>): Promise<InferDetail<TSchema>>;
40
+ count(search: InferFilters<TSchema>, options?: ISearchOptions<TSchema> | undefined): Promise<number>;
41
+ upsert(input: InferInput<TSchema>, options?: ICreateOptions | IUpdateOptions): Promise<InferDetail<TSchema>>;
42
+ bulkUpsert(inputs: InferInput<TSchema>[], options?: ICreateOptions | IUpdateOptions): Promise<InferDetail<TSchema>[]>;
43
+ permanentlyDelete(lookup: InferLookup<TSchema>): Promise<InferSummary<TSchema>>;
44
+ permanentlyDeleteFromTrash(lookup: InferLookup<TSchema>): Promise<InferSummary<TSchema>>;
45
+ emptyTrash(filters?: InferFilters<TSchema>): Promise<number>;
46
+ /**
47
+ * Apply filtering logic to all items based on the provided search criteria
48
+ * @param input - The search/filter criteria
49
+ * @param options - Optional search options including removedOnly and includeRemoved
50
+ * @returns Filtered array of items
51
+ */
52
+ protected applyFilters(input: InferFilters<TSchema>, options?: ISearchOptions<TSchema>): InferDetail<TSchema>[];
53
+ /**
54
+ * Assign input data to existing data using the provided assign function or default Object.assign
55
+ * @param existingData - The existing data to merge with
56
+ * @param input - The input data to assign
57
+ * @returns The merged data
58
+ */
59
+ protected assignInput(existingData: InferDetail<TSchema>, input: InferInput<TSchema>): InferDetail<TSchema>;
60
+ protected generatePrimaryKey(): Promise<string | number>;
61
+ }
62
+ //# sourceMappingURL=mock-memory-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-memory-repository.d.ts","sourceRoot":"","sources":["../../../../../src/test/mock/repositories/mock-memory-repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mock-memory-repository.search.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-memory-repository.search.test.d.ts","sourceRoot":"","sources":["../../../../../src/test/mock/repositories/mock-memory-repository.search.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mock-memory-repository.trash.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-memory-repository.trash.test.d.ts","sourceRoot":"","sources":["../../../../../src/test/mock/repositories/mock-memory-repository.trash.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mock-memory-repository.upsert.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-memory-repository.upsert.test.d.ts","sourceRoot":"","sources":["../../../../../src/test/mock/repositories/mock-memory-repository.upsert.test.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,44 +1,47 @@
1
1
  {
2
- "name": "@declaro/data",
3
- "version": "2.0.0-beta.12",
4
- "description": "Database utils",
5
- "main": "dist/declaro-data.cjs",
6
- "module": "dist/declaro-data.mjs",
7
- "types": "dist/index.d.ts",
8
- "author": "Emmert Technology LLC",
9
- "license": "MIT",
10
- "publishConfig": {
11
- "access": "public"
12
- },
13
- "scripts": {
14
- "dev": "vite build --watch",
15
- "build": "vite build",
16
- "preview": "vite preview",
17
- "test": "vitest"
18
- },
19
- "devDependencies": {
20
- "@declaro/core": "^1.0.0",
21
- "@types/uuid": "^9.0.3",
22
- "@vitest/coverage-v8": "^0.32.2",
23
- "vite": "^4.4.2",
24
- "vite-plugin-dts": "^2.3.0",
25
- "vitest": "^0.32.2"
26
- },
27
- "dependencies": {
28
- "@mikro-orm/core": "~5.7.14",
29
- "@mikro-orm/postgresql": "~5.7.14",
30
- "pg-format": "^1.0.4"
31
- },
32
- "peerDependencies": {
33
- "@declaro/core": "^1.0.0-alpha.0"
34
- },
35
- "repository": {
36
- "type": "git",
37
- "url": "git+https://github.com/emmertio/declaro.git#main"
38
- },
39
- "bugs": {
40
- "url": "https://github.com/emmertio/declaro/issues"
41
- },
42
- "homepage": "https://github.com/emmertio/declaro/tree/main#readme",
43
- "gitHead": "06be92e98c8af0f81c1fbbf672f197f38346d449"
2
+ "name": "@declaro/data",
3
+ "version": "2.0.0-beta.121",
4
+ "description": "A data-mapper framework for managing application data across integrated systems.",
5
+ "main": "dist/node/index.cjs",
6
+ "module": "dist/node/index.js",
7
+ "types": "dist/ts/index.d.ts",
8
+ "type": "module",
9
+ "scripts": {
10
+ "dev": "bun run scripts/build.ts --watch",
11
+ "clean": "bun rimraf dist",
12
+ "build:typedefs": "bun tsc --emitDeclarationOnly --outDir dist/ts -p tsconfig.json",
13
+ "build:js": "bun run scripts/build.ts",
14
+ "build": "bun run clean && bun run build:js && bun run build:typedefs",
15
+ "test": "bun test",
16
+ "test:watch": "bun test --watch",
17
+ "typecheck": "bun tsc --noEmit"
18
+ },
19
+ "peerDependencies": {
20
+ "@declaro/auth": "^2.0.0-beta.50",
21
+ "@declaro/core": "^2.0.0-beta.50",
22
+ "@declaro/zod": "^2.0.0-beta.51"
23
+ },
24
+ "devDependencies": {
25
+ "@declaro/auth": "^2.0.0-beta.121",
26
+ "@declaro/core": "^2.0.0-beta.121",
27
+ "@declaro/zod": "^2.0.0-beta.121",
28
+ "crypto-browserify": "^3.12.1",
29
+ "typescript": "^5.8.3",
30
+ "uuid": "^11.1.0",
31
+ "zod": "^4.1.11"
32
+ },
33
+ "author": "Your Name",
34
+ "license": "MIT",
35
+ "files": [
36
+ "dist/**/*",
37
+ "src/**/*"
38
+ ],
39
+ "exports": {
40
+ "bun": "./src/index.ts",
41
+ "types": "./dist/ts/index.d.ts",
42
+ "import": "./dist/node/index.js",
43
+ "require": "./dist/node/index.cjs",
44
+ "browser": "./dist/browser/index.js"
45
+ },
46
+ "gitHead": "0901d02d5fb769186830bb104aca0c5b98080f4f"
44
47
  }