@objectql/platform-node 4.1.0 → 4.2.1
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.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +38 -0
- package/README.md +3 -3
- package/dist/driver.js +4 -3
- package/dist/driver.js.map +1 -1
- package/dist/loader.js +12 -13
- package/dist/loader.js.map +1 -1
- package/dist/module.js +3 -8
- package/dist/module.js.map +1 -1
- package/dist/plugin.js +4 -4
- package/dist/plugin.js.map +1 -1
- package/package.json +12 -5
- package/src/driver.ts +4 -4
- package/src/loader.ts +14 -15
- package/src/module.ts +3 -10
- package/src/plugin.ts +4 -4
- package/test/__mocks__/@objectstack/core.ts +1 -1
- package/test/__mocks__/@objectstack/objectql.ts +2 -2
- package/test/__mocks__/@objectstack/runtime.ts +16 -7
- package/tsconfig.json +1 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/jest.config.js +0 -32
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# @objectql/platform-node
|
|
2
2
|
|
|
3
|
+
## 4.2.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- a0aa26a: Unify all package versions and release a patch
|
|
8
|
+
- Updated dependencies [a0aa26a]
|
|
9
|
+
- @objectql/types@4.2.1
|
|
10
|
+
- @objectql/core@4.2.1
|
|
11
|
+
|
|
12
|
+
## 4.2.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- Release v4.2.0
|
|
17
|
+
- Protocol layer: Added GraphQL, JSON-RPC, and OData v4 protocol adapters
|
|
18
|
+
- Drivers: Added Excel, filesystem, and Redis drivers
|
|
19
|
+
- Plugins: Added formula engine, security RBAC, and validator plugins
|
|
20
|
+
- CLI: Added `objectql create` scaffolding tool
|
|
21
|
+
- Core: Performance improvements and strict type enforcement
|
|
22
|
+
- Testing: Added Driver TCK and Protocol TCK conformance suites
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- Updated dependencies
|
|
27
|
+
- @objectql/types@4.2.0
|
|
28
|
+
- @objectql/core@4.2.0
|
|
29
|
+
|
|
3
30
|
## 4.0.6
|
|
4
31
|
|
|
5
32
|
### Patch Changes
|
|
@@ -26,6 +53,7 @@
|
|
|
26
53
|
This patch release includes bug fixes, driver improvements, and enhanced test coverage:
|
|
27
54
|
|
|
28
55
|
### Driver Improvements
|
|
56
|
+
|
|
29
57
|
- **MongoDB Driver**: Fixed bulk operations, transaction support, and type safety improvements
|
|
30
58
|
- **FileSystem Driver**: Fixed TCK test compatibility with dataDir parameter
|
|
31
59
|
- **SQL Driver**: Enhanced TCK test compatibility and fixed test failures
|
|
@@ -33,22 +61,26 @@
|
|
|
33
61
|
- **Driver Utils**: Added shared utilities package for cross-driver functionality
|
|
34
62
|
|
|
35
63
|
### Testing & Quality
|
|
64
|
+
|
|
36
65
|
- Added comprehensive TCK (Technology Compatibility Kit) compliance tests for all drivers
|
|
37
66
|
- Expanded TCK test suite to 30+ comprehensive tests
|
|
38
67
|
- Enhanced test infrastructure with better error handling
|
|
39
68
|
- Added --passWithNoTests flag for packages without tests
|
|
40
69
|
|
|
41
70
|
### Type Safety
|
|
71
|
+
|
|
42
72
|
- Improved type safety in MongoDB driver update methods
|
|
43
73
|
- Better handling of atomic operators in MongoDB driver
|
|
44
74
|
- Enhanced type definitions across driver layer
|
|
45
75
|
|
|
46
76
|
### Documentation
|
|
77
|
+
|
|
47
78
|
- Added comprehensive driver documentation
|
|
48
79
|
- Enhanced official documentation with Phase 2 implementation summaries
|
|
49
80
|
- Improved protocol layer documentation
|
|
50
81
|
|
|
51
82
|
### Infrastructure
|
|
83
|
+
|
|
52
84
|
- Standardized driver layer implementation
|
|
53
85
|
- Enhanced protocol layer with better abstraction
|
|
54
86
|
- Improved GitHub Actions workflow configurations
|
|
@@ -67,6 +99,7 @@
|
|
|
67
99
|
- **Patch Release v4.0.3**
|
|
68
100
|
|
|
69
101
|
This patch release includes infrastructure improvements and development experience enhancements:
|
|
102
|
+
|
|
70
103
|
- Refactored dev server setup for improved configuration handling
|
|
71
104
|
- Enhanced example scripts and development workflow
|
|
72
105
|
- Updated build and test infrastructure
|
|
@@ -84,6 +117,7 @@
|
|
|
84
117
|
- **Patch Release v4.0.2**
|
|
85
118
|
|
|
86
119
|
This patch release includes:
|
|
120
|
+
|
|
87
121
|
- Infrastructure improvements and maintenance updates
|
|
88
122
|
- Enhanced stability and reliability
|
|
89
123
|
- Bug fixes and performance optimizations
|
|
@@ -99,6 +133,7 @@
|
|
|
99
133
|
- **Release Version 4.0.1**
|
|
100
134
|
|
|
101
135
|
This patch release includes the latest repository improvements and infrastructure updates:
|
|
136
|
+
|
|
102
137
|
- Added comprehensive GitHub workflows for CI/CD, testing, and quality assurance
|
|
103
138
|
- Enhanced documentation and developer experience
|
|
104
139
|
- Improved build and release processes with Changesets
|
|
@@ -117,6 +152,7 @@
|
|
|
117
152
|
- 79d04e1: Patch release for January 2026 updates
|
|
118
153
|
|
|
119
154
|
This patch includes minor improvements and maintenance updates:
|
|
155
|
+
|
|
120
156
|
- Enhanced type safety across core packages
|
|
121
157
|
- Improved error handling in drivers
|
|
122
158
|
- Documentation updates
|
|
@@ -140,6 +176,7 @@
|
|
|
140
176
|
This is a coordinated major release that unifies all ObjectQL packages to version 2.0.0, establishing a synchronized versioning strategy across the entire ecosystem.
|
|
141
177
|
|
|
142
178
|
### 🎯 Key Changes
|
|
179
|
+
|
|
143
180
|
- **Unified Versioning**: All core packages now share the same version number (2.0.0)
|
|
144
181
|
- **Fixed Group Management**: Updated changeset configuration to include all @objectql packages in the fixed versioning group
|
|
145
182
|
- **Simplified Maintenance**: Future releases will automatically maintain version consistency across the entire monorepo
|
|
@@ -147,6 +184,7 @@
|
|
|
147
184
|
### 📦 Packages Included
|
|
148
185
|
|
|
149
186
|
All ObjectQL packages are now synchronized at version 2.0.0:
|
|
187
|
+
|
|
150
188
|
- Foundation: `@objectql/types`, `@objectql/core`, `@objectql/platform-node`
|
|
151
189
|
- Drivers: `@objectql/driver-sql`, `@objectql/driver-mongo`, `@objectql/driver-redis`, `@objectql/driver-fs`, `@objectql/driver-memory`, `@objectql/driver-localstorage`, `@objectql/driver-excel`, `@objectql/sdk`
|
|
152
190
|
- Runtime: `@objectql/server`
|
package/README.md
CHANGED
|
@@ -182,7 +182,7 @@ my-app/
|
|
|
182
182
|
│ └── permissions/
|
|
183
183
|
│ ├── user.permission.yml
|
|
184
184
|
│ └── project.permission.yml
|
|
185
|
-
└──
|
|
185
|
+
└── objectstack.config.ts
|
|
186
186
|
```
|
|
187
187
|
|
|
188
188
|
### Modular Structure
|
|
@@ -203,12 +203,12 @@ my-app/
|
|
|
203
203
|
│ │ │ └── milestone.object.yml
|
|
204
204
|
│ │ └── permissions/
|
|
205
205
|
│ │ └── project.permission.yml
|
|
206
|
-
└──
|
|
206
|
+
└── objectstack.config.ts
|
|
207
207
|
```
|
|
208
208
|
|
|
209
209
|
## Complete Example
|
|
210
210
|
|
|
211
|
-
###
|
|
211
|
+
### objectstack.config.ts
|
|
212
212
|
|
|
213
213
|
```typescript
|
|
214
214
|
import { ObjectQL } from '@objectql/core';
|
package/dist/driver.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.createDriverFromConnection = createDriverFromConnection;
|
|
11
|
+
const types_1 = require("@objectql/types");
|
|
11
12
|
function createDriverFromConnection(connection) {
|
|
12
13
|
let driverPackage = '';
|
|
13
14
|
let driverClass = '';
|
|
@@ -44,18 +45,18 @@ function createDriverFromConnection(connection) {
|
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
47
|
else {
|
|
47
|
-
throw new
|
|
48
|
+
throw new types_1.ObjectQLError({ code: 'DRIVER_UNSUPPORTED_OPERATION', message: `Unsupported connection protocol: ${connection}` });
|
|
48
49
|
}
|
|
49
50
|
try {
|
|
50
51
|
const pkg = require(driverPackage);
|
|
51
52
|
const DriverClass = pkg[driverClass];
|
|
52
53
|
if (!DriverClass) {
|
|
53
|
-
throw new
|
|
54
|
+
throw new types_1.ObjectQLError({ code: 'DRIVER_ERROR', message: `${driverClass} not found in ${driverPackage}` });
|
|
54
55
|
}
|
|
55
56
|
return new DriverClass(driverConfig);
|
|
56
57
|
}
|
|
57
58
|
catch (e) {
|
|
58
|
-
throw new
|
|
59
|
+
throw new types_1.ObjectQLError({ code: 'DRIVER_ERROR', message: `Failed to load driver ${driverPackage}. Please install it: npm install ${driverPackage}. Error: ${e.message}` });
|
|
59
60
|
}
|
|
60
61
|
}
|
|
61
62
|
//# sourceMappingURL=driver.js.map
|
package/dist/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAIH,gEAmDC;
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAIH,gEAmDC;AArDD,2CAAwD;AAExD,SAAgB,0BAA0B,CAAC,UAAkB;IACzD,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,YAAY,GAAQ,EAAE,CAAC;IAE3B,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACtC,aAAa,GAAG,wBAAwB,CAAC;QACzC,WAAW,GAAG,aAAa,CAAC;QAC5B,YAAY,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;IACvC,CAAC;SACI,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1C,aAAa,GAAG,sBAAsB,CAAC;QACvC,WAAW,GAAG,WAAW,CAAC;QAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACrD,YAAY,GAAG;YACX,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,EAAE,QAAQ,EAAE;YACxB,gBAAgB,EAAE,IAAI;SACzB,CAAC;IACN,CAAC;SACI,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACtF,aAAa,GAAG,sBAAsB,CAAC;QACvC,WAAW,GAAG,WAAW,CAAC;QAC1B,YAAY,GAAG;YACX,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,UAAU;SACzB,CAAC;IACN,CAAC;SACI,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,aAAa,GAAG,sBAAsB,CAAC;QACvC,WAAW,GAAG,WAAW,CAAC;QAC1B,YAAY,GAAG;YACX,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,UAAU;SACzB,CAAC;IACN,CAAC;SACI,CAAC;QACF,MAAM,IAAI,qBAAa,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,oCAAoC,UAAU,EAAE,EAAE,CAAC,CAAC;IACjI,CAAC;IAED,IAAI,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,qBAAa,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,WAAW,iBAAiB,aAAa,EAAE,EAAE,CAAC,CAAC;QAC/G,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,MAAM,IAAI,qBAAa,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,yBAAyB,aAAa,oCAAoC,aAAa,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/K,CAAC;AACL,CAAC"}
|
package/dist/loader.js
CHANGED
|
@@ -75,8 +75,7 @@ class ObjectLoader {
|
|
|
75
75
|
doc.name = filenameId;
|
|
76
76
|
}
|
|
77
77
|
else if (doc.name !== filenameId) {
|
|
78
|
-
//
|
|
79
|
-
console.warn(`[ObjectQL] Warning: Object name '${doc.name}' in ${basename} does not match filename. Using '${doc.name}'.`);
|
|
78
|
+
// Object name does not match filename — using doc.name
|
|
80
79
|
}
|
|
81
80
|
const packageEntry = ctx.registry.getEntry('package-map', ctx.file);
|
|
82
81
|
registerObject(ctx.registry, doc, ctx.file, ctx.packageName || (packageEntry && packageEntry.package));
|
|
@@ -93,8 +92,8 @@ class ObjectLoader {
|
|
|
93
92
|
}
|
|
94
93
|
}
|
|
95
94
|
}
|
|
96
|
-
catch (
|
|
97
|
-
|
|
95
|
+
catch (_e) {
|
|
96
|
+
// Silently skip malformed object files
|
|
98
97
|
}
|
|
99
98
|
}
|
|
100
99
|
});
|
|
@@ -118,8 +117,8 @@ class ObjectLoader {
|
|
|
118
117
|
content: hooks
|
|
119
118
|
});
|
|
120
119
|
}
|
|
121
|
-
catch (
|
|
122
|
-
|
|
120
|
+
catch (_e) {
|
|
121
|
+
// Silently skip malformed hook files
|
|
123
122
|
}
|
|
124
123
|
}
|
|
125
124
|
});
|
|
@@ -151,8 +150,8 @@ class ObjectLoader {
|
|
|
151
150
|
});
|
|
152
151
|
}
|
|
153
152
|
}
|
|
154
|
-
catch (
|
|
155
|
-
|
|
153
|
+
catch (_e) {
|
|
154
|
+
// Silently skip malformed action files
|
|
156
155
|
}
|
|
157
156
|
}
|
|
158
157
|
});
|
|
@@ -187,8 +186,8 @@ class ObjectLoader {
|
|
|
187
186
|
content: doc
|
|
188
187
|
});
|
|
189
188
|
}
|
|
190
|
-
catch (
|
|
191
|
-
|
|
189
|
+
catch (_e) {
|
|
190
|
+
// Silently skip malformed metadata files
|
|
192
191
|
}
|
|
193
192
|
}
|
|
194
193
|
});
|
|
@@ -210,7 +209,7 @@ class ObjectLoader {
|
|
|
210
209
|
const packageDir = path.dirname(entryPath);
|
|
211
210
|
this.load(packageDir, packageName);
|
|
212
211
|
}
|
|
213
|
-
catch (
|
|
212
|
+
catch (_e) {
|
|
214
213
|
// fallback to directory
|
|
215
214
|
this.load(packageName, packageName);
|
|
216
215
|
}
|
|
@@ -260,8 +259,8 @@ class ObjectLoader {
|
|
|
260
259
|
}
|
|
261
260
|
plugin.handler(ctx);
|
|
262
261
|
}
|
|
263
|
-
catch (
|
|
264
|
-
|
|
262
|
+
catch (_e) {
|
|
263
|
+
// Silently skip files that fail plugin processing
|
|
265
264
|
}
|
|
266
265
|
}
|
|
267
266
|
}
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/module.js
CHANGED
|
@@ -50,14 +50,12 @@ const fs = __importStar(require("fs"));
|
|
|
50
50
|
async function loadModules(loader, modules) {
|
|
51
51
|
if (!modules || modules.length === 0)
|
|
52
52
|
return;
|
|
53
|
-
console.log(`Loading ${modules.length} modules...`);
|
|
54
53
|
for (const moduleName of modules) {
|
|
55
54
|
try {
|
|
56
55
|
// Check if it is a local path
|
|
57
56
|
if (moduleName.startsWith('./') || moduleName.startsWith('/') || moduleName.startsWith('../')) {
|
|
58
57
|
const localPath = path.resolve(process.cwd(), moduleName);
|
|
59
58
|
if (fs.existsSync(localPath)) {
|
|
60
|
-
console.log(` - ${moduleName} -> ${localPath}`);
|
|
61
59
|
loader.load(localPath);
|
|
62
60
|
continue;
|
|
63
61
|
}
|
|
@@ -79,24 +77,21 @@ async function loadModules(loader, modules) {
|
|
|
79
77
|
break;
|
|
80
78
|
}
|
|
81
79
|
}
|
|
82
|
-
catch (
|
|
80
|
+
catch (_e) { /* package.json parse error — skip directory */ }
|
|
83
81
|
}
|
|
84
82
|
currentDir = path.dirname(currentDir);
|
|
85
83
|
}
|
|
86
84
|
if (!packageRoot) {
|
|
87
|
-
console.warn(`Could not find package root for module '${moduleName}'. Using entry directory.`);
|
|
88
85
|
packageRoot = path.dirname(entryPath);
|
|
89
86
|
}
|
|
90
87
|
// Now, where is the schema?
|
|
91
88
|
// Convention: check 'src', then root.
|
|
92
89
|
const srcDir = path.join(packageRoot, 'src');
|
|
93
90
|
const targetDir = fs.existsSync(srcDir) ? srcDir : packageRoot;
|
|
94
|
-
console.log(` - ${moduleName} -> ${targetDir}`);
|
|
95
|
-
// Load it!
|
|
96
91
|
loader.load(targetDir);
|
|
97
92
|
}
|
|
98
|
-
catch (
|
|
99
|
-
|
|
93
|
+
catch (_e) {
|
|
94
|
+
// Module load failed — continue to next module
|
|
100
95
|
}
|
|
101
96
|
}
|
|
102
97
|
}
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUH,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUH,kCAoDC;AA3DD,2CAA6B;AAC7B,uCAAyB;AAEzB;;;GAGG;AACI,KAAK,UAAU,WAAW,CAAC,MAAoB,EAAE,OAAiB;IACrE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE7C,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC;YACD,8BAA8B;YAC9B,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;gBAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACvB,SAAS;gBACb,CAAC;YACN,CAAC;YAED,0BAA0B;YAC1B,sFAAsF;YACtF,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAE1E,+CAA+C;YAC/C,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,mCAAmC;YACnC,OAAO,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;oBACvD,wBAAwB;oBACxB,IAAI,CAAC;wBACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;wBAC3D,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;4BAC1B,WAAW,GAAG,UAAU,CAAC;4BACzB,MAAM;wBACV,CAAC;oBACL,CAAC;oBAAC,OAAO,EAAE,EAAE,CAAC,CAAC,+CAA+C,CAAC,CAAC;gBACpE,CAAC;gBACD,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1C,CAAC;YAED,4BAA4B;YAC5B,sCAAsC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;YAE/D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3B,CAAC;QAAC,OAAO,EAAO,EAAE,CAAC;YACf,+CAA+C;QACnD,CAAC;IACL,CAAC;AACL,CAAC"}
|
package/dist/plugin.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.loadPlugin = loadPlugin;
|
|
11
|
+
const types_1 = require("@objectql/types");
|
|
11
12
|
function loadPlugin(packageName) {
|
|
12
13
|
let mod;
|
|
13
14
|
try {
|
|
@@ -15,7 +16,7 @@ function loadPlugin(packageName) {
|
|
|
15
16
|
mod = require(modulePath);
|
|
16
17
|
}
|
|
17
18
|
catch (e) {
|
|
18
|
-
throw new
|
|
19
|
+
throw new types_1.ObjectQLError({ code: 'CONFIG_ERROR', message: `Failed to resolve plugin '${packageName}': ${e}` });
|
|
19
20
|
}
|
|
20
21
|
// Helper to check if candidate is a PluginDefinition
|
|
21
22
|
const isPlugin = (candidate) => {
|
|
@@ -46,7 +47,7 @@ function loadPlugin(packageName) {
|
|
|
46
47
|
return inst;
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
|
-
catch (
|
|
50
|
+
catch (_e) {
|
|
50
51
|
// Not a constructor or instantiation failed
|
|
51
52
|
}
|
|
52
53
|
}
|
|
@@ -68,8 +69,7 @@ function loadPlugin(packageName) {
|
|
|
68
69
|
return instance;
|
|
69
70
|
}
|
|
70
71
|
else {
|
|
71
|
-
|
|
72
|
-
throw new Error(`Plugin '${packageName}' must export a PluginDefinition with lifecycle hooks (onEnable, onDisable, etc.).`);
|
|
72
|
+
throw new types_1.ObjectQLError({ code: 'CONFIG_ERROR', message: `Plugin '${packageName}' must export a PluginDefinition with lifecycle hooks (onEnable, onDisable, etc.).` });
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
//# sourceMappingURL=plugin.js.map
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAMH,gCAkEC;AArED,2CAAgD;AAGhD,SAAgB,UAAU,CAAC,WAAmB;IAC1C,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5E,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,qBAAa,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,6BAA6B,WAAW,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAClH,CAAC;IAED,qDAAqD;IACrD,MAAM,QAAQ,GAAG,CAAC,SAAc,EAAiC,EAAE;QAC/D,OAAO,SAAS,IAAI;QAChB,iCAAiC;QACjC,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU;YACxC,OAAO,SAAS,CAAC,SAAS,KAAK,UAAU;YACzC,OAAO,SAAS,CAAC,SAAS,KAAK,UAAU;YACzC,OAAO,SAAS,CAAC,WAAW,KAAK,UAAU;YAC3C,OAAO,SAAS,CAAC,SAAS,KAAK,UAAU,CAC5C,IAAI;QACD,mEAAmE;QACnE,wEAAwE;QACxE,SAAS,CAAC,EAAE,KAAK,SAAS,IAAI,OAAO,SAAS,CAAC,EAAE,KAAK,QAAQ,CACjE,CAAC;IACN,CAAC,CAAC;IAEF,iCAAiC;IACjC,MAAM,UAAU,GAAG,CAAC,SAAc,EAAgC,EAAE;QAC5D,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAEjC,sCAAsC;QACtC,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC7B,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjB,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACV,4CAA4C;YAChD,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACzB,CAAC,CAAC;IAEF,wDAAwD;IACxD,IAAI,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAE1D,IAAI,CAAC,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,GAAG,KAAK,SAAS;gBAAE,SAAS;YAChC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,IAAI,QAAQ;gBAAE,MAAM;QACxB,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACV,QAAgB,CAAC,YAAY,GAAG,WAAW,CAAC;QAC7C,OAAO,QAAQ,CAAC;IACpB,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,qBAAa,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,WAAW,oFAAoF,EAAE,CAAC,CAAC;IAC3K,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@objectql/platform-node",
|
|
3
|
-
"version": "4.1
|
|
3
|
+
"version": "4.2.1",
|
|
4
4
|
"description": "Node.js platform utilities for ObjectQL - File system integration, YAML loading, and plugin management",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"objectql",
|
|
@@ -15,18 +15,25 @@
|
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"main": "dist/index.js",
|
|
17
17
|
"types": "dist/index.d.ts",
|
|
18
|
+
"sideEffects": false,
|
|
19
|
+
"exports": {
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"default": "./dist/index.js"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
18
25
|
"dependencies": {
|
|
19
|
-
"@objectstack/spec": "^
|
|
26
|
+
"@objectstack/spec": "^3.0.2",
|
|
20
27
|
"fast-glob": "^3.3.2",
|
|
21
28
|
"js-yaml": "^4.1.1",
|
|
22
|
-
"@objectql/core": "4.1
|
|
23
|
-
"@objectql/types": "4.1
|
|
29
|
+
"@objectql/core": "4.2.1",
|
|
30
|
+
"@objectql/types": "4.2.1"
|
|
24
31
|
},
|
|
25
32
|
"devDependencies": {
|
|
26
33
|
"typescript": "^5.3.0"
|
|
27
34
|
},
|
|
28
35
|
"scripts": {
|
|
29
36
|
"build": "tsc",
|
|
30
|
-
"test": "
|
|
37
|
+
"test": "vitest run"
|
|
31
38
|
}
|
|
32
39
|
}
|
package/src/driver.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { Driver } from '@objectql/types';
|
|
9
|
+
import { Driver, ObjectQLError } from '@objectql/types';
|
|
10
10
|
|
|
11
11
|
export function createDriverFromConnection(connection: string): Driver {
|
|
12
12
|
let driverPackage = '';
|
|
@@ -45,7 +45,7 @@ export function createDriverFromConnection(connection: string): Driver {
|
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
else {
|
|
48
|
-
throw new
|
|
48
|
+
throw new ObjectQLError({ code: 'DRIVER_UNSUPPORTED_OPERATION', message: `Unsupported connection protocol: ${connection}` });
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
try {
|
|
@@ -53,10 +53,10 @@ export function createDriverFromConnection(connection: string): Driver {
|
|
|
53
53
|
const pkg = require(driverPackage);
|
|
54
54
|
const DriverClass = pkg[driverClass];
|
|
55
55
|
if (!DriverClass) {
|
|
56
|
-
throw new
|
|
56
|
+
throw new ObjectQLError({ code: 'DRIVER_ERROR', message: `${driverClass} not found in ${driverPackage}` });
|
|
57
57
|
}
|
|
58
58
|
return new DriverClass(driverConfig);
|
|
59
59
|
} catch (e: any) {
|
|
60
|
-
throw new
|
|
60
|
+
throw new ObjectQLError({ code: 'DRIVER_ERROR', message: `Failed to load driver ${driverPackage}. Please install it: npm install ${driverPackage}. Error: ${e.message}` });
|
|
61
61
|
}
|
|
62
62
|
}
|
package/src/loader.ts
CHANGED
|
@@ -41,11 +41,10 @@ export class ObjectLoader {
|
|
|
41
41
|
// If name is missing, infer from filename
|
|
42
42
|
doc.name = filenameId;
|
|
43
43
|
} else if (doc.name !== filenameId) {
|
|
44
|
-
//
|
|
45
|
-
console.warn(`[ObjectQL] Warning: Object name '${doc.name}' in ${basename} does not match filename. Using '${doc.name}'.`);
|
|
44
|
+
// Object name does not match filename — using doc.name
|
|
46
45
|
}
|
|
47
46
|
|
|
48
|
-
const packageEntry = ctx.registry.getEntry('package-map', ctx.file);
|
|
47
|
+
const packageEntry = ctx.registry.getEntry<{ package?: string }>('package-map', ctx.file);
|
|
49
48
|
registerObject(ctx.registry, doc, ctx.file, ctx.packageName || (packageEntry && packageEntry.package));
|
|
50
49
|
return;
|
|
51
50
|
}
|
|
@@ -59,8 +58,8 @@ export class ObjectLoader {
|
|
|
59
58
|
registerObject(ctx.registry, obj, ctx.file, ctx.packageName);
|
|
60
59
|
}
|
|
61
60
|
}
|
|
62
|
-
} catch (
|
|
63
|
-
|
|
61
|
+
} catch (_e) {
|
|
62
|
+
// Silently skip malformed object files
|
|
64
63
|
}
|
|
65
64
|
}
|
|
66
65
|
});
|
|
@@ -86,8 +85,8 @@ export class ObjectLoader {
|
|
|
86
85
|
package: ctx.packageName,
|
|
87
86
|
content: hooks
|
|
88
87
|
});
|
|
89
|
-
} catch (
|
|
90
|
-
|
|
88
|
+
} catch (_e) {
|
|
89
|
+
// Silently skip malformed hook files
|
|
91
90
|
}
|
|
92
91
|
}
|
|
93
92
|
});
|
|
@@ -123,8 +122,8 @@ export class ObjectLoader {
|
|
|
123
122
|
});
|
|
124
123
|
}
|
|
125
124
|
|
|
126
|
-
} catch (
|
|
127
|
-
|
|
125
|
+
} catch (_e) {
|
|
126
|
+
// Silently skip malformed action files
|
|
128
127
|
}
|
|
129
128
|
}
|
|
130
129
|
});
|
|
@@ -161,8 +160,8 @@ export class ObjectLoader {
|
|
|
161
160
|
package: ctx.packageName,
|
|
162
161
|
content: doc
|
|
163
162
|
});
|
|
164
|
-
} catch (
|
|
165
|
-
|
|
163
|
+
} catch (_e) {
|
|
164
|
+
// Silently skip malformed metadata files
|
|
166
165
|
}
|
|
167
166
|
}
|
|
168
167
|
})
|
|
@@ -186,7 +185,7 @@ export class ObjectLoader {
|
|
|
186
185
|
delete require.cache[entryPath];
|
|
187
186
|
const packageDir = path.dirname(entryPath);
|
|
188
187
|
this.load(packageDir, packageName);
|
|
189
|
-
} catch (
|
|
188
|
+
} catch (_e) {
|
|
190
189
|
// fallback to directory
|
|
191
190
|
this.load(packageName, packageName);
|
|
192
191
|
}
|
|
@@ -244,8 +243,8 @@ export class ObjectLoader {
|
|
|
244
243
|
|
|
245
244
|
plugin.handler(ctx);
|
|
246
245
|
|
|
247
|
-
} catch (
|
|
248
|
-
|
|
246
|
+
} catch (_e) {
|
|
247
|
+
// Silently skip files that fail plugin processing
|
|
249
248
|
}
|
|
250
249
|
}
|
|
251
250
|
}
|
|
@@ -296,7 +295,7 @@ function registerObject(registry: MetadataRegistry, obj: any, file: string, pack
|
|
|
296
295
|
// --- End Smart Defaults ---
|
|
297
296
|
|
|
298
297
|
// Check for existing object to Merge
|
|
299
|
-
const existing = registry.getEntry('object', obj.name);
|
|
298
|
+
const existing = registry.getEntry<{ content?: ObjectConfig }>('object', obj.name);
|
|
300
299
|
if (existing) {
|
|
301
300
|
const base = existing.content as ObjectConfig;
|
|
302
301
|
|
package/src/module.ts
CHANGED
|
@@ -17,15 +17,12 @@ import * as fs from 'fs';
|
|
|
17
17
|
export async function loadModules(loader: ObjectLoader, modules: string[]) {
|
|
18
18
|
if (!modules || modules.length === 0) return;
|
|
19
19
|
|
|
20
|
-
console.log(`Loading ${modules.length} modules...`);
|
|
21
|
-
|
|
22
20
|
for (const moduleName of modules) {
|
|
23
21
|
try {
|
|
24
22
|
// Check if it is a local path
|
|
25
23
|
if (moduleName.startsWith('./') || moduleName.startsWith('/') || moduleName.startsWith('../')) {
|
|
26
24
|
const localPath = path.resolve(process.cwd(), moduleName);
|
|
27
25
|
if (fs.existsSync(localPath)) {
|
|
28
|
-
console.log(` - ${moduleName} -> ${localPath}`);
|
|
29
26
|
loader.load(localPath);
|
|
30
27
|
continue;
|
|
31
28
|
}
|
|
@@ -49,13 +46,12 @@ export async function loadModules(loader: ObjectLoader, modules: string[]) {
|
|
|
49
46
|
packageRoot = currentDir;
|
|
50
47
|
break;
|
|
51
48
|
}
|
|
52
|
-
} catch (
|
|
49
|
+
} catch (_e) { /* package.json parse error — skip directory */ }
|
|
53
50
|
}
|
|
54
51
|
currentDir = path.dirname(currentDir);
|
|
55
52
|
}
|
|
56
53
|
|
|
57
54
|
if (!packageRoot) {
|
|
58
|
-
console.warn(`Could not find package root for module '${moduleName}'. Using entry directory.`);
|
|
59
55
|
packageRoot = path.dirname(entryPath);
|
|
60
56
|
}
|
|
61
57
|
|
|
@@ -64,13 +60,10 @@ export async function loadModules(loader: ObjectLoader, modules: string[]) {
|
|
|
64
60
|
const srcDir = path.join(packageRoot, 'src');
|
|
65
61
|
const targetDir = fs.existsSync(srcDir) ? srcDir : packageRoot;
|
|
66
62
|
|
|
67
|
-
console.log(` - ${moduleName} -> ${targetDir}`);
|
|
68
|
-
|
|
69
|
-
// Load it!
|
|
70
63
|
loader.load(targetDir);
|
|
71
64
|
|
|
72
|
-
} catch (
|
|
73
|
-
|
|
65
|
+
} catch (_e: any) {
|
|
66
|
+
// Module load failed — continue to next module
|
|
74
67
|
}
|
|
75
68
|
}
|
|
76
69
|
}
|
package/src/plugin.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { Kernel } from '@objectstack/spec';
|
|
10
|
+
import { ObjectQLError } from '@objectql/types';
|
|
10
11
|
type PluginDefinition = Kernel.PluginDefinition;
|
|
11
12
|
|
|
12
13
|
export function loadPlugin(packageName: string): PluginDefinition {
|
|
@@ -15,7 +16,7 @@ export function loadPlugin(packageName: string): PluginDefinition {
|
|
|
15
16
|
const modulePath = require.resolve(packageName, { paths: [process.cwd()] });
|
|
16
17
|
mod = require(modulePath);
|
|
17
18
|
} catch (e) {
|
|
18
|
-
throw new
|
|
19
|
+
throw new ObjectQLError({ code: 'CONFIG_ERROR', message: `Failed to resolve plugin '${packageName}': ${e}` });
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
// Helper to check if candidate is a PluginDefinition
|
|
@@ -50,7 +51,7 @@ export function loadPlugin(packageName: string): PluginDefinition {
|
|
|
50
51
|
if (isPlugin(inst)) {
|
|
51
52
|
return inst;
|
|
52
53
|
}
|
|
53
|
-
} catch (
|
|
54
|
+
} catch (_e) {
|
|
54
55
|
// Not a constructor or instantiation failed
|
|
55
56
|
}
|
|
56
57
|
}
|
|
@@ -73,7 +74,6 @@ export function loadPlugin(packageName: string): PluginDefinition {
|
|
|
73
74
|
(instance as any)._packageName = packageName;
|
|
74
75
|
return instance;
|
|
75
76
|
} else {
|
|
76
|
-
|
|
77
|
-
throw new Error(`Plugin '${packageName}' must export a PluginDefinition with lifecycle hooks (onEnable, onDisable, etc.).`);
|
|
77
|
+
throw new ObjectQLError({ code: 'CONFIG_ERROR', message: `Plugin '${packageName}' must export a PluginDefinition with lifecycle hooks (onEnable, onDisable, etc.).` });
|
|
78
78
|
}
|
|
79
79
|
}
|