@objectql/core 1.1.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 (48) hide show
  1. package/CHANGELOG.md +4 -10
  2. package/dist/index.d.ts +14 -11
  3. package/dist/index.js +222 -34
  4. package/dist/index.js.map +1 -1
  5. package/dist/loader.d.ts +23 -5
  6. package/dist/loader.js +201 -9
  7. package/dist/loader.js.map +1 -1
  8. package/dist/repository.d.ts +3 -5
  9. package/dist/repository.js +107 -112
  10. package/dist/repository.js.map +1 -1
  11. package/jest.config.js +3 -0
  12. package/package.json +10 -7
  13. package/src/index.ts +261 -41
  14. package/src/loader.ts +194 -10
  15. package/src/repository.ts +123 -127
  16. package/test/action.test.ts +58 -0
  17. package/test/hook.test.ts +60 -0
  18. package/test/utils.ts +54 -0
  19. package/tsconfig.json +4 -3
  20. package/tsconfig.tsbuildinfo +1 -1
  21. package/README.md +0 -53
  22. package/dist/driver.d.ts +0 -17
  23. package/dist/driver.js +0 -3
  24. package/dist/driver.js.map +0 -1
  25. package/dist/metadata.d.ts +0 -104
  26. package/dist/metadata.js +0 -3
  27. package/dist/metadata.js.map +0 -1
  28. package/dist/query.d.ts +0 -10
  29. package/dist/query.js +0 -3
  30. package/dist/query.js.map +0 -1
  31. package/dist/registry.d.ts +0 -4
  32. package/dist/registry.js +0 -8
  33. package/dist/registry.js.map +0 -1
  34. package/dist/types.d.ts +0 -83
  35. package/dist/types.js +0 -6
  36. package/dist/types.js.map +0 -1
  37. package/src/driver.ts +0 -24
  38. package/src/metadata.ts +0 -143
  39. package/src/query.ts +0 -11
  40. package/src/registry.ts +0 -6
  41. package/src/types.ts +0 -115
  42. package/test/dynamic.test.ts +0 -34
  43. package/test/fixtures/project.action.ts +0 -6
  44. package/test/fixtures/project.object.yml +0 -41
  45. package/test/loader.test.ts +0 -22
  46. package/test/metadata.test.ts +0 -49
  47. package/test/mock-driver.ts +0 -86
  48. package/test/repository.test.ts +0 -150
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";;;AAWA,8CASC;AApBD,yCAA8C;AAE9C,iDAA2F;AAE3F,MAAa,cAAe,SAAQ,yBAAU;IAC1C,YAAY,QAA0B;QAClC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAA,kCAAuB,EAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACJ;AALD,wCAKC;AAED,SAAgB,iBAAiB,CAAC,GAAW;IACzC,MAAM,QAAQ,GAAG,IAAI,2BAAgB,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,MAAM,GAAiC,EAAE,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAe,QAAQ,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,4 @@
1
- import { ObjectQLContext, IObjectQL } from './types';
2
- import { ObjectConfig } from './metadata';
3
- import { UnifiedQuery } from './query';
1
+ import { ObjectQLContext, IObjectQL, ObjectConfig, UnifiedQuery } from '@objectql/types';
4
2
  export declare class ObjectRepository {
5
3
  private objectName;
6
4
  private context;
@@ -9,7 +7,7 @@ export declare class ObjectRepository {
9
7
  private getDriver;
10
8
  private getOptions;
11
9
  getSchema(): ObjectConfig;
12
- private executeHook;
10
+ private getHookAPI;
13
11
  find(query?: UnifiedQuery): Promise<any[]>;
14
12
  findOne(idOrQuery: string | number | UnifiedQuery): Promise<any>;
15
13
  count(filters: any): Promise<number>;
@@ -22,5 +20,5 @@ export declare class ObjectRepository {
22
20
  createMany(data: any[]): Promise<any>;
23
21
  updateMany(filters: any, data: any): Promise<any>;
24
22
  deleteMany(filters: any): Promise<any>;
25
- call(actionName: string, params: any): Promise<any>;
23
+ execute(actionName: string, id: string | number | undefined, params: any): Promise<any>;
26
24
  }
@@ -25,88 +25,45 @@ class ObjectRepository {
25
25
  }
26
26
  return obj;
27
27
  }
28
- // === Hook Execution Logic ===
29
- async executeHook(hookName, op, dataOrQuery) {
30
- if (this.context.ignoreTriggers)
31
- return;
32
- const obj = this.getSchema();
33
- if (!obj.listeners || !obj.listeners[hookName])
34
- return;
35
- const hookFn = obj.listeners[hookName];
36
- // Construct HookContext
37
- const hookContext = {
38
- ctx: this.context,
39
- entity: this.objectName,
40
- op: op,
41
- utils: {
42
- restrict: (criterion) => {
43
- if (op !== 'find' && op !== 'count') {
44
- throw new Error('utils.restrict is only available in query operations');
45
- }
46
- const query = dataOrQuery;
47
- if (!query.filters) {
48
- query.filters = [criterion];
49
- }
50
- else {
51
- // Enclose existing filters in implicit AND group by array structure logic or explicit 'and'
52
- // Implementation depends on how driver parses.
53
- // Safe approach: filters = [ [criterion], 'and', [existing] ] or similar.
54
- // For simplicity assuming array of terms means AND:
55
- query.filters.push(criterion);
56
- }
57
- }
58
- },
59
- getPreviousDoc: async () => {
60
- // For update/delete, we might need the ID to find the doc.
61
- // If doc has ID, use it.
62
- // This is simplistic; usually 'update' takes 'id', we need to capture it from arguments.
63
- if (op === 'create')
64
- return undefined;
65
- if (dataOrQuery._id || dataOrQuery.id) {
66
- return this.findOne(dataOrQuery._id || dataOrQuery.id);
67
- }
68
- return undefined;
69
- }
28
+ getHookAPI() {
29
+ return {
30
+ find: (obj, q) => this.context.object(obj).find(q),
31
+ findOne: (obj, id) => this.context.object(obj).findOne(id),
32
+ count: (obj, q) => this.context.object(obj).count(q),
33
+ create: (obj, data) => this.context.object(obj).create(data),
34
+ update: (obj, id, data) => this.context.object(obj).update(id, data),
35
+ delete: (obj, id) => this.context.object(obj).delete(id)
70
36
  };
71
- if (op === 'find' || op === 'count' || op === 'aggregate') {
72
- hookContext.query = dataOrQuery;
73
- }
74
- else {
75
- hookContext.doc = dataOrQuery;
76
- }
77
- // Pass ID manually if needed or attach to doc?
78
- // For strictness, getPreviousDoc needs the ID passed to the operation.
79
- // We'll rely on "doc" having the data being processed.
80
- await hookFn(hookContext);
81
37
  }
82
38
  async find(query = {}) {
83
- // Hooks: beforeFind
84
- await this.executeHook('beforeFind', 'find', query);
85
- // TODO: Apply basic filters like spaceId (could be done via a default generic hook too)
86
- const results = await this.getDriver().find(this.objectName, query, this.getOptions());
87
- // Hooks: afterFind
88
- // Not implemented in spec fully iterate results? usually for single doc or metadata
89
- // For performance, afterFind on list is rare or costly.
90
- if (this.getSchema().listeners?.afterFind && !this.context.ignoreTriggers) {
91
- const hookFn = this.getSchema().listeners.afterFind;
92
- // Executing per result or once? Spec says "HookContext" has "doc".
93
- // If finding list, might not match signature.
94
- // Implemented per-item for now (caution: performance).
95
- /*
96
- for (const item of results) {
97
- await this.executeHookForDoc('afterFind', 'find', item);
98
- }
99
- */
100
- }
101
- return results;
39
+ const hookCtx = {
40
+ ...this.context,
41
+ objectName: this.objectName,
42
+ operation: 'find',
43
+ api: this.getHookAPI(),
44
+ state: {},
45
+ query
46
+ };
47
+ await this.app.triggerHook('beforeFind', this.objectName, hookCtx);
48
+ // TODO: Apply basic filters like spaceId
49
+ const results = await this.getDriver().find(this.objectName, hookCtx.query || {}, this.getOptions());
50
+ hookCtx.result = results;
51
+ await this.app.triggerHook('afterFind', this.objectName, hookCtx);
52
+ return hookCtx.result;
102
53
  }
103
54
  async findOne(idOrQuery) {
104
55
  if (typeof idOrQuery === 'string' || typeof idOrQuery === 'number') {
105
- // Convert ID lookup to standard query to reuse 'find' hooks?
106
- // Or treat as specific op.
107
- // Let's rely on simple driver call but maybe wrap in object for hook consistency if needed.
108
- // For now, simple implementation:
109
- return this.getDriver().findOne(this.objectName, idOrQuery, undefined, this.getOptions());
56
+ const hookCtx = {
57
+ ...this.context,
58
+ objectName: this.objectName,
59
+ operation: 'find',
60
+ api: this.getHookAPI(), state: {}, query: { _id: idOrQuery }
61
+ };
62
+ await this.app.triggerHook('beforeFind', this.objectName, hookCtx);
63
+ const result = await this.getDriver().findOne(this.objectName, idOrQuery, hookCtx.query, this.getOptions());
64
+ hookCtx.result = result;
65
+ await this.app.triggerHook('afterFind', this.objectName, hookCtx);
66
+ return hookCtx.result;
110
67
  }
111
68
  else {
112
69
  const results = await this.find(idOrQuery);
@@ -114,41 +71,72 @@ class ObjectRepository {
114
71
  }
115
72
  }
116
73
  async count(filters) {
117
- // Can wrap filters in a query object for hook
118
- const query = { filters };
119
- await this.executeHook('beforeFind', 'count', query); // Reusing beforeFind logic often?
120
- return this.getDriver().count(this.objectName, query.filters, this.getOptions());
74
+ const hookCtx = {
75
+ ...this.context,
76
+ objectName: this.objectName,
77
+ operation: 'count',
78
+ api: this.getHookAPI(),
79
+ state: {},
80
+ query: filters
81
+ };
82
+ await this.app.triggerHook('beforeCount', this.objectName, hookCtx);
83
+ const result = await this.getDriver().count(this.objectName, hookCtx.query, this.getOptions());
84
+ hookCtx.result = result;
85
+ await this.app.triggerHook('afterCount', this.objectName, hookCtx);
86
+ return hookCtx.result;
121
87
  }
122
88
  async create(doc) {
89
+ const hookCtx = {
90
+ ...this.context,
91
+ objectName: this.objectName,
92
+ operation: 'create',
93
+ state: {},
94
+ api: this.getHookAPI(),
95
+ data: doc
96
+ };
97
+ await this.app.triggerHook('beforeCreate', this.objectName, hookCtx);
98
+ const finalDoc = hookCtx.data || doc;
123
99
  const obj = this.getSchema();
124
100
  if (this.context.userId)
125
- doc.created_by = this.context.userId;
101
+ finalDoc.created_by = this.context.userId;
126
102
  if (this.context.spaceId)
127
- doc.space_id = this.context.spaceId;
128
- await this.executeHook('beforeCreate', 'create', doc);
129
- const result = await this.getDriver().create(this.objectName, doc, this.getOptions());
130
- await this.executeHook('afterCreate', 'create', result);
131
- return result;
103
+ finalDoc.space_id = this.context.spaceId;
104
+ const result = await this.getDriver().create(this.objectName, finalDoc, this.getOptions());
105
+ hookCtx.result = result;
106
+ await this.app.triggerHook('afterCreate', this.objectName, hookCtx);
107
+ return hookCtx.result;
132
108
  }
133
109
  async update(id, doc, options) {
134
- // Attach ID to doc for hook context to know which record
135
- const docWithId = { ...doc, _id: id, id: id };
136
- await this.executeHook('beforeUpdate', 'update', docWithId);
137
- // Remove ID before sending to driver if driver doesn't like it in $set
138
- const { _id, id: _id2, ...cleanDoc } = docWithId;
139
- const result = await this.getDriver().update(this.objectName, id, cleanDoc, this.getOptions(options));
140
- // Result might be count or doc depending on driver.
141
- // If we want the updated doc for afterUpdate, we might need to fetch it if driver defaults to count.
142
- // Assuming result is the doc or we just pass the patch.
143
- await this.executeHook('afterUpdate', 'update', docWithId);
144
- return result;
110
+ const hookCtx = {
111
+ ...this.context,
112
+ objectName: this.objectName,
113
+ operation: 'update',
114
+ state: {},
115
+ api: this.getHookAPI(),
116
+ id,
117
+ data: doc,
118
+ isModified: (field) => hookCtx.data ? Object.prototype.hasOwnProperty.call(hookCtx.data, field) : false
119
+ };
120
+ await this.app.triggerHook('beforeUpdate', this.objectName, hookCtx);
121
+ const result = await this.getDriver().update(this.objectName, id, hookCtx.data, this.getOptions(options));
122
+ hookCtx.result = result;
123
+ await this.app.triggerHook('afterUpdate', this.objectName, hookCtx);
124
+ return hookCtx.result;
145
125
  }
146
126
  async delete(id) {
147
- const docWithId = { _id: id, id: id };
148
- await this.executeHook('beforeDelete', 'delete', docWithId);
127
+ const hookCtx = {
128
+ ...this.context,
129
+ objectName: this.objectName,
130
+ operation: 'delete',
131
+ state: {},
132
+ api: this.getHookAPI(),
133
+ id
134
+ };
135
+ await this.app.triggerHook('beforeDelete', this.objectName, hookCtx);
149
136
  const result = await this.getDriver().delete(this.objectName, id, this.getOptions());
150
- await this.executeHook('afterDelete', 'delete', docWithId);
151
- return result;
137
+ hookCtx.result = result;
138
+ await this.app.triggerHook('afterDelete', this.objectName, hookCtx);
139
+ return hookCtx.result;
152
140
  }
153
141
  async aggregate(query) {
154
142
  const driver = this.getDriver();
@@ -169,7 +157,6 @@ class ObjectRepository {
169
157
  return driver.findOneAndUpdate(this.objectName, filters, update, this.getOptions(options));
170
158
  }
171
159
  async createMany(data) {
172
- // TODO: Triggers per record?
173
160
  const driver = this.getDriver();
174
161
  if (!driver.createMany) {
175
162
  // Fallback
@@ -193,16 +180,24 @@ class ObjectRepository {
193
180
  throw new Error("Driver does not support deleteMany");
194
181
  return driver.deleteMany(this.objectName, filters, this.getOptions());
195
182
  }
196
- async call(actionName, params) {
197
- const obj = this.getSchema();
198
- const action = obj.actions?.[actionName];
199
- if (!action) {
200
- throw new Error(`Action '${actionName}' not found on object '${this.objectName}'`);
201
- }
202
- if (action.handler) {
203
- return action.handler(this.context, params);
204
- }
205
- throw new Error(`Action '${actionName}' has no handler`);
183
+ async execute(actionName, id, params) {
184
+ const api = {
185
+ find: (obj, q) => this.context.object(obj).find(q),
186
+ findOne: (obj, id) => this.context.object(obj).findOne(id),
187
+ count: (obj, q) => this.context.object(obj).count(q),
188
+ create: (obj, data) => this.context.object(obj).create(data),
189
+ update: (obj, id, data) => this.context.object(obj).update(id, data),
190
+ delete: (obj, id) => this.context.object(obj).delete(id)
191
+ };
192
+ const ctx = {
193
+ ...this.context,
194
+ objectName: this.objectName,
195
+ actionName,
196
+ id,
197
+ input: params,
198
+ api
199
+ };
200
+ return await this.app.executeAction(this.objectName, actionName, ctx);
206
201
  }
207
202
  }
208
203
  exports.ObjectRepository = ObjectRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IACzB,YACY,UAAkB,EAClB,OAAwB,EACxB,GAAc;QAFd,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAiB;QACxB,QAAG,GAAH,GAAG,CAAW;IACvB,CAAC;IAEI,SAAS;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,MAAM,cAAc,GAAG,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IAEO,UAAU,CAAC,QAAa,EAAE;QAC9B,OAAO;YACH,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;YAC3C,GAAG,KAAK;SACX,CAAC;IACN,CAAC;IAED,SAAS;QACL,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,UAAU,aAAa,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,UAAU;QACd,OAAO;YACH,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YAC5D,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC;YACpE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;SAC3D,CAAC;IACN,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAsB,EAAE;QAC/B,MAAM,OAAO,GAAyB;YAClC,GAAG,IAAI,CAAC,OAAO;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,MAAM;YACjB,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;YACtB,KAAK,EAAE,EAAE;YACT,KAAK;SACR,CAAC;QACF,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEnE,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAErG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;QACzB,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAElE,OAAO,OAAO,CAAC,MAAe,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAyC;QACnD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACjE,MAAM,OAAO,GAAyB;gBAClC,GAAG,IAAI,CAAC,OAAO;gBACf,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS,EAAE,MAAM;gBACjB,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,EAAiB,KAAK,EAAE,EAAE,EAAiB,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE;aAC7F,CAAC;YACF,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAEnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAE5G,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;YACxB,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAClE,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC9B,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAY;QACpB,MAAM,OAAO,GAAyB;YAClC,GAAG,IAAI,CAAC,OAAO;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,OAAO;YAClB,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;YACtB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,OAAO;SACjB,CAAC;QACF,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAE/F,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnE,OAAO,OAAO,CAAC,MAAgB,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAQ;QACjB,MAAM,OAAO,GAAwB;YACjC,GAAG,IAAI,CAAC,OAAO;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;YACtB,IAAI,EAAE,GAAG;SACZ,CAAC;QACF,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC;QAErC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAEnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAE3F,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAmB,EAAE,GAAQ,EAAE,OAAa;QACrD,MAAM,OAAO,GAAsB;YAC/B,GAAG,IAAI,CAAC,OAAO;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;YACtB,EAAE;YACF,IAAI,EAAE,GAAG;YACT,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;SAC1G,CAAC;QACF,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAE1G,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAmB;QAC5B,MAAM,OAAO,GAAwB;YACjC,GAAG,IAAI,CAAC,OAAO;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;YACtB,EAAE;SACL,CAAC;QACF,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAErF,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAU;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAE5E,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,OAAa;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAE1E,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAY,EAAE,MAAW,EAAE,OAAa;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,gBAAgB;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1F,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAW;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACrB,WAAW;YACX,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAY,EAAE,IAAS;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAY;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,EAA+B,EAAE,MAAW;QAC1E,MAAM,GAAG,GAAY;YACjB,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YAC5D,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC;YACpE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;SAC3D,CAAC;QAEF,MAAM,GAAG,GAAkB;YACvB,GAAG,IAAI,CAAC,OAAO;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU;YACV,EAAE;YACF,KAAK,EAAE,MAAM;YACb,GAAG;SACN,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;CACJ;AAjOD,4CAiOC"}
package/jest.config.js CHANGED
@@ -2,4 +2,7 @@ module.exports = {
2
2
  preset: 'ts-jest',
3
3
  testEnvironment: 'node',
4
4
  testMatch: ['**/test/**/*.test.ts'],
5
+ moduleNameMapper: {
6
+ '^@objectql/types$': '<rootDir>/../types/src',
7
+ },
5
8
  };
package/package.json CHANGED
@@ -1,15 +1,18 @@
1
1
  {
2
2
  "name": "@objectql/core",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
+ "dependencies": {
7
+ "fast-glob": "^3.3.2",
8
+ "js-yaml": "^4.1.1",
9
+ "@objectql/types": "1.2.0"
10
+ },
11
+ "devDependencies": {
12
+ "typescript": "^5.3.0"
13
+ },
6
14
  "scripts": {
7
15
  "build": "tsc",
8
16
  "test": "jest"
9
- },
10
- "dependencies": {
11
- "@objectql/metadata": "*",
12
- "fast-glob": "^3.3.2",
13
- "js-yaml": "^4.1.1"
14
17
  }
15
- }
18
+ }