@orchestr-sh/orchestr 1.2.1 → 1.4.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 (42) hide show
  1. package/README.md +176 -34
  2. package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts +96 -0
  3. package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts.map +1 -0
  4. package/dist/Database/Ensemble/Concerns/HasRelationships.js +145 -0
  5. package/dist/Database/Ensemble/Concerns/HasRelationships.js.map +1 -0
  6. package/dist/Database/Ensemble/Ensemble.d.ts +18 -1
  7. package/dist/Database/Ensemble/Ensemble.d.ts.map +1 -1
  8. package/dist/Database/Ensemble/Ensemble.js +45 -1
  9. package/dist/Database/Ensemble/Ensemble.js.map +1 -1
  10. package/dist/Database/Ensemble/EnsembleBuilder.d.ts +19 -2
  11. package/dist/Database/Ensemble/EnsembleBuilder.d.ts.map +1 -1
  12. package/dist/Database/Ensemble/EnsembleBuilder.js +105 -4
  13. package/dist/Database/Ensemble/EnsembleBuilder.js.map +1 -1
  14. package/dist/Database/Ensemble/Relations/BelongsTo.d.ts +92 -0
  15. package/dist/Database/Ensemble/Relations/BelongsTo.d.ts.map +1 -0
  16. package/dist/Database/Ensemble/Relations/BelongsTo.js +174 -0
  17. package/dist/Database/Ensemble/Relations/BelongsTo.js.map +1 -0
  18. package/dist/Database/Ensemble/Relations/HasMany.d.ts +100 -0
  19. package/dist/Database/Ensemble/Relations/HasMany.d.ts.map +1 -0
  20. package/dist/Database/Ensemble/Relations/HasMany.js +199 -0
  21. package/dist/Database/Ensemble/Relations/HasMany.js.map +1 -0
  22. package/dist/Database/Ensemble/Relations/HasOne.d.ts +76 -0
  23. package/dist/Database/Ensemble/Relations/HasOne.d.ts.map +1 -0
  24. package/dist/Database/Ensemble/Relations/HasOne.js +142 -0
  25. package/dist/Database/Ensemble/Relations/HasOne.js.map +1 -0
  26. package/dist/Database/Ensemble/Relations/Relation.d.ts +114 -0
  27. package/dist/Database/Ensemble/Relations/Relation.d.ts.map +1 -0
  28. package/dist/Database/Ensemble/Relations/Relation.js +137 -0
  29. package/dist/Database/Ensemble/Relations/Relation.js.map +1 -0
  30. package/dist/Database/Ensemble/Relations/index.d.ts +10 -0
  31. package/dist/Database/Ensemble/Relations/index.d.ts.map +1 -0
  32. package/dist/Database/Ensemble/Relations/index.js +17 -0
  33. package/dist/Database/Ensemble/Relations/index.js.map +1 -0
  34. package/dist/Support/Injectable.d.ts +21 -0
  35. package/dist/Support/Injectable.d.ts.map +1 -0
  36. package/dist/Support/Injectable.js +30 -0
  37. package/dist/Support/Injectable.js.map +1 -0
  38. package/dist/index.d.ts +4 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +13 -1
  41. package/dist/index.js.map +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ /**
3
+ * Relation Base Class
4
+ *
5
+ * Base class for all relationship types
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.Relation = void 0;
9
+ class Relation {
10
+ /**
11
+ * The Ensemble query builder instance
12
+ */
13
+ query;
14
+ /**
15
+ * The parent Ensemble instance
16
+ */
17
+ parent;
18
+ /**
19
+ * The related Ensemble instance
20
+ */
21
+ related;
22
+ /**
23
+ * Indicates if the relation is adding constraints
24
+ */
25
+ static constraints = true;
26
+ /**
27
+ * Create a new relation instance
28
+ */
29
+ constructor(query, parent) {
30
+ this.query = query;
31
+ this.parent = parent;
32
+ this.related = query['model'];
33
+ this.addConstraints();
34
+ }
35
+ /**
36
+ * Execute the query as a "select" statement
37
+ */
38
+ async get() {
39
+ return this.query.get();
40
+ }
41
+ /**
42
+ * Get the relationship for eager loading
43
+ */
44
+ async getEager() {
45
+ return this.get();
46
+ }
47
+ /**
48
+ * Touch all of the related models for the relationship
49
+ */
50
+ async touch() {
51
+ const column = this.related.getUpdatedAtColumn();
52
+ if (column) {
53
+ await this.rawUpdate({ [column]: new Date() });
54
+ }
55
+ }
56
+ /**
57
+ * Run a raw update against the base query
58
+ */
59
+ async rawUpdate(attributes = {}) {
60
+ return this.query.update(attributes);
61
+ }
62
+ /**
63
+ * Get all of the primary keys for an array of models
64
+ */
65
+ getKeys(models, key) {
66
+ return models.map((model) => {
67
+ const value = key ? model.getAttribute(key) : model.getKey();
68
+ return value;
69
+ }).filter((value) => value !== null && value !== undefined);
70
+ }
71
+ /**
72
+ * Get the underlying query for the relation
73
+ */
74
+ getQuery() {
75
+ return this.query;
76
+ }
77
+ /**
78
+ * Get the base query builder driving the Ensemble builder
79
+ */
80
+ getBaseQuery() {
81
+ return this.query;
82
+ }
83
+ /**
84
+ * Get the parent model of the relation
85
+ */
86
+ getParent() {
87
+ return this.parent;
88
+ }
89
+ /**
90
+ * Get the related model of the relation
91
+ */
92
+ getRelated() {
93
+ return this.related;
94
+ }
95
+ /**
96
+ * Get the name of the "created at" column
97
+ */
98
+ createdAt() {
99
+ return this.related.getCreatedAtColumn() || 'created_at';
100
+ }
101
+ /**
102
+ * Get the name of the "updated at" column
103
+ */
104
+ updatedAt() {
105
+ return this.related.getUpdatedAtColumn() || 'updated_at';
106
+ }
107
+ /**
108
+ * Get the fully qualified related table name
109
+ */
110
+ getRelatedTable() {
111
+ return this.related.getTable();
112
+ }
113
+ /**
114
+ * Get the fully qualified parent key name
115
+ */
116
+ getQualifiedParentKeyName() {
117
+ return `${this.parent.getTable()}.${this.parent.getKeyName()}`;
118
+ }
119
+ /**
120
+ * Get the fully qualified foreign key name
121
+ */
122
+ getQualifiedForeignKeyName(foreignKey) {
123
+ return `${this.related.getTable()}.${foreignKey}`;
124
+ }
125
+ /**
126
+ * Handle dynamic method calls to the relationship
127
+ */
128
+ __call(method, parameters) {
129
+ const result = this.query[method](...parameters);
130
+ if (result === this.query) {
131
+ return this;
132
+ }
133
+ return result;
134
+ }
135
+ }
136
+ exports.Relation = Relation;
137
+ //# sourceMappingURL=Relation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Relation.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Relations/Relation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Relations Index
3
+ *
4
+ * Export all relationship classes
5
+ */
6
+ export { Relation } from './Relation';
7
+ export { HasOne } from './HasOne';
8
+ export { HasMany } from './HasMany';
9
+ export { BelongsTo } from './BelongsTo';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Relations/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Relations Index
4
+ *
5
+ * Export all relationship classes
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.BelongsTo = exports.HasMany = exports.HasOne = exports.Relation = void 0;
9
+ var Relation_1 = require("./Relation");
10
+ Object.defineProperty(exports, "Relation", { enumerable: true, get: function () { return Relation_1.Relation; } });
11
+ var HasOne_1 = require("./HasOne");
12
+ Object.defineProperty(exports, "HasOne", { enumerable: true, get: function () { return HasOne_1.HasOne; } });
13
+ var HasMany_1 = require("./HasMany");
14
+ Object.defineProperty(exports, "HasMany", { enumerable: true, get: function () { return HasMany_1.HasMany; } });
15
+ var BelongsTo_1 = require("./BelongsTo");
16
+ Object.defineProperty(exports, "BelongsTo", { enumerable: true, get: function () { return BelongsTo_1.BelongsTo; } });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Relations/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Injectable Decorator
3
+ *
4
+ * Marks a class as injectable, enabling TypeScript to emit decorator metadata
5
+ * required for automatic dependency injection via reflect-metadata.
6
+ *
7
+ * This decorator does nothing at runtime - it only triggers TypeScript's
8
+ * emitDecoratorMetadata feature to include parameter type information.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * @Injectable()
13
+ * export class UserController extends Controller {
14
+ * constructor(private userService: UserService) {
15
+ * super();
16
+ * }
17
+ * }
18
+ * ```
19
+ */
20
+ export declare function Injectable(): ClassDecorator;
21
+ //# sourceMappingURL=Injectable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Injectable.d.ts","sourceRoot":"","sources":["../../src/Support/Injectable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,IAAI,cAAc,CAM3C"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Injectable = Injectable;
4
+ /**
5
+ * Injectable Decorator
6
+ *
7
+ * Marks a class as injectable, enabling TypeScript to emit decorator metadata
8
+ * required for automatic dependency injection via reflect-metadata.
9
+ *
10
+ * This decorator does nothing at runtime - it only triggers TypeScript's
11
+ * emitDecoratorMetadata feature to include parameter type information.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * @Injectable()
16
+ * export class UserController extends Controller {
17
+ * constructor(private userService: UserService) {
18
+ * super();
19
+ * }
20
+ * }
21
+ * ```
22
+ */
23
+ function Injectable() {
24
+ return (target) => {
25
+ // This decorator is intentionally empty.
26
+ // Its sole purpose is to trigger TypeScript's emitDecoratorMetadata
27
+ // feature, which adds reflection metadata to the class constructor.
28
+ };
29
+ }
30
+ //# sourceMappingURL=Injectable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Injectable.js","sourceRoot":"","sources":["../../src/Support/Injectable.ts"],"names":[],"mappings":";;AAmBA,gCAMC;AAzBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,UAAU;IACxB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,yCAAyC;QACzC,oEAAoE;QACpE,oEAAoE;IACtE,CAAC,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export { Controller } from './Routing/Controller';
14
14
  export { Facade } from './Support/Facade';
15
15
  export { Route } from './Facades/Route';
16
16
  export { loadRoutes, base_path, routes_path } from './Support/helpers';
17
+ export { Injectable } from './Support/Injectable';
17
18
  export { RouteServiceProvider } from './Providers/RouteServiceProvider';
18
19
  export { DatabaseServiceProvider } from './Database/DatabaseServiceProvider';
19
20
  export { DatabaseManager } from './Database/DatabaseManager';
@@ -26,9 +27,12 @@ export { Ensemble } from './Database/Ensemble/Ensemble';
26
27
  export { EnsembleBuilder } from './Database/Ensemble/EnsembleBuilder';
27
28
  export { EnsembleCollection } from './Database/Ensemble/EnsembleCollection';
28
29
  export { softDeletes } from './Database/Ensemble/SoftDeletes';
30
+ export { Relation, HasOne, HasMany, BelongsTo } from './Database/Ensemble/Relations';
31
+ export { HasRelationshipsMixin } from './Database/Ensemble/Concerns/HasRelationships';
29
32
  export type { HasAttributes, CastType, AttributeMutator, AttributeAccessor } from './Database/Ensemble/Concerns/HasAttributes';
30
33
  export type { HasTimestamps } from './Database/Ensemble/Concerns/HasTimestamps';
31
34
  export type { SoftDeletes } from './Database/Ensemble/SoftDeletes';
35
+ export type { RelationshipConfig } from './Database/Ensemble/Concerns/HasRelationships';
32
36
  export type { DatabaseAdapter, DatabaseConfig, QueryResult } from './Database/Contracts/DatabaseAdapter';
33
37
  export type { QueryBuilderInterface, WhereOperator, OrderDirection, JoinType, WhereClause, JoinClause, OrderByClause, } from './Database/Contracts/QueryBuilderInterface';
34
38
  export type { Schema, Blueprint, ColumnDefinition, ForeignKeyDefinition, } from './Database/Contracts/Schema';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGpE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/H,YAAY,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGnE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACzG,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACV,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGpE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAGrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAGtF,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/H,YAAY,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AAGxF,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACzG,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACV,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * Main exports
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.softDeletes = exports.EnsembleCollection = exports.EnsembleBuilder = exports.Ensemble = exports.DB = exports.DrizzleAdapter = exports.raw = exports.Expression = exports.QueryBuilder = exports.Connection = exports.DatabaseManager = exports.DatabaseServiceProvider = exports.RouteServiceProvider = exports.routes_path = exports.base_path = exports.loadRoutes = exports.Route = exports.Facade = exports.Controller = exports.Response = exports.Request = exports.RouteClass = exports.Router = exports.Container = exports.Kernel = exports.ServiceProvider = exports.Application = void 0;
7
+ exports.HasRelationshipsMixin = exports.BelongsTo = exports.HasMany = exports.HasOne = exports.Relation = exports.softDeletes = exports.EnsembleCollection = exports.EnsembleBuilder = exports.Ensemble = exports.DB = exports.DrizzleAdapter = exports.raw = exports.Expression = exports.QueryBuilder = exports.Connection = exports.DatabaseManager = exports.DatabaseServiceProvider = exports.RouteServiceProvider = exports.Injectable = exports.routes_path = exports.base_path = exports.loadRoutes = exports.Route = exports.Facade = exports.Controller = exports.Response = exports.Request = exports.RouteClass = exports.Router = exports.Container = exports.Kernel = exports.ServiceProvider = exports.Application = void 0;
8
8
  // Foundation
9
9
  var Application_1 = require("./Foundation/Application");
10
10
  Object.defineProperty(exports, "Application", { enumerable: true, get: function () { return Application_1.Application; } });
@@ -36,6 +36,9 @@ var helpers_1 = require("./Support/helpers");
36
36
  Object.defineProperty(exports, "loadRoutes", { enumerable: true, get: function () { return helpers_1.loadRoutes; } });
37
37
  Object.defineProperty(exports, "base_path", { enumerable: true, get: function () { return helpers_1.base_path; } });
38
38
  Object.defineProperty(exports, "routes_path", { enumerable: true, get: function () { return helpers_1.routes_path; } });
39
+ // Decorators
40
+ var Injectable_1 = require("./Support/Injectable");
41
+ Object.defineProperty(exports, "Injectable", { enumerable: true, get: function () { return Injectable_1.Injectable; } });
39
42
  // Providers
40
43
  var RouteServiceProvider_1 = require("./Providers/RouteServiceProvider");
41
44
  Object.defineProperty(exports, "RouteServiceProvider", { enumerable: true, get: function () { return RouteServiceProvider_1.RouteServiceProvider; } });
@@ -65,4 +68,13 @@ var EnsembleCollection_1 = require("./Database/Ensemble/EnsembleCollection");
65
68
  Object.defineProperty(exports, "EnsembleCollection", { enumerable: true, get: function () { return EnsembleCollection_1.EnsembleCollection; } });
66
69
  var SoftDeletes_1 = require("./Database/Ensemble/SoftDeletes");
67
70
  Object.defineProperty(exports, "softDeletes", { enumerable: true, get: function () { return SoftDeletes_1.softDeletes; } });
71
+ // Ensemble Relations
72
+ var Relations_1 = require("./Database/Ensemble/Relations");
73
+ Object.defineProperty(exports, "Relation", { enumerable: true, get: function () { return Relations_1.Relation; } });
74
+ Object.defineProperty(exports, "HasOne", { enumerable: true, get: function () { return Relations_1.HasOne; } });
75
+ Object.defineProperty(exports, "HasMany", { enumerable: true, get: function () { return Relations_1.HasMany; } });
76
+ Object.defineProperty(exports, "BelongsTo", { enumerable: true, get: function () { return Relations_1.BelongsTo; } });
77
+ // Ensemble Concerns
78
+ var HasRelationships_1 = require("./Database/Ensemble/Concerns/HasRelationships");
79
+ Object.defineProperty(exports, "HasRelationshipsMixin", { enumerable: true, get: function () { return HasRelationships_1.HasRelationshipsMixin; } });
68
80
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,aAAa;AACb,wDAAuD;AAA9C,0GAAA,WAAW,OAAA;AACpB,gEAA+D;AAAtD,kHAAA,eAAe,OAAA;AACxB,mDAAkD;AAAzC,gGAAA,MAAM,OAAA;AAEf,YAAY;AACZ,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAElB,UAAU;AACV,2CAA0C;AAAjC,gGAAA,MAAM,OAAA;AACf,yCAAsD;AAA7C,mGAAA,KAAK,OAAc;AAC5B,6CAA4C;AAAnC,kGAAA,OAAO,OAAA;AAChB,+CAA8C;AAArC,oGAAA,QAAQ,OAAA;AACjB,mDAAkD;AAAzC,wGAAA,UAAU,OAAA;AAEnB,UAAU;AACV,2CAA0C;AAAjC,gGAAA,MAAM,OAAA;AACf,yCAAwC;AAA/B,8FAAA,KAAK,OAAA;AAEd,UAAU;AACV,6CAAuE;AAA9D,qGAAA,UAAU,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,sGAAA,WAAW,OAAA;AAE3C,YAAY;AACZ,yEAAwE;AAA/D,4HAAA,oBAAoB,OAAA;AAC7B,8EAA6E;AAApE,kIAAA,uBAAuB,OAAA;AAEhC,WAAW;AACX,8DAA6D;AAApD,kHAAA,eAAe,OAAA;AACxB,oDAAmD;AAA1C,wGAAA,UAAU,OAAA;AACnB,oDAAmE;AAA1D,uGAAA,OAAO,OAAgB;AAChC,0DAA8D;AAArD,wGAAA,UAAU,OAAA;AAAE,iGAAA,GAAG,OAAA;AACxB,qEAAoE;AAA3D,gHAAA,cAAc,OAAA;AAEvB,mBAAmB;AACnB,mCAAkC;AAAzB,wFAAA,EAAE,OAAA;AAEX,eAAe;AACf,yDAAwD;AAA/C,oGAAA,QAAQ,OAAA;AACjB,uEAAsE;AAA7D,kHAAA,eAAe,OAAA;AACxB,6EAA4E;AAAnE,wHAAA,kBAAkB,OAAA;AAC3B,+DAA8D;AAArD,0GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,aAAa;AACb,wDAAuD;AAA9C,0GAAA,WAAW,OAAA;AACpB,gEAA+D;AAAtD,kHAAA,eAAe,OAAA;AACxB,mDAAkD;AAAzC,gGAAA,MAAM,OAAA;AAEf,YAAY;AACZ,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAElB,UAAU;AACV,2CAA0C;AAAjC,gGAAA,MAAM,OAAA;AACf,yCAAsD;AAA7C,mGAAA,KAAK,OAAc;AAC5B,6CAA4C;AAAnC,kGAAA,OAAO,OAAA;AAChB,+CAA8C;AAArC,oGAAA,QAAQ,OAAA;AACjB,mDAAkD;AAAzC,wGAAA,UAAU,OAAA;AAEnB,UAAU;AACV,2CAA0C;AAAjC,gGAAA,MAAM,OAAA;AACf,yCAAwC;AAA/B,8FAAA,KAAK,OAAA;AAEd,UAAU;AACV,6CAAuE;AAA9D,qGAAA,UAAU,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,sGAAA,WAAW,OAAA;AAE3C,aAAa;AACb,mDAAkD;AAAzC,wGAAA,UAAU,OAAA;AAEnB,YAAY;AACZ,yEAAwE;AAA/D,4HAAA,oBAAoB,OAAA;AAC7B,8EAA6E;AAApE,kIAAA,uBAAuB,OAAA;AAEhC,WAAW;AACX,8DAA6D;AAApD,kHAAA,eAAe,OAAA;AACxB,oDAAmD;AAA1C,wGAAA,UAAU,OAAA;AACnB,oDAAmE;AAA1D,uGAAA,OAAO,OAAgB;AAChC,0DAA8D;AAArD,wGAAA,UAAU,OAAA;AAAE,iGAAA,GAAG,OAAA;AACxB,qEAAoE;AAA3D,gHAAA,cAAc,OAAA;AAEvB,mBAAmB;AACnB,mCAAkC;AAAzB,wFAAA,EAAE,OAAA;AAEX,eAAe;AACf,yDAAwD;AAA/C,oGAAA,QAAQ,OAAA;AACjB,uEAAsE;AAA7D,kHAAA,eAAe,OAAA;AACxB,6EAA4E;AAAnE,wHAAA,kBAAkB,OAAA;AAC3B,+DAA8D;AAArD,0GAAA,WAAW,OAAA;AAEpB,qBAAqB;AACrB,2DAAqF;AAA5E,qGAAA,QAAQ,OAAA;AAAE,mGAAA,MAAM,OAAA;AAAE,oGAAA,OAAO,OAAA;AAAE,sGAAA,SAAS,OAAA;AAE7C,oBAAoB;AACpB,kFAAsF;AAA7E,yHAAA,qBAAqB,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orchestr-sh/orchestr",
3
- "version": "1.2.1",
3
+ "version": "1.4.0",
4
4
  "description": "A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",