@orchestr-sh/orchestr 1.5.7 → 1.5.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"HasDynamicRelations.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqCH;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAqDrE;AAED;;GAEG;AACH,8BAAsB,wBAAwB;IAC5C;;;OAGG;IACH,SAAS,CAAC,sBAAsB,IAAI,IAAI;CAGzC"}
1
+ {"version":3,"file":"HasDynamicRelations.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiFH;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CA0DrE;AAED;;GAEG;AACH,8BAAsB,wBAAwB;IAC5C;;;OAGG;IACH,SAAS,CAAC,sBAAsB,IAAI,IAAI;CAGzC"}
@@ -36,6 +36,44 @@ function createRelationshipProxy(relation) {
36
36
  };
37
37
  return fn;
38
38
  }
39
+ /**
40
+ * List of method prefixes that should never be treated as relationships
41
+ */
42
+ const EXCLUDED_PREFIXES = [
43
+ 'get', 'set', 'is', 'has', 'should', 'can',
44
+ 'fill', 'save', 'delete', 'update', 'create',
45
+ 'find', 'where', 'with', 'load', 'fresh',
46
+ 'toObject', 'toJSON', 'toString', 'valueOf'
47
+ ];
48
+ /**
49
+ * List of known internal methods that should never be treated as relationships
50
+ */
51
+ const EXCLUDED_METHODS = [
52
+ 'constructor', 'getTable', 'getKeyName', 'getKey', 'getAttribute',
53
+ 'setAttribute', 'newQuery', 'newInstance', 'getConnection',
54
+ 'query', 'getDirty', 'relationLoaded', 'getRelation', 'setRelation',
55
+ 'syncOriginal', 'refresh', 'touch', 'makeHidden', 'makeVisible'
56
+ ];
57
+ /**
58
+ * Check if a method name should be excluded from dynamic relation detection
59
+ */
60
+ function shouldExcludeMethod(methodName) {
61
+ // Exclude if in the excluded methods list
62
+ if (EXCLUDED_METHODS.includes(methodName)) {
63
+ return true;
64
+ }
65
+ // Exclude if it starts with an underscore (private/internal)
66
+ if (methodName.startsWith('_')) {
67
+ return true;
68
+ }
69
+ // Exclude if it starts with any excluded prefix
70
+ for (const prefix of EXCLUDED_PREFIXES) {
71
+ if (methodName.startsWith(prefix)) {
72
+ return true;
73
+ }
74
+ }
75
+ return false;
76
+ }
39
77
  /**
40
78
  * Wrap an Ensemble instance with a Proxy that automatically resolves relationships
41
79
  */
@@ -54,6 +92,10 @@ function withDynamicRelations(instance) {
54
92
  if (typeof value !== 'function') {
55
93
  return value;
56
94
  }
95
+ // Exclude methods that should never be treated as relationships
96
+ if (shouldExcludeMethod(property)) {
97
+ return value;
98
+ }
57
99
  // Check if this property is a loaded relation
58
100
  if (target.relationLoaded && target.relationLoaded(property)) {
59
101
  return target.getRelation(property);
@@ -78,7 +120,7 @@ function withDynamicRelations(instance) {
78
120
  }
79
121
  catch (e) {
80
122
  // If calling the method fails, just return the original function
81
- // This handles cases where the method requires parameters
123
+ // This handles cases where the method requires parameters or has side effects
82
124
  }
83
125
  // Return the original value for non-relationship properties
84
126
  return value;
@@ -1 +1 @@
1
- {"version":3,"file":"HasDynamicRelations.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAwCH,oDAqDC;AA3FD,oDAAiD;AAEjD;;GAEG;AACH,SAAS,UAAU,CAAC,KAAU;IAC5B,OAAO,KAAK,IAAI,KAAK,YAAY,mBAAQ,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,QAAa;IAC5C,0DAA0D;IAC1D,MAAM,EAAE,GAAQ,UAAS,GAAG,IAAW;QACrC,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,yEAAyE;IACzE,EAAE,CAAC,IAAI,GAAG,UAAS,WAAiB,EAAE,UAAgB;QACpD,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,EAAE,CAAC,KAAK,GAAG,UAAS,UAAgB;QAClC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,EAAE,CAAC,OAAO,GAAG,UAAS,SAAe;QACnC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAmB,QAAW;IAChE,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QACzB,GAAG,CAAC,MAAW,EAAE,QAAyB,EAAE,QAAa;YACvD,yBAAyB;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEtD,2DAA2D;YAC3D,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC;YAExD,gFAAgF;YAChF,IAAI,CAAC,cAAc,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACpD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,uCAAuC;YACvC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,8CAA8C;YAC9C,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7D,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;YAED,yDAAyD;YACzD,+EAA+E;YAC/E,8EAA8E;YAC9E,qCAAqC;YACrC,IAAI,CAAC;gBACH,oDAAoD;gBACpD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEvC,qCAAqC;gBACrC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;gBAEhC,uEAAuE;gBACvE,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;oBACrB,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;oBAE7B,oFAAoF;oBACpF,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;wBACvB,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,iEAAiE;gBACjE,0DAA0D;YAC5D,CAAC;YAED,4DAA4D;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAsB,wBAAwB;IAC5C;;;OAGG;IACO,sBAAsB;QAC9B,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACF;AARD,4DAQC"}
1
+ {"version":3,"file":"HasDynamicRelations.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orchestr-sh/orchestr",
3
- "version": "1.5.7",
3
+ "version": "1.5.8",
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",